public class psiprobe.controllers.threads.ThreadStackController extends org.springframework.web.servlet.mvc.ParameterizableViewController
{
private int stackElementCount;
public void <init>()
{
psiprobe.controllers.threads.ThreadStackController v;
v := @this: psiprobe.controllers.threads.ThreadStackController;
specialinvoke v.<org.springframework.web.servlet.mvc.ParameterizableViewController: void <init>()>();
v.<psiprobe.controllers.threads.ThreadStackController: int stackElementCount> = 20;
return;
}
public int getStackElementCount()
{
int v;
psiprobe.controllers.threads.ThreadStackController v;
v := @this: psiprobe.controllers.threads.ThreadStackController;
v = v.<psiprobe.controllers.threads.ThreadStackController: int stackElementCount>;
return v;
}
public void setStackElementCount(int)
{
int v;
psiprobe.controllers.threads.ThreadStackController v;
v := @this: psiprobe.controllers.threads.ThreadStackController;
v := @parameter: int;
v.<psiprobe.controllers.threads.ThreadStackController: int stackElementCount> = v;
return;
}
public org.springframework.web.servlet.ModelAndView handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) throws java.lang.Exception
{
org.springframework.web.servlet.ModelAndView v;
javax.servlet.http.HttpServletRequest v;
javax.servlet.http.HttpServletResponse v;
psiprobe.controllers.threads.ThreadStackController v;
v := @this: psiprobe.controllers.threads.ThreadStackController;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: javax.servlet.http.HttpServletResponse;
v = specialinvoke v.<org.springframework.web.servlet.mvc.ParameterizableViewController: org.springframework.web.servlet.ModelAndView handleRequest(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)>(v, v);
return v;
}
protected org.springframework.web.servlet.ModelAndView handleRequestInternal(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) throws org.springframework.web.bind.ServletRequestBindingException, javax.management.MalformedObjectNameException
{
java.lang.Integer v;
byte v, v;
java.lang.Long v, v;
boolean v, v;
java.util.Set v;
javax.management.ObjectName v;
org.springframework.web.servlet.ModelAndView v, v;
java.lang.Object[] v, v;
java.lang.String[] v, v;
long v, v;
java.util.ArrayList v, v;
javax.servlet.http.HttpServletRequest v;
javax.management.MBeanServer v;
int v, v, v, v, v, v, v, v;
psiprobe.controllers.threads.ThreadStackController v;
java.lang.String v, v, v, v, v, v;
javax.servlet.http.HttpServletResponse v;
javax.management.openmbean.CompositeData v;
psiprobe.model.ThreadStackElement v;
java.lang.Object v, v, v, v;
v := @this: psiprobe.controllers.threads.ThreadStackController;
v := @parameter: javax.servlet.http.HttpServletRequest;
v := @parameter: javax.servlet.http.HttpServletResponse;
v = staticinvoke <org.springframework.web.bind.ServletRequestUtils: long getLongParameter(javax.servlet.ServletRequest,java.lang.String,long)>(v, "id", -1L);
v = staticinvoke <org.springframework.web.bind.ServletRequestUtils: java.lang.String getStringParameter(javax.servlet.ServletRequest,java.lang.String)>(v, "name");
v = null;
v = staticinvoke <java.lang.management.ManagementFactory: javax.management.MBeanServer getPlatformMBeanServer()>();
v = new javax.management.ObjectName;
specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>("java.lang:type=Threading");
v = v cmp -1L;
if v != 0 goto label;
if v == null goto label;
v = staticinvoke <psiprobe.tools.JmxTools: java.lang.Object getAttribute(javax.management.MBeanServer,javax.management.ObjectName,java.lang.String)>(v, v, "AllThreadIds");
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[0] = v;
v = newarray (java.lang.String)[1];
v[0] = "long";
v = staticinvoke <psiprobe.tools.JmxTools: java.lang.Object invoke(javax.management.MBeanServer,javax.management.ObjectName,java.lang.String,java.lang.Object[],java.lang.String[])>(v, v, "getThreadInfo", v, v);
v = staticinvoke <psiprobe.tools.JmxTools: java.lang.String getStringAttr(javax.management.openmbean.CompositeData,java.lang.String)>(v, "threadName");
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v;
goto label;
label:
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<javax.management.MBeanServer: java.util.Set queryMBeans(javax.management.ObjectName,javax.management.QueryExp)>(v, null);
if v == null goto label;
v = v cmp -1L;
if v == 0 goto label;
v = newarray (java.lang.Object)[2];
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[0] = v;
v = v.<psiprobe.controllers.threads.ThreadStackController: int stackElementCount>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = newarray (java.lang.String)[2];
v[0] = "long";
v[1] = "int";
v = staticinvoke <psiprobe.tools.JmxTools: java.lang.Object invoke(javax.management.MBeanServer,javax.management.ObjectName,java.lang.String,java.lang.Object[],java.lang.String[])>(v, v, "getThreadInfo", v, v);
if v == null goto label;
v = interfaceinvoke v.<javax.management.openmbean.CompositeData: java.lang.Object get(java.lang.String)>("stackTrace");
v = staticinvoke <psiprobe.tools.JmxTools: java.lang.String getStringAttr(javax.management.openmbean.CompositeData,java.lang.String)>(v, "threadName");
v = new java.util.ArrayList;
v = lengthof v;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
v = v;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = new psiprobe.model.ThreadStackElement;
specialinvoke v.<psiprobe.model.ThreadStackElement: void <init>()>();
v = staticinvoke <psiprobe.tools.JmxTools: java.lang.String getStringAttr(javax.management.openmbean.CompositeData,java.lang.String)>(v, "className");
virtualinvoke v.<psiprobe.model.ThreadStackElement: void setClassName(java.lang.String)>(v);
v = staticinvoke <psiprobe.tools.JmxTools: java.lang.String getStringAttr(javax.management.openmbean.CompositeData,java.lang.String)>(v, "fileName");
virtualinvoke v.<psiprobe.model.ThreadStackElement: void setFileName(java.lang.String)>(v);
v = staticinvoke <psiprobe.tools.JmxTools: java.lang.String getStringAttr(javax.management.openmbean.CompositeData,java.lang.String)>(v, "methodName");
virtualinvoke v.<psiprobe.model.ThreadStackElement: void setMethodName(java.lang.String)>(v);
v = (int) -1;
v = staticinvoke <psiprobe.tools.JmxTools: int getIntAttr(javax.management.openmbean.CompositeData,java.lang.String,int)>(v, "lineNumber", v);
virtualinvoke v.<psiprobe.model.ThreadStackElement: void setLineNumber(int)>(v);
v = staticinvoke <psiprobe.tools.JmxTools: boolean getBooleanAttr(javax.management.openmbean.CompositeData,java.lang.String)>(v, "nativeMethod");
virtualinvoke v.<psiprobe.model.ThreadStackElement: void setNativeMethod(boolean)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = new org.springframework.web.servlet.ModelAndView;
v = virtualinvoke v.<psiprobe.controllers.threads.ThreadStackController: java.lang.String getViewName()>();
specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(java.lang.String,java.lang.String,java.lang.Object)>(v, "stack", v);
v = virtualinvoke v.<org.springframework.web.servlet.ModelAndView: org.springframework.web.servlet.ModelAndView addObject(java.lang.String,java.lang.Object)>("threadName", v);
return v;
}
public void setViewName(java.lang.String)
{
psiprobe.controllers.threads.ThreadStackController v;
java.lang.String v;
v := @this: psiprobe.controllers.threads.ThreadStackController;
v := @parameter: java.lang.String;
specialinvoke v.<org.springframework.web.servlet.mvc.ParameterizableViewController: void setViewName(java.lang.String)>(v);
return;
}
}