diff --git a/jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java b/jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java index ba2a2551368..c510c6179fd 100644 --- a/jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java +++ b/jdk/src/share/classes/java/net/AbstractPlainSocketImpl.java @@ -71,7 +71,7 @@ abstract class AbstractPlainSocketImpl extends SocketImpl /* whether this Socket is a stream (TCP) socket or not (UDP) */ - private boolean stream; + protected boolean stream; /** * Load net library into runtime. diff --git a/jdk/src/windows/classes/java/net/TwoStacksPlainSocketImpl.java b/jdk/src/windows/classes/java/net/TwoStacksPlainSocketImpl.java index f51b1bb68ca..0b020b39b57 100644 --- a/jdk/src/windows/classes/java/net/TwoStacksPlainSocketImpl.java +++ b/jdk/src/windows/classes/java/net/TwoStacksPlainSocketImpl.java @@ -26,6 +26,7 @@ package java.net; import java.io.IOException; import java.io.FileDescriptor; +import sun.net.ResourceManager; /* * This class defines the plain SocketImpl that is used for all @@ -82,7 +83,7 @@ class TwoStacksPlainSocketImpl extends AbstractPlainSocketImpl protected synchronized void create(boolean stream) throws IOException { fd1 = new FileDescriptor(); try { - super.create(); + super.create(stream); } catch (IOException e) { fd1 = null; throw e; @@ -125,6 +126,9 @@ class TwoStacksPlainSocketImpl extends AbstractPlainSocketImpl protected void close() throws IOException { synchronized(fdLock) { if (fd != null || fd1 != null) { + if (!stream) { + ResourceManager.afterUdpClose(); + } if (fdUseCount == 0) { if (closePending) { return;