You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by ma...@apache.org on 2008/06/10 21:49:45 UTC

svn commit: r666299 - /incubator/river/jtsk/trunk/src/net/jini/jeri/tcp/TcpEndpoint.java

Author: marbro
Date: Tue Jun 10 12:49:45 2008
New Revision: 666299

URL: http://svn.apache.org/viewvc?rev=666299&view=rev
Log:
Fix for RIVER-22.

Modified:
    incubator/river/jtsk/trunk/src/net/jini/jeri/tcp/TcpEndpoint.java

Modified: incubator/river/jtsk/trunk/src/net/jini/jeri/tcp/TcpEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/river/jtsk/trunk/src/net/jini/jeri/tcp/TcpEndpoint.java?rev=666299&r1=666298&r2=666299&view=diff
==============================================================================
--- incubator/river/jtsk/trunk/src/net/jini/jeri/tcp/TcpEndpoint.java (original)
+++ incubator/river/jtsk/trunk/src/net/jini/jeri/tcp/TcpEndpoint.java Tue Jun 10 12:49:45 2008
@@ -821,8 +821,17 @@
 
 	private final Socket socket;
 
+	// socket attributes cached to work around 4720952:
+	private final InetSocketAddress inetSocketAddress;
+	private final int socketPort;
+
 	ConnectionImpl(Socket socket) {
+	    assert socket.isConnected();
+
 	    this.socket = socket;
+	    inetSocketAddress =
+		(InetSocketAddress) socket.getRemoteSocketAddress();
+	    socketPort = socket.getPort();
 	}
 
 	Socket getSocket() {
@@ -887,13 +896,13 @@
 	void checkConnectPermission() {
 	    SecurityManager sm = System.getSecurityManager();
 	    if (sm != null) {
-		InetSocketAddress address =
-		    (InetSocketAddress) socket.getRemoteSocketAddress();
-		if (address.isUnresolved()) {
-		    sm.checkConnect(address.getHostName(), socket.getPort());
+		if (inetSocketAddress.isUnresolved()) {
+		    sm.checkConnect(inetSocketAddress.getHostName(),
+				    socketPort);
 		} else {
-		    sm.checkConnect(address.getAddress().getHostAddress(),
-				    socket.getPort());
+		    sm.checkConnect(
+			inetSocketAddress.getAddress().getHostAddress(),
+			socketPort);
 		}
 	    }
 	}