public abstract class io.quarkus.runtime.Application extends java.lang.Object implements java.io.Closeable
{
public static final java.lang.String APP_CLASS_NAME;
private static final int ST_INITIAL;
private static final int ST_STARTING;
private static final int ST_STARTED;
private static final int ST_STOPPING;
private static final int ST_STOPPED;
private final java.util.concurrent.locks.Lock stateLock;
private final java.util.concurrent.locks.Condition stateCond;
private int state;
protected static volatile io.quarkus.runtime.Application currentApplication;
private final boolean auxiliaryApplication;
protected void <init>(boolean)
{
java.util.concurrent.locks.Condition v;
java.util.concurrent.locks.Lock v;
io.quarkus.runtime.Application v;
org.wildfly.common.lock.ExtendedLock v;
boolean v;
v := @this: io.quarkus.runtime.Application;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <org.wildfly.common.lock.Locks: org.wildfly.common.lock.ExtendedLock reentrantLock()>();
v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Lock stateLock> = v;
v = v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Lock stateLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.Lock: java.util.concurrent.locks.Condition newCondition()>();
v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Condition stateCond> = v;
v.<io.quarkus.runtime.Application: int state> = 0;
v.<io.quarkus.runtime.Application: boolean auxiliaryApplication> = v;
return;
}
public final void start(java.lang.String[])
{
java.lang.Throwable v, v, v, v;
java.lang.IllegalStateException v, v, v;
io.quarkus.runtime.Application v;
java.lang.String[] v;
org.eclipse.microprofile.config.spi.ConfigProviderResolver v;
java.lang.Thread v;
int v;
boolean v, v, v;
org.eclipse.microprofile.config.Config v;
java.util.concurrent.locks.Condition v, v, v;
java.util.concurrent.locks.Lock v;
java.lang.InterruptedException v;
v := @this: io.quarkus.runtime.Application;
v := @parameter: java.lang.String[];
v = v.<io.quarkus.runtime.Application: boolean auxiliaryApplication>;
if v != 0 goto label;
<io.quarkus.runtime.Application: io.quarkus.runtime.Application currentApplication> = v;
label:
v = v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<io.quarkus.runtime.Application: int state>;
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v = v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void await()>();
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
v = staticinvoke <io.quarkus.runtime.Application: java.lang.IllegalStateException interruptedOnAwaitStart()>();
throw v;
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("The application is stopping");
throw v;
label:
v.<io.quarkus.runtime.Application: int state> = 1;
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
virtualinvoke v.<io.quarkus.runtime.Application: void doStart(java.lang.String[])>(v);
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
v = staticinvoke <org.eclipse.microprofile.config.spi.ConfigProviderResolver: org.eclipse.microprofile.config.spi.ConfigProviderResolver instance()>();
label:
v = virtualinvoke v.<org.eclipse.microprofile.config.spi.ConfigProviderResolver: org.eclipse.microprofile.config.Config getConfig()>();
virtualinvoke v.<org.eclipse.microprofile.config.spi.ConfigProviderResolver: void releaseConfig(org.eclipse.microprofile.config.Config)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
v.<io.quarkus.runtime.Application: int state> = 4;
v = v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signalAll()>();
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
v = v.<io.quarkus.runtime.Application: boolean auxiliaryApplication>;
if v != 0 goto label;
staticinvoke <io.quarkus.dev.appstate.ApplicationStateNotification: void notifyStartupFailed(java.lang.Throwable)>(v);
label:
throw v;
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v.<io.quarkus.runtime.Application: int state> = 2;
v = v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signalAll()>();
v = v.<io.quarkus.runtime.Application: boolean auxiliaryApplication>;
if v != 0 goto label;
staticinvoke <io.quarkus.dev.appstate.ApplicationStateNotification: void notifyStartupComplete()>();
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.InterruptedException 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.IllegalStateException 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;
}
protected abstract void doStart(java.lang.String[]);
public final void close()
{
java.lang.Throwable v, v, v;
io.quarkus.runtime.Application v;
org.eclipse.microprofile.config.Config v, v;
org.eclipse.microprofile.config.spi.ConfigProviderResolver v, v, v, v;
java.lang.Thread v, v;
java.lang.ClassLoader v, v;
v := @this: io.quarkus.runtime.Application;
label:
virtualinvoke v.<io.quarkus.runtime.Application: void stop()>();
label:
v = staticinvoke <org.eclipse.microprofile.config.spi.ConfigProviderResolver: org.eclipse.microprofile.config.spi.ConfigProviderResolver instance()>();
v = staticinvoke <org.eclipse.microprofile.config.spi.ConfigProviderResolver: org.eclipse.microprofile.config.spi.ConfigProviderResolver instance()>();
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
v = virtualinvoke v.<org.eclipse.microprofile.config.spi.ConfigProviderResolver: org.eclipse.microprofile.config.Config getConfig(java.lang.ClassLoader)>(v);
virtualinvoke v.<org.eclipse.microprofile.config.spi.ConfigProviderResolver: void releaseConfig(org.eclipse.microprofile.config.Config)>(v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
v := @caughtexception;
label:
v = staticinvoke <org.eclipse.microprofile.config.spi.ConfigProviderResolver: org.eclipse.microprofile.config.spi.ConfigProviderResolver instance()>();
v = staticinvoke <org.eclipse.microprofile.config.spi.ConfigProviderResolver: org.eclipse.microprofile.config.spi.ConfigProviderResolver instance()>();
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
v = virtualinvoke v.<org.eclipse.microprofile.config.spi.ConfigProviderResolver: org.eclipse.microprofile.config.Config getConfig(java.lang.ClassLoader)>(v);
virtualinvoke v.<org.eclipse.microprofile.config.spi.ConfigProviderResolver: void releaseConfig(org.eclipse.microprofile.config.Config)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
throw v;
label:
return;
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 final void stop()
{
io.quarkus.runtime.Application v;
v := @this: io.quarkus.runtime.Application;
virtualinvoke v.<io.quarkus.runtime.Application: void stop(java.lang.Runnable)>(null);
return;
}
public final void stop(java.lang.Runnable)
{
java.lang.IllegalStateException v, v, v, v;
java.lang.Runnable v;
java.lang.Thread v, v;
boolean v, v, v, v, v, v, v, v;
java.lang.Throwable v, v, v, v, v, v;
java.lang.Object[] v, v;
io.quarkus.runtime.Application v;
org.jboss.logging.Logger v, v, v;
int v, v;
java.lang.String v, v;
java.lang.RuntimeException v;
java.util.concurrent.locks.Condition v, v, v, v;
java.util.concurrent.locks.Lock v;
java.lang.InterruptedException v, v;
v := @this: io.quarkus.runtime.Application;
v := @parameter: java.lang.Runnable;
v = staticinvoke <org.jboss.logging.Logger: org.jboss.logging.Logger getLogger(java.lang.Class)>(class "Lio/quarkus/runtime/Application;");
v = newarray (java.lang.Object)[0];
virtualinvoke v.<org.jboss.logging.Logger: void debugf(java.lang.String,java.lang.Object[])>("Stopping application", v);
v = virtualinvoke v.<org.jboss.logging.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>("Application Stop Stack Trace");
v = newarray (java.lang.Object)[0];
virtualinvoke v.<org.jboss.logging.Logger: void tracef(java.lang.Throwable,java.lang.String,java.lang.Object[])>(v, "Application shutting down", v);
label:
v = v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<io.quarkus.runtime.Application: int state>;
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
default: goto label;
};
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("The application has not been started");
throw v;
label:
v = v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void await()>();
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
v = staticinvoke <io.quarkus.runtime.Application: java.lang.IllegalStateException interruptedOnAwaitStart()>();
throw v;
label:
v = v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void await()>();
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
v = staticinvoke <io.quarkus.runtime.Application: java.lang.IllegalStateException interruptedOnAwaitStop()>();
throw v;
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return;
label:
v = v.<io.quarkus.runtime.Application: int state>;
v = staticinvoke <org.wildfly.common.Assert: java.lang.IllegalStateException impossibleSwitchCase(int)>(v);
throw v;
label:
v.<io.quarkus.runtime.Application: int state> = 3;
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
v = v.<io.quarkus.runtime.Application: boolean auxiliaryApplication>;
staticinvoke <io.quarkus.bootstrap.runner.Timing: void staticInitStopped(boolean)>(v);
label:
staticinvoke <io.quarkus.runtime.shutdown.ShutdownRecorder: void runShutdown()>();
virtualinvoke v.<io.quarkus.runtime.Application: void doStop()>();
label:
v = v.<io.quarkus.runtime.Application: boolean auxiliaryApplication>;
if v != 0 goto label;
<io.quarkus.runtime.Application: io.quarkus.runtime.Application currentApplication> = null;
label:
if v == null goto label;
label:
interfaceinvoke v.<java.lang.Runnable: void run()>();
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <org.jboss.logging.Logger: org.jboss.logging.Logger getLogger(java.lang.Class)>(class "Lio/quarkus/runtime/Application;");
virtualinvoke v.<org.jboss.logging.Logger: void error(java.lang.Object,java.lang.Throwable)>("Failed to run stop task", v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v.<io.quarkus.runtime.Application: int state> = 4;
v = virtualinvoke v.<io.quarkus.runtime.Application: java.lang.String getName()>();
v = v.<io.quarkus.runtime.Application: boolean auxiliaryApplication>;
staticinvoke <io.quarkus.bootstrap.runner.Timing: void printStopTime(java.lang.String,boolean)>(v, v);
v = v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signalAll()>();
v = v.<io.quarkus.runtime.Application: boolean auxiliaryApplication>;
if v != 0 goto label;
staticinvoke <io.quarkus.dev.appstate.ApplicationStateNotification: void notifyApplicationStopped()>();
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
v := @caughtexception;
v = v.<io.quarkus.runtime.Application: boolean auxiliaryApplication>;
if v != 0 goto label;
<io.quarkus.runtime.Application: io.quarkus.runtime.Application currentApplication> = null;
label:
if v == null goto label;
label:
interfaceinvoke v.<java.lang.Runnable: void run()>();
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <org.jboss.logging.Logger: org.jboss.logging.Logger getLogger(java.lang.Class)>(class "Lio/quarkus/runtime/Application;");
virtualinvoke v.<org.jboss.logging.Logger: void error(java.lang.Object,java.lang.Throwable)>("Failed to run stop task", v);
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v.<io.quarkus.runtime.Application: int state> = 4;
v = virtualinvoke v.<io.quarkus.runtime.Application: java.lang.String getName()>();
v = v.<io.quarkus.runtime.Application: boolean auxiliaryApplication>;
staticinvoke <io.quarkus.bootstrap.runner.Timing: void printStopTime(java.lang.String,boolean)>(v, v);
v = v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signalAll()>();
v = v.<io.quarkus.runtime.Application: boolean auxiliaryApplication>;
if v != 0 goto label;
staticinvoke <io.quarkus.dev.appstate.ApplicationStateNotification: void notifyApplicationStopped()>();
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
throw v;
label:
return;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.InterruptedException 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;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public static io.quarkus.runtime.Application currentApplication()
{
io.quarkus.runtime.Application v;
v = <io.quarkus.runtime.Application: io.quarkus.runtime.Application currentApplication>;
return v;
}
protected abstract void doStop();
public abstract java.lang.String getName();
private static java.lang.IllegalStateException interruptedOnAwaitStart()
{
java.lang.IllegalStateException v;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Interrupted while waiting for another thread to start the application");
return v;
}
private static java.lang.IllegalStateException interruptedOnAwaitStop()
{
java.lang.IllegalStateException v;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Interrupted while waiting for another thread to stop the application");
return v;
}
public void awaitShutdown()
{
java.lang.Throwable v;
java.lang.IllegalStateException v;
io.quarkus.runtime.Application v;
java.util.concurrent.locks.Condition v;
java.util.concurrent.locks.Lock v;
java.lang.InterruptedException v;
java.lang.Thread v;
int v;
v := @this: io.quarkus.runtime.Application;
v = v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<io.quarkus.runtime.Application: int state>;
if v != 4 goto label;
label:
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return;
label:
v = v.<io.quarkus.runtime.Application: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void await()>();
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
v = staticinvoke <io.quarkus.runtime.Application: java.lang.IllegalStateException interruptedOnAwaitStop()>();
throw v;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public boolean isStarted()
{
int v;
io.quarkus.runtime.Application v;
boolean v;
v := @this: io.quarkus.runtime.Application;
v = v.<io.quarkus.runtime.Application: int state>;
if v != 2 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
}