ConcurrentUtils.smali
.class public Lorg/apache/commons/lang3/concurrent/ConcurrentUtils;
.super Ljava/lang/Object;
.source "ConcurrentUtils.java"
# direct methods
.method private constructor <init>()V
.registers 1
.prologue
.line 41
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 42
return-void
.end method
.method static checkedException(Ljava/lang/Throwable;)Ljava/lang/Throwable;
.registers 5
.prologue
const/4 v1, 0x0
.line 146
if-eqz p0, :cond_21
instance-of v0, p0, Ljava/lang/RuntimeException;
if-nez v0, :cond_21
instance-of v0, p0, Ljava/lang/Error;
if-nez v0, :cond_21
const/4 v0, 0x1
:goto_c
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Not a checked exception: "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
new-array v1, v1, [Ljava/lang/Object;
invoke-static {v0, v2, v1}, Lorg/apache/commons/lang3/Validate;->isTrue(ZLjava/lang/String;[Ljava/lang/Object;)V
.line 149
return-object p0
:cond_21
move v0, v1
.line 146
goto :goto_c
.end method
.method public static constantFuture(Ljava/lang/Object;)Ljava/util/concurrent/Future;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(TT;)",
"Ljava/util/concurrent/Future",
"<TT;>;"
}
.end annotation
.prologue
.line 326
new-instance v0, Lorg/apache/commons/lang3/concurrent/ConcurrentUtils$ConstantFuture;
invoke-direct {v0, p0}, Lorg/apache/commons/lang3/concurrent/ConcurrentUtils$ConstantFuture;-><init>(Ljava/lang/Object;)V
return-object v0
.end method
.method public static createIfAbsent(Ljava/util/concurrent/ConcurrentMap;Ljava/lang/Object;Lorg/apache/commons/lang3/concurrent/ConcurrentInitializer;)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">(",
"Ljava/util/concurrent/ConcurrentMap",
"<TK;TV;>;TK;",
"Lorg/apache/commons/lang3/concurrent/ConcurrentInitializer",
"<TV;>;)TV;"
}
.end annotation
.prologue
.line 274
if-eqz p0, :cond_4
if-nez p2, :cond_6
.line 275
:cond_4
const/4 v0, 0x0
.line 282
:cond_5
:goto_5
return-object v0
.line 278
:cond_6
invoke-interface {p0, p1}, Ljava/util/concurrent/ConcurrentMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 279
if-nez v0, :cond_5
.line 280
invoke-interface {p2}, Lorg/apache/commons/lang3/concurrent/ConcurrentInitializer;->get()Ljava/lang/Object;
move-result-object v0
invoke-static {p0, p1, v0}, Lorg/apache/commons/lang3/concurrent/ConcurrentUtils;->putIfAbsent(Ljava/util/concurrent/ConcurrentMap;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
goto :goto_5
.end method
.method public static createIfAbsentUnchecked(Ljava/util/concurrent/ConcurrentMap;Ljava/lang/Object;Lorg/apache/commons/lang3/concurrent/ConcurrentInitializer;)Ljava/lang/Object;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">(",
"Ljava/util/concurrent/ConcurrentMap",
"<TK;TV;>;TK;",
"Lorg/apache/commons/lang3/concurrent/ConcurrentInitializer",
"<TV;>;)TV;"
}
.end annotation
.prologue
.line 303
:try_start_0
invoke-static {p0, p1, p2}, Lorg/apache/commons/lang3/concurrent/ConcurrentUtils;->createIfAbsent(Ljava/util/concurrent/ConcurrentMap;Ljava/lang/Object;Lorg/apache/commons/lang3/concurrent/ConcurrentInitializer;)Ljava/lang/Object;
:try_end_3
.catch Lorg/apache/commons/lang3/concurrent/ConcurrentException; {:try_start_0 .. :try_end_3} :catch_5
move-result-object v0
return-object v0
.line 304
:catch_5
move-exception v0
.line 305
new-instance v1, Lorg/apache/commons/lang3/concurrent/ConcurrentRuntimeException;
invoke-virtual {v0}, Lorg/apache/commons/lang3/concurrent/ConcurrentException;->getCause()Ljava/lang/Throwable;
move-result-object v0
invoke-direct {v1, v0}, Lorg/apache/commons/lang3/concurrent/ConcurrentRuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v1
.end method
.method public static extractCause(Ljava/util/concurrent/ExecutionException;)Lorg/apache/commons/lang3/concurrent/ConcurrentException;
.registers 4
.prologue
.line 63
if-eqz p0, :cond_8
invoke-virtual {p0}, Ljava/util/concurrent/ExecutionException;->getCause()Ljava/lang/Throwable;
move-result-object v0
if-nez v0, :cond_a
.line 64
:cond_8
const/4 v0, 0x0
.line 68
:goto_9
return-object v0
.line 67
:cond_a
invoke-static {p0}, Lorg/apache/commons/lang3/concurrent/ConcurrentUtils;->throwCause(Ljava/util/concurrent/ExecutionException;)V
.line 68
new-instance v0, Lorg/apache/commons/lang3/concurrent/ConcurrentException;
invoke-virtual {p0}, Ljava/util/concurrent/ExecutionException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {p0}, Ljava/util/concurrent/ExecutionException;->getCause()Ljava/lang/Throwable;
move-result-object v2
invoke-direct {v0, v1, v2}, Lorg/apache/commons/lang3/concurrent/ConcurrentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_9
.end method
.method public static extractCauseUnchecked(Ljava/util/concurrent/ExecutionException;)Lorg/apache/commons/lang3/concurrent/ConcurrentRuntimeException;
.registers 4
.prologue
.line 85
if-eqz p0, :cond_8
invoke-virtual {p0}, Ljava/util/concurrent/ExecutionException;->getCause()Ljava/lang/Throwable;
move-result-object v0
if-nez v0, :cond_a
.line 86
:cond_8
const/4 v0, 0x0
.line 90
:goto_9
return-object v0
.line 89
:cond_a
invoke-static {p0}, Lorg/apache/commons/lang3/concurrent/ConcurrentUtils;->throwCause(Ljava/util/concurrent/ExecutionException;)V
.line 90
new-instance v0, Lorg/apache/commons/lang3/concurrent/ConcurrentRuntimeException;
invoke-virtual {p0}, Ljava/util/concurrent/ExecutionException;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {p0}, Ljava/util/concurrent/ExecutionException;->getCause()Ljava/lang/Throwable;
move-result-object v2
invoke-direct {v0, v1, v2}, Lorg/apache/commons/lang3/concurrent/ConcurrentRuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_9
.end method
.method public static handleCause(Ljava/util/concurrent/ExecutionException;)V
.registers 2
.prologue
.line 108
invoke-static {p0}, Lorg/apache/commons/lang3/concurrent/ConcurrentUtils;->extractCause(Ljava/util/concurrent/ExecutionException;)Lorg/apache/commons/lang3/concurrent/ConcurrentException;
move-result-object v0
.line 110
if-eqz v0, :cond_7
.line 111
throw v0
.line 113
:cond_7
return-void
.end method
.method public static handleCauseUnchecked(Ljava/util/concurrent/ExecutionException;)V
.registers 2
.prologue
.line 129
invoke-static {p0}, Lorg/apache/commons/lang3/concurrent/ConcurrentUtils;->extractCauseUnchecked(Ljava/util/concurrent/ExecutionException;)Lorg/apache/commons/lang3/concurrent/ConcurrentRuntimeException;
move-result-object v0
.line 131
if-eqz v0, :cond_7
.line 132
throw v0
.line 134
:cond_7
return-void
.end method
.method public static initialize(Lorg/apache/commons/lang3/concurrent/ConcurrentInitializer;)Ljava/lang/Object;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lorg/apache/commons/lang3/concurrent/ConcurrentInitializer",
"<TT;>;)TT;"
}
.end annotation
.prologue
.line 184
if-eqz p0, :cond_7
invoke-interface {p0}, Lorg/apache/commons/lang3/concurrent/ConcurrentInitializer;->get()Ljava/lang/Object;
move-result-object v0
:goto_6
return-object v0
:cond_7
const/4 v0, 0x0
goto :goto_6
.end method
.method public static initializeUnchecked(Lorg/apache/commons/lang3/concurrent/ConcurrentInitializer;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lorg/apache/commons/lang3/concurrent/ConcurrentInitializer",
"<TT;>;)TT;"
}
.end annotation
.prologue
.line 202
:try_start_0
invoke-static {p0}, Lorg/apache/commons/lang3/concurrent/ConcurrentUtils;->initialize(Lorg/apache/commons/lang3/concurrent/ConcurrentInitializer;)Ljava/lang/Object;
:try_end_3
.catch Lorg/apache/commons/lang3/concurrent/ConcurrentException; {:try_start_0 .. :try_end_3} :catch_5
move-result-object v0
return-object v0
.line 203
:catch_5
move-exception v0
.line 204
new-instance v1, Lorg/apache/commons/lang3/concurrent/ConcurrentRuntimeException;
invoke-virtual {v0}, Lorg/apache/commons/lang3/concurrent/ConcurrentException;->getCause()Ljava/lang/Throwable;
move-result-object v0
invoke-direct {v1, v0}, Lorg/apache/commons/lang3/concurrent/ConcurrentRuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v1
.end method
.method public static putIfAbsent(Ljava/util/concurrent/ConcurrentMap;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<K:",
"Ljava/lang/Object;",
"V:",
"Ljava/lang/Object;",
">(",
"Ljava/util/concurrent/ConcurrentMap",
"<TK;TV;>;TK;TV;)TV;"
}
.end annotation
.prologue
.line 244
if-nez p0, :cond_4
.line 245
const/4 p2, 0x0
.line 249
:cond_3
:goto_3
return-object p2
.line 248
:cond_4
invoke-interface {p0, p1, p2}, Ljava/util/concurrent/ConcurrentMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 249
if-eqz v0, :cond_3
move-object p2, v0
goto :goto_3
.end method
.method private static throwCause(Ljava/util/concurrent/ExecutionException;)V
.registers 2
.prologue
.line 159
invoke-virtual {p0}, Ljava/util/concurrent/ExecutionException;->getCause()Ljava/lang/Throwable;
move-result-object v0
instance-of v0, v0, Ljava/lang/RuntimeException;
if-eqz v0, :cond_f
.line 160
invoke-virtual {p0}, Ljava/util/concurrent/ExecutionException;->getCause()Ljava/lang/Throwable;
move-result-object v0
check-cast v0, Ljava/lang/RuntimeException;
throw v0
.line 163
:cond_f
invoke-virtual {p0}, Ljava/util/concurrent/ExecutionException;->getCause()Ljava/lang/Throwable;
move-result-object v0
instance-of v0, v0, Ljava/lang/Error;
if-eqz v0, :cond_1e
.line 164
invoke-virtual {p0}, Ljava/util/concurrent/ExecutionException;->getCause()Ljava/lang/Throwable;
move-result-object v0
check-cast v0, Ljava/lang/Error;
throw v0
.line 166
:cond_1e
return-void
.end method