X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fconfig%2Fthreadpool-config-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fconfig%2Fthreadpool%2Futil%2FFlexibleThreadPoolWrapper.java;h=9949e36d3714f55b6936e66d3d596ef9a5b9b96c;hb=refs%2Fchanges%2F02%2F83802%2F42;hp=5036399828a539e5ec5deb451881f3e4e9218b68;hpb=66f8a91f560bc22f1349307d1447a9105771da7f;p=controller.git diff --git a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FlexibleThreadPoolWrapper.java b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FlexibleThreadPoolWrapper.java index 5036399828..9949e36d37 100644 --- a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FlexibleThreadPoolWrapper.java +++ b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FlexibleThreadPoolWrapper.java @@ -5,11 +5,10 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.config.threadpool.util; import java.io.Closeable; -import java.io.IOException; +import java.util.OptionalInt; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -19,11 +18,8 @@ import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; - import org.opendaylight.controller.config.threadpool.ThreadPool; -import com.google.common.base.Optional; - /** * Implementation of {@link ThreadPool} using flexible number of threads wraps * {@link ExecutorService}. @@ -31,18 +27,18 @@ import com.google.common.base.Optional; public class FlexibleThreadPoolWrapper implements ThreadPool, Closeable { private final ThreadPoolExecutor executor; - public FlexibleThreadPoolWrapper(int minThreadCount, int maxThreadCount, long keepAlive, TimeUnit timeUnit, - ThreadFactory threadFactory) { - this(minThreadCount, maxThreadCount, keepAlive, timeUnit, threadFactory, getQueue(Optional.absent())); + public FlexibleThreadPoolWrapper(final int minThreadCount, final int maxThreadCount, final long keepAlive, + final TimeUnit timeUnit, final ThreadFactory threadFactory) { + this(minThreadCount, maxThreadCount, keepAlive, timeUnit, threadFactory, getQueue(OptionalInt.empty())); } - public FlexibleThreadPoolWrapper(int minThreadCount, int maxThreadCount, long keepAlive, TimeUnit timeUnit, - ThreadFactory threadFactory, Optional queueCapacity) { + public FlexibleThreadPoolWrapper(final int minThreadCount, final int maxThreadCount, final long keepAlive, + final TimeUnit timeUnit, final ThreadFactory threadFactory, final OptionalInt queueCapacity) { this(minThreadCount, maxThreadCount, keepAlive, timeUnit, threadFactory, getQueue(queueCapacity)); } - private FlexibleThreadPoolWrapper(int minThreadCount, int maxThreadCount, long keepAlive, TimeUnit timeUnit, - ThreadFactory threadFactory, BlockingQueue queue) { + private FlexibleThreadPoolWrapper(final int minThreadCount, final int maxThreadCount, final long keepAlive, + final TimeUnit timeUnit, final ThreadFactory threadFactory, final BlockingQueue queue) { executor = new ThreadPoolExecutor(minThreadCount, maxThreadCount, keepAlive, timeUnit, queue, threadFactory, new FlexibleRejectionHandler()); @@ -55,8 +51,9 @@ public class FlexibleThreadPoolWrapper implements ThreadPool, Closeable { * occurs in RejectedExecutionHandler. * This impl saturates threadpool first, then queue. When both are full caller will get blocked. */ - private static ForwardingBlockingQueue getQueue(Optional capacity) { - final BlockingQueue delegate = capacity.isPresent() ? new LinkedBlockingQueue(capacity.get()) : new LinkedBlockingQueue(); + private static ForwardingBlockingQueue getQueue(final OptionalInt capacity) { + final BlockingQueue delegate = capacity.isPresent() ? new LinkedBlockingQueue<>(capacity.getAsInt()) + : new LinkedBlockingQueue<>(); return new ForwardingBlockingQueue(delegate); } @@ -69,7 +66,7 @@ public class FlexibleThreadPoolWrapper implements ThreadPool, Closeable { return executor.getCorePoolSize(); } - public void setMinThreadCount(int minThreadCount) { + public void setMinThreadCount(final int minThreadCount) { executor.setCorePoolSize(minThreadCount); } @@ -78,7 +75,7 @@ public class FlexibleThreadPoolWrapper implements ThreadPool, Closeable { return executor.getMaximumPoolSize(); } - public void setMaxThreadCount(int maxThreadCount) { + public void setMaxThreadCount(final int maxThreadCount) { executor.setMaximumPoolSize(maxThreadCount); } @@ -86,11 +83,11 @@ public class FlexibleThreadPoolWrapper implements ThreadPool, Closeable { return executor.getKeepAliveTime(TimeUnit.MILLISECONDS); } - public void setKeepAliveMillis(long keepAliveMillis) { + public void setKeepAliveMillis(final long keepAliveMillis) { executor.setKeepAliveTime(keepAliveMillis, TimeUnit.MILLISECONDS); } - public void setThreadFactory(ThreadFactory threadFactory) { + public void setThreadFactory(final ThreadFactory threadFactory) { executor.setThreadFactory(threadFactory); } @@ -99,7 +96,7 @@ public class FlexibleThreadPoolWrapper implements ThreadPool, Closeable { } @Override - public void close() throws IOException { + public void close() { executor.shutdown(); } @@ -108,6 +105,7 @@ public class FlexibleThreadPoolWrapper implements ThreadPool, Closeable { */ private static class FlexibleRejectionHandler implements RejectedExecutionHandler { @Override + @SuppressWarnings("checkstyle:parameterName") public void rejectedExecution(final Runnable r, final ThreadPoolExecutor executor) { try { executor.getQueue().put(r); @@ -117,10 +115,11 @@ public class FlexibleThreadPoolWrapper implements ThreadPool, Closeable { } } - private static class ForwardingBlockingQueue extends com.google.common.util.concurrent.ForwardingBlockingQueue { + private static class ForwardingBlockingQueue + extends com.google.common.util.concurrent.ForwardingBlockingQueue { private final BlockingQueue delegate; - public ForwardingBlockingQueue(BlockingQueue delegate) { + ForwardingBlockingQueue(final BlockingQueue delegate) { this.delegate = delegate; } @@ -130,7 +129,8 @@ public class FlexibleThreadPoolWrapper implements ThreadPool, Closeable { } @Override - public boolean offer(final Runnable r) { + @SuppressWarnings("checkstyle:parameterName") + public boolean offer(final Runnable o) { // ThreadPoolExecutor will spawn a new thread after core size is reached only // if the queue.offer returns false. return false;