This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] Remerge gnu.java.rmi.server.UnicastRef.java


Remerge from Classpath.  No regressions observed on i686-pc-linux-gnu.

OK to commit?

	* gnu/java/rmi/server/UnicastRef.java: Remerge from Classpath.

Index: gnu/java/rmi/server/UnicastRef.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/java/rmi/server/UnicastRef.java,v
retrieving revision 1.4
diff -u -r1.4 UnicastRef.java
--- gnu/java/rmi/server/UnicastRef.java	7 Nov 2002 18:01:05 -0000	1.4
+++ gnu/java/rmi/server/UnicastRef.java	20 Sep 2003 19:36:49 -0000
@@ -37,32 +37,24 @@
 
 package gnu.java.rmi.server;
 
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
 import java.rmi.Remote;
 import java.rmi.RemoteException;
-import java.rmi.server.RemoteRef;
-import java.rmi.server.RMISocketFactory;
+import java.rmi.server.ObjID;
+import java.rmi.server.Operation;
 import java.rmi.server.RMIClientSocketFactory;
-import java.rmi.server.RMIServerSocketFactory;
-import java.rmi.server.RemoteObject;
 import java.rmi.server.RemoteCall;
-import java.rmi.server.UnicastRemoteObject;
-import java.rmi.server.Operation;
-import java.rmi.server.ObjID;
+import java.rmi.server.RemoteObject;
+import java.rmi.server.RemoteRef;
 import java.rmi.server.UID;
-import java.lang.reflect.Method;
-import java.io.ObjectOutput;
-import java.io.ObjectInput;
-import java.io.IOException;
-import java.net.Socket;
-import java.net.InetAddress;
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-import java.lang.reflect.InvocationTargetException;
 
 public class UnicastRef
 	implements RemoteRef, ProtocolConstants {
@@ -73,8 +65,9 @@
 /**
  * Used by serialization, and let subclass capable of having default constructor
  */
-//private 
-UnicastRef() {
+// must be public otherwise java.rmi.RemoteObject cannot instantiate this class
+// -- iP
+public UnicastRef() {
 }
 
 public UnicastRef(ObjID objid, String host, int port, RMIClientSocketFactory csf) {
@@ -90,7 +83,10 @@
     // Check if client and server are in the same VM, then local call can be used to
     // replace remote call, but it's somewhat violating remote semantic.
     Object svrobj = manager.serverobj;
-    if(svrobj != null){
+    
+    // Make sure that the server object is compatible. It could be loaded from a different
+    // classloader --iP
+    if(svrobj != null && method.getDeclaringClass().isInstance(svrobj)){
         //local call
 		Object ret = null;
 		try{

-- 
Nathanael Nerode  <neroden at gcc.gnu.org>
http://home.twcny.rr.com/nerode/neroden/fdl.html


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]