2004-09-24 Ilya Perminov <iperminov@logicalsoft.com>

* gnu/java/rmi/server/UnicastServer.java
	(incomingMessageCall): Added code to handle Errors.
	* gnu/java/rmi/server/UnicastServerRef.java
	(incomingMessageCall): Added code to handle Errors.

From-SVN: r88030
This commit is contained in:
Ilya Perminov 2004-09-24 12:29:48 +00:00 committed by Michael Koch
parent 4a198dea28
commit c7c671b942
3 changed files with 23 additions and 1 deletions

View File

@ -1,3 +1,11 @@
2004-09-24 Ilya Perminov <iperminov@logicalsoft.com>
* gnu/java/rmi/server/UnicastServer.java
(incomingMessageCall): Added code to handle Errors.
* gnu/java/rmi/server/UnicastServerRef.java
(incomingMessageCall): Added code to handle Errors.
2004-09-24 Tom Tromey <tromey@redhat.com>
* java/lang/ClassLoader.java (loadedClasses): Declare as HashMap.

View File

@ -46,6 +46,7 @@ import java.net.InetAddress;
import java.util.Hashtable;
import java.net.UnknownHostException;
import java.rmi.Remote;
import java.rmi.ServerError;
import java.rmi.server.ObjID;
import java.rmi.server.UnicastRemoteObject;
import java.rmi.server.UID;
@ -136,6 +137,10 @@ private static void incomingMessageCall(UnicastConnection conn) throws IOExcepti
returnval = e;
returncode = RETURN_NACK;
}
catch (Error e) {
returnval = new ServerError ("An Error is thrown while processing the invocation on the server", e);
returncode = RETURN_NACK;
}
}
else {
returnval = new NoSuchObjectException("");

View File

@ -284,7 +284,16 @@ public Object incomingMessageCall(UnicastConnection conn, int method, long hash)
try{
ret = meth.invoke(myself, args);
}catch(InvocationTargetException e){
throw (Exception)(e.getTargetException());
Throwable cause = e.getTargetException();
if (cause instanceof Exception) {
throw (Exception)cause;
}
else if (cause instanceof Error) {
throw (Error)cause;
}
else {
throw new Error("The remote method threw a java.lang.Throwable that is neither java.lang.Exception nor java.lang.Error.", e);
}
}
return ret;
}