public class org.apache.hc.core.http.impl.bootstrap.HttpServer extends java.lang.Object implements org.apache.hc.core.io.ModalCloseable
{
private final int port;
private final java.net.InetAddress ifAddress;
private final org.apache.hc.core.http.io.SocketConfig socketConfig;
private final javax.net.ServerSocketFactory serverSocketFactory;
private final org.apache.hc.core.http.impl.io.HttpService httpService;
private final org.apache.hc.core.http.io.HttpConnectionFactory connectionFactory;
private final org.apache.hc.core.function.Callback sslSetupHandler;
private final org.apache.hc.core.http.ExceptionListener exceptionListener;
private final java.util.concurrent.ThreadPoolExecutor listenerExecutorService;
private final java.lang.ThreadGroup workerThreads;
private final org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor workerExecutorService;
private final java.util.concurrent.atomic.AtomicReference status;
private volatile java.net.ServerSocket serverSocket;
private volatile org.apache.hc.core.http.impl.bootstrap.RequestListener requestListener;
public void <init>(int, org.apache.hc.core.http.impl.io.HttpService, java.net.InetAddress, org.apache.hc.core.http.io.SocketConfig, javax.net.ServerSocketFactory, org.apache.hc.core.http.io.HttpConnectionFactory, org.apache.hc.core.function.Callback, org.apache.hc.core.http.ExceptionListener)
{
org.apache.hc.core.concurrent.DefaultThreadFactory v, v;
org.apache.hc.core.http.config.CharCodingConfig v;
org.apache.hc.core.http.impl.bootstrap.HttpServer$Status v;
java.lang.ThreadGroup v, v;
java.net.InetAddress v;
org.apache.hc.core.http.config.Http1Config v;
boolean v;
java.util.concurrent.SynchronousQueue v, v;
org.apache.hc.core.function.Callback v;
org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor v;
org.apache.hc.core.http.io.SocketConfig v, v;
org.apache.hc.core.http.io.HttpConnectionFactory v, v;
org.apache.hc.core.http.ExceptionListener v, v;
java.util.concurrent.ThreadPoolExecutor v;
java.util.concurrent.atomic.AtomicReference v;
org.apache.hc.core.http.impl.io.DefaultBHttpServerConnectionFactory v;
org.apache.hc.core.http.impl.bootstrap.HttpServer v;
int v, v, v;
org.apache.hc.core.http.impl.io.HttpService v;
java.lang.String v, v;
org.apache.hc.core.http.URIScheme v, v;
java.util.concurrent.TimeUnit v, v;
javax.net.ServerSocketFactory v, v, v;
java.lang.Object v;
v := @this: org.apache.hc.core.http.impl.bootstrap.HttpServer;
v := @parameter: int;
v := @parameter: org.apache.hc.core.http.impl.io.HttpService;
v := @parameter: java.net.InetAddress;
v := @parameter: org.apache.hc.core.http.io.SocketConfig;
v := @parameter: javax.net.ServerSocketFactory;
v := @parameter: org.apache.hc.core.http.io.HttpConnectionFactory;
v := @parameter: org.apache.hc.core.function.Callback;
v := @parameter: org.apache.hc.core.http.ExceptionListener;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <org.apache.hc.core.util.Args: int notNegative(int,java.lang.String)>(v, "Port value is negative");
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: int port> = v;
v = staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "HTTP service");
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.impl.io.HttpService httpService> = v;
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.net.InetAddress ifAddress> = v;
if v == null goto label;
v = v;
goto label;
label:
v = <org.apache.hc.core.http.io.SocketConfig: org.apache.hc.core.http.io.SocketConfig DEFAULT>;
label:
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.io.SocketConfig socketConfig> = v;
if v == null goto label;
v = v;
goto label;
label:
v = staticinvoke <javax.net.ServerSocketFactory: javax.net.ServerSocketFactory getDefault()>();
label:
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: javax.net.ServerSocketFactory serverSocketFactory> = v;
if v == null goto label;
v = v;
goto label;
label:
v = new org.apache.hc.core.http.impl.io.DefaultBHttpServerConnectionFactory;
v = v;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: javax.net.ServerSocketFactory serverSocketFactory>;
v = v instanceof javax.net.ssl.SSLServerSocketFactory;
if v == 0 goto label;
v = <org.apache.hc.core.http.URIScheme: org.apache.hc.core.http.URIScheme HTTPS>;
v = v.<org.apache.hc.core.http.URIScheme: java.lang.String id>;
goto label;
label:
v = <org.apache.hc.core.http.URIScheme: org.apache.hc.core.http.URIScheme HTTP>;
v = v.<org.apache.hc.core.http.URIScheme: java.lang.String id>;
label:
v = <org.apache.hc.core.http.config.Http1Config: org.apache.hc.core.http.config.Http1Config DEFAULT>;
v = <org.apache.hc.core.http.config.CharCodingConfig: org.apache.hc.core.http.config.CharCodingConfig DEFAULT>;
specialinvoke v.<org.apache.hc.core.http.impl.io.DefaultBHttpServerConnectionFactory: void <init>(java.lang.String,org.apache.hc.core.http.config.Http1Config,org.apache.hc.core.http.config.CharCodingConfig)>(v, v, v);
label:
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.io.HttpConnectionFactory connectionFactory> = v;
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.function.Callback sslSetupHandler> = v;
if v == null goto label;
v = v;
goto label;
label:
v = <org.apache.hc.core.http.ExceptionListener: org.apache.hc.core.http.ExceptionListener NO_OP>;
label:
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.ExceptionListener exceptionListener> = v;
v = new java.util.concurrent.ThreadPoolExecutor;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = new java.util.concurrent.SynchronousQueue;
specialinvoke v.<java.util.concurrent.SynchronousQueue: void <init>()>();
v = new org.apache.hc.core.concurrent.DefaultThreadFactory;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: int port>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("HTTP-listener-\u0001");
specialinvoke v.<org.apache.hc.core.concurrent.DefaultThreadFactory: void <init>(java.lang.String)>(v);
specialinvoke v.<java.util.concurrent.ThreadPoolExecutor: void <init>(int,int,long,java.util.concurrent.TimeUnit,java.util.concurrent.BlockingQueue,java.util.concurrent.ThreadFactory)>(1, 1, 0L, v, v, v);
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.util.concurrent.ThreadPoolExecutor listenerExecutorService> = v;
v = new java.lang.ThreadGroup;
specialinvoke v.<java.lang.ThreadGroup: void <init>(java.lang.String)>("HTTP-workers");
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.lang.ThreadGroup workerThreads> = v;
v = new org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = new java.util.concurrent.SynchronousQueue;
specialinvoke v.<java.util.concurrent.SynchronousQueue: void <init>()>();
v = new org.apache.hc.core.concurrent.DefaultThreadFactory;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.lang.ThreadGroup workerThreads>;
specialinvoke v.<org.apache.hc.core.concurrent.DefaultThreadFactory: void <init>(java.lang.String,java.lang.ThreadGroup,boolean)>("HTTP-worker", v, 1);
specialinvoke v.<org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor: void <init>(int,int,long,java.util.concurrent.TimeUnit,java.util.concurrent.BlockingQueue,java.util.concurrent.ThreadFactory)>(0, 2147483647, 1L, v, v, v);
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor workerExecutorService> = v;
v = new java.util.concurrent.atomic.AtomicReference;
v = <org.apache.hc.core.http.impl.bootstrap.HttpServer$Status: org.apache.hc.core.http.impl.bootstrap.HttpServer$Status READY>;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(v);
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.util.concurrent.atomic.AtomicReference status> = v;
return;
}
public java.net.InetAddress getInetAddress()
{
java.net.InetAddress v;
java.net.ServerSocket v;
org.apache.hc.core.http.impl.bootstrap.HttpServer v;
v := @this: org.apache.hc.core.http.impl.bootstrap.HttpServer;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.net.ServerSocket serverSocket>;
if v == null goto label;
v = virtualinvoke v.<java.net.ServerSocket: java.net.InetAddress getInetAddress()>();
return v;
label:
return null;
}
public int getLocalPort()
{
java.net.ServerSocket v;
org.apache.hc.core.http.impl.bootstrap.HttpServer v;
int v, v;
v := @this: org.apache.hc.core.http.impl.bootstrap.HttpServer;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.net.ServerSocket serverSocket>;
if v == null goto label;
v = virtualinvoke v.<java.net.ServerSocket: int getLocalPort()>();
return v;
label:
v = (int) -1;
return v;
}
public void start() throws java.io.IOException
{
org.apache.hc.core.http.impl.bootstrap.HttpServer$Status v, v;
java.net.InetAddress v;
java.net.ServerSocket v, v, v, v, v, v;
boolean v, v, v;
org.apache.hc.core.function.Callback v, v;
org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor v;
org.apache.hc.core.http.io.SocketConfig v, v, v, v, v;
org.apache.hc.core.http.io.HttpConnectionFactory v;
org.apache.hc.core.http.ExceptionListener v;
java.util.concurrent.ThreadPoolExecutor v;
javax.net.ssl.SSLParameters v;
java.util.concurrent.atomic.AtomicReference v;
org.apache.hc.core.http.impl.bootstrap.HttpServer v;
org.apache.hc.core.http.impl.bootstrap.RequestListener v, v;
int v, v, v, v;
org.apache.hc.core.http.impl.io.HttpService v;
javax.net.ServerSocketFactory v;
v := @this: org.apache.hc.core.http.impl.bootstrap.HttpServer;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.util.concurrent.atomic.AtomicReference status>;
v = <org.apache.hc.core.http.impl.bootstrap.HttpServer$Status: org.apache.hc.core.http.impl.bootstrap.HttpServer$Status READY>;
v = <org.apache.hc.core.http.impl.bootstrap.HttpServer$Status: org.apache.hc.core.http.impl.bootstrap.HttpServer$Status ACTIVE>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: javax.net.ServerSocketFactory serverSocketFactory>;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: int port>;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.io.SocketConfig socketConfig>;
v = virtualinvoke v.<org.apache.hc.core.http.io.SocketConfig: int getBacklogSize()>();
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.net.InetAddress ifAddress>;
v = virtualinvoke v.<javax.net.ServerSocketFactory: java.net.ServerSocket createServerSocket(int,int,java.net.InetAddress)>(v, v, v);
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.net.ServerSocket serverSocket> = v;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.net.ServerSocket serverSocket>;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.io.SocketConfig socketConfig>;
v = virtualinvoke v.<org.apache.hc.core.http.io.SocketConfig: boolean isSoReuseAddress()>();
virtualinvoke v.<java.net.ServerSocket: void setReuseAddress(boolean)>(v);
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.io.SocketConfig socketConfig>;
v = virtualinvoke v.<org.apache.hc.core.http.io.SocketConfig: int getRcvBufSize()>();
if v <= 0 goto label;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.net.ServerSocket serverSocket>;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.io.SocketConfig socketConfig>;
v = virtualinvoke v.<org.apache.hc.core.http.io.SocketConfig: int getRcvBufSize()>();
virtualinvoke v.<java.net.ServerSocket: void setReceiveBufferSize(int)>(v);
label:
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.function.Callback sslSetupHandler>;
if v == null goto label;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.net.ServerSocket serverSocket>;
v = v instanceof javax.net.ssl.SSLServerSocket;
if v == 0 goto label;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.net.ServerSocket serverSocket>;
v = virtualinvoke v.<javax.net.ssl.SSLServerSocket: javax.net.ssl.SSLParameters getSSLParameters()>();
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.function.Callback sslSetupHandler>;
interfaceinvoke v.<org.apache.hc.core.function.Callback: void execute(java.lang.Object)>(v);
virtualinvoke v.<javax.net.ssl.SSLServerSocket: void setSSLParameters(javax.net.ssl.SSLParameters)>(v);
label:
v = new org.apache.hc.core.http.impl.bootstrap.RequestListener;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.io.SocketConfig socketConfig>;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.net.ServerSocket serverSocket>;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.impl.io.HttpService httpService>;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.io.HttpConnectionFactory connectionFactory>;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.ExceptionListener exceptionListener>;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor workerExecutorService>;
specialinvoke v.<org.apache.hc.core.http.impl.bootstrap.RequestListener: void <init>(org.apache.hc.core.http.io.SocketConfig,java.net.ServerSocket,org.apache.hc.core.http.impl.io.HttpService,org.apache.hc.core.http.io.HttpConnectionFactory,org.apache.hc.core.http.ExceptionListener,java.util.concurrent.ExecutorService)>(v, v, v, v, v, v);
v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.impl.bootstrap.RequestListener requestListener> = v;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.util.concurrent.ThreadPoolExecutor listenerExecutorService>;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.impl.bootstrap.RequestListener requestListener>;
virtualinvoke v.<java.util.concurrent.ThreadPoolExecutor: void execute(java.lang.Runnable)>(v);
label:
return;
}
public void stop()
{
org.apache.hc.core.http.ExceptionListener v;
java.util.concurrent.ThreadPoolExecutor v;
org.apache.hc.core.http.impl.bootstrap.HttpServer$Status v, v;
java.io.IOException v;
org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor v;
java.lang.ThreadGroup v;
java.util.concurrent.atomic.AtomicReference v;
org.apache.hc.core.http.impl.bootstrap.HttpServer v;
org.apache.hc.core.http.impl.bootstrap.RequestListener v;
boolean v;
v := @this: org.apache.hc.core.http.impl.bootstrap.HttpServer;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.util.concurrent.atomic.AtomicReference status>;
v = <org.apache.hc.core.http.impl.bootstrap.HttpServer$Status: org.apache.hc.core.http.impl.bootstrap.HttpServer$Status ACTIVE>;
v = <org.apache.hc.core.http.impl.bootstrap.HttpServer$Status: org.apache.hc.core.http.impl.bootstrap.HttpServer$Status STOPPING>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.util.concurrent.ThreadPoolExecutor listenerExecutorService>;
virtualinvoke v.<java.util.concurrent.ThreadPoolExecutor: java.util.List shutdownNow()>();
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor workerExecutorService>;
virtualinvoke v.<org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor: void shutdown()>();
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.impl.bootstrap.RequestListener requestListener>;
if v == null goto label;
label:
virtualinvoke v.<org.apache.hc.core.http.impl.bootstrap.RequestListener: void terminate()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.ExceptionListener exceptionListener>;
interfaceinvoke v.<org.apache.hc.core.http.ExceptionListener: void onError(java.lang.Exception)>(v);
label:
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: java.lang.ThreadGroup workerThreads>;
virtualinvoke v.<java.lang.ThreadGroup: void interrupt()>();
label:
return;
catch java.io.IOException from label to label with label;
}
public void initiateShutdown()
{
org.apache.hc.core.http.impl.bootstrap.HttpServer v;
v := @this: org.apache.hc.core.http.impl.bootstrap.HttpServer;
virtualinvoke v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: void stop()>();
return;
}
public void awaitTermination(org.apache.hc.core.util.TimeValue) throws java.lang.InterruptedException
{
java.util.concurrent.TimeUnit v;
org.apache.hc.core.http.impl.bootstrap.HttpServer v;
org.apache.hc.core.util.TimeValue v;
long v;
org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor v;
v := @this: org.apache.hc.core.http.impl.bootstrap.HttpServer;
v := @parameter: org.apache.hc.core.util.TimeValue;
staticinvoke <org.apache.hc.core.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Wait time");
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor workerExecutorService>;
v = virtualinvoke v.<org.apache.hc.core.util.TimeValue: long getDuration()>();
v = virtualinvoke v.<org.apache.hc.core.util.TimeValue: java.util.concurrent.TimeUnit getTimeUnit()>();
virtualinvoke v.<org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor: boolean awaitTermination(long,java.util.concurrent.TimeUnit)>(v, v);
return;
}
public void close(org.apache.hc.core.io.CloseMode)
{
org.apache.hc.core.util.TimeValue v;
java.util.Iterator v;
java.util.Set v;
org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor v;
org.apache.hc.core.http.impl.bootstrap.HttpServer v;
java.lang.InterruptedException v;
java.lang.Thread v;
org.apache.hc.core.io.CloseMode v, v, v;
java.lang.Object v;
org.apache.hc.core.http.io.HttpServerConnection v;
boolean v;
v := @this: org.apache.hc.core.http.impl.bootstrap.HttpServer;
v := @parameter: org.apache.hc.core.io.CloseMode;
virtualinvoke v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: void initiateShutdown()>();
v = <org.apache.hc.core.io.CloseMode: org.apache.hc.core.io.CloseMode GRACEFUL>;
if v != v goto label;
label:
v = staticinvoke <org.apache.hc.core.util.TimeValue: org.apache.hc.core.util.TimeValue ofSeconds(long)>(5L);
virtualinvoke v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: void awaitTermination(org.apache.hc.core.util.TimeValue)>(v);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
v = v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor workerExecutorService>;
v = virtualinvoke v.<org.apache.hc.core.http.impl.bootstrap.WorkerPoolExecutor: java.util.Set getWorkers()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.apache.hc.core.http.impl.bootstrap.Worker: org.apache.hc.core.http.io.HttpServerConnection getConnection()>();
v = <org.apache.hc.core.io.CloseMode: org.apache.hc.core.io.CloseMode GRACEFUL>;
staticinvoke <org.apache.hc.core.io.Closer: void close(org.apache.hc.core.io.ModalCloseable,org.apache.hc.core.io.CloseMode)>(v, v);
goto label;
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
public void close()
{
org.apache.hc.core.http.impl.bootstrap.HttpServer v;
org.apache.hc.core.io.CloseMode v;
v := @this: org.apache.hc.core.http.impl.bootstrap.HttpServer;
v = <org.apache.hc.core.io.CloseMode: org.apache.hc.core.io.CloseMode GRACEFUL>;
virtualinvoke v.<org.apache.hc.core.http.impl.bootstrap.HttpServer: void close(org.apache.hc.core.io.CloseMode)>(v);
return;
}
}