[esb-issues] [JBoss JIRA] Commented: (JBESB-1215) DBMessageStoreImpl not able to deserilize objects due to what appears to be a classloader/scoping issue

Kevin Conner (JIRA) jira-events at lists.jboss.org
Sat Oct 20 06:07:03 EDT 2007


    [ http://jira.jboss.com/jira/browse/JBESB-1215?page=comments#action_12383535 ] 
            
Kevin Conner commented on JBESB-1215:
-------------------------------------

Having checked the codebase the fix appears to be as simple as using the correct Base64 class.  Our version already uses the new class in place of ObjectInputStream.

Tom, do you want to take this and see?  It would be quicker than Kurt reproducing it.

> 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