提交 0dd9e8ce 编写于 作者: S Sebastien Deleuze

Polish JettyResourceFactory

Issue: SPR-17179
上级 6bcb454a
......@@ -23,7 +23,7 @@ import java.util.concurrent.Executor;
import org.eclipse.jetty.io.ByteBufferPool;
import org.eclipse.jetty.io.MappedByteBufferPool;
import org.eclipse.jetty.util.ProcessorUtils;
import org.eclipse.jetty.util.component.ContainerLifeCycle;
import org.eclipse.jetty.util.component.LifeCycle;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.eclipse.jetty.util.thread.ScheduledExecutorScheduler;
import org.eclipse.jetty.util.thread.Scheduler;
......@@ -127,7 +127,6 @@ public class JettyResourceFactory implements InitializingBean, DisposableBean {
if (this.executor == null) {
QueuedThreadPool threadPool = new QueuedThreadPool();
threadPool.setName(name);
threadPool.start();
this.executor = threadPool;
}
if (this.byteBufferPool == null) {
......@@ -137,19 +136,32 @@ public class JettyResourceFactory implements InitializingBean, DisposableBean {
: ProcessorUtils.availableProcessors() * 2);
}
if (this.scheduler == null) {
Scheduler scheduler = new ScheduledExecutorScheduler(name + "-scheduler", false);
scheduler.start();
this.scheduler = scheduler;
this.scheduler = new ScheduledExecutorScheduler(name + "-scheduler", false);
}
if (this.executor instanceof LifeCycle) {
((LifeCycle)this.executor).start();
}
this.scheduler.start();
}
@Override
public void destroy() throws Exception {
if (this.executor instanceof ContainerLifeCycle) {
((ContainerLifeCycle)this.executor).stop();
try {
if (this.executor instanceof LifeCycle) {
((LifeCycle)this.executor).stop();
}
}
catch (Throwable ex) {
// ignore
}
try {
if (this.scheduler != null) {
this.scheduler.stop();
}
}
if (this.scheduler != null) {
this.scheduler.stop();
catch (Throwable ex) {
// ignore
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册