From 11b46ddccf5e14ec785136eb42e8033ccd73f30e Mon Sep 17 00:00:00 2001 From: alanb Date: Wed, 28 Aug 2013 15:50:03 +0100 Subject: [PATCH] 8022594: Potential deadlock in of sun.nio.ch.Util/IOUtil Reviewed-by: chegar --- .../sun/nio/ch/KQueueArrayWrapper.java | 1 + .../sun/nio/ch/KQueueSelectorImpl.java | 5 ---- .../sun/nio/ch/AbstractPollSelectorImpl.java | 5 ---- .../sun/nio/ch/DatagramChannelImpl.java | 2 +- .../classes/sun/nio/ch/FileChannelImpl.java | 2 +- src/share/classes/sun/nio/ch/IOUtil.java | 18 +++++++++++-- src/share/classes/sun/nio/ch/Net.java | 2 +- .../sun/nio/ch/ServerSocketChannelImpl.java | 2 +- .../classes/sun/nio/ch/SocketChannelImpl.java | 2 +- src/share/classes/sun/nio/ch/Util.java | 26 ------------------- .../sun/nio/ch/DatagramDispatcher.java | 2 +- .../sun/nio/ch/DevPollArrayWrapper.java | 4 +++ .../sun/nio/ch/DevPollSelectorImpl.java | 5 ---- src/solaris/classes/sun/nio/ch/EPoll.java | 2 +- .../classes/sun/nio/ch/EPollArrayWrapper.java | 1 + src/solaris/classes/sun/nio/ch/EPollPort.java | 2 +- .../classes/sun/nio/ch/EPollSelectorImpl.java | 4 --- .../sun/nio/ch/FileDispatcherImpl.java | 2 +- .../classes/sun/nio/ch/InheritedChannel.java | 2 +- src/solaris/classes/sun/nio/ch/KQueue.java | 2 +- .../classes/sun/nio/ch/KQueuePort.java | 2 +- .../classes/sun/nio/ch/NativeThread.java | 2 +- .../classes/sun/nio/ch/PollArrayWrapper.java | 3 +++ .../classes/sun/nio/ch/SinkChannelImpl.java | 8 +----- .../classes/sun/nio/ch/SolarisEventPort.java | 2 +- .../classes/sun/nio/ch/SourceChannelImpl.java | 8 +----- ...ixAsynchronousServerSocketChannelImpl.java | 2 +- .../ch/UnixAsynchronousSocketChannelImpl.java | 2 +- .../sun/nio/ch/sctp/SctpChannelImpl.java | 2 +- .../sun/nio/ch/sctp/SctpMultiChannelImpl.java | 2 +- .../nio/ch/sctp/SctpServerChannelImpl.java | 2 +- .../sun/nio/ch/DatagramDispatcher.java | 2 +- .../sun/nio/ch/FileDispatcherImpl.java | 2 +- src/windows/classes/sun/nio/ch/FileKey.java | 1 + src/windows/classes/sun/nio/ch/Iocp.java | 2 +- src/windows/classes/sun/nio/ch/PipeImpl.java | 1 - .../classes/sun/nio/ch/SocketDispatcher.java | 2 +- .../WindowsAsynchronousFileChannelImpl.java | 2 +- ...wsAsynchronousServerSocketChannelImpl.java | 2 +- .../WindowsAsynchronousSocketChannelImpl.java | 2 +- .../sun/nio/ch/WindowsSelectorImpl.java | 2 +- 41 files changed, 55 insertions(+), 89 deletions(-) diff --git a/src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java b/src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java index b1f71acc4..5c8200600 100644 --- a/src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java +++ b/src/macosx/classes/sun/nio/ch/KQueueArrayWrapper.java @@ -87,6 +87,7 @@ class KQueueArrayWrapper { private int incomingInterruptFD; static { + IOUtil.load(); initStructSizes(); String datamodel = java.security.AccessController.doPrivileged( new sun.security.action.GetPropertyAction("sun.arch.data.model") diff --git a/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java b/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java index 847c89bdc..f2340e62c 100644 --- a/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java +++ b/src/macosx/classes/sun/nio/ch/KQueueSelectorImpl.java @@ -246,9 +246,4 @@ class KQueueSelectorImpl } return this; } - - - static { - Util.load(); - } } diff --git a/src/share/classes/sun/nio/ch/AbstractPollSelectorImpl.java b/src/share/classes/sun/nio/ch/AbstractPollSelectorImpl.java index 264b200de..22e005df9 100644 --- a/src/share/classes/sun/nio/ch/AbstractPollSelectorImpl.java +++ b/src/share/classes/sun/nio/ch/AbstractPollSelectorImpl.java @@ -193,9 +193,4 @@ abstract class AbstractPollSelectorImpl if (!selch.isOpen() && !selch.isRegistered()) ((SelChImpl)selch).kill(); } - - static { - Util.load(); - } - } diff --git a/src/share/classes/sun/nio/ch/DatagramChannelImpl.java b/src/share/classes/sun/nio/ch/DatagramChannelImpl.java index b99750c4c..2cda6fa15 100644 --- a/src/share/classes/sun/nio/ch/DatagramChannelImpl.java +++ b/src/share/classes/sun/nio/ch/DatagramChannelImpl.java @@ -1138,7 +1138,7 @@ class DatagramChannelImpl throws IOException; static { - Util.load(); + IOUtil.load(); initIDs(); } diff --git a/src/share/classes/sun/nio/ch/FileChannelImpl.java b/src/share/classes/sun/nio/ch/FileChannelImpl.java index ac9be90f2..b464ecc85 100644 --- a/src/share/classes/sun/nio/ch/FileChannelImpl.java +++ b/src/share/classes/sun/nio/ch/FileChannelImpl.java @@ -1162,7 +1162,7 @@ public class FileChannelImpl private static native long initIDs(); static { - Util.load(); + IOUtil.load(); allocationGranularity = initIDs(); } diff --git a/src/share/classes/sun/nio/ch/IOUtil.java b/src/share/classes/sun/nio/ch/IOUtil.java index 6f45da73d..ba5449eac 100644 --- a/src/share/classes/sun/nio/ch/IOUtil.java +++ b/src/share/classes/sun/nio/ch/IOUtil.java @@ -347,9 +347,23 @@ public class IOUtil { static native void initIDs(); + /** + * Used to trigger loading of native libraries + */ + public static void load() { } + static { - // Note that IOUtil.initIDs is called from within Util.load. - Util.load(); + java.security.AccessController.doPrivileged( + new java.security.PrivilegedAction() { + public Void run() { + System.loadLibrary("net"); + System.loadLibrary("nio"); + return null; + } + }); + + initIDs(); + IOV_MAX = iovMax(); } diff --git a/src/share/classes/sun/nio/ch/Net.java b/src/share/classes/sun/nio/ch/Net.java index 2b68f963f..2e2640290 100644 --- a/src/share/classes/sun/nio/ch/Net.java +++ b/src/share/classes/sun/nio/ch/Net.java @@ -582,7 +582,7 @@ public class Net { private static native void initIDs(); static { - Util.load(); + IOUtil.load(); initIDs(); } diff --git a/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java b/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java index 3b3969cc1..842944235 100644 --- a/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java +++ b/src/share/classes/sun/nio/ch/ServerSocketChannelImpl.java @@ -416,7 +416,7 @@ class ServerSocketChannelImpl private static native void initIDs(); static { - Util.load(); + IOUtil.load(); initIDs(); nd = new SocketDispatcher(); } diff --git a/src/share/classes/sun/nio/ch/SocketChannelImpl.java b/src/share/classes/sun/nio/ch/SocketChannelImpl.java index 6959c1778..806168392 100644 --- a/src/share/classes/sun/nio/ch/SocketChannelImpl.java +++ b/src/share/classes/sun/nio/ch/SocketChannelImpl.java @@ -1024,7 +1024,7 @@ class SocketChannelImpl throws IOException; static { - Util.load(); + IOUtil.load(); nd = new SocketDispatcher(); } diff --git a/src/share/classes/sun/nio/ch/Util.java b/src/share/classes/sun/nio/ch/Util.java index 1904ca588..772f1492a 100644 --- a/src/share/classes/sun/nio/ch/Util.java +++ b/src/share/classes/sun/nio/ch/Util.java @@ -401,30 +401,4 @@ public class Util { return bugLevel.equals(bl); } - - - // -- Initialization -- - - private static boolean loaded = false; - - public static void load() { - synchronized (Util.class) { - if (loaded) - return; - loaded = true; - java.security.AccessController.doPrivileged( - new java.security.PrivilegedAction() { - public Void run() { - System.loadLibrary("net"); - System.loadLibrary("nio"); - return null; - } - }); - - // IOUtil must be initialized; Its native methods are called from - // other places in native nio code so they must be set up. - IOUtil.initIDs(); - } - } - } diff --git a/src/solaris/classes/sun/nio/ch/DatagramDispatcher.java b/src/solaris/classes/sun/nio/ch/DatagramDispatcher.java index 64d4c313a..079529e5b 100644 --- a/src/solaris/classes/sun/nio/ch/DatagramDispatcher.java +++ b/src/solaris/classes/sun/nio/ch/DatagramDispatcher.java @@ -36,7 +36,7 @@ import java.net.*; class DatagramDispatcher extends NativeDispatcher { static { - Util.load(); + IOUtil.load(); } int read(FileDescriptor fd, long address, int len) throws IOException { diff --git a/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java b/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java index 3151b227b..df30e2924 100644 --- a/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java +++ b/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java @@ -316,4 +316,8 @@ class DevPollArrayWrapper { private native int poll0(long pollAddress, int numfds, long timeout, int wfd); private static native void interrupt(int fd); + + static { + IOUtil.load(); + } } diff --git a/src/solaris/classes/sun/nio/ch/DevPollSelectorImpl.java b/src/solaris/classes/sun/nio/ch/DevPollSelectorImpl.java index e151051ec..b0d6a33cb 100644 --- a/src/solaris/classes/sun/nio/ch/DevPollSelectorImpl.java +++ b/src/solaris/classes/sun/nio/ch/DevPollSelectorImpl.java @@ -196,9 +196,4 @@ class DevPollSelectorImpl } return this; } - - static { - Util.load(); - } - } diff --git a/src/solaris/classes/sun/nio/ch/EPoll.java b/src/solaris/classes/sun/nio/ch/EPoll.java index 3300f962a..f0a8d7e3f 100644 --- a/src/solaris/classes/sun/nio/ch/EPoll.java +++ b/src/solaris/classes/sun/nio/ch/EPoll.java @@ -113,6 +113,6 @@ class EPoll { throws IOException; static { - Util.load(); + IOUtil.load(); } } diff --git a/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java b/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java index 3b59a06ac..a73d3c2df 100644 --- a/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java +++ b/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java @@ -318,6 +318,7 @@ class EPollArrayWrapper { } static { + IOUtil.load(); init(); } diff --git a/src/solaris/classes/sun/nio/ch/EPollPort.java b/src/solaris/classes/sun/nio/ch/EPollPort.java index 6b496ca28..17cd171bc 100644 --- a/src/solaris/classes/sun/nio/ch/EPollPort.java +++ b/src/solaris/classes/sun/nio/ch/EPollPort.java @@ -318,6 +318,6 @@ final class EPollPort private static native void close0(int fd); static { - Util.load(); + IOUtil.load(); } } diff --git a/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java b/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java index c8bdab4c7..49f67a8b3 100644 --- a/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java +++ b/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java @@ -196,8 +196,4 @@ class EPollSelectorImpl } return this; } - - static { - Util.load(); - } } diff --git a/src/solaris/classes/sun/nio/ch/FileDispatcherImpl.java b/src/solaris/classes/sun/nio/ch/FileDispatcherImpl.java index 37c1d5b90..145824bf0 100644 --- a/src/solaris/classes/sun/nio/ch/FileDispatcherImpl.java +++ b/src/solaris/classes/sun/nio/ch/FileDispatcherImpl.java @@ -31,7 +31,7 @@ class FileDispatcherImpl extends FileDispatcher { static { - Util.load(); + IOUtil.load(); init(); } diff --git a/src/solaris/classes/sun/nio/ch/InheritedChannel.java b/src/solaris/classes/sun/nio/ch/InheritedChannel.java index 2917ba9c7..ac9b8c5f0 100644 --- a/src/solaris/classes/sun/nio/ch/InheritedChannel.java +++ b/src/solaris/classes/sun/nio/ch/InheritedChannel.java @@ -235,6 +235,6 @@ class InheritedChannel { private static native int peerPort0(int fd); static { - Util.load(); + IOUtil.load(); } } diff --git a/src/solaris/classes/sun/nio/ch/KQueue.java b/src/solaris/classes/sun/nio/ch/KQueue.java index e3466e3d7..f8796c8d4 100644 --- a/src/solaris/classes/sun/nio/ch/KQueue.java +++ b/src/solaris/classes/sun/nio/ch/KQueue.java @@ -115,6 +115,6 @@ class KQueue { throws IOException; static { - Util.load(); + IOUtil.load(); } } diff --git a/src/solaris/classes/sun/nio/ch/KQueuePort.java b/src/solaris/classes/sun/nio/ch/KQueuePort.java index cd16e2e2c..c323f076f 100644 --- a/src/solaris/classes/sun/nio/ch/KQueuePort.java +++ b/src/solaris/classes/sun/nio/ch/KQueuePort.java @@ -326,6 +326,6 @@ final class KQueuePort private static native void close0(int fd); static { - Util.load(); + IOUtil.load(); } } diff --git a/src/solaris/classes/sun/nio/ch/NativeThread.java b/src/solaris/classes/sun/nio/ch/NativeThread.java index 7a7e155c4..6e1885e0e 100644 --- a/src/solaris/classes/sun/nio/ch/NativeThread.java +++ b/src/solaris/classes/sun/nio/ch/NativeThread.java @@ -54,7 +54,7 @@ public class NativeThread { private static native void init(); static { - Util.load(); + IOUtil.load(); init(); } diff --git a/src/solaris/classes/sun/nio/ch/PollArrayWrapper.java b/src/solaris/classes/sun/nio/ch/PollArrayWrapper.java index bf063c70c..3a57bfc4b 100644 --- a/src/solaris/classes/sun/nio/ch/PollArrayWrapper.java +++ b/src/solaris/classes/sun/nio/ch/PollArrayWrapper.java @@ -126,4 +126,7 @@ public class PollArrayWrapper extends AbstractPollArrayWrapper { private static native void interrupt(int fd); + static { + IOUtil.load(); + } } diff --git a/src/solaris/classes/sun/nio/ch/SinkChannelImpl.java b/src/solaris/classes/sun/nio/ch/SinkChannelImpl.java index d388dd47f..a0645221e 100644 --- a/src/solaris/classes/sun/nio/ch/SinkChannelImpl.java +++ b/src/solaris/classes/sun/nio/ch/SinkChannelImpl.java @@ -37,7 +37,7 @@ class SinkChannelImpl { // Used to make native read and write calls - private static NativeDispatcher nd; + private static final NativeDispatcher nd = new FileDispatcherImpl(); // The file descriptor associated with this channel FileDescriptor fd; @@ -206,10 +206,4 @@ class SinkChannelImpl throw new IndexOutOfBoundsException(); return write(Util.subsequence(srcs, offset, length)); } - - static { - Util.load(); - nd = new FileDispatcherImpl(); - } - } diff --git a/src/solaris/classes/sun/nio/ch/SolarisEventPort.java b/src/solaris/classes/sun/nio/ch/SolarisEventPort.java index d5a74c109..1ff20373a 100644 --- a/src/solaris/classes/sun/nio/ch/SolarisEventPort.java +++ b/src/solaris/classes/sun/nio/ch/SolarisEventPort.java @@ -260,6 +260,6 @@ class SolarisEventPort static { - Util.load(); + IOUtil.load(); } } diff --git a/src/solaris/classes/sun/nio/ch/SourceChannelImpl.java b/src/solaris/classes/sun/nio/ch/SourceChannelImpl.java index cc374127e..d632b7425 100644 --- a/src/solaris/classes/sun/nio/ch/SourceChannelImpl.java +++ b/src/solaris/classes/sun/nio/ch/SourceChannelImpl.java @@ -37,7 +37,7 @@ class SourceChannelImpl { // Used to make native read and write calls - private static NativeDispatcher nd; + private static final NativeDispatcher nd = new FileDispatcherImpl(); // The file descriptor associated with this channel FileDescriptor fd; @@ -206,10 +206,4 @@ class SourceChannelImpl } } } - - static { - Util.load(); - nd = new FileDispatcherImpl(); - } - } diff --git a/src/solaris/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java b/src/solaris/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java index 3b431e77b..752b70ee4 100644 --- a/src/solaris/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java +++ b/src/solaris/classes/sun/nio/ch/UnixAsynchronousServerSocketChannelImpl.java @@ -345,7 +345,7 @@ class UnixAsynchronousServerSocketChannelImpl throws IOException; static { - Util.load(); + IOUtil.load(); initIDs(); } } diff --git a/src/solaris/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java b/src/solaris/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java index 8b74488f1..c718057f0 100644 --- a/src/solaris/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java +++ b/src/solaris/classes/sun/nio/ch/UnixAsynchronousSocketChannelImpl.java @@ -748,6 +748,6 @@ class UnixAsynchronousSocketChannelImpl private static native void checkConnect(int fdVal) throws IOException; static { - Util.load(); + IOUtil.load(); } } diff --git a/src/solaris/classes/sun/nio/ch/sctp/SctpChannelImpl.java b/src/solaris/classes/sun/nio/ch/sctp/SctpChannelImpl.java index f71345c84..73c96cfc2 100644 --- a/src/solaris/classes/sun/nio/ch/sctp/SctpChannelImpl.java +++ b/src/solaris/classes/sun/nio/ch/sctp/SctpChannelImpl.java @@ -1106,7 +1106,7 @@ public class SctpChannelImpl extends SctpChannel boolean ready) throws IOException; static { - Util.load(); /* loads nio & net native libraries */ + IOUtil.load(); /* loads nio & net native libraries */ java.security.AccessController.doPrivileged( new java.security.PrivilegedAction() { public Void run() { diff --git a/src/solaris/classes/sun/nio/ch/sctp/SctpMultiChannelImpl.java b/src/solaris/classes/sun/nio/ch/sctp/SctpMultiChannelImpl.java index 84552ba04..424c1d164 100644 --- a/src/solaris/classes/sun/nio/ch/sctp/SctpMultiChannelImpl.java +++ b/src/solaris/classes/sun/nio/ch/sctp/SctpMultiChannelImpl.java @@ -995,7 +995,7 @@ public class SctpMultiChannelImpl extends SctpMultiChannel } static { - Util.load(); /* loads nio & net native libraries */ + IOUtil.load(); /* loads nio & net native libraries */ java.security.AccessController.doPrivileged( new java.security.PrivilegedAction() { public Void run() { diff --git a/src/solaris/classes/sun/nio/ch/sctp/SctpServerChannelImpl.java b/src/solaris/classes/sun/nio/ch/sctp/SctpServerChannelImpl.java index 900d7ab53..d22af25f1 100644 --- a/src/solaris/classes/sun/nio/ch/sctp/SctpServerChannelImpl.java +++ b/src/solaris/classes/sun/nio/ch/sctp/SctpServerChannelImpl.java @@ -426,7 +426,7 @@ public class SctpServerChannelImpl extends SctpServerChannel FileDescriptor newfd, InetSocketAddress[] isaa) throws IOException; static { - Util.load(); // loads nio & net native libraries + IOUtil.load(); // loads nio & net native libraries java.security.AccessController.doPrivileged( new java.security.PrivilegedAction() { public Void run() { diff --git a/src/windows/classes/sun/nio/ch/DatagramDispatcher.java b/src/windows/classes/sun/nio/ch/DatagramDispatcher.java index 7cf2f0942..fc658b7eb 100644 --- a/src/windows/classes/sun/nio/ch/DatagramDispatcher.java +++ b/src/windows/classes/sun/nio/ch/DatagramDispatcher.java @@ -36,7 +36,7 @@ import java.net.*; class DatagramDispatcher extends NativeDispatcher { static { - Util.load(); + IOUtil.load(); } int read(FileDescriptor fd, long address, int len) throws IOException { diff --git a/src/windows/classes/sun/nio/ch/FileDispatcherImpl.java b/src/windows/classes/sun/nio/ch/FileDispatcherImpl.java index de3c4f9f7..d7126d5c1 100644 --- a/src/windows/classes/sun/nio/ch/FileDispatcherImpl.java +++ b/src/windows/classes/sun/nio/ch/FileDispatcherImpl.java @@ -32,7 +32,7 @@ import sun.misc.JavaIOFileDescriptorAccess; class FileDispatcherImpl extends FileDispatcher { static { - Util.load(); + IOUtil.load(); } /** diff --git a/src/windows/classes/sun/nio/ch/FileKey.java b/src/windows/classes/sun/nio/ch/FileKey.java index 397ea4993..830cc72a5 100644 --- a/src/windows/classes/sun/nio/ch/FileKey.java +++ b/src/windows/classes/sun/nio/ch/FileKey.java @@ -73,6 +73,7 @@ public class FileKey { private static native void initIDs(); static { + IOUtil.load(); initIDs(); } } diff --git a/src/windows/classes/sun/nio/ch/Iocp.java b/src/windows/classes/sun/nio/ch/Iocp.java index f0b83a1a4..466a08e7e 100644 --- a/src/windows/classes/sun/nio/ch/Iocp.java +++ b/src/windows/classes/sun/nio/ch/Iocp.java @@ -443,7 +443,7 @@ class Iocp extends AsynchronousChannelGroupImpl { private static native String getErrorMessage(int error); static { - Util.load(); + IOUtil.load(); initIDs(); // thread agnostic I/O on Vista/2008 or newer diff --git a/src/windows/classes/sun/nio/ch/PipeImpl.java b/src/windows/classes/sun/nio/ch/PipeImpl.java index 6eb7dce7e..4a73c610a 100644 --- a/src/windows/classes/sun/nio/ch/PipeImpl.java +++ b/src/windows/classes/sun/nio/ch/PipeImpl.java @@ -56,7 +56,6 @@ class PipeImpl private static final Random rnd; static { - Util.load(); byte[] someBytes = new byte[8]; boolean resultOK = IOUtil.randomBytes(someBytes); if (resultOK) { diff --git a/src/windows/classes/sun/nio/ch/SocketDispatcher.java b/src/windows/classes/sun/nio/ch/SocketDispatcher.java index a03d0af93..82cfcd564 100644 --- a/src/windows/classes/sun/nio/ch/SocketDispatcher.java +++ b/src/windows/classes/sun/nio/ch/SocketDispatcher.java @@ -36,7 +36,7 @@ class SocketDispatcher extends NativeDispatcher { static { - Util.load(); + IOUtil.load(); } int read(FileDescriptor fd, long address, int len) throws IOException { diff --git a/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java b/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java index b85271e68..fd3fa538c 100644 --- a/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java +++ b/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java @@ -750,6 +750,6 @@ public class WindowsAsynchronousFileChannelImpl private static native void close0(long handle); static { - Util.load(); + IOUtil.load(); } } diff --git a/src/windows/classes/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java b/src/windows/classes/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java index 00d6c4631..9a25da92b 100644 --- a/src/windows/classes/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java +++ b/src/windows/classes/sun/nio/ch/WindowsAsynchronousServerSocketChannelImpl.java @@ -363,7 +363,7 @@ class WindowsAsynchronousServerSocketChannelImpl private static native void closesocket0(long socket) throws IOException; static { - Util.load(); + IOUtil.load(); initIDs(); } } diff --git a/src/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java b/src/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java index b76b68287..124205a65 100644 --- a/src/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java +++ b/src/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java @@ -919,7 +919,7 @@ class WindowsAsynchronousSocketChannelImpl private static native void closesocket0(long socket) throws IOException; static { - Util.load(); + IOUtil.load(); initIDs(); } } diff --git a/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java b/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java index 1034bb7d8..bcaaecd9a 100644 --- a/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java +++ b/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java @@ -611,6 +611,6 @@ final class WindowsSelectorImpl extends SelectorImpl { } static { - Util.load(); + IOUtil.load(); } } -- GitLab