--- 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);
}
}
}