.class public abstract Lorg/apache/http/impl/conn/tsccm/AbstractConnPool; .super Ljava/lang/Object; .source "AbstractConnPool.java" # annotations .annotation runtime Ljava/lang/Deprecated; .end annotation # instance fields .field protected idleConnHandler:Lorg/apache/http/impl/conn/IdleConnectionHandler; .field protected volatile isShutDown:Z .field protected issuedConnections:Ljava/util/Set; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Set<", "Lorg/apache/http/impl/conn/tsccm/BasicPoolEntryRef;", ">;" } .end annotation .end field .field protected leasedConnections:Ljava/util/Set; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Set<", "Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;", ">;" } .end annotation .end field .field private final log:Lorg/apache/commons/logging/Log; .field protected numConnections:I .field protected final poolLock:Ljava/util/concurrent/locks/Lock; .field protected refQueue:Ljava/lang/ref/ReferenceQueue; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/ref/ReferenceQueue<", "Ljava/lang/Object;", ">;" } .end annotation .end field # direct methods .method protected constructor ()V .registers 2 .line 85 invoke-direct {p0}, Ljava/lang/Object;->()V .line 86 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/tsccm/AbstractConnPool;->log:Lorg/apache/commons/logging/Log; .line 87 new-instance v0, Ljava/util/HashSet; invoke-direct {v0}, Ljava/util/HashSet;->()V iput-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->leasedConnections:Ljava/util/Set; .line 88 new-instance v0, Lorg/apache/http/impl/conn/IdleConnectionHandler; invoke-direct {v0}, Lorg/apache/http/impl/conn/IdleConnectionHandler;->()V iput-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->idleConnHandler:Lorg/apache/http/impl/conn/IdleConnectionHandler; .line 89 new-instance v0, Ljava/util/concurrent/locks/ReentrantLock; invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;->()V iput-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->poolLock:Ljava/util/concurrent/locks/Lock; return-void .end method # virtual methods .method protected closeConnection(Lorg/apache/http/conn/OperatedClientConnection;)V .registers 4 if-eqz p1, :cond_e .line 225 :try_start_2 invoke-interface {p1}, Lorg/apache/http/conn/OperatedClientConnection;->close()V :try_end_5 .catch Ljava/io/IOException; {:try_start_2 .. :try_end_5} :catch_6 goto :goto_e :catch_6 move-exception p1 .line 227 iget-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->log:Lorg/apache/commons/logging/Log; const-string v1, "I/O error closing connection" invoke-interface {v0, v1, p1}, Lorg/apache/commons/logging/Log;->debug(Ljava/lang/Object;Ljava/lang/Throwable;)V :cond_e :goto_e return-void .end method .method public closeExpiredConnections()V .registers 3 .line 173 iget-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->poolLock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 175 :try_start_5 iget-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->idleConnHandler:Lorg/apache/http/impl/conn/IdleConnectionHandler; invoke-virtual {v0}, Lorg/apache/http/impl/conn/IdleConnectionHandler;->closeExpiredConnections()V :try_end_a .catchall {:try_start_5 .. :try_end_a} :catchall_10 .line 177 iget-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->poolLock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_10 move-exception v0 iget-object v1, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->poolLock:Ljava/util/concurrent/locks/Lock; invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V throw v0 .end method .method public closeIdleConnections(JLjava/util/concurrent/TimeUnit;)V .registers 5 .line 162 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 164 iget-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->poolLock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 166 :try_start_a iget-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->idleConnHandler:Lorg/apache/http/impl/conn/IdleConnectionHandler; invoke-virtual {p3, p1, p2}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J move-result-wide p1 invoke-virtual {v0, p1, p2}, Lorg/apache/http/impl/conn/IdleConnectionHandler;->closeIdleConnections(J)V :try_end_13 .catchall {:try_start_a .. :try_end_13} :catchall_19 .line 168 iget-object p1, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->poolLock:Ljava/util/concurrent/locks/Lock; invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_19 move-exception p1 iget-object p2, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->poolLock:Ljava/util/concurrent/locks/Lock; invoke-interface {p2}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p1 .end method .method public abstract deleteClosedConnections()V .end method .method public enableConnectionGC()V .registers 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/IllegalStateException; } .end annotation return-void .end method .method public abstract freeEntry(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;ZJLjava/util/concurrent/TimeUnit;)V .end method .method public final getEntry(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry; .registers 6 .annotation system Ldalvik/annotation/Throws; value = { Lorg/apache/http/conn/ConnectionPoolTimeoutException;, Ljava/lang/InterruptedException; } .end annotation .line 119 invoke-virtual {p0, p1, p2}, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->requestPoolEntry(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/impl/conn/tsccm/PoolEntryRequest; move-result-object p1 invoke-interface {p1, p3, p4, p5}, Lorg/apache/http/impl/conn/tsccm/PoolEntryRequest;->getPoolEntry(JLjava/util/concurrent/TimeUnit;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry; move-result-object p1 return-object p1 .end method .method protected abstract handleLostEntry(Lorg/apache/http/conn/routing/HttpRoute;)V .end method .method public handleReference(Ljava/lang/ref/Reference;)V .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/ref/Reference<", "*>;)V" } .end annotation return-void .end method .method public abstract requestPoolEntry(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/impl/conn/tsccm/PoolEntryRequest; .end method .method public shutdown()V .registers 3 .line 193 iget-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->poolLock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 196 :try_start_5 iget-boolean v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->isShutDown:Z :try_end_7 .catchall {:try_start_5 .. :try_end_7} :catchall_3a if-eqz v0, :cond_f .line 212 iget-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->poolLock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void .line 201 :cond_f :try_start_f iget-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->leasedConnections:Ljava/util/Set; invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 .line 202 :goto_15 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_2c .line 203 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry; .line 204 invoke-interface {v0}, Ljava/util/Iterator;->remove()V .line 205 invoke-virtual {v1}, Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;->getConnection()Lorg/apache/http/conn/OperatedClientConnection; move-result-object v1 invoke-virtual {p0, v1}, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->closeConnection(Lorg/apache/http/conn/OperatedClientConnection;)V goto :goto_15 .line 207 :cond_2c iget-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->idleConnHandler:Lorg/apache/http/impl/conn/IdleConnectionHandler; invoke-virtual {v0}, Lorg/apache/http/impl/conn/IdleConnectionHandler;->removeAll()V const/4 v0, 0x1 .line 209 iput-boolean v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->isShutDown:Z :try_end_34 .catchall {:try_start_f .. :try_end_34} :catchall_3a .line 212 iget-object v0, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->poolLock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_3a move-exception v0 iget-object v1, p0, Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;->poolLock:Ljava/util/concurrent/locks/Lock; invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V throw v0 .end method