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