Browse Source

Polish JettyResourceFactory

Issue: SPR-17179
pull/1930/head
Sebastien Deleuze 6 years ago
parent
commit
0dd9e8ce02
  1. 26
      spring-web/src/main/java/org/springframework/http/client/reactive/JettyResourceFactory.java

26
spring-web/src/main/java/org/springframework/http/client/reactive/JettyResourceFactory.java

@ -23,7 +23,7 @@ import java.util.concurrent.Executor; @@ -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 { @@ -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,20 +136,33 @@ public class JettyResourceFactory implements InitializingBean, DisposableBean { @@ -137,20 +136,33 @@ 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();
}
}
catch (Throwable ex) {
// ignore
}
}
}

Loading…
Cancel
Save