... until the collector arrives ...

This "blog" is really just a scratchpad of mine. There is not much of general interest here. Most of the content is scribbled down "live" as I discover things I want to remember. I rarely go back to correct mistakes in older entries. You have been warned :)

2005-11-30

BEA vs JDK 1.5

When I tried to run the SDO client tutorial code from the AquaLogic Data Services Platform example, I got an obnoxious stack trace:

Exception in thread "main" com.bea.ld.dsmediator.client.exception.SDOMediatorException: com.bea.ld.dsmediator.client.exception.SDOMediatorException: weblogic.rjvm.PeerGoneException: ; nested exception is: 
	java.io.EOFException
	at com.bea.ld.dsmediator.client.XmlDataServiceBase.invoke(XmlDataServiceBase.java:117)
	at com.mm.provisional.bea.sandbox.SdoReader.test(SdoReader.java:34)
	at com.mm.provisional.bea.sandbox.SdoReader.main(SdoReader.java:64)
Caused by: com.bea.ld.dsmediator.client.exception.SDOMediatorException: weblogic.rjvm.PeerGoneException: ; nested exception is: 
	java.io.EOFException
	at com.bea.ld.dsmediator.client.XmlDataServiceBase.invokeQuery(XmlDataServiceBase.java:188)
	at com.bea.ld.dsmediator.client.XmlDataServiceBase.invoke(XmlDataServiceBase.java:105)
	... 2 more
Caused by: weblogic.rjvm.PeerGoneException: ; nested exception is: 
	java.io.EOFException
	at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
	at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290)
	at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:247)
	at com.bea.ld.Server_ydm4ie_EOImpl_814_WLStub.executeFunction(Unknown Source)
	at com.bea.ld.dsmediator.client.XmlDataServiceBase.invokeQuery(XmlDataServiceBase.java:160)
	... 3 more
Caused by: java.io.EOFException
	at weblogic.rjvm.t3.T3JVMConnection.endOfStream(T3JVMConnection.java:874))
	at weblogic.socket.SocketMuxer.deliverExceptionAndCleanup(SocketMuxer.java:583)
	at weblogic.socket.SocketMuxer.deliverEndOfStream(SocketMuxer.java:533)
	at weblogic.socket.SocketMuxer.readReadySocketOnce(SocketMuxer.java:691)
	at weblogic.socket.SocketMuxer.readReadySocket(SocketMuxer.java:638)
	at weblogic.socket.JavaSocketMuxer.processSockets(JavaSocketMuxer.java:282)
	at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)

On the server side, the stacktrace is:

java.io.InvalidClassException: javax.xml.namespace.QName; local class incompatible: stream classdesc serialVersionUID = 4418622981026545151, local class serialVersionUID = -9120448754896609940
        at java.io.ObjectStreamClass.initNonProxy(Ljava.io.ObjectStreamClass;Ljava.lang.Class;Ljava.lang.ClassNotFoundException;Ljava.io.ObjectStreamClass;)V(Unknown Source)
        at java.io.ObjectInputStream.readNonProxyDesc(Z)Ljava.io.ObjectStreamClass;(Unknown Source)
        at java.io.ObjectInputStream.readClassDesc(Z)Ljava.io.ObjectStreamClass;(Unknown Source)
        at java.io.ObjectInputStream.readObject0(Z)Ljava.lang.Object;(Unknown Source)
        at java.io.ObjectInputStream.readObject()Ljava.lang.Object;(Unknown Source)
        at weblogic.rjvm.ClassTableEntry.readExternal(Ljava.io.ObjectInput;)V(ClassTableEntry.java:33)
        at java.io.ObjectInputStream.readExternalData(Ljava.io.Externalizable;Ljava.io.ObjectStreamClass;)V(Unknown Source)
        at java.io.ObjectInputStream.readOrdinaryObject(Z)Ljava.lang.Object;(Unknown Source)
        at java.io.ObjectInputStream.readObject0(Z)Ljava.lang.Object;(Unknown Source)
        at java.io.ObjectInputStream.readObject()Ljava.lang.Object;(Unknown Source)
        at weblogic.rjvm.InboundMsgAbbrev.readObject(Lweblogic.common.internal.ChunkedObjectInputStream;)Ljava.lang.Object;(InboundMsgAbbrev.java:65)
        at weblogic.rjvm.InboundMsgAbbrev.read(Lweblogic.common.internal.ChunkedObjectInputStream;Lweblogic.rjvm.BubblingAbbrever;)V(InboundMsgAbbrev.java:37)
        at weblogic.rjvm.MsgAbbrevJVMConnection.readMsgAbbrevs(Lweblogic.rjvm.MsgAbbrevInputStream;)V(MsgAbbrevJVMConnection.java:210)
        at weblogic.rjvm.MsgAbbrevInputStream.readMessageContext()V(MsgAbbrevInputStream.java:235)
        at weblogic.rjvm.ConnectionManager.dispatch(Lweblogic.rjvm.MsgAbbrevJVMConnection;Lweblogic.utils.io.Chunk;)V(ConnectionManager.java:735)
        at weblogic.rjvm.t3.T3JVMConnection.dispatch()V(T3JVMConnection.java:760)
        at weblogic.socket.NTSocketMuxer.processSockets()V(NTSocketMuxer.java:105)
        at weblogic.socket.SocketReaderRequest.execute(Lweblogic.kernel.ExecuteThread;)V(SocketReaderRequest.java:32)
        at weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest;)V(ExecuteThread.java:219)
        at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:178)
        at java.lang.Thread.startThreadFromVM(Ljava.lang.Thread;)V(Unknown Source)

This indicates that the standard Java class QName has changed.

The BEA support pages were no help, but after some experimentation I found out that the error only occurred using JDK 1.5.  If I ran under JDK 1.4.2, the problem disappeared.  This was the second JDK 1.5 incompatibility that I have observed in the last few days, but I cannot remember what the other one was (should have written a diary entry).

Blog Archive