ObjectInputStream.java (resolveProxyClass): New method from Classpath.
* java/io/ObjectInputStream.java (resolveProxyClass): New method from Classpath. * Makefile.in: Rebuilt. * Makefile.am (rmi_java_source_files): Added new files. * gnu/java/rmi/RMIMarshalledObjectInputStream.java, gnu/java/rmi/RMIMarshalledObjectOutputStream.java, gnu/java/rmi/server/ConnectionRunnerPool.java: New files from Classpath. * gnu/java/rmi/dgc/DGCImpl.java, gnu/java/rmi/dgc/DGCImpl_Skel.java, gnu/java/rmi/dgc/DGCImpl_Stub.java, gnu/java/rmi/registry/RegistryImpl_Skel.java, gnu/java/rmi/registry/RegistryImpl_Stub.java, gnu/java/rmi/server/RMIHashes.java, gnu/java/rmi/server/RMIObjectInputStream.java, gnu/java/rmi/server/RMIObjectOutputStream.java, gnu/java/rmi/server/UnicastConnection.java, gnu/java/rmi/server/UnicastConnectionManager.java, gnu/java/rmi/server/UnicastRef.java, gnu/java/rmi/server/UnicastServer.java, gnu/java/rmi/server/UnicastServerRef.java, java/rmi/MarshalledObject.java, java/rmi/server/RMIClassLoader.java, java/rmi/server/RemoteObject.java, java/rmi/server/UnicastRemoteObject.java, java/security/SecureClassLoader.java: Merged from Classpath. From-SVN: r57675
This commit is contained in:
parent
e3e3815b7f
commit
d74732f5cd
28 changed files with 1175 additions and 156 deletions
|
@ -57,9 +57,12 @@ public class UnicastConnectionManager
|
|||
implements Runnable, ProtocolConstants {
|
||||
|
||||
private static String localhost;
|
||||
// use different maps for server/client type UnicastConnectionManager
|
||||
private static Hashtable servers = new Hashtable();
|
||||
private static Hashtable clients = new Hashtable();
|
||||
|
||||
private Thread serverThread;
|
||||
// make serverThread volatile for poll
|
||||
private volatile Thread serverThread;
|
||||
private ServerSocket ssock;
|
||||
String serverName;
|
||||
int serverPort;
|
||||
|
@ -68,7 +71,9 @@ private RMIClientSocketFactory clientFactory;
|
|||
|
||||
static {
|
||||
try {
|
||||
localhost = InetAddress.getLocalHost().getHostName();
|
||||
//Use host address instead of host name to avoid name resolving issues
|
||||
//localhost = InetAddress.getLocalHost().getHostName();
|
||||
localhost = InetAddress.getLocalHost().getHostAddress();
|
||||
}
|
||||
catch (UnknownHostException _) {
|
||||
localhost = "localhost";
|
||||
|
@ -112,11 +117,16 @@ public static synchronized UnicastConnectionManager getInstance(String host, int
|
|||
if (csf == null) {
|
||||
csf = RMISocketFactory.getSocketFactory();
|
||||
}
|
||||
// change host name to host address to avoid name resolving issues
|
||||
try{
|
||||
host = InetAddress.getByName(host).getHostAddress();
|
||||
}catch(Exception _){}
|
||||
|
||||
TripleKey key = new TripleKey(host, port, csf);
|
||||
UnicastConnectionManager man = (UnicastConnectionManager)servers.get(key);
|
||||
UnicastConnectionManager man = (UnicastConnectionManager)clients.get(key);
|
||||
if (man == null) {
|
||||
man = new UnicastConnectionManager(host, port, csf);
|
||||
servers.put(key, man);
|
||||
clients.put(key, man);
|
||||
}
|
||||
return (man);
|
||||
}
|
||||
|
@ -198,18 +208,34 @@ public void startServer() {
|
|||
serverThread.start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop a server on this manager
|
||||
*/
|
||||
public void stopServer() {
|
||||
synchronized(this) {
|
||||
if(serverThread != null){
|
||||
serverThread = null;
|
||||
try{
|
||||
ssock.close();
|
||||
}catch(Exception _){}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Server thread for connection manager.
|
||||
*/
|
||||
public void run() {
|
||||
for (;;) {
|
||||
for (;serverThread != null;) { // if serverThread==null, then exit thread
|
||||
try {
|
||||
//System.out.println("Waiting for connection on " + serverPort);
|
||||
UnicastConnection conn = getServerConnection();
|
||||
(new Thread(conn)).start();
|
||||
// use a thread pool to improve performance
|
||||
// (new Thread(conn)).start();
|
||||
ConnectionRunnerPool.dispatchConnection(conn);
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
// e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue