I really see no way at the moment to do this with Sun JDK. It is a long standing issue that there is no variable debug symbol info in the JRE, and debugging object streams is very difficult.
Pete - if you really have the debug symbols, you may need to take a look at this. Am Mittwoch, den 26.05.2010, 15:37 +0100 schrieb Pete Muir: > The only way I know to do it is to do it manually by breaking on the > exception and working back up through the serialization calls and construct > it on a piece of paper. > > I guess the Mac has debug symbols inside the JDK as I can break / debug them > fine. > > On 26 May 2010, at 15:21, David Allen wrote: > > > At the moment, I am not sure how to go about tracing through the call > > graph. I think it would require a JDK with a debug version of the rt in > > oder to evaluate the symbols. > > > > I also have very limited time this week, so I cannot do this very fast. > > > > Am Mittwoch, den 26.05.2010, 12:27 +0100 schrieb Pete Muir: > >> Sorry, call stack was the wrong word - I mean the stack of objects that > >> are being serialized - i.e. what is the path through the object graph to > >> deserialization failure. > >> > >> On 26 May 2010, at 12:24, David Allen wrote: > >> > >>> Do you mean where in the test we deserialize the EJB? I didn't think it > >>> was very interesting since it is rather clear from the test where the > >>> serialization and deserialization occur. Below is the stack trace for > >>> the actual deserialization which occurs immediately after the > >>> serialization with the same initial call stack: > >>> > >>> FAILED: testSerializeSFSB > >>> org.jboss.weld.exceptions.WeldException: WELD-001500 Failed to > >>> deserialize proxy object > >>> at > >>> org.jboss.weld.bean.proxy.util.SerializableProxy.readObject(SerializableProxy.java:124) > >>> at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) > >>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) > >>> at > >>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > >>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > >>> at > >>> org.jboss.jsr299.tck.AbstractJSR299Test.deserialize(AbstractJSR299Test.java:63) > >>> at > >>> org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest.testSerializeSFSB(EnterpriseBeanLifecycleTest.java:102) > >>> at org.jboss.testharness.AbstractTest.run(AbstractTest.java:244) > >>> at org.jboss.testharness.impl.runner.TestRunner.run(TestRunner.java:61) > >>> at > >>> org.jboss.testharness.impl.runner.servlet.ServletTestRunner.doGet(ServletTestRunner.java:120) > >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) > >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) > >>> at > >>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:336) > >>> at > >>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) > >>> at > >>> org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:68) > >>> at > >>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) > >>> at > >>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) > >>> at > >>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:293) > >>> at > >>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > >>> at > >>> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183) > >>> at > >>> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95) > >>> at > >>> org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) > >>> at > >>> org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) > >>> 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:158) > >>> at > >>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > >>> at > >>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) > >>> at > >>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:872) > >>> at > >>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) > >>> at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) > >>> at java.lang.Thread.run(Thread.java:619) > >>> at > >>> org.jboss.weld.bean.proxy.util.SerializableProxy.readObject(SerializableProxy.java:120) > >>> ... 62 more > >>> > >>> Am Mittwoch, den 26.05.2010, 12:14 +0100 schrieb Pete Muir: > >>>> Have you worked out what the call stack to the serialization is? > >>>> On 26 May 2010, at 12:09, David Allen wrote: > >>>> > >>>>> The stack trace for the test that is failing is below. If anyone has > >>>>> any ideas on why this happens, it would be greatly appreciated. My > >>>>> guess is that during deserialization of the > >>>>> EnterpriseBeanProxyMethodHandler, the SessionObjectReference from the > >>>>> SPI cannot be deserialized. I am not even sure how valid it is in the > >>>>> first place for an app to serialize that and later deserialize it. > >>>>> > >>>>> Is it designed for this purpose? Is it going to work across servers in > >>>>> a cluster environment? > >>>>> > >>>>> Caused by: java.lang.ClassNotFoundException: > >>>>> org.jboss.reloaded.naming.deployers.mc.MCJavaEEModule > >>>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:202) > >>>>> at java.security.AccessController.doPrivileged(Native Method) > >>>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:190) > >>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:307) > >>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:248) > >>>>> at java.lang.Class.forName0(Native Method) > >>>>> at java.lang.Class.forName(Class.java:247) > >>>>> at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604) > >>>>> at > >>>>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575) > >>>>> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) > >>>>> at java.io.ObjectInputStream.readClass(ObjectInputStream.java:1462) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1312) > >>>>> at > >>>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) > >>>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > >>>>> at > >>>>> org.jboss.util.collection.ConcurrentSkipListMap.readObject(ConcurrentSkipListMap.java:1771) > >>>>> at > >>>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) > >>>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at > >>>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) > >>>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at > >>>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) > >>>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > >>>>> at > >>>>> java.util.concurrent.CopyOnWriteArrayList.readObject(CopyOnWriteArrayList.java:845) > >>>>> at > >>>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) > >>>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > >>>>> at > >>>>> org.jboss.deployers.structure.spi.helpers.AbstractDeploymentContext.readExternal(AbstractDeploymentContext.java:1157) > >>>>> at > >>>>> org.jboss.deployers.vfs.plugins.structure.AbstractVFSDeploymentContext.readExternal(AbstractVFSDeploymentContext.java:558) > >>>>> at > >>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > >>>>> at java.util.TreeMap.buildFromSorted(TreeMap.java:2380) > >>>>> at java.util.TreeMap.buildFromSorted(TreeMap.java:2396) > >>>>> at java.util.TreeMap.buildFromSorted(TreeMap.java:2322) > >>>>> at java.util.TreeMap.readTreeSet(TreeMap.java:2274) > >>>>> at java.util.TreeSet.readObject(TreeSet.java:518) > >>>>> at > >>>>> java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) > >>>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > >>>>> at > >>>>> org.jboss.deployers.structure.spi.helpers.AbstractDeploymentContext.readExternal(AbstractDeploymentContext.java:1156) > >>>>> at > >>>>> org.jboss.deployers.vfs.plugins.structure.AbstractVFSDeploymentContext.readExternal(AbstractVFSDeploymentContext.java:558) > >>>>> at > >>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > >>>>> at > >>>>> org.jboss.deployers.structure.spi.helpers.AbstractDeploymentContext.readExternal(AbstractDeploymentContext.java:1154) > >>>>> at > >>>>> org.jboss.deployers.vfs.plugins.structure.AbstractVFSDeploymentContext.readExternal(AbstractVFSDeploymentContext.java:558) > >>>>> at > >>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > >>>>> at > >>>>> org.jboss.deployers.structure.spi.helpers.AbstractDeploymentUnit.readExternal(AbstractDeploymentUnit.java:514) > >>>>> at > >>>>> java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at > >>>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) > >>>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at > >>>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) > >>>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at > >>>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) > >>>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at > >>>>> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) > >>>>> at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) > >>>>> at > >>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) > >>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) > >>>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) > >>>>> at > >>>>> org.jboss.weld.lang.Object_$$_WeldProxy.deserializeProxy(Object_$$_WeldProxy.java) > >>>>> ... 67 more > >>>>> ... Removed 47 stack frames > >>>>> > >>>>> Am Mittwoch, den 26.05.2010, 12:05 +0200 schrieb David Allen: > >>>>>> All the tests are now passing except for the following: > >>>>>> > >>>>>> testSerializeSFSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest) > >>>>>> > >>>>>> This requires more investigation since the test involves serializing > >>>>>> EJB > >>>>>> container objects not normally accessible from the app. > >>>>>> > >>>>>> - David > >>>>>> > >>>>>> Am Freitag, den 21.05.2010, 22:57 +0100 schrieb Pete Muir: > >>>>>>> All > >>>>>>> > >>>>>>> I've worked through the incontainer test failures we were seeing with > >>>>>>> Weld, and I am now down to these locally: > >>>>>>> > >>>>>>> > >>>>>>> testSerializeSFSB(org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest) > >>>>>>> > >>>>>>> testPassivationOfPersistenceContext(org.jboss.jsr299.tck.tests.implementation.simple.resource.persistenceContext.PersistenceContextInjectionTest) > >>>>>>> > >>>>>>> testPassivationOfPersistenceUnit(org.jboss.jsr299.tck.tests.implementation.simple.resource.persistenceContext.PersistenceContextInjectionTest) > >>>>>>> > >>>>>>> All of which are related to serialization of proxies. David is going > >>>>>>> to take a look on Sunday at these. > >>>>>>> > >>>>>>> If you see other failures locally, please investigate or discuss :-) > >>>>>>> > >>>>>>> Pete > >>>>>>> > >>>>>>> > >>>>>>> _______________________________________________ > >>>>>>> weld-dev mailing list > >>>>>>> > >>>>>> > >>>> [email protected] > >>>> > >>>>>> > >>>>>>> > >>>>>> > >>>> https://lists.jboss.org/mailman/listinfo/weld-dev > >>>> > >>>>>> > >>>>>> > >>>>>> > >>>>> > >>>>> _______________________________________________ > >>>>> weld-dev mailing list > >>>>> > >>>> [email protected] > >>>> > >>>>> > >>>> https://lists.jboss.org/mailman/listinfo/weld-dev > >>>> > >>>> > >>>> > >>> > >>> _______________________________________________ > >>> weld-dev mailing list > >>> [email protected] > >>> https://lists.jboss.org/mailman/listinfo/weld-dev > >> > > > > > > _______________________________________________ > > weld-dev mailing list > > [email protected] > > https://lists.jboss.org/mailman/listinfo/weld-dev > _______________________________________________ weld-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/weld-dev
