OpenJDK / amber / amber
changeset 8185:6bf10e071117
7016898: PlainSocketImpl.fd is null on Windows
Reviewed-by: alanb
author | chegar |
---|---|
date | Mon, 07 Feb 2011 14:08:47 +0000 |
parents | 526b9179a2bb |
children | cbd5448015d8 |
files | jdk/src/windows/classes/java/net/PlainSocketImpl.java |
diffstat | 1 files changed, 23 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/jdk/src/windows/classes/java/net/PlainSocketImpl.java Mon Feb 07 13:55:40 2011 +0000 +++ b/jdk/src/windows/classes/java/net/PlainSocketImpl.java Mon Feb 07 14:08:47 2011 +0000 @@ -138,6 +138,9 @@ protected synchronized void create(boolean stream) throws IOException { impl.create(stream); + + // set fd to delegate's fd to be compatible with older releases + this.fd = impl.fd; } protected void connect(String host, int port) @@ -166,7 +169,7 @@ impl.doConnect(address, port, timeout); } - protected synchronized void bind(InetAddress address, int lport) + protected synchronized void bind(InetAddress address, int lport) throws IOException { impl.bind(address, lport); @@ -174,9 +177,13 @@ protected synchronized void accept(SocketImpl s) throws IOException { // pass in the real impl not the wrapper. - ((PlainSocketImpl)s).impl.address = new InetAddress(); - ((PlainSocketImpl)s).impl.fd = new FileDescriptor(); - impl.accept(((PlainSocketImpl)s).impl); + SocketImpl delegate = ((PlainSocketImpl)s).impl; + delegate.address = new InetAddress(); + delegate.fd = new FileDescriptor(); + impl.accept(delegate); + + // set fd to delegate's fd to be compatible with older releases + s.fd = delegate.fd; } void setFileDescriptor(FileDescriptor fd) { @@ -208,11 +215,21 @@ } protected void close() throws IOException { - impl.close(); + try { + impl.close(); + } finally { + // set fd to delegate's fd to be compatible with older releases + this.fd = null; + } } void reset() throws IOException { - impl.reset(); + try { + impl.reset(); + } finally { + // set fd to delegate's fd to be compatible with older releases + this.fd = null; + } } protected void shutdownInput() throws IOException {