jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java
changeset 7045 525f00c555b2
parent 6301 c90a67d75c9f
child 7668 d4a77089c587
--- a/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java	Tue Nov 02 10:05:42 2010 +0000
+++ b/jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java	Tue Nov 02 10:07:21 2010 +0000
@@ -711,10 +711,8 @@
                     cachedSenderInetAddress = isa.getAddress();
                     cachedSenderPort = isa.getPort();
 
-                    // Socket was not bound before connecting,
-                    if (localAddress == null) {
-                        localAddress = Net.localAddress(fd);
-                    }
+                    // set or refresh local address
+                    localAddress = Net.localAddress(fd);
                 }
             }
         }
@@ -735,6 +733,9 @@
                     disconnect0(fd);
                     remoteAddress = null;
                     state = ST_UNCONNECTED;
+
+                    // refresh local address
+                    localAddress = Net.localAddress(fd);
                 }
             }
         }