[Git][java-team/jboss-xnio][master] 8 commits: Declare compliance with Debian Policy 4.3.0.

Markus Koschany gitlab at salsa.debian.org
Fri Feb 8 11:06:10 GMT 2019


Markus Koschany pushed to branch master at Debian Java Maintainers / jboss-xnio


Commits:
7a0f8a5a by Markus Koschany at 2019-02-08T10:19:45Z
Declare compliance with Debian Policy 4.3.0.

- - - - -
cbf6a9a2 by Markus Koschany at 2019-02-08T10:20:13Z
Use canonical VCS URI.

- - - - -
4292caab by Markus Koschany at 2019-02-08T10:21:42Z
Update copyright years

- - - - -
acf5555f by Markus Koschany at 2019-02-08T10:22:22Z
New upstream version 3.7.0
- - - - -
0401ba9b by Markus Koschany at 2019-02-08T10:22:29Z
Update upstream source from tag 'upstream/3.7.0'

Update to upstream version '3.7.0'
with Debian dir a161e0af6bd689e696738f1be400fb503aae9300
- - - - -
0eb753bf by Markus Koschany at 2019-02-08T10:23:48Z
Udpate changelog

- - - - -
bdf52aae by Markus Koschany at 2019-02-08T10:29:39Z
Drop java9.patch.

- - - - -
15538b16 by Markus Koschany at 2019-02-08T10:34:30Z
Revert to source/target 1.8

- - - - -


19 changed files:

- api/pom.xml
- api/src/main/java/org/xnio/ByteBufferSlicePool.java
- api/src/main/java/org/xnio/XnioIoThread.java
- api/src/main/java/org/xnio/XnioWorker.java
- api/src/main/java/org/xnio/management/XnioWorkerMXBean.java
- api/src/main/java/org/xnio/ssl/JsseSslConduitEngine.java
- api/src/main/java/org/xnio/ssl/JsseSslStreamSourceConduit.java
- api/src/main/java/org/xnio/ssl/JsseXnioSsl.java
- api/src/test/java/org/xnio/XnioWorkerTestCase.java
- debian/changelog
- debian/control
- debian/copyright
- debian/maven.properties
- − debian/patches/java9.patch
- debian/patches/series
- nio-impl/pom.xml
- nio-impl/src/main/java/org/xnio/nio/NioXnio.java
- nio-impl/src/main/java/org/xnio/nio/NioXnioWorker.java
- pom.xml


Changes:

=====================================
api/pom.xml
=====================================
@@ -37,7 +37,7 @@
     <parent>
         <groupId>org.jboss.xnio</groupId>
         <artifactId>xnio-all</artifactId>
-        <version>3.6.3.Final</version>
+        <version>3.7.0.Final</version>
     </parent>
 
     <dependencies>


=====================================
api/src/main/java/org/xnio/ByteBufferSlicePool.java
=====================================
@@ -155,6 +155,20 @@ public final class ByteBufferSlicePool implements Pool<ByteBuffer> {
         }
     }
 
+    /**
+     * Cleans all ThreadLocal caches
+     */
+    public void clean() {
+        ThreadLocalCache localCache = localQueueHolder.get();
+        if (!localCache.queue.isEmpty()) {
+            localCache.queue.clear();
+        }
+
+        if(!sliceQueue.isEmpty()) {
+            sliceQueue.clear();
+        }
+    }
+
     /**
      * Return the size of the {@link ByteBuffer}s that are returned by {@link #allocate()}.
      */


=====================================
api/src/main/java/org/xnio/XnioIoThread.java
=====================================
@@ -251,7 +251,7 @@ public abstract class XnioIoThread extends Thread implements XnioExecutor, XnioI
             }
         }
         InetSocketAddress bindAddress = getWorker().getBindAddressTable().get(destination.getAddress());
-        return openTcpStreamConnection(bindAddress == null ? Xnio.ANY_INET_ADDRESS : bindAddress, destination, openListener, bindListener, optionMap);
+        return openTcpStreamConnection(bindAddress, destination, openListener, bindListener, optionMap);
     }
 
     public IoFuture<StreamConnection> openStreamConnection(SocketAddress bindAddress, SocketAddress destination, ChannelListener<? super StreamConnection> openListener, ChannelListener<? super BoundChannel> bindListener, OptionMap optionMap) {


=====================================
api/src/main/java/org/xnio/XnioWorker.java
=====================================
@@ -128,16 +128,23 @@ public abstract class XnioWorker extends AbstractExecutorService implements Conf
         };
         final ExecutorService executorService = builder.getExternalExecutorService();
         if (executorService != null) {
-            taskPool = new ExternalTaskPool(executorService);
+            if (executorService instanceof EnhancedQueueExecutor) {
+                taskPool = new ExternalTaskPool(
+                        new EnhancedQueueExecutorTaskPool((EnhancedQueueExecutor) executorService));
+            } else if (executorService instanceof ThreadPoolExecutor) {
+                taskPool = new ExternalTaskPool(new ThreadPoolExecutorTaskPool((ThreadPoolExecutor) executorService));
+            } else {
+                taskPool = new ExternalTaskPool(new ExecutorServiceTaskPool(executorService));
+            }
         } else if (EnhancedQueueExecutor.DISABLE_HINT) {
             final int poolSize = max(builder.getMaxWorkerPoolSize(), builder.getCoreWorkerPoolSize());
-            taskPool = new ThreadPoolExecutorTaskPool(
+            taskPool = new ThreadPoolExecutorTaskPool(new DefaultThreadPoolExecutor(
                 poolSize,
                 poolSize,
                 builder.getWorkerKeepAlive(), TimeUnit.MILLISECONDS,
                 new LinkedBlockingDeque<>(),
                 new WorkerThreadFactory(builder.getThreadGroup(), builder.getWorkerStackSize(), markThreadAsDaemon),
-                terminationTask);
+                terminationTask));
         } else {
             taskPool = new EnhancedQueueExecutorTaskPool(new EnhancedQueueExecutor.Builder()
                 .setCorePoolSize(builder.getCoreWorkerPoolSize())
@@ -948,6 +955,15 @@ public abstract class XnioWorker extends AbstractExecutorService implements Conf
         return taskPool.getActiveCount();
     }
 
+    /**
+     * Get an estimate of the number of threads in the worker pool.
+     *
+     * @return the estimated number of threads in the worker pool
+     */
+    protected final int getWorkerPoolSize() {
+        return taskPool.getPoolSize();
+    }
+
     /**
      * Get the maximum worker pool size.
      *
@@ -1290,13 +1306,15 @@ public abstract class XnioWorker extends AbstractExecutorService implements Conf
 
         int getActiveCount();
 
+        int getPoolSize();
+
         int getQueueSize();
     }
 
-    static class ThreadPoolExecutorTaskPool extends ThreadPoolExecutor implements TaskPool {
+    static class DefaultThreadPoolExecutor extends ThreadPoolExecutor {
         private final Runnable terminationTask;
 
-        ThreadPoolExecutorTaskPool(final int corePoolSize, final int maximumPoolSize, final long keepAliveTime, final TimeUnit unit, final BlockingQueue<Runnable> workQueue, final ThreadFactory threadFactory, final Runnable terminationTask) {
+        DefaultThreadPoolExecutor(final int corePoolSize, final int maximumPoolSize, final long keepAliveTime, final TimeUnit unit, final BlockingQueue<Runnable> workQueue, final ThreadFactory threadFactory, final Runnable terminationTask) {
             super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory);
             this.terminationTask = terminationTask;
         }
@@ -1318,9 +1336,73 @@ public abstract class XnioWorker extends AbstractExecutorService implements Conf
                 super.setMaximumPoolSize(size);
             }
         }
+    }
+
+    static class ThreadPoolExecutorTaskPool implements TaskPool {
+        private final ThreadPoolExecutor delegate;
+
+        ThreadPoolExecutorTaskPool(final ThreadPoolExecutor delegate) {
+            this.delegate = delegate;
+        }
 
+        @Override
+        public void shutdown() {
+            delegate.shutdown();
+        }
+
+        @Override
+        public List<Runnable> shutdownNow() {
+            return delegate.shutdownNow();
+        }
+
+        @Override
+        public void execute(final Runnable command) {
+            delegate.execute(command);
+        }
+
+        @Override
+        public int getCorePoolSize() {
+            return delegate.getCorePoolSize();
+        }
+
+        @Override
+        public int getMaximumPoolSize() {
+            return delegate.getMaximumPoolSize();
+        }
+
+        @Override
+        public long getKeepAliveTime(final TimeUnit unit) {
+            return delegate.getKeepAliveTime(unit);
+        }
+
+        @Override
+        public void setCorePoolSize(final int size) {
+            delegate.setCorePoolSize(size);
+        }
+
+        @Override
+        public void setMaximumPoolSize(final int size) {
+            delegate.setMaximumPoolSize(size);
+        }
+
+        @Override
+        public void setKeepAliveTime(final long time, final TimeUnit unit) {
+            delegate.setKeepAliveTime(time, unit);
+        }
+
+        @Override
+        public int getActiveCount() {
+            return delegate.getActiveCount();
+        }
+
+        @Override
+        public int getPoolSize() {
+            return delegate.getPoolSize();
+        }
+
+        @Override
         public int getQueueSize() {
-            return getQueue().size();
+            return delegate.getQueue().size();
         }
     }
 
@@ -1371,24 +1453,28 @@ public abstract class XnioWorker extends AbstractExecutorService implements Conf
             return executor.getActiveCount();
         }
 
+        public int getPoolSize() {
+            return executor.getPoolSize();
+        }
+
         public int getQueueSize() {
             return executor.getQueueSize();
         }
     }
 
-    static class ExternalTaskPool implements TaskPool {
+    static class ExecutorServiceTaskPool implements TaskPool {
         private final ExecutorService delegate;
 
-        ExternalTaskPool(final ExecutorService delegate) {
+        ExecutorServiceTaskPool(final ExecutorService delegate) {
             this.delegate = delegate;
         }
 
         public void shutdown() {
-            // no operation
+            delegate.shutdown();
         }
 
         public List<Runnable> shutdownNow() {
-            return Collections.emptyList();
+            return delegate.shutdownNow();
         }
 
         public void execute(final Runnable command) {
@@ -1420,9 +1506,81 @@ public abstract class XnioWorker extends AbstractExecutorService implements Conf
             return -1;
         }
 
+        public int getPoolSize() {
+            return -1;
+        }
+
         public int getQueueSize() {
             return -1;
         }
     }
+
+    static class ExternalTaskPool implements TaskPool {
+        private final TaskPool delegate;
+
+        ExternalTaskPool(final TaskPool delegate) {
+            this.delegate = delegate;
+        }
+
+        @Override
+        public void shutdown() {
+            // no operation
+        }
+
+        @Override
+        public List<Runnable> shutdownNow() {
+            return Collections.emptyList();
+        }
+
+        @Override
+        public void execute(final Runnable command) {
+            delegate.execute(command);
+        }
+
+        @Override
+        public int getCorePoolSize() {
+            return delegate.getCorePoolSize();
+        }
+
+        @Override
+        public int getMaximumPoolSize() {
+            return delegate.getMaximumPoolSize();
+        }
+
+        @Override
+        public long getKeepAliveTime(final TimeUnit unit) {
+            return delegate.getKeepAliveTime(unit);
+        }
+
+        @Override
+        public void setCorePoolSize(final int size) {
+            delegate.setCorePoolSize(size);
+        }
+
+        @Override
+        public void setMaximumPoolSize(final int size) {
+            delegate.setMaximumPoolSize(size);
+        }
+
+        @Override
+        public void setKeepAliveTime(final long time, final TimeUnit unit) {
+            delegate.setKeepAliveTime(time, unit);
+        }
+
+        @Override
+        public int getActiveCount() {
+            return delegate.getActiveCount();
+        }
+
+        @Override
+        public int getPoolSize() {
+            return delegate.getPoolSize();
+        }
+
+        @Override
+        public int getQueueSize() {
+            return delegate.getQueueSize();
+        }
+    }
 }
 


=====================================
api/src/main/java/org/xnio/management/XnioWorkerMXBean.java
=====================================
@@ -61,6 +61,13 @@ public interface XnioWorkerMXBean {
      */
     int getMaxWorkerPoolSize();
 
+    /**
+     * Get an estimate of the number of threads in the worker pool.
+     *
+     * @return the estimated number of threads in the worker pool
+     */
+    int getWorkerPoolSize();
+
     /**
      * Get an estimate of the number of busy threads in the worker pool.
      *


=====================================
api/src/main/java/org/xnio/ssl/JsseSslConduitEngine.java
=====================================
@@ -594,7 +594,7 @@ final class JsseSslConduitEngine {
     public long unwrap(final ByteBuffer[] dsts, final int offset, final int length) throws IOException {
         assert ! Thread.holdsLock(getUnwrapLock());
         assert ! Thread.holdsLock(getWrapLock());
-        if (dsts.length == 0 || length == 0) {
+        if (dsts.length == 0 || length == 0 || isClosed()) {
             return 0L;
         }
         clearFlags(FIRST_HANDSHAKE | BUFFER_UNDERFLOW);


=====================================
api/src/main/java/org/xnio/ssl/JsseSslStreamSourceConduit.java
=====================================
@@ -109,7 +109,7 @@ final class JsseSslStreamSourceConduit extends AbstractStreamSourceConduit<Strea
         if (offs < 0 || offs > len || len < 0 || offs + len > dsts.length) {
             throw new ArrayIndexOutOfBoundsException();
         }
-        if ((!sslEngine.isDataAvailable() && sslEngine.isInboundClosed()) || sslEngine.isClosed()) {
+        if (sslEngine.isClosed() || (!sslEngine.isDataAvailable() && sslEngine.isInboundClosed())) {
             return -1;
         }
         final int readResult;


=====================================
api/src/main/java/org/xnio/ssl/JsseXnioSsl.java
=====================================
@@ -66,7 +66,7 @@ import org.xnio.channels.ConnectedStreamChannel;
 public final class JsseXnioSsl extends XnioSsl {
     public static final boolean NEW_IMPL = doPrivileged((PrivilegedAction<Boolean>) () -> Boolean.valueOf(Boolean.parseBoolean(System.getProperty("org.xnio.ssl.new", "false")))).booleanValue();
 
-    static final Pool<ByteBuffer> bufferPool = new ByteBufferSlicePool(BufferAllocator.DIRECT_BYTE_BUFFER_ALLOCATOR, 17 * 1024, 17 * 1024 * 128);
+    static final Pool<ByteBuffer> bufferPool = new ByteBufferSlicePool(BufferAllocator.DIRECT_BYTE_BUFFER_ALLOCATOR, 21 * 1024, 21 * 1024 * 128);
     private final SSLContext sslContext;
 
     /**


=====================================
api/src/test/java/org/xnio/XnioWorkerTestCase.java
=====================================
@@ -199,7 +199,7 @@ public class XnioWorkerTestCase {
 
     @Test
     public void connectTcpStream() throws CancellationException, IOException {
-        checkConnectStream(new InetSocketAddress(1000), Xnio.ANY_INET_ADDRESS, XnioWorkerMock.TCP_CHANNEL_INFO);
+        checkConnectStream(new InetSocketAddress(1000), null, XnioWorkerMock.TCP_CHANNEL_INFO);
     }
 
     @Test
@@ -230,7 +230,7 @@ public class XnioWorkerTestCase {
 
     @Test
     public void connectTcpStreamWithBindListener() throws CancellationException, IOException {
-        checkConnectStreamWithBindListener(new InetSocketAddress(1500), Xnio.ANY_INET_ADDRESS, XnioWorkerMock.TCP_CHANNEL_INFO);
+        checkConnectStreamWithBindListener(new InetSocketAddress(1500), null, XnioWorkerMock.TCP_CHANNEL_INFO);
     }
 
     @Test


=====================================
debian/changelog
=====================================
@@ -1,9 +1,9 @@
-jboss-xnio (3.6.3-1) UNRELEASED; urgency=medium
+jboss-xnio (3.7.0-1) unstable; urgency=medium
 
-  * New upstream version 3.6.3.
-  * Declare compliance with Debian Policy 4.1.4.
+  * New upstream version 3.7.0.
+  * Declare compliance with Debian Policy 4.3.0.
 
- -- Markus Koschany <apo at debian.org>  Tue, 15 May 2018 15:21:59 +0200
+ -- Markus Koschany <apo at debian.org>  Fri, 08 Feb 2019 11:23:04 +0100
 
 jboss-xnio (3.6.2-2) unstable; urgency=medium
 


=====================================
debian/control
=====================================
@@ -20,9 +20,9 @@ Build-Depends:
  libwildfly-client-config-java,
  libwildfly-common-java,
  maven-debian-helper (>= 1.5)
-Standards-Version: 4.1.4
-Vcs-Git: https://anonscm.debian.org/git/pkg-java/jboss-xnio.git
-Vcs-Browser: https://anonscm.debian.org/cgit/pkg-java/jboss-xnio.git
+Standards-Version: 4.3.0
+Vcs-Git: https://salsa.debian.org/java-team/jboss-xnio.git
+Vcs-Browser: https://salsa.debian.org/java-team/jboss-xnio
 Homepage: http://xnio.jboss.org/
 
 Package: libjboss-xnio-java


=====================================
debian/copyright
=====================================
@@ -3,7 +3,7 @@ Upstream-Name: Jboss XNIO
 Source: https://github.com/xnio/xnio
 
 Files: *
-Copyright: 2015-2018, Red Hat, Inc.
+Copyright: 2015-2019, Red Hat, Inc.
 License: Apache-2.0
 
 Files: nio-impl/src/test/java/org/xnio/nio/test/NioHalfDuplexChannelPipeTestCase.java
@@ -17,7 +17,7 @@ Copyright: 2010-2015, Red Hat, Inc
 License: LGPL-2.1+
 
 Files: debian/*
-Copyright: 2015-2018, Markus Koschany <apo at debian.org>
+Copyright: 2015-2019, Markus Koschany <apo at debian.org>
 License: Apache-2.0 or LGPL-2.1+
 
 License: Apache-2.0


=====================================
debian/maven.properties
=====================================
@@ -1,7 +1,7 @@
 # Include here properties to pass to Maven during the build.
 # For example:
 maven.test.skip=true
-maven.compiler.source=1.9
-maven.compiler.target=1.9
+maven.compiler.source=1.8
+maven.compiler.target=1.8
 project.build.sourceEncoding=UTF-8
 


=====================================
debian/patches/java9.patch deleted
=====================================
@@ -1,22 +0,0 @@
-From: Markus Koschany <apo at debian.org>
-Date: Mon, 19 Mar 2018 11:09:53 +0100
-Subject: java9
-
----
- api/pom.xml | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/api/pom.xml b/api/pom.xml
-index 43377f1..10fff5b 100644
---- a/api/pom.xml
-+++ b/api/pom.xml
-@@ -181,6 +181,9 @@
-                 <artifactId>maven-javadoc-plugin</artifactId>
-                 <configuration>
-                     <additionalparam>-Xdoclint:none</additionalparam>
-+                    <compilerArgs>
-+                        <arg>--add-modules</arg><arg>java.xml.ws.annotation</arg>
-+                    </compilerArgs>
-                     <doctitle><![CDATA[XNIO API ]]>${project.version}</doctitle>
-                     <header><![CDATA[XNIO API ]]>${project.version}</header>
-                     <footer><![CDATA[XNIO API ]]>${project.version}</footer>


=====================================
debian/patches/series
=====================================
@@ -1,2 +1 @@
 maven-bundle-plugin-rules.patch
-java9.patch


=====================================
nio-impl/pom.xml
=====================================
@@ -31,7 +31,7 @@
     <parent>
         <groupId>org.jboss.xnio</groupId>
         <artifactId>xnio-all</artifactId>
-        <version>3.6.3.Final</version>
+        <version>3.7.0.Final</version>
     </parent>
     
     <properties>


=====================================
nio-impl/src/main/java/org/xnio/nio/NioXnio.java
=====================================
@@ -30,6 +30,7 @@ import java.lang.reflect.InvocationTargetException;
 import org.xnio.FileSystemWatcher;
 import org.xnio.IoUtils;
 import org.xnio.Options;
+import org.xnio.ReadPropertyAction;
 import org.xnio.Xnio;
 import org.xnio.OptionMap;
 import org.xnio.XnioWorker;
@@ -75,6 +76,8 @@ final class NioXnio extends Xnio {
         final Object[] objects = AccessController.doPrivileged(
             new PrivilegedAction<Object[]>() {
                 public Object[] run() {
+                    String jdkVersion = System.getProperty("java.specification.version", "1.8");
+                    final boolean jdk9 = ! (jdkVersion.equals("1.8") || jdkVersion.equals("8"));
                     final SelectorProvider defaultProvider = SelectorProvider.provider();
                     final String chosenProvider = System.getProperty("xnio.nio.selector.provider");
                     SelectorProvider provider = null;
@@ -87,64 +90,67 @@ final class NioXnio extends Xnio {
                             provider = null;
                         }
                     }
-                    if (provider == null) {
-                        try {
-                            // Mac OS X and BSD
-                            provider = Class.forName("sun.nio.ch.KQueueSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();
-                            provider.openSelector().close();
-                        } catch (Throwable e) {
-                            // not available
-                            provider = null;
+                    if (! jdk9) {
+                        // try to probe the best available provider
+                        if (provider == null) {
+                            try {
+                                // Mac OS X and BSD
+                                provider = Class.forName("sun.nio.ch.KQueueSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();
+                                provider.openSelector().close();
+                            } catch (Throwable e) {
+                                // not available
+                                provider = null;
+                            }
                         }
-                    }
-                    if (provider == null) {
-                        try {
-                            // Linux
-                            provider = Class.forName("sun.nio.ch.EPollSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();
-                            provider.openSelector().close();
-                        } catch (Throwable e) {
-                            // not available
-                            provider = null;
+                        if (provider == null) {
+                            try {
+                                // Linux
+                                provider = Class.forName("sun.nio.ch.EPollSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();
+                                provider.openSelector().close();
+                            } catch (Throwable e) {
+                                // not available
+                                provider = null;
+                            }
                         }
-                    }
-                    if (provider == null && ! HAS_BUGGY_EVENT_PORT) {
-                        try {
-                            // Solaris (Java 8+)
-                            provider = Class.forName("sun.nio.ch.EventPortSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();
-                            provider.openSelector().close();
-                        } catch (Throwable e) {
-                            // not available
-                            provider = null;
+                        if (provider == null && ! HAS_BUGGY_EVENT_PORT) {
+                            try {
+                                // Solaris (Java 8+)
+                                provider = Class.forName("sun.nio.ch.EventPortSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();
+                                provider.openSelector().close();
+                            } catch (Throwable e) {
+                                // not available
+                                provider = null;
+                            }
                         }
-                    }
-                    if (provider == null) {
-                        try {
-                            // Solaris
-                            provider = Class.forName("sun.nio.ch.DevPollSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();
-                            provider.openSelector().close();
-                        } catch (Throwable e) {
-                            // not available
-                            provider = null;
+                        if (provider == null) {
+                            try {
+                                // Solaris
+                                provider = Class.forName("sun.nio.ch.DevPollSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();
+                                provider.openSelector().close();
+                            } catch (Throwable e) {
+                                // not available
+                                provider = null;
+                            }
                         }
-                    }
-                    if (provider == null) {
-                        try {
-                            // Solaris (Java 8+)
-                            provider = Class.forName("sun.nio.ch.EventPortSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();
-                            provider.openSelector().close();
-                        } catch (Throwable e) {
-                            // not available
-                            provider = null;
+                        if (provider == null) {
+                            try {
+                                // Solaris (Java 8+)
+                                provider = Class.forName("sun.nio.ch.EventPortSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();
+                                provider.openSelector().close();
+                            } catch (Throwable e) {
+                                // not available
+                                provider = null;
+                            }
                         }
-                    }
-                    if (provider == null) {
-                        try {
-                            // AIX
-                            provider = Class.forName("sun.nio.ch.PollsetSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();
-                            provider.openSelector().close();
-                        } catch (Throwable e) {
-                            // not available
-                            provider = null;
+                        if (provider == null) {
+                            try {
+                                // AIX
+                                provider = Class.forName("sun.nio.ch.PollsetSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();
+                                provider.openSelector().close();
+                            } catch (Throwable e) {
+                                // not available
+                                provider = null;
+                            }
                         }
                     }
                     if (provider == null) {
@@ -189,7 +195,7 @@ final class NioXnio extends Xnio {
                     } catch (Exception e) {
                         // not available
                     }
-                    if (! defaultIsPoll) {
+                    if (! defaultIsPoll && ! jdk9) {
                         // default is fine for main selectors; we should try to get poll for temp though
                         if (objects[1] == null) try {
                             SelectorProvider pollSelectorProvider = Class.forName("sun.nio.ch.PollSelectorProvider", true, NioXnio.class.getClassLoader()).asSubclass(SelectorProvider.class).getConstructor().newInstance();


=====================================
nio-impl/src/main/java/org/xnio/nio/NioXnioWorker.java
=====================================
@@ -413,6 +413,10 @@ final class NioXnioWorker extends XnioWorker {
             return NioXnioWorker.this.getMaxWorkerPoolSize();
         }
 
+        public int getWorkerPoolSize() {
+            return NioXnioWorker.this.getWorkerPoolSize();
+        }
+
         public int getBusyWorkerThreadCount() {
             return NioXnioWorker.this.getBusyWorkerThreadCount();
         }


=====================================
pom.xml
=====================================
@@ -32,7 +32,7 @@
     <artifactId>xnio-all</artifactId>
     <packaging>pom</packaging>
     <name>XNIO Parent POM</name>
-    <version>3.6.3.Final</version>
+    <version>3.7.0.Final</version>
     <description>The aggregator POM of the XNIO project</description>
 
     <licenses>



View it on GitLab: https://salsa.debian.org/java-team/jboss-xnio/compare/cca8e5ea7fca9d19f0ea2e66756827cf505047ee...15538b16f885ea552a5e43121bebb4a3c2ad6923

-- 
View it on GitLab: https://salsa.debian.org/java-team/jboss-xnio/compare/cca8e5ea7fca9d19f0ea2e66756827cf505047ee...15538b16f885ea552a5e43121bebb4a3c2ad6923
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20190208/6ee8dff2/attachment.html>


More information about the pkg-java-commits mailing list