I have a problem sending strings over RMI. I run a client that passes over a string via RMI to a server. The server does nothing except returning the same string. It works fine if the server is run on a Sun VM. Using JamVM (or Kaffe) with GNU Classpath leads to exceptions on the client side if the strings are longer than 65535 (ASCII) characters. The following exception is caused:

Client exception: java.rmi.MarshalException: error marshalling arguments; nested exception is:
       java.net.SocketException: Broken pipe
java.rmi.MarshalException: error marshalling arguments; nested exception is:
       java.net.SocketException: Broken pipe
       at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:129)
       at com.actia.rmi.strings.RMIServerImpl_Stub.InOut(Unknown Source)
       at com.actia.rmi.strings.Client.TransmitString(Client.java:45)
       at com.actia.rmi.strings.Client.main(Client.java:104)
Caused by: java.net.SocketException: Broken pipe
       at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
       at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
       at java.io.BufferedOutputStream.write(BufferedOutputStream.java:106)
at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1639) at java.io.ObjectOutputStream$BlockDataOutputStream.writeByte(ObjectOutputStream.java:1677) at java.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1354) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:281)
       at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:265)
       at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:124)
       ... 3 more

Returning Strings with more than 65535 characters from the JamVM/Kaffe server makes server and client hang (no further inspections made so far). I guess it's some 16-Bit limitation of the marshalling. Can anyone confirm this?

Lorenz


_______________________________________________
Classpath mailing list
Classpath@gnu.org
http://developer.classpath.org/mailman/listinfo/classpath

Reply via email to