[esb-issues] [JBoss JIRA] Commented: (JBESB-1215) DBMessageStoreImpl not able to deserilize objects due to what appears to be a classloader/scoping issue
Tom Fennelly (JIRA)
jira-events at lists.jboss.org
Sat Oct 20 05:49:03 EDT 2007
[ http://jira.jboss.com/jira/browse/JBESB-1215?page=comments#action_12383531 ]
Tom Fennelly commented on JBESB-1215:
-------------------------------------
Just to add... the latestUserDefinedLoader method is private (as well as native) and ObjectInputStream doesn't offer any way of specifying the ClassLoader to be used.
> DBMessageStoreImpl not able to deserilize objects due to what appears to be a classloader/scoping issue
> -------------------------------------------------------------------------------------------------------
>
> Key: JBESB-1215
> URL: http://jira.jboss.com/jira/browse/JBESB-1215
> Project: JBoss ESB
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Message Store
> Affects Versions: 4.2.1 IR2
> Reporter: Tom Fennelly
> Assigned To: Kurt Stam
> Fix For: 4.2.1 triage
>
>
> I see this issue when running the deadletter quickstart.
> DBMessageStoreImpl is trying to deserialize org.jboss.internal.soa.esb.message.format.serialized.MessageImpl through Base64.decodeToObject (actually, I guess it could be could be some other class that has MessageImpl as a property, but I doubt that). Base64.decodeToObject uses ObjectInputStream, which resolves the class using the "latestUserDefinedLoader". Not sure what that is coz latestUserDefinedLoader is a native method and the javadoc means nothing to me :-) Whatever latestUserDefinedLoader is, it's not the TCCL coz I added test code to DBMessageStoreImpl and it's able to load the class through the TCCL.
> Here's the stack trace I see...
> 10:03:59,578 ERROR [STDERR] java.lang.ClassNotFoundException: org.jboss.internal.soa.esb.message.format.serialized.MessageImpl
> 10:03:59,578 ERROR [STDERR] at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> 10:03:59,578 ERROR [STDERR] at java.security.AccessController.doPrivileged(Native Method)
> 10:03:59,578 ERROR [STDERR] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> 10:03:59,578 ERROR [STDERR] at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> 10:03:59,578 ERROR [STDERR] at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> 10:03:59,578 ERROR [STDERR] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> 10:03:59,578 ERROR [STDERR] at java.lang.Class.forName0(Native Method)
> 10:03:59,578 ERROR [STDERR] at java.lang.Class.forName(Class.java:242)
> 10:03:59,578 ERROR [STDERR] at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:585)
> 10:03:59,578 ERROR [STDERR] at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544)
> 10:03:59,593 ERROR [STDERR] at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
> 10:03:59,593 ERROR [STDERR] at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
> 10:03:59,593 ERROR [STDERR] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> 10:03:59,593 ERROR [STDERR] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> 10:03:59,593 ERROR [STDERR] at org.jboss.util.Base64.decodeToObject(Base64.java:864)
> 10:03:59,593 ERROR [STDERR] at org.jboss.internal.soa.esb.persistence.format.db.DBMessageStoreImpl.getAllMessages(DBMessageStoreImpl.java:278)
> 10:03:59,593 ERROR [STDERR] at org.jboss.soa.esb.samples.quickstart.deadletter.MyFailingSyncAction.process(MyFailingSyncAction.java:69)
> 10:03:59,609 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 10:03:59,609 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 10:03:59,609 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 10:03:59,609 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:585)
> 10:03:59,609 ERROR [STDERR] at org.jboss.soa.esb.listeners.message.ActionProcessorMethodInfo.processMethods(ActionProcessorMethodInfo.java:102)
> 10:03:59,609 ERROR [STDERR] at org.jboss.soa.esb.listeners.message.OverriddenActionLifecycleProcessor.process(OverriddenActionLifecycleProcessor.java:74)
> 10:03:59,609 ERROR [STDERR] at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:273)
> 10:03:59,609 ERROR [STDERR] at org.jboss.soa.esb.listeners.message.MessageAwareListener$1.run(MessageAwareListener.java:303)
> 10:03:59,609 ERROR [STDERR] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> 10:03:59,609 ERROR [STDERR] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> 10:03:59,625 ERROR [STDERR] at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the esb-issues
mailing list