]
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: