public class org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler extends java.lang.Object implements org.apache.shiro.session.mgt.SessionValidationScheduler, java.lang.Runnable
{
private static final org.slf4j.Logger log;
org.apache.shiro.session.mgt.ValidatingSessionManager sessionManager;
private java.util.concurrent.ScheduledExecutorService service;
private long interval;
private boolean enabled;
private java.lang.String threadNamePrefix;
public void <init>()
{
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: long interval> = 3600000L;
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: boolean enabled> = 0;
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: java.lang.String threadNamePrefix> = "SessionValidationThread-";
return;
}
public void <init>(org.apache.shiro.session.mgt.ValidatingSessionManager)
{
org.apache.shiro.session.mgt.ValidatingSessionManager v;
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
v := @parameter: org.apache.shiro.session.mgt.ValidatingSessionManager;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: long interval> = 3600000L;
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: boolean enabled> = 0;
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: java.lang.String threadNamePrefix> = "SessionValidationThread-";
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: org.apache.shiro.session.mgt.ValidatingSessionManager sessionManager> = v;
return;
}
public org.apache.shiro.session.mgt.ValidatingSessionManager getSessionManager()
{
org.apache.shiro.session.mgt.ValidatingSessionManager v;
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
v = v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: org.apache.shiro.session.mgt.ValidatingSessionManager sessionManager>;
return v;
}
public void setSessionManager(org.apache.shiro.session.mgt.ValidatingSessionManager)
{
org.apache.shiro.session.mgt.ValidatingSessionManager v;
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
v := @parameter: org.apache.shiro.session.mgt.ValidatingSessionManager;
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: org.apache.shiro.session.mgt.ValidatingSessionManager sessionManager> = v;
return;
}
public long getInterval()
{
long v;
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
v = v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: long interval>;
return v;
}
public void setInterval(long)
{
long v;
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
v := @parameter: long;
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: long interval> = v;
return;
}
public boolean isEnabled()
{
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
boolean v;
v := @this: org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
v = v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: boolean enabled>;
return v;
}
public void setThreadNamePrefix(java.lang.String)
{
java.lang.String v;
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
v := @parameter: java.lang.String;
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: java.lang.String threadNamePrefix> = v;
return;
}
public java.lang.String getThreadNamePrefix()
{
java.lang.String v;
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
v = v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: java.lang.String threadNamePrefix>;
return v;
}
public void enableSessionValidation()
{
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler$1 v;
long v, v, v;
java.util.concurrent.TimeUnit v;
byte v;
java.util.concurrent.ScheduledExecutorService v, v;
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
v = v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: long interval>;
v = v cmp 0L;
if v <= 0 goto label;
v = new org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler$1;
specialinvoke v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler$1: void <init>(org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler)>(v);
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ScheduledExecutorService newSingleThreadScheduledExecutor(java.util.concurrent.ThreadFactory)>(v);
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: java.util.concurrent.ScheduledExecutorService service> = v;
v = v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: java.util.concurrent.ScheduledExecutorService service>;
v = v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: long interval>;
v = v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: long interval>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable,long,long,java.util.concurrent.TimeUnit)>(v, v, v, v);
label:
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: boolean enabled> = 1;
return;
}
public void run()
{
long v, v, v;
java.lang.Thread$UncaughtExceptionHandler v;
java.lang.Thread v;
java.lang.String v;
boolean v, v;
org.apache.shiro.session.mgt.ValidatingSessionManager v;
org.slf4j.Logger v, v, v, v, v;
java.lang.RuntimeException v;
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
v = <org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Executing session validation...");
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = staticinvoke <org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler$lambda_run_0__1: java.lang.Thread$UncaughtExceptionHandler bootstrap$(org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler)>(v);
virtualinvoke v.<java.lang.Thread: void setUncaughtExceptionHandler(java.lang.Thread$UncaughtExceptionHandler)>(v);
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
label:
v = v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: org.apache.shiro.session.mgt.ValidatingSessionManager sessionManager>;
interfaceinvoke v.<org.apache.shiro.session.mgt.ValidatingSessionManager: void validateSessions()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Error while validating the session", v);
label:
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = <org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: org.slf4j.Logger log>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: org.slf4j.Logger log>;
v = v - v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(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[])>("Session validation completed successfully in \u milliseconds.");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
return;
catch java.lang.RuntimeException from label to label with label;
}
public void disableSessionValidation()
{
java.util.concurrent.ScheduledExecutorService v, v;
org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler v;
v := @this: org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler;
v = v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: java.util.concurrent.ScheduledExecutorService service>;
if v == null goto label;
v = v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: java.util.concurrent.ScheduledExecutorService service>;
interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: java.util.List shutdownNow()>();
label:
v.<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: boolean enabled> = 0;
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/shiro/session/mgt/ExecutorServiceSessionValidationScheduler;");
<org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler: org.slf4j.Logger log> = v;
return;
}
}