public class org.glassfish.hk.runlevel.internal.CurrentTaskFuture extends java.lang.Object implements org.glassfish.hk.runlevel.ChangeableRunLevelFuture
{
private final org.glassfish.hk.runlevel.internal.AsyncRunLevelContext asyncContext;
private final java.util.concurrent.Executor executor;
private final org.glassfish.hk.api.ServiceLocator locator;
private int proposedLevel;
private final boolean useThreads;
private final java.util.List allListenerHandles;
private final java.util.List allProgressStartedHandles;
private final java.util.List allSorterHandles;
private final int maxThreads;
private final java.util.Timer timer;
private final long cancelTimeout;
private org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay;
private org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay;
private boolean done;
private boolean cancelled;
private boolean inCallback;
void <init>(org.glassfish.hk.runlevel.internal.AsyncRunLevelContext, java.util.concurrent.Executor, org.glassfish.hk.api.ServiceLocator, int, int, boolean, long, java.util.Timer)
{
java.util.Timer v;
long v;
java.lang.'annotation'.Annotation[] v, v, v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay v;
int v, v, v;
boolean v;
java.util.concurrent.Executor v;
java.util.List v, v, v, v, v, v;
org.glassfish.hk.runlevel.internal.AsyncRunLevelContext v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
org.glassfish.hk.api.ServiceLocator v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
v := @parameter: org.glassfish.hk.runlevel.internal.AsyncRunLevelContext;
v := @parameter: java.util.concurrent.Executor;
v := @parameter: org.glassfish.hk.api.ServiceLocator;
v := @parameter: int;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: long;
v := @parameter: java.util.Timer;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean done> = 0;
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean cancelled> = 0;
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean inCallback> = 0;
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.AsyncRunLevelContext asyncContext> = v;
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.concurrent.Executor executor> = v;
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.api.ServiceLocator locator> = v;
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: int proposedLevel> = v;
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean useThreads> = v;
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: int maxThreads> = v;
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: long cancelTimeout> = v;
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.Timer timer> = v;
v = virtualinvoke v.<org.glassfish.hk.runlevel.internal.AsyncRunLevelContext: int getCurrentLevel()>();
v = newarray (java.lang.'annotation'.Annotation)[0];
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceLocator: java.util.List getAllServiceHandles(java.lang.Class,java.lang.'annotation'.Annotation[])>(class "Lorg/glassfish/hk2/runlevel/RunLevelListener;", v);
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.List allListenerHandles> = v;
v = newarray (java.lang.'annotation'.Annotation)[0];
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceLocator: java.util.List getAllServiceHandles(java.lang.Class,java.lang.'annotation'.Annotation[])>(class "Lorg/glassfish/hk2/runlevel/ProgressStartedListener;", v);
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.List allProgressStartedHandles> = v;
v = newarray (java.lang.'annotation'.Annotation)[0];
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceLocator: java.util.List getAllServiceHandles(java.lang.Class,java.lang.'annotation'.Annotation[])>(class "Lorg/glassfish/hk2/runlevel/Sorter;", v);
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.List allSorterHandles> = v;
if v != v goto label;
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean done> = 1;
goto label;
label:
if v >= v goto label;
v = new org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.List allListenerHandles>;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.List allSorterHandles>;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay: void <init>(org.glassfish.hk.runlevel.internal.CurrentTaskFuture,int,org.glassfish.hk.runlevel.internal.CurrentTaskFuture,java.util.List,java.util.List,int,boolean,long)>(v, v, v, v, v, v, v, v);
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay> = v;
goto label;
label:
v = new org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.List allListenerHandles>;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay: void <init>(org.glassfish.hk.runlevel.internal.CurrentTaskFuture,int,org.glassfish.hk.runlevel.internal.CurrentTaskFuture,java.util.List)>(v, v, v, v);
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay> = v;
label:
return;
}
void go()
{
java.lang.Throwable v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay v;
java.util.List v;
org.glassfish.hk.runlevel.internal.AsyncRunLevelContext v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
int v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
entermonitor v;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay>;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay>;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v != null goto label;
if v == null goto label;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.AsyncRunLevelContext asyncContext>;
v = virtualinvoke v.<org.glassfish.hk.runlevel.internal.AsyncRunLevelContext: int getCurrentLevel()>();
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.List allProgressStartedHandles>;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: void invokeOnProgressStarted(org.glassfish.hk.runlevel.ChangeableRunLevelFuture,int,java.util.List)>(v, v, v);
label:
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: void go(org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay,org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay)>(v, v);
return;
catch java.lang.Throwable from label to label with label;
}
private void go(org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay, org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay)
{
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay v;
org.glassfish.hk.runlevel.internal.AsyncRunLevelContext v;
java.util.concurrent.Executor v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay v;
boolean v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
v := @parameter: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay;
v := @parameter: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay;
if v == null goto label;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay: void go()>();
goto label;
label:
if v == null goto label;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean useThreads>;
if v == 0 goto label;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.concurrent.Executor executor>;
interfaceinvoke v.<java.util.concurrent.Executor: void execute(java.lang.Runnable)>(v);
goto label;
label:
virtualinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay: void run()>();
goto label;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.AsyncRunLevelContext asyncContext>;
virtualinvoke v.<org.glassfish.hk.runlevel.internal.AsyncRunLevelContext: void jobDone()>();
label:
return;
}
public boolean isUp()
{
java.lang.Throwable v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
entermonitor v;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay>;
if v == null goto label;
exitmonitor v;
label:
return 1;
label:
exitmonitor v;
label:
return 0;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public boolean isDown()
{
java.lang.Throwable v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
entermonitor v;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay>;
if v == null goto label;
exitmonitor v;
label:
return 1;
label:
exitmonitor v;
label:
return 0;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public boolean cancel(boolean)
{
java.lang.Throwable v, v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay v, v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay v, v;
org.glassfish.hk.runlevel.internal.AsyncRunLevelContext v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
boolean v, v, v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
v := @parameter: boolean;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.AsyncRunLevelContext asyncContext>;
entermonitor v;
label:
entermonitor v;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean done>;
if v == 0 goto label;
exitmonitor v;
label:
exitmonitor v;
label:
return 0;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean cancelled>;
if v == 0 goto label;
exitmonitor v;
label:
exitmonitor v;
label:
return 0;
label:
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean cancelled> = 1;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay>;
if v == null goto label;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay>;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay: void cancel()>();
goto label;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay>;
if v == null goto label;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay>;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay: void cancel()>();
label:
exitmonitor v;
label:
exitmonitor v;
label:
return 1;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public boolean isCancelled()
{
java.lang.Throwable v;
boolean v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
entermonitor v;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean cancelled>;
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public boolean isDone()
{
java.lang.Throwable v;
boolean v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
entermonitor v;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean done>;
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public int getProposedLevel()
{
int v;
java.lang.Throwable v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
entermonitor v;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: int proposedLevel>;
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
}
public int changeProposedLevel(int)
{
java.lang.Throwable v;
java.lang.IllegalStateException v, v;
long v;
java.lang.AssertionError v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay v, v, v, v, v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay v, v, v, v, v;
int v, v, v, v;
boolean v, v, v, v;
java.util.List v, v, v;
org.glassfish.hk.runlevel.internal.AsyncRunLevelContext v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
v := @parameter: int;
v = 0;
entermonitor v;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean done>;
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Cannot change the proposed level of a future that is already complete");
throw v;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean inCallback>;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("changeProposedLevel must only be called from inside a RunLevelListener callback method");
throw v;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: int proposedLevel>;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.AsyncRunLevelContext asyncContext>;
v = virtualinvoke v.<org.glassfish.hk.runlevel.internal.AsyncRunLevelContext: int getCurrentLevel()>();
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: int proposedLevel> = v;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay>;
if v == null goto label;
if v > v goto label;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay>;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay: void setGoingTo(int,boolean)>(v, 0);
goto label;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay>;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay: void setGoingTo(int,boolean)>(v, 1);
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay> = null;
v = new org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.List allListenerHandles>;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay: void <init>(org.glassfish.hk.runlevel.internal.CurrentTaskFuture,int,org.glassfish.hk.runlevel.internal.CurrentTaskFuture,java.util.List)>(v, v, v, v);
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay> = v;
v = 1;
goto label;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay>;
if v == null goto label;
if v < v goto label;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay>;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay: void setGoingTo(int,boolean)>(v, 0);
goto label;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay>;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay: void setGoingTo(int,boolean)>(v, 1);
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay> = null;
v = new org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.List allListenerHandles>;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.util.List allSorterHandles>;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: int maxThreads>;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean useThreads>;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: long cancelTimeout>;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay: void <init>(org.glassfish.hk.runlevel.internal.CurrentTaskFuture,int,org.glassfish.hk.runlevel.internal.CurrentTaskFuture,java.util.List,java.util.List,int,boolean,long)>(v, v, v, v, v, v, v, v);
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay> = v;
v = 1;
goto label;
label:
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>("Can not determine previous job");
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == 0 goto label;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay>;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay>;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: void go(org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay,org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay)>(v, v);
label:
return v;
catch java.lang.Throwable from label to label with label;
}
private void setInCallback(boolean)
{
java.lang.Throwable v;
boolean v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
v := @parameter: boolean;
entermonitor v;
label:
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean inCallback> = 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 java.lang.Object get() throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
{
java.util.concurrent.TimeUnit v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
java.util.concurrent.TimeoutException v;
java.lang.Object v;
java.lang.AssertionError v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
label:
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = virtualinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: java.lang.Object get(long,java.util.concurrent.TimeUnit)>(9223372036854775807L, v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>(v);
throw v;
catch java.util.concurrent.TimeoutException from label to label with label;
}
public java.lang.Object get(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
{
java.lang.Throwable v, v, v, v;
java.util.concurrent.TimeoutException v;
long v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay v, v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay v, v;
java.lang.Boolean v;
boolean v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture$AllTheWay v;
java.util.concurrent.ExecutionException v;
java.util.concurrent.TimeUnit v;
org.glassfish.hk.api.MultiException v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
v := @parameter: long;
v := @parameter: java.util.concurrent.TimeUnit;
v = null;
entermonitor v;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay>;
if v == null goto label;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay>;
goto label;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay>;
if v == null goto label;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay>;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v != null goto label;
return null;
label:
v = interfaceinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture$AllTheWay: java.lang.Boolean waitForResult(long,java.util.concurrent.TimeUnit)>(v, v);
if v != null goto label;
entermonitor v;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay>;
if v == null goto label;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$UpAllTheWay upAllTheWay>;
goto label;
label:
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay>;
if v == null goto label;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: org.glassfish.hk.runlevel.internal.CurrentTaskFuture$DownAllTheWay downAllTheWay>;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v != 0 goto label;
v = new java.util.concurrent.TimeoutException;
specialinvoke v.<java.util.concurrent.TimeoutException: void <init>()>();
throw v;
label:
entermonitor v;
label:
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean done> = 1;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return null;
label:
v := @caughtexception;
entermonitor v;
label:
v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean done> = 1;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = new java.util.concurrent.ExecutionException;
specialinvoke v.<java.util.concurrent.ExecutionException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch org.glassfish.hk.api.MultiException from label to label with label;
catch org.glassfish.hk.api.MultiException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void invokeOnProgress(org.glassfish.hk.runlevel.ChangeableRunLevelFuture, int, java.util.List)
{
java.lang.Throwable v, v;
org.glassfish.hk.runlevel.ChangeableRunLevelFuture v;
java.util.Iterator v;
java.util.List v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
int v;
java.lang.Object v, v;
boolean v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
v := @parameter: org.glassfish.hk.runlevel.ChangeableRunLevelFuture;
v := @parameter: int;
v := @parameter: java.util.List;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: void setInCallback(boolean)>(1);
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:
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
if v == null goto label;
interfaceinvoke v.<org.glassfish.hk.runlevel.RunLevelListener: void onProgress(org.glassfish.hk.runlevel.ChangeableRunLevelFuture,int)>(v, v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: void setInCallback(boolean)>(0);
goto label;
label:
v := @caughtexception;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: void setInCallback(boolean)>(0);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void invokeOnProgressStarted(org.glassfish.hk.runlevel.ChangeableRunLevelFuture, int, java.util.List)
{
java.lang.Throwable v, v;
org.glassfish.hk.runlevel.ChangeableRunLevelFuture v;
java.util.Iterator v;
java.util.List v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
int v;
java.lang.Object v, v;
boolean v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
v := @parameter: org.glassfish.hk.runlevel.ChangeableRunLevelFuture;
v := @parameter: int;
v := @parameter: java.util.List;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: void setInCallback(boolean)>(1);
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:
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
if v == null goto label;
interfaceinvoke v.<org.glassfish.hk.runlevel.ProgressStartedListener: void onProgressStarting(org.glassfish.hk.runlevel.ChangeableRunLevelFuture,int)>(v, v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: void setInCallback(boolean)>(0);
goto label;
label:
v := @caughtexception;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: void setInCallback(boolean)>(0);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static void invokeOnCancelled(org.glassfish.hk.runlevel.internal.CurrentTaskFuture, int, java.util.List)
{
java.lang.Throwable v;
java.util.Iterator v;
java.util.List v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
int v;
java.lang.Object v, v;
org.glassfish.hk.runlevel.internal.CurrentTaskFutureWrapper v;
boolean v;
v := @parameter: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
v := @parameter: int;
v := @parameter: java.util.List;
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:
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
if v == null goto label;
v = new org.glassfish.hk.runlevel.internal.CurrentTaskFutureWrapper;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFutureWrapper: void <init>(org.glassfish.hk.runlevel.internal.CurrentTaskFuture)>(v);
interfaceinvoke v.<org.glassfish.hk.runlevel.RunLevelListener: void onCancelled(org.glassfish.hk.runlevel.RunLevelFuture,int)>(v, v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private static org.glassfish.hk.runlevel.ErrorInformation invokeOnError(org.glassfish.hk.runlevel.internal.CurrentTaskFuture, java.lang.Throwable, org.glassfish.hk.runlevel.ErrorInformation$ErrorAction, java.util.List, org.glassfish.hk.api.Descriptor)
{
java.lang.Throwable v, v;
java.util.Iterator v;
org.glassfish.hk.runlevel.internal.ErrorInformationImpl v;
java.util.List v;
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
org.glassfish.hk.runlevel.ErrorInformation$ErrorAction v;
java.lang.Object v, v;
org.glassfish.hk.runlevel.internal.CurrentTaskFutureWrapper v;
boolean v;
org.glassfish.hk.api.Descriptor v;
v := @parameter: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
v := @parameter: java.lang.Throwable;
v := @parameter: org.glassfish.hk.runlevel.ErrorInformation$ErrorAction;
v := @parameter: java.util.List;
v := @parameter: org.glassfish.hk.api.Descriptor;
v = new org.glassfish.hk.runlevel.internal.ErrorInformationImpl;
specialinvoke v.<org.glassfish.hk.runlevel.internal.ErrorInformationImpl: void <init>(java.lang.Throwable,org.glassfish.hk.runlevel.ErrorInformation$ErrorAction,org.glassfish.hk.api.Descriptor)>(v, v, v);
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:
v = interfaceinvoke v.<org.glassfish.hk.api.ServiceHandle: java.lang.Object getService()>();
if v == null goto label;
v = new org.glassfish.hk.runlevel.internal.CurrentTaskFutureWrapper;
specialinvoke v.<org.glassfish.hk.runlevel.internal.CurrentTaskFutureWrapper: void <init>(org.glassfish.hk.runlevel.internal.CurrentTaskFuture)>(v);
interfaceinvoke v.<org.glassfish.hk.runlevel.RunLevelListener: void onError(org.glassfish.hk.runlevel.RunLevelFuture,org.glassfish.hk.runlevel.ErrorInformation)>(v, v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
static final boolean isWouldBlock(java.lang.Throwable)
{
java.lang.Throwable v;
boolean v;
v := @parameter: java.lang.Throwable;
v = staticinvoke <org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean isACertainException(java.lang.Throwable,java.lang.Class)>(v, class "Lorg/glassfish/hk2/runlevel/internal/WouldBlockException;");
return v;
}
private static final boolean isWasCancelled(java.lang.Throwable)
{
java.lang.Throwable v;
boolean v;
v := @parameter: java.lang.Throwable;
v = staticinvoke <org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean isACertainException(java.lang.Throwable,java.lang.Class)>(v, class "Lorg/glassfish/hk2/runlevel/internal/WasCancelledException;");
return v;
}
private static final boolean isACertainException(java.lang.Throwable, java.lang.Class)
{
java.lang.Throwable v, v;
java.util.Iterator v;
java.util.List v;
java.lang.Class v, v;
java.lang.Object v;
boolean v, v, v, v;
v := @parameter: java.lang.Throwable;
v := @parameter: java.lang.Class;
v = v;
label:
if v == null goto label;
v = v instanceof org.glassfish.hk.api.MultiException;
if v == 0 goto label;
v = virtualinvoke v.<org.glassfish.hk.api.MultiException: java.util.List getErrors()>();
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()>();
v = staticinvoke <org.glassfish.hk.runlevel.internal.CurrentTaskFuture: boolean isACertainException(java.lang.Throwable,java.lang.Class)>(v, v);
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<java.lang.Throwable: java.lang.Throwable getCause()>();
goto label;
label:
return 0;
}
public java.lang.String toString()
{
org.glassfish.hk.runlevel.internal.CurrentTaskFuture v;
int v, v;
java.lang.String v;
v := @this: org.glassfish.hk.runlevel.internal.CurrentTaskFuture;
v = v.<org.glassfish.hk.runlevel.internal.CurrentTaskFuture: int proposedLevel>;
v = staticinvoke <java.lang.System: int identityHashCode(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("CurrentTaskFuture(proposedLevel=\u,\u)");
return v;
}
}