public final class org.apache.logging.log4j.core.jmx.Server extends java.lang.Object
{
private static final java.lang.String CONTEXT_NAME_ALL;
public static final java.lang.String DOMAIN;
private static final java.lang.String PROPERTY_DISABLE_JMX;
private static final java.lang.String PROPERTY_ASYNC_NOTIF;
private static final java.lang.String THREAD_NAME_PREFIX;
private static final org.apache.logging.log4j.status.StatusLogger LOGGER;
static final java.util.concurrent.Executor executor;
private void <init>()
{
org.apache.logging.log4j.core.jmx.Server v;
v := @this: org.apache.logging.log4j.core.jmx.Server;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
private static java.util.concurrent.ExecutorService createExecutor()
{
org.apache.logging.log4j.util.PropertiesUtil v;
java.util.concurrent.ExecutorService v;
org.apache.logging.log4j.core.util.Log4jThreadFactory v;
boolean v, v, v;
v = <org.apache.logging.log4j.core.util.Constants: boolean IS_WEB_APP>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = staticinvoke <org.apache.logging.log4j.util.PropertiesUtil: org.apache.logging.log4j.util.PropertiesUtil getProperties()>();
v = virtualinvoke v.<org.apache.logging.log4j.util.PropertiesUtil: boolean getBooleanProperty(java.lang.String,boolean)>("log4j.jmx.notify.async", v);
if v == 0 goto label;
v = staticinvoke <org.apache.logging.log4j.core.util.Log4jThreadFactory: org.apache.logging.log4j.core.util.Log4jThreadFactory createDaemonThreadFactory(java.lang.String)>("jmx.notif");
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newFixedThreadPool(int,java.util.concurrent.ThreadFactory)>(1, v);
goto label;
label:
v = null;
label:
return v;
}
public static java.lang.String escape(java.lang.String)
{
char v;
int v, v, v, v;
java.lang.StringBuilder v;
java.lang.String v, v;
boolean v;
v := @parameter: java.lang.String;
v = new java.lang.StringBuilder;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v * 2;
specialinvoke v.<java.lang.StringBuilder: void <init>(int)>(v);
v = 0;
v = 0;
label:
v = virtualinvoke v.<java.lang.String: int length()>();
if v >= v goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
lookupswitch(v)
{
case 10: goto label;
case 13: goto label;
case 34: goto label;
case 42: goto label;
case 44: goto label;
case 58: goto label;
case 61: goto label;
case 63: goto label;
case 92: goto label;
default: goto label;
};
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(92);
v = 1;
goto label;
label:
v = 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\\n");
v = 1;
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(v);
label:
v = v + 1;
goto label;
label:
if v == 0 goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder insert(int,char)>(0, 34);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(34);
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
private static boolean isJmxDisabled()
{
org.apache.logging.log4j.util.PropertiesUtil v;
boolean v;
v = staticinvoke <org.apache.logging.log4j.util.PropertiesUtil: org.apache.logging.log4j.util.PropertiesUtil getProperties()>();
v = virtualinvoke v.<org.apache.logging.log4j.util.PropertiesUtil: boolean getBooleanProperty(java.lang.String)>("log4j.disable.jmx");
return v;
}
public static void reregisterMBeansAfterReconfigure()
{
org.apache.logging.log4j.status.StatusLogger v;
boolean v;
javax.management.MBeanServer v;
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: boolean isJmxDisabled()>();
if v == 0 goto label;
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void debug(java.lang.String)>("JMX disabled for Log4j. Not registering MBeans.");
return;
label:
v = staticinvoke <java.lang.management.ManagementFactory: javax.management.MBeanServer getPlatformMBeanServer()>();
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void reregisterMBeansAfterReconfigure(javax.management.MBeanServer)>(v);
return;
}
public static void reregisterMBeansAfterReconfigure(javax.management.MBeanServer)
{
org.apache.logging.log4j.core.selector.ContextSelector v;
org.apache.logging.log4j.core.LoggerContext v;
java.lang.Integer v, v;
byte v;
boolean v, v, v;
javax.management.ObjectName v, v;
java.lang.Exception v;
java.util.List v;
org.apache.logging.log4j.core.jmx.LoggerContextAdmin v;
long v;
javax.management.MBeanServer v;
int v, v;
java.lang.String v, v, v, v;
org.apache.logging.log4j.core.jmx.RingBufferAdmin v;
java.util.Iterator v;
java.util.concurrent.Executor v, v, v, v, v;
org.apache.logging.log4j.status.StatusLogger v, v, v, v, v;
java.lang.Object v;
v := @parameter: javax.management.MBeanServer;
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: boolean isJmxDisabled()>();
if v == 0 goto label;
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void debug(java.lang.String)>("JMX disabled for Log4j. Not registering MBeans.");
return;
label:
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.core.selector.ContextSelector getContextSelector()>();
if v != null goto label;
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void debug(java.lang.String)>("Could not register MBeans: no ContextSelector found.");
label:
return;
label:
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void trace(java.lang.String,java.lang.Object)>("Reregistering MBeans after reconfigure. Selector={}", v);
v = interfaceinvoke v.<org.apache.logging.log4j.core.selector.ContextSelector: java.util.List getLoggerContexts()>();
v = 0;
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 = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
v = v + 1;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<java.util.List: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = virtualinvoke v.<org.apache.logging.log4j.core.LoggerContext: java.lang.String getName()>();
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void trace(java.lang.String,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)>("Reregistering context ({}/{}): \'{}\' {}", v, v, v, v);
v = virtualinvoke v.<org.apache.logging.log4j.core.LoggerContext: java.lang.String getName()>();
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterLoggerContext(java.lang.String,javax.management.MBeanServer)>(v, v);
v = new org.apache.logging.log4j.core.jmx.LoggerContextAdmin;
v = <org.apache.logging.log4j.core.jmx.Server: java.util.concurrent.Executor executor>;
specialinvoke v.<org.apache.logging.log4j.core.jmx.LoggerContextAdmin: void <init>(org.apache.logging.log4j.core.LoggerContext,java.util.concurrent.Executor)>(v, v);
v = virtualinvoke v.<org.apache.logging.log4j.core.jmx.LoggerContextAdmin: javax.management.ObjectName getObjectName()>();
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void register(javax.management.MBeanServer,java.lang.Object,javax.management.ObjectName)>(v, v, v);
v = v instanceof org.apache.logging.log4j.core.async.AsyncLoggerContext;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.logging.log4j.core.async.AsyncLoggerContext: org.apache.logging.log4j.core.jmx.RingBufferAdmin createRingBufferAdmin()>();
v = virtualinvoke v.<org.apache.logging.log4j.core.jmx.RingBufferAdmin: long getBufferSize()>();
v = v cmp 0L;
if v <= 0 goto label;
v = virtualinvoke v.<org.apache.logging.log4j.core.jmx.RingBufferAdmin: javax.management.ObjectName getObjectName()>();
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void register(javax.management.MBeanServer,java.lang.Object,javax.management.ObjectName)>(v, v, v);
label:
v = virtualinvoke v.<org.apache.logging.log4j.core.LoggerContext: java.lang.String getName()>();
v = <org.apache.logging.log4j.core.jmx.Server: java.util.concurrent.Executor executor>;
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void registerStatusLogger(java.lang.String,javax.management.MBeanServer,java.util.concurrent.Executor)>(v, v, v);
v = virtualinvoke v.<org.apache.logging.log4j.core.LoggerContext: java.lang.String getName()>();
v = <org.apache.logging.log4j.core.jmx.Server: java.util.concurrent.Executor executor>;
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void registerContextSelector(java.lang.String,org.apache.logging.log4j.core.selector.ContextSelector,javax.management.MBeanServer,java.util.concurrent.Executor)>(v, v, v, v);
v = <org.apache.logging.log4j.core.jmx.Server: java.util.concurrent.Executor executor>;
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void registerLoggerConfigs(org.apache.logging.log4j.core.LoggerContext,javax.management.MBeanServer,java.util.concurrent.Executor)>(v, v, v);
v = <org.apache.logging.log4j.core.jmx.Server: java.util.concurrent.Executor executor>;
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void registerAppenders(org.apache.logging.log4j.core.LoggerContext,javax.management.MBeanServer,java.util.concurrent.Executor)>(v, v, v);
goto label;
label:
v := @caughtexception;
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void error(java.lang.String,java.lang.Throwable)>("Could not register mbeans", v);
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
public static void unregisterMBeans()
{
org.apache.logging.log4j.status.StatusLogger v;
boolean v;
javax.management.MBeanServer v;
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: boolean isJmxDisabled()>();
if v == 0 goto label;
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void debug(java.lang.String)>("JMX disabled for Log4j. Not unregistering MBeans.");
return;
label:
v = staticinvoke <java.lang.management.ManagementFactory: javax.management.MBeanServer getPlatformMBeanServer()>();
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterMBeans(javax.management.MBeanServer)>(v);
return;
}
public static void unregisterMBeans(javax.management.MBeanServer)
{
javax.management.MBeanServer v;
v := @parameter: javax.management.MBeanServer;
if v == null goto label;
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterStatusLogger(java.lang.String,javax.management.MBeanServer)>("*", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterContextSelector(java.lang.String,javax.management.MBeanServer)>("*", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterContexts(javax.management.MBeanServer)>(v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterLoggerConfigs(java.lang.String,javax.management.MBeanServer)>("*", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAsyncLoggerRingBufferAdmins(java.lang.String,javax.management.MBeanServer)>("*", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAsyncLoggerConfigRingBufferAdmins(java.lang.String,javax.management.MBeanServer)>("*", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAppenders(java.lang.String,javax.management.MBeanServer)>("*", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAsyncAppenders(java.lang.String,javax.management.MBeanServer)>("*", v);
label:
return;
}
private static org.apache.logging.log4j.core.selector.ContextSelector getContextSelector()
{
org.apache.logging.log4j.spi.LoggerContextFactory v;
org.apache.logging.log4j.core.selector.ContextSelector v;
boolean v;
v = staticinvoke <org.apache.logging.log4j.LogManager: org.apache.logging.log4j.spi.LoggerContextFactory getFactory()>();
v = v instanceof org.apache.logging.log4j.core.impl.Log4jContextFactory;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.logging.log4j.core.impl.Log4jContextFactory: org.apache.logging.log4j.core.selector.ContextSelector getSelector()>();
return v;
label:
return null;
}
public static void unregisterLoggerContext(java.lang.String)
{
javax.management.MBeanServer v;
org.apache.logging.log4j.status.StatusLogger v;
java.lang.String v;
boolean v;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: boolean isJmxDisabled()>();
if v == 0 goto label;
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void debug(java.lang.String)>("JMX disabled for Log4j. Not unregistering MBeans.");
return;
label:
v = staticinvoke <java.lang.management.ManagementFactory: javax.management.MBeanServer getPlatformMBeanServer()>();
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterLoggerContext(java.lang.String,javax.management.MBeanServer)>(v, v);
return;
}
public static void unregisterLoggerContext(java.lang.String, javax.management.MBeanServer)
{
java.lang.Object[] v;
javax.management.MBeanServer v;
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v := @parameter: javax.management.MBeanServer;
v = newarray (java.lang.Object)[1];
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: java.lang.String escape(java.lang.String)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("org.apache.logging.log4j2:type=%s", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAllMatching(java.lang.String,javax.management.MBeanServer)>(v, v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterStatusLogger(java.lang.String,javax.management.MBeanServer)>(v, v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterContextSelector(java.lang.String,javax.management.MBeanServer)>(v, v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterLoggerConfigs(java.lang.String,javax.management.MBeanServer)>(v, v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAppenders(java.lang.String,javax.management.MBeanServer)>(v, v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAsyncAppenders(java.lang.String,javax.management.MBeanServer)>(v, v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAsyncLoggerRingBufferAdmins(java.lang.String,javax.management.MBeanServer)>(v, v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAsyncLoggerConfigRingBufferAdmins(java.lang.String,javax.management.MBeanServer)>(v, v);
return;
}
private static void registerStatusLogger(java.lang.String, javax.management.MBeanServer, java.util.concurrent.Executor) throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
{
java.util.concurrent.Executor v;
javax.management.MBeanServer v;
org.apache.logging.log4j.core.jmx.StatusLoggerAdmin v;
java.lang.String v;
javax.management.ObjectName v;
v := @parameter: java.lang.String;
v := @parameter: javax.management.MBeanServer;
v := @parameter: java.util.concurrent.Executor;
v = new org.apache.logging.log4j.core.jmx.StatusLoggerAdmin;
specialinvoke v.<org.apache.logging.log4j.core.jmx.StatusLoggerAdmin: void <init>(java.lang.String,java.util.concurrent.Executor)>(v, v);
v = virtualinvoke v.<org.apache.logging.log4j.core.jmx.StatusLoggerAdmin: javax.management.ObjectName getObjectName()>();
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void register(javax.management.MBeanServer,java.lang.Object,javax.management.ObjectName)>(v, v, v);
return;
}
private static void registerContextSelector(java.lang.String, org.apache.logging.log4j.core.selector.ContextSelector, javax.management.MBeanServer, java.util.concurrent.Executor) throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
{
org.apache.logging.log4j.core.jmx.ContextSelectorAdmin v;
java.util.concurrent.Executor v;
org.apache.logging.log4j.core.selector.ContextSelector v;
javax.management.MBeanServer v;
java.lang.String v;
javax.management.ObjectName v;
v := @parameter: java.lang.String;
v := @parameter: org.apache.logging.log4j.core.selector.ContextSelector;
v := @parameter: javax.management.MBeanServer;
v := @parameter: java.util.concurrent.Executor;
v = new org.apache.logging.log4j.core.jmx.ContextSelectorAdmin;
specialinvoke v.<org.apache.logging.log4j.core.jmx.ContextSelectorAdmin: void <init>(java.lang.String,org.apache.logging.log4j.core.selector.ContextSelector)>(v, v);
v = virtualinvoke v.<org.apache.logging.log4j.core.jmx.ContextSelectorAdmin: javax.management.ObjectName getObjectName()>();
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void register(javax.management.MBeanServer,java.lang.Object,javax.management.ObjectName)>(v, v, v);
return;
}
private static void unregisterStatusLogger(java.lang.String, javax.management.MBeanServer)
{
java.lang.Object[] v;
javax.management.MBeanServer v;
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v := @parameter: javax.management.MBeanServer;
v = newarray (java.lang.Object)[1];
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: java.lang.String escape(java.lang.String)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("org.apache.logging.log4j2:type=%s,component=StatusLogger", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAllMatching(java.lang.String,javax.management.MBeanServer)>(v, v);
return;
}
private static void unregisterContextSelector(java.lang.String, javax.management.MBeanServer)
{
java.lang.Object[] v;
javax.management.MBeanServer v;
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v := @parameter: javax.management.MBeanServer;
v = newarray (java.lang.Object)[1];
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: java.lang.String escape(java.lang.String)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("org.apache.logging.log4j2:type=%s,component=ContextSelector", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAllMatching(java.lang.String,javax.management.MBeanServer)>(v, v);
return;
}
private static void unregisterLoggerConfigs(java.lang.String, javax.management.MBeanServer)
{
java.lang.Object[] v;
javax.management.MBeanServer v;
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v := @parameter: javax.management.MBeanServer;
v = newarray (java.lang.Object)[2];
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: java.lang.String escape(java.lang.String)>(v);
v[0] = v;
v[1] = "*";
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("org.apache.logging.log4j2:type=%s,component=Loggers,name=%s", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAllMatching(java.lang.String,javax.management.MBeanServer)>(v, v);
return;
}
private static void unregisterContexts(javax.management.MBeanServer)
{
java.lang.Object[] v;
java.lang.String v;
javax.management.MBeanServer v;
v := @parameter: javax.management.MBeanServer;
v = newarray (java.lang.Object)[1];
v[0] = "*";
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("org.apache.logging.log4j2:type=%s", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAllMatching(java.lang.String,javax.management.MBeanServer)>(v, v);
return;
}
private static void unregisterAppenders(java.lang.String, javax.management.MBeanServer)
{
java.lang.Object[] v;
javax.management.MBeanServer v;
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v := @parameter: javax.management.MBeanServer;
v = newarray (java.lang.Object)[2];
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: java.lang.String escape(java.lang.String)>(v);
v[0] = v;
v[1] = "*";
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("org.apache.logging.log4j2:type=%s,component=Appenders,name=%s", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAllMatching(java.lang.String,javax.management.MBeanServer)>(v, v);
return;
}
private static void unregisterAsyncAppenders(java.lang.String, javax.management.MBeanServer)
{
java.lang.Object[] v;
javax.management.MBeanServer v;
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v := @parameter: javax.management.MBeanServer;
v = newarray (java.lang.Object)[2];
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: java.lang.String escape(java.lang.String)>(v);
v[0] = v;
v[1] = "*";
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("org.apache.logging.log4j2:type=%s,component=AsyncAppenders,name=%s", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAllMatching(java.lang.String,javax.management.MBeanServer)>(v, v);
return;
}
private static void unregisterAsyncLoggerRingBufferAdmins(java.lang.String, javax.management.MBeanServer)
{
java.lang.Object[] v;
javax.management.MBeanServer v;
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v := @parameter: javax.management.MBeanServer;
v = newarray (java.lang.Object)[1];
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: java.lang.String escape(java.lang.String)>(v);
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("org.apache.logging.log4j2:type=%s,component=AsyncLoggerRingBuffer", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAllMatching(java.lang.String,javax.management.MBeanServer)>(v, v);
return;
}
private static void unregisterAsyncLoggerConfigRingBufferAdmins(java.lang.String, javax.management.MBeanServer)
{
java.lang.Object[] v;
javax.management.MBeanServer v;
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v := @parameter: javax.management.MBeanServer;
v = newarray (java.lang.Object)[2];
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: java.lang.String escape(java.lang.String)>(v);
v[0] = v;
v[1] = "*";
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("org.apache.logging.log4j2:type=%s,component=Loggers,name=%s,subtype=RingBuffer", v);
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void unregisterAllMatching(java.lang.String,javax.management.MBeanServer)>(v, v);
return;
}
private static void unregisterAllMatching(java.lang.String, javax.management.MBeanServer)
{
java.lang.Integer v;
javax.management.MBeanServer v;
int v;
java.lang.String v, v, v;
javax.management.InstanceNotFoundException v;
boolean v, v;
java.util.Iterator v;
java.util.Set v;
javax.management.ObjectName v;
java.lang.Exception v;
org.apache.logging.log4j.status.StatusLogger v, v, v, v;
java.lang.Object v;
v := @parameter: java.lang.String;
v := @parameter: javax.management.MBeanServer;
label:
v = new javax.management.ObjectName;
specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
v = interfaceinvoke v.<javax.management.MBeanServer: java.util.Set queryNames(javax.management.ObjectName,javax.management.QueryExp)>(v, null);
if v == null goto label;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
label:
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void trace(java.lang.String,java.lang.Object)>("Unregistering but no MBeans found matching \'{}\'", v);
goto label;
label:
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
v = interfaceinvoke v.<java.util.Set: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("Unregistering {} MBeans: {}", v, v);
label:
if v == null goto label;
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()>();
interfaceinvoke v.<javax.management.MBeanServer: void unregisterMBean(javax.management.ObjectName)>(v);
goto label;
label:
v := @caughtexception;
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,javax.management.InstanceNotFoundException)>(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[])>("Could not unregister MBeans for \u. Ignoring \u0001");
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void debug(java.lang.String)>(v);
goto label;
label:
v := @caughtexception;
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Could not unregister MBeans for \u0001");
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void error(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
catch javax.management.InstanceNotFoundException from label to label with label;
catch java.lang.Exception from label to label with label;
}
private static void registerLoggerConfigs(org.apache.logging.log4j.core.LoggerContext, javax.management.MBeanServer, java.util.concurrent.Executor) throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
{
org.apache.logging.log4j.core.config.LoggerConfig v;
org.apache.logging.log4j.core.LoggerContext v;
org.apache.logging.log4j.core.config.Configuration v;
java.util.Map v;
javax.management.MBeanServer v;
java.lang.String v;
org.apache.logging.log4j.core.jmx.RingBufferAdmin v;
boolean v, v;
java.util.Iterator v;
java.util.concurrent.Executor v;
java.util.Set v;
javax.management.ObjectName v, v;
org.apache.logging.log4j.core.jmx.LoggerConfigAdmin v;
java.lang.Object v, v;
v := @parameter: org.apache.logging.log4j.core.LoggerContext;
v := @parameter: javax.management.MBeanServer;
v := @parameter: java.util.concurrent.Executor;
v = virtualinvoke v.<org.apache.logging.log4j.core.LoggerContext: org.apache.logging.log4j.core.config.Configuration getConfiguration()>();
v = interfaceinvoke v.<org.apache.logging.log4j.core.config.Configuration: java.util.Map getLoggers()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
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.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = new org.apache.logging.log4j.core.jmx.LoggerConfigAdmin;
specialinvoke v.<org.apache.logging.log4j.core.jmx.LoggerConfigAdmin: void <init>(org.apache.logging.log4j.core.LoggerContext,org.apache.logging.log4j.core.config.LoggerConfig)>(v, v);
v = virtualinvoke v.<org.apache.logging.log4j.core.jmx.LoggerConfigAdmin: javax.management.ObjectName getObjectName()>();
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void register(javax.management.MBeanServer,java.lang.Object,javax.management.ObjectName)>(v, v, v);
v = v instanceof org.apache.logging.log4j.core.async.AsyncLoggerConfig;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.logging.log4j.core.LoggerContext: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.logging.log4j.core.async.AsyncLoggerConfig: org.apache.logging.log4j.core.jmx.RingBufferAdmin createRingBufferAdmin(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.logging.log4j.core.jmx.RingBufferAdmin: javax.management.ObjectName getObjectName()>();
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void register(javax.management.MBeanServer,java.lang.Object,javax.management.ObjectName)>(v, v, v);
goto label;
label:
return;
}
private static void registerAppenders(org.apache.logging.log4j.core.LoggerContext, javax.management.MBeanServer, java.util.concurrent.Executor) throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
{
org.apache.logging.log4j.core.LoggerContext v;
org.apache.logging.log4j.core.Appender v;
org.apache.logging.log4j.core.config.Configuration v;
java.util.Map v;
javax.management.MBeanServer v;
java.lang.String v, v;
boolean v, v;
java.util.Iterator v;
java.util.concurrent.Executor v;
java.util.Set v;
javax.management.ObjectName v, v;
org.apache.logging.log4j.core.jmx.AsyncAppenderAdmin v;
org.apache.logging.log4j.core.jmx.AppenderAdmin v;
java.lang.Object v, v;
v := @parameter: org.apache.logging.log4j.core.LoggerContext;
v := @parameter: javax.management.MBeanServer;
v := @parameter: java.util.concurrent.Executor;
v = virtualinvoke v.<org.apache.logging.log4j.core.LoggerContext: org.apache.logging.log4j.core.config.Configuration getConfiguration()>();
v = interfaceinvoke v.<org.apache.logging.log4j.core.config.Configuration: java.util.Map getAppenders()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
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.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = v instanceof org.apache.logging.log4j.core.appender.AsyncAppender;
if v == 0 goto label;
v = new org.apache.logging.log4j.core.jmx.AsyncAppenderAdmin;
v = virtualinvoke v.<org.apache.logging.log4j.core.LoggerContext: java.lang.String getName()>();
specialinvoke v.<org.apache.logging.log4j.core.jmx.AsyncAppenderAdmin: void <init>(java.lang.String,org.apache.logging.log4j.core.appender.AsyncAppender)>(v, v);
v = virtualinvoke v.<org.apache.logging.log4j.core.jmx.AsyncAppenderAdmin: javax.management.ObjectName getObjectName()>();
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void register(javax.management.MBeanServer,java.lang.Object,javax.management.ObjectName)>(v, v, v);
goto label;
label:
v = new org.apache.logging.log4j.core.jmx.AppenderAdmin;
v = virtualinvoke v.<org.apache.logging.log4j.core.LoggerContext: java.lang.String getName()>();
specialinvoke v.<org.apache.logging.log4j.core.jmx.AppenderAdmin: void <init>(java.lang.String,org.apache.logging.log4j.core.Appender)>(v, v);
v = virtualinvoke v.<org.apache.logging.log4j.core.jmx.AppenderAdmin: javax.management.ObjectName getObjectName()>();
staticinvoke <org.apache.logging.log4j.core.jmx.Server: void register(javax.management.MBeanServer,java.lang.Object,javax.management.ObjectName)>(v, v, v);
goto label;
label:
return;
}
private static void register(javax.management.MBeanServer, java.lang.Object, javax.management.ObjectName) throws javax.management.InstanceAlreadyExistsException, javax.management.MBeanRegistrationException, javax.management.NotCompliantMBeanException
{
javax.management.JMException v;
javax.management.MBeanServer v;
org.apache.logging.log4j.status.StatusLogger v, v;
java.lang.Object v;
javax.management.ObjectName v;
boolean v;
v := @parameter: javax.management.MBeanServer;
v := @parameter: java.lang.Object;
v := @parameter: javax.management.ObjectName;
v = interfaceinvoke v.<javax.management.MBeanServer: boolean isRegistered(javax.management.ObjectName)>(v);
if v == 0 goto label;
label:
interfaceinvoke v.<javax.management.MBeanServer: void unregisterMBean(javax.management.ObjectName)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void trace(java.lang.String,java.lang.Object)>("Failed to unregister MBean {}", v);
label:
v = <org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER>;
virtualinvoke v.<org.apache.logging.log4j.status.StatusLogger: void debug(java.lang.String,java.lang.Object)>("Registering MBean {}", v);
interfaceinvoke v.<javax.management.MBeanServer: javax.management.ObjectInstance registerMBean(java.lang.Object,javax.management.ObjectName)>(v, v);
return;
catch javax.management.MBeanRegistrationException from label to label with label;
catch javax.management.InstanceNotFoundException from label to label with label;
}
static void <clinit>()
{
org.apache.logging.log4j.status.StatusLogger v;
java.util.concurrent.ExecutorService v;
boolean v;
v = staticinvoke <org.apache.logging.log4j.status.StatusLogger: org.apache.logging.log4j.status.StatusLogger getLogger()>();
<org.apache.logging.log4j.core.jmx.Server: org.apache.logging.log4j.status.StatusLogger LOGGER> = v;
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: boolean isJmxDisabled()>();
if v == 0 goto label;
v = null;
goto label;
label:
v = staticinvoke <org.apache.logging.log4j.core.jmx.Server: java.util.concurrent.ExecutorService createExecutor()>();
label:
<org.apache.logging.log4j.core.jmx.Server: java.util.concurrent.Executor executor> = v;
return;
}
}