aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu/java/rmi/server/UnicastRemoteCall.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/java/rmi/server/UnicastRemoteCall.java')
-rw-r--r--libjava/gnu/java/rmi/server/UnicastRemoteCall.java19
1 files changed, 17 insertions, 2 deletions
diff --git a/libjava/gnu/java/rmi/server/UnicastRemoteCall.java b/libjava/gnu/java/rmi/server/UnicastRemoteCall.java
index 2d7d6d4..76dd8e2 100644
--- a/libjava/gnu/java/rmi/server/UnicastRemoteCall.java
+++ b/libjava/gnu/java/rmi/server/UnicastRemoteCall.java
@@ -138,6 +138,21 @@ public class UnicastRemoteCall
oout.flush();
}
+ /**
+ *
+ * (re)starts ObjectInputStream
+ *
+ */
+ public ObjectInput startInputStream() throws IOException
+ {
+ if (conn != null) {
+ return (oin = conn.startObjectInputStream());
+ } else {
+ return getInputStream(); // dummy Input Stream
+ }
+
+ }
+
public ObjectInput getInputStream() throws IOException
{
if (conn != null)
@@ -177,7 +192,7 @@ public class UnicastRemoteCall
DataOutputStream dout = conn.getDataOutputStream();
dout.write(MESSAGE_CALL);
- oout = conn.getObjectOutputStream();
+ oout = conn.startObjectOutputStream(); // (re)start ObjectOutputStream
objid.write(oout);
oout.writeInt(opnum);
oout.writeLong(hash);
@@ -194,7 +209,7 @@ public class UnicastRemoteCall
if (din.readByte() != MESSAGE_CALL_ACK)
throw new RemoteException("Call not acked");
- oin = getInputStream();
+ oin = startInputStream();
returncode = oin.readByte();
UID.read(oin);
}