.class Lorg/apache/http/pool/AbstractConnPool$2; .super Ljava/lang/Object; .source "AbstractConnPool.java" # interfaces .implements Ljava/util/concurrent/Future; # annotations .annotation system Ldalvik/annotation/EnclosingMethod; value = Lorg/apache/http/pool/AbstractConnPool;->lease(Ljava/lang/Object;Ljava/lang/Object;Lorg/apache/http/concurrent/FutureCallback;)Ljava/util/concurrent/Future; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x0 name = null .end annotation .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/Object;", "Ljava/util/concurrent/Future<", "TE;>;" } .end annotation # instance fields .field private final cancelled:Ljava/util/concurrent/atomic/AtomicBoolean; .field private final done:Ljava/util/concurrent/atomic/AtomicBoolean; .field private final entryRef:Ljava/util/concurrent/atomic/AtomicReference; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/concurrent/atomic/AtomicReference<", "TE;>;" } .end annotation .end field .field final synthetic this$0:Lorg/apache/http/pool/AbstractConnPool; .field final synthetic val$callback:Lorg/apache/http/concurrent/FutureCallback; .field final synthetic val$route:Ljava/lang/Object; .field final synthetic val$state:Ljava/lang/Object; # direct methods .method constructor (Lorg/apache/http/pool/AbstractConnPool;Lorg/apache/http/concurrent/FutureCallback;Ljava/lang/Object;Ljava/lang/Object;)V .registers 5 .line 193 iput-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->this$0:Lorg/apache/http/pool/AbstractConnPool; iput-object p2, p0, Lorg/apache/http/pool/AbstractConnPool$2;->val$callback:Lorg/apache/http/concurrent/FutureCallback; iput-object p3, p0, Lorg/apache/http/pool/AbstractConnPool$2;->val$route:Ljava/lang/Object; iput-object p4, p0, Lorg/apache/http/pool/AbstractConnPool$2;->val$state:Ljava/lang/Object; invoke-direct {p0}, Ljava/lang/Object;->()V .line 195 new-instance p1, Ljava/util/concurrent/atomic/AtomicBoolean; const/4 p2, 0x0 invoke-direct {p1, p2}, Ljava/util/concurrent/atomic/AtomicBoolean;->(Z)V iput-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->cancelled:Ljava/util/concurrent/atomic/AtomicBoolean; .line 196 new-instance p1, Ljava/util/concurrent/atomic/AtomicBoolean; invoke-direct {p1, p2}, Ljava/util/concurrent/atomic/AtomicBoolean;->(Z)V iput-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->done:Ljava/util/concurrent/atomic/AtomicBoolean; .line 197 new-instance p1, Ljava/util/concurrent/atomic/AtomicReference; const/4 p2, 0x0 invoke-direct {p1, p2}, Ljava/util/concurrent/atomic/AtomicReference;->(Ljava/lang/Object;)V iput-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->entryRef:Ljava/util/concurrent/atomic/AtomicReference; return-void .end method # virtual methods .method public cancel(Z)Z .registers 4 .line 201 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->cancelled:Ljava/util/concurrent/atomic/AtomicBoolean; const/4 v0, 0x0 const/4 v1, 0x1 invoke-virtual {p1, v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->compareAndSet(ZZ)Z move-result p1 if-eqz p1, :cond_3d .line 202 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->done:Ljava/util/concurrent/atomic/AtomicBoolean; invoke-virtual {p1, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V .line 203 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->this$0:Lorg/apache/http/pool/AbstractConnPool; # getter for: Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-static {p1}, Lorg/apache/http/pool/AbstractConnPool;->access$000(Lorg/apache/http/pool/AbstractConnPool;)Ljava/util/concurrent/locks/Lock; move-result-object p1 invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->lock()V .line 205 :try_start_18 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->this$0:Lorg/apache/http/pool/AbstractConnPool; # getter for: Lorg/apache/http/pool/AbstractConnPool;->condition:Ljava/util/concurrent/locks/Condition; invoke-static {p1}, Lorg/apache/http/pool/AbstractConnPool;->access$100(Lorg/apache/http/pool/AbstractConnPool;)Ljava/util/concurrent/locks/Condition; move-result-object p1 invoke-interface {p1}, Ljava/util/concurrent/locks/Condition;->signalAll()V :try_end_21 .catchall {:try_start_18 .. :try_end_21} :catchall_32 .line 207 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->this$0:Lorg/apache/http/pool/AbstractConnPool; # getter for: Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-static {p1}, Lorg/apache/http/pool/AbstractConnPool;->access$000(Lorg/apache/http/pool/AbstractConnPool;)Ljava/util/concurrent/locks/Lock; move-result-object p1 invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V .line 209 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->val$callback:Lorg/apache/http/concurrent/FutureCallback; if-eqz p1, :cond_31 .line 210 invoke-interface {p1}, Lorg/apache/http/concurrent/FutureCallback;->cancelled()V :cond_31 return v1 :catchall_32 move-exception p1 .line 207 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool$2;->this$0:Lorg/apache/http/pool/AbstractConnPool; # getter for: Lorg/apache/http/pool/AbstractConnPool;->lock:Ljava/util/concurrent/locks/Lock; invoke-static {v0}, Lorg/apache/http/pool/AbstractConnPool;->access$000(Lorg/apache/http/pool/AbstractConnPool;)Ljava/util/concurrent/locks/Lock; move-result-object v0 invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V throw p1 :cond_3d return v0 .end method .method public bridge synthetic get()Ljava/lang/Object; .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/InterruptedException;, Ljava/util/concurrent/ExecutionException; } .end annotation .line 193 invoke-virtual {p0}, Lorg/apache/http/pool/AbstractConnPool$2;->get()Lorg/apache/http/pool/PoolEntry; move-result-object v0 return-object v0 .end method .method public bridge synthetic get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object; .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/InterruptedException;, Ljava/util/concurrent/ExecutionException;, Ljava/util/concurrent/TimeoutException; } .end annotation .line 193 invoke-virtual {p0, p1, p2, p3}, Lorg/apache/http/pool/AbstractConnPool$2;->get(JLjava/util/concurrent/TimeUnit;)Lorg/apache/http/pool/PoolEntry; move-result-object p1 return-object p1 .end method .method public get()Lorg/apache/http/pool/PoolEntry; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "()TE;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/InterruptedException;, Ljava/util/concurrent/ExecutionException; } .end annotation .line 231 :try_start_0 sget-object v0, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit; const-wide/16 v1, 0x0 invoke-virtual {p0, v1, v2, v0}, Lorg/apache/http/pool/AbstractConnPool$2;->get(JLjava/util/concurrent/TimeUnit;)Lorg/apache/http/pool/PoolEntry; move-result-object v0 :try_end_8 .catch Ljava/util/concurrent/TimeoutException; {:try_start_0 .. :try_end_8} :catch_9 return-object v0 :catch_9 move-exception v0 .line 233 new-instance v1, Ljava/util/concurrent/ExecutionException; invoke-direct {v1, v0}, Ljava/util/concurrent/ExecutionException;->(Ljava/lang/Throwable;)V throw v1 .end method .method public get(JLjava/util/concurrent/TimeUnit;)Lorg/apache/http/pool/PoolEntry; .registers 12 .annotation system Ldalvik/annotation/Signature; value = { "(J", "Ljava/util/concurrent/TimeUnit;", ")TE;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/InterruptedException;, Ljava/util/concurrent/ExecutionException;, Ljava/util/concurrent/TimeoutException; } .end annotation .line 239 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool$2;->entryRef:Ljava/util/concurrent/atomic/AtomicReference; invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object; move-result-object v0 check-cast v0, Lorg/apache/http/pool/PoolEntry; if-eqz v0, :cond_b return-object v0 .line 243 :cond_b monitor-enter p0 :goto_c const/4 v0, 0x1 .line 246 :try_start_d iget-object v1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->this$0:Lorg/apache/http/pool/AbstractConnPool; iget-object v2, p0, Lorg/apache/http/pool/AbstractConnPool$2;->val$route:Ljava/lang/Object; iget-object v3, p0, Lorg/apache/http/pool/AbstractConnPool$2;->val$state:Ljava/lang/Object; move-wide v4, p1 move-object v6, p3 move-object v7, p0 # invokes: 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; invoke-static/range {v1 .. v7}, Lorg/apache/http/pool/AbstractConnPool;->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; move-result-object v1 .line 247 iget-object v2, p0, Lorg/apache/http/pool/AbstractConnPool$2;->this$0:Lorg/apache/http/pool/AbstractConnPool; # getter for: Lorg/apache/http/pool/AbstractConnPool;->validateAfterInactivity:I invoke-static {v2}, Lorg/apache/http/pool/AbstractConnPool;->access$300(Lorg/apache/http/pool/AbstractConnPool;)I move-result v2 if-lez v2, :cond_48 .line 248 invoke-virtual {v1}, Lorg/apache/http/pool/PoolEntry;->getUpdated()J move-result-wide v2 iget-object v4, p0, Lorg/apache/http/pool/AbstractConnPool$2;->this$0:Lorg/apache/http/pool/AbstractConnPool; # getter for: Lorg/apache/http/pool/AbstractConnPool;->validateAfterInactivity:I invoke-static {v4}, Lorg/apache/http/pool/AbstractConnPool;->access$300(Lorg/apache/http/pool/AbstractConnPool;)I move-result v4 int-to-long v4, v4 add-long/2addr v2, v4 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v4 cmp-long v2, v2, v4 if-gtz v2, :cond_48 .line 249 iget-object v2, p0, Lorg/apache/http/pool/AbstractConnPool$2;->this$0:Lorg/apache/http/pool/AbstractConnPool; invoke-virtual {v2, v1}, Lorg/apache/http/pool/AbstractConnPool;->validate(Lorg/apache/http/pool/PoolEntry;)Z move-result v2 if-nez v2, :cond_48 .line 250 invoke-virtual {v1}, Lorg/apache/http/pool/PoolEntry;->close()V .line 251 iget-object v2, p0, Lorg/apache/http/pool/AbstractConnPool$2;->this$0:Lorg/apache/http/pool/AbstractConnPool; const/4 v3, 0x0 invoke-virtual {v2, v1, v3}, Lorg/apache/http/pool/AbstractConnPool;->release(Lorg/apache/http/pool/PoolEntry;Z)V goto :goto_c .line 256 :cond_48 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->entryRef:Ljava/util/concurrent/atomic/AtomicReference; invoke-virtual {p1, v1}, Ljava/util/concurrent/atomic/AtomicReference;->set(Ljava/lang/Object;)V .line 257 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->done:Ljava/util/concurrent/atomic/AtomicBoolean; invoke-virtual {p1, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V .line 258 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->this$0:Lorg/apache/http/pool/AbstractConnPool; invoke-virtual {p1, v1}, Lorg/apache/http/pool/AbstractConnPool;->onLease(Lorg/apache/http/pool/PoolEntry;)V .line 259 iget-object p1, p0, Lorg/apache/http/pool/AbstractConnPool$2;->val$callback:Lorg/apache/http/concurrent/FutureCallback; if-eqz p1, :cond_5e .line 260 invoke-interface {p1, v1}, Lorg/apache/http/concurrent/FutureCallback;->completed(Ljava/lang/Object;)V :try_end_5e .catch Ljava/io/IOException; {:try_start_d .. :try_end_5e} :catch_62 .catchall {:try_start_d .. :try_end_5e} :catchall_60 .line 262 :cond_5e :try_start_5e monitor-exit p0 return-object v1 :catchall_60 move-exception p1 goto :goto_75 :catch_62 move-exception p1 .line 265 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool$2;->done:Ljava/util/concurrent/atomic/AtomicBoolean; invoke-virtual {p2, v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->set(Z)V .line 266 iget-object p2, p0, Lorg/apache/http/pool/AbstractConnPool$2;->val$callback:Lorg/apache/http/concurrent/FutureCallback; if-eqz p2, :cond_6f .line 267 invoke-interface {p2, p1}, Lorg/apache/http/concurrent/FutureCallback;->failed(Ljava/lang/Exception;)V .line 269 :cond_6f new-instance p2, Ljava/util/concurrent/ExecutionException; invoke-direct {p2, p1}, Ljava/util/concurrent/ExecutionException;->(Ljava/lang/Throwable;)V throw p2 .line 271 :goto_75 monitor-exit p0 :try_end_76 .catchall {:try_start_5e .. :try_end_76} :catchall_60 throw p1 .end method .method public isCancelled()Z .registers 2 .line 220 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool$2;->cancelled:Ljava/util/concurrent/atomic/AtomicBoolean; invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z move-result v0 return v0 .end method .method public isDone()Z .registers 2 .line 225 iget-object v0, p0, Lorg/apache/http/pool/AbstractConnPool$2;->done:Ljava/util/concurrent/atomic/AtomicBoolean; invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z move-result v0 return v0 .end method