summaryrefslogtreecommitdiffstats
path: root/libjava/gnu/java/rmi/server/UnicastConnectionManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/java/rmi/server/UnicastConnectionManager.java')
-rw-r--r--libjava/gnu/java/rmi/server/UnicastConnectionManager.java29
1 files changed, 17 insertions, 12 deletions
diff --git a/libjava/gnu/java/rmi/server/UnicastConnectionManager.java b/libjava/gnu/java/rmi/server/UnicastConnectionManager.java
index 3b9aa40e0b8..b7a505d2084 100644
--- a/libjava/gnu/java/rmi/server/UnicastConnectionManager.java
+++ b/libjava/gnu/java/rmi/server/UnicastConnectionManager.java
@@ -59,6 +59,7 @@ import java.util.Hashtable;
import java.util.Iterator;
import gnu.java.rmi.server.UnicastConnection;
+import gnu.java.rmi.server.RMIIncomingThread;
public class UnicastConnectionManager
implements Runnable, ProtocolConstants {
@@ -173,20 +174,16 @@ private UnicastConnectionManager(String host, int port, RMIClientSocketFactory c
/**
* Server UnicastConnectionManager constructor
*/
-private UnicastConnectionManager(int port, RMIServerSocketFactory ssf) {
+private UnicastConnectionManager(int port, RMIServerSocketFactory ssf) throws RemoteException {
+
try {
ssock = ssf.createServerSocket(port);
serverPort = ssock.getLocalPort();
}
- catch (IOException _) {
- try {
- ssock = ssf.createServerSocket(0);
- serverPort = ssock.getLocalPort();
- }
- catch (IOException __) {
- ssock = null;
- serverPort = 0;
- }
+ catch (IOException ioex) {
+ ssock = null;
+ serverPort = 0;
+ throw new java.rmi.server.ExportException("can not create Server Socket on port " + port,ioex);
}
serverName = localhost;
serverFactory = ssf;
@@ -230,7 +227,7 @@ public static synchronized UnicastConnectionManager getInstance(String host, int
* Return a server connection manager which will accept connection on the
* given port.
*/
-public static synchronized UnicastConnectionManager getInstance(int port, RMIServerSocketFactory ssf) {
+public static synchronized UnicastConnectionManager getInstance(int port, RMIServerSocketFactory ssf) throws RemoteException {
//System.out.println("getInstance: " + port + "," + ssf);
if (ssf == null) {
ssf = defaultSocketFactory;
@@ -376,9 +373,17 @@ public void run() {
try {
//System.out.println("Waiting for connection on " + serverPort);
UnicastConnection conn = getServerConnection();
+
+ // get address of remote host for the RMIIncomingThread object
+ String remoteHost = null;
+ if (conn.sock != null) {
+ remoteHost = conn.sock.getInetAddress().getHostAddress();
+ }
+
// use a thread pool to improve performance
//ConnectionRunnerPool.dispatchConnection(conn);
- (new Thread(conn)).start();
+ (new RMIIncomingThread(conn, remoteHost)).start();
+// (new Thread(conn)).start();
}
catch (Exception e) {
e.printStackTrace();
OpenPOWER on IntegriCloud