14 Replies Latest reply on Jan 11, 2008 12:22 PM by Adam Warski

    Weird classloading problem

    Adam Warski Master

      Hello,

      I have a really weird problem which happens only sometimes (that's the worst kind of problems) and in different ways. The only thing the symptoms have in common is ClassDefNotFoundException.

      So, I have a standard seam app, generated with seam-gen, with only one exception: I have a separate .jar with interfaces and model classes which is deployed parallerly to the .ear (I separated the interfaces and model classes so I can access the ejb services from other apps).

      It work fine until recently, however I have no idea when exactly the problem started to appear (as it appears sometimes, it's hard to find the cause ...).

      I noticed that the errors appear more often if a method is called on regular intervals of time, beginning with the "org.jboss.seam.postInitialization" event (I use the quartz scheduler).

      So the error is one of the following:
      - java.lang.NoClassDefFoundError: org/jboss/seam/Instance
      - java.lang.NoClassDefFoundError: org/jboss/seam/interceptor/Proxy
      - java.lang.NoClassDefFoundError: <my model class>
      - java.lang.NoClassDefFoundError: <my helper model class>; this exception is thrown during deserialization of that class; instances of it are held serialized in the DB.

      Here is the stack trace for the first example:

      19:55:49,230 INFO [Initialization] done initializing Seam
      19:55:49,264 ERROR [JobRunShell] Job DEFAULT.-4531f942:1175fe7c870:-7ffd threw an unhandled Exception:
      javax.ejb.EJBException: org.jboss.seam.InstantiationException: Could not instantiate Seam component: feedsService
       at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:63)
       at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
       at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)
       at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:106)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:214)
       at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:184)
       at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:81)
       at $Proxy170.update(Unknown Source)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
       at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
       at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:76)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
       at org.jboss.seam.async.AsynchronousInterceptor.aroundInvoke(AsynchronousInterceptor.java:50)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
       at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
       at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:54)
       at org.javassist.tmp.java.lang.Object_$$_javassist_3.update(Object_$$_javassist_3.java)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
       at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125)
       at org.jboss.seam.async.AsynchronousInvocation.call(AsynchronousInvocation.java:52)
       at org.jboss.seam.async.Asynchronous.executeInContexts(Asynchronous.java:76)
       at org.jboss.seam.async.Asynchronous.execute(Asynchronous.java:45)
       at org.jboss.seam.async.QuartzDispatcher$QuartzJob.execute(QuartzDispatcher.java:304)
       at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
       at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
      Caused by: org.jboss.seam.InstantiationException: Could not instantiate Seam component: feedsService
       at org.jboss.seam.Component.newInstance(Component.java:1962)
       at org.jboss.seam.Component.getInstance(Component.java:1865)
       at org.jboss.seam.Component.getInstance(Component.java:1832)
       at org.jboss.seam.Component.getInstanceInAllNamespaces(Component.java:2174)
       at org.jboss.seam.Component.getValueToInject(Component.java:2126)
       at org.jboss.seam.Component.injectAttributes(Component.java:1590)
       at org.jboss.seam.Component.inject(Component.java:1408)
       at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:45)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
       at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
       at org.jboss.seam.persistence.EntityManagerProxyInterceptor.aroundInvoke(EntityManagerProxyInterceptor.java:26)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
       at org.jboss.seam.persistence.HibernateSessionProxyInterceptor.aroundInvoke(HibernateSessionProxyInterceptor.java:27)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
       at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
       at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:50)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
       at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
       at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
       at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
       ... 42 more
      Caused by: java.lang.RuntimeException: by java.lang.NoClassDefFoundError: org/jboss/seam/Instance
       at org.jboss.seam.util.ProxyFactory.createClass(ProxyFactory.java:190)
       at org.jboss.seam.Component.createProxyFactory(Component.java:2252)
       at org.jboss.seam.Component.getProxyFactory(Component.java:1367)
       at org.jboss.seam.Component.wrap(Component.java:1358)
       at org.jboss.seam.Component.instantiateSessionBean(Component.java:1280)
       at org.jboss.seam.Component.instantiate(Component.java:1265)
       at org.jboss.seam.Component.newInstance(Component.java:1958)
       ... 70 more
      Caused by: javassist.CannotCompileException: by java.lang.NoClassDefFoundError: org/jboss/seam/Instance
       at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:165)
       at org.jboss.seam.util.ProxyFactory.createClass(ProxyFactory.java:186)
       ... 76 more
      Caused by: java.lang.NoClassDefFoundError: org/jboss/seam/Instance
       at java.lang.ClassLoader.defineClass1(Native Method)
       at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
       at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at javassist.util.proxy.FactoryHelper.toClass2(FactoryHelper.java:177)
       at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:159)
       ... 77 more
      


      (here you can see the quartz schduler at work, but it also happens when this is turned off, and looks very similar).

      Anybody has any ideas, where at least I can start looking?

      --
      Adam

        • 1. Re: Weird classloading problem
          Pete Muir Master

          Is it possible for you to test using the EJB3 timer service rather than the quartz timer service?

          • 2. Re: Weird classloading problem
            Adam Warski Master

            Hello,

            The same happens with the EJB3 timer service (however Quartz is better, as the EJB3 timers, if they have an interval, don't stop when the application is undeployed, even after an AS restart :) ).

            I think there are really two problems:
            1. On every timer interval, I get a "Caused by: org.hibernate.type.SerializationException: could not deserialize" exception (when reading a serialized field from a DB). There are no problems with it when reading the data from the webapp.
            Part of the stack trace:

            Caused by: java.lang.ClassNotFoundException: No ClassLoaders found for: org.jboss.blog.session.feed.posts.filter.AndFilter
             at org.jboss.mx.loading.LoadMgr3.beginLoadTask(LoadMgr3.java:212)
             at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:521)
             at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:415)
             at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
             at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
             at java.lang.Class.forName0(Native Method)
             at java.lang.Class.forName(Class.java:242)
             at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:585)
             at org.hibernate.util.SerializationHelper$CustomObjectInputStream.resolveClass(SerializationHelper.java:268)
             at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544)
             at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
             at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
             at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
             at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
             at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:210)
            


            2. Additionally, sometimes (problem no. 1 appears always), when opening the webapp, I get the java.lang.NoClassDefFoundError for the Instance or Proxy class.

            Example stacktrace:
            org.jboss.seam.InstantiationException: Could not instantiate Seam component: feedsService
             at org.jboss.seam.Component.newInstance(Component.java:1970)
             at org.jboss.seam.Component.getInstance(Component.java:1873)
             at org.jboss.seam.Component.getInstance(Component.java:1840)
             at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55)
             at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50)
             at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166)
             at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53)
             at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
             at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
             at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44)
             at org.jboss.el.parser.AstValue.getValue(AstValue.java:63)
             at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
             at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
             at javax.faces.component.ValueBindingValueExpressionAdapter.getValue(ValueBindingValueExpressionAdapter.java:102)
             at com.sun.facelets.component.UIRepeat.getValue(UIRepeat.java:143)
             at com.sun.facelets.component.UIRepeat.getDataModel(UIRepeat.java:121)
             at com.sun.facelets.component.UIRepeat.setIndex(UIRepeat.java:305)
             at com.sun.facelets.component.UIRepeat.process(UIRepeat.java:333)
             at com.sun.facelets.component.UIRepeat.encodeChildren(UIRepeat.java:617)
             at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
             at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
             at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
             at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
             at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
             at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
             at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
             at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
             at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
             at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
             at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
             at org.jboss.shotoku.web.ResourcesFilter.doFilter(ResourcesFilter.java:183)
             at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
             at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
             at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
             at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
             at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
             at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:73)
             at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
             at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
             at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
             at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
             at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
             at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
             at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
             at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
             at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
             at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
             at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
             at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
             at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
             at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
             at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
             at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:164)
             at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
             at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
             at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:406)
             at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
             at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
             at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
             at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
             at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
             at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
             at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
             at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
             at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
             at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
             at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
             at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
             at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
             at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
             at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
             at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
             at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
             at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
             at java.lang.Thread.run(Thread.java:613)
            Caused by: java.lang.RuntimeException: by java.lang.NoClassDefFoundError: org/jboss/seam/intercept/Proxy
             at org.jboss.seam.util.ProxyFactory.createClass(ProxyFactory.java:190)
             at org.jboss.seam.Component.createProxyFactory(Component.java:2260)
             at org.jboss.seam.Component.getProxyFactory(Component.java:1375)
             at org.jboss.seam.Component.wrap(Component.java:1366)
             at org.jboss.seam.Component.instantiateSessionBean(Component.java:1288)
             at org.jboss.seam.Component.instantiate(Component.java:1273)
             at org.jboss.seam.Component.newInstance(Component.java:1966)
             ... 74 more
            Caused by: javassist.CannotCompileException: by java.lang.NoClassDefFoundError: org/jboss/seam/intercept/Proxy
             at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:165)
             at org.jboss.seam.util.ProxyFactory.createClass(ProxyFactory.java:186)
             ... 80 more
            Caused by: java.lang.NoClassDefFoundError: org/jboss/seam/intercept/Proxy
             at java.lang.ClassLoader.defineClass1(Native Method)
             at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
             at sun.reflect.GeneratedMethodAccessor114.invoke(Unknown Source)
             at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
             at java.lang.reflect.Method.invoke(Method.java:585)
             at javassist.util.proxy.FactoryHelper.toClass2(FactoryHelper.java:177)
             at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:159)
             ... 81 more
            


            --
            Thanks,
            Adam

            • 3. Re: Weird classloading problem
              Pete Muir Master

              Can you give me steps to reproduce?

              • 4. Re: Weird classloading problem
                Adam Warski Master

                Hello,

                I don't know yet how to reproduce, specifically the second one. But I'm working on that :).

                I suppose the issue must be linked somehow to the jar, that is placed outside of the ear (which is supposed to hold the interfaces and model classes, which are used by other apps).

                The deserialization exception stopped showing up when I removed the <loader-repository> element from jboss-app.xml, but then Hibernate Search stopped working (it started to complain about an index on a field missing, but without any specifics ...)

                --
                Adam

                • 5. Re: Weird classloading problem
                  Pete Muir Master

                  Ok, let me know if you can tell me how to reproduce and I can take a look.

                  • 6. Re: Weird classloading problem
                    Adam Warski Master

                    I read (once again) about class loading and it seems that turning the isolated class loader repository for the ear works - almost, of course, as it breaks hibernate search, but that's a topic for another forum :)

                    --
                    Thanks,
                    Adam

                    • 7. Re: Weird classloading problem
                      Pete Muir Master

                      You want isolated class loading if you use Seam - otherwise multiple Seam apps in the same break.

                      • 8. Re: Weird classloading problem
                        Adam Warski Master

                        Ah ... right - both apps would pick up each other's components.

                        Then how can I have a Seam app with a shared set of interfaces/classes?

                        If I package it as a jar, put it in server/default/lib or server/default/deploy, then:
                        1. it doesn't work because of the issues above
                        2. if the seam app uses the classes first, they will be loaded into the scoped class loader repository and won't be available for other apps.

                        --
                        Adam

                        • 9. Re: Weird classloading problem
                          Pete Muir Master

                          (1) we need to fix this ;)
                          (2) I don't think so - there are many shared jars in default/deploy and default/lib that don't suffer from this, why should yours be different?

                          • 10. Re: Weird classloading problem
                            Adam Warski Master

                            Well, maybe the classes that are present there are used before (are loaded earlier, not by the scoped application), and so end up in the not-scope class loader repository.

                            See:
                            http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossClassLoadingUseCases,
                            use case 3 and 4.

                            But if there are classes shared among several apps, and each is scoped, then the classes never get loaded to the shared loader repository.

                            --
                            Adam

                            • 11. Re: Weird classloading problem
                              Adam Warski Master

                              Well, it turns out actually not to be true, so I either misunderstood the wiki page or it works differently than described there :).

                              I wrote two simple apps which reference the same class that is deployed parallerly to the two .ears and they are both loaded by the same classloader.

                              Though, of course, my original problem doesn't yet reproduce :)

                              --
                              Adam

                              • 12. Re: Weird classloading problem
                                Adam Warski Master

                                Argh, I can't read properly. Sorry, the wiki page has it right of course.

                                So my search continues :)

                                --
                                Adam

                                • 13. Re: Weird classloading problem
                                  Adam Warski Master

                                  Hello,

                                  for the issue with deserialization, I created a test case and an issue:
                                  http://jira.jboss.com/jira/browse/JBSEAM-2484

                                  Still, the issues with "missing" Instance and Proxy classes isn't yet reproducable :)

                                  --
                                  Adam

                                  • 14. Re: Weird classloading problem
                                    Adam Warski Master

                                    Hello,

                                    I think I have found the cause for the primary problem to, see here:
                                    http://jira.jboss.com/jira/browse/JBSEAM-2485

                                    --
                                    Adam