public class com.google.common.testing.TearDownStack extends java.lang.Object implements com.google.common.testing.TearDownAccepter
{
private static final java.util.logging.Logger logger;
final java.util.LinkedList stack;
private final boolean suppressThrows;
public void <init>()
{
java.util.LinkedList v;
com.google.common.testing.TearDownStack v;
v := @this: com.google.common.testing.TearDownStack;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<com.google.common.testing.TearDownStack: java.util.LinkedList stack> = v;
v.<com.google.common.testing.TearDownStack: boolean suppressThrows> = 0;
return;
}
public void <init>(boolean)
{
java.util.LinkedList v;
com.google.common.testing.TearDownStack v;
boolean v;
v := @this: com.google.common.testing.TearDownStack;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v.<com.google.common.testing.TearDownStack: java.util.LinkedList stack> = v;
v.<com.google.common.testing.TearDownStack: boolean suppressThrows> = v;
return;
}
public final void addTearDown(com.google.common.testing.TearDown)
{
java.lang.Throwable v;
java.lang.Object v;
com.google.common.testing.TearDown v;
java.util.LinkedList v, v;
com.google.common.testing.TearDownStack v;
v := @this: com.google.common.testing.TearDownStack;
v := @parameter: com.google.common.testing.TearDown;
v = v.<com.google.common.testing.TearDownStack: java.util.LinkedList stack>;
entermonitor v;
label:
v = v.<com.google.common.testing.TearDownStack: java.util.LinkedList stack>;
v = staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
virtualinvoke v.<java.util.LinkedList: void addFirst(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public final void runTearDown()
{
java.lang.Throwable v, v;
java.util.ArrayList v, v;
java.util.logging.Level v;
int v;
java.util.LinkedList v, v, v;
boolean v, v, v;
java.util.Iterator v;
java.lang.RuntimeException v;
java.util.logging.Logger v;
com.google.common.testing.TearDownStack v;
java.lang.Object v;
v := @this: com.google.common.testing.TearDownStack;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<com.google.common.testing.TearDownStack: java.util.LinkedList stack>;
entermonitor v;
label:
v = v.<com.google.common.testing.TearDownStack: java.util.LinkedList stack>;
v = staticinvoke <com.google.common.collect.Lists: java.util.ArrayList newArrayList(java.lang.Iterable)>(v);
v = v.<com.google.common.testing.TearDownStack: java.util.LinkedList stack>;
virtualinvoke v.<java.util.LinkedList: void clear()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
label:
interfaceinvoke v.<com.google.common.testing.TearDown: void tearDown()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<com.google.common.testing.TearDownStack: boolean suppressThrows>;
if v == 0 goto label;
v = <com.google.common.testing.TearDownStack: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level INFO>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, "exception thrown during tearDown", v);
goto label;
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<com.google.common.testing.TearDownStack: boolean suppressThrows>;
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: int size()>();
if v <= 0 goto label;
v = staticinvoke <com.google.common.testing.ClusterException: java.lang.RuntimeException create(java.util.Collection)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
static void <clinit>()
{
java.lang.Class v;
java.lang.String v;
java.util.logging.Logger v;
v = class "Lcom/google/common/testing/TearDownStack;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = staticinvoke <java.util.logging.Logger: java.util.logging.Logger getLogger(java.lang.String)>(v);
<com.google.common.testing.TearDownStack: java.util.logging.Logger logger> = v;
return;
}
}