summaryrefslogtreecommitdiff
path: root/gnu/java/rmi/server/UnicastConnection.java
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2004-03-21 10:10:14 +0000
committerMichael Koch <konqueror@gmx.de>2004-03-21 10:10:14 +0000
commit1ea4bde3447a9c4e437be979b5dc8860d89031cd (patch)
treeb8743b4206429436c98f9e24b4101497e131d09b /gnu/java/rmi/server/UnicastConnection.java
parent9e70865e826bf2816d7343924e003fe24d42b07f (diff)
downloadclasspath-1ea4bde3447a9c4e437be979b5dc8860d89031cd.tar.gz
2004-03-21 Norbert Frese <postfach@nfrese.net>
* gnu/java/rmi/server/RMIIncomingThread.java: New file. * gnu/java/rmi/server/UnicastConnection.java: Create a new RMIObjectOuputStream/RMIObjectInputStream for every rmi-message. (getObjectInputStream): Return object reference, throw IOException if null. (startObjectInputStream): Create new RMIObjectInputStream on top of 'din'. (getObjectOutputStream): Return object reference, throw IOException if null. (startObjectOutputStream): Create new RMIObjectOutputStream on top of 'dout'. * gnu/java/rmi/server/UnicastConnectionManager.java: (UnicastConnectionManager): Throw RemoteException if port is not available. (getInstance): Throw RemoteException. (run): Lookup client host and attach it to new RMIIncomingThread for later retrieval. * gnu/java/rmi/server/UnicastRef.java: Start a new RMIObjectInputStream/RMIObjectOutputStream for every rmi-message. Collect Exceptions which are returned by a rmi-call and fix void returns. * gnu/java/rmi/server/UnicastRemoteCall.java: Start a new RMIObjectInputStream/RMIObjectOutputStream for every rmi-message. * gnu/java/rmi/server/UnicastServer.java: (dispatch): Answer ping messages which are sent by other java implementions. (incomingMessageCall): Start a new RMIObjectInputStream/RMIObjectOutputStream for every rmi-message and fix void return problems. * gnu/java/rmi/server/UnicastServerRef.java (UnicastServerRef): Throw RemoteException. (exportObject): Find the class up the class hierarchy which has a _Stub generated by rmic. In some situations it is necessary to export a subclass of the class which has the _Stub. For instance when the class with has the _Stub is abstract. (findStubSkelClass): New method which looks for the class which has the _Stub. (getClientHost): Implementated. * java/rmi/server/RemoteServer.java (getClientHost): Implemented. * gnu/java/rmi/server/Makefile.am (EXTRA_DIST): RMIIncomingThread.java.
Diffstat (limited to 'gnu/java/rmi/server/UnicastConnection.java')
-rw-r--r--gnu/java/rmi/server/UnicastConnection.java36
1 files changed, 33 insertions, 3 deletions
diff --git a/gnu/java/rmi/server/UnicastConnection.java b/gnu/java/rmi/server/UnicastConnection.java
index 14d28f26c..19e074a08 100644
--- a/gnu/java/rmi/server/UnicastConnection.java
+++ b/gnu/java/rmi/server/UnicastConnection.java
@@ -104,6 +104,7 @@ void acceptConnection() throws IOException {
void makeConnection(int protocol) throws IOException {
//Use BufferedXXXStream would be more efficient
din = new DataInputStream(new BufferedInputStream(sock.getInputStream()));
+
dout = new DataOutputStream(new BufferedOutputStream(sock.getOutputStream()));
// Send header
@@ -139,20 +140,48 @@ DataOutputStream getDataOutputStream() throws IOException {
return (dout);
}
+/*
+*
+* get ObjectInputStream for reading more objects
+*
+*/
ObjectInputStream getObjectInputStream() throws IOException {
if (oin == null) {
- oin = new RMIObjectInputStream(din);
+ throw new IOException("no ObjectInputtream for reading more objects");
}
return (oin);
}
+/**
+*
+* starts ObjectInputStream.
+*
+*/
+ObjectInputStream startObjectInputStream() throws IOException {
+ return (oin = new RMIObjectInputStream(din));
+}
+
+/**
+*
+* get ObjectOutputStream for sending more objects
+*
+*/
ObjectOutputStream getObjectOutputStream() throws IOException {
if (oout == null) {
- oout = new RMIObjectOutputStream(dout);
- }
+ throw new IOException("no ObjectOutputStream for sending more objects");
+ }
return (oout);
}
+/**
+*
+* starts ObjectOutputStream.
+*
+*/
+ObjectOutputStream startObjectOutputStream() throws IOException {
+ return (oout = new RMIObjectOutputStream(dout));
+}
+
void disconnect() {
try {
if(oout != null)
@@ -200,4 +229,5 @@ public void run() {
}while(true);
}
+
}