public class org.apache.http.impl.conn.BasicHttpClientConnectionManager extends java.lang.Object implements org.apache.http.conn.HttpClientConnectionManager, java.io.Closeable
{
private final org.apache.commons.logging.Log log;
private final org.apache.http.conn.HttpClientConnectionOperator connectionOperator;
private final org.apache.http.conn.HttpConnectionFactory connFactory;
private org.apache.http.conn.ManagedHttpClientConnection conn;
private org.apache.http.conn.routing.HttpRoute route;
private java.lang.Object state;
private long updated;
private long expiry;
private boolean leased;
private org.apache.http.config.SocketConfig socketConfig;
private org.apache.http.config.ConnectionConfig connConfig;
private final java.util.concurrent.atomic.AtomicBoolean isShutdown;
private static org.apache.http.config.Registry getDefaultRegistry()
{
org.apache.http.config.Registry v;
org.apache.http.config.RegistryBuilder v, v, v;
org.apache.http.conn.socket.PlainConnectionSocketFactory v;
org.apache.http.conn.ssl.SSLConnectionSocketFactory v;
v = staticinvoke <org.apache.http.config.RegistryBuilder: org.apache.http.config.RegistryBuilder create()>();
v = staticinvoke <org.apache.http.conn.socket.PlainConnectionSocketFactory: org.apache.http.conn.socket.PlainConnectionSocketFactory getSocketFactory()>();
v = virtualinvoke v.<org.apache.http.config.RegistryBuilder: org.apache.http.config.RegistryBuilder register(java.lang.String,java.lang.Object)>("http", v);
v = staticinvoke <org.apache.http.conn.ssl.SSLConnectionSocketFactory: org.apache.http.conn.ssl.SSLConnectionSocketFactory getSocketFactory()>();
v = virtualinvoke v.<org.apache.http.config.RegistryBuilder: org.apache.http.config.RegistryBuilder register(java.lang.String,java.lang.Object)>("https", v);
v = virtualinvoke v.<org.apache.http.config.RegistryBuilder: org.apache.http.config.Registry build()>();
return v;
}
public void <init>(org.apache.http.config.Lookup, org.apache.http.conn.HttpConnectionFactory, org.apache.http.conn.SchemePortResolver, org.apache.http.conn.DnsResolver)
{
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.http.impl.conn.DefaultHttpClientConnectionOperator v;
org.apache.http.conn.SchemePortResolver v;
org.apache.http.conn.HttpConnectionFactory v;
org.apache.http.conn.DnsResolver v;
org.apache.http.config.Lookup v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: org.apache.http.config.Lookup;
v := @parameter: org.apache.http.conn.HttpConnectionFactory;
v := @parameter: org.apache.http.conn.SchemePortResolver;
v := @parameter: org.apache.http.conn.DnsResolver;
v = new org.apache.http.impl.conn.DefaultHttpClientConnectionOperator;
specialinvoke v.<org.apache.http.impl.conn.DefaultHttpClientConnectionOperator: void <init>(org.apache.http.config.Lookup,org.apache.http.conn.SchemePortResolver,org.apache.http.conn.DnsResolver)>(v, v, v);
specialinvoke v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: void <init>(org.apache.http.conn.HttpClientConnectionOperator,org.apache.http.conn.HttpConnectionFactory)>(v, v);
return;
}
public void <init>(org.apache.http.conn.HttpClientConnectionOperator, org.apache.http.conn.HttpConnectionFactory)
{
org.apache.http.config.SocketConfig v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.http.config.ConnectionConfig v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.http.conn.HttpConnectionFactory v, v;
org.apache.http.conn.HttpClientConnectionOperator v;
java.lang.Class v;
java.lang.Object v;
org.apache.commons.logging.Log v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: org.apache.http.conn.HttpClientConnectionOperator;
v := @parameter: org.apache.http.conn.HttpConnectionFactory;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(v);
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log> = v;
v = staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Connection operator");
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.HttpClientConnectionOperator connectionOperator> = v;
if v == null goto label;
v = v;
goto label;
label:
v = <org.apache.http.impl.conn.ManagedHttpClientConnectionFactory: org.apache.http.impl.conn.ManagedHttpClientConnectionFactory INSTANCE>;
label:
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.HttpConnectionFactory connFactory> = v;
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: long expiry> = 9223372036854775807L;
v = <org.apache.http.config.SocketConfig: org.apache.http.config.SocketConfig DEFAULT>;
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.config.SocketConfig socketConfig> = v;
v = <org.apache.http.config.ConnectionConfig: org.apache.http.config.ConnectionConfig DEFAULT>;
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.config.ConnectionConfig connConfig> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: java.util.concurrent.atomic.AtomicBoolean isShutdown> = v;
return;
}
public void <init>(org.apache.http.config.Lookup, org.apache.http.conn.HttpConnectionFactory)
{
org.apache.http.config.Lookup v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.http.conn.HttpConnectionFactory v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: org.apache.http.config.Lookup;
v := @parameter: org.apache.http.conn.HttpConnectionFactory;
specialinvoke v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: void <init>(org.apache.http.config.Lookup,org.apache.http.conn.HttpConnectionFactory,org.apache.http.conn.SchemePortResolver,org.apache.http.conn.DnsResolver)>(v, v, null, null);
return;
}
public void <init>(org.apache.http.config.Lookup)
{
org.apache.http.config.Lookup v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: org.apache.http.config.Lookup;
specialinvoke v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: void <init>(org.apache.http.config.Lookup,org.apache.http.conn.HttpConnectionFactory,org.apache.http.conn.SchemePortResolver,org.apache.http.conn.DnsResolver)>(v, null, null, null);
return;
}
public void <init>()
{
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.http.config.Registry v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v = staticinvoke <org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.config.Registry getDefaultRegistry()>();
specialinvoke v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: void <init>(org.apache.http.config.Lookup,org.apache.http.conn.HttpConnectionFactory,org.apache.http.conn.SchemePortResolver,org.apache.http.conn.DnsResolver)>(v, null, null, null);
return;
}
protected void finalize() throws java.lang.Throwable
{
java.lang.Throwable v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
label:
virtualinvoke v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: void shutdown()>();
label:
specialinvoke v.<java.lang.Object: void finalize()>();
goto label;
label:
v := @caughtexception;
specialinvoke v.<java.lang.Object: void finalize()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void close()
{
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
java.util.concurrent.atomic.AtomicBoolean v;
boolean v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: java.util.concurrent.atomic.AtomicBoolean isShutdown>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
specialinvoke v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: void closeConnection()>();
label:
return;
}
org.apache.http.conn.routing.HttpRoute getRoute()
{
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.http.conn.routing.HttpRoute v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.routing.HttpRoute route>;
return v;
}
java.lang.Object getState()
{
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
java.lang.Object v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: java.lang.Object state>;
return v;
}
public synchronized org.apache.http.config.SocketConfig getSocketConfig()
{
org.apache.http.config.SocketConfig v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.config.SocketConfig socketConfig>;
return v;
}
public synchronized void setSocketConfig(org.apache.http.config.SocketConfig)
{
org.apache.http.config.SocketConfig v, v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: org.apache.http.config.SocketConfig;
if v == null goto label;
v = v;
goto label;
label:
v = <org.apache.http.config.SocketConfig: org.apache.http.config.SocketConfig DEFAULT>;
label:
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.config.SocketConfig socketConfig> = v;
return;
}
public synchronized org.apache.http.config.ConnectionConfig getConnectionConfig()
{
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.http.config.ConnectionConfig v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.config.ConnectionConfig connConfig>;
return v;
}
public synchronized void setConnectionConfig(org.apache.http.config.ConnectionConfig)
{
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.http.config.ConnectionConfig v, v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: org.apache.http.config.ConnectionConfig;
if v == null goto label;
v = v;
goto label;
label:
v = <org.apache.http.config.ConnectionConfig: org.apache.http.config.ConnectionConfig DEFAULT>;
label:
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.config.ConnectionConfig connConfig> = v;
return;
}
public final org.apache.http.conn.ConnectionRequest requestConnection(org.apache.http.conn.routing.HttpRoute, java.lang.Object)
{
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager$1 v;
java.lang.Object v;
org.apache.http.conn.routing.HttpRoute v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: org.apache.http.conn.routing.HttpRoute;
v := @parameter: java.lang.Object;
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Route");
v = new org.apache.http.impl.conn.BasicHttpClientConnectionManager$1;
specialinvoke v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager$1: void <init>(org.apache.http.impl.conn.BasicHttpClientConnectionManager,org.apache.http.conn.routing.HttpRoute,java.lang.Object)>(v, v, v);
return v;
}
private synchronized void closeConnection()
{
java.io.IOException v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.commons.logging.Log v, v, v;
org.apache.http.conn.ManagedHttpClientConnection v, v;
boolean v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
if v == null goto label;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>("Closing connection");
label:
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
interfaceinvoke v.<org.apache.http.conn.ManagedHttpClientConnection: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object,java.lang.Throwable)>("I/O exception closing connection", v);
label:
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn> = null;
label:
return;
catch java.io.IOException from label to label with label;
}
private void checkExpiry()
{
java.util.Date v;
long v, v, v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
byte v;
org.apache.commons.logging.Log v, v;
java.lang.String v;
org.apache.http.conn.ManagedHttpClientConnection v;
boolean v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
if v == null goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: long expiry>;
v = v cmp v;
if v < 0 goto label;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
v = new java.util.Date;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: long expiry>;
specialinvoke v.<java.util.Date: void <init>(long)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.Date)>(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[])>("Connection expired @ \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
specialinvoke v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: void closeConnection()>();
label:
return;
}
synchronized org.apache.http.HttpClientConnection getConnection(org.apache.http.conn.routing.HttpRoute, java.lang.Object)
{
org.apache.http.config.SocketConfig v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.http.conn.routing.HttpRoute v, v;
org.apache.http.conn.HttpConnectionFactory v;
int v;
java.lang.String v;
boolean v, v, v, v, v, v, v;
org.apache.http.config.ConnectionConfig v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
java.lang.Object v, v;
org.apache.commons.logging.Log v, v;
org.apache.http.HttpConnection v;
org.apache.http.conn.ManagedHttpClientConnection v, v, v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: org.apache.http.conn.routing.HttpRoute;
v := @parameter: java.lang.Object;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: java.util.concurrent.atomic.AtomicBoolean isShutdown>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.apache.http.util.Asserts: void check(boolean,java.lang.String)>(v, "Connection manager has been shut down");
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.http.conn.routing.HttpRoute)>(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[])>("Get connection for route \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: boolean leased>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.apache.http.util.Asserts: void check(boolean,java.lang.String)>(v, "Connection is still allocated");
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.routing.HttpRoute route>;
v = staticinvoke <org.apache.http.util.LangUtils: boolean equals(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: java.lang.Object state>;
v = staticinvoke <org.apache.http.util.LangUtils: boolean equals(java.lang.Object,java.lang.Object)>(v, v);
if v != 0 goto label;
label:
specialinvoke v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: void closeConnection()>();
label:
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.routing.HttpRoute route> = v;
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: java.lang.Object state> = v;
specialinvoke v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: void checkExpiry()>();
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
if v != null goto label;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.HttpConnectionFactory connFactory>;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.config.ConnectionConfig connConfig>;
v = interfaceinvoke v.<org.apache.http.conn.HttpConnectionFactory: org.apache.http.HttpConnection create(java.lang.Object,org.apache.http.config.ConnectionConfig)>(v, v);
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn> = v;
label:
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.config.SocketConfig socketConfig>;
v = virtualinvoke v.<org.apache.http.config.SocketConfig: int getSoTimeout()>();
interfaceinvoke v.<org.apache.http.conn.ManagedHttpClientConnection: void setSocketTimeout(int)>(v);
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: boolean leased> = 1;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
return v;
}
public synchronized void releaseConnection(org.apache.http.HttpClientConnection, java.lang.Object, long, java.util.concurrent.TimeUnit)
{
java.lang.Throwable v;
java.util.concurrent.atomic.AtomicBoolean v;
long v, v, v, v, v;
byte v, v;
java.lang.String v, v, v;
boolean v, v, v, v, v;
org.apache.http.HttpClientConnection v;
java.util.concurrent.TimeUnit v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
java.lang.Object v;
org.apache.commons.logging.Log v, v, v, v;
org.apache.http.conn.ManagedHttpClientConnection v, v, v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: org.apache.http.HttpClientConnection;
v := @parameter: java.lang.Object;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Connection");
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.apache.http.util.Asserts: void check(boolean,java.lang.String)>(v, "Connection not obtained from this manager");
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.http.HttpClientConnection)>(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[])>("Releasing connection \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: java.util.concurrent.atomic.AtomicBoolean isShutdown>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
return;
label:
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: long updated> = v;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
v = interfaceinvoke v.<org.apache.http.conn.ManagedHttpClientConnection: boolean isOpen()>();
if v != 0 goto label;
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn> = null;
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.routing.HttpRoute route> = null;
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn> = null;
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: long expiry> = 9223372036854775807L;
goto label;
label:
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: java.lang.Object state> = v;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
interfaceinvoke v.<org.apache.http.conn.ManagedHttpClientConnection: void setSocketTimeout(int)>(0);
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v cmp 0L;
if v <= 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,java.util.concurrent.TimeUnit)>(v, 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[])>("for \u \u0001");
goto label;
label:
v = "indefinitely";
label:
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Connection can be kept alive \u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: long updated>;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toMillis(long)>(v);
v = v + v;
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: long expiry> = v;
goto label;
label:
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: long expiry> = 9223372036854775807L;
label:
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: boolean leased> = 0;
goto label;
label:
v := @caughtexception;
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: boolean leased> = 0;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void connect(org.apache.http.HttpClientConnection, org.apache.http.conn.routing.HttpRoute, int, org.apache.http.protocol.HttpContext) throws java.io.IOException
{
org.apache.http.HttpClientConnection v;
org.apache.http.config.SocketConfig v;
org.apache.http.conn.routing.HttpRoute v;
java.net.InetSocketAddress v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.http.protocol.HttpContext v;
int v;
org.apache.http.conn.HttpClientConnectionOperator v;
org.apache.http.conn.ManagedHttpClientConnection v, v;
org.apache.http.HttpHost v, v;
boolean v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: org.apache.http.HttpClientConnection;
v := @parameter: org.apache.http.conn.routing.HttpRoute;
v := @parameter: int;
v := @parameter: org.apache.http.protocol.HttpContext;
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Connection");
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "HTTP route");
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.apache.http.util.Asserts: void check(boolean,java.lang.String)>(v, "Connection not obtained from this manager");
v = virtualinvoke v.<org.apache.http.conn.routing.HttpRoute: org.apache.http.HttpHost getProxyHost()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.http.conn.routing.HttpRoute: org.apache.http.HttpHost getProxyHost()>();
goto label;
label:
v = virtualinvoke v.<org.apache.http.conn.routing.HttpRoute: org.apache.http.HttpHost getTargetHost()>();
label:
v = virtualinvoke v.<org.apache.http.conn.routing.HttpRoute: java.net.InetSocketAddress getLocalSocketAddress()>();
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.HttpClientConnectionOperator connectionOperator>;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.config.SocketConfig socketConfig>;
interfaceinvoke v.<org.apache.http.conn.HttpClientConnectionOperator: void connect(org.apache.http.conn.ManagedHttpClientConnection,org.apache.http.HttpHost,java.net.InetSocketAddress,int,org.apache.http.config.SocketConfig,org.apache.http.protocol.HttpContext)>(v, v, v, v, v, v);
return;
}
public void upgrade(org.apache.http.HttpClientConnection, org.apache.http.conn.routing.HttpRoute, org.apache.http.protocol.HttpContext) throws java.io.IOException
{
org.apache.http.HttpClientConnection v;
org.apache.http.conn.routing.HttpRoute v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.http.protocol.HttpContext v;
org.apache.http.conn.HttpClientConnectionOperator v;
org.apache.http.conn.ManagedHttpClientConnection v, v;
org.apache.http.HttpHost v;
boolean v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: org.apache.http.HttpClientConnection;
v := @parameter: org.apache.http.conn.routing.HttpRoute;
v := @parameter: org.apache.http.protocol.HttpContext;
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Connection");
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "HTTP route");
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <org.apache.http.util.Asserts: void check(boolean,java.lang.String)>(v, "Connection not obtained from this manager");
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.HttpClientConnectionOperator connectionOperator>;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
v = virtualinvoke v.<org.apache.http.conn.routing.HttpRoute: org.apache.http.HttpHost getTargetHost()>();
interfaceinvoke v.<org.apache.http.conn.HttpClientConnectionOperator: void upgrade(org.apache.http.conn.ManagedHttpClientConnection,org.apache.http.HttpHost,org.apache.http.protocol.HttpContext)>(v, v, v);
return;
}
public void routeComplete(org.apache.http.HttpClientConnection, org.apache.http.conn.routing.HttpRoute, org.apache.http.protocol.HttpContext) throws java.io.IOException
{
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.http.HttpClientConnection v;
org.apache.http.protocol.HttpContext v;
org.apache.http.conn.routing.HttpRoute v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: org.apache.http.HttpClientConnection;
v := @parameter: org.apache.http.conn.routing.HttpRoute;
v := @parameter: org.apache.http.protocol.HttpContext;
return;
}
public synchronized void closeExpiredConnections()
{
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
java.util.concurrent.atomic.AtomicBoolean v;
boolean v, v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: java.util.concurrent.atomic.AtomicBoolean isShutdown>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
return;
label:
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: boolean leased>;
if v != 0 goto label;
specialinvoke v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: void checkExpiry()>();
label:
return;
}
public synchronized void closeIdleConnections(long, java.util.concurrent.TimeUnit)
{
java.util.concurrent.atomic.AtomicBoolean v;
long v, v, v, v, v;
java.util.concurrent.TimeUnit v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
byte v, v;
boolean v, v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Time unit");
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: java.util.concurrent.atomic.AtomicBoolean isShutdown>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v == 0 goto label;
return;
label:
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: boolean leased>;
if v != 0 goto label;
v = virtualinvoke v.<java.util.concurrent.TimeUnit: long toMillis(long)>(v);
v = v cmp 0L;
if v >= 0 goto label;
v = 0L;
label:
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: long updated>;
v = v cmp v;
if v > 0 goto label;
specialinvoke v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: void closeConnection()>();
label:
return;
}
public void shutdown()
{
java.util.concurrent.atomic.AtomicBoolean v;
java.io.IOException v;
org.apache.http.impl.conn.BasicHttpClientConnectionManager v;
org.apache.commons.logging.Log v, v, v;
org.apache.http.conn.ManagedHttpClientConnection v, v;
boolean v, v;
v := @this: org.apache.http.impl.conn.BasicHttpClientConnectionManager;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: java.util.concurrent.atomic.AtomicBoolean isShutdown>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
if v == null goto label;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>("Shutting down connection");
label:
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn>;
interfaceinvoke v.<org.apache.http.conn.ManagedHttpClientConnection: void shutdown()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.commons.logging.Log log>;
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object,java.lang.Throwable)>("I/O exception shutting down connection", v);
label:
v.<org.apache.http.impl.conn.BasicHttpClientConnectionManager: org.apache.http.conn.ManagedHttpClientConnection conn> = null;
label:
return;
catch java.io.IOException from label to label with label;
}
}