public class io.quarkus.runtime.ApplicationLifecycleManager extends java.lang.Object
{
public static volatile io.quarkus.runtime.ShutdownEvent$ShutdownReason shutdownReason;
private static volatile java.util.function.BiConsumer defaultExitCodeHandler;
private static final java.lang.String DISABLE_SIGNAL_HANDLERS;
private static final java.util.concurrent.locks.Lock stateLock;
private static final java.util.concurrent.locks.Condition stateCond;
private static io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread shutdownHookThread;
private static int exitCode;
private static volatile boolean shutdownRequested;
private static io.quarkus.runtime.Application currentApplication;
private static boolean vmShuttingDown;
private static final boolean IS_WINDOWS;
private static final boolean IS_MAC;
private void <init>()
{
io.quarkus.runtime.ApplicationLifecycleManager v;
v := @this: io.quarkus.runtime.ApplicationLifecycleManager;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static transient void run(io.quarkus.runtime.Application, java.lang.String[])
{
java.lang.String[] v;
io.quarkus.runtime.Application v;
v := @parameter: io.quarkus.runtime.Application;
v := @parameter: java.lang.String[];
staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: void run(io.quarkus.runtime.Application,java.lang.Class,java.util.function.BiConsumer,java.lang.String[])>(v, null, null, v);
return;
}
public static transient void run(io.quarkus.runtime.Application, java.lang.Class, java.util.function.BiConsumer, java.lang.String[])
{
java.lang.Integer v, v;
java.util.stream.Collector v;
jakarta.enterprise.inject.spi.BeanManager v;
java.lang.Runtime v, v, v;
java.util.Set v;
java.lang.Exception v;
java.util.stream.Stream v, v;
java.lang.Throwable v, v, v, v, v, v, v, v;
java.lang.Object[] v;
io.quarkus.runtime.Application v, v;
java.lang.reflect.Constructor v;
java.util.function.BiConsumer v, v, v, v;
java.lang.String v, v, v;
java.lang.Class[] v;
java.util.concurrent.locks.Lock v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalStateException v, v, v, v;
jakarta.enterprise.inject.spi.CDI v;
jakarta.enterprise.inject.spi.Bean v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.List v, v;
org.jboss.logging.Logger v;
java.lang.String[] v;
java.lang.'annotation'.Annotation[] v;
java.util.function.Function v;
int v, v, v, v, v, v, v, v, v, v, v, v;
io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread v, v, v, v;
java.io.PrintStream v, v;
jakarta.enterprise.inject.Any$Literal v;
java.util.Iterator v, v, v;
jakarta.enterprise.context.spi.CreationalContext v;
java.util.concurrent.locks.Condition v, v, v, v;
java.lang.Class v, v;
java.lang.Object v, v, v, v, v, v;
v := @parameter: io.quarkus.runtime.Application;
v := @parameter: java.lang.Class;
v := @parameter: java.util.function.BiConsumer;
v := @parameter: java.lang.String[];
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
v = virtualinvoke v.<io.quarkus.runtime.Application: boolean isStarted()>();
v = <io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread shutdownHookThread>;
if v != null goto label;
if v != null goto label;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.function.BiConsumer defaultExitCodeHandler>;
goto label;
label:
v = v;
label:
staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: void registerHooks(java.util.function.BiConsumer)>(v);
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.Application currentApplication>;
if v == null goto label;
v = <io.quarkus.runtime.ApplicationLifecycleManager: boolean shutdownRequested>;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Quarkus already running");
throw v;
label:
v = (int) -1;
<io.quarkus.runtime.ApplicationLifecycleManager: int exitCode> = v;
<io.quarkus.runtime.ApplicationLifecycleManager: boolean shutdownRequested> = 0;
<io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.Application currentApplication> = v;
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
virtualinvoke v.<io.quarkus.runtime.Application: void start(java.lang.String[])>(v);
if v == null goto label;
v = staticinvoke <jakarta.enterprise.inject.spi.CDI: jakarta.enterprise.inject.spi.CDI current()>();
v = virtualinvoke v.<jakarta.enterprise.inject.spi.CDI: jakarta.enterprise.inject.spi.BeanManager getBeanManager()>();
v = newarray (java.lang.'annotation'.Annotation)[1];
v = <jakarta.enterprise.inject.Any$Literal: jakarta.enterprise.inject.Any$Literal INSTANCE>;
v[0] = v;
v = interfaceinvoke v.<jakarta.enterprise.inject.spi.BeanManager: java.util.Set getBeans(java.lang.reflect.Type,java.lang.'annotation'.Annotation[])>(v, v);
v = null;
v = interfaceinvoke v.<java.util.Set: 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 = interfaceinvoke v.<jakarta.enterprise.inject.spi.Bean: java.lang.Class getBeanClass()>();
if v != v goto label;
v = v;
label:
if v != null goto label;
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getDeclaredConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
goto label;
label:
v = interfaceinvoke v.<jakarta.enterprise.inject.spi.BeanManager: jakarta.enterprise.context.spi.CreationalContext createCreationalContext(jakarta.enterprise.context.spi.Contextual)>(v);
interfaceinvoke v.<jakarta.enterprise.inject.spi.BeanManager: java.lang.Object getReference(jakarta.enterprise.inject.spi.Bean,java.lang.reflect.Type,jakarta.enterprise.context.spi.CreationalContext)>(v, v, v);
label:
v = interfaceinvoke v.<io.quarkus.runtime.QuarkusApplication: int run(java.lang.String[])>(v);
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: int exitCode>;
v = (int) -1;
if v != v goto label;
v = (int) -1;
if v == v goto label;
<io.quarkus.runtime.ApplicationLifecycleManager: int exitCode> = v;
label:
<io.quarkus.runtime.ApplicationLifecycleManager: boolean shutdownRequested> = 1;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signalAll()>();
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
v := @caughtexception;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: int exitCode>;
v = (int) -1;
if v != v goto label;
v = (int) -1;
if -1 == v goto label;
<io.quarkus.runtime.ApplicationLifecycleManager: int exitCode> = -1;
label:
<io.quarkus.runtime.ApplicationLifecycleManager: boolean shutdownRequested> = 1;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signalAll()>();
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
throw v;
label:
staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: void longLivedPostBootCleanup()>();
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: boolean shutdownRequested>;
if v != 0 goto label;
staticinvoke <java.lang.Thread: boolean interrupted()>();
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void awaitUninterruptibly()>();
goto label;
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread shutdownHookThread>;
<io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread shutdownHookThread> = null;
if v == null goto label;
v = staticinvoke <java.lang.Runtime: java.lang.Runtime getRuntime()>();
virtualinvoke v.<java.lang.Runtime: boolean removeShutdownHook(java.lang.Thread)>(v);
label:
goto label;
label:
v := @caughtexception;
goto label;
label:
v := @caughtexception;
v = staticinvoke <io.quarkus.runtime.util.ExceptionUtil: java.lang.Throwable getRootCause(java.lang.Throwable)>(v);
if v != null goto label;
v = staticinvoke <org.jboss.logging.Logger: org.jboss.logging.Logger getLogger(java.lang.Class)>(class "Lio/quarkus/runtime/Application;");
v = v instanceof io.quarkus.runtime.QuarkusBindException;
if v == 0 goto label;
v = virtualinvoke v.<io.quarkus.runtime.QuarkusBindException: java.util.List getPorts()>();
v = interfaceinvoke v.<java.util.List: int size()>();
if v != 1 goto label;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
virtualinvoke v.<org.jboss.logging.Logger: void errorf(java.lang.String,java.lang.Object)>("Port %d seems to be in use by another process. Quarkus may already be running or the port is used by another application.", v);
goto label;
label:
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager$toString__3466: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector joining(java.lang.CharSequence)>(",");
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
virtualinvoke v.<org.jboss.logging.Logger: void errorf(java.lang.String,java.lang.Object)>("One or more of the following ports: %s seem to be in use by another process. Quarkus may already be running or one of the ports is used by another application.", v);
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: boolean IS_WINDOWS>;
if v == 0 goto label;
virtualinvoke v.<org.jboss.logging.Logger: void warn(java.lang.Object)>("Use \'netstat -a -b -n -o\' to identify the process occupying the port.");
virtualinvoke v.<org.jboss.logging.Logger: void warn(java.lang.Object)>("You can try to kill it with \'taskkill /PID <pid>\' or via the Task Manager.");
goto label;
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: boolean IS_MAC>;
if v == 0 goto 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()>();
virtualinvoke v.<org.jboss.logging.Logger: void warnf(java.lang.String,java.lang.Object)>("Use \'netstat -anv | grep %d\' to identify the process occupying the port.", v);
goto label;
label:
virtualinvoke v.<org.jboss.logging.Logger: void warn(java.lang.Object)>("You can try to kill it with \'kill -9 <pid>\'.");
goto label;
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()>();
virtualinvoke v.<org.jboss.logging.Logger: void warnf(java.lang.String,java.lang.Object)>("Use \'netstat -anop | grep %d\' to identify the process occupying the port.", v);
goto label;
label:
virtualinvoke v.<org.jboss.logging.Logger: void warn(java.lang.Object)>("You can try to kill it with \'kill -9 <pid>\'.");
goto label;
label:
v = v instanceof io.quarkus.runtime.configuration.ConfigurationException;
if v == 0 goto label;
v = <java.lang.System: java.io.PrintStream err>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
goto label;
label:
v = v instanceof io.quarkus.runtime.PreventFurtherStepsException;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
v = staticinvoke <io.quarkus.runtime.util.StringUtil: boolean isNullOrEmpty(java.lang.String)>(v);
if v != 0 goto label;
v = <java.lang.System: java.io.PrintStream err>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
goto label;
label:
v = staticinvoke <io.quarkus.runtime.configuration.ConfigUtils: java.util.List getProfiles()>();
virtualinvoke v.<org.jboss.logging.Logger: void errorv(java.lang.Throwable,java.lang.String,java.lang.Object)>(v, "Failed to start application (with profile {0})", v);
staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: void ensureConsoleLogsDrained()>();
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
<io.quarkus.runtime.ApplicationLifecycleManager: boolean shutdownRequested> = 1;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signalAll()>();
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
virtualinvoke v.<io.quarkus.runtime.Application: void stop()>();
v = v instanceof io.quarkus.runtime.PreventFurtherStepsException;
if v == 0 goto label;
v = virtualinvoke v.<io.quarkus.runtime.PreventFurtherStepsException: int getExitCode()>();
goto label;
label:
v = 1;
label:
v = v;
if v != null goto label;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.function.BiConsumer defaultExitCodeHandler>;
goto label;
label:
v = v;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.function.BiConsumer: void accept(java.lang.Object,java.lang.Object)>(v, v);
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread shutdownHookThread>;
<io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread shutdownHookThread> = null;
if v == null goto label;
v = staticinvoke <java.lang.Runtime: java.lang.Runtime getRuntime()>();
virtualinvoke v.<java.lang.Runtime: boolean removeShutdownHook(java.lang.Thread)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
return;
label:
v := @caughtexception;
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread shutdownHookThread>;
<io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread shutdownHookThread> = null;
if v == null goto label;
v = staticinvoke <java.lang.Runtime: java.lang.Runtime getRuntime()>();
virtualinvoke v.<java.lang.Runtime: boolean removeShutdownHook(java.lang.Thread)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
throw v;
label:
if v != 0 goto label;
virtualinvoke v.<io.quarkus.runtime.Application: void stop()>();
label:
if v != null goto label;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.function.BiConsumer defaultExitCodeHandler>;
goto label;
label:
v = v;
label:
v = staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: int getExitCode()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.function.BiConsumer: void accept(java.lang.Object,java.lang.Object)>(v, null);
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;
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.Exception 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;
catch java.lang.IllegalStateException from label to label with label;
}
private static void ensureConsoleLogsDrained()
{
io.quarkus.bootstrap.logging.QuarkusDelayedHandler v;
java.util.logging.Handler[] v, v;
java.lang.InterruptedException v;
java.lang.Thread v;
int v, v, v, v;
java.util.logging.Handler v, v;
boolean v, v, v;
v = <io.quarkus.bootstrap.logging.InitialConfigurator: io.quarkus.bootstrap.logging.QuarkusDelayedHandler DELAYED_HANDLER>;
v = virtualinvoke v.<io.quarkus.bootstrap.logging.QuarkusDelayedHandler: java.util.logging.Handler[] getHandlers()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof org.jboss.logmanager.handlers.AsyncHandler;
if v == 0 goto label;
v = virtualinvoke v.<org.jboss.logmanager.handlers.AsyncHandler: java.util.logging.Handler[] getHandlers()>();
v = 0;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof java.util.logging.ConsoleHandler;
if v == 0 goto label;
v = 1;
goto label;
label:
v = v + 1;
goto label;
label:
if v != 0 goto label;
v = null;
label:
if v != null goto label;
v = v + 1;
goto label;
label:
if v == null goto label;
label:
staticinvoke <java.lang.Thread: void sleep(long)>(200L);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
private static void longLivedPostBootCleanup()
{
java.lang.ClassLoader v;
boolean v;
java.lang.Thread v;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
v = v instanceof io.quarkus.bootstrap.runner.RunnerClassLoader;
if v == 0 goto label;
virtualinvoke v.<io.quarkus.bootstrap.runner.RunnerClassLoader: void resetInternalCaches()>();
label:
return;
}
private static void registerHooks(java.util.function.BiConsumer)
{
io.quarkus.runtime.ImageMode v, v;
java.lang.Runtime v;
io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread v, v;
java.util.function.BiConsumer v;
java.lang.String v;
v := @parameter: java.util.function.BiConsumer;
v = staticinvoke <io.quarkus.runtime.ImageMode: io.quarkus.runtime.ImageMode current()>();
v = <io.quarkus.runtime.ImageMode: io.quarkus.runtime.ImageMode NATIVE_RUN>;
if v != v goto label;
v = staticinvoke <java.lang.System: java.lang.String getenv(java.lang.String)>("DISABLE_SIGNAL_HANDLERS");
if v != null goto label;
staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: void registerSignalHandlers(java.util.function.BiConsumer)>(v);
label:
v = new io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread;
specialinvoke v.<io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread: void <init>()>();
<io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread shutdownHookThread> = v;
v = staticinvoke <java.lang.Runtime: java.lang.Runtime getRuntime()>();
v = <io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.ApplicationLifecycleManager$ShutdownHookThread shutdownHookThread>;
virtualinvoke v.<java.lang.Runtime: void addShutdownHook(java.lang.Thread)>(v);
return;
}
private static void registerSignalHandlers(java.util.function.BiConsumer)
{
io.quarkus.runtime.ApplicationLifecycleManager$2 v;
io.quarkus.runtime.ApplicationLifecycleManager$3 v;
java.util.function.BiConsumer v;
boolean v;
v := @parameter: java.util.function.BiConsumer;
v = new io.quarkus.runtime.ApplicationLifecycleManager$2;
specialinvoke v.<io.quarkus.runtime.ApplicationLifecycleManager$2: void <init>(java.util.function.BiConsumer)>(v);
v = new io.quarkus.runtime.ApplicationLifecycleManager$3;
specialinvoke v.<io.quarkus.runtime.ApplicationLifecycleManager$3: void <init>()>();
staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: void handleSignal(java.lang.String,sun.misc.SignalHandler)>("INT", v);
staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: void handleSignal(java.lang.String,sun.misc.SignalHandler)>("TERM", v);
v = <io.quarkus.runtime.ApplicationLifecycleManager: boolean IS_WINDOWS>;
if v == 0 goto label;
staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: void handleSignal(java.lang.String,sun.misc.SignalHandler)>("BREAK", v);
goto label;
label:
staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: void handleSignal(java.lang.String,sun.misc.SignalHandler)>("HUP", v);
staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: void handleSignal(java.lang.String,sun.misc.SignalHandler)>("QUIT", v);
label:
return;
}
public static io.quarkus.runtime.Application getCurrentApplication()
{
io.quarkus.runtime.Application v;
v = <io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.Application currentApplication>;
return v;
}
public static int getExitCode()
{
int v, v, v;
v = <io.quarkus.runtime.ApplicationLifecycleManager: int exitCode>;
v = (int) -1;
if v != v goto label;
v = 0;
goto label;
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: int exitCode>;
label:
return v;
}
public static void exit()
{
staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: void exit(int)>(-1);
return;
}
public static java.util.function.BiConsumer getDefaultExitCodeHandler()
{
java.util.function.BiConsumer v;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.function.BiConsumer defaultExitCodeHandler>;
return v;
}
public static boolean isVmShuttingDown()
{
boolean v;
v = <io.quarkus.runtime.ApplicationLifecycleManager: boolean vmShuttingDown>;
return v;
}
public static void setDefaultExitCodeHandler(java.util.function.BiConsumer)
{
java.util.function.BiConsumer v;
v := @parameter: java.util.function.BiConsumer;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
<io.quarkus.runtime.ApplicationLifecycleManager: java.util.function.BiConsumer defaultExitCodeHandler> = v;
return;
}
public static void setDefaultExitCodeHandler(java.util.function.Consumer)
{
java.util.function.BiConsumer v;
java.util.function.Consumer v;
v := @parameter: java.util.function.Consumer;
v = staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager$lambda_setDefaultExitCodeHandler_0__3467: java.util.function.BiConsumer bootstrap$(java.util.function.Consumer)>(v);
staticinvoke <io.quarkus.runtime.ApplicationLifecycleManager: void setDefaultExitCodeHandler(java.util.function.BiConsumer)>(v);
return;
}
public static void exit(int)
{
java.lang.Throwable v;
java.util.concurrent.locks.Condition v;
java.util.concurrent.locks.Lock v, v, v, v;
int v, v, v;
boolean v;
v := @parameter: int;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
if v < 0 goto label;
v = <io.quarkus.runtime.ApplicationLifecycleManager: int exitCode>;
v = (int) -1;
if v != v goto label;
<io.quarkus.runtime.ApplicationLifecycleManager: int exitCode> = v;
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: boolean shutdownRequested>;
if v == 0 goto label;
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return;
label:
<io.quarkus.runtime.ApplicationLifecycleManager: boolean shutdownRequested> = 1;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signalAll()>();
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public static void waitForExit()
{
java.lang.Throwable v;
java.util.concurrent.locks.Condition v;
java.util.concurrent.locks.Lock v, v, v;
boolean v;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: boolean shutdownRequested>;
if v != 0 goto label;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Condition stateCond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void awaitUninterruptibly()>();
goto label;
label:
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private static void handleSignal(java.lang.String, sun.misc.SignalHandler)
{
sun.misc.SignalHandler v;
sun.misc.Signal v;
java.lang.String v;
java.lang.IllegalArgumentException v;
v := @parameter: java.lang.String;
v := @parameter: sun.misc.SignalHandler;
label:
v = new sun.misc.Signal;
specialinvoke v.<sun.misc.Signal: void <init>(java.lang.String)>(v);
staticinvoke <sun.misc.Signal: sun.misc.SignalHandler handle(sun.misc.Signal,sun.misc.SignalHandler)>(v, v);
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.lang.IllegalArgumentException from label to label with label;
}
static void <clinit>()
{
io.quarkus.runtime.ApplicationLifecycleManager$1 v;
java.util.concurrent.locks.Condition v;
java.util.concurrent.locks.Lock v;
io.quarkus.runtime.ShutdownEvent$ShutdownReason v;
java.util.Locale v, v;
org.wildfly.common.lock.ExtendedLock v;
int v;
java.lang.String v, v, v, v;
boolean v, v;
v = <io.quarkus.runtime.ShutdownEvent$ShutdownReason: io.quarkus.runtime.ShutdownEvent$ShutdownReason STANDARD>;
<io.quarkus.runtime.ApplicationLifecycleManager: io.quarkus.runtime.ShutdownEvent$ShutdownReason shutdownReason> = v;
v = new io.quarkus.runtime.ApplicationLifecycleManager$1;
specialinvoke v.<io.quarkus.runtime.ApplicationLifecycleManager$1: void <init>()>();
<io.quarkus.runtime.ApplicationLifecycleManager: java.util.function.BiConsumer defaultExitCodeHandler> = v;
v = staticinvoke <org.wildfly.common.lock.Locks: org.wildfly.common.lock.ExtendedLock reentrantLock()>();
<io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock> = v;
v = <io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Lock stateLock>;
v = interfaceinvoke v.<java.util.concurrent.locks.Lock: java.util.concurrent.locks.Condition newCondition()>();
<io.quarkus.runtime.ApplicationLifecycleManager: java.util.concurrent.locks.Condition stateCond> = v;
v = (int) -1;
<io.quarkus.runtime.ApplicationLifecycleManager: int exitCode> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("os.name");
v = <java.util.Locale: java.util.Locale ENGLISH>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("windows");
<io.quarkus.runtime.ApplicationLifecycleManager: boolean IS_WINDOWS> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("os.name");
v = <java.util.Locale: java.util.Locale ENGLISH>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("mac");
<io.quarkus.runtime.ApplicationLifecycleManager: boolean IS_MAC> = v;
return;
}
}