RMIIncomingThread.java: New file.
2004-03-20 Norbert Frese <postfach@nfrese.net> * gnu/java/rmi/server/RMIIncomingThread.java: New file. * gcc/libjava/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'. * gcc/libjava/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. * gcc/libjava/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. * gcc/libjava/gnu/java/rmi/server/UnicastRemoteCall.java: Start a new RMIObjectInputStream/RMIObjectOutputStream for every rmi-message. * gcc/libjava/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. * gcc/libjava/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. * gcc/libjava/java/rmi/server/RemoteServer.java (getClientHost): Implementated. * gcc/libjava/Makefile.am (rmi_java_source_files): Added gnu/java/rmi/server/RMIIncomingThread.java. * Makefile.in: Regenerated. From-SVN: r79755
This commit is contained in:
parent
079f946dad
commit
f903e73b80
11 changed files with 247 additions and 34 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue