-
Dec 18th, 2008, 06:28 AM
#1
EOFException (Spring Remoting & Terracotta)
Hi,
I've a client/server application which communicates using Spring RMI.The server side cache is replicated using terracotta (this cache has POJOs).When a service is invoked by the client side,it gets a list of these POJOs.During this invocation,I get following exception:
Caused by: java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.ja va:375)
at java.io.ObjectInputStream$BlockDataInputStream.rea dInt(ObjectInputStr
eam.java:2776)
at java.io.ObjectInputStream.readInt(ObjectInputStrea m.java:950)
at java.util.ArrayList.readObject(ArrayList.java:588)
at sun.reflect.GeneratedMethodAccessor24.invoke(Unkno wn Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectS treamClass.java:974
)
at java.io.ObjectInputStream.readSerialData(ObjectInp utStream.java:1849)
at java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1
753)
at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(Object InputStream.java:19
47)
at java.io.ObjectInputStream.readSerialData(ObjectInp utStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1
Any idea,what might be causing this ?
I think terracotta does its own magic to replicate these POJOs which are part of the response and the Spring client side is not able to understand this "modified" response.
Thanks,
ROhit
-
Dec 19th, 2008, 12:27 AM
#2
Hello,
Would it be possible for you to paste the full stack trace? With the excerpt that you pasted we can only see the call stack inside the JDK, nothing related to Spring or Terracotta can be seen.
Best regards,
Geert
-
Dec 19th, 2008, 12:34 AM
#3
Ok.
Here's the stack trace which is printed before the one I had pasted in my earlier post.
org.springframework.remoting.RemoteConnectFailureE xception: Cannot connect to re
mote service [rmi://localhost:1199/MyService]; nested exception is java
.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.EOFException
at org.springframework.remoting.rmi.RmiClientIntercep torUtils.convertRmi
AccessException(RmiClientInterceptorUtils.java:177 )
at org.springframework.remoting.rmi.RmiClientIntercep tor.doInvoke(RmiCli
entInterceptor.java:340)
at org.springframework.remoting.rmi.RmiClientIntercep tor.invoke(RmiClien
tInterceptor.java:257)
at org.springframework.aop.framework.ReflectiveMethod Invocation.proceed(
ReflectiveMethodInvocation.java:166)
at org.springframework.aop.framework.JdkDynamicAopPro xy.invoke(JdkDynami
cAopProxy.java:204)
at $Proxy49.searchByCriteria(Unknown Source)
I don't see any exception related to Terracotta classes.Does Terracotta kind of "enhance" the classes which is causing the trouble,any idea ?
-
Dec 19th, 2008, 11:49 PM
#4
Sure.
Here is Spring related stack trace:
Caused by: java.rmi.UnmarshalException: error unmarshalling return; nested excep
tion is:
java.io.EOFException
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:1 73)
at org.springframework.remoting.rmi.RmiInvocationWrap per_Stub.invoke(Unk
nown Source)
at org.springframework.remoting.rmi.RmiClientIntercep tor.doInvoke(RmiCli
entInterceptor.java:391)
at org.springframework.remoting.rmi.RmiClientIntercep tor.doInvoke(RmiCli
entInterceptor.java:337)
... 31 more
Caused by: java.io.EOFException
at java.io.DataInputStream.readInt(DataInputStream.ja va:375)
at java.io.ObjectInputStream$BlockDataInputStream.rea dInt(ObjectInputStr
eam.java:2776)
at java.io.ObjectInputStream.readInt(ObjectInputStrea m.java:950)
at java.util.ArrayList.readObject(ArrayList.java:588)
at sun.reflect.GeneratedMethodAccessor25.invoke(Unkno wn Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectS treamClass.java:974
)
at java.io.ObjectInputStream.readSerialData(ObjectInp utStream.java:1849)
at java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1
753)
at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(Object InputStream.java:19
47)
at java.io.ObjectInputStream.readSerialData(ObjectInp utStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1
753)
at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:351)
at java.util.ArrayList.readObject(ArrayList.java:593)
at sun.reflect.GeneratedMethodAccessor25.invoke(Unkno wn Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectS treamClass.java:974
)
at java.io.ObjectInputStream.readSerialData(ObjectInp utStream.java:1849)
at java.io.ObjectInputStream.readOrdinaryObject(Objec tInputStream.java:1
753)
at java.io.ObjectInputStream.readObject0(ObjectInputS tream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputSt ream.java:351)
at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRe f.java:306)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:1 55)
... 34 more
On further investigations,I found that this is happening for a particular POJO that has its member variable of type ArrayList.
Thanks,
ROhit
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules