.class public Lorg/apache/http/impl/conn/SingleClientConnManager; .super Ljava/lang/Object; .source "SingleClientConnManager.java" # interfaces .implements Lorg/apache/http/conn/ClientConnectionManager; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter;, Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; } .end annotation .annotation runtime Ljava/lang/Deprecated; .end annotation # static fields .field public static final MISUSE_MESSAGE:Ljava/lang/String; = "Invalid use of SingleClientConnManager: connection still allocated.\nMake sure to release the connection before allocating another one." # instance fields .field protected final alwaysShutDown:Z .field protected final connOperator:Lorg/apache/http/conn/ClientConnectionOperator; .field protected volatile connectionExpiresTime:J .field protected volatile isShutDown:Z .field protected volatile lastReleaseTime:J .field private final log:Lorg/apache/commons/logging/Log; .field protected volatile managedConn:Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; .field protected final schemeRegistry:Lorg/apache/http/conn/scheme/SchemeRegistry; .field protected volatile uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; # direct methods .method public constructor ()V .registers 2 .line 132 invoke-static {}, Lorg/apache/http/impl/conn/SchemeRegistryFactory;->createDefault()Lorg/apache/http/conn/scheme/SchemeRegistry; move-result-object v0 invoke-direct {p0, v0}, Lorg/apache/http/impl/conn/SingleClientConnManager;->(Lorg/apache/http/conn/scheme/SchemeRegistry;)V return-void .end method .method public constructor (Lorg/apache/http/conn/scheme/SchemeRegistry;)V .registers 4 .line 117 invoke-direct {p0}, Ljava/lang/Object;->()V .line 68 invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 invoke-static {v0}, Lorg/apache/commons/logging/LogFactory;->getLog(Ljava/lang/Class;)Lorg/apache/commons/logging/Log; move-result-object v0 iput-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; .line 118 const-string v0, "Scheme registry" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 119 iput-object p1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->schemeRegistry:Lorg/apache/http/conn/scheme/SchemeRegistry; .line 120 invoke-virtual {p0, p1}, Lorg/apache/http/impl/conn/SingleClientConnManager;->createConnectionOperator(Lorg/apache/http/conn/scheme/SchemeRegistry;)Lorg/apache/http/conn/ClientConnectionOperator; move-result-object p1 iput-object p1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->connOperator:Lorg/apache/http/conn/ClientConnectionOperator; .line 121 new-instance p1, Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; invoke-direct {p1, p0}, Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry;->(Lorg/apache/http/impl/conn/SingleClientConnManager;)V iput-object p1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; const/4 p1, 0x0 .line 122 iput-object p1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->managedConn:Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; const-wide/16 v0, -0x1 .line 123 iput-wide v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->lastReleaseTime:J const/4 p1, 0x0 .line 124 iput-boolean p1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->alwaysShutDown:Z .line 125 iput-boolean p1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->isShutDown:Z return-void .end method .method public constructor (Lorg/apache/http/params/HttpParams;Lorg/apache/http/conn/scheme/SchemeRegistry;)V .registers 3 .annotation runtime Ljava/lang/Deprecated; .end annotation .line 110 invoke-direct {p0, p2}, Lorg/apache/http/impl/conn/SingleClientConnManager;->(Lorg/apache/http/conn/scheme/SchemeRegistry;)V return-void .end method # virtual methods .method protected final assertStillUp()V .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/IllegalStateException; } .end annotation .line 172 iget-boolean v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->isShutDown:Z xor-int/lit8 v0, v0, 0x1 const-string v1, "Manager is shut down" invoke-static {v0, v1}, Lorg/apache/http/util/Asserts;->check(ZLjava/lang/String;)V return-void .end method .method public closeExpiredConnections()V .registers 5 .line 313 iget-wide v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->connectionExpiresTime:J .line 314 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v2 cmp-long v0, v2, v0 if-ltz v0, :cond_11 const-wide/16 v0, 0x0 .line 315 sget-object v2, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; invoke-virtual {p0, v0, v1, v2}, Lorg/apache/http/impl/conn/SingleClientConnManager;->closeIdleConnections(JLjava/util/concurrent/TimeUnit;)V :cond_11 return-void .end method .method public closeIdleConnections(JLjava/util/concurrent/TimeUnit;)V .registers 6 .line 321 invoke-virtual {p0}, Lorg/apache/http/impl/conn/SingleClientConnManager;->assertStillUp()V .line 324 const-string v0, "Time unit" invoke-static {p3, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 326 monitor-enter p0 .line 327 :try_start_9 iget-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->managedConn:Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; if-nez v0, :cond_34 iget-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; iget-object v0, v0, Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry;->connection:Lorg/apache/http/conn/OperatedClientConnection; invoke-interface {v0}, Lorg/apache/http/conn/OperatedClientConnection;->isOpen()Z move-result v0 if-eqz v0, :cond_34 .line 328 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v0 invoke-virtual {p3, p1, p2}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J move-result-wide p1 sub-long/2addr v0, p1 .line 330 iget-wide p1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->lastReleaseTime:J :try_end_22 .catchall {:try_start_9 .. :try_end_22} :catchall_36 cmp-long p1, p1, v0 if-gtz p1, :cond_34 .line 332 :try_start_26 iget-object p1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; invoke-virtual {p1}, Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry;->close()V :try_end_2b .catch Ljava/io/IOException; {:try_start_26 .. :try_end_2b} :catch_2c .catchall {:try_start_26 .. :try_end_2b} :catchall_36 goto :goto_34 :catch_2c move-exception p1 .line 335 :try_start_2d iget-object p2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; const-string p3, "Problem closing idle connection." invoke-interface {p2, p3, p1}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;Ljava/lang/Throwable;)V .line 339 :cond_34 :goto_34 monitor-exit p0 return-void :catchall_36 move-exception p1 monitor-exit p0 :try_end_38 .catchall {:try_start_2d .. :try_end_38} :catchall_36 throw p1 .end method .method protected createConnectionOperator(Lorg/apache/http/conn/scheme/SchemeRegistry;)Lorg/apache/http/conn/ClientConnectionOperator; .registers 3 .line 163 new-instance v0, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator; invoke-direct {v0, p1}, Lorg/apache/http/impl/conn/DefaultClientConnectionOperator;->(Lorg/apache/http/conn/scheme/SchemeRegistry;)V return-object v0 .end method .method protected finalize()V .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/Throwable; } .end annotation .line 138 :try_start_0 invoke-virtual {p0}, Lorg/apache/http/impl/conn/SingleClientConnManager;->shutdown()V :try_end_3 .catchall {:try_start_0 .. :try_end_3} :catchall_7 .line 140 invoke-super {p0}, Ljava/lang/Object;->finalize()V return-void :catchall_7 move-exception v0 invoke-super {p0}, Ljava/lang/Object;->finalize()V throw v0 .end method .method public getConnection(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/conn/ManagedClientConnection; .registers 7 .line 206 const-string p2, "Route" invoke-static {p1, p2}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 207 invoke-virtual {p0}, Lorg/apache/http/impl/conn/SingleClientConnManager;->assertStillUp()V .line 209 iget-object p2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; invoke-interface {p2}, Lorg/apache/commons/logging/Log;->isDebugEnabled()Z move-result p2 if-eqz p2, :cond_24 .line 210 iget-object p2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; new-instance v0, Ljava/lang/StringBuilder; const-string v1, "Get connection for route " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-interface {p2, v0}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V .line 213 :cond_24 monitor-enter p0 .line 215 :try_start_25 iget-object p2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->managedConn:Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; const/4 v0, 0x1 const/4 v1, 0x0 if-nez p2, :cond_2d move p2, v0 goto :goto_2e :cond_2d move p2, v1 :goto_2e const-string v2, "Invalid use of SingleClientConnManager: connection still allocated.\nMake sure to release the connection before allocating another one." invoke-static {p2, v2}, Lorg/apache/http/util/Asserts;->check(ZLjava/lang/String;)V .line 222 invoke-virtual {p0}, Lorg/apache/http/impl/conn/SingleClientConnManager;->closeExpiredConnections()V .line 224 iget-object p2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; iget-object p2, p2, Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry;->connection:Lorg/apache/http/conn/OperatedClientConnection; invoke-interface {p2}, Lorg/apache/http/conn/OperatedClientConnection;->isOpen()Z move-result p2 if-eqz p2, :cond_58 .line 225 iget-object p2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; iget-object p2, p2, Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry;->tracker:Lorg/apache/http/conn/routing/RouteTracker; if-eqz p2, :cond_53 .line 226 invoke-virtual {p2}, Lorg/apache/http/conn/routing/RouteTracker;->toRoute()Lorg/apache/http/conn/routing/HttpRoute; move-result-object p2 invoke-virtual {p2, p1}, Lorg/apache/http/conn/routing/HttpRoute;->equals(Ljava/lang/Object;)Z move-result p2 :try_end_4e .catchall {:try_start_25 .. :try_end_4e} :catchall_81 if-nez p2, :cond_51 goto :goto_53 :cond_51 move p2, v1 goto :goto_54 :cond_53 :goto_53 move p2, v0 :goto_54 move v3, v1 move v1, p2 move p2, v3 goto :goto_59 :cond_58 move p2, v0 :goto_59 if-eqz v1, :cond_6a .line 240 :try_start_5b iget-object p2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; invoke-virtual {p2}, Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry;->shutdown()V :try_end_60 .catch Ljava/io/IOException; {:try_start_5b .. :try_end_60} :catch_61 .catchall {:try_start_5b .. :try_end_60} :catchall_81 goto :goto_6b :catch_61 move-exception p2 .line 242 :try_start_62 iget-object v1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; const-string v2, "Problem shutting down connection." invoke-interface {v1, v2, p2}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;Ljava/lang/Throwable;)V goto :goto_6b :cond_6a move v0, p2 :goto_6b if-eqz v0, :cond_74 .line 247 new-instance p2, Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; invoke-direct {p2, p0}, Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry;->(Lorg/apache/http/impl/conn/SingleClientConnManager;)V iput-object p2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; .line 250 :cond_74 new-instance p2, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; iget-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; invoke-direct {p2, p0, v0, p1}, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter;->(Lorg/apache/http/impl/conn/SingleClientConnManager;Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry;Lorg/apache/http/conn/routing/HttpRoute;)V iput-object p2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->managedConn:Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; .line 252 iget-object p1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->managedConn:Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; monitor-exit p0 return-object p1 :catchall_81 move-exception p1 .line 253 monitor-exit p0 :try_end_83 .catchall {:try_start_62 .. :try_end_83} :catchall_81 throw p1 .end method .method public getSchemeRegistry()Lorg/apache/http/conn/scheme/SchemeRegistry; .registers 2 .line 146 iget-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->schemeRegistry:Lorg/apache/http/conn/scheme/SchemeRegistry; return-object v0 .end method .method public releaseConnection(Lorg/apache/http/conn/ManagedClientConnection;JLjava/util/concurrent/TimeUnit;)V .registers 13 .line 260 instance-of v0, p1, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; const-string v1, "Connection class mismatch, connection not obtained from this manager" invoke-static {v0, v1}, Lorg/apache/http/util/Args;->check(ZLjava/lang/String;)V .line 262 invoke-virtual {p0}, Lorg/apache/http/impl/conn/SingleClientConnManager;->assertStillUp()V .line 264 iget-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; invoke-interface {v0}, Lorg/apache/commons/logging/Log;->isDebugEnabled()Z move-result v0 if-eqz v0, :cond_26 .line 265 iget-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "Releasing connection " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-interface {v0, v1}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V .line 268 :cond_26 check-cast p1, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; .line 269 monitor-enter p1 .line 270 :try_start_29 iget-object v0, p1, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter;->poolEntry:Lorg/apache/http/impl/conn/AbstractPoolEntry; if-nez v0, :cond_2f .line 272 monitor-exit p1 return-void .line 274 :cond_2f invoke-virtual {p1}, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter;->getManager()Lorg/apache/http/conn/ClientConnectionManager; move-result-object v0 if-ne v0, p0, :cond_37 const/4 v0, 0x1 goto :goto_38 :cond_37 const/4 v0, 0x0 .line 275 :goto_38 const-string v1, "Connection not obtained from this manager" invoke-static {v0, v1}, Lorg/apache/http/util/Asserts;->check(ZLjava/lang/String;)V :try_end_3d .catchall {:try_start_29 .. :try_end_3d} :catchall_dd const-wide v0, 0x7fffffffffffffffL const-wide/16 v2, 0x0 const/4 v4, 0x0 .line 278 :try_start_45 invoke-virtual {p1}, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter;->isOpen()Z move-result v5 if-eqz v5, :cond_67 iget-boolean v5, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->alwaysShutDown:Z if-nez v5, :cond_55 invoke-virtual {p1}, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter;->isMarkedReusable()Z move-result v5 if-nez v5, :cond_67 .line 281 :cond_55 iget-object v5, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; invoke-interface {v5}, Lorg/apache/commons/logging/Log;->isDebugEnabled()Z move-result v5 if-eqz v5, :cond_64 .line 282 iget-object v5, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; const-string v6, "Released connection open but not reusable." invoke-interface {v5, v6}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;)V .line 289 :cond_64 invoke-virtual {p1}, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter;->shutdown()V :try_end_67 .catch Ljava/io/IOException; {:try_start_45 .. :try_end_67} :catch_8a .catchall {:try_start_45 .. :try_end_67} :catchall_88 .line 297 :cond_67 :try_start_67 invoke-virtual {p1}, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter;->detach()V .line 298 monitor-enter p0 :try_end_6b .catchall {:try_start_67 .. :try_end_6b} :catchall_dd .line 299 :try_start_6b iput-object v4, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->managedConn:Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; .line 300 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v4 iput-wide v4, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->lastReleaseTime:J cmp-long v2, p2, v2 if-lez v2, :cond_81 .line 302 invoke-virtual {p4, p2, p3}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J move-result-wide p2 iget-wide v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->lastReleaseTime:J add-long/2addr p2, v0 iput-wide p2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->connectionExpiresTime:J goto :goto_83 .line 304 :cond_81 iput-wide v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->connectionExpiresTime:J .line 306 :goto_83 monitor-exit p0 goto :goto_b7 :catchall_85 move-exception p2 monitor-exit p0 :try_end_87 .catchall {:try_start_6b .. :try_end_87} :catchall_85 :try_start_87 throw p2 :try_end_88 .catchall {:try_start_87 .. :try_end_88} :catchall_dd :catchall_88 move-exception v5 goto :goto_bc :catch_8a move-exception v5 .line 292 :try_start_8b iget-object v6, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; invoke-interface {v6}, Lorg/apache/commons/logging/Log;->isDebugEnabled()Z move-result v6 if-eqz v6, :cond_9a .line 293 iget-object v6, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; const-string v7, "Exception shutting down released connection." invoke-interface {v6, v7, v5}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;Ljava/lang/Throwable;)V :try_end_9a .catchall {:try_start_8b .. :try_end_9a} :catchall_88 .line 297 :cond_9a :try_start_9a invoke-virtual {p1}, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter;->detach()V .line 298 monitor-enter p0 :try_end_9e .catchall {:try_start_9a .. :try_end_9e} :catchall_dd .line 299 :try_start_9e iput-object v4, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->managedConn:Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; .line 300 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v4 iput-wide v4, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->lastReleaseTime:J cmp-long v2, p2, v2 if-lez v2, :cond_b4 .line 302 invoke-virtual {p4, p2, p3}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J move-result-wide p2 iget-wide v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->lastReleaseTime:J add-long/2addr p2, v0 iput-wide p2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->connectionExpiresTime:J goto :goto_b6 .line 304 :cond_b4 iput-wide v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->connectionExpiresTime:J .line 306 :goto_b6 monitor-exit p0 :try_end_b7 .catchall {:try_start_9e .. :try_end_b7} :catchall_b9 .line 308 :goto_b7 :try_start_b7 monitor-exit p1 :try_end_b8 .catchall {:try_start_b7 .. :try_end_b8} :catchall_dd return-void :catchall_b9 move-exception p2 .line 306 :try_start_ba monitor-exit p0 :try_end_bb .catchall {:try_start_ba .. :try_end_bb} :catchall_b9 :try_start_bb throw p2 .line 297 :goto_bc invoke-virtual {p1}, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter;->detach()V .line 298 monitor-enter p0 :try_end_c0 .catchall {:try_start_bb .. :try_end_c0} :catchall_dd .line 299 :try_start_c0 iput-object v4, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->managedConn:Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; .line 300 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v6 iput-wide v6, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->lastReleaseTime:J cmp-long v2, p2, v2 if-lez v2, :cond_d6 .line 302 invoke-virtual {p4, p2, p3}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J move-result-wide p2 iget-wide v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->lastReleaseTime:J add-long/2addr p2, v0 iput-wide p2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->connectionExpiresTime:J goto :goto_d8 .line 304 :cond_d6 iput-wide v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->connectionExpiresTime:J .line 306 :goto_d8 monitor-exit p0 :try_end_d9 .catchall {:try_start_c0 .. :try_end_d9} :catchall_da :try_start_d9 throw v5 :try_end_da .catchall {:try_start_d9 .. :try_end_da} :catchall_dd :catchall_da move-exception p2 :try_start_db monitor-exit p0 :try_end_dc .catchall {:try_start_db .. :try_end_dc} :catchall_da :try_start_dc throw p2 :catchall_dd move-exception p2 .line 308 monitor-exit p1 :try_end_df .catchall {:try_start_dc .. :try_end_df} :catchall_dd throw p2 .end method .method public final requestConnection(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/conn/ClientConnectionRequest; .registers 4 .line 180 new-instance v0, Lorg/apache/http/impl/conn/SingleClientConnManager$1; invoke-direct {v0, p0, p1, p2}, Lorg/apache/http/impl/conn/SingleClientConnManager$1;->(Lorg/apache/http/impl/conn/SingleClientConnManager;Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)V return-object v0 .end method .method protected revokeConnection()V .registers 4 .line 361 iget-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->managedConn:Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; if-nez v0, :cond_5 return-void .line 365 :cond_5 invoke-virtual {v0}, Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter;->detach()V .line 367 monitor-enter p0 .line 369 :try_start_9 iget-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; invoke-virtual {v0}, Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry;->shutdown()V :try_end_e .catch Ljava/io/IOException; {:try_start_9 .. :try_end_e} :catch_11 .catchall {:try_start_9 .. :try_end_e} :catchall_f goto :goto_19 :catchall_f move-exception v0 goto :goto_1b :catch_11 move-exception v0 .line 372 :try_start_12 iget-object v1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; const-string v2, "Problem while shutting down connection." invoke-interface {v1, v2, v0}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;Ljava/lang/Throwable;)V .line 374 :goto_19 monitor-exit p0 return-void :goto_1b monitor-exit p0 :try_end_1c .catchall {:try_start_12 .. :try_end_1c} :catchall_f throw v0 .end method .method public shutdown()V .registers 5 const/4 v0, 0x1 .line 344 iput-boolean v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->isShutDown:Z .line 345 monitor-enter p0 const/4 v0, 0x0 .line 347 :try_start_5 iget-object v1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; if-eqz v1, :cond_e .line 348 iget-object v1, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; invoke-virtual {v1}, Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry;->shutdown()V :try_end_e .catch Ljava/io/IOException; {:try_start_5 .. :try_end_e} :catch_17 .catchall {:try_start_5 .. :try_end_e} :catchall_15 .line 354 :cond_e :try_start_e iput-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; .line 355 :goto_10 iput-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->managedConn:Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; :try_end_12 .catchall {:try_start_e .. :try_end_12} :catchall_13 goto :goto_22 :catchall_13 move-exception v0 goto :goto_29 :catchall_15 move-exception v1 goto :goto_24 :catch_17 move-exception v1 .line 352 :try_start_18 iget-object v2, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->log:Lorg/apache/commons/logging/Log; const-string v3, "Problem while shutting down manager." invoke-interface {v2, v3, v1}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;Ljava/lang/Throwable;)V :try_end_1f .catchall {:try_start_18 .. :try_end_1f} :catchall_15 .line 354 :try_start_1f iput-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; goto :goto_10 .line 357 :goto_22 monitor-exit p0 return-void .line 354 :goto_24 iput-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->uniquePoolEntry:Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry; .line 355 iput-object v0, p0, Lorg/apache/http/impl/conn/SingleClientConnManager;->managedConn:Lorg/apache/http/impl/conn/SingleClientConnManager$ConnAdapter; throw v1 .line 357 :goto_29 monitor-exit p0 :try_end_2a .catchall {:try_start_1f .. :try_end_2a} :catchall_13 throw v0 .end method