.class public abstract Lorg/apache/http/pool/AbstractConnPool; .super Ljava/lang/Object; .source "AbstractConnPool.java" # interfaces .implements Lorg/apache/http/pool/ConnPool; .implements Lorg/apache/http/pool/ConnPoolControl; # annotations .annotation system Ldalvik/annotation/Signature; value = { ";>", "Ljava/lang/Object;", "Lorg/apache/http/pool/ConnPool<", "TT;TE;>;", "Lorg/apache/http/pool/ConnPoolControl<", "TT;>;" } .end annotation # instance fields .field private final available:Ljava/util/LinkedList; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/LinkedList<", "TE;>;" } .end annotation .end field .field private final condition:Ljava/util/concurrent/locks/Condition; .field private final connFactory:Lorg/apache/http/pool/ConnFactory; .annotation system Ldalvik/annotation/Signature; value = { "Lorg/apache/http/pool/ConnFactory<", "TT;TC;>;" } .end annotation .end field .field private volatile defaultMaxPerRoute:I .field private volatile isShutDown:Z .field private final leased:Ljava/util/Set; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Set<", "TE;>;" } .end annotation .end field .field private final lock:Ljava/util/concurrent/locks/Lock; .field private final maxPerRoute:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "TT;", "Ljava/lang/Integer;", ">;" } .end annotation .end field .field private volatile maxTotal:I .field private final pending:Ljava/util/LinkedList; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/LinkedList<", "Ljava/util/concurrent/Future<", "TE;>;>;" } .end annotation .end field .field private final routeToPool:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "TT;", "Lorg/apache/http/pool/RouteSpecificPool<", "TT;TC;TE;>;>;" } .end annotation .end field .field private volatile validateAfterInactivity:I # direct methods .method public constructor (Lorg/apache/http/pool/ConnFactory;II)V .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lorg/apache/http/pool/ConnFactory<", "TT;TC;>;II)V" } .end annotation .line 90 invoke-direct {p0}, Ljava/lang/Object;->()V .line 91 const-string v0, "Connection factory" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Lorg/apache/http/pool/ConnFactory; iput-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->connFactory:Lorg/apache/http/pool/ConnFactory; .line 92 const-string p1, "Max per route value" invoke-static {p2, p1}, Lorg/apache/http/util/Args;->positive(ILjava/lang/String;)I move-result p1 iput p1, p0, Lorg/apache/http/pool/AbstractConnPool;->defaultMaxPerRoute:I .line 93 const-string p1, "Max total value" invoke-static {p3, p1}, Lorg/apache/http/util/Args;->positive(ILjava/lang/String;)I move-result p1 iput p1, p0, Lorg/apache/http/pool/AbstractConnPool;->maxTotal:I .line 94 new-instance p1, Ljava/util/concurrent/locks/ReentrantLock; invoke-direct {p1}, Ljava/util/concurrent/locks/ReentrantLock;->()V iput-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; .line 95 invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->newCondition()Ljava/util/concurrent/locks/Condition; move-result-object p1 iput-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->condition:Ljava/util/concurrent/locks/Condition; .line 96 new-instance p1, Ljava/util/HashMap; invoke-direct {p1}, Ljava/util/HashMap;->()V iput-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->routeToPool:Ljava/util/Map; .line 97 new-instance p1, Ljava/util/HashSet; invoke-direct {p1}, Ljava/util/HashSet;->()V iput-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->leased:Ljava/util/Set; .line 98 new-instance p1, Ljava/util/LinkedList; invoke-direct {p1}, Ljava/util/LinkedList;->()V iput-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; .line 99 new-instance p1, Ljava/util/LinkedList; invoke-direct {p1}, Ljava/util/LinkedList;->()V iput-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->pending:Ljava/util/LinkedList; .line 100 new-instance p1, Ljava/util/HashMap; invoke-direct {p1}, Ljava/util/HashMap;->()V iput-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->maxPerRoute:Ljava/util/Map; return-void .end method .method static synthetic access$000(Lorg/apache/http/pool/AbstractConnPool;)Ljava/util/concurrent/locks/Lock; .registers 1 .line 69 iget-object p0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; return-object p0 .end method .method static synthetic access$100(Lorg/apache/http/pool/AbstractConnPool;)Ljava/util/concurrent/locks/Condition; .registers 1 .line 69 iget-object p0, p0, Lorg/apache/http/pool/AbstractConnPool;->condition:Ljava/util/concurrent/locks/Condition; return-object p0 .end method .method static synthetic access$200(Lorg/apache/http/pool/AbstractConnPool;Ljava/lang/Object;Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/Future;)Lorg/apache/http/pool/PoolEntry; .registers 7 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException;, Ljava/lang/InterruptedException;, Ljava/util/concurrent/TimeoutException; } .end annotation .line 69 invoke-direct/range {p0 .. p6}, Lorg/apache/http/pool/AbstractConnPool;->getPoolEntryBlocking(Ljava/lang/Object;Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/Future;)Lorg/apache/http/pool/PoolEntry; move-result-object p0 return-object p0 .end method .method static synthetic access$300(Lorg/apache/http/pool/AbstractConnPool;)I .registers 1 .line 69 iget p0, p0, Lorg/apache/http/pool/AbstractConnPool;->validateAfterInactivity:I return p0 .end method .method private getMax(Ljava/lang/Object;)I .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(TT;)I" } .end annotation .line 434 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->maxPerRoute:Ljava/util/Map; invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Ljava/lang/Integer; if-eqz p1, :cond_f .line 436 invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I move-result p1 return p1 .line 438 :cond_f iget p1, p0, Lorg/apache/http/pool/AbstractConnPool;->defaultMaxPerRoute:I return p1 .end method .method private getPool(Ljava/lang/Object;)Lorg/apache/http/pool/RouteSpecificPool; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(TT;)", "Lorg/apache/http/pool/RouteSpecificPool<", "TT;TC;TE;>;" } .end annotation .line 165 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->routeToPool:Ljava/util/Map; invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lorg/apache/http/pool/RouteSpecificPool; if-nez v0, :cond_14 .line 167 new-instance v0, Lorg/apache/http/pool/AbstractConnPool$1; invoke-direct {v0, p0, p1, p1}, Lorg/apache/http/pool/AbstractConnPool$1;->(Lorg/apache/http/pool/AbstractConnPool;Ljava/lang/Object;Ljava/lang/Object;)V .line 175 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->routeToPool:Ljava/util/Map; invoke-interface {v1, p1, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_14 return-object v0 .end method .method private getPoolEntryBlocking(Ljava/lang/Object;Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/Future;)Lorg/apache/http/pool/PoolEntry; .registers 13 .annotation system Ldalvik/annotation/Signature; value = { "(TT;", "Ljava/lang/Object;", "J", "Ljava/util/concurrent/TimeUnit;", "Ljava/util/concurrent/Future<", "TE;>;)TE;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException;, Ljava/lang/InterruptedException;, Ljava/util/concurrent/TimeoutException; } .end annotation const-wide/16 v0, 0x0 cmp-long v0, p3, v0 if-lez v0, :cond_15 .line 304 new-instance v0, Ljava/util/Date; invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v1 invoke-virtual {p5, p3, p4}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J move-result-wide p3 add-long/2addr v1, p3 invoke-direct {v0, v1, v2}, Ljava/util/Date;->(J)V goto :goto_16 :cond_15 const/4 v0, 0x0 .line 306 :goto_16 iget-object p3, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p3}, Ljava/util/concurrent/locks/Lock;->lock()V .line 308 :try_start_1b invoke-direct {p0, p1}, Lorg/apache/http/pool/AbstractConnPool;->getPool(Ljava/lang/Object;)Lorg/apache/http/pool/RouteSpecificPool; move-result-object p3 .line 311 :cond_1f :goto_1f iget-boolean p4, p0, Lorg/apache/http/pool/AbstractConnPool;->isShutDown:Z const/4 p5, 0x1 const/4 v1, 0x0 xor-int/2addr p4, p5 const-string v2, "Connection pool shut down" invoke-static {p4, v2}, Lorg/apache/http/util/Asserts;->check(ZLjava/lang/String;)V .line 313 :goto_29 invoke-virtual {p3, p2}, Lorg/apache/http/pool/RouteSpecificPool;->getFree(Ljava/lang/Object;)Lorg/apache/http/pool/PoolEntry; move-result-object p4 if-nez p4, :cond_30 goto :goto_4c .line 317 :cond_30 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v2 invoke-virtual {p4, v2, v3}, Lorg/apache/http/pool/PoolEntry;->isExpired(J)Z move-result v2 if-eqz v2, :cond_3d .line 318 invoke-virtual {p4}, Lorg/apache/http/pool/PoolEntry;->close()V .line 320 :cond_3d invoke-virtual {p4}, Lorg/apache/http/pool/PoolEntry;->isClosed()Z move-result v2 if-eqz v2, :cond_4c .line 321 iget-object v2, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; invoke-virtual {v2, p4}, Ljava/util/LinkedList;->remove(Ljava/lang/Object;)Z .line 322 invoke-virtual {p3, p4, v1}, Lorg/apache/http/pool/RouteSpecificPool;->free(Lorg/apache/http/pool/PoolEntry;Z)V goto :goto_29 :cond_4c :goto_4c if-eqz p4, :cond_61 .line 328 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; invoke-virtual {p1, p4}, Ljava/util/LinkedList;->remove(Ljava/lang/Object;)Z .line 329 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->leased:Ljava/util/Set; invoke-interface {p1, p4}, Ljava/util/Set;->add(Ljava/lang/Object;)Z .line 330 invoke-virtual {p0, p4}, Lorg/apache/http/pool/AbstractConnPool;->onReuse(Lorg/apache/http/pool/PoolEntry;)V :try_end_5b .catchall {:try_start_1b .. :try_end_5b} :catchall_136 .line 401 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V return-object p4 .line 335 :cond_61 :try_start_61 invoke-direct {p0, p1}, Lorg/apache/http/pool/AbstractConnPool;->getMax(Ljava/lang/Object;)I move-result p4 .line 337 invoke-virtual {p3}, Lorg/apache/http/pool/RouteSpecificPool;->getAllocatedCount()I move-result v2 add-int/2addr v2, p5 sub-int/2addr v2, p4 invoke-static {v1, v2}, Ljava/lang/Math;->max(II)I move-result v2 if-lez v2, :cond_89 move v3, v1 :goto_72 if-ge v3, v2, :cond_89 .line 340 invoke-virtual {p3}, Lorg/apache/http/pool/RouteSpecificPool;->getLastUsed()Lorg/apache/http/pool/PoolEntry; move-result-object v4 if-nez v4, :cond_7b goto :goto_89 .line 344 :cond_7b invoke-virtual {v4}, Lorg/apache/http/pool/PoolEntry;->close()V .line 345 iget-object v5, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; invoke-virtual {v5, v4}, Ljava/util/LinkedList;->remove(Ljava/lang/Object;)Z .line 346 invoke-virtual {p3, v4}, Lorg/apache/http/pool/RouteSpecificPool;->remove(Lorg/apache/http/pool/PoolEntry;)Z add-int/lit8 v3, v3, 0x1 goto :goto_72 .line 350 :cond_89 :goto_89 invoke-virtual {p3}, Lorg/apache/http/pool/RouteSpecificPool;->getAllocatedCount()I move-result v2 if-ge v2, p4, :cond_da .line 351 iget-object p4, p0, Lorg/apache/http/pool/AbstractConnPool;->leased:Ljava/util/Set; invoke-interface {p4}, Ljava/util/Set;->size()I move-result p4 .line 352 iget v2, p0, Lorg/apache/http/pool/AbstractConnPool;->maxTotal:I sub-int/2addr v2, p4 invoke-static {v2, v1}, Ljava/lang/Math;->max(II)I move-result p4 if-lez p4, :cond_da .line 354 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; invoke-virtual {p2}, Ljava/util/LinkedList;->size()I move-result p2 sub-int/2addr p4, p5 if-le p2, p4, :cond_c5 .line 356 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; invoke-virtual {p2}, Ljava/util/LinkedList;->isEmpty()Z move-result p2 if-nez p2, :cond_c5 .line 357 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; invoke-virtual {p2}, Ljava/util/LinkedList;->removeLast()Ljava/lang/Object; move-result-object p2 check-cast p2, Lorg/apache/http/pool/PoolEntry; .line 358 invoke-virtual {p2}, Lorg/apache/http/pool/PoolEntry;->close()V .line 359 invoke-virtual {p2}, Lorg/apache/http/pool/PoolEntry;->getRoute()Ljava/lang/Object; move-result-object p4 invoke-direct {p0, p4}, Lorg/apache/http/pool/AbstractConnPool;->getPool(Ljava/lang/Object;)Lorg/apache/http/pool/RouteSpecificPool; move-result-object p4 .line 360 invoke-virtual {p4, p2}, Lorg/apache/http/pool/RouteSpecificPool;->remove(Lorg/apache/http/pool/PoolEntry;)Z .line 363 :cond_c5 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->connFactory:Lorg/apache/http/pool/ConnFactory; invoke-interface {p2, p1}, Lorg/apache/http/pool/ConnFactory;->create(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 .line 364 invoke-virtual {p3, p1}, Lorg/apache/http/pool/RouteSpecificPool;->add(Ljava/lang/Object;)Lorg/apache/http/pool/PoolEntry; move-result-object p1 .line 365 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->leased:Ljava/util/Set; invoke-interface {p2, p1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z :try_end_d4 .catchall {:try_start_61 .. :try_end_d4} :catchall_136 .line 401 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p2}, Ljava/util/concurrent/locks/Lock;->unlock()V return-object p1 .line 372 :cond_da :try_start_da invoke-interface {p6}, Ljava/util/concurrent/Future;->isCancelled()Z move-result p4 :try_end_de .catchall {:try_start_da .. :try_end_de} :catchall_12c const-string v1, "Operation interrupted" if-nez p4, :cond_126 .line 375 :try_start_e2 invoke-virtual {p3, p6}, Lorg/apache/http/pool/RouteSpecificPool;->queue(Ljava/util/concurrent/Future;)V .line 376 iget-object p4, p0, Lorg/apache/http/pool/AbstractConnPool;->pending:Ljava/util/LinkedList; invoke-virtual {p4, p6}, Ljava/util/LinkedList;->add(Ljava/lang/Object;)Z if-eqz v0, :cond_f3 .line 378 iget-object p4, p0, Lorg/apache/http/pool/AbstractConnPool;->condition:Ljava/util/concurrent/locks/Condition; invoke-interface {p4, v0}, Ljava/util/concurrent/locks/Condition;->awaitUntil(Ljava/util/Date;)Z move-result p5 goto :goto_f8 .line 380 :cond_f3 iget-object p4, p0, Lorg/apache/http/pool/AbstractConnPool;->condition:Ljava/util/concurrent/locks/Condition; invoke-interface {p4}, Ljava/util/concurrent/locks/Condition;->await()V .line 383 :goto_f8 invoke-interface {p6}, Ljava/util/concurrent/Future;->isCancelled()Z move-result p4 :try_end_fc .catchall {:try_start_e2 .. :try_end_fc} :catchall_12c if-nez p4, :cond_120 .line 391 :try_start_fe invoke-virtual {p3, p6}, Lorg/apache/http/pool/RouteSpecificPool;->unqueue(Ljava/util/concurrent/Future;)V .line 392 iget-object p4, p0, Lorg/apache/http/pool/AbstractConnPool;->pending:Ljava/util/LinkedList; invoke-virtual {p4, p6}, Ljava/util/LinkedList;->remove(Ljava/lang/Object;)Z if-nez p5, :cond_1f if-eqz v0, :cond_1f .line 395 invoke-virtual {v0}, Ljava/util/Date;->getTime()J move-result-wide p4 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v1 cmp-long p4, p4, v1 if-lez p4, :cond_118 goto/16 :goto_1f .line 399 :cond_118 new-instance p1, Ljava/util/concurrent/TimeoutException; const-string p2, "Timeout waiting for connection" invoke-direct {p1, p2}, Ljava/util/concurrent/TimeoutException;->(Ljava/lang/String;)V throw p1 :try_end_120 .catchall {:try_start_fe .. :try_end_120} :catchall_136 .line 384 :cond_120 :try_start_120 new-instance p1, Ljava/lang/InterruptedException; invoke-direct {p1, v1}, Ljava/lang/InterruptedException;->(Ljava/lang/String;)V throw p1 .line 373 :cond_126 new-instance p1, Ljava/lang/InterruptedException; invoke-direct {p1, v1}, Ljava/lang/InterruptedException;->(Ljava/lang/String;)V throw p1 :try_end_12c .catchall {:try_start_120 .. :try_end_12c} :catchall_12c :catchall_12c move-exception p1 .line 391 :try_start_12d invoke-virtual {p3, p6}, Lorg/apache/http/pool/RouteSpecificPool;->unqueue(Ljava/util/concurrent/Future;)V .line 392 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->pending:Ljava/util/LinkedList; invoke-virtual {p2, p6}, Ljava/util/LinkedList;->remove(Ljava/lang/Object;)Z throw p1 :try_end_136 .catchall {:try_start_12d .. :try_end_136} :catchall_136 :catchall_136 move-exception p1 .line 401 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p2}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p1 .end method .method private purgePoolMap()V .registers 4 .line 598 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->routeToPool:Ljava/util/Map; invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set; move-result-object v0 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 .line 599 :cond_a :goto_a invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_2b .line 600 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/Map$Entry; .line 601 invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v1 check-cast v1, Lorg/apache/http/pool/RouteSpecificPool; .line 602 invoke-virtual {v1}, Lorg/apache/http/pool/RouteSpecificPool;->getPendingCount()I move-result v2 invoke-virtual {v1}, Lorg/apache/http/pool/RouteSpecificPool;->getAllocatedCount()I move-result v1 add-int/2addr v2, v1 if-nez v2, :cond_a .line 603 invoke-interface {v0}, Ljava/util/Iterator;->remove()V goto :goto_a :cond_2b return-void .end method # virtual methods .method public closeExpired()V .registers 4 .line 638 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v0 .line 639 new-instance v2, Lorg/apache/http/pool/AbstractConnPool$4; invoke-direct {v2, p0, v0, v1}, Lorg/apache/http/pool/AbstractConnPool$4;->(Lorg/apache/http/pool/AbstractConnPool;J)V invoke-virtual {p0, v2}, Lorg/apache/http/pool/AbstractConnPool;->enumAvailable(Lorg/apache/http/pool/PoolEntryCallback;)V return-void .end method .method public closeIdle(JLjava/util/concurrent/TimeUnit;)V .registers 6 .line 616 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 617 invoke-virtual {p3, p1, p2}, Ljava/util/concurrent/TimeUnit;->toMillis(J)J move-result-wide p1 const-wide/16 v0, 0x0 cmp-long p3, p1, v0 if-gez p3, :cond_10 move-wide p1, v0 .line 621 :cond_10 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v0 sub-long/2addr v0, p1 .line 622 new-instance p1, Lorg/apache/http/pool/AbstractConnPool$3; invoke-direct {p1, p0, v0, v1}, Lorg/apache/http/pool/AbstractConnPool$3;->(Lorg/apache/http/pool/AbstractConnPool;J)V invoke-virtual {p0, p1}, Lorg/apache/http/pool/AbstractConnPool;->enumAvailable(Lorg/apache/http/pool/PoolEntryCallback;)V return-void .end method .method protected abstract createEntry(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/http/pool/PoolEntry; .annotation system Ldalvik/annotation/Signature; value = { "(TT;TC;)TE;" } .end annotation .end method .method protected enumAvailable(Lorg/apache/http/pool/PoolEntryCallback;)V .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lorg/apache/http/pool/PoolEntryCallback<", "TT;TC;>;)V" } .end annotation .line 561 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 563 :try_start_5 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; invoke-virtual {v0}, Ljava/util/LinkedList;->iterator()Ljava/util/Iterator; move-result-object v0 .line 564 :cond_b :goto_b invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_2f .line 565 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lorg/apache/http/pool/PoolEntry; .line 566 invoke-interface {p1, v1}, Lorg/apache/http/pool/PoolEntryCallback;->process(Lorg/apache/http/pool/PoolEntry;)V .line 567 invoke-virtual {v1}, Lorg/apache/http/pool/PoolEntry;->isClosed()Z move-result v2 if-eqz v2, :cond_b .line 568 invoke-virtual {v1}, Lorg/apache/http/pool/PoolEntry;->getRoute()Ljava/lang/Object; move-result-object v2 invoke-direct {p0, v2}, Lorg/apache/http/pool/AbstractConnPool;->getPool(Ljava/lang/Object;)Lorg/apache/http/pool/RouteSpecificPool; move-result-object v2 .line 569 invoke-virtual {v2, v1}, Lorg/apache/http/pool/RouteSpecificPool;->remove(Lorg/apache/http/pool/PoolEntry;)Z .line 570 invoke-interface {v0}, Ljava/util/Iterator;->remove()V goto :goto_b .line 573 :cond_2f invoke-direct {p0}, Lorg/apache/http/pool/AbstractConnPool;->purgePoolMap()V :try_end_32 .catchall {:try_start_5 .. :try_end_32} :catchall_38 .line 575 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_38 move-exception p1 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p1 .end method .method protected enumLeased(Lorg/apache/http/pool/PoolEntryCallback;)V .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lorg/apache/http/pool/PoolEntryCallback<", "TT;TC;>;)V" } .end annotation .line 585 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 587 :try_start_5 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->leased:Ljava/util/Set; invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 .line 588 :goto_b invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_1b .line 589 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lorg/apache/http/pool/PoolEntry; .line 590 invoke-interface {p1, v1}, Lorg/apache/http/pool/PoolEntryCallback;->process(Lorg/apache/http/pool/PoolEntry;)V :try_end_1a .catchall {:try_start_5 .. :try_end_1a} :catchall_21 goto :goto_b .line 593 :cond_1b iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_21 move-exception p1 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p1 .end method .method public getDefaultMaxPerRoute()I .registers 3 .line 476 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 478 :try_start_5 iget v0, p0, Lorg/apache/http/pool/AbstractConnPool;->defaultMaxPerRoute:I :try_end_7 .catchall {:try_start_5 .. :try_end_7} :catchall_d .line 480 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V return v0 :catchall_d move-exception v0 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V throw v0 .end method .method public getMaxPerRoute(Ljava/lang/Object;)I .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(TT;)I" } .end annotation .line 501 const-string v0, "Route" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 502 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 504 :try_start_a invoke-direct {p0, p1}, Lorg/apache/http/pool/AbstractConnPool;->getMax(Ljava/lang/Object;)I move-result p1 :try_end_e .catchall {:try_start_a .. :try_end_e} :catchall_14 .line 506 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V return p1 :catchall_14 move-exception p1 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p1 .end method .method public getMaxTotal()I .registers 3 .line 455 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 457 :try_start_5 iget v0, p0, Lorg/apache/http/pool/AbstractConnPool;->maxTotal:I :try_end_7 .catchall {:try_start_5 .. :try_end_7} :catchall_d .line 459 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V return v0 :catchall_d move-exception v0 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V throw v0 .end method .method public getRoutes()Ljava/util/Set; .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/util/Set<", "TT;>;" } .end annotation .line 547 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 549 :try_start_5 new-instance v0, Ljava/util/HashSet; iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->routeToPool:Ljava/util/Map; invoke-interface {v1}, Ljava/util/Map;->keySet()Ljava/util/Set; move-result-object v1 invoke-direct {v0, v1}, Ljava/util/HashSet;->(Ljava/util/Collection;)V :try_end_10 .catchall {:try_start_5 .. :try_end_10} :catchall_16 .line 551 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V return-object v0 :catchall_16 move-exception v0 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V throw v0 .end method .method public getStats(Ljava/lang/Object;)Lorg/apache/http/pool/PoolStats; .registers 6 .annotation system Ldalvik/annotation/Signature; value = { "(TT;)", "Lorg/apache/http/pool/PoolStats;" } .end annotation .line 526 const-string v0, "Route" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 527 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 529 :try_start_a invoke-direct {p0, p1}, Lorg/apache/http/pool/AbstractConnPool;->getPool(Ljava/lang/Object;)Lorg/apache/http/pool/RouteSpecificPool; move-result-object v0 .line 530 new-instance v1, Lorg/apache/http/pool/PoolStats; invoke-virtual {v0}, Lorg/apache/http/pool/RouteSpecificPool;->getLeasedCount()I move-result v2 invoke-virtual {v0}, Lorg/apache/http/pool/RouteSpecificPool;->getPendingCount()I move-result v3 invoke-virtual {v0}, Lorg/apache/http/pool/RouteSpecificPool;->getAvailableCount()I move-result v0 invoke-direct {p0, p1}, Lorg/apache/http/pool/AbstractConnPool;->getMax(Ljava/lang/Object;)I move-result p1 invoke-direct {v1, v2, v3, v0, p1}, Lorg/apache/http/pool/PoolStats;->(IIII)V :try_end_23 .catchall {:try_start_a .. :try_end_23} :catchall_29 .line 536 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V return-object v1 :catchall_29 move-exception p1 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p1 .end method .method public getTotalStats()Lorg/apache/http/pool/PoolStats; .registers 6 .line 512 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 514 :try_start_5 new-instance v0, Lorg/apache/http/pool/PoolStats; iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->leased:Ljava/util/Set; invoke-interface {v1}, Ljava/util/Set;->size()I move-result v1 iget-object v2, p0, Lorg/apache/http/pool/AbstractConnPool;->pending:Ljava/util/LinkedList; invoke-virtual {v2}, Ljava/util/LinkedList;->size()I move-result v2 iget-object v3, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; invoke-virtual {v3}, Ljava/util/LinkedList;->size()I move-result v3 iget v4, p0, Lorg/apache/http/pool/AbstractConnPool;->maxTotal:I invoke-direct {v0, v1, v2, v3, v4}, Lorg/apache/http/pool/PoolStats;->(IIII)V :try_end_1e .catchall {:try_start_5 .. :try_end_1e} :catchall_24 .line 520 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V return-object v0 :catchall_24 move-exception v0 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V throw v0 .end method .method public getValidateAfterInactivity()I .registers 2 .line 656 iget v0, p0, Lorg/apache/http/pool/AbstractConnPool;->validateAfterInactivity:I return v0 .end method .method public isShutdown()Z .registers 2 .line 134 iget-boolean v0, p0, Lorg/apache/http/pool/AbstractConnPool;->isShutDown:Z return v0 .end method .method public lease(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/concurrent/Future; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(TT;", "Ljava/lang/Object;", ")", "Ljava/util/concurrent/Future<", "TE;>;" } .end annotation const/4 v0, 0x0 .line 294 invoke-virtual {p0, p1, p2, v0}, Lorg/apache/http/pool/AbstractConnPool;->lease(Ljava/lang/Object;Ljava/lang/Object;Lorg/apache/http/concurrent/FutureCallback;)Ljava/util/concurrent/Future; move-result-object p1 return-object p1 .end method .method public lease(Ljava/lang/Object;Ljava/lang/Object;Lorg/apache/http/concurrent/FutureCallback;)Ljava/util/concurrent/Future; .registers 6 .annotation system Ldalvik/annotation/Signature; value = { "(TT;", "Ljava/lang/Object;", "Lorg/apache/http/concurrent/FutureCallback<", "TE;>;)", "Ljava/util/concurrent/Future<", "TE;>;" } .end annotation .line 190 const-string v0, "Route" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 191 iget-boolean v0, p0, Lorg/apache/http/pool/AbstractConnPool;->isShutDown:Z xor-int/lit8 v0, v0, 0x1 const-string v1, "Connection pool shut down" invoke-static {v0, v1}, Lorg/apache/http/util/Asserts;->check(ZLjava/lang/String;)V .line 193 new-instance v0, Lorg/apache/http/pool/AbstractConnPool$2; invoke-direct {v0, p0, p3, p1, p2}, Lorg/apache/http/pool/AbstractConnPool$2;->(Lorg/apache/http/pool/AbstractConnPool;Lorg/apache/http/concurrent/FutureCallback;Ljava/lang/Object;Ljava/lang/Object;)V return-object v0 .end method .method protected onLease(Lorg/apache/http/pool/PoolEntry;)V .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "(TE;)V" } .end annotation return-void .end method .method protected onRelease(Lorg/apache/http/pool/PoolEntry;)V .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "(TE;)V" } .end annotation return-void .end method .method protected onReuse(Lorg/apache/http/pool/PoolEntry;)V .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "(TE;)V" } .end annotation return-void .end method .method public bridge synthetic release(Ljava/lang/Object;Z)V .registers 3 .line 68 check-cast p1, Lorg/apache/http/pool/PoolEntry; invoke-virtual {p0, p1, p2}, Lorg/apache/http/pool/AbstractConnPool;->release(Lorg/apache/http/pool/PoolEntry;Z)V return-void .end method .method public release(Lorg/apache/http/pool/PoolEntry;Z)V .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(TE;Z)V" } .end annotation .line 407 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 409 :try_start_5 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->leased:Ljava/util/Set; invoke-interface {v0, p1}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_45 .line 410 invoke-virtual {p1}, Lorg/apache/http/pool/PoolEntry;->getRoute()Ljava/lang/Object; move-result-object v0 invoke-direct {p0, v0}, Lorg/apache/http/pool/AbstractConnPool;->getPool(Ljava/lang/Object;)Lorg/apache/http/pool/RouteSpecificPool; move-result-object v0 .line 411 invoke-virtual {v0, p1, p2}, Lorg/apache/http/pool/RouteSpecificPool;->free(Lorg/apache/http/pool/PoolEntry;Z)V if-eqz p2, :cond_24 .line 412 iget-boolean p2, p0, Lorg/apache/http/pool/AbstractConnPool;->isShutDown:Z if-nez p2, :cond_24 .line 413 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; invoke-virtual {p2, p1}, Ljava/util/LinkedList;->addFirst(Ljava/lang/Object;)V goto :goto_27 .line 415 :cond_24 invoke-virtual {p1}, Lorg/apache/http/pool/PoolEntry;->close()V .line 417 :goto_27 invoke-virtual {p0, p1}, Lorg/apache/http/pool/AbstractConnPool;->onRelease(Lorg/apache/http/pool/PoolEntry;)V .line 418 invoke-virtual {v0}, Lorg/apache/http/pool/RouteSpecificPool;->nextPending()Ljava/util/concurrent/Future; move-result-object p1 if-eqz p1, :cond_36 .line 420 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->pending:Ljava/util/LinkedList; invoke-virtual {p2, p1}, Ljava/util/LinkedList;->remove(Ljava/lang/Object;)Z goto :goto_3e .line 422 :cond_36 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->pending:Ljava/util/LinkedList; invoke-virtual {p1}, Ljava/util/LinkedList;->poll()Ljava/lang/Object; move-result-object p1 check-cast p1, Ljava/util/concurrent/Future; :goto_3e if-eqz p1, :cond_45 .line 425 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->condition:Ljava/util/concurrent/locks/Condition; invoke-interface {p1}, Ljava/util/concurrent/locks/Condition;->signalAll()V :try_end_45 .catchall {:try_start_5 .. :try_end_45} :catchall_4b .line 429 :cond_45 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_4b move-exception p1 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p2}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p1 .end method .method public setDefaultMaxPerRoute(I)V .registers 3 .line 465 const-string v0, "Max per route value" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->positive(ILjava/lang/String;)I .line 466 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 468 :try_start_a iput p1, p0, Lorg/apache/http/pool/AbstractConnPool;->defaultMaxPerRoute:I :try_end_c .catchall {:try_start_a .. :try_end_c} :catchall_12 .line 470 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_12 move-exception p1 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p1 .end method .method public setMaxPerRoute(Ljava/lang/Object;I)V .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(TT;I)V" } .end annotation .line 486 const-string v0, "Route" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->notNull(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object; .line 487 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V const/4 v0, -0x1 if-le p2, v0, :cond_17 .line 490 :try_start_d iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->maxPerRoute:Ljava/util/Map; invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p2 invoke-interface {v0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_1c .line 492 :cond_17 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->maxPerRoute:Ljava/util/Map; invoke-interface {p2, p1}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object; :try_end_1c .catchall {:try_start_d .. :try_end_1c} :catchall_22 .line 495 :goto_1c iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_22 move-exception p1 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p2}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p1 .end method .method public setMaxTotal(I)V .registers 3 .line 444 const-string v0, "Max value" invoke-static {p1, v0}, Lorg/apache/http/util/Args;->positive(ILjava/lang/String;)I .line 445 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 447 :try_start_a iput p1, p0, Lorg/apache/http/pool/AbstractConnPool;->maxTotal:I :try_end_c .catchall {:try_start_a .. :try_end_c} :catchall_12 .line 449 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_12 move-exception p1 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p1 .end method .method public setValidateAfterInactivity(I)V .registers 2 .line 664 iput p1, p0, Lorg/apache/http/pool/AbstractConnPool;->validateAfterInactivity:I return-void .end method .method public shutdown()V .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 141 iget-boolean v0, p0, Lorg/apache/http/pool/AbstractConnPool;->isShutDown:Z if-eqz v0, :cond_5 return-void :cond_5 const/4 v0, 0x1 .line 144 iput-boolean v0, p0, Lorg/apache/http/pool/AbstractConnPool;->isShutDown:Z .line 145 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V .line 147 :try_start_d iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; invoke-virtual {v0}, Ljava/util/LinkedList;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_13 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_23 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lorg/apache/http/pool/PoolEntry; .line 148 invoke-virtual {v1}, Lorg/apache/http/pool/PoolEntry;->close()V goto :goto_13 .line 150 :cond_23 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->leased:Ljava/util/Set; invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_29 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_39 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lorg/apache/http/pool/PoolEntry; .line 151 invoke-virtual {v1}, Lorg/apache/http/pool/PoolEntry;->close()V goto :goto_29 .line 153 :cond_39 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->routeToPool:Ljava/util/Map; invoke-interface {v0}, Ljava/util/Map;->values()Ljava/util/Collection; move-result-object v0 invoke-interface {v0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; move-result-object v0 :goto_43 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_53 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lorg/apache/http/pool/RouteSpecificPool; .line 154 invoke-virtual {v1}, Lorg/apache/http/pool/RouteSpecificPool;->shutdown()V goto :goto_43 .line 156 :cond_53 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->routeToPool:Ljava/util/Map; invoke-interface {v0}, Ljava/util/Map;->clear()V .line 157 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->leased:Ljava/util/Set; invoke-interface {v0}, Ljava/util/Set;->clear()V .line 158 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; invoke-virtual {v0}, Ljava/util/LinkedList;->clear()V :try_end_62 .catchall {:try_start_d .. :try_end_62} :catchall_68 .line 160 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V return-void :catchall_68 move-exception v0 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V throw v0 .end method .method public toString()Ljava/lang/String; .registers 3 .line 669 new-instance v0, Ljava/lang/StringBuilder; const-string v1, "[leased: " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V .line 671 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->leased:Ljava/util/Set; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; .line 672 const-string v1, "][available: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; .line 673 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->available:Ljava/util/LinkedList; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; .line 674 const-string v1, "][pending: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; .line 675 iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool;->pending:Ljava/util/LinkedList; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; .line 676 const-string v1, "]" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; .line 677 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 return-object v0 .end method .method protected validate(Lorg/apache/http/pool/PoolEntry;)Z .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "(TE;)Z" } .end annotation const/4 p1, 0x1 return p1 .end method