RMI and String marshalling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Kernel]     [Linux Cryptography]     [Fedora]     [Fedora Directory]     [Red Hat Development]

  Powered by Linux