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.
Yeah, perhaps. With the Sun JDK, that is not possible. I can only step
through code, but I can't look at anything to tell where in the object
graph I am. Without that, there's no information at all.
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
>>>>>>>
>>>>>>
>>>> weld-dev(a)lists.jboss.org
>>>>
>>>>>>
>>>>>>>
>>>>>>
>>>>
https://lists.jboss.org/mailman/listinfo/weld-dev
>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> weld-dev mailing list
>>>>>
>>>> weld-dev(a)lists.jboss.org
>>>>
>>>>>
>>>>
https://lists.jboss.org/mailman/listinfo/weld-dev
>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> weld-dev mailing list
>>> weld-dev(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/weld-dev
>>
>
>
> _______________________________________________
> weld-dev mailing list
> weld-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/weld-dev