public class psiprobe.model.stats.StatsCollection extends java.lang.Object implements org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean, org.springframework.context.ApplicationContextAware
{
private static final org.slf4j.Logger logger;
private java.util.Map statsData;
private com.thoughtworks.xstream.XStream xstream;
private java.lang.String swapFileName;
private java.lang.String storagePath;
private java.io.File contextTempDir;
private int maxFiles;
private final psiprobe.tools.UpdateCommitLock lock;
public void <init>()
{
psiprobe.model.stats.StatsCollection v;
java.util.TreeMap v;
psiprobe.tools.UpdateCommitLock v;
v := @this: psiprobe.model.stats.StatsCollection;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.TreeMap;
specialinvoke v.<java.util.TreeMap: void <init>()>();
v.<psiprobe.model.stats.StatsCollection: java.util.Map statsData> = v;
v.<psiprobe.model.stats.StatsCollection: int maxFiles> = 2;
v = new psiprobe.tools.UpdateCommitLock;
specialinvoke v.<psiprobe.tools.UpdateCommitLock: void <init>()>();
v.<psiprobe.model.stats.StatsCollection: psiprobe.tools.UpdateCommitLock lock> = v;
return;
}
public java.lang.String getSwapFileName()
{
psiprobe.model.stats.StatsCollection v;
java.lang.String v;
v := @this: psiprobe.model.stats.StatsCollection;
v = v.<psiprobe.model.stats.StatsCollection: java.lang.String swapFileName>;
return v;
}
public void setSwapFileName(java.lang.String)
{
psiprobe.model.stats.StatsCollection v;
java.lang.String v;
v := @this: psiprobe.model.stats.StatsCollection;
v := @parameter: java.lang.String;
v.<psiprobe.model.stats.StatsCollection: java.lang.String swapFileName> = v;
return;
}
public java.lang.String getStoragePath()
{
psiprobe.model.stats.StatsCollection v;
java.lang.String v;
v := @this: psiprobe.model.stats.StatsCollection;
v = v.<psiprobe.model.stats.StatsCollection: java.lang.String storagePath>;
return v;
}
public void setStoragePath(java.lang.String)
{
psiprobe.model.stats.StatsCollection v;
java.lang.String v;
v := @this: psiprobe.model.stats.StatsCollection;
v := @parameter: java.lang.String;
v.<psiprobe.model.stats.StatsCollection: java.lang.String storagePath> = v;
return;
}
public synchronized boolean isCollected(java.lang.String)
{
java.util.Map v;
psiprobe.model.stats.StatsCollection v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: psiprobe.model.stats.StatsCollection;
v := @parameter: java.lang.String;
v = v.<psiprobe.model.stats.StatsCollection: java.util.Map statsData>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int getMaxFiles()
{
int v;
psiprobe.model.stats.StatsCollection v;
v := @this: psiprobe.model.stats.StatsCollection;
v = v.<psiprobe.model.stats.StatsCollection: int maxFiles>;
return v;
}
public void setMaxFiles(int)
{
int v, v;
psiprobe.model.stats.StatsCollection v;
v := @this: psiprobe.model.stats.StatsCollection;
v := @parameter: int;
if v <= 0 goto label;
v = v;
goto label;
label:
v = 2;
label:
v.<psiprobe.model.stats.StatsCollection: int maxFiles> = v;
return;
}
public synchronized java.util.List newStats(java.lang.String, int)
{
java.util.List v;
java.util.Map v;
int v;
psiprobe.model.stats.StatsCollection v;
java.lang.String v;
java.util.ArrayList v;
v := @this: psiprobe.model.stats.StatsCollection;
v := @parameter: java.lang.String;
v := @parameter: int;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v = staticinvoke <java.util.Collections: java.util.List synchronizedList(java.util.List)>(v);
v = v.<psiprobe.model.stats.StatsCollection: java.util.Map statsData>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return v;
}
public synchronized void resetStats(java.lang.String)
{
psiprobe.model.stats.StatsCollection v;
java.util.List v;
java.lang.String v;
v := @this: psiprobe.model.stats.StatsCollection;
v := @parameter: java.lang.String;
v = virtualinvoke v.<psiprobe.model.stats.StatsCollection: java.util.List getStats(java.lang.String)>(v);
if v == null goto label;
interfaceinvoke v.<java.util.List: void clear()>();
label:
return;
}
public synchronized java.util.List getStats(java.lang.String)
{
java.util.Map v;
psiprobe.model.stats.StatsCollection v;
java.lang.Object v;
java.lang.String v;
v := @this: psiprobe.model.stats.StatsCollection;
v := @parameter: java.lang.String;
v = v.<psiprobe.model.stats.StatsCollection: java.util.Map statsData>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
return v;
}
public long getLastValueForStat(java.lang.String)
{
long v;
java.util.List v;
int v, v;
psiprobe.model.stats.StatsCollection v;
java.lang.Object v;
java.lang.String v;
java.lang.Number v, v;
boolean v;
v := @this: psiprobe.model.stats.StatsCollection;
v := @parameter: java.lang.String;
v = 0L;
v = virtualinvoke v.<psiprobe.model.stats.StatsCollection: java.util.List getStats(java.lang.String)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - 1;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
if v == null goto label;
v = virtualinvoke v.<org.jfree.data.xy.XYDataItem: java.lang.Number getY()>();
if v == null goto label;
v = virtualinvoke v.<org.jfree.data.xy.XYDataItem: java.lang.Number getY()>();
v = virtualinvoke v.<java.lang.Number: long longValue()>();
label:
return v;
}
public synchronized java.util.Map getStatsByPrefix(java.lang.String)
{
java.util.Iterator v;
java.util.Set v;
java.util.HashMap v;
java.util.Map v;
psiprobe.model.stats.StatsCollection v;
java.lang.Object v, v, v, v;
java.lang.String v;
boolean v, v;
v := @this: psiprobe.model.stats.StatsCollection;
v := @parameter: java.lang.String;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = v.<psiprobe.model.stats.StatsCollection: java.util.Map statsData>;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
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$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return v;
}
private java.io.File makeFile()
{
psiprobe.model.stats.StatsCollection v;
java.lang.String v, v, v, v;
java.io.File v, v;
v := @this: psiprobe.model.stats.StatsCollection;
v = v.<psiprobe.model.stats.StatsCollection: java.lang.String storagePath>;
if v != null goto label;
v = new java.io.File;
v = v.<psiprobe.model.stats.StatsCollection: java.io.File contextTempDir>;
v = v.<psiprobe.model.stats.StatsCollection: java.lang.String swapFileName>;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
goto label;
label:
v = new java.io.File;
v = v.<psiprobe.model.stats.StatsCollection: java.lang.String storagePath>;
v = v.<psiprobe.model.stats.StatsCollection: java.lang.String swapFileName>;
specialinvoke v.<java.io.File: void <init>(java.lang.String,java.lang.String)>(v, v);
label:
return v;
}
private void shiftFiles(int)
{
psiprobe.model.stats.StatsCollection v;
java.nio.file.Path v, v, v;
boolean v, v, v;
java.lang.String[] v, v;
int v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v;
java.nio.file.LinkOption[] v, v;
java.io.IOException v;
java.io.File v, v, v, v, v, v, v, v;
v := @this: psiprobe.model.stats.StatsCollection;
v := @parameter: int;
v = v.<psiprobe.model.stats.StatsCollection: int maxFiles>;
v = v - 1;
if v < v goto label;
label:
v = specialinvoke v.<psiprobe.model.stats.StatsCollection: java.io.File makeFile()>();
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("\u.\u0001");
v = newarray (java.lang.String)[0];
v = staticinvoke <java.nio.file.Paths: java.nio.file.Path get(java.lang.String,java.lang.String[])>(v, v);
v = newarray (java.nio.file.LinkOption)[0];
v = staticinvoke <java.nio.file.Files: boolean exists(java.nio.file.Path,java.nio.file.LinkOption[])>(v, v);
if v == 0 goto label;
v = specialinvoke v.<psiprobe.model.stats.StatsCollection: java.io.File makeFile()>();
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("\u.\u0001");
v = newarray (java.lang.String)[0];
v = staticinvoke <java.nio.file.Paths: java.nio.file.Path get(java.lang.String,java.lang.String[])>(v, v);
staticinvoke <java.nio.file.Files: void delete(java.nio.file.Path)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger>;
v = new java.io.File;
v = specialinvoke v.<psiprobe.model.stats.StatsCollection: java.io.File makeFile()>();
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("\u.\u0001");
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Could not delete file {}", v);
goto label;
label:
v = v + 1;
specialinvoke v.<psiprobe.model.stats.StatsCollection: void shiftFiles(int)>(v);
if v != 0 goto label;
v = specialinvoke v.<psiprobe.model.stats.StatsCollection: java.io.File makeFile()>();
goto label;
label:
v = new java.io.File;
v = specialinvoke v.<psiprobe.model.stats.StatsCollection: java.io.File makeFile()>();
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("\u.\u0001");
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
label:
v = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
v = newarray (java.nio.file.LinkOption)[0];
v = staticinvoke <java.nio.file.Files: boolean exists(java.nio.file.Path,java.nio.file.LinkOption[])>(v, v);
if v == 0 goto label;
v = new java.io.File;
v = specialinvoke v.<psiprobe.model.stats.StatsCollection: java.io.File makeFile()>();
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = v + 1;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("\u.\u0001");
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: boolean renameTo(java.io.File)>(v);
if v != 0 goto label;
v = <psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger>;
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Could not rename file {} to {}", v, v);
label:
return;
catch java.io.IOException from label to label with label;
}
public synchronized void serialize() throws java.lang.InterruptedException
{
java.lang.Throwable v, v;
com.thoughtworks.xstream.XStream v;
long v, v, v, v, v, v, v;
java.lang.Long v, v, v;
java.nio.file.OpenOption[] v;
java.util.Map v;
psiprobe.model.stats.StatsCollection v;
java.lang.String v;
java.nio.file.Path v;
java.io.OutputStream v;
org.slf4j.Logger v, v, v, v;
psiprobe.tools.UpdateCommitLock v, v, v, v;
java.io.File v, v;
java.lang.Exception v;
v := @this: psiprobe.model.stats.StatsCollection;
v = v.<psiprobe.model.stats.StatsCollection: psiprobe.tools.UpdateCommitLock lock>;
virtualinvoke v.<psiprobe.tools.UpdateCommitLock: void lockForCommit()>();
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
label:
specialinvoke v.<psiprobe.model.stats.StatsCollection: void shiftFiles(int)>(0);
v = specialinvoke v.<psiprobe.model.stats.StatsCollection: java.io.File makeFile()>();
v = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
v = newarray (java.nio.file.OpenOption)[0];
v = staticinvoke <java.nio.file.Files: java.io.OutputStream newOutputStream(java.nio.file.Path,java.nio.file.OpenOption[])>(v, v);
label:
v = v.<psiprobe.model.stats.StatsCollection: com.thoughtworks.xstream.XStream xstream>;
v = v.<psiprobe.model.stats.StatsCollection: java.util.Map statsData>;
virtualinvoke v.<com.thoughtworks.xstream.XStream: void toXML(java.lang.Object,java.io.OutputStream)>(v, v);
label:
if v == null goto label;
virtualinvoke v.<java.io.OutputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v = v.<psiprobe.model.stats.StatsCollection: psiprobe.tools.UpdateCommitLock lock>;
virtualinvoke v.<psiprobe.tools.UpdateCommitLock: void releaseCommitLock()>();
v = <psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger>;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("stats serialized in {}ms", v);
goto label;
label:
v := @caughtexception;
v = <psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger>;
v = specialinvoke v.<psiprobe.model.stats.StatsCollection: java.io.File makeFile()>();
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Could not write stats data to \'{}\'", v, v);
label:
v = v.<psiprobe.model.stats.StatsCollection: psiprobe.tools.UpdateCommitLock lock>;
virtualinvoke v.<psiprobe.tools.UpdateCommitLock: void releaseCommitLock()>();
v = <psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger>;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("stats serialized in {}ms", v);
goto label;
label:
v := @caughtexception;
v = v.<psiprobe.model.stats.StatsCollection: psiprobe.tools.UpdateCommitLock lock>;
virtualinvoke v.<psiprobe.tools.UpdateCommitLock: void releaseCommitLock()>();
v = <psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger>;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("stats serialized in {}ms", v);
throw v;
label:
return;
catch java.lang.Throwable 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.Throwable from label to label with label;
}
private java.util.Map deserialize(java.io.File)
{
com.thoughtworks.xstream.XStream v;
java.lang.Long v;
psiprobe.model.stats.StatsCollection v;
java.nio.file.Path v;
boolean v, v, v, v, v;
org.jfree.data.xy.XYDataItem v, v;
java.util.Set v;
java.lang.Exception v;
java.lang.Throwable v;
long v, v, v, v, v, v;
java.nio.file.OpenOption[] v;
int v, v;
java.lang.String v, v, v;
java.lang.Number v;
org.slf4j.Logger v, v, v, v;
java.util.Iterator v;
java.io.File v;
java.lang.Object v, v, v, v;
java.lang.ExceptionInInitializerError v;
java.io.InputStream v;
v := @this: psiprobe.model.stats.StatsCollection;
v := @parameter: java.io.File;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: boolean canRead()>();
if v == 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
label:
v = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
v = newarray (java.nio.file.OpenOption)[0];
v = staticinvoke <java.nio.file.Files: java.io.InputStream newInputStream(java.nio.file.Path,java.nio.file.OpenOption[])>(v, v);
label:
v = v.<psiprobe.model.stats.StatsCollection: com.thoughtworks.xstream.XStream xstream>;
v = virtualinvoke v.<com.thoughtworks.xstream.XStream: java.lang.Object fromXML(java.io.InputStream)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
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$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - 1;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = new org.jfree.data.xy.XYDataItem;
v = virtualinvoke v.<org.jfree.data.xy.XYDataItem: java.lang.Number getX()>();
v = virtualinvoke v.<java.lang.Number: long longValue()>();
v = v + 1L;
specialinvoke v.<org.jfree.data.xy.XYDataItem: void <init>(double,double)>(v, 0.0);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = new org.jfree.data.xy.XYDataItem;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
specialinvoke v.<org.jfree.data.xy.XYDataItem: void <init>(double,double)>(v, 0.0);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
if v == null goto label;
virtualinvoke v.<java.io.InputStream: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v = <psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger>;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("stats data read in {}ms", v);
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.ExceptionInInitializerError: java.lang.String getMessage()>();
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("does not \"opens java.util\" to unnamed module");
if v == 0 goto label;
v = <psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("Stats desialization disabled, use \'--add-opens java.base/java.util=ALL-UNNAMED\' to start Tomcat to enable again");
goto label;
label:
v = <psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger>;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Could not read stats data from \'{}\' during initialization", v, v);
goto label;
label:
v := @caughtexception;
v = <psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger>;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Could not read stats data from \'{}\'", v, v);
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.ExceptionInInitializerError from label to label with label;
catch java.lang.Exception from label to label with label;
}
public void lockForUpdate() throws java.lang.InterruptedException
{
psiprobe.model.stats.StatsCollection v;
psiprobe.tools.UpdateCommitLock v;
v := @this: psiprobe.model.stats.StatsCollection;
v = v.<psiprobe.model.stats.StatsCollection: psiprobe.tools.UpdateCommitLock lock>;
virtualinvoke v.<psiprobe.tools.UpdateCommitLock: void lockForUpdate()>();
return;
}
public void releaseLock()
{
psiprobe.model.stats.StatsCollection v;
psiprobe.tools.UpdateCommitLock v;
v := @this: psiprobe.model.stats.StatsCollection;
v = v.<psiprobe.model.stats.StatsCollection: psiprobe.tools.UpdateCommitLock lock>;
virtualinvoke v.<psiprobe.tools.UpdateCommitLock: void releaseUpdateLock()>();
return;
}
public synchronized void afterPropertiesSet()
{
org.slf4j.Logger v;
java.io.File v, v;
java.util.Map v;
int v, v, v;
psiprobe.model.stats.StatsCollection v;
java.lang.String v, v;
v := @this: psiprobe.model.stats.StatsCollection;
v = 0;
label:
if v != 0 goto label;
v = specialinvoke v.<psiprobe.model.stats.StatsCollection: java.io.File makeFile()>();
goto label;
label:
v = new java.io.File;
v = specialinvoke v.<psiprobe.model.stats.StatsCollection: java.io.File makeFile()>();
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("\u.\u0001");
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
label:
v = specialinvoke v.<psiprobe.model.stats.StatsCollection: java.util.Map deserialize(java.io.File)>(v);
v = v + 1;
if v != null goto label;
v = v.<psiprobe.model.stats.StatsCollection: int maxFiles>;
v = v - 1;
if v < v goto label;
label:
if v == null goto label;
v.<psiprobe.model.stats.StatsCollection: java.util.Map statsData> = v;
goto label;
label:
v = <psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Stats data file not found. Empty file assumed.");
label:
return;
}
public void destroy() throws java.lang.Exception
{
psiprobe.model.stats.StatsCollection v;
v := @this: psiprobe.model.stats.StatsCollection;
virtualinvoke v.<psiprobe.model.stats.StatsCollection: void serialize()>();
return;
}
public void setApplicationContext(org.springframework.context.ApplicationContext)
{
psiprobe.model.stats.StatsCollection v;
java.lang.Object v;
javax.servlet.ServletContext v;
org.springframework.context.ApplicationContext v;
v := @this: psiprobe.model.stats.StatsCollection;
v := @parameter: org.springframework.context.ApplicationContext;
v = interfaceinvoke v.<org.springframework.web.context.WebApplicationContext: javax.servlet.ServletContext getServletContext()>();
v = interfaceinvoke v.<javax.servlet.ServletContext: java.lang.Object getAttribute(java.lang.String)>("javax.servlet.context.tempdir");
v.<psiprobe.model.stats.StatsCollection: java.io.File contextTempDir> = v;
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/model/stats/StatsCollection;");
<psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger> = v;
return;
}
}