368240 - Better handling of locally created ThreadPool.
This commit is contained in:
parent
297625b446
commit
3a30b4b7a5
|
@ -16,13 +16,11 @@ package org.eclipse.jetty.client;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.concurrent.ConcurrentMap;
|
import java.util.concurrent.ConcurrentMap;
|
||||||
|
|
||||||
import javax.net.ssl.SSLContext;
|
import javax.net.ssl.SSLContext;
|
||||||
|
|
||||||
import org.eclipse.jetty.client.security.Authentication;
|
import org.eclipse.jetty.client.security.Authentication;
|
||||||
|
@ -133,7 +131,6 @@ public class HttpClient extends AggregateLifeCycle implements HttpBuffers, Attri
|
||||||
_sslContextFactory = sslContextFactory;
|
_sslContextFactory = sslContextFactory;
|
||||||
addBean(_sslContextFactory);
|
addBean(_sslContextFactory);
|
||||||
addBean(_buffers);
|
addBean(_buffers);
|
||||||
setBufferTypes();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------------- */
|
||||||
|
@ -169,16 +166,6 @@ public class HttpClient extends AggregateLifeCycle implements HttpBuffers, Attri
|
||||||
*/
|
*/
|
||||||
public ThreadPool getThreadPool()
|
public ThreadPool getThreadPool()
|
||||||
{
|
{
|
||||||
if (_threadPool==null)
|
|
||||||
{
|
|
||||||
QueuedThreadPool pool = new QueuedThreadPool();
|
|
||||||
pool.setMaxThreads(16);
|
|
||||||
pool.setDaemon(true);
|
|
||||||
pool.setName("HttpClient");
|
|
||||||
_threadPool = pool;
|
|
||||||
addBean(_threadPool,true);
|
|
||||||
}
|
|
||||||
|
|
||||||
return _threadPool;
|
return _threadPool;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -419,8 +406,14 @@ public class HttpClient extends AggregateLifeCycle implements HttpBuffers, Attri
|
||||||
_idleTimeoutQ.setNow();
|
_idleTimeoutQ.setNow();
|
||||||
|
|
||||||
if (_threadPool==null)
|
if (_threadPool==null)
|
||||||
getThreadPool();
|
{
|
||||||
|
QueuedThreadPool pool = new LocalQueuedThreadPool();
|
||||||
|
pool.setMaxThreads(16);
|
||||||
|
pool.setDaemon(true);
|
||||||
|
pool.setName("HttpClient");
|
||||||
|
_threadPool = pool;
|
||||||
|
addBean(_threadPool,true);
|
||||||
|
}
|
||||||
|
|
||||||
_connector=(_connectorType == CONNECTOR_SELECT_CHANNEL)?new SelectConnector(this):new SocketConnector(this);
|
_connector=(_connectorType == CONNECTOR_SELECT_CHANNEL)?new SelectConnector(this):new SocketConnector(this);
|
||||||
addBean(_connector,true);
|
addBean(_connector,true);
|
||||||
|
@ -439,7 +432,7 @@ public class HttpClient extends AggregateLifeCycle implements HttpBuffers, Attri
|
||||||
{
|
{
|
||||||
Thread.sleep(200);
|
Thread.sleep(200);
|
||||||
}
|
}
|
||||||
catch (InterruptedException e)
|
catch (InterruptedException ignored)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -447,25 +440,21 @@ public class HttpClient extends AggregateLifeCycle implements HttpBuffers, Attri
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
|
||||||
long getNow()
|
|
||||||
{
|
|
||||||
return _timeoutQ.getNow();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
@Override
|
@Override
|
||||||
protected void doStop() throws Exception
|
protected void doStop() throws Exception
|
||||||
{
|
{
|
||||||
for (HttpDestination destination : _destinations.values())
|
for (HttpDestination destination : _destinations.values())
|
||||||
{
|
|
||||||
destination.close();
|
destination.close();
|
||||||
}
|
|
||||||
|
|
||||||
_timeoutQ.cancelAll();
|
_timeoutQ.cancelAll();
|
||||||
_idleTimeoutQ.cancelAll();
|
_idleTimeoutQ.cancelAll();
|
||||||
|
|
||||||
super.doStop();
|
super.doStop();
|
||||||
_connector = null;
|
|
||||||
|
if (_threadPool instanceof LocalQueuedThreadPool)
|
||||||
|
removeBean(_threadPool);
|
||||||
|
|
||||||
removeBean(_connector);
|
removeBean(_connector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -638,8 +627,6 @@ public class HttpClient extends AggregateLifeCycle implements HttpBuffers, Attri
|
||||||
_maxRedirects = redirects;
|
_maxRedirects = redirects;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public int getRequestBufferSize()
|
public int getRequestBufferSize()
|
||||||
{
|
{
|
||||||
return _buffers.getRequestBufferSize();
|
return _buffers.getRequestBufferSize();
|
||||||
|
@ -902,4 +889,8 @@ public class HttpClient extends AggregateLifeCycle implements HttpBuffers, Attri
|
||||||
{
|
{
|
||||||
_sslContextFactory.setSecureRandomAlgorithm(secureRandomAlgorithm);
|
_sslContextFactory.setSecureRandomAlgorithm(secureRandomAlgorithm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static class LocalQueuedThreadPool extends QueuedThreadPool
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue