+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.
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;
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("");
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;
}