public final class org.jboss.logmanager.CallerClassLoaderLogContextSelector extends java.lang.Object implements org.jboss.logmanager.LogContextSelector
{
private static final java.security.Permission REGISTER_LOG_CONTEXT_PERMISSION;
private static final java.security.Permission UNREGISTER_LOG_CONTEXT_PERMISSION;
private static final java.security.Permission LOG_API_PERMISSION;
private final org.jboss.logmanager.LogContextSelector defaultSelector;
private final java.util.concurrent.ConcurrentMap contextMap;
private final java.util.Set logApiClassLoaders;
private final boolean checkParentClassLoaders;
private final java.security.PrivilegedAction logContextAction;
public void <init>(org.jboss.logmanager.LogContextSelector)
{
org.jboss.logmanager.CallerClassLoaderLogContextSelector v;
org.jboss.logmanager.LogContextSelector v;
v := @this: org.jboss.logmanager.CallerClassLoaderLogContextSelector;
v := @parameter: org.jboss.logmanager.LogContextSelector;
specialinvoke v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: void <init>(org.jboss.logmanager.LogContextSelector,boolean)>(v, 0);
return;
}
public void <init>(org.jboss.logmanager.LogContextSelector, boolean)
{
org.jboss.logmanager.CallerClassLoaderLogContextSelector v;
org.jboss.logmanager.CallerClassLoaderLogContextSelector$1 v;
java.util.Set v;
org.jboss.logmanager.CopyOnWriteMap v, v;
org.jboss.logmanager.LogContextSelector v, v;
boolean v;
v := @this: org.jboss.logmanager.CallerClassLoaderLogContextSelector;
v := @parameter: org.jboss.logmanager.LogContextSelector;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new org.jboss.logmanager.CopyOnWriteMap;
specialinvoke v.<org.jboss.logmanager.CopyOnWriteMap: void <init>()>();
v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.util.concurrent.ConcurrentMap contextMap> = v;
v = new org.jboss.logmanager.CopyOnWriteMap;
specialinvoke v.<org.jboss.logmanager.CopyOnWriteMap: void <init>()>();
v = staticinvoke <java.util.Collections: java.util.Set newSetFromMap(java.util.Map)>(v);
v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.util.Set logApiClassLoaders> = v;
v = new org.jboss.logmanager.CallerClassLoaderLogContextSelector$1;
specialinvoke v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector$1: void <init>(org.jboss.logmanager.CallerClassLoaderLogContextSelector)>(v);
v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.security.PrivilegedAction logContextAction> = v;
if v != null goto label;
v = <org.jboss.logmanager.LogContext: org.jboss.logmanager.LogContextSelector DEFAULT_LOG_CONTEXT_SELECTOR>;
goto label;
label:
v = v;
label:
v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: org.jboss.logmanager.LogContextSelector defaultSelector> = v;
v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: boolean checkParentClassLoaders> = v;
return;
}
public void <init>()
{
org.jboss.logmanager.CallerClassLoaderLogContextSelector v;
v := @this: org.jboss.logmanager.CallerClassLoaderLogContextSelector;
specialinvoke v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: void <init>(boolean)>(0);
return;
}
public void <init>(boolean)
{
org.jboss.logmanager.CallerClassLoaderLogContextSelector v;
boolean v;
org.jboss.logmanager.LogContextSelector v;
v := @this: org.jboss.logmanager.CallerClassLoaderLogContextSelector;
v := @parameter: boolean;
v = <org.jboss.logmanager.LogContext: org.jboss.logmanager.LogContextSelector DEFAULT_LOG_CONTEXT_SELECTOR>;
specialinvoke v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: void <init>(org.jboss.logmanager.LogContextSelector,boolean)>(v, v);
return;
}
public org.jboss.logmanager.LogContext getLogContext()
{
org.jboss.logmanager.CallerClassLoaderLogContextSelector v;
java.lang.Object v;
java.security.PrivilegedAction v, v;
java.lang.SecurityManager v;
v := @this: org.jboss.logmanager.CallerClassLoaderLogContextSelector;
v = staticinvoke <java.lang.System: java.lang.SecurityManager getSecurityManager()>();
if v != null goto label;
v = v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.security.PrivilegedAction logContextAction>;
v = interfaceinvoke v.<java.security.PrivilegedAction: java.lang.Object run()>();
goto label;
label:
v = v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.security.PrivilegedAction logContextAction>;
staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
label:
return v;
}
public boolean addLogApiClassLoader(java.lang.ClassLoader)
{
org.jboss.logmanager.CallerClassLoaderLogContextSelector v;
java.security.Permission v;
java.util.Set v;
java.lang.ClassLoader v;
java.lang.SecurityManager v;
boolean v;
v := @this: org.jboss.logmanager.CallerClassLoaderLogContextSelector;
v := @parameter: java.lang.ClassLoader;
v = staticinvoke <java.lang.System: java.lang.SecurityManager getSecurityManager()>();
if v == null goto label;
v = <org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.security.Permission LOG_API_PERMISSION>;
virtualinvoke v.<java.lang.SecurityManager: void checkPermission(java.security.Permission)>(v);
label:
v = v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.util.Set logApiClassLoaders>;
v = interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
return v;
}
public boolean removeLogApiClassLoader(java.lang.ClassLoader)
{
org.jboss.logmanager.CallerClassLoaderLogContextSelector v;
java.security.Permission v;
java.util.Set v;
java.lang.ClassLoader v;
java.lang.SecurityManager v;
boolean v;
v := @this: org.jboss.logmanager.CallerClassLoaderLogContextSelector;
v := @parameter: java.lang.ClassLoader;
v = staticinvoke <java.lang.System: java.lang.SecurityManager getSecurityManager()>();
if v == null goto label;
v = <org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.security.Permission LOG_API_PERMISSION>;
virtualinvoke v.<java.lang.SecurityManager: void checkPermission(java.security.Permission)>(v);
label:
v = v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.util.Set logApiClassLoaders>;
v = interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
return v;
}
public void registerLogContext(java.lang.ClassLoader, org.jboss.logmanager.LogContext) throws java.lang.IllegalArgumentException
{
org.jboss.logmanager.CallerClassLoaderLogContextSelector v;
org.jboss.logmanager.LogContext v;
java.lang.IllegalArgumentException v;
java.lang.SecurityManager v;
java.util.concurrent.ConcurrentMap v;
java.security.Permission v;
java.lang.Object v;
java.lang.ClassLoader v;
java.lang.String v;
v := @this: org.jboss.logmanager.CallerClassLoaderLogContextSelector;
v := @parameter: java.lang.ClassLoader;
v := @parameter: org.jboss.logmanager.LogContext;
v = staticinvoke <java.lang.System: java.lang.SecurityManager getSecurityManager()>();
if v == null goto label;
v = <org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.security.Permission REGISTER_LOG_CONTEXT_PERMISSION>;
virtualinvoke v.<java.lang.SecurityManager: void checkPermission(java.security.Permission)>(v);
label:
v = v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.util.concurrent.ConcurrentMap contextMap>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
if v == null goto label;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.ClassLoader)>(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[])>("ClassLoader instance is already registered to a log context (\u)");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
public boolean unregisterLogContext(java.lang.ClassLoader, org.jboss.logmanager.LogContext)
{
org.jboss.logmanager.CallerClassLoaderLogContextSelector v;
org.jboss.logmanager.LogContext v;
java.security.Permission v;
java.lang.ClassLoader v;
java.lang.SecurityManager v;
boolean v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.jboss.logmanager.CallerClassLoaderLogContextSelector;
v := @parameter: java.lang.ClassLoader;
v := @parameter: org.jboss.logmanager.LogContext;
v = staticinvoke <java.lang.System: java.lang.SecurityManager getSecurityManager()>();
if v == null goto label;
v = <org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.security.Permission UNREGISTER_LOG_CONTEXT_PERMISSION>;
virtualinvoke v.<java.lang.SecurityManager: void checkPermission(java.security.Permission)>(v);
label:
v = v.<org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.util.concurrent.ConcurrentMap contextMap>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: boolean remove(java.lang.Object,java.lang.Object)>(v, v);
return v;
}
static void <clinit>()
{
java.lang.RuntimePermission v, v, v;
v = new java.lang.RuntimePermission;
specialinvoke v.<java.lang.RuntimePermission: void <init>(java.lang.String,java.lang.String)>("registerLogContext", null);
<org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.security.Permission REGISTER_LOG_CONTEXT_PERMISSION> = v;
v = new java.lang.RuntimePermission;
specialinvoke v.<java.lang.RuntimePermission: void <init>(java.lang.String,java.lang.String)>("unregisterLogContext", null);
<org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.security.Permission UNREGISTER_LOG_CONTEXT_PERMISSION> = v;
v = new java.lang.RuntimePermission;
specialinvoke v.<java.lang.RuntimePermission: void <init>(java.lang.String,java.lang.String)>("logApiPermission", null);
<org.jboss.logmanager.CallerClassLoaderLogContextSelector: java.security.Permission LOG_API_PERMISSION> = v;
return;
}
}