diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.AbstractTomcatContainer$FilterMapType.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.AbstractTomcatContainer$FilterMapType.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.AbstractTomcatContainer$FilterMapType.jimple	2025-03-13 18:06:11.263881778 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.AbstractTomcatContainer$FilterMapType.jimple	2025-03-13 18:06:16.963792102 +0000
@@ -2,24 +2,22 @@
 {
 public static final enum psiprobe.AbstractTomcatContainer$FilterMapType URL;
 public static final enum psiprobe.AbstractTomcatContainer$FilterMapType SERVLET_NAME;
-private static final psiprobe.AbstractTomcatContainer$FilterMapType[] ENUM$VALUES;
-static void <clinit>()
+private static final psiprobe.AbstractTomcatContainer$FilterMapType[] $VALUES;
+public static psiprobe.AbstractTomcatContainer$FilterMapType[] values()
 {
-psiprobe.AbstractTomcatContainer$FilterMapType v, v, v, v;
+java.lang.Object v;
 psiprobe.AbstractTomcatContainer$FilterMapType[] v;
-v = new psiprobe.AbstractTomcatContainer$FilterMapType;
-specialinvoke v.<psiprobe.AbstractTomcatContainer$FilterMapType: void <init>(java.lang.String,int)>("URL", 0);
-<psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType URL> = v;
-v = new psiprobe.AbstractTomcatContainer$FilterMapType;
-specialinvoke v.<psiprobe.AbstractTomcatContainer$FilterMapType: void <init>(java.lang.String,int)>("SERVLET_NAME", 1);
-<psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType SERVLET_NAME> = v;
-v = newarray (psiprobe.AbstractTomcatContainer$FilterMapType)[2];
-v = <psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType URL>;
-v[0] = v;
-v = <psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType SERVLET_NAME>;
-v[1] = v;
-<psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType[] ENUM$VALUES> = v;
-return;
+v = <psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType[] $VALUES>;
+v = virtualinvoke v.<java.lang.Object: java.lang.Object clone()>();
+return v;
+}
+public static psiprobe.AbstractTomcatContainer$FilterMapType valueOf(java.lang.String)
+{
+java.lang.String v;
+java.lang.Enum v;
+v := @parameter: java.lang.String;
+v = staticinvoke <java.lang.Enum: java.lang.Enum valueOf(java.lang.Class,java.lang.String)>(class "Lpsiprobe/AbstractTomcatContainer$FilterMapType;", v);
+return v;
 }
 private void <init>(java.lang.String, int)
 {
@@ -32,22 +30,29 @@
 specialinvoke v.<java.lang.Enum: void <init>(java.lang.String,int)>(v, v);
 return;
 }
-public static psiprobe.AbstractTomcatContainer$FilterMapType[] values()
+private static psiprobe.AbstractTomcatContainer$FilterMapType[] $values()
 {
-int v;
-psiprobe.AbstractTomcatContainer$FilterMapType[] v, v;
-v = <psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType[] ENUM$VALUES>;
-v = lengthof v;
-v = newarray (psiprobe.AbstractTomcatContainer$FilterMapType)[v];
-staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, 0, v, 0, v);
+psiprobe.AbstractTomcatContainer$FilterMapType v, v;
+psiprobe.AbstractTomcatContainer$FilterMapType[] v;
+v = newarray (psiprobe.AbstractTomcatContainer$FilterMapType)[2];
+v = <psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType URL>;
+v[0] = v;
+v = <psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType SERVLET_NAME>;
+v[1] = v;
 return v;
 }
-public static psiprobe.AbstractTomcatContainer$FilterMapType valueOf(java.lang.String)
+static void <clinit>()
 {
-java.lang.String v;
-java.lang.Enum v;
-v := @parameter: java.lang.String;
-v = staticinvoke <java.lang.Enum: java.lang.Enum valueOf(java.lang.Class,java.lang.String)>(class "Lpsiprobe/AbstractTomcatContainer$FilterMapType;", v);
-return v;
+psiprobe.AbstractTomcatContainer$FilterMapType v, v;
+psiprobe.AbstractTomcatContainer$FilterMapType[] v;
+v = new psiprobe.AbstractTomcatContainer$FilterMapType;
+specialinvoke v.<psiprobe.AbstractTomcatContainer$FilterMapType: void <init>(java.lang.String,int)>("URL", 0);
+<psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType URL> = v;
+v = new psiprobe.AbstractTomcatContainer$FilterMapType;
+specialinvoke v.<psiprobe.AbstractTomcatContainer$FilterMapType: void <init>(java.lang.String,int)>("SERVLET_NAME", 1);
+<psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType SERVLET_NAME> = v;
+v = staticinvoke <psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType[] $values()>();
+<psiprobe.AbstractTomcatContainer$FilterMapType: psiprobe.AbstractTomcatContainer$FilterMapType[] $VALUES> = v;
+return;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.AbstractTomcatContainer.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.AbstractTomcatContainer.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.AbstractTomcatContainer.jimple	2025-03-13 18:06:11.279881526 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.AbstractTomcatContainer.jimple	2025-03-13 18:06:16.983791787 +0000
@@ -23,7 +23,7 @@
 org.apache.catalina.Valve v;
 org.apache.catalina.Host v, v, v, v, v, v;
 javax.management.MBeanServer v;
-java.lang.String v, v, v, v;
+java.lang.String v, v, v;
 org.apache.catalina.Service v;
 org.apache.catalina.connector.Connector[] v;
 org.slf4j.Logger v;
@@ -32,7 +32,6 @@
 javax.management.MalformedObjectNameException v;
 psiprobe.AbstractTomcatContainer v;
 org.apache.catalina.Container v, v, v, v;
-java.lang.StringBuilder v;
 org.apache.catalina.Pipeline v, v;
 v := @this: psiprobe.AbstractTomcatContainer;
 v := @parameter: org.apache.catalina.Wrapper;
@@ -51,11 +50,9 @@
 v = v.<psiprobe.AbstractTomcatContainer: org.apache.catalina.Host host>;
 v = interfaceinvoke v.<org.apache.catalina.Host: org.apache.catalina.Container getParent()>();
 v = interfaceinvoke v.<org.apache.catalina.Container: java.lang.String getName()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = v.<psiprobe.AbstractTomcatContainer: org.apache.catalina.Host host>;
 v = interfaceinvoke v.<org.apache.catalina.Host: java.lang.String getName()>();
-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[])>(":type=Deployer,host=\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001:type=Deployer,host=\u0001");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v.<psiprobe.AbstractTomcatContainer: javax.management.ObjectName deployerOName> = v;
 label:
@@ -119,15 +116,15 @@
 v = v;
 v = null;
 v = v.<psiprobe.AbstractTomcatContainer: org.apache.catalina.Host host>;
-goto label;
 label:
+if v == null goto label;
 v = v instanceof org.apache.catalina.Host;
 if v == 0 goto label;
 v = v;
 label:
 v = interfaceinvoke v.<org.apache.catalina.Container: org.apache.catalina.Container getParent()>();
+goto label;
 label:
-if v != null goto label;
 if v == null goto label;
 v = new java.io.File;
 v = interfaceinvoke v.<org.apache.catalina.Container: java.lang.String getName()>();
@@ -175,16 +172,16 @@
 v = interfaceinvoke v.<org.apache.catalina.Host: org.apache.catalina.Container[] findChildren()>();
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = v instanceof org.apache.catalina.Context;
 if v == 0 goto label;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 label:
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 return v;
 }
 public java.util.List findConnectors()
@@ -203,15 +200,19 @@
 psiprobe.AbstractTomcatContainer v;
 java.lang.String v, v;
 org.apache.catalina.Context v;
+boolean v;
 v := @this: psiprobe.AbstractTomcatContainer;
 v := @parameter: java.lang.String;
 v = virtualinvoke v.<psiprobe.AbstractTomcatContainer: java.lang.String formatContextName(java.lang.String)>(v);
 specialinvoke v.<psiprobe.AbstractTomcatContainer: void installContextInternal(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.AbstractTomcatContainer: org.apache.catalina.Context findContext(java.lang.String)>(v);
 if v == null goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 public void stop(java.lang.String) throws java.lang.Exception
 {
@@ -241,14 +242,13 @@
 }
 public void remove(java.lang.String) throws java.lang.Exception
 {
-java.lang.String v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v;
 boolean v;
 org.slf4j.Logger v, v, v, v;
 org.apache.catalina.Context v;
 java.io.File v, v, v, v, v, v, v;
 java.lang.Exception v;
 psiprobe.AbstractTomcatContainer v;
-java.lang.StringBuilder v;
 v := @this: psiprobe.AbstractTomcatContainer;
 v := @parameter: java.lang.String;
 v = virtualinvoke v.<psiprobe.AbstractTomcatContainer: java.lang.String formatContextName(java.lang.String)>(v);
@@ -284,9 +284,7 @@
 v = virtualinvoke v.<psiprobe.AbstractTomcatContainer: java.lang.String formatContextFilename(java.lang.String)>(v);
 v = new java.io.File;
 v = virtualinvoke v.<psiprobe.AbstractTomcatContainer: java.io.File getAppBase()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".war");
+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[])>("\u.war");
 specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
 v = v.<psiprobe.AbstractTomcatContainer: org.slf4j.Logger logger>;
 v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
@@ -357,7 +355,6 @@
 public java.lang.String formatContextName(java.lang.String)
 {
 psiprobe.AbstractTomcatContainer v;
-java.lang.StringBuilder v;
 java.lang.String v, v, v, v;
 boolean v, v, v, v, v;
 v := @this: psiprobe.AbstractTomcatContainer;
@@ -368,8 +365,7 @@
 v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
 v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("/");
 if v != 0 goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("/");
-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[])>("\u0001");
+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[])>("/\u0001");
 label:
 v = "/";
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
@@ -487,12 +483,13 @@
 psiprobe.AbstractTomcatContainer v;
 java.lang.ClassLoader v, v;
 org.apache.jasper.JspCompilationContext v;
-java.lang.Throwable v, v, v;
+java.lang.Throwable v, v, v, v;
 long v, v, v;
 org.apache.jasper.EmbeddedServletOptions v;
 java.lang.String v, v;
-org.slf4j.Logger v, v, v, v, v;
+org.slf4j.Logger v, v, v, v, v, v;
 java.util.Iterator v;
+java.io.IOException v;
 org.apache.catalina.Context v;
 org.apache.catalina.Container v;
 org.apache.jasper.compiler.JspRuntimeContext v;
@@ -520,12 +517,14 @@
 specialinvoke v.<java.net.URLClassLoader: void <init>(java.net.URL[],java.lang.ClassLoader)>(v, v);
 label:
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = staticinvoke <java.lang.System: long currentTimeMillis()>();
 v = virtualinvoke v.<psiprobe.AbstractTomcatContainer: org.apache.jasper.JspCompilationContext createJspCompilationContext(java.lang.String,org.apache.jasper.Options,javax.servlet.ServletContext,org.apache.jasper.compiler.JspRuntimeContext,java.lang.ClassLoader)>(v, v, v, v, v);
 v = staticinvoke <org.springframework.util.ClassUtils: java.lang.ClassLoader overrideThreadContextClassLoader(java.lang.ClassLoader)>(v);
+label:
 v = virtualinvoke v.<psiprobe.model.jsp.Summary: java.util.Map getItems()>();
 v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
 if v == null goto label;
@@ -554,24 +553,32 @@
 interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("{} is not on the summary list, ignored", v);
 label:
 staticinvoke <org.springframework.util.ClassUtils: java.lang.ClassLoader overrideThreadContextClassLoader(java.lang.ClassLoader)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+v := @caughtexception;
+staticinvoke <org.springframework.util.ClassUtils: java.lang.ClassLoader overrideThreadContextClassLoader(java.lang.ClassLoader)>(v);
+throw v;
 label:
 virtualinvoke v.<java.net.URLClassLoader: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.net.URLClassLoader: void close()>();
-label:
 throw v;
 label:
+virtualinvoke v.<org.apache.jasper.compiler.JspRuntimeContext: void destroy()>();
+goto label;
+label:
 v := @caughtexception;
+v = v.<psiprobe.AbstractTomcatContainer: org.slf4j.Logger logger>;
+interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("", v);
+label:
 virtualinvoke v.<org.apache.jasper.compiler.JspRuntimeContext: void destroy()>();
-throw v;
+goto label;
 label:
+v := @caughtexception;
 virtualinvoke v.<org.apache.jasper.compiler.JspRuntimeContext: void destroy()>();
+throw v;
+label:
 exitmonitor v;
 label:
 goto label;
@@ -593,6 +600,9 @@
 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;
+catch java.io.IOException 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;
 catch java.lang.Throwable from label to label with label;
 }
 public void listContextJsps(org.apache.catalina.Context, psiprobe.model.jsp.Summary, boolean)
@@ -607,12 +617,13 @@
 java.util.Set v;
 psiprobe.AbstractTomcatContainer v;
 java.lang.ClassLoader v;
-java.lang.Throwable v, v;
+java.lang.Throwable v, v, v;
 java.util.HashMap v, v;
 org.apache.jasper.EmbeddedServletOptions v;
 java.lang.String v;
-org.slf4j.Logger v;
+org.slf4j.Logger v, v;
 java.util.Iterator v, v;
+java.io.IOException v;
 org.apache.catalina.Context v;
 org.apache.catalina.Container v;
 org.apache.jasper.compiler.JspRuntimeContext v;
@@ -631,6 +642,7 @@
 specialinvoke v.<org.apache.jasper.EmbeddedServletOptions: void <init>(javax.servlet.ServletConfig,javax.servlet.ServletContext)>(v, v);
 v = new org.apache.jasper.compiler.JspRuntimeContext;
 specialinvoke v.<org.apache.jasper.compiler.JspRuntimeContext: void <init>(javax.servlet.ServletContext,org.apache.jasper.Options)>(v, v);
+label:
 v = virtualinvoke v.<psiprobe.model.jsp.Summary: java.util.Map getItems()>();
 if v != null goto label;
 v = new java.util.HashMap;
@@ -640,13 +652,13 @@
 v = virtualinvoke v.<psiprobe.model.jsp.Summary: java.util.Map getItems()>();
 v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
 v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 virtualinvoke v.<psiprobe.model.jsp.Item: void setMissing(boolean)>(1);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = new java.net.URLClassLoader;
 v = newarray (java.net.URL)[0];
 v = interfaceinvoke v.<org.apache.catalina.Context: org.apache.catalina.Loader getLoader()>();
@@ -659,12 +671,19 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.net.URLClassLoader: void close()>();
-label:
 throw v;
 label:
+v := @caughtexception;
+v = v.<psiprobe.AbstractTomcatContainer: org.slf4j.Logger logger>;
+interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("", v);
+label:
 virtualinvoke v.<org.apache.jasper.compiler.JspRuntimeContext: void destroy()>();
+goto label;
+label:
+v := @caughtexception;
+virtualinvoke v.<org.apache.jasper.compiler.JspRuntimeContext: void destroy()>();
+throw v;
+label:
 exitmonitor v;
 label:
 goto label;
@@ -678,17 +697,17 @@
 v = virtualinvoke v.<psiprobe.model.jsp.Summary: java.util.Map getItems()>();
 v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.jsp.Summary: java.util.Map getItems()>();
 v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
 v = virtualinvoke v.<psiprobe.model.jsp.Item: boolean isMissing()>();
 if v != 0 goto label;
 interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 virtualinvoke v.<psiprobe.model.jsp.Summary: void setItems(java.util.Map)>(v);
 goto label;
 label:
@@ -698,6 +717,8 @@
 label:
 return;
 catch java.lang.Throwable from label to label with label;
+catch java.io.IOException 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;
 }
 public boolean getAvailable(org.apache.catalina.Context)
@@ -813,6 +834,7 @@
 psiprobe.AbstractTomcatContainer v;
 java.lang.ClassLoader v;
 org.apache.jasper.JspCompilationContext v;
+java.lang.Throwable v;
 long v, v, v, v, v;
 org.apache.jasper.compiler.JspConfig v;
 int v, v, v;
@@ -839,8 +861,9 @@
 v = interfaceinvoke v.<javax.servlet.ServletContext: java.util.Set getResourcePaths(java.lang.String)>(v);
 if v == null goto label;
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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 = 0;
 label:
@@ -850,11 +873,12 @@
 if v != 0 goto label;
 v = interfaceinvoke v.<org.apache.jasper.Options: org.apache.jasper.compiler.JspConfig getJspConfig()>();
 v = virtualinvoke v.<org.apache.jasper.compiler.JspConfig: boolean isJspPage(java.lang.String)>(v);
-if v != 0 goto label;
-v = 0;
-goto label;
+if v == 0 goto label;
 label:
 v = 1;
+goto label;
+label:
+v = 0;
 label:
 v = v;
 label:
@@ -867,6 +891,7 @@
 if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.AbstractTomcatContainer: org.apache.jasper.JspCompilationContext createJspCompilationContext(java.lang.String,org.apache.jasper.Options,javax.servlet.ServletContext,org.apache.jasper.compiler.JspRuntimeContext,java.lang.ClassLoader)>(v, v, v, v, v);
 v = staticinvoke <org.springframework.util.ClassUtils: java.lang.ClassLoader overrideThreadContextClassLoader(java.lang.ClassLoader)>(v);
+label:
 v = virtualinvoke v.<psiprobe.model.jsp.Summary: java.util.Map getItems()>();
 v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
 if v != null goto label;
@@ -923,14 +948,16 @@
 virtualinvoke v.<psiprobe.model.jsp.Item: void setMissing(boolean)>(0);
 v = virtualinvoke v.<psiprobe.model.jsp.Summary: java.util.Map getItems()>();
 interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
+label:
 staticinvoke <org.springframework.util.ClassUtils: java.lang.ClassLoader overrideThreadContextClassLoader(java.lang.ClassLoader)>(v);
 goto label;
 label:
+v := @caughtexception;
+staticinvoke <org.springframework.util.ClassUtils: java.lang.ClassLoader overrideThreadContextClassLoader(java.lang.ClassLoader)>(v);
+throw v;
+label:
 v = v + 1;
 virtualinvoke v.<psiprobe.AbstractTomcatContainer: void compileItem(java.lang.String,org.apache.jasper.Options,org.apache.catalina.Context,org.apache.jasper.compiler.JspRuntimeContext,psiprobe.model.jsp.Summary,java.net.URLClassLoader,int,boolean)>(v, v, v, v, v, v, v, v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 goto label;
 label:
 v = v.<psiprobe.AbstractTomcatContainer: org.slf4j.Logger logger>;
@@ -939,6 +966,7 @@
 return;
 catch java.lang.Exception 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;
 }
 protected org.apache.catalina.Context findContextInternal(java.lang.String)
 {
@@ -954,13 +982,14 @@
 }
 protected void checkChanges(java.lang.String) throws java.lang.Exception
 {
-java.lang.String[] v, v, v, v, v, v, v, v;
-javax.management.MBeanServer v, v, v, v;
-java.lang.String v, v, v, v, v;
 boolean v;
-javax.management.ObjectName v, v, v, v;
+javax.management.ObjectName v, v, v, v, v;
 psiprobe.AbstractTomcatContainer v;
-java.lang.Class v, v, v, v;
+java.lang.Throwable v;
+java.lang.String[] v, v, v, v, v, v, v, v, v, v;
+javax.management.MBeanServer v, v, v, v, v;
+java.lang.String v, v, v, v, v, v;
+java.lang.Class v, v, v, v, v;
 java.lang.Object v;
 v := @this: psiprobe.AbstractTomcatContainer;
 v := @parameter: java.lang.String;
@@ -984,6 +1013,7 @@
 v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
 v[0] = v;
 interfaceinvoke v.<javax.management.MBeanServer: java.lang.Object invoke(javax.management.ObjectName,java.lang.String,java.lang.Object[],java.lang.String[])>(v, "addServiced", v, v);
+label:
 v = v.<psiprobe.AbstractTomcatContainer: javax.management.MBeanServer mbeanServer>;
 v = v.<psiprobe.AbstractTomcatContainer: javax.management.ObjectName deployerOName>;
 v = newarray (java.lang.String)[1];
@@ -993,6 +1023,19 @@
 v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
 v[0] = v;
 interfaceinvoke v.<javax.management.MBeanServer: java.lang.Object invoke(javax.management.ObjectName,java.lang.String,java.lang.Object[],java.lang.String[])>(v, "check", v, v);
+label:
+v = v.<psiprobe.AbstractTomcatContainer: javax.management.MBeanServer mbeanServer>;
+v = v.<psiprobe.AbstractTomcatContainer: javax.management.ObjectName deployerOName>;
+v = newarray (java.lang.String)[1];
+v[0] = v;
+v = newarray (java.lang.String)[1];
+v = class "Ljava/lang/String;";
+v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
+v[0] = v;
+interfaceinvoke v.<javax.management.MBeanServer: java.lang.Object invoke(javax.management.ObjectName,java.lang.String,java.lang.Object[],java.lang.String[])>(v, "removeServiced", v, v);
+goto label;
+label:
+v := @caughtexception;
 v = v.<psiprobe.AbstractTomcatContainer: javax.management.MBeanServer mbeanServer>;
 v = v.<psiprobe.AbstractTomcatContainer: javax.management.ObjectName deployerOName>;
 v = newarray (java.lang.String)[1];
@@ -1002,8 +1045,10 @@
 v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
 v[0] = v;
 interfaceinvoke v.<javax.management.MBeanServer: java.lang.Object invoke(javax.management.ObjectName,java.lang.String,java.lang.Object[],java.lang.String[])>(v, "removeServiced", v, v);
+throw v;
 label:
 return;
+catch java.lang.Throwable from label to label with label;
 }
 protected abstract java.lang.Object getNamingToken(org.apache.catalina.Context);
 protected abstract org.apache.jasper.JspCompilationContext createJspCompilationContext(java.lang.String, org.apache.jasper.Options, javax.servlet.ServletContext, org.apache.jasper.compiler.JspRuntimeContext, java.lang.ClassLoader);
@@ -1026,8 +1071,8 @@
 v := @parameter: psiprobe.AbstractTomcatContainer$FilterMapType;
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = new psiprobe.model.FilterMapping;
 specialinvoke v.<psiprobe.model.FilterMapping: void <init>()>();
@@ -1043,8 +1088,8 @@
 virtualinvoke v.<psiprobe.model.FilterMapping: void setFilterClass(java.lang.String)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 return;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.AwtAppContextClassloaderListener.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.AwtAppContextClassloaderListener.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.AwtAppContextClassloaderListener.jimple	2025-03-13 18:06:11.299881211 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.AwtAppContextClassloaderListener.jimple	2025-03-13 18:06:17.003791472 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.AwtAppContextClassloaderListener extends java.lang.Object implements javax.servlet.ServletContextListener
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/AwtAppContextClassloaderListener;");
-<psiprobe.AwtAppContextClassloaderListener: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.AwtAppContextClassloaderListener v;
@@ -17,10 +10,11 @@
 }
 public void contextInitialized(javax.servlet.ServletContextEvent)
 {
+java.lang.Throwable v;
 org.slf4j.Logger v, v;
 java.lang.Exception v;
 javax.servlet.ServletContextEvent v;
-java.lang.Thread v, v, v;
+java.lang.Thread v, v, v, v;
 java.lang.ClassLoader v, v, v;
 psiprobe.AwtAppContextClassloaderListener v;
 v := @this: psiprobe.AwtAppContextClassloaderListener;
@@ -28,18 +22,27 @@
 label:
 v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
 v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
+label:
 v = v;
-goto label;
 label:
 v = virtualinvoke v.<java.lang.ClassLoader: java.lang.ClassLoader getParent()>();
-label:
+if v == null goto label;
 v = virtualinvoke v.<java.lang.ClassLoader: java.lang.ClassLoader getParent()>();
-if v != null goto label;
+goto label;
+label:
 v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
 virtualinvoke v.<java.lang.Thread: void setContextClassLoader(java.lang.ClassLoader)>(v);
 staticinvoke <javax.imageio.ImageIO: java.io.File getCacheDirectory()>();
+label:
 v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
 virtualinvoke v.<java.lang.Thread: void setContextClassLoader(java.lang.ClassLoader)>(v);
+goto label;
+label:
+v := @caughtexception;
+v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
+virtualinvoke v.<java.lang.Thread: void setContextClassLoader(java.lang.ClassLoader)>(v);
+throw v;
+label:
 v = <psiprobe.AwtAppContextClassloaderListener: org.slf4j.Logger logger>;
 interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("AwtAppContextClassloaderListener Initialized");
 label:
@@ -50,6 +53,7 @@
 interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Failed to address PermGen leak.", v);
 label:
 return;
+catch java.lang.Throwable from label to label with label;
 catch java.lang.Exception from label to label with label;
 }
 public void contextDestroyed(javax.servlet.ServletContextEvent)
@@ -60,4 +64,11 @@
 v := @parameter: javax.servlet.ServletContextEvent;
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/AwtAppContextClassloaderListener;");
+<psiprobe.AwtAppContextClassloaderListener: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.ProbeConfig.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.ProbeConfig.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.ProbeConfig.jimple	2025-03-13 18:06:11.307881085 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.ProbeConfig.jimple	2025-03-13 18:06:17.011791347 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.ProbeConfig extends java.lang.Object implements org.springframework.web.servlet.config.'annotation'.WebMvcConfigurer
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/ProbeConfig;");
-<psiprobe.ProbeConfig: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.ProbeConfig v;
@@ -164,15 +157,12 @@
 v = interfaceinvoke v.<org.springframework.beans.factory.FactoryBean: java.lang.Object getObject()>();
 v = virtualinvoke v.<java.util.Properties: java.util.Set entrySet()>();
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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()>();
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -1036,4 +1026,11 @@
 virtualinvoke v.<org.springframework.scheduling.quartz.SchedulerFactoryBean: void setQuartzProperties(java.util.Properties)>(v);
 return v;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/ProbeConfig;");
+<psiprobe.ProbeConfig: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.ProbeInitializer.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.ProbeInitializer.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.ProbeInitializer.jimple	2025-03-13 18:06:11.375880016 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.ProbeInitializer.jimple	2025-03-13 18:06:17.087790152 +0000
@@ -40,9 +40,6 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<org.springframework.web.context.support.AnnotationConfigWebApplicationContext: void close()>();
-label:
 throw v;
 label:
 v = interfaceinvoke v.<javax.servlet.ServletContext: javax.servlet.ServletRegistration$Dynamic addServlet(java.lang.String,java.lang.Class)>("probe", class "Lpsiprobe/ProbeServlet;");
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.ProbeServlet.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.ProbeServlet.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.ProbeServlet.jimple	2025-03-13 18:06:11.383879889 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.ProbeServlet.jimple	2025-03-13 18:06:17.091790088 +0000
@@ -3,13 +3,6 @@
 private static final long serialVersionUID;
 private static final org.slf4j.Logger logger;
 private transient org.apache.catalina.Wrapper wrapper;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/ProbeServlet;");
-<psiprobe.ProbeServlet: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.ProbeServlet v;
@@ -94,4 +87,11 @@
 v = interfaceinvoke v.<org.springframework.web.context.WebApplicationContext: java.lang.Object getBean(java.lang.String)>("containerWrapper");
 return v;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/ProbeServlet;");
+<psiprobe.ProbeServlet: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.Utils.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.Utils.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.Utils.jimple	2025-03-13 18:06:11.291881337 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.Utils.jimple	2025-03-13 18:06:16.991791662 +0000
@@ -1,13 +1,6 @@
 public final class psiprobe.Utils extends java.lang.Object
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/Utils;");
-<psiprobe.Utils: org.slf4j.Logger logger> = v;
-return;
-}
 private void <init>()
 {
 psiprobe.Utils v;
@@ -17,15 +10,14 @@
 }
 public static java.lang.String readFile(java.io.File, java.lang.String) throws java.io.IOException
 {
-java.lang.Throwable v, v, v;
-java.io.File v;
+java.lang.Throwable v;
 java.nio.file.OpenOption[] v;
 java.lang.String v, v;
 java.nio.file.Path v;
+java.io.File v;
 java.io.InputStream v;
 v := @parameter: java.io.File;
 v := @parameter: java.lang.String;
-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);
@@ -38,15 +30,7 @@
 return v;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.InputStream: void close()>();
-label:
 throw v;
-label:
-v := @caughtexception;
-v = v;
-throw v;
-catch java.lang.Throwable from label to label with label;
 catch java.lang.Throwable from label to label with label;
 }
 public static java.lang.String readStream(java.io.InputStream, java.lang.String) throws java.io.IOException
@@ -75,21 +59,16 @@
 specialinvoke v.<java.io.InputStreamReader: void <init>(java.io.InputStream,java.nio.charset.Charset)>(v, v);
 specialinvoke v.<java.io.BufferedReader: void <init>(java.io.Reader,int)>(v, 4096);
 label:
-goto label;
-label:
+v = virtualinvoke v.<java.io.BufferedReader: java.lang.String readLine()>();
+if v == null goto label;
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(10);
-label:
-v = virtualinvoke v.<java.io.BufferedReader: java.lang.String readLine()>();
-if v != null goto label;
+goto label;
 label:
 virtualinvoke v.<java.io.BufferedReader: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.BufferedReader: void close()>();
-label:
 throw v;
 label:
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
@@ -115,13 +94,12 @@
 v = virtualinvoke v.<java.io.File: java.io.File[] listFiles()>();
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 staticinvoke <psiprobe.Utils: void delete(java.io.File)>(v);
 v = v + 1;
-label:
-if v < v goto label;
+goto label;
 label:
 v = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
 staticinvoke <java.nio.file.Files: void delete(java.nio.file.Path)>(v);
@@ -142,9 +120,9 @@
 }
 public static int toInt(java.lang.String, int)
 {
-java.lang.Throwable v, v, v;
-java.util.Scanner v;
+java.lang.Throwable v;
 int v, v;
+java.util.Scanner v;
 java.lang.String v;
 boolean v, v;
 v := @parameter: java.lang.String;
@@ -152,7 +130,6 @@
 if v == null goto label;
 v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>(" ");
 if v != 0 goto label;
-label:
 v = new java.util.Scanner;
 specialinvoke v.<java.util.Scanner: void <init>(java.lang.String)>(v);
 label:
@@ -161,29 +138,20 @@
 v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
 label:
 virtualinvoke v.<java.util.Scanner: void close()>();
-label:
 return v;
 label:
 virtualinvoke v.<java.util.Scanner: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.util.Scanner: void close()>();
-label:
-throw v;
-label:
-v := @caughtexception;
-v = v;
 throw v;
 label:
 return v;
 catch java.lang.Throwable from label to label with label;
-catch java.lang.Throwable from label to label with label;
 }
 public static int toIntHex(java.lang.String, int)
 {
-java.lang.Throwable v, v, v;
+java.lang.Throwable v;
 java.util.Scanner v;
 int v, v;
 java.lang.String v;
@@ -205,29 +173,20 @@
 v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String,int)>(v, 16);
 label:
 virtualinvoke v.<java.util.Scanner: void close()>();
-label:
 return v;
 label:
 virtualinvoke v.<java.util.Scanner: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.util.Scanner: void close()>();
-label:
-throw v;
-label:
-v := @caughtexception;
-v = v;
 throw v;
 label:
 return v;
 catch java.lang.Throwable from label to label with label;
-catch java.lang.Throwable from label to label with label;
 }
 public static long toLong(java.lang.String, long)
 {
-java.lang.Throwable v, v, v;
+java.lang.Throwable v;
 java.util.Scanner v;
 long v, v;
 java.lang.String v;
@@ -237,7 +196,6 @@
 if v == null goto label;
 v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>(" ");
 if v != 0 goto label;
-label:
 v = new java.util.Scanner;
 specialinvoke v.<java.util.Scanner: void <init>(java.lang.String)>(v);
 label:
@@ -246,25 +204,16 @@
 v = staticinvoke <java.lang.Long: long parseLong(java.lang.String)>(v);
 label:
 virtualinvoke v.<java.util.Scanner: void close()>();
-label:
 return v;
 label:
 virtualinvoke v.<java.util.Scanner: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.util.Scanner: void close()>();
-label:
-throw v;
-label:
-v := @caughtexception;
-v = v;
 throw v;
 label:
 return v;
 catch java.lang.Throwable from label to label with label;
-catch java.lang.Throwable from label to label with label;
 }
 public static long toLong(java.lang.Long, long)
 {
@@ -282,9 +231,9 @@
 }
 public static float toFloat(java.lang.String, float)
 {
-java.lang.Throwable v, v, v;
-java.util.Scanner v;
+java.lang.Throwable v;
 float v, v;
+java.util.Scanner v;
 java.lang.String v;
 boolean v, v;
 v := @parameter: java.lang.String;
@@ -292,7 +241,6 @@
 if v == null goto label;
 v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>(" ");
 if v != 0 goto label;
-label:
 v = new java.util.Scanner;
 specialinvoke v.<java.util.Scanner: void <init>(java.lang.String)>(v);
 label:
@@ -301,25 +249,16 @@
 v = staticinvoke <java.lang.Float: float parseFloat(java.lang.String)>(v);
 label:
 virtualinvoke v.<java.util.Scanner: void close()>();
-label:
 return v;
 label:
 virtualinvoke v.<java.util.Scanner: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.util.Scanner: void close()>();
-label:
-throw v;
-label:
-v := @caughtexception;
-v = v;
 throw v;
 label:
 return v;
 catch java.lang.Throwable from label to label with label;
-catch java.lang.Throwable from label to label with label;
 }
 public static java.lang.String getJspEncoding(java.io.InputStream) throws java.io.IOException
 {
@@ -362,8 +301,9 @@
 specialinvoke v.<java.io.InputStreamReader: void <init>(java.io.InputStream,java.nio.charset.Charset)>(v, v);
 label:
 virtualinvoke v.<psiprobe.tokenizer.Tokenizer: void setReader(java.io.Reader)>(v);
-goto label;
 label:
+v = virtualinvoke v.<psiprobe.tokenizer.Tokenizer: boolean hasMore()>();
+if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.tokenizer.Tokenizer: psiprobe.tokenizer.Token nextToken()>();
 v = "dir";
 v = interfaceinvoke v.<psiprobe.tokenizer.Token: java.lang.String getName()>();
@@ -378,8 +318,9 @@
 v = interfaceinvoke v.<psiprobe.tokenizer.Token: java.lang.String getText()>();
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
 if v == 0 goto label;
-goto label;
 label:
+v = virtualinvoke v.<psiprobe.tokenizer.StringTokenizer: boolean hasMore()>();
+if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.tokenizer.StringTokenizer: psiprobe.tokenizer.Token nextToken()>();
 v = "pageEncoding";
 v = interfaceinvoke v.<psiprobe.tokenizer.Token: java.lang.String getText()>();
@@ -413,27 +354,20 @@
 if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.tokenizer.StringTokenizer: psiprobe.tokenizer.Token nextToken()>();
 v = interfaceinvoke v.<psiprobe.tokenizer.Token: java.lang.String getInnerText()>();
-label:
-v = virtualinvoke v.<psiprobe.tokenizer.StringTokenizer: boolean hasMore()>();
-if v != 0 goto label;
-label:
-v = virtualinvoke v.<psiprobe.tokenizer.Tokenizer: boolean hasMore()>();
-if v != 0 goto label;
+goto label;
 label:
 virtualinvoke v.<java.io.Reader: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.Reader: void close()>();
-label:
 throw v;
 label:
 if v != null goto label;
 if v == null goto label;
 virtualinvoke v.<psiprobe.tokenizer.StringTokenizer: void setString(java.lang.String)>(v);
-goto label;
 label:
+v = virtualinvoke v.<psiprobe.tokenizer.StringTokenizer: boolean hasMore()>();
+if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.tokenizer.StringTokenizer: psiprobe.tokenizer.Token nextToken()>();
 v = interfaceinvoke v.<psiprobe.tokenizer.Token: java.lang.String getText()>();
 v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("charset=");
@@ -441,10 +375,6 @@
 v = "charset=";
 v = virtualinvoke v.<java.lang.String: int length()>();
 v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
-goto label;
-label:
-v = virtualinvoke v.<psiprobe.tokenizer.StringTokenizer: boolean hasMore()>();
-if v != 0 goto label;
 label:
 if v == null goto label;
 v = v;
@@ -461,7 +391,6 @@
 java.io.RandomAccessFile v;
 byte v, v, v, v, v, v, v;
 boolean v, v;
-java.lang.StringBuilder v, v;
 java.lang.Throwable v, v, v;
 long v, v, v, v, v, v, v, v, v, v, v;
 javax.servlet.http.HttpServletRequest v;
@@ -475,7 +404,6 @@
 v := @parameter: javax.servlet.http.HttpServletRequest;
 v := @parameter: javax.servlet.http.HttpServletResponse;
 v := @parameter: java.io.File;
-v = null;
 v = interfaceinvoke v.<javax.servlet.http.HttpServletResponse: javax.servlet.ServletOutputStream getOutputStream()>();
 label:
 v = new java.io.RandomAccessFile;
@@ -527,17 +455,15 @@
 interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("", v);
 label:
 interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setContentType(java.lang.String)>("application/x-download");
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("attachment; filename=");
 v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
-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[])>("\u0001");
+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[])>("attachment; filename=\u0001");
 interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setHeader(java.lang.String,java.lang.String)>("Content-Disposition", v);
 interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setHeader(java.lang.String,java.lang.String)>("Accept-Ranges", "bytes");
 v = v - v;
 v = v + 1L;
 v = staticinvoke <java.lang.Long: java.lang.String toString(long)>(v);
 interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setHeader(java.lang.String,java.lang.String)>("Content-Length", v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("bytes ");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long,long)>(v, 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[])>("\u0001-\u0001/\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long,long)>(v, 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[])>("bytes \u0001-\u0001/\u0001");
 interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setHeader(java.lang.String,java.lang.String)>("Content-Range", v);
 virtualinvoke v.<java.io.RandomAccessFile: void seek(long)>(v);
 v = newarray (byte)[4096];
@@ -565,10 +491,6 @@
 goto label;
 label:
 v := @caughtexception;
-v = v;
-if v == null goto label;
-virtualinvoke v.<java.io.RandomAccessFile: void close()>();
-label:
 throw v;
 label:
 if v == null goto label;
@@ -576,16 +498,15 @@
 goto label;
 label:
 v := @caughtexception;
-if v != null goto label;
-v = v;
+if v == null goto label;
+label:
+virtualinvoke v.<java.io.OutputStream: void close()>();
+label:
 goto label;
 label:
-if v == v goto label;
+v := @caughtexception;
 virtualinvoke v.<java.lang.Throwable: void addSuppressed(java.lang.Throwable)>(v);
 label:
-if v == null goto label;
-virtualinvoke v.<java.io.OutputStream: void close()>();
-label:
 throw v;
 label:
 return;
@@ -593,6 +514,7 @@
 catch java.lang.NumberFormatException 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;
+catch java.lang.Throwable from label to label with label;
 }
 public static java.lang.Thread getThreadByName(java.lang.String)
 {
@@ -606,18 +528,18 @@
 if v == null goto label;
 v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
 v = virtualinvoke v.<java.lang.Thread: java.lang.ThreadGroup getThreadGroup()>();
-goto label;
 label:
 v = virtualinvoke v.<java.lang.ThreadGroup: java.lang.ThreadGroup getParent()>();
-label:
+if v == null goto label;
 v = virtualinvoke v.<java.lang.ThreadGroup: java.lang.ThreadGroup getParent()>();
-if v != null goto label;
+goto label;
+label:
 v = virtualinvoke v.<java.lang.ThreadGroup: int activeCount()>();
 v = newarray (java.lang.Thread)[v];
 v = virtualinvoke v.<java.lang.ThreadGroup: int enumerate(java.lang.Thread[])>(v);
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 if v == null goto label;
 v = v[v];
@@ -628,8 +550,7 @@
 return v;
 label:
 v = v + 1;
-label:
-if v < v goto label;
+goto label;
 label:
 return null;
 }
@@ -678,8 +599,9 @@
 v = new java.lang.StringBuilder;
 specialinvoke v.<java.lang.StringBuilder: void <init>()>();
 v = 0L;
-goto label;
 label:
+v = virtualinvoke v.<psiprobe.tokenizer.Tokenizer: boolean hasMore()>();
+if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.tokenizer.Tokenizer: psiprobe.tokenizer.Token nextToken()>();
 v = "EOL";
 v = interfaceinvoke v.<psiprobe.tokenizer.Token: java.lang.String getName()>();
@@ -702,15 +624,14 @@
 v = interfaceinvoke v.<psiprobe.tokenizer.Token: java.lang.String getText()>();
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("</span>");
+goto label;
 label:
-v = virtualinvoke v.<psiprobe.tokenizer.Tokenizer: boolean hasMore()>();
-if v != 0 goto label;
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
 return v;
 }
 public static void sendCompressedFile(javax.servlet.http.HttpServletResponse, java.io.File) throws java.io.IOException
 {
-java.lang.Throwable v, v, v;
+java.lang.Throwable v, v;
 java.util.zip.ZipOutputStream v;
 byte[] v;
 java.io.BufferedInputStream v;
@@ -723,11 +644,9 @@
 java.util.zip.ZipEntry v;
 javax.servlet.http.HttpServletResponse v;
 java.io.File v;
-java.lang.StringBuilder v;
 java.io.InputStream v;
 v := @parameter: javax.servlet.http.HttpServletResponse;
 v := @parameter: java.io.File;
-v = null;
 v = new java.util.zip.ZipOutputStream;
 v = interfaceinvoke v.<javax.servlet.http.HttpServletResponse: javax.servlet.ServletOutputStream getOutputStream()>();
 specialinvoke v.<java.util.zip.ZipOutputStream: void <init>(java.io.OutputStream)>(v);
@@ -740,46 +659,31 @@
 label:
 v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
 interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setContentType(java.lang.String)>("application/zip");
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("attachment; filename=");
-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[])>("\u.zip");
+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[])>("attachment; filename=\u.zip");
 interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void setHeader(java.lang.String,java.lang.String)>("Content-Disposition", v);
 v = new java.util.zip.ZipEntry;
 specialinvoke v.<java.util.zip.ZipEntry: void <init>(java.lang.String)>(v);
 virtualinvoke v.<java.util.zip.ZipOutputStream: void putNextEntry(java.util.zip.ZipEntry)>(v);
 v = newarray (byte)[4096];
-goto label;
-label:
-virtualinvoke v.<java.util.zip.ZipOutputStream: void write(byte[],int,int)>(v, 0, v);
 label:
 v = virtualinvoke v.<java.io.InputStream: int read(byte[])>(v);
 v = v cmp 0L;
-if v > 0 goto label;
+if v <= 0 goto label;
+virtualinvoke v.<java.util.zip.ZipOutputStream: void write(byte[],int,int)>(v, 0, v);
+goto label;
+label:
 virtualinvoke v.<java.util.zip.ZipOutputStream: void closeEntry()>();
 label:
 virtualinvoke v.<java.io.InputStream: void close()>();
 goto label;
 label:
 v := @caughtexception;
-v = v;
-if v == null goto label;
-virtualinvoke v.<java.io.InputStream: void close()>();
-label:
 throw v;
 label:
 virtualinvoke v.<java.util.zip.ZipOutputStream: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v != null goto label;
-v = v;
-goto label;
-label:
-if v == v goto label;
-virtualinvoke v.<java.lang.Throwable: void addSuppressed(java.lang.Throwable)>(v);
-label:
-if v == null goto label;
-virtualinvoke v.<java.util.zip.ZipOutputStream: void close()>();
-label:
 throw v;
 label:
 return;
@@ -855,7 +759,7 @@
 javax.management.MBeanServer v;
 java.util.Set v;
 javax.management.ObjectName v;
-boolean v;
+boolean v, v;
 label:
 v = staticinvoke <java.lang.management.ManagementFactory: javax.management.MBeanServer getPlatformMBeanServer()>();
 v = new javax.management.ObjectName;
@@ -864,9 +768,12 @@
 if v == null goto label;
 v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
 if v != 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 label:
 v := @caughtexception;
 v = <psiprobe.Utils: org.slf4j.Logger logger>;
@@ -874,4 +781,11 @@
 return 0;
 catch javax.management.MalformedObjectNameException from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/Utils;");
+<psiprobe.Utils: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ClusterWrapperBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ClusterWrapperBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ClusterWrapperBean.jimple	2025-03-13 18:06:11.319880897 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ClusterWrapperBean.jimple	2025-03-13 18:06:17.023791157 +0000
@@ -11,11 +11,10 @@
 {
 java.util.Set v, v;
 psiprobe.beans.ClusterWrapperBean v;
-java.lang.StringBuilder v, v, v, v;
 psiprobe.model.jmx.AsyncClusterSender v;
 long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
 psiprobe.model.jmx.SyncClusterSender v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
 psiprobe.model.jmx.PooledClusterSender v;
 boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v;
 javax.management.ObjectName v, v, v, v, v, v;
@@ -33,23 +32,16 @@
 v = null;
 v = staticinvoke <java.lang.management.ManagementFactory: javax.management.MBeanServer getPlatformMBeanServer()>();
 v = new javax.management.ObjectName;
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>(":type=ClusterMembership,host=\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001:type=ClusterMembership,host=\u0001");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = new javax.management.ObjectName;
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>(":type=ClusterReceiver,host=\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001:type=ClusterReceiver,host=\u0001");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = new javax.management.ObjectName;
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>(":type=ClusterSender,host=\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001:type=ClusterSender,host=\u0001");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = new javax.management.ObjectName;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("*:type=Cluster,host=");
-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[])>("\u0001");
+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[])>("*:type=Cluster,host=\u0001");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = interfaceinvoke v.<javax.management.MBeanServer: java.util.Set queryMBeans(javax.management.ObjectName,javax.management.QueryExp)>(v, null);
 v = interfaceinvoke v.<javax.management.MBeanServer: java.util.Set queryMBeans(javax.management.ObjectName,javax.management.QueryExp)>(v, null);
@@ -112,8 +104,8 @@
 v = interfaceinvoke v.<javax.management.MBeanServer: java.lang.Object getAttribute(javax.management.ObjectName,java.lang.String)>(v, "senderObjectNames");
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = "pooled";
 v = virtualinvoke v.<psiprobe.model.jmx.Cluster: java.lang.String getSenderReplicationMode()>();
@@ -210,8 +202,7 @@
 v = virtualinvoke v.<psiprobe.model.jmx.Cluster: java.util.List getMembers()>();
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = v + 1;
-label:
-if v < v goto label;
+goto label;
 label:
 return v;
 }
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ContainerListenerBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ContainerListenerBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ContainerListenerBean.jimple	2025-03-13 18:06:11.315880960 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ContainerListenerBean.jimple	2025-03-13 18:06:17.019791221 +0000
@@ -5,13 +5,6 @@
 private java.util.List poolNames;
 private java.util.List executorNames;
 private psiprobe.beans.ContainerWrapperBean containerWrapper;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/ContainerListenerBean;");
-<psiprobe.beans.ContainerListenerBean: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 java.util.HashSet v;
@@ -52,16 +45,19 @@
 {
 java.util.List v, v;
 psiprobe.beans.ContainerListenerBean v;
-boolean v;
+boolean v, v;
 v := @this: psiprobe.beans.ContainerListenerBean;
 v = v.<psiprobe.beans.ContainerListenerBean: java.util.List poolNames>;
 if v == null goto label;
 v = v.<psiprobe.beans.ContainerListenerBean: java.util.List poolNames>;
 v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
 if v != 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 private psiprobe.model.jmx.ThreadPoolObjectName findPool(java.lang.String)
 {
@@ -79,8 +75,9 @@
 if v == 0 goto label;
 v = v.<psiprobe.beans.ContainerListenerBean: java.util.List poolNames>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.jmx.ThreadPoolObjectName: javax.management.ObjectName getThreadPoolName()>();
 v = virtualinvoke v.<javax.management.ObjectName: java.lang.String getKeyProperty(java.lang.String)>("name");
@@ -88,9 +85,6 @@
 if v == 0 goto label;
 return v;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 return null;
 }
 public synchronized void handleNotification(javax.management.Notification, java.lang.Object)
@@ -149,11 +143,10 @@
 psiprobe.beans.ContainerListenerBean v;
 java.util.List v, v, v;
 psiprobe.model.jmx.ThreadPoolObjectName v;
-java.lang.StringBuilder v, v, v, v;
 java.util.ArrayList v, v;
 javax.management.MBeanServer v;
 int v, v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v;
 java.util.Iterator v, v, v;
 psiprobe.TomcatContainer v;
 psiprobe.beans.ContainerWrapperBean v, v;
@@ -166,9 +159,7 @@
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
 v = interfaceinvoke v.<psiprobe.TomcatContainer: java.lang.String getName()>();
 v = new javax.management.ObjectName;
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(":type=ThreadPool,name=\"*\"");
+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[])>("\u0001:type=ThreadPool,name=\"*\"");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = interfaceinvoke v.<javax.management.MBeanServer: java.util.Set queryMBeans(javax.management.ObjectName,javax.management.QueryExp)>(v, null);
 v = new java.util.ArrayList;
@@ -176,8 +167,9 @@
 specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
 v.<psiprobe.beans.ContainerListenerBean: java.util.List poolNames> = v;
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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 = new psiprobe.model.jmx.ThreadPoolObjectName;
 specialinvoke v.<psiprobe.model.jmx.ThreadPoolObjectName: void <init>()>();
@@ -186,23 +178,20 @@
 virtualinvoke v.<psiprobe.model.jmx.ThreadPoolObjectName: void setThreadPoolName(javax.management.ObjectName)>(v);
 v = new javax.management.ObjectName;
 v = virtualinvoke v.<javax.management.ObjectName: java.lang.String getDomain()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>(":type=GlobalRequestProcessor,name=\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001:type=GlobalRequestProcessor,name=\u0001");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = interfaceinvoke v.<javax.management.MBeanServer: javax.management.ObjectInstance getObjectInstance(javax.management.ObjectName)>(v);
 v = virtualinvoke v.<javax.management.ObjectInstance: javax.management.ObjectName getObjectName()>();
 virtualinvoke v.<psiprobe.model.jmx.ThreadPoolObjectName: void setGlobalRequestProcessorName(javax.management.ObjectName)>(v);
 v = new javax.management.ObjectName;
 v = virtualinvoke v.<javax.management.ObjectName: java.lang.String getDomain()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(":type=RequestProcessor,*");
+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[])>("\u0001:type=RequestProcessor,*");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = interfaceinvoke v.<javax.management.MBeanServer: java.util.Set queryMBeans(javax.management.ObjectName,javax.management.QueryExp)>(v, null);
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<javax.management.ObjectInstance: javax.management.ObjectName getObjectName()>();
 v = virtualinvoke v.<javax.management.ObjectName: java.lang.String getKeyProperty(java.lang.String)>("worker");
@@ -210,18 +199,14 @@
 if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.model.jmx.ThreadPoolObjectName: java.util.List getRequestProcessorNames()>();
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = v.<psiprobe.beans.ContainerListenerBean: java.util.List poolNames>;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = new javax.management.ObjectName;
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(":type=Executor,*");
+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[])>("\u0001:type=Executor,*");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = interfaceinvoke v.<javax.management.MBeanServer: java.util.Set queryMBeans(javax.management.ObjectName,javax.management.QueryExp)>(v, null);
 v = new java.util.ArrayList;
@@ -229,15 +214,15 @@
 specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
 v.<psiprobe.beans.ContainerListenerBean: java.util.List executorNames> = v;
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<javax.management.ObjectInstance: javax.management.ObjectName getObjectName()>();
 v = v.<psiprobe.beans.ContainerListenerBean: java.util.List executorNames>;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = new javax.management.ObjectName;
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>("JMImplementation:type=MBeanServerDelegate");
 interfaceinvoke v.<javax.management.MBeanServer: void addNotificationListener(javax.management.ObjectName,javax.management.NotificationListener,javax.management.NotificationFilter,java.lang.Object)>(v, v, null, null);
@@ -274,8 +259,9 @@
 v = interfaceinvoke v.<psiprobe.beans.ResourceResolver: javax.management.MBeanServer getMBeanServer()>();
 v = v.<psiprobe.beans.ContainerListenerBean: java.util.List executorNames>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = new psiprobe.model.ThreadPool;
 specialinvoke v.<psiprobe.model.ThreadPool: void <init>()>();
@@ -292,13 +278,13 @@
 v = staticinvoke <psiprobe.tools.JmxTools: int getIntAttr(javax.management.MBeanServer,javax.management.ObjectName,java.lang.String)>(v, v, "poolSize");
 virtualinvoke v.<psiprobe.model.ThreadPool: void setCurrentThreadCount(int)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = v.<psiprobe.beans.ContainerListenerBean: java.util.List poolNames>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 label:
 v = virtualinvoke v.<psiprobe.model.jmx.ThreadPoolObjectName: javax.management.ObjectName getThreadPoolName()>();
@@ -331,9 +317,8 @@
 interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Failed to query entire thread pool {}", v);
 v = <psiprobe.beans.ContainerListenerBean: org.slf4j.Logger logger>;
 interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("", v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return v;
 catch javax.management.InstanceNotFoundException from label to label with label;
 }
@@ -347,7 +332,6 @@
 java.lang.IllegalArgumentException v;
 javax.management.MBeanServer v;
 psiprobe.beans.ContainerWrapperBean v;
-java.lang.StringBuilder v;
 java.lang.String v, v, v;
 boolean v;
 v := @this: psiprobe.beans.ContainerListenerBean;
@@ -363,8 +347,7 @@
 throw v;
 label:
 v = new javax.management.ObjectName;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Catalina:type=Connector,port=");
-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[])>("\u0001");
+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[])>("Catalina:type=Connector,port=\u0001");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.beans.ContainerListenerBean: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.beans.ResourceResolver getResourceResolver()>();
@@ -382,13 +365,12 @@
 psiprobe.beans.ResourceResolver v;
 com.maxmind.db.CHMCache v;
 com.maxmind.geoip.model.CountryResponse v;
-java.lang.StringBuilder v;
 java.lang.ClassLoader v;
-java.lang.Throwable v;
+java.lang.Throwable v, v;
 long v, v, v, v, v, v, v;
 java.util.ArrayList v;
 psiprobe.model.Connector v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
 java.io.File v;
 java.net.URL v;
 com.maxmind.geoip.record.Country v;
@@ -404,7 +386,7 @@
 psiprobe.model.RequestProcessor v;
 int v, v, v, v, v, v, v, v, v;
 javax.management.InstanceNotFoundException v, v;
-org.slf4j.Logger v, v, v, v, v;
+org.slf4j.Logger v, v, v, v, v, v, v;
 java.util.Iterator v, v;
 com.maxmind.geoip.DatabaseReader$Builder v, v;
 psiprobe.beans.ContainerWrapperBean v;
@@ -426,8 +408,9 @@
 v = interfaceinvoke v.<psiprobe.beans.ResourceResolver: javax.management.MBeanServer getMBeanServer()>();
 v = v.<psiprobe.beans.ContainerListenerBean: java.util.List poolNames>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 label:
 v = virtualinvoke v.<psiprobe.model.jmx.ThreadPoolObjectName: javax.management.ObjectName getThreadPoolName()>();
@@ -453,8 +436,7 @@
 v = "-1";
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
 if v != 0 goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Catalina:type=Connector,port=");
-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[])>("\u0001");
+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[])>("Catalina:type=Connector,port=\u0001");
 v = new javax.management.ObjectName;
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = staticinvoke <psiprobe.tools.JmxTools: java.lang.String getStringAttr(javax.management.MBeanServer,javax.management.ObjectName,java.lang.String)>(v, v, "stateName");
@@ -489,8 +471,9 @@
 if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.model.jmx.ThreadPoolObjectName: java.util.List getRequestProcessorNames()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 label:
 v = new psiprobe.model.RequestProcessor;
@@ -554,11 +537,15 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<com.maxmind.geoip.DatabaseReader: void close()>();
-label:
 throw v;
 label:
+v := @caughtexception;
+v = <psiprobe.beans.ContainerListenerBean: org.slf4j.Logger logger>;
+v = virtualinvoke v.<com.maxmind.geoip.exception.AddressNotFoundException: java.lang.String getMessage()>();
+interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Address Not Found: {}", v);
+v = <psiprobe.beans.ContainerListenerBean: org.slf4j.Logger logger>;
+interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("", v);
+label:
 v = staticinvoke <psiprobe.tools.JmxTools: java.lang.String getStringAttr(javax.management.MBeanServer,javax.management.ObjectName,java.lang.String)>(v, v, "virtualHost");
 virtualinvoke v.<psiprobe.model.RequestProcessor: void setVirtualHost(java.lang.String)>(v);
 v = staticinvoke <psiprobe.tools.JmxTools: java.lang.String getStringAttr(javax.management.MBeanServer,javax.management.ObjectName,java.lang.String)>(v, v, "method");
@@ -589,9 +576,7 @@
 interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Failed to query RequestProcessor {}", v);
 v = <psiprobe.beans.ContainerListenerBean: org.slf4j.Logger logger>;
 interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("", v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 label:
@@ -602,13 +587,20 @@
 interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Failed to query entire thread pool {}", v);
 v = <psiprobe.beans.ContainerListenerBean: org.slf4j.Logger logger>;
 interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("  Stack trace:", v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return v;
 catch javax.management.RuntimeOperationsException from label to label with label;
 catch java.lang.Throwable from label to label with label;
+catch com.maxmind.geoip.exception.AddressNotFoundException from label to label with label;
 catch javax.management.InstanceNotFoundException from label to label with label;
 catch javax.management.InstanceNotFoundException from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/ContainerListenerBean;");
+<psiprobe.beans.ContainerListenerBean: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ContainerWrapperBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ContainerWrapperBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ContainerWrapperBean.jimple	2025-03-13 18:06:11.299881211 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ContainerWrapperBean.jimple	2025-03-13 18:06:17.003791472 +0000
@@ -7,13 +7,6 @@
 private psiprobe.beans.ResourceResolver resourceResolver;
 private boolean forceFirstAdapter;
 private java.util.Map resourceResolvers;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/ContainerWrapperBean;");
-<psiprobe.beans.ContainerWrapperBean: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 java.lang.Object v;
@@ -73,8 +66,9 @@
 interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Server info: {}", v);
 v = v.<psiprobe.beans.ContainerWrapperBean: java.util.List adapterClasses>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 label:
 v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>(v);
@@ -115,9 +109,7 @@
 interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("", v);
 v = <psiprobe.beans.ContainerWrapperBean: org.slf4j.Logger logger>;
 interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Failed to load {}", v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 v = v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer tomcatContainer>;
 if v != null goto label;
@@ -257,15 +249,14 @@
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
 v = interfaceinvoke v.<psiprobe.TomcatContainer: java.util.List findContexts()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.beans.ResourceResolver getResourceResolver()>();
 v = interfaceinvoke v.<psiprobe.beans.ResourceResolver: java.util.List getApplicationResources(org.apache.catalina.Context,psiprobe.beans.ContainerWrapperBean)>(v, v);
 virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: void filterDataSources(java.util.List,java.util.List)>(v, v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 return v;
 }
@@ -300,15 +291,22 @@
 v := @parameter: java.util.List;
 v := @parameter: java.util.List;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.ApplicationResource: psiprobe.model.DataSourceInfo getDataSourceInfo()>();
 if v == null goto label;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+return;
+}
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/ContainerWrapperBean;");
+<psiprobe.beans.ContainerWrapperBean: org.slf4j.Logger logger> = v;
 return;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.JBossResourceResolverBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.JBossResourceResolverBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.JBossResourceResolverBean.jimple	2025-03-13 18:06:11.323880833 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.JBossResourceResolverBean.jimple	2025-03-13 18:06:17.027791096 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.beans.JBossResourceResolverBean extends java.lang.Object implements psiprobe.beans.ResourceResolver
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/JBossResourceResolverBean;");
-<psiprobe.beans.JBossResourceResolverBean: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.beans.JBossResourceResolverBean v;
@@ -26,8 +19,9 @@
 v := @this: psiprobe.beans.JBossResourceResolverBean;
 v = staticinvoke <javax.management.MBeanServerFactory: java.util.ArrayList findMBeanServer(java.lang.String)>(null);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = "jboss";
 v = interfaceinvoke v.<javax.management.MBeanServer: java.lang.String getDefaultDomain()>();
@@ -40,8 +34,6 @@
 label:
 return v;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return null;
 }
 public boolean supportsPrivateResources()
@@ -68,7 +60,6 @@
 java.util.Set v;
 javax.management.ObjectName v, v;
 java.lang.Exception v;
-java.lang.StringBuilder v;
 psiprobe.model.ApplicationResource v;
 java.util.ArrayList v;
 javax.management.MBeanServer v;
@@ -92,8 +83,9 @@
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>("jboss.jca:service=ManagedConnectionPool,*");
 v = interfaceinvoke v.<javax.management.MBeanServer: java.util.Set queryNames(javax.management.ObjectName,javax.management.QueryExp)>(v, null);
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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 = new psiprobe.model.ApplicationResource;
 specialinvoke v.<psiprobe.model.ApplicationResource: void <init>()>();
@@ -127,16 +119,16 @@
 v = virtualinvoke v.<java.lang.Long: int intValue()>();
 virtualinvoke v.<psiprobe.model.DataSourceInfo: void setBusyConnections(int)>(v);
 v = new javax.management.ObjectName;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("jboss.jca:service=ManagedConnectionFactory,name=");
 v = virtualinvoke v.<psiprobe.model.ApplicationResource: java.lang.String getName()>();
-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[])>("\u0001");
+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[])>("jboss.jca:service=ManagedConnectionFactory,name=\u0001");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = interfaceinvoke v.<javax.management.MBeanServer: java.lang.Object getAttribute(javax.management.ObjectName,java.lang.String)>(v, "ManagedConnectionFactoryProperties");
 if v == null goto label;
 v = interfaceinvoke v.<org.w3c.dom.Element: org.w3c.dom.NodeList getChildNodes()>();
 v = 0;
-goto label;
 label:
+v = interfaceinvoke v.<org.w3c.dom.NodeList: int getLength()>();
+if v >= v goto label;
 v = interfaceinvoke v.<org.w3c.dom.NodeList: org.w3c.dom.Node item(int)>(v);
 v = interfaceinvoke v.<org.w3c.dom.Node: org.w3c.dom.NamedNodeMap getAttributes()>();
 v = interfaceinvoke v.<org.w3c.dom.NamedNodeMap: org.w3c.dom.Node getNamedItem(java.lang.String)>("name");
@@ -167,17 +159,11 @@
 virtualinvoke v.<psiprobe.model.ApplicationResource: void setType(java.lang.String)>("jms");
 label:
 v = v + 1;
-label:
-v = interfaceinvoke v.<org.w3c.dom.NodeList: int getLength()>();
-if v < v goto label;
+goto label;
 label:
 virtualinvoke v.<psiprobe.model.DataSourceInfo: void setResettable(boolean)>(1);
 virtualinvoke v.<psiprobe.model.ApplicationResource: void setDataSourceInfo(psiprobe.model.DataSourceInfo)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -222,7 +208,6 @@
 javax.management.MBeanServer v;
 psiprobe.beans.ContainerWrapperBean v;
 psiprobe.beans.JBossResourceResolverBean v;
-java.lang.StringBuilder v, v;
 java.lang.String v, v, v;
 v := @this: psiprobe.beans.JBossResourceResolverBean;
 v := @parameter: org.apache.catalina.Context;
@@ -230,8 +215,7 @@
 v := @parameter: psiprobe.beans.ContainerWrapperBean;
 label:
 v = new javax.management.ObjectName;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("jboss.jca:service=ManagedConnectionPool,name=");
-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[])>("\u0001");
+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[])>("jboss.jca:service=ManagedConnectionPool,name=\u0001");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.beans.JBossResourceResolverBean: javax.management.MBeanServer getMBeanServer()>();
 if v == null goto label;
@@ -251,8 +235,7 @@
 v = <psiprobe.beans.JBossResourceResolverBean: org.slf4j.Logger logger>;
 interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("", v);
 v = new javax.naming.NamingException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Resource name: \"");
-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[])>("\u0001\" makes a malformed ObjectName");
+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[])>("Resource name: \"\u0001\" makes a malformed ObjectName");
 specialinvoke v.<javax.naming.NamingException: void <init>(java.lang.String)>(v);
 throw v;
 catch java.lang.Exception from label to label with label;
@@ -274,4 +257,11 @@
 specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("This feature has not been implemented for JBoss server yet.");
 throw v;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/JBossResourceResolverBean;");
+<psiprobe.beans.JBossResourceResolverBean: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.JvmMemoryInfoAccessorBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.JvmMemoryInfoAccessorBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.JvmMemoryInfoAccessorBean.jimple	2025-03-13 18:06:11.343880519 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.JvmMemoryInfoAccessorBean.jimple	2025-03-13 18:06:17.051790718 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.beans.JvmMemoryInfoAccessorBean extends java.lang.Object
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/JvmMemoryInfoAccessorBean;");
-<psiprobe.beans.JvmMemoryInfoAccessorBean: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.beans.JvmMemoryInfoAccessorBean v;
@@ -41,8 +34,9 @@
 v = 0L;
 v = 0L;
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<javax.management.ObjectInstance: javax.management.ObjectName getObjectName()>();
 v = new psiprobe.model.jmx.MemoryPool;
@@ -75,9 +69,8 @@
 v = virtualinvoke v.<psiprobe.model.jmx.MemoryPool: long getCommitted()>();
 v = v + v;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
 if v != 0 goto label;
 v = new psiprobe.model.jmx.MemoryPool;
@@ -92,4 +85,11 @@
 label:
 return v;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/JvmMemoryInfoAccessorBean;");
+<psiprobe.beans.JvmMemoryInfoAccessorBean: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
Only in results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar: psiprobe.beans.LogResolverBean$1.jimple
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.LogResolverBean$LogDestinationComparator.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.LogResolverBean$LogDestinationComparator.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.LogResolverBean$LogDestinationComparator.jimple	2025-03-13 18:06:11.399879638 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.LogResolverBean$LogDestinationComparator.jimple	2025-03-13 18:06:17.107789837 +0000
@@ -8,7 +8,7 @@
 boolean v;
 v := @this: psiprobe.beans.LogResolverBean$LogDestinationComparator;
 v := @parameter: boolean;
-specialinvoke v.<psiprobe.beans.LogResolverBean$AbstractLogComparator: void <init>(psiprobe.beans.LogResolverBean$AbstractLogComparator)>(null);
+specialinvoke v.<psiprobe.beans.LogResolverBean$AbstractLogComparator: void <init>()>();
 v.<psiprobe.beans.LogResolverBean$LogDestinationComparator: boolean all> = v;
 return;
 }
@@ -17,10 +17,9 @@
 psiprobe.tools.logging.LogDestination v;
 psiprobe.model.Application v;
 psiprobe.beans.LogResolverBean$LogDestinationComparator v;
-java.lang.String v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v;
 boolean v, v, v;
 java.io.File v;
-java.lang.StringBuilder v;
 v := @this: psiprobe.beans.LogResolverBean$LogDestinationComparator;
 v := @parameter: psiprobe.tools.logging.LogDestination;
 v = interfaceinvoke v.<psiprobe.tools.logging.LogDestination: java.io.File getFile()>();
@@ -57,9 +56,7 @@
 v = "not";
 label:
 v = interfaceinvoke v.<psiprobe.tools.logging.LogDestination: java.lang.String getLogType()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, 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[])>("!\u0001!\u0001!\u0001!\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, 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[])>("\u0001!\u0001!\u0001!\u0001!\u0001");
 goto label;
 label:
 v = v;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.LogResolverBean$LogSourceComparator.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.LogResolverBean$LogSourceComparator.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.LogResolverBean$LogSourceComparator.jimple	2025-03-13 18:06:11.399879638 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.LogResolverBean$LogSourceComparator.jimple	2025-03-13 18:06:17.107789837 +0000
@@ -5,7 +5,7 @@
 {
 psiprobe.beans.LogResolverBean$LogSourceComparator v;
 v := @this: psiprobe.beans.LogResolverBean$LogSourceComparator;
-specialinvoke v.<psiprobe.beans.LogResolverBean$AbstractLogComparator: void <init>(psiprobe.beans.LogResolverBean$AbstractLogComparator)>(null);
+specialinvoke v.<psiprobe.beans.LogResolverBean$AbstractLogComparator: void <init>()>();
 return;
 }
 protected java.lang.String convertToString(psiprobe.tools.logging.LogDestination)
@@ -13,10 +13,9 @@
 psiprobe.tools.logging.LogDestination v;
 psiprobe.beans.LogResolverBean$LogSourceComparator v;
 psiprobe.model.Application v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v, v;
 boolean v, v;
 java.io.File v;
-java.lang.StringBuilder v;
 v := @this: psiprobe.beans.LogResolverBean$LogSourceComparator;
 v := @parameter: psiprobe.tools.logging.LogDestination;
 v = interfaceinvoke v.<psiprobe.tools.logging.LogDestination: java.io.File getFile()>();
@@ -52,9 +51,7 @@
 v = "not";
 label:
 v = interfaceinvoke v.<psiprobe.tools.logging.LogDestination: java.lang.String getName()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, 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[])>("!\u0001!\u0001!\u0001!\u0001!\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v, 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[])>("\u0001!\u0001!\u0001!\u0001!\u0001!\u0001");
 return v;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.LogResolverBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.LogResolverBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.LogResolverBean.jimple	2025-03-13 18:06:11.331880707 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.LogResolverBean.jimple	2025-03-13 18:06:17.039790906 +0000
@@ -3,13 +3,6 @@
 private static final org.slf4j.Logger logger;
 private psiprobe.beans.ContainerWrapperBean containerWrapper;
 private java.util.List stdoutFiles;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/LogResolverBean;");
-<psiprobe.beans.LogResolverBean: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.beans.LogResolverBean v;
@@ -82,8 +75,9 @@
 specialinvoke v.<psiprobe.beans.LogResolverBean$LogDestinationComparator: void <init>(boolean)>(v);
 staticinvoke <java.util.Collections: void sort(java.util.List,java.util.Comparator)>(v, v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = staticinvoke <java.util.Collections: int binarySearch(java.util.List,java.lang.Object,java.util.Comparator)>(v, v, v);
 if v >= 0 goto label;
@@ -98,9 +92,8 @@
 specialinvoke v.<psiprobe.model.DisconnectedLogDestination: void <init>()>();
 v = virtualinvoke v.<psiprobe.model.DisconnectedLogDestination: psiprobe.model.DisconnectedLogDestination builder(psiprobe.tools.logging.LogDestination)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return v;
 }
 public java.util.List getLogSources(java.io.File)
@@ -118,16 +111,16 @@
 specialinvoke v.<java.util.LinkedList: void <init>()>();
 v = virtualinvoke v.<psiprobe.beans.LogResolverBean: java.util.List getLogSources()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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.<psiprobe.tools.logging.LogDestination: java.io.File getFile()>();
 v = virtualinvoke v.<java.io.File: boolean equals(java.lang.Object)>(v);
 if v == 0 goto label;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return v;
 }
 public java.util.List getLogSources()
@@ -147,11 +140,12 @@
 v = specialinvoke v.<psiprobe.beans.LogResolverBean: java.util.List getAllLogDestinations()>();
 if v == null goto label;
 v = new psiprobe.beans.LogResolverBean$LogSourceComparator;
-specialinvoke v.<psiprobe.beans.LogResolverBean$LogSourceComparator: void <init>(psiprobe.beans.LogResolverBean$LogSourceComparator)>(null);
+specialinvoke v.<psiprobe.beans.LogResolverBean$LogSourceComparator: void <init>()>();
 staticinvoke <java.util.Collections: void sort(java.util.List,java.util.Comparator)>(v, v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = staticinvoke <java.util.Collections: int binarySearch(java.util.List,java.lang.Object,java.util.Comparator)>(v, v, v);
 if v >= 0 goto label;
@@ -159,9 +153,7 @@
 specialinvoke v.<psiprobe.model.DisconnectedLogDestination: void <init>()>();
 v = virtualinvoke v.<psiprobe.model.DisconnectedLogDestination: psiprobe.model.DisconnectedLogDestination builder(psiprobe.tools.logging.LogDestination)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 return v;
 }
@@ -187,24 +179,24 @@
 v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
 v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
 v = virtualinvoke v.<java.lang.ClassLoader: java.lang.ClassLoader getParent()>();
-goto label;
 label:
+if v == null goto label;
 specialinvoke v.<psiprobe.beans.LogResolverBean: void interrogateClassLoader(java.lang.ClassLoader,psiprobe.model.Application,java.util.List)>(v, null, v);
 v = virtualinvoke v.<java.lang.ClassLoader: java.lang.ClassLoader getParent()>();
+goto label;
 label:
-if v != null goto label;
 specialinvoke v.<psiprobe.beans.LogResolverBean: void interrogateStdOutFiles(java.util.List)>(v);
 v = virtualinvoke v.<psiprobe.beans.LogResolverBean: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
 v = interfaceinvoke v.<psiprobe.TomcatContainer: java.util.List findContexts()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 specialinvoke v.<psiprobe.beans.LogResolverBean: void interrogateContext(org.apache.catalina.Context,java.util.List)>(v, v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return v;
 }
 public psiprobe.tools.logging.LogDestination getLogDestination(java.lang.String, java.lang.String, boolean, boolean, java.lang.String, java.lang.String)
@@ -214,6 +206,7 @@
 boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
 org.apache.catalina.Loader v;
 java.lang.ClassLoader v, v, v;
+java.lang.Throwable v;
 psiprobe.beans.LogResolverBean v;
 psiprobe.model.Application v;
 java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
@@ -341,8 +334,16 @@
 label:
 if v == null goto label;
 staticinvoke <org.springframework.util.ClassUtils: java.lang.ClassLoader overrideThreadContextClassLoader(java.lang.ClassLoader)>(v);
+goto label;
+label:
+v := @caughtexception;
+if v == null goto label;
+staticinvoke <org.springframework.util.ClassUtils: java.lang.ClassLoader overrideThreadContextClassLoader(java.lang.ClassLoader)>(v);
+label:
+throw v;
 label:
 return v;
+catch java.lang.Throwable from label to label with label;
 }
 private void interrogateContext(org.apache.catalina.Context, java.util.List)
 {
@@ -421,14 +422,16 @@
 label:
 v = specialinvoke v.<psiprobe.beans.LogResolverBean: java.util.List getLoggerContexts(java.lang.ClassLoader)>(v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = specialinvoke v.<psiprobe.beans.LogResolverBean: java.util.Map getLoggerConfigs(java.lang.Object)>(v);
 v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
 v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
-goto label;
 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 = new psiprobe.tools.logging.log4j.Log4J2LoggerConfigAccessor;
 specialinvoke v.<psiprobe.tools.logging.log4j.Log4J2LoggerConfigAccessor: void <init>()>();
@@ -443,8 +446,9 @@
 v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
 v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
 v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
-goto label;
 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 = new psiprobe.tools.logging.log4j.Log4J2AppenderAccessor;
 specialinvoke v.<psiprobe.tools.logging.log4j.Log4J2AppenderAccessor: void <init>()>();
@@ -452,16 +456,6 @@
 virtualinvoke v.<psiprobe.tools.logging.log4j.Log4J2AppenderAccessor: void setLoggerAccessor(psiprobe.tools.logging.log4j.Log4J2LoggerConfigAccessor)>(v);
 virtualinvoke v.<psiprobe.tools.logging.log4j.Log4J2AppenderAccessor: void setApplication(psiprobe.model.Application)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -474,6 +468,8 @@
 label:
 specialinvoke v.<psiprobe.beans.LogResolverBean: void interrogateClassLoader(java.lang.ClassLoader,psiprobe.model.Application,java.util.List)>(v, v, v);
 label:
+if v == null goto label;
+staticinvoke <org.springframework.util.ClassUtils: java.lang.ClassLoader overrideThreadContextClassLoader(java.lang.ClassLoader)>(v);
 goto label;
 label:
 v := @caughtexception;
@@ -493,39 +489,35 @@
 label:
 throw v;
 label:
-if v == null goto label;
-staticinvoke <org.springframework.util.ClassUtils: java.lang.ClassLoader overrideThreadContextClassLoader(java.lang.ClassLoader)>(v);
-label:
 return;
 catch java.lang.Exception from label to label with label;
 catch java.lang.Exception 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 void interrogateClassLoader(java.lang.ClassLoader, psiprobe.model.Application, java.util.List)
 {
 psiprobe.tools.logging.logback.Logback13FactoryAccessor v;
-psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13FactoryAccessor v;
-psiprobe.tools.logging.jdk.Jdk14ManagerAccessor v;
-java.lang.Exception v, v, v, v, v, v;
-java.util.List v, v, v, v, v, v, v;
-psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackFactoryAccessor v;
-java.lang.StringBuilder v;
-java.lang.ClassLoader v;
 psiprobe.beans.LogResolverBean v;
 psiprobe.model.Application v;
 psiprobe.tools.logging.log4j.Log4JManagerAccessor v;
 java.lang.String v, v, v;
+psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13FactoryAccessor v;
 org.slf4j.Logger v, v, v, v, v, v;
+psiprobe.tools.logging.jdk.Jdk14ManagerAccessor v;
+java.lang.Exception v, v, v, v, v, v;
+java.util.List v, v, v, v, v, v, v;
+psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackFactoryAccessor v;
 psiprobe.tools.logging.logback.LogbackFactoryAccessor v;
+java.lang.ClassLoader v;
 v := @this: psiprobe.beans.LogResolverBean;
 v := @parameter: java.lang.ClassLoader;
 v := @parameter: psiprobe.model.Application;
 v := @parameter: java.util.List;
 if v == null goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("application \"");
 v = virtualinvoke v.<psiprobe.model.Application: java.lang.String getName()>();
-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[])>("\u0001\"");
+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[])>("application \"\u0001\"");
 goto label;
 label:
 v = "server";
@@ -624,15 +616,15 @@
 v := @parameter: java.util.List;
 v = v.<psiprobe.beans.LogResolverBean: java.util.List stdoutFiles>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = specialinvoke v.<psiprobe.beans.LogResolverBean: psiprobe.tools.logging.FileLogAccessor resolveStdoutLogDestination(java.lang.String)>(v);
 if v == null goto label;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 private psiprobe.tools.logging.LogDestination getStdoutLogDestination(java.lang.String)
@@ -648,8 +640,9 @@
 v := @parameter: java.lang.String;
 v = v.<psiprobe.beans.LogResolverBean: java.util.List stdoutFiles>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
 if v == 0 goto label;
@@ -657,24 +650,20 @@
 if v == null goto label;
 return v;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return null;
 }
 private psiprobe.tools.logging.FileLogAccessor resolveStdoutLogDestination(java.lang.String)
 {
 psiprobe.tools.logging.FileLogAccessor v;
+java.lang.String v, v, v;
 java.io.File v;
 psiprobe.beans.LogResolverBean v;
-java.lang.StringBuilder v;
-java.lang.String v, v, v;
 boolean v;
 v := @this: psiprobe.beans.LogResolverBean;
 v := @parameter: java.lang.String;
 v = new java.io.File;
 v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("catalina.base");
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("logs/");
-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[])>("\u0001");
+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[])>("logs/\u0001");
 specialinvoke v.<java.io.File: void <init>(java.lang.String,java.lang.String)>(v, v);
 v = virtualinvoke v.<java.io.File: boolean exists()>();
 if v == 0 goto label;
@@ -849,8 +838,9 @@
 v = specialinvoke v.<psiprobe.beans.LogResolverBean: java.util.List getLoggerContexts(java.lang.ClassLoader)>(v);
 v = null;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = specialinvoke v.<psiprobe.beans.LogResolverBean: java.util.Map getLoggerConfigs(java.lang.Object)>(v);
 if v == 0 goto label;
@@ -860,10 +850,7 @@
 v = v;
 label:
 v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
-if v != null goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+if v == null goto label;
 label:
 if v == null goto label;
 v = new psiprobe.tools.logging.log4j.Log4J2LoggerConfigAccessor;
@@ -1090,4 +1077,11 @@
 return null;
 catch java.lang.Exception from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/LogResolverBean;");
+<psiprobe.beans.LogResolverBean: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ResourceResolverBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ResourceResolverBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ResourceResolverBean.jimple	2025-03-13 18:06:11.295881273 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.ResourceResolverBean.jimple	2025-03-13 18:06:16.999791536 +0000
@@ -4,13 +4,6 @@
 public static final java.lang.String DEFAULT_GLOBAL_RESOURCE_PREFIX;
 public static final java.lang.String DEFAULT_RESOURCE_PREFIX;
 private java.util.List datasourceMappers;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/ResourceResolverBean;");
-<psiprobe.beans.ResourceResolverBean: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.beans.ResourceResolverBean v;
@@ -44,8 +37,9 @@
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>("Catalina:type=Resource,resourcetype=Global,*");
 v = interfaceinvoke v.<javax.management.MBeanServer: java.util.Set queryNames(javax.management.ObjectName,javax.management.QueryExp)>(v, null);
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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 = new psiprobe.model.ApplicationResource;
 specialinvoke v.<psiprobe.model.ApplicationResource: void <init>()>();
@@ -63,10 +57,6 @@
 virtualinvoke v.<psiprobe.model.ApplicationResource: void setDescription(java.lang.String)>(v);
 virtualinvoke v.<psiprobe.beans.ResourceResolverBean: void lookupResource(psiprobe.model.ApplicationResource,boolean,boolean)>(v, 1, 1);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -78,6 +68,7 @@
 }
 public synchronized java.util.List getApplicationResources(org.apache.catalina.Context, psiprobe.beans.ContainerWrapperBean) throws javax.naming.NamingException
 {
+java.lang.Throwable v;
 javax.naming.NamingException v;
 java.util.ArrayList v;
 java.lang.String v;
@@ -85,7 +76,7 @@
 org.slf4j.Logger v, v, v;
 java.util.Iterator v;
 org.apache.catalina.Context v;
-psiprobe.TomcatContainer v, v, v, v, v;
+psiprobe.TomcatContainer v, v, v, v, v, v;
 psiprobe.beans.ContainerWrapperBean v;
 psiprobe.beans.ResourceResolverBean v;
 java.lang.Object v;
@@ -119,19 +110,28 @@
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
 interfaceinvoke v.<psiprobe.TomcatContainer: void addContextResourceLink(org.apache.catalina.Context,java.util.List,boolean)>(v, v, v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 virtualinvoke v.<psiprobe.beans.ResourceResolverBean: void lookupResource(psiprobe.model.ApplicationResource,boolean,boolean)>(v, v, 0);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
 interfaceinvoke v.<psiprobe.TomcatContainer: void unbindFromContext(org.apache.catalina.Context)>(v);
+goto label;
+label:
+v := @caughtexception;
+if v == 0 goto label;
+v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
+interfaceinvoke v.<psiprobe.TomcatContainer: void unbindFromContext(org.apache.catalina.Context)>(v);
+label:
+throw v;
 label:
 return v;
 catch javax.naming.NamingException from label to label with label;
+catch java.lang.Throwable from label to label with label;
 }
 public void lookupResource(psiprobe.model.ApplicationResource, boolean, boolean)
 {
@@ -181,8 +181,9 @@
 virtualinvoke v.<psiprobe.model.ApplicationResource: void setLookedUp(boolean)>(1);
 v = v.<psiprobe.beans.ResourceResolverBean: java.util.List datasourceMappers>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.beans.ResourceResolverBean: org.slf4j.Logger logger>;
 interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Looking up datasource adapter: {}", v);
@@ -193,10 +194,6 @@
 v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
 v = interfaceinvoke v.<psiprobe.beans.accessors.DatasourceAccessor: psiprobe.model.DataSourceInfo getInfo(java.lang.Object)>(v);
 if v != null goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -266,8 +263,9 @@
 label:
 v = v.<psiprobe.beans.ResourceResolverBean: java.util.List datasourceMappers>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.beans.ResourceResolverBean: org.slf4j.Logger logger>;
 interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Resetting datasource adapter: {}", v);
@@ -285,9 +283,6 @@
 label:
 return 1;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 if v == null goto label;
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
 interfaceinvoke v.<psiprobe.TomcatContainer: void unbindFromContext(org.apache.catalina.Context)>(v);
@@ -421,8 +416,7 @@
 }
 protected static java.lang.String resolveJndiName(java.lang.String, boolean)
 {
-java.lang.StringBuilder v;
-java.lang.String v, v, v, v;
+java.lang.String v, v, v;
 boolean v;
 v := @parameter: java.lang.String;
 v := @parameter: boolean;
@@ -432,9 +426,7 @@
 label:
 v = "java:comp/env/";
 label:
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
 return v;
 }
 private java.lang.String getStringAttribute(javax.management.MBeanServer, javax.management.ObjectName, java.lang.String)
@@ -468,32 +460,29 @@
 }
 public static javax.naming.Context getGlobalNamingContext()
 {
-java.lang.String[] v;
-javax.management.MBeanServer v;
-int v, v;
-java.lang.String v, v, v;
-javax.naming.Context v;
-boolean v;
 org.slf4j.Logger v, v;
+java.lang.String[] v;
 javax.management.ObjectName v;
 javax.management.MalformedObjectNameException v;
 javax.management.JMException v;
+javax.management.MBeanServer v;
+int v, v;
 java.lang.Object v;
-java.lang.StringBuilder v;
+java.lang.String v, v;
+javax.naming.Context v;
+boolean v;
 v = null;
 v = staticinvoke <java.lang.management.ManagementFactory: javax.management.MBeanServer getPlatformMBeanServer()>();
 if v == null goto label;
 v = interfaceinvoke v.<javax.management.MBeanServer: java.lang.String[] getDomains()>();
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 label:
 v = new javax.management.ObjectName;
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(":type=Server");
+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[])>("\u0001:type=Server");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 label:
 goto label;
@@ -517,8 +506,7 @@
 goto label;
 label:
 v = v + 1;
-label:
-if v < v goto label;
+goto label;
 label:
 return v;
 catch javax.management.MalformedObjectNameException from label to label with label;
@@ -527,4 +515,11 @@
 catch javax.management.MBeanException from label to label with label;
 catch javax.management.ReflectionException from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/ResourceResolverBean;");
+<psiprobe.beans.ResourceResolverBean: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.RuntimeInfoAccessorBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.RuntimeInfoAccessorBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.RuntimeInfoAccessorBean.jimple	2025-03-13 18:06:11.347880456 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.RuntimeInfoAccessorBean.jimple	2025-03-13 18:06:17.051790718 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.beans.RuntimeInfoAccessorBean extends java.lang.Object
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/RuntimeInfoAccessorBean;");
-<psiprobe.beans.RuntimeInfoAccessorBean: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.beans.RuntimeInfoAccessorBean v;
@@ -89,4 +82,11 @@
 return null;
 catch java.lang.Exception from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/RuntimeInfoAccessorBean;");
+<psiprobe.beans.RuntimeInfoAccessorBean: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.C3P0DatasourceAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.C3P0DatasourceAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.C3P0DatasourceAccessor.jimple	2025-03-13 18:06:11.451878820 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.C3P0DatasourceAccessor.jimple	2025-03-13 18:06:17.159789019 +0000
@@ -58,7 +58,7 @@
 java.lang.Object v;
 java.lang.String v, v;
 psiprobe.beans.accessors.C3P0DatasourceAccessor v;
-boolean v, v;
+boolean v, v, v;
 v := @this: psiprobe.beans.accessors.C3P0DatasourceAccessor;
 v := @parameter: java.lang.Object;
 v = "com.mchange.v.c3p.ComboPooledDataSource";
@@ -68,8 +68,11 @@
 if v == 0 goto label;
 v = v instanceof com.mchange.v.c3p.ComboPooledDataSource;
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.Dbcp2DatasourceAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.Dbcp2DatasourceAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.Dbcp2DatasourceAccessor.jimple	2025-03-13 18:06:11.451878820 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.Dbcp2DatasourceAccessor.jimple	2025-03-13 18:06:17.159789019 +0000
@@ -54,7 +54,7 @@
 java.lang.Class v;
 java.lang.Object v;
 java.lang.String v, v;
-boolean v, v;
+boolean v, v, v;
 v := @this: psiprobe.beans.accessors.Dbcp2DatasourceAccessor;
 v := @parameter: java.lang.Object;
 v = "org.apache.commons.dbcp.BasicDataSource";
@@ -64,8 +64,11 @@
 if v == 0 goto label;
 v = v instanceof org.apache.commons.dbcp.BasicDataSource;
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.HikariCpDatasourceAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.HikariCpDatasourceAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.HikariCpDatasourceAccessor.jimple	2025-03-13 18:06:11.451878820 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.HikariCpDatasourceAccessor.jimple	2025-03-13 18:06:17.159789019 +0000
@@ -9,15 +9,14 @@
 }
 public psiprobe.model.DataSourceInfo getInfo(java.lang.Object) throws java.lang.Exception
 {
+psiprobe.model.DataSourceInfo v, v;
+javax.management.ObjectName v;
 psiprobe.beans.accessors.HikariCpDatasourceAccessor v;
 javax.management.MBeanServer v;
 int v, v, v;
+java.lang.Object v, v;
 java.lang.String v, v, v, v;
 boolean v;
-psiprobe.model.DataSourceInfo v, v;
-javax.management.ObjectName v;
-java.lang.Object v, v;
-java.lang.StringBuilder v;
 v := @this: psiprobe.beans.accessors.HikariCpDatasourceAccessor;
 v := @parameter: java.lang.Object;
 v = null;
@@ -25,9 +24,8 @@
 if v == 0 goto label;
 v = staticinvoke <java.lang.management.ManagementFactory: javax.management.MBeanServer getPlatformMBeanServer()>();
 v = new javax.management.ObjectName;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("com.zaxxer.hikari:type=Pool (");
 v = virtualinvoke v.<com.zaxxer.hikari.HikariDataSource: java.lang.String getPoolName()>();
-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[])>("\u)");
+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[])>("com.zaxxer.hikari:type=Pool (\u)");
 specialinvoke v.<javax.management.ObjectName: void <init>(java.lang.String)>(v);
 v = staticinvoke <javax.management.JMX: java.lang.Object newMXBeanProxy(javax.management.MBeanServerConnection,javax.management.ObjectName,java.lang.Class)>(v, v, class "Lcom/zaxxer/hikari/HikariPoolMXBean;");
 v = new psiprobe.model.DataSourceInfo;
@@ -58,11 +56,11 @@
 }
 public boolean canMap(java.lang.Object)
 {
+psiprobe.beans.accessors.HikariCpDatasourceAccessor v;
 java.lang.Class v;
 java.lang.Object v;
 java.lang.String v, v;
-psiprobe.beans.accessors.HikariCpDatasourceAccessor v;
-boolean v, v;
+boolean v, v, v;
 v := @this: psiprobe.beans.accessors.HikariCpDatasourceAccessor;
 v := @parameter: java.lang.Object;
 v = "com.zaxxer.hikari.HikariDataSource";
@@ -72,8 +70,11 @@
 if v == 0 goto label;
 v = v instanceof com.zaxxer.hikari.HikariDataSource;
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.OpenEjbBasicDatasourceAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.OpenEjbBasicDatasourceAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.OpenEjbBasicDatasourceAccessor.jimple	2025-03-13 18:06:11.451878820 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.OpenEjbBasicDatasourceAccessor.jimple	2025-03-13 18:06:17.163788956 +0000
@@ -50,11 +50,11 @@
 }
 public boolean canMap(java.lang.Object)
 {
+psiprobe.beans.accessors.OpenEjbBasicDatasourceAccessor v;
 java.lang.Class v;
 java.lang.Object v;
-psiprobe.beans.accessors.OpenEjbBasicDatasourceAccessor v;
 java.lang.String v, v;
-boolean v, v;
+boolean v, v, v;
 v := @this: psiprobe.beans.accessors.OpenEjbBasicDatasourceAccessor;
 v := @parameter: java.lang.Object;
 v = "org.apache.openejb.resource.jdbc.dbcp.BasicDataSource";
@@ -64,8 +64,11 @@
 if v == 0 goto label;
 v = v instanceof org.apache.commons.dbcp.BasicDataSource;
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
 label:
-return 0;
+return v;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.OpenEjbManagedDatasourceAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.OpenEjbManagedDatasourceAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.OpenEjbManagedDatasourceAccessor.jimple	2025-03-13 18:06:11.451878820 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.OpenEjbManagedDatasourceAccessor.jimple	2025-03-13 18:06:17.163788956 +0000
@@ -56,7 +56,7 @@
 java.lang.Class v;
 java.lang.Object v, v;
 java.lang.String v, v;
-boolean v, v, v;
+boolean v, v, v, v;
 v := @this: psiprobe.beans.accessors.OpenEjbManagedDatasourceAccessor;
 v := @parameter: java.lang.Object;
 v = "org.apache.openejb.resource.jdbc.managed.local.ManagedDataSource";
@@ -69,9 +69,12 @@
 if v == 0 goto label;
 v = v instanceof org.apache.tomcat.jdbc.pool.PoolConfiguration;
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 label:
 return 0;
 }
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.TomEeJdbcPoolDatasourceAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.TomEeJdbcPoolDatasourceAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.TomEeJdbcPoolDatasourceAccessor.jimple	2025-03-13 18:06:11.455878757 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.TomEeJdbcPoolDatasourceAccessor.jimple	2025-03-13 18:06:17.163788956 +0000
@@ -54,7 +54,7 @@
 java.lang.Object v;
 psiprobe.beans.accessors.TomEeJdbcPoolDatasourceAccessor v;
 java.lang.String v, v;
-boolean v, v;
+boolean v, v, v;
 v := @this: psiprobe.beans.accessors.TomEeJdbcPoolDatasourceAccessor;
 v := @parameter: java.lang.Object;
 v = "org.apache.tomee.jdbc.TomEEDataSourceCreator$TomEEDataSource";
@@ -64,8 +64,11 @@
 if v == 0 goto label;
 v = v instanceof org.apache.tomcat.jdbc.pool.DataSource;
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.TomcatJdbcPoolDatasourceAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.TomcatJdbcPoolDatasourceAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.TomcatJdbcPoolDatasourceAccessor.jimple	2025-03-13 18:06:11.455878757 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.TomcatJdbcPoolDatasourceAccessor.jimple	2025-03-13 18:06:17.163788956 +0000
@@ -50,11 +50,11 @@
 }
 public boolean canMap(java.lang.Object)
 {
+psiprobe.beans.accessors.TomcatJdbcPoolDatasourceAccessor v;
 java.lang.Class v;
 java.lang.Object v;
 java.lang.String v, v;
-psiprobe.beans.accessors.TomcatJdbcPoolDatasourceAccessor v;
-boolean v, v;
+boolean v, v, v;
 v := @this: psiprobe.beans.accessors.TomcatJdbcPoolDatasourceAccessor;
 v := @parameter: java.lang.Object;
 v = "org.apache.tomcat.jdbc.pool.DataSource";
@@ -64,8 +64,11 @@
 if v == 0 goto label;
 v = v instanceof org.apache.tomcat.jdbc.pool.DataSource;
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
 label:
-return 0;
+return v;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.ViburCpDatasourceAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.ViburCpDatasourceAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.ViburCpDatasourceAccessor.jimple	2025-03-13 18:06:11.455878757 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.accessors.ViburCpDatasourceAccessor.jimple	2025-03-13 18:06:17.163788956 +0000
@@ -57,11 +57,11 @@
 }
 public boolean canMap(java.lang.Object)
 {
+psiprobe.beans.accessors.ViburCpDatasourceAccessor v;
 java.lang.Class v;
 java.lang.Object v;
 java.lang.String v, v;
-psiprobe.beans.accessors.ViburCpDatasourceAccessor v;
-boolean v, v;
+boolean v, v, v;
 v := @this: psiprobe.beans.accessors.ViburCpDatasourceAccessor;
 v := @parameter: java.lang.Object;
 v = "org.vibur.dbcp.ViburDBCPDataSource";
@@ -71,8 +71,11 @@
 if v == 0 goto label;
 v = v instanceof org.vibur.dbcp.ViburDBCPDataSource;
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
 label:
-return 0;
+return v;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.AbstractStatsCollectorBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.AbstractStatsCollectorBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.AbstractStatsCollectorBean.jimple	2025-03-13 18:06:11.355880330 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.AbstractStatsCollectorBean.jimple	2025-03-13 18:06:17.063790529 +0000
@@ -134,10 +134,11 @@
 }
 protected void buildAbsoluteStats(java.lang.String, long, long) throws java.lang.InterruptedException
 {
+java.lang.Throwable v;
 psiprobe.beans.stats.listeners.StatsCollectionEvent v;
 long v, v;
 int v;
-psiprobe.model.stats.StatsCollection v, v, v, v;
+psiprobe.model.stats.StatsCollection v, v, v, v, v;
 java.lang.String v;
 boolean v, v;
 org.jfree.data.xy.XYDataItem v;
@@ -161,34 +162,44 @@
 specialinvoke v.<org.jfree.data.xy.XYDataItem: void <init>(double,double)>(v, v);
 v = v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: psiprobe.model.stats.StatsCollection statsCollection>;
 virtualinvoke v.<psiprobe.model.stats.StatsCollection: void lockForUpdate()>();
+label:
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 specialinvoke v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: void houseKeepStats(java.util.List)>(v);
+label:
 v = v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: psiprobe.model.stats.StatsCollection statsCollection>;
 virtualinvoke v.<psiprobe.model.stats.StatsCollection: void releaseLock()>();
+goto label;
+label:
+v := @caughtexception;
+v = v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: psiprobe.model.stats.StatsCollection statsCollection>;
+virtualinvoke v.<psiprobe.model.stats.StatsCollection: void releaseLock()>();
+throw v;
+label:
 v = v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: java.util.List listeners>;
 if v == null goto label;
 v = new psiprobe.beans.stats.listeners.StatsCollectionEvent;
 specialinvoke v.<psiprobe.beans.stats.listeners.StatsCollectionEvent: void <init>(java.lang.String,org.jfree.data.xy.XYDataItem)>(v, v);
 v = v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: java.util.List listeners>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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.<psiprobe.beans.stats.listeners.StatsCollectionListener: boolean isEnabled()>();
 if v == 0 goto label;
 interfaceinvoke v.<psiprobe.beans.stats.listeners.StatsCollectionListener: void statsCollected(psiprobe.beans.stats.listeners.StatsCollectionEvent)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 return;
+catch java.lang.Throwable from label to label with label;
 }
 protected void buildTimePercentageStats(java.lang.String, long, long) throws java.lang.InterruptedException
 {
+java.lang.Throwable v;
 long v, v, v, v;
 java.util.Map v, v;
 int v, v;
-psiprobe.model.stats.StatsCollection v, v, v, v;
+psiprobe.model.stats.StatsCollection v, v, v, v, v;
 java.lang.String v;
 double v, v, v, v;
 org.jfree.data.xy.XYDataItem v;
@@ -219,6 +230,7 @@
 v = v / v;
 v = v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: psiprobe.model.stats.StatsCollection statsCollection>;
 virtualinvoke v.<psiprobe.model.stats.StatsCollection: void lockForUpdate()>();
+label:
 v = v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: psiprobe.model.stats.StatsCollection statsCollection>;
 v = virtualinvoke v.<psiprobe.model.stats.StatsCollection: java.util.List getStats(java.lang.String)>(v);
 if v != null goto label;
@@ -231,10 +243,18 @@
 specialinvoke v.<org.jfree.data.xy.XYDataItem: void <init>(double,double)>(v, v);
 interfaceinvoke v.<java.util.List: void add(int,java.lang.Object)>(v, v);
 specialinvoke v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: void houseKeepStats(java.util.List)>(v);
+label:
+v = v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: psiprobe.model.stats.StatsCollection statsCollection>;
+virtualinvoke v.<psiprobe.model.stats.StatsCollection: void releaseLock()>();
+goto label;
+label:
+v := @caughtexception;
 v = v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: psiprobe.model.stats.StatsCollection statsCollection>;
 virtualinvoke v.<psiprobe.model.stats.StatsCollection: void releaseLock()>();
+throw v;
 label:
 return;
+catch java.lang.Throwable from label to label with label;
 }
 protected void resetStats(java.lang.String)
 {
@@ -254,13 +274,13 @@
 psiprobe.beans.stats.collectors.AbstractStatsCollectorBean v;
 v := @this: psiprobe.beans.stats.collectors.AbstractStatsCollectorBean;
 v := @parameter: java.util.List;
-goto label;
-label:
-interfaceinvoke v.<java.util.List: java.lang.Object remove(int)>(0);
 label:
 v = interfaceinvoke v.<java.util.List: int size()>();
 v = v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: int maxSeries>;
-if v > v goto label;
+if v <= v goto label;
+interfaceinvoke v.<java.util.List: java.lang.Object remove(int)>(0);
+goto label;
+label:
 return;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.AppStatsCollectorBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.AppStatsCollectorBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.AppStatsCollectorBean.jimple	2025-03-13 18:06:11.343880519 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.AppStatsCollectorBean.jimple	2025-03-13 18:06:17.047790781 +0000
@@ -4,13 +4,6 @@
 private psiprobe.beans.ContainerWrapperBean containerWrapper;
 private javax.servlet.ServletContext servletContext;
 private boolean selfIgnored;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/stats/collectors/AppStatsCollectorBean;");
-<psiprobe.beans.stats.collectors.AppStatsCollectorBean: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.beans.stats.collectors.AppStatsCollectorBean v;
@@ -75,7 +68,6 @@
 java.lang.Long v;
 boolean v, v, v;
 java.util.List v;
-java.lang.StringBuilder v, v, v, v;
 long v, v, v, v, v, v, v, v, v, v, v, v;
 psiprobe.model.Application v;
 int v, v, v;
@@ -103,8 +95,9 @@
 v = 0;
 v = interfaceinvoke v.<psiprobe.TomcatContainer: java.util.List findContexts()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 if v == null goto label;
 v = interfaceinvoke v.<org.apache.catalina.Context: java.lang.String getName()>();
@@ -122,16 +115,13 @@
 v = interfaceinvoke v.<org.apache.catalina.Context: java.lang.String getName()>();
 label:
 v = v;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("app.requests.");
-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[])>("\u0001");
+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[])>("app.requests.\u0001");
 v = virtualinvoke v.<psiprobe.model.Application: int getRequestCount()>();
 v = virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: long buildDeltaStats(java.lang.String,long,long)>(v, v, v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("app.errors.");
-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[])>("\u0001");
+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[])>("app.errors.\u0001");
 v = virtualinvoke v.<psiprobe.model.Application: int getErrorCount()>();
 v = virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: long buildDeltaStats(java.lang.String,long)>(v, v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("app.proc_time.");
-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[])>("\u0001");
+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[])>("app.proc_time.\u0001");
 v = virtualinvoke v.<psiprobe.model.Application: long getProcessingTime()>();
 v = virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: long buildDeltaStats(java.lang.String,long,long)>(v, v, v);
 v = v cmp 0L;
@@ -141,8 +131,7 @@
 label:
 v = v / v;
 label:
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("app.avg_proc_time.");
-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[])>("\u0001");
+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[])>("app.avg_proc_time.\u0001");
 virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: void buildAbsoluteStats(java.lang.String,long,long)>(v, v, v);
 v = v cmp 0L;
 if v <= 0 goto label;
@@ -152,9 +141,8 @@
 v = v + v;
 v = v + v;
 v = v + 1;
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: void buildAbsoluteStats(java.lang.String,long,long)>("total.requests", v, v);
 virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: void buildAbsoluteStats(java.lang.String,long,long)>("total.errors", v, v);
 if v != 0 goto label;
@@ -178,7 +166,7 @@
 psiprobe.beans.stats.collectors.AppStatsCollectorBean v;
 javax.servlet.ServletContext v, v;
 org.apache.catalina.Context v;
-boolean v, v;
+boolean v, v, v;
 v := @this: psiprobe.beans.stats.collectors.AppStatsCollectorBean;
 v := @parameter: org.apache.catalina.Context;
 v = virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: boolean isSelfIgnored()>();
@@ -187,9 +175,12 @@
 v = interfaceinvoke v.<org.apache.catalina.Context: javax.servlet.ServletContext getServletContext()>();
 v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 public void reset()
 {
@@ -214,8 +205,9 @@
 if v == null goto label;
 v = interfaceinvoke v.<psiprobe.TomcatContainer: java.util.List findContexts()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 if v == null goto label;
 v = interfaceinvoke v.<org.apache.catalina.Context: java.lang.String getName()>();
@@ -230,9 +222,7 @@
 v = interfaceinvoke v.<org.apache.catalina.Context: java.lang.String getName()>();
 label:
 virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: void reset(java.lang.String)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: void resetStats(java.lang.String)>("total.requests");
 virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: void resetStats(java.lang.String)>("total.errors");
@@ -242,21 +232,16 @@
 public void reset(java.lang.String)
 {
 psiprobe.beans.stats.collectors.AppStatsCollectorBean v;
-java.lang.StringBuilder v, v, v, v;
 java.lang.String v, v, v, v, v;
 v := @this: psiprobe.beans.stats.collectors.AppStatsCollectorBean;
 v := @parameter: java.lang.String;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("app.requests.");
-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[])>("\u0001");
+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[])>("app.requests.\u0001");
 virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: void resetStats(java.lang.String)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("app.proc_time.");
-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[])>("\u0001");
+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[])>("app.proc_time.\u0001");
 virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: void resetStats(java.lang.String)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("app.errors.");
-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[])>("\u0001");
+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[])>("app.errors.\u0001");
 virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: void resetStats(java.lang.String)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("app.avg_proc_time.");
-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[])>("\u0001");
+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[])>("app.avg_proc_time.\u0001");
 virtualinvoke v.<psiprobe.beans.stats.collectors.AppStatsCollectorBean: void resetStats(java.lang.String)>(v);
 return;
 }
@@ -271,4 +256,11 @@
 specialinvoke v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: void setMaxSeries(int)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/stats/collectors/AppStatsCollectorBean;");
+<psiprobe.beans.stats.collectors.AppStatsCollectorBean: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean.jimple	2025-03-13 18:06:11.339880582 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean.jimple	2025-03-13 18:06:17.043790843 +0000
@@ -30,51 +30,39 @@
 long v, v, v;
 psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean v;
 int v, v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v;
 boolean v;
 java.util.Iterator v;
 psiprobe.beans.ContainerListenerBean v;
 java.util.List v;
 java.lang.Object v;
-java.lang.StringBuilder v, v, v, v, v, v;
 v := @this: psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean;
 v = v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: psiprobe.beans.ContainerListenerBean listenerBean>;
 v = virtualinvoke v.<psiprobe.beans.ContainerListenerBean: java.util.List getConnectors(boolean)>(0);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("stat.connector.");
 v = virtualinvoke v.<psiprobe.model.Connector: java.lang.String getProtocolHandler()>();
-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[])>("\u0001");
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".requests");
+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[])>("stat.connector.\u0001");
+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[])>("\u.requests");
 v = virtualinvoke v.<psiprobe.model.Connector: int getRequestCount()>();
 virtualinvoke v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: long buildDeltaStats(java.lang.String,long)>(v, v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".errors");
+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[])>("\u.errors");
 v = virtualinvoke v.<psiprobe.model.Connector: int getErrorCount()>();
 virtualinvoke v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: long buildDeltaStats(java.lang.String,long)>(v, v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".sent");
+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[])>("\u.sent");
 v = virtualinvoke v.<psiprobe.model.Connector: long getBytesSent()>();
 virtualinvoke v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: long buildDeltaStats(java.lang.String,long)>(v, v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".received");
+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[])>("\u.received");
 v = virtualinvoke v.<psiprobe.model.Connector: long getBytesReceived()>();
 virtualinvoke v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: long buildDeltaStats(java.lang.String,long)>(v, v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".proc_time");
+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[])>("\u.proc_time");
 v = virtualinvoke v.<psiprobe.model.Connector: long getProcessingTime()>();
 virtualinvoke v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: long buildDeltaStats(java.lang.String,long)>(v, v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 public void reset() throws java.lang.Exception
@@ -90,44 +78,32 @@
 v = v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: psiprobe.beans.ContainerListenerBean listenerBean>;
 v = virtualinvoke v.<psiprobe.beans.ContainerListenerBean: java.util.List getConnectors(boolean)>(0);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.Connector: java.lang.String getProtocolHandler()>();
 virtualinvoke v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: void reset(java.lang.String)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 public void reset(java.lang.String)
 {
 psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v, v;
-java.lang.StringBuilder v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v;
 v := @this: psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean;
 v := @parameter: java.lang.String;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("stat.connector.");
-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[])>("\u0001");
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".requests");
+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[])>("stat.connector.\u0001");
+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[])>("\u.requests");
 virtualinvoke v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: void resetStats(java.lang.String)>(v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".errors");
+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[])>("\u.errors");
 virtualinvoke v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: void resetStats(java.lang.String)>(v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".sent");
+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[])>("\u.sent");
 virtualinvoke v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: void resetStats(java.lang.String)>(v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".received");
+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[])>("\u.received");
 virtualinvoke v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: void resetStats(java.lang.String)>(v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".proc_time");
+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[])>("\u.proc_time");
 virtualinvoke v.<psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean: void resetStats(java.lang.String)>(v);
 return;
 }
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean.jimple	2025-03-13 18:06:11.343880519 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean.jimple	2025-03-13 18:06:17.051790718 +0000
@@ -4,13 +4,6 @@
 private static final java.lang.String PREFIX_BUSY;
 private static final org.slf4j.Logger logger;
 private psiprobe.beans.ContainerWrapperBean containerWrapper;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/stats/collectors/DatasourceStatsCollectorBean;");
-<psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean v;
@@ -40,7 +33,7 @@
 long v, v, v;
 java.lang.Long v;
 int v, v;
-java.lang.String v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v;
 boolean v;
 psiprobe.model.DataSourceInfo v;
 org.slf4j.Logger v, v, v;
@@ -48,7 +41,6 @@
 java.util.List v;
 psiprobe.beans.ContainerWrapperBean v, v;
 java.lang.Object v;
-java.lang.StringBuilder v, v, v;
 psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean v;
 v := @this: psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean;
 v = staticinvoke <java.lang.System: long currentTimeMillis()>();
@@ -61,8 +53,9 @@
 v = virtualinvoke v.<psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: java.util.List getDataSources()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.ApplicationResource: java.lang.String getApplicationName()>();
 if v != null goto label;
@@ -71,24 +64,19 @@
 label:
 v = v;
 label:
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.model.ApplicationResource: java.lang.String getName()>();
-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[])>("/\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001/\u0001");
 v = virtualinvoke v.<psiprobe.model.ApplicationResource: psiprobe.model.DataSourceInfo getDataSourceInfo()>();
 v = virtualinvoke v.<psiprobe.model.DataSourceInfo: int getEstablishedConnections()>();
 v = virtualinvoke v.<psiprobe.model.DataSourceInfo: int getBusyConnections()>();
 v = <psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean: org.slf4j.Logger logger>;
 interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Collecting stats for datasource: {}", v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("ds.est.");
-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[])>("\u0001");
+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[])>("ds.est.\u0001");
 virtualinvoke v.<psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean: void buildAbsoluteStats(java.lang.String,long,long)>(v, v, v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("ds.busy.");
-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[])>("\u0001");
+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[])>("ds.busy.\u0001");
 virtualinvoke v.<psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean: void buildAbsoluteStats(java.lang.String,long,long)>(v, v, v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = <psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean: org.slf4j.Logger logger>;
 v = staticinvoke <java.lang.System: long currentTimeMillis()>();
 v = v - v;
@@ -117,29 +105,25 @@
 v = virtualinvoke v.<psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: java.util.List getDataSources()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.ApplicationResource: java.lang.String getName()>();
 virtualinvoke v.<psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean: void reset(java.lang.String)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 return;
 }
 public void reset(java.lang.String) throws java.lang.Exception
 {
-java.lang.StringBuilder v, v;
 psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean v;
 java.lang.String v, v, v;
 v := @this: psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean;
 v := @parameter: java.lang.String;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("ds.est.");
-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[])>("\u0001");
+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[])>("ds.est.\u0001");
 virtualinvoke v.<psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean: void resetStats(java.lang.String)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("ds.busy.");
-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[])>("\u0001");
+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[])>("ds.busy.\u0001");
 virtualinvoke v.<psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean: void resetStats(java.lang.String)>(v);
 return;
 }
@@ -154,4 +138,11 @@
 specialinvoke v.<psiprobe.beans.stats.collectors.AbstractStatsCollectorBean: void setMaxSeries(int)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/beans/stats/collectors/DatasourceStatsCollectorBean;");
+<psiprobe.beans.stats.collectors.DatasourceStatsCollectorBean: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.JvmMemoryStatsCollectorBean.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.JvmMemoryStatsCollectorBean.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.JvmMemoryStatsCollectorBean.jimple	2025-03-13 18:06:11.343880519 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.collectors.JvmMemoryStatsCollectorBean.jimple	2025-03-13 18:06:17.047790781 +0000
@@ -33,7 +33,6 @@
 java.util.List v;
 psiprobe.beans.JvmMemoryInfoAccessorBean v;
 java.lang.Object v;
-java.lang.StringBuilder v;
 java.lang.String v, v;
 boolean v;
 v := @this: psiprobe.beans.stats.collectors.JvmMemoryStatsCollectorBean;
@@ -41,17 +40,16 @@
 v = virtualinvoke v.<psiprobe.beans.JvmMemoryInfoAccessorBean: java.util.List getPools()>();
 v = staticinvoke <java.lang.System: long currentTimeMillis()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("memory.pool.");
 v = virtualinvoke v.<psiprobe.model.jmx.MemoryPool: java.lang.String getName()>();
-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[])>("\u0001");
+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[])>("memory.pool.\u0001");
 v = virtualinvoke v.<psiprobe.model.jmx.MemoryPool: long getUsed()>();
 virtualinvoke v.<psiprobe.beans.stats.collectors.JvmMemoryStatsCollectorBean: void buildAbsoluteStats(java.lang.String,long,long)>(v, v, v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 public void setMaxSeries(long, long)
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.listeners.AbstractFlapListener.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.listeners.AbstractFlapListener.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.listeners.AbstractFlapListener.jimple	2025-03-13 18:06:11.367880140 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.listeners.AbstractFlapListener.jimple	2025-03-13 18:06:17.075790340 +0000
@@ -144,7 +144,12 @@
 v = v;
 label:
 virtualinvoke v.<psiprobe.beans.stats.listeners.AbstractFlapListener: void setFlappingState(java.lang.String,boolean)>(v, v);
-v = v ^ v;
+if v == v goto label;
+v = 1;
+goto label;
+label:
+v = 0;
+label:
 return v;
 }
 protected float calculateStateTransitionPercentage(java.lang.String, boolean)
@@ -167,8 +172,8 @@
 v = 0.0F;
 v = virtualinvoke v.<java.util.LinkedList: int size()>();
 v = v - 1;
-goto label;
 label:
+if v < 0 goto label;
 v = virtualinvoke v.<java.util.LinkedList: java.lang.Object get(int)>(v);
 v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
 if v == v goto label;
@@ -179,8 +184,8 @@
 v = v + v;
 label:
 v = v - 1;
+goto label;
 label:
-if v >= 0 goto label;
 v = v / v;
 return v;
 }
@@ -199,12 +204,12 @@
 v = virtualinvoke v.<psiprobe.beans.stats.listeners.AbstractFlapListener: java.util.LinkedList getFlaps(java.lang.String)>(v);
 v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
 virtualinvoke v.<java.util.LinkedList: void addLast(java.lang.Object)>(v);
-goto label;
 label:
+v = virtualinvoke v.<java.util.LinkedList: int size()>();
+if v <= v goto label;
 virtualinvoke v.<java.util.LinkedList: java.lang.Object removeFirst()>();
+goto label;
 label:
-v = virtualinvoke v.<java.util.LinkedList: int size()>();
-if v > v goto label;
 return;
 }
 protected boolean getFlappingState(java.lang.String)
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.listeners.AbstractThresholdListener.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.listeners.AbstractThresholdListener.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.listeners.AbstractThresholdListener.jimple	2025-03-13 18:06:11.371880079 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.listeners.AbstractThresholdListener.jimple	2025-03-13 18:06:17.079790276 +0000
@@ -69,10 +69,11 @@
 }
 protected boolean isPreviousValueAboveThreshold(psiprobe.beans.stats.listeners.StatsCollectionEvent)
 {
-byte v, v;
 psiprobe.beans.stats.listeners.StatsCollectionEvent v;
 long v, v;
+byte v, v;
 java.lang.String v;
+boolean v;
 psiprobe.beans.stats.listeners.AbstractThresholdListener v;
 v := @this: psiprobe.beans.stats.listeners.AbstractThresholdListener;
 v := @parameter: psiprobe.beans.stats.listeners.StatsCollectionEvent;
@@ -83,9 +84,12 @@
 if v == 0 goto label;
 v = v cmp v;
 if v <= 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 protected boolean isValueAboveThreshold(psiprobe.beans.stats.listeners.StatsCollectionEvent)
 {
@@ -93,6 +97,7 @@
 psiprobe.beans.stats.listeners.StatsCollectionEvent v;
 long v, v;
 java.lang.String v;
+boolean v;
 psiprobe.beans.stats.listeners.AbstractThresholdListener v;
 v := @this: psiprobe.beans.stats.listeners.AbstractThresholdListener;
 v := @parameter: psiprobe.beans.stats.listeners.StatsCollectionEvent;
@@ -101,9 +106,12 @@
 v = virtualinvoke v.<psiprobe.beans.stats.listeners.AbstractThresholdListener: long getThreshold(java.lang.String)>(v);
 v = v cmp v;
 if v <= 0 goto label;
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
 label:
-return 0;
+return v;
 }
 protected long getThreshold(java.lang.String)
 {
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.listeners.MemoryPoolMailingListener.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.listeners.MemoryPoolMailingListener.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.listeners.MemoryPoolMailingListener.jimple	2025-03-13 18:06:11.359880267 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.listeners.MemoryPoolMailingListener.jimple	2025-03-13 18:06:17.067790466 +0000
@@ -128,7 +128,6 @@
 org.slf4j.Logger v;
 psiprobe.tools.Mailer v;
 org.springframework.context.support.MessageSourceAccessor v, v, v, v;
-java.lang.StringBuilder v, v;
 psiprobe.beans.stats.listeners.MemoryPoolMailingListener v;
 psiprobe.tools.MailMessage v;
 v := @this: psiprobe.beans.stats.listeners.MemoryPoolMailingListener;
@@ -151,8 +150,7 @@
 v = virtualinvoke v.<org.springframework.context.support.MessageSourceAccessor: java.lang.String getMessage(java.lang.String)>("probe.src.stats.listener.memory.pool.flappingStop.body.prefix");
 label:
 v = virtualinvoke v.<psiprobe.beans.stats.listeners.MemoryPoolMailingListener: org.springframework.context.support.MessageSourceAccessor getMessageSourceAccessor()>();
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("probe.src.stats.listener.memory.pool.");
-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[])>("\u.subject");
+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[])>("probe.src.stats.listener.memory.pool.\u.subject");
 v = newarray (java.lang.Object)[4];
 v[0] = v;
 v[1] = v;
@@ -162,8 +160,7 @@
 v[3] = v;
 v = virtualinvoke v.<org.springframework.context.support.MessageSourceAccessor: java.lang.String getMessage(java.lang.String,java.lang.Object[])>(v, v);
 v = virtualinvoke v.<psiprobe.beans.stats.listeners.MemoryPoolMailingListener: org.springframework.context.support.MessageSourceAccessor getMessageSourceAccessor()>();
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("probe.src.stats.listener.memory.pool.");
-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[])>("\u.body");
+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[])>("probe.src.stats.listener.memory.pool.\u.body");
 v = newarray (java.lang.Object)[4];
 v[0] = v;
 v[1] = v;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.AbstractSeriesProvider.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.AbstractSeriesProvider.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.AbstractSeriesProvider.jimple	2025-03-13 18:06:11.355880330 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.AbstractSeriesProvider.jimple	2025-03-13 18:06:17.063790529 +0000
@@ -32,15 +32,15 @@
 entermonitor v;
 label:
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<org.jfree.data.xy.XYDataItem: java.lang.Number getX()>();
 v = virtualinvoke v.<org.jfree.data.xy.XYDataItem: java.lang.Number getY()>();
 virtualinvoke v.<org.jfree.data.xy.XYSeries: org.jfree.data.xy.XYDataItem addOrUpdate(java.lang.Number,java.lang.Number)>(v, v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 exitmonitor v;
 label:
 goto label;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.ConnectorSeriesProvider.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.ConnectorSeriesProvider.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.ConnectorSeriesProvider.jimple	2025-03-13 18:06:11.347880456 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.ConnectorSeriesProvider.jimple	2025-03-13 18:06:17.055790655 +0000
@@ -14,7 +14,6 @@
 psiprobe.beans.stats.providers.ConnectorSeriesProvider v;
 org.jfree.data.xy.XYSeries v;
 psiprobe.model.stats.StatsCollection v;
-java.lang.StringBuilder v;
 java.lang.String v, v, v, v;
 org.jfree.data.xy.DefaultTableXYDataset v;
 v := @this: psiprobe.beans.stats.providers.ConnectorSeriesProvider;
@@ -26,8 +25,7 @@
 v = staticinvoke <org.springframework.web.bind.ServletRequestUtils: java.lang.String getStringParameter(javax.servlet.ServletRequest,java.lang.String,java.lang.String)>(v, "sl", "");
 if v == null goto label;
 if v == null goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("stat.connector.");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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 = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("stat.connector.\u.\u0001");
 v = virtualinvoke v.<psiprobe.model.stats.StatsCollection: java.util.List getStats(java.lang.String)>(v);
 if v == null goto label;
 v = virtualinvoke v.<psiprobe.beans.stats.providers.ConnectorSeriesProvider: org.jfree.data.xy.XYSeries toSeries(java.lang.String,java.util.List)>(v, v);
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.MultipleSeriesProvider$Series.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.MultipleSeriesProvider$Series.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.MultipleSeriesProvider$Series.jimple	2025-03-13 18:06:11.359880267 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.MultipleSeriesProvider$Series.jimple	2025-03-13 18:06:17.067790466 +0000
@@ -63,8 +63,9 @@
 v = v;
 v = v.<psiprobe.beans.stats.providers.MultipleSeriesProvider$Series: java.util.List stats>;
 v = interfaceinvoke v.<java.util.List: java.util.ListIterator listIterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.ListIterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.ListIterator: java.lang.Object next()>();
 v = virtualinvoke v.<org.jfree.data.xy.XYDataItem: java.lang.Number getY()>();
 v = virtualinvoke v.<java.lang.Number: long longValue()>();
@@ -89,9 +90,8 @@
 goto label;
 label:
 v = v + 1;
+goto label;
 label:
-v = interfaceinvoke v.<java.util.ListIterator: boolean hasNext()>();
-if v != 0 goto label;
 exitmonitor v;
 label:
 goto label;
Only in results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar: psiprobe.beans.stats.providers.MultipleSeriesProvider$lambda_0__2.jimple
Only in results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar: psiprobe.beans.stats.providers.MultipleSeriesProvider$lambda_1__1.jimple
Only in results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar: psiprobe.beans.stats.providers.MultipleSeriesProvider$lambda_populate_0__2.jimple
Only in results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar: psiprobe.beans.stats.providers.MultipleSeriesProvider$lambda_populate_1__1.jimple
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.MultipleSeriesProvider.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.MultipleSeriesProvider.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.MultipleSeriesProvider.jimple	2025-03-13 18:06:11.347880456 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.MultipleSeriesProvider.jimple	2025-03-13 18:06:17.055790655 +0000
@@ -104,8 +104,9 @@
 specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
 v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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 = new psiprobe.beans.stats.providers.MultipleSeriesProvider$Series;
 specialinvoke v.<psiprobe.beans.stats.providers.MultipleSeriesProvider$Series: void <init>(psiprobe.beans.stats.providers.MultipleSeriesProvider,java.util.Map$Entry)>(v, v);
@@ -113,28 +114,27 @@
 virtualinvoke v.<psiprobe.beans.stats.providers.MultipleSeriesProvider$Series: void calculateAvg()>();
 label:
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 if v == 0 goto label;
-v = staticinvoke <psiprobe.beans.stats.providers.MultipleSeriesProvider$lambda_0__2: java.util.Comparator bootstrap$()>();
+v = staticinvoke <psiprobe.beans.stats.providers.MultipleSeriesProvider$lambda_populate_0__2: java.util.Comparator bootstrap$()>();
 staticinvoke <java.util.Collections: void sort(java.util.List,java.util.Comparator)>(v, v);
 v = virtualinvoke v.<psiprobe.beans.stats.providers.MultipleSeriesProvider: int getTop()>();
 v = interfaceinvoke v.<java.util.List: java.util.ListIterator listIterator(int)>(v);
-goto label;
 label:
+v = interfaceinvoke v.<java.util.ListIterator: boolean hasNext()>();
+if v == 0 goto label;
 interfaceinvoke v.<java.util.ListIterator: java.lang.Object next()>();
 interfaceinvoke v.<java.util.ListIterator: void remove()>();
+goto label;
 label:
-v = interfaceinvoke v.<java.util.ListIterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
-v = staticinvoke <psiprobe.beans.stats.providers.MultipleSeriesProvider$lambda_1__1: java.util.function.Function bootstrap$()>();
+v = staticinvoke <psiprobe.beans.stats.providers.MultipleSeriesProvider$lambda_populate_1__1: java.util.function.Function bootstrap$()>();
 v = staticinvoke <java.util.Comparator: java.util.Comparator comparing(java.util.function.Function)>(v);
 staticinvoke <java.util.Collections: void sort(java.util.List,java.util.Comparator)>(v, v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = v.<psiprobe.beans.stats.providers.MultipleSeriesProvider$Series: java.util.List stats>;
 entermonitor v;
@@ -151,8 +151,6 @@
 exitmonitor v;
 throw v;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 catch java.lang.Throwable from label to label with label;
 }
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.StandardSeriesProvider.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.StandardSeriesProvider.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.StandardSeriesProvider.jimple	2025-03-13 18:06:11.347880456 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.beans.stats.providers.StandardSeriesProvider.jimple	2025-03-13 18:06:17.055790655 +0000
@@ -41,16 +41,17 @@
 java.util.List v, v, v;
 org.jfree.data.xy.XYSeries v;
 java.lang.Object v;
-java.lang.StringBuilder v, v;
 v := @this: psiprobe.beans.stats.providers.StandardSeriesProvider;
 v := @parameter: org.jfree.data.xy.DefaultTableXYDataset;
 v := @parameter: psiprobe.model.stats.StatsCollection;
 v := @parameter: javax.servlet.http.HttpServletRequest;
 v = staticinvoke <org.springframework.web.bind.ServletRequestUtils: java.lang.String getStringParameter(javax.servlet.ServletRequest,java.lang.String,java.lang.String)>(v, "sp", null);
 v = 0;
-goto label;
 label:
 v = v.<psiprobe.beans.stats.providers.StandardSeriesProvider: java.util.List statNames>;
+v = interfaceinvoke v.<java.util.List: int size()>();
+if v >= v goto label;
+v = v.<psiprobe.beans.stats.providers.StandardSeriesProvider: java.util.List statNames>;
 v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
 if v == null goto label;
 v = newarray (java.lang.Object)[1];
@@ -59,20 +60,16 @@
 label:
 v = virtualinvoke v.<psiprobe.model.stats.StatsCollection: java.util.List getStats(java.lang.String)>(v);
 if v == null goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("s");
 v = v + 1;
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("\u0001l");
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("series");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("s\u0001l");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("series\u0001");
 v = staticinvoke <org.springframework.web.bind.ServletRequestUtils: java.lang.String getStringParameter(javax.servlet.ServletRequest,java.lang.String,java.lang.String)>(v, v, v);
 v = virtualinvoke v.<psiprobe.beans.stats.providers.StandardSeriesProvider: org.jfree.data.xy.XYSeries toSeries(java.lang.String,java.util.List)>(v, v);
 virtualinvoke v.<org.jfree.data.xy.DefaultTableXYDataset: void addSeries(org.jfree.data.xy.XYSeries)>(v);
 label:
 v = v + 1;
+goto label;
 label:
-v = v.<psiprobe.beans.stats.providers.StandardSeriesProvider: java.util.List statNames>;
-v = interfaceinvoke v.<java.util.List: int size()>();
-if v < v goto label;
 return;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.DecoratorController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.DecoratorController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.DecoratorController.jimple	2025-03-13 18:06:11.463878631 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.DecoratorController.jimple	2025-03-13 18:06:17.171788829 +0000
@@ -48,11 +48,10 @@
 java.lang.management.RuntimeMXBean v;
 org.springframework.web.servlet.ModelAndView v;
 java.util.List v;
-java.lang.StringBuilder v;
 long v, v, v, v, v, v, v, v;
 javax.servlet.http.HttpServletRequest v;
 int v, v;
-java.lang.String v, v, v, v, v, v;
+java.lang.String v, v, v, v, v;
 java.util.Iterator v;
 javax.servlet.http.HttpServletResponse v;
 java.net.UnknownHostException v;
@@ -98,23 +97,18 @@
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.util.Locale getLocale()>();
 v = specialinvoke v.<psiprobe.controllers.DecoratorController: java.util.List getMessageFileNamesForLocale(java.util.Locale)>(v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.controllers.DecoratorController: javax.servlet.ServletContext getServletContext()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".properties");
+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[])>("\u.properties");
 v = interfaceinvoke v.<javax.servlet.ServletContext: java.net.URL getResource(java.lang.String)>(v);
 if v == null goto label;
 v = v.<psiprobe.controllers.DecoratorController: java.lang.String messagesBasename>;
 v = virtualinvoke v.<java.lang.String: int length()>();
 v = v + 1;
 v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
-goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 label:
 interfaceinvoke v.<javax.servlet.http.HttpServletRequest: void setAttribute(java.lang.String,java.lang.Object)>("lang", v);
 v = specialinvoke v.<psiprobe.PostParameterizableViewController: org.springframework.web.servlet.ModelAndView handleRequestInternal(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)>(v, v);
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.RememberVisibilityController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.RememberVisibilityController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.RememberVisibilityController.jimple	2025-03-13 18:06:11.463878631 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.RememberVisibilityController.jimple	2025-03-13 18:06:17.171788829 +0000
@@ -32,8 +32,7 @@
 psiprobe.controllers.RememberVisibilityController v;
 long v, v;
 javax.servlet.http.HttpServletRequest v;
-java.lang.StringBuilder v;
-java.lang.String v, v, v, v, v, v;
+java.lang.String v, v, v, v, v;
 v := @this: psiprobe.controllers.RememberVisibilityController;
 v := @parameter: javax.servlet.http.HttpServletRequest;
 v := @parameter: javax.servlet.http.HttpServletResponse;
@@ -42,15 +41,13 @@
 if v == null goto label;
 if v == null goto label;
 v = staticinvoke <psiprobe.jsp.Functions: java.lang.String safeCookieName(java.lang.String)>(v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = v.<psiprobe.controllers.RememberVisibilityController: java.text.SimpleDateFormat sdf>;
 v = new java.util.Date;
 v = staticinvoke <java.lang.System: long currentTimeMillis()>();
 v = v + 315360000000L;
 specialinvoke v.<java.util.Date: void <init>(long)>(v);
 v = virtualinvoke v.<java.text.SimpleDateFormat: java.lang.String format(java.util.Date)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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; Expires=\u; Secure=true; HttpOnly=true");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("\u0001=\u; Expires=\u; Secure=true; HttpOnly=true");
 interfaceinvoke v.<javax.servlet.http.HttpServletResponse: void addHeader(java.lang.String,java.lang.String)>("Set-Cookie", v);
 label:
 return null;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.RenderChartController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.RenderChartController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.RenderChartController.jimple	2025-03-13 18:06:11.467878568 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.RenderChartController.jimple	2025-03-13 18:06:17.175788767 +0000
@@ -2,13 +2,6 @@
 {
 private static final org.slf4j.Logger logger;
 private psiprobe.model.stats.StatsCollection statsCollection;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/RenderChartController;");
-<psiprobe.controllers.RenderChartController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.RenderChartController v;
@@ -54,7 +47,6 @@
 org.jfree.data.xy.DefaultTableXYDataset v;
 org.jfree.chart.axis.DateAxis v, v;
 java.awt.BasicStroke v;
-java.lang.StringBuilder v, v;
 javax.servlet.http.HttpServletRequest v;
 java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
 org.jfree.chart.ui.RectangleInsets v;
@@ -83,18 +75,17 @@
 v = staticinvoke <psiprobe.Utils: int toIntHex(java.lang.String,int)>(v, 16713222);
 v[1] = v;
 v = 2;
-goto label;
 label:
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("s");
+if v >= 9 goto label;
 v = v + 1;
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("\u0001c");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("s\u0001c");
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getParameter(java.lang.String)>(v);
 v = (int) -1;
 v = staticinvoke <psiprobe.Utils: int toIntHex(java.lang.String,int)>(v, v);
 v[v] = v;
 v = v + 1;
+goto label;
 label:
-if v < 9 goto label;
 v = newarray (int)[9];
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getParameter(java.lang.String)>("s1o");
 v = staticinvoke <psiprobe.Utils: int toIntHex(java.lang.String,int)>(v, 419242);
@@ -103,18 +94,17 @@
 v = staticinvoke <psiprobe.Utils: int toIntHex(java.lang.String,int)>(v, 10289152);
 v[1] = v;
 v = 2;
-goto label;
 label:
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("s");
+if v >= 9 goto label;
 v = v + 1;
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("\u0001o");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("s\u0001o");
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getParameter(java.lang.String)>(v);
 v = (int) -1;
 v = staticinvoke <psiprobe.Utils: int toIntHex(java.lang.String,int)>(v, v);
 v[v] = v;
 v = v + 1;
+goto label;
 label:
-if v < 9 goto label;
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getParameter(java.lang.String)>("bc");
 v = staticinvoke <psiprobe.Utils: int toIntHex(java.lang.String,int)>(v, 16777215);
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getParameter(java.lang.String)>("gc");
@@ -167,16 +157,16 @@
 specialinvoke v.<psiprobe.jfreechart.XYLine3DRenderer: void <init>()>();
 virtualinvoke v.<psiprobe.jfreechart.XYLine3DRenderer: void setDrawOutlines(boolean)>(1);
 v = 0;
-goto label;
 label:
+if v >= 9 goto label;
 virtualinvoke v.<psiprobe.jfreechart.XYLine3DRenderer: void setSeriesLinesVisible(int,boolean)>(v, 1);
 virtualinvoke v.<psiprobe.jfreechart.XYLine3DRenderer: void setSeriesShapesVisible(int,boolean)>(v, 1);
 v = new java.awt.BasicStroke;
 specialinvoke v.<java.awt.BasicStroke: void <init>(float)>(2.0F);
 virtualinvoke v.<psiprobe.jfreechart.XYLine3DRenderer: void setSeriesStroke(int,java.awt.Stroke)>(v, v);
 v = v + 1;
+goto label;
 label:
-if v < 9 goto label;
 virtualinvoke v.<psiprobe.jfreechart.XYLine3DRenderer: void setXOffset(double)>(1.0);
 virtualinvoke v.<psiprobe.jfreechart.XYLine3DRenderer: void setYOffset(double)>(1.0);
 v = virtualinvoke v.<org.jfree.chart.JFreeChart: org.jfree.chart.plot.XYPlot getXYPlot()>();
@@ -188,8 +178,8 @@
 specialinvoke v.<java.awt.Color: void <init>(int)>(v);
 virtualinvoke v.<org.jfree.chart.JFreeChart: void setBackgroundPaint(java.awt.Paint)>(v);
 v = 0;
-goto label;
 label:
+if v >= 9 goto label;
 v = v[v];
 if v < 0 goto label;
 v = virtualinvoke v.<org.jfree.chart.JFreeChart: org.jfree.chart.plot.XYPlot getXYPlot()>();
@@ -209,8 +199,8 @@
 interfaceinvoke v.<org.jfree.chart.renderer.xy.XYItemRenderer: void setSeriesOutlinePaint(int,java.awt.Paint)>(v, v);
 label:
 v = v + 1;
+goto label;
 label:
-if v < 9 goto label;
 v = virtualinvoke v.<org.jfree.chart.JFreeChart: org.jfree.chart.plot.XYPlot getXYPlot()>();
 v = new java.awt.Color;
 specialinvoke v.<java.awt.Color: void <init>(int)>(v);
@@ -239,4 +229,11 @@
 label:
 return null;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/RenderChartController;");
+<psiprobe.controllers.RenderChartController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.WhoisController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.WhoisController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.WhoisController.jimple	2025-03-13 18:06:11.467878568 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.WhoisController.jimple	2025-03-13 18:06:17.179788704 +0000
@@ -4,13 +4,6 @@
 private long lookupTimeout;
 private java.lang.String defaultServer;
 private int defaultPort;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/WhoisController;");
-<psiprobe.controllers.WhoisController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.WhoisController v;
@@ -89,7 +82,6 @@
 boolean v;
 psiprobe.controllers.WhoisController v;
 org.springframework.web.servlet.ModelAndView v, v, v, v;
-java.lang.StringBuilder v, v;
 psiprobe.tools.Whois$Response v;
 java.lang.Throwable v;
 long v;
@@ -98,7 +90,7 @@
 java.nio.charset.Charset v, v;
 int v, v, v;
 java.lang.Boolean v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v;
 org.slf4j.Logger v, v, v;
 javax.servlet.http.HttpServletResponse v;
 java.io.IOException v;
@@ -140,20 +132,15 @@
 specialinvoke v.<java.io.InputStreamReader: void <init>(java.io.InputStream,java.nio.charset.Charset)>(v, v);
 specialinvoke v.<java.io.BufferedReader: void <init>(java.io.Reader)>(v);
 label:
-goto label;
-label:
-interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-label:
 v = virtualinvoke v.<java.io.BufferedReader: java.lang.String readLine()>();
-if v != null goto label;
+if v == null goto label;
+interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
 virtualinvoke v.<java.io.BufferedReader: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.BufferedReader: void close()>();
-label:
 throw v;
 label:
 v = null;
@@ -177,17 +164,13 @@
 v = virtualinvoke v.<org.springframework.web.servlet.ModelAndView: org.springframework.web.servlet.ModelAndView addObject(java.lang.String,java.lang.Object)>("timeout", v);
 if v == null goto label;
 v = virtualinvoke v.<psiprobe.tools.Whois$Response: java.lang.String getServer()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.tools.Whois$Response: int getPort()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>(":\u0001");
+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[])>("\u0001:\u0001");
 goto label;
 label:
 v = v.<psiprobe.controllers.WhoisController: java.lang.String defaultServer>;
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = v.<psiprobe.controllers.WhoisController: int defaultPort>;
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>(":\u0001");
+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[])>("\u0001:\u0001");
 label:
 v = virtualinvoke v.<org.springframework.web.servlet.ModelAndView: org.springframework.web.servlet.ModelAndView addObject(java.lang.String,java.lang.Object)>("whoisServer", v);
 v = virtualinvoke v.<org.springframework.web.servlet.ModelAndView: org.springframework.web.servlet.ModelAndView addObject(java.lang.String,java.lang.Object)>("domainName", v);
@@ -205,4 +188,11 @@
 specialinvoke v.<org.springframework.web.servlet.mvc.ParameterizableViewController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/WhoisController;");
+<psiprobe.controllers.WhoisController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.AbstractNoSelfContextHandlerController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.AbstractNoSelfContextHandlerController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.AbstractNoSelfContextHandlerController.jimple	2025-03-13 18:06:11.471878505 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.AbstractNoSelfContextHandlerController.jimple	2025-03-13 18:06:17.183788641 +0000
@@ -2,13 +2,6 @@
 {
 private static final org.slf4j.Logger logger;
 private boolean passQueryString;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/AbstractNoSelfContextHandlerController;");
-<psiprobe.controllers.apps.AbstractNoSelfContextHandlerController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.apps.AbstractNoSelfContextHandlerController v;
@@ -39,7 +32,7 @@
 org.springframework.web.servlet.view.InternalResourceView v;
 javax.servlet.http.HttpServletRequest v;
 org.springframework.web.servlet.view.RedirectView v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v, v;
 boolean v, v;
 org.slf4j.Logger v;
 javax.servlet.http.HttpServletResponse v;
@@ -48,7 +41,6 @@
 java.lang.Exception v;
 org.springframework.web.servlet.ModelAndView v, v;
 org.springframework.context.support.MessageSourceAccessor v;
-java.lang.StringBuilder v, v;
 v := @this: psiprobe.controllers.apps.AbstractNoSelfContextHandlerController;
 v := @parameter: java.lang.String;
 v := @parameter: org.apache.catalina.Context;
@@ -83,23 +75,27 @@
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.RedirectView;
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getContextPath()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.controllers.apps.AbstractNoSelfContextHandlerController: java.lang.String getViewName()>();
 v = virtualinvoke v.<psiprobe.controllers.apps.AbstractNoSelfContextHandlerController: boolean isPassQueryString()>();
 if v == 0 goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("?");
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getQueryString()>();
-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[])>("\u0001");
+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[])>("?\u0001");
 goto label;
 label:
 v = "";
 label:
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("\u0001\u0001\u0001");
 specialinvoke v.<org.springframework.web.servlet.view.RedirectView: void <init>(java.lang.String)>(v);
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(org.springframework.web.servlet.View)>(v);
 return v;
 catch java.lang.Exception from label to label with label;
 }
 protected abstract void executeAction(java.lang.String) throws java.lang.Exception;
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/AbstractNoSelfContextHandlerController;");
+<psiprobe.controllers.apps.AbstractNoSelfContextHandlerController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.AjaxReloadContextController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.AjaxReloadContextController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.AjaxReloadContextController.jimple	2025-03-13 18:06:11.471878505 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.AjaxReloadContextController.jimple	2025-03-13 18:06:17.183788641 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.apps.AjaxReloadContextController extends psiprobe.controllers.AbstractContextHandlerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/AjaxReloadContextController;");
-<psiprobe.controllers.apps.AjaxReloadContextController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.apps.AjaxReloadContextController v;
@@ -98,4 +91,11 @@
 specialinvoke v.<psiprobe.controllers.AbstractContextHandlerController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/AjaxReloadContextController;");
+<psiprobe.controllers.apps.AjaxReloadContextController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.AjaxToggleContextController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.AjaxToggleContextController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.AjaxToggleContextController.jimple	2025-03-13 18:06:11.475878442 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.AjaxToggleContextController.jimple	2025-03-13 18:06:17.183788641 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.apps.AjaxToggleContextController extends psiprobe.controllers.AbstractContextHandlerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/AjaxToggleContextController;");
-<psiprobe.controllers.apps.AjaxToggleContextController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.apps.AjaxToggleContextController v;
@@ -116,4 +109,11 @@
 specialinvoke v.<psiprobe.controllers.AbstractContextHandlerController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/AjaxToggleContextController;");
+<psiprobe.controllers.apps.AjaxToggleContextController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseDownloadXmlConfController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseDownloadXmlConfController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseDownloadXmlConfController.jimple	2025-03-13 18:06:11.475878442 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseDownloadXmlConfController.jimple	2025-03-13 18:06:17.187788578 +0000
@@ -4,13 +4,6 @@
 private static final java.lang.String TARGET_WEB_XML;
 private static final java.lang.String TARGET_CONTEXT_XML;
 private java.lang.String downloadTarget;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/BaseDownloadXmlConfController;");
-<psiprobe.controllers.apps.BaseDownloadXmlConfController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.apps.BaseDownloadXmlConfController v;
@@ -49,7 +42,6 @@
 psiprobe.TomcatContainer v;
 psiprobe.beans.ContainerWrapperBean v;
 java.lang.Class v;
-java.lang.StringBuilder v, v;
 javax.servlet.ServletContext v;
 v := @this: psiprobe.controllers.apps.BaseDownloadXmlConfController;
 v := @parameter: java.lang.String;
@@ -59,10 +51,9 @@
 v = v.<psiprobe.controllers.apps.BaseDownloadXmlConfController: java.lang.String downloadTarget>;
 if v != null goto label;
 v = new java.lang.RuntimeException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Download target is not set for ");
 v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
 v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
-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[])>("\u0001");
+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[])>("Download target is not set for \u0001");
 specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -85,9 +76,8 @@
 goto label;
 label:
 v = new java.lang.RuntimeException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Unknown download target ");
 v = virtualinvoke v.<psiprobe.controllers.apps.BaseDownloadXmlConfController: java.lang.String getDownloadTarget()>();
-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[])>("\u0001");
+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[])>("Unknown download target \u0001");
 specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -109,4 +99,11 @@
 label:
 return null;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/BaseDownloadXmlConfController;");
+<psiprobe.controllers.apps.BaseDownloadXmlConfController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseGetApplicationController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseGetApplicationController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseGetApplicationController.jimple	2025-03-13 18:06:11.479878378 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseGetApplicationController.jimple	2025-03-13 18:06:17.187788578 +0000
@@ -68,7 +68,6 @@
 boolean v, v, v, v, v, v, v, v;
 psiprobe.beans.ResourceResolver v, v;
 org.springframework.web.servlet.ModelAndView v, v, v, v;
-java.lang.StringBuilder v;
 psiprobe.controllers.apps.BaseGetApplicationController v;
 long v, v;
 psiprobe.model.Application v;
@@ -110,9 +109,8 @@
 if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.controllers.apps.BaseGetApplicationController: psiprobe.model.stats.StatsCollection getStatsCollection()>();
 if v == null goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("app.avg_proc_time.");
 v = virtualinvoke v.<psiprobe.model.Application: java.lang.String getName()>();
-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[])>("\u0001");
+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[])>("app.avg_proc_time.\u0001");
 v = virtualinvoke v.<psiprobe.controllers.apps.BaseGetApplicationController: psiprobe.model.stats.StatsCollection getStatsCollection()>();
 v = virtualinvoke v.<psiprobe.model.stats.StatsCollection: long getLastValueForStat(java.lang.String)>(v);
 virtualinvoke v.<psiprobe.model.Application: void setAvgTime(long)>(v);
@@ -122,11 +120,11 @@
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<org.springframework.web.servlet.ModelAndView: org.springframework.web.servlet.ModelAndView addObject(java.lang.String,java.lang.Object)>("app", v);
 v = interfaceinvoke v.<psiprobe.beans.ResourceResolver: boolean supportsPrivateResources()>();
-if v == 0 goto label;
-v = 0;
+if v != 0 goto label;
+v = 1;
 goto label;
 label:
-v = 1;
+v = 0;
 label:
 v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
 v = virtualinvoke v.<org.springframework.web.servlet.ModelAndView: org.springframework.web.servlet.ModelAndView addObject(java.lang.String,java.lang.Object)>("no_resources", v);
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseReloadContextController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseReloadContextController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseReloadContextController.jimple	2025-03-13 18:06:11.479878378 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseReloadContextController.jimple	2025-03-13 18:06:17.191788514 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.apps.BaseReloadContextController extends psiprobe.controllers.apps.AbstractNoSelfContextHandlerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/BaseReloadContextController;");
-<psiprobe.controllers.apps.BaseReloadContextController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.apps.BaseReloadContextController v;
@@ -43,4 +36,11 @@
 label:
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/BaseReloadContextController;");
+<psiprobe.controllers.apps.BaseReloadContextController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseStartContextController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseStartContextController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseStartContextController.jimple	2025-03-13 18:06:11.479878378 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseStartContextController.jimple	2025-03-13 18:06:17.191788514 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.apps.BaseStartContextController extends psiprobe.controllers.apps.AbstractNoSelfContextHandlerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/BaseStartContextController;");
-<psiprobe.controllers.apps.BaseStartContextController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.apps.BaseStartContextController v;
@@ -39,4 +32,11 @@
 interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>(v, v, v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/BaseStartContextController;");
+<psiprobe.controllers.apps.BaseStartContextController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseStopContextController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseStopContextController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseStopContextController.jimple	2025-03-13 18:06:11.479878378 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseStopContextController.jimple	2025-03-13 18:06:17.191788514 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.apps.BaseStopContextController extends psiprobe.controllers.apps.AbstractNoSelfContextHandlerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/BaseStopContextController;");
-<psiprobe.controllers.apps.BaseStopContextController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.apps.BaseStopContextController v;
@@ -39,4 +32,11 @@
 interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>(v, v, v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/BaseStopContextController;");
+<psiprobe.controllers.apps.BaseStopContextController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseViewXmlConfController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseViewXmlConfController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseViewXmlConfController.jimple	2025-03-13 18:06:11.483878317 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.BaseViewXmlConfController.jimple	2025-03-13 18:06:17.195788453 +0000
@@ -5,13 +5,6 @@
 private static final java.lang.String TARGET_CONTEXT_XML;
 private java.lang.String displayTarget;
 private java.lang.String downloadUrl;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/BaseViewXmlConfController;");
-<psiprobe.controllers.apps.BaseViewXmlConfController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.apps.BaseViewXmlConfController v;
@@ -58,7 +51,6 @@
 java.nio.file.Path v;
 boolean v, v, v;
 org.springframework.web.servlet.ModelAndView v;
-java.lang.StringBuilder v, v;
 java.lang.Throwable v;
 javax.servlet.http.HttpServletRequest v;
 java.nio.charset.Charset v;
@@ -84,10 +76,9 @@
 v = v.<psiprobe.controllers.apps.BaseViewXmlConfController: java.lang.String displayTarget>;
 if v != null goto label;
 v = new java.lang.RuntimeException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Display target is not set for ");
 v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
 v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
-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[])>("\u0001");
+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[])>("Display target is not set for \u0001");
 specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -127,9 +118,8 @@
 goto label;
 label:
 v = new java.lang.RuntimeException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Unknown display target ");
 v = virtualinvoke v.<psiprobe.controllers.apps.BaseViewXmlConfController: java.lang.String getDisplayTarget()>();
-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[])>("\u0001");
+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[])>("Unknown display target \u0001");
 specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -162,9 +152,6 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.InputStream: void close()>();
-label:
 throw v;
 label:
 v = <psiprobe.controllers.apps.BaseViewXmlConfController: org.slf4j.Logger logger>;
@@ -178,4 +165,11 @@
 return v;
 catch java.lang.Throwable from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/apps/BaseViewXmlConfController;");
+<psiprobe.controllers.apps.BaseViewXmlConfController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.ListWebappsController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.ListWebappsController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.ListWebappsController.jimple	2025-03-13 18:06:11.487878253 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.ListWebappsController.jimple	2025-03-13 18:06:17.203788326 +0000
@@ -28,7 +28,6 @@
 psiprobe.beans.ResourceResolver v, v;
 org.springframework.web.servlet.ModelAndView v;
 java.util.List v;
-java.lang.StringBuilder v;
 psiprobe.model.Application v;
 java.util.ArrayList v;
 javax.servlet.http.HttpServletRequest v;
@@ -64,10 +63,9 @@
 label:
 v := @caughtexception;
 v = new java.lang.IllegalStateException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("No container found for your server: ");
 v = virtualinvoke v.<psiprobe.controllers.apps.ListWebappsController: javax.servlet.ServletContext getServletContext()>();
 v = interfaceinvoke v.<javax.servlet.ServletContext: java.lang.String getServerInfo()>();
-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[])>("\u0001");
+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[])>("No container found for your server: \u0001");
 specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
 throw v;
 label:
@@ -78,8 +76,9 @@
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.beans.ResourceResolver getResourceResolver()>();
 v = interfaceinvoke v.<psiprobe.beans.ResourceResolver: boolean supportsPrivateResources()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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.<org.apache.catalina.Context: java.lang.String getName()>();
 if v == null goto label;
@@ -88,9 +87,8 @@
 v = virtualinvoke v.<psiprobe.controllers.apps.ListWebappsController: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = staticinvoke <psiprobe.tools.ApplicationUtils: psiprobe.model.Application getApplication(org.apache.catalina.Context,psiprobe.beans.ResourceResolver,boolean,psiprobe.beans.ContainerWrapperBean)>(v, v, v, v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
 if v != 0 goto label;
 if v != 0 goto label;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.RemoveApplicationAttributeController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.RemoveApplicationAttributeController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.RemoveApplicationAttributeController.jimple	2025-03-13 18:06:11.487878253 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.apps.RemoveApplicationAttributeController.jimple	2025-03-13 18:06:17.203788326 +0000
@@ -27,9 +27,8 @@
 javax.servlet.http.HttpServletRequest v;
 org.springframework.web.servlet.view.RedirectView v;
 psiprobe.controllers.apps.RemoveApplicationAttributeController v;
-java.lang.StringBuilder v;
 javax.servlet.ServletContext v;
-java.lang.String v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v;
 v := @this: psiprobe.controllers.apps.RemoveApplicationAttributeController;
 v := @parameter: java.lang.String;
 v := @parameter: org.apache.catalina.Context;
@@ -41,11 +40,9 @@
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.RedirectView;
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getContextPath()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.controllers.apps.RemoveApplicationAttributeController: java.lang.String getViewName()>();
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getQueryString()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001?\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("\u0001\u0001?\u0001");
 specialinvoke v.<org.springframework.web.servlet.view.RedirectView: void <init>(java.lang.String)>(v);
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(org.springframework.web.servlet.View)>(v);
 return v;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.certificates.ListCertificatesController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.certificates.ListCertificatesController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.certificates.ListCertificatesController.jimple	2025-03-13 18:06:11.495878127 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.certificates.ListCertificatesController.jimple	2025-03-13 18:06:17.207788263 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.certificates.ListCertificatesController extends psiprobe.controllers.AbstractTomcatContainerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/certificates/ListCertificatesController;");
-<psiprobe.controllers.certificates.ListCertificatesController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.certificates.ListCertificatesController v;
@@ -54,13 +47,15 @@
 v = interfaceinvoke v.<psiprobe.TomcatContainer: java.util.List findConnectors()>();
 v = specialinvoke v.<psiprobe.controllers.certificates.ListCertificatesController: java.util.List getConnectorInfos(java.util.List)>(v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.certificates.ConnectorInfo: java.util.List getSslHostConfigInfos()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.certificates.SslHostConfigInfo: java.lang.String getTruststoreFile()>();
 if v == null goto label;
@@ -72,8 +67,9 @@
 label:
 v = virtualinvoke v.<psiprobe.model.certificates.SslHostConfigInfo: java.util.List getCertificateInfos()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.certificates.CertificateInfo: java.lang.String getCertificateKeystoreFile()>();
 if v == null goto label;
@@ -82,15 +78,8 @@
 v = virtualinvoke v.<psiprobe.model.certificates.CertificateInfo: java.lang.String getCertificateKeystorePassword()>();
 v = virtualinvoke v.<psiprobe.controllers.certificates.ListCertificatesController: java.util.List getCertificates(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
 virtualinvoke v.<psiprobe.model.certificates.CertificateInfo: void setKeyStoreCerts(java.util.List)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 virtualinvoke v.<org.springframework.web.servlet.ModelAndView: org.springframework.web.servlet.ModelAndView addObject(java.lang.String,java.lang.Object)>("connectors", v);
 label:
 goto label;
@@ -110,7 +99,9 @@
 int v, v;
 java.lang.String v, v, v, v;
 boolean v;
+org.slf4j.Logger v;
 java.util.Iterator v;
+java.io.IOException v;
 java.security.KeyStore v;
 java.security.cert.Certificate v, v;
 psiprobe.controllers.certificates.ListCertificatesController v;
@@ -142,39 +133,40 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.InputStream: void close()>();
-label:
 throw v;
 label:
+v := @caughtexception;
+v = <psiprobe.controllers.certificates.ListCertificatesController: org.slf4j.Logger logger>;
+interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Error loading store file {}", v, v);
+return null;
+label:
 v = new java.util.ArrayList;
 specialinvoke v.<java.util.ArrayList: void <init>()>();
 v = virtualinvoke v.<java.security.KeyStore: java.util.Enumeration aliases()>();
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<java.security.KeyStore: java.security.cert.Certificate[] getCertificateChain(java.lang.String)>(v);
 if v == null goto label;
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 specialinvoke v.<psiprobe.controllers.certificates.ListCertificatesController: void addToStore(java.util.List,java.lang.String,java.security.cert.X509Certificate)>(v, v, v);
 v = v + 1;
-label:
-if v < v goto label;
 goto label;
 label:
 v = virtualinvoke v.<java.security.KeyStore: java.security.cert.Certificate getCertificate(java.lang.String)>(v);
 specialinvoke v.<psiprobe.controllers.certificates.ListCertificatesController: void addToStore(java.util.List,java.lang.String,java.security.cert.X509Certificate)>(v, v, v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return v;
 catch java.lang.Throwable from label to label with label;
+catch java.io.IOException from label to label with label;
 }
 private java.util.List getConnectorInfos(java.util.List) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
 {
@@ -191,8 +183,9 @@
 v = new java.util.ArrayList;
 specialinvoke v.<java.util.ArrayList: void <init>()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<org.apache.catalina.connector.Connector: boolean getSecure()>();
 if v == 0 goto label;
@@ -203,9 +196,8 @@
 if v == 0 goto label;
 v = specialinvoke v.<psiprobe.controllers.certificates.ListCertificatesController: psiprobe.model.certificates.ConnectorInfo toConnectorInfo(org.apache.coyote.http.AbstractHttp11JsseProtocol)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return v;
 }
 private java.io.InputStream getStoreInputStream(java.lang.String) throws java.io.IOException
@@ -339,4 +331,11 @@
 specialinvoke v.<psiprobe.controllers.AbstractTomcatContainerController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/certificates/ListCertificatesController;");
+<psiprobe.controllers.certificates.ListCertificatesController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.certificates.SslHostConfigHelper.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.certificates.SslHostConfigHelper.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.certificates.SslHostConfigHelper.jimple	2025-03-13 18:06:11.495878127 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.certificates.SslHostConfigHelper.jimple	2025-03-13 18:06:17.211788200 +0000
@@ -21,14 +21,14 @@
 virtualinvoke v.<psiprobe.model.certificates.ConnectorInfo: void setSslHostConfigInfos(java.util.List)>(v);
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = specialinvoke v.<psiprobe.controllers.certificates.SslHostConfigHelper: psiprobe.model.certificates.SslHostConfigInfo toSslHostConfigInfo(org.apache.tomcat.util.net.SSLHostConfig)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 return;
 }
 private psiprobe.model.certificates.SslHostConfigInfo toSslHostConfigInfo(org.apache.tomcat.util.net.SSLHostConfig) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
@@ -54,14 +54,14 @@
 specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
 virtualinvoke v.<psiprobe.model.certificates.SslHostConfigInfo: void setCertificateInfos(java.util.List)>(v);
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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 = specialinvoke v.<psiprobe.controllers.certificates.SslHostConfigHelper: psiprobe.model.certificates.CertificateInfo toCertificateInfo(org.apache.tomcat.util.net.SSLHostConfigCertificate)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return v;
 }
 private psiprobe.model.certificates.CertificateInfo toCertificateInfo(org.apache.tomcat.util.net.SSLHostConfigCertificate) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.connectors.BaseGetConnectorController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.connectors.BaseGetConnectorController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.connectors.BaseGetConnectorController.jimple	2025-03-13 18:06:11.503878002 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.connectors.BaseGetConnectorController.jimple	2025-03-13 18:06:17.219788075 +0000
@@ -47,17 +47,14 @@
 v = v.<psiprobe.controllers.connectors.BaseGetConnectorController: psiprobe.beans.ContainerListenerBean containerListenerBean>;
 v = virtualinvoke v.<psiprobe.beans.ContainerListenerBean: java.util.List getConnectors(boolean)>(0);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.Connector: java.lang.String getProtocolHandler()>();
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
 if v == 0 goto label;
 v = v;
-goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 label:
 v = new org.springframework.web.servlet.ModelAndView;
 v = virtualinvoke v.<psiprobe.controllers.connectors.BaseGetConnectorController: java.lang.String getViewName()>();
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.connectors.ResetConnectorStatsController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.connectors.ResetConnectorStatsController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.connectors.ResetConnectorStatsController.jimple	2025-03-13 18:06:11.507877939 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.connectors.ResetConnectorStatsController.jimple	2025-03-13 18:06:17.223788012 +0000
@@ -44,8 +44,7 @@
 psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean v;
 javax.servlet.http.HttpServletRequest v;
 org.springframework.web.servlet.view.RedirectView v;
-java.lang.StringBuilder v;
-java.lang.String v, v, v, v, v;
+java.lang.String v, v, v, v;
 psiprobe.controllers.connectors.ResetConnectorStatsController v;
 v := @this: psiprobe.controllers.connectors.ResetConnectorStatsController;
 v := @parameter: javax.servlet.http.HttpServletRequest;
@@ -56,10 +55,8 @@
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.RedirectView;
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getContextPath()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.controllers.connectors.ResetConnectorStatsController: java.lang.String getViewName()>();
-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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
 specialinvoke v.<org.springframework.web.servlet.view.RedirectView: void <init>(java.lang.String)>(v);
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(org.springframework.web.servlet.View)>(v);
 return v;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.connectors.ToggleConnectorStatusController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.connectors.ToggleConnectorStatusController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.connectors.ToggleConnectorStatusController.jimple	2025-03-13 18:06:11.507877939 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.connectors.ToggleConnectorStatusController.jimple	2025-03-13 18:06:17.223788012 +0000
@@ -3,13 +3,6 @@
 private static final org.slf4j.Logger logger;
 private psiprobe.beans.stats.collectors.ConnectorStatsCollectorBean collectorBean;
 private psiprobe.beans.ContainerListenerBean containerListener;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/connectors/ToggleConnectorStatusController;");
-<psiprobe.controllers.connectors.ToggleConnectorStatusController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.connectors.ToggleConnectorStatusController v;
@@ -54,8 +47,7 @@
 org.springframework.web.servlet.ModelAndView v;
 javax.servlet.http.HttpServletRequest v;
 org.springframework.web.servlet.view.RedirectView v;
-java.lang.StringBuilder v;
-java.lang.String v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v;
 psiprobe.controllers.connectors.ToggleConnectorStatusController v;
 v := @this: psiprobe.controllers.connectors.ToggleConnectorStatusController;
 v := @parameter: javax.servlet.http.HttpServletRequest;
@@ -70,10 +62,8 @@
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.RedirectView;
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getContextPath()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.controllers.connectors.ToggleConnectorStatusController: java.lang.String getViewName()>();
-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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
 specialinvoke v.<org.springframework.web.servlet.view.RedirectView: void <init>(java.lang.String)>(v);
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(org.springframework.web.servlet.View)>(v);
 return v;
@@ -87,4 +77,11 @@
 specialinvoke v.<org.springframework.web.servlet.mvc.ParameterizableViewController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/connectors/ToggleConnectorStatusController;");
+<psiprobe.controllers.connectors.ToggleConnectorStatusController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
Only in results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar: psiprobe.controllers.datasources.ListAllJdbcResourceGroupsController$lambda_0__3.jimple
Only in results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar: psiprobe.controllers.datasources.ListAllJdbcResourceGroupsController$lambda_handleRequestInternal_0__3.jimple
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.datasources.ListAllJdbcResourceGroupsController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.datasources.ListAllJdbcResourceGroupsController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.datasources.ListAllJdbcResourceGroupsController.jimple	2025-03-13 18:06:11.511877876 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.datasources.ListAllJdbcResourceGroupsController.jimple	2025-03-13 18:06:17.223788012 +0000
@@ -47,12 +47,13 @@
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: java.util.List getGlobalDataSources()>();
 virtualinvoke v.<psiprobe.controllers.datasources.ListAllJdbcResourceGroupsController: void filterValidDataSources(java.util.List,java.util.List)>(v, v);
 virtualinvoke v.<psiprobe.controllers.datasources.ListAllJdbcResourceGroupsController: void filterValidDataSources(java.util.List,java.util.List)>(v, v);
-v = staticinvoke <psiprobe.controllers.datasources.ListAllJdbcResourceGroupsController$lambda_0__3: java.util.Comparator bootstrap$()>();
+v = staticinvoke <psiprobe.controllers.datasources.ListAllJdbcResourceGroupsController$lambda_handleRequestInternal_0__3: java.util.Comparator bootstrap$()>();
 staticinvoke <java.util.Collections: void sort(java.util.List,java.util.Comparator)>(v, v);
 v = null;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 if v == null goto label;
 v = virtualinvoke v.<psiprobe.model.DataSourceInfoGroup: java.lang.String getJdbcUrl()>();
@@ -67,9 +68,8 @@
 goto label;
 label:
 virtualinvoke v.<psiprobe.model.DataSourceInfoGroup: void addDataSourceInfo(psiprobe.model.DataSourceInfo)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = new org.springframework.web.servlet.ModelAndView;
 v = virtualinvoke v.<psiprobe.controllers.datasources.ListAllJdbcResourceGroupsController: java.lang.String getViewName()>();
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(java.lang.String,java.lang.String,java.lang.Object)>(v, "dataSourceGroups", v);
@@ -88,8 +88,9 @@
 v := @parameter: java.util.List;
 v := @parameter: java.util.List;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.ApplicationResource: boolean isLookedUp()>();
 if v == 0 goto label;
@@ -100,9 +101,8 @@
 if v == null goto label;
 v = virtualinvoke v.<psiprobe.model.ApplicationResource: psiprobe.model.DataSourceInfo getDataSourceInfo()>();
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 public void setViewName(java.lang.String)
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.datasources.ResetDataSourceController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.datasources.ResetDataSourceController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.datasources.ResetDataSourceController.jimple	2025-03-13 18:06:11.511877876 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.datasources.ResetDataSourceController.jimple	2025-03-13 18:06:17.227787948 +0000
@@ -2,13 +2,6 @@
 {
 private static final org.slf4j.Logger logger;
 private java.lang.String replacePattern;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/datasources/ResetDataSourceController;");
-<psiprobe.controllers.datasources.ResetDataSourceController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.datasources.ResetDataSourceController v;
@@ -52,7 +45,7 @@
 javax.servlet.http.HttpServletRequest v;
 org.springframework.web.servlet.view.RedirectView v;
 int v;
-java.lang.String v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v;
 boolean v;
 org.slf4j.Logger v, v;
 psiprobe.beans.ResourceResolver v;
@@ -62,7 +55,6 @@
 org.springframework.web.servlet.ModelAndView v;
 psiprobe.beans.ContainerWrapperBean v, v;
 org.springframework.context.support.MessageSourceAccessor v, v;
-java.lang.StringBuilder v;
 v := @this: psiprobe.controllers.datasources.ResetDataSourceController;
 v := @parameter: java.lang.String;
 v := @parameter: org.apache.catalina.Context;
@@ -76,10 +68,8 @@
 goto label;
 label:
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getContextPath()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.controllers.datasources.ResetDataSourceController: java.lang.String getViewName()>();
-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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
 label:
 if v == null goto label;
 v = virtualinvoke v.<java.lang.String: int length()>();
@@ -126,11 +116,11 @@
 v = virtualinvoke v.<psiprobe.controllers.datasources.ResetDataSourceController: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.beans.ResourceResolver getResourceResolver()>();
 v = interfaceinvoke v.<psiprobe.beans.ResourceResolver: boolean supportsPrivateResources()>();
-if v == 0 goto label;
-v = 0;
+if v != 0 goto label;
+v = 1;
 goto label;
 label:
-v = 1;
+v = 0;
 label:
 return v;
 }
@@ -143,4 +133,11 @@
 specialinvoke v.<psiprobe.controllers.AbstractContextHandlerController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/datasources/ResetDataSourceController;");
+<psiprobe.controllers.datasources.ResetDataSourceController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.BaseUndeployContextController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.BaseUndeployContextController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.BaseUndeployContextController.jimple	2025-03-13 18:06:11.515877812 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.BaseUndeployContextController.jimple	2025-03-13 18:06:17.227787948 +0000
@@ -2,13 +2,6 @@
 {
 private static final org.slf4j.Logger logger;
 private java.lang.String failureViewName;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/deploy/BaseUndeployContextController;");
-<psiprobe.controllers.deploy.BaseUndeployContextController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.deploy.BaseUndeployContextController v;
@@ -38,21 +31,20 @@
 java.lang.IllegalStateException v;
 psiprobe.controllers.deploy.BaseUndeployContextController v;
 org.springframework.web.servlet.view.InternalResourceView v;
+javax.servlet.http.HttpServletRequest v;
 org.springframework.web.servlet.view.RedirectView v;
+java.lang.String v, v, v, v, v, v, v, v, v, v, v;
 boolean v;
-java.lang.Exception v;
-org.springframework.web.servlet.ModelAndView v, v;
-org.springframework.security.core.context.SecurityContext v;
-java.lang.StringBuilder v;
-org.springframework.security.core.Authentication v;
-javax.servlet.http.HttpServletRequest v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v, v;
 org.slf4j.Logger v, v;
 javax.servlet.http.HttpServletResponse v;
 org.apache.catalina.Context v;
+java.lang.Exception v;
+org.springframework.web.servlet.ModelAndView v, v;
 psiprobe.TomcatContainer v;
+org.springframework.security.core.context.SecurityContext v;
 psiprobe.beans.ContainerWrapperBean v;
 org.springframework.context.support.MessageSourceAccessor v, v;
+org.springframework.security.core.Authentication v;
 v := @this: psiprobe.controllers.deploy.BaseUndeployContextController;
 v := @parameter: java.lang.String;
 v := @parameter: org.apache.catalina.Context;
@@ -102,10 +94,8 @@
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.RedirectView;
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getContextPath()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.controllers.deploy.BaseUndeployContextController: java.lang.String getViewName()>();
-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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
 specialinvoke v.<org.springframework.web.servlet.view.RedirectView: void <init>(java.lang.String)>(v);
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(org.springframework.web.servlet.View)>(v);
 return v;
@@ -119,4 +109,11 @@
 v := @parameter: java.lang.String;
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/deploy/BaseUndeployContextController;");
+<psiprobe.controllers.deploy.BaseUndeployContextController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.CopySingleFileController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.CopySingleFileController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.CopySingleFileController.jimple	2025-03-13 18:06:11.519877750 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.CopySingleFileController.jimple	2025-03-13 18:06:17.231787886 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.deploy.CopySingleFileController extends psiprobe.controllers.AbstractTomcatContainerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/deploy/CopySingleFileController;");
-<psiprobe.controllers.deploy.CopySingleFileController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.deploy.CopySingleFileController v;
@@ -29,7 +22,6 @@
 }
 protected org.springframework.web.servlet.ModelAndView handleRequestInternal(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) throws java.lang.Exception
 {
-java.lang.StringBuilder v, v;
 java.lang.Object[] v, v, v;
 org.apache.tomcat.util.http.fileupload.servlet.ServletRequestContext v, v;
 java.io.IOException v;
@@ -49,7 +41,7 @@
 java.lang.Throwable v;
 java.util.ArrayList v;
 javax.servlet.http.HttpServletRequest v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
 java.io.File v, v, v, v, v;
 java.lang.IllegalStateException v;
 java.lang.NullPointerException v;
@@ -75,18 +67,18 @@
 label:
 v := @caughtexception;
 v = new java.lang.IllegalStateException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("No container found for your server: ");
 v = virtualinvoke v.<psiprobe.controllers.deploy.CopySingleFileController: javax.servlet.ServletContext getServletContext()>();
 v = interfaceinvoke v.<javax.servlet.ServletContext: java.lang.String getServerInfo()>();
-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[])>("\u0001");
+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[])>("No container found for your server: \u0001");
 specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
 throw v;
 label:
 v = new java.util.ArrayList;
 specialinvoke v.<java.util.ArrayList: void <init>()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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.<org.apache.catalina.Context: java.lang.String getName()>();
 v = staticinvoke <com.google.common.base.Strings: boolean isNullOrEmpty(java.lang.String)>(v);
@@ -98,9 +90,8 @@
 v = interfaceinvoke v.<org.apache.catalina.Context: java.lang.String getName()>();
 interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("label", v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 interfaceinvoke v.<javax.servlet.http.HttpServletRequest: void setAttribute(java.lang.String,java.lang.Object)>("apps", v);
 v = new org.apache.tomcat.util.http.fileupload.servlet.ServletRequestContext;
 specialinvoke v.<org.apache.tomcat.util.http.fileupload.servlet.ServletRequestContext: void <init>(javax.servlet.http.HttpServletRequest)>(v);
@@ -127,8 +118,9 @@
 specialinvoke v.<org.apache.tomcat.util.http.fileupload.servlet.ServletRequestContext: void <init>(javax.servlet.http.HttpServletRequest)>(v);
 v = virtualinvoke v.<org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload: java.util.List parseRequest(org.apache.tomcat.util.http.fileupload.RequestContext)>(v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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.<org.apache.tomcat.util.http.fileupload.FileItem: boolean isFormField()>();
 if v != 0 goto label;
@@ -180,10 +172,6 @@
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
 if v == 0 goto label;
 v = 1;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -231,9 +219,7 @@
 v = virtualinvoke v.<psiprobe.controllers.deploy.CopySingleFileController: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
 v = interfaceinvoke v.<psiprobe.TomcatContainer: java.io.File getAppBase()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
 specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
 v = virtualinvoke v.<java.io.File: boolean exists()>();
 if v == 0 goto label;
@@ -290,6 +276,13 @@
 v = virtualinvoke v.<psiprobe.controllers.deploy.CopySingleFileController: org.springframework.context.support.MessageSourceAccessor getMessageSourceAccessor()>();
 v = virtualinvoke v.<org.springframework.context.support.MessageSourceAccessor: java.lang.String getMessage(java.lang.String)>("probe.src.deploy.file.notFile.failure");
 label:
+if v == null goto label;
+interfaceinvoke v.<javax.servlet.http.HttpServletRequest: void setAttribute(java.lang.String,java.lang.Object)>("errorMessage", v);
+label:
+v = virtualinvoke v.<java.io.File: boolean delete()>();
+if v != 0 goto label;
+v = <psiprobe.controllers.deploy.CopySingleFileController: org.slf4j.Logger logger>;
+interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("Unable to delete temp upload file");
 goto label;
 label:
 v := @caughtexception;
@@ -321,14 +314,6 @@
 label:
 throw v;
 label:
-if v == null goto label;
-interfaceinvoke v.<javax.servlet.http.HttpServletRequest: void setAttribute(java.lang.String,java.lang.Object)>("errorMessage", v);
-label:
-v = virtualinvoke v.<java.io.File: boolean delete()>();
-if v != 0 goto label;
-v = <psiprobe.controllers.deploy.CopySingleFileController: org.slf4j.Logger logger>;
-interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("Unable to delete temp upload file");
-label:
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.InternalResourceView;
 v = virtualinvoke v.<psiprobe.controllers.deploy.CopySingleFileController: java.lang.String getViewName()>();
@@ -339,6 +324,7 @@
 catch java.lang.Exception from label to label with label;
 catch java.io.IOException 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;
 }
 public void setViewName(java.lang.String)
 {
@@ -349,4 +335,11 @@
 specialinvoke v.<psiprobe.controllers.AbstractTomcatContainerController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/deploy/CopySingleFileController;");
+<psiprobe.controllers.deploy.CopySingleFileController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.DeployController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.DeployController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.DeployController.jimple	2025-03-13 18:06:11.519877750 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.DeployController.jimple	2025-03-13 18:06:17.235787823 +0000
@@ -36,7 +36,6 @@
 java.util.List v;
 psiprobe.beans.ContainerWrapperBean v;
 java.lang.Object v;
-java.lang.StringBuilder v;
 javax.servlet.ServletContext v;
 v := @this: psiprobe.controllers.deploy.DeployController;
 v := @parameter: javax.servlet.http.HttpServletRequest;
@@ -50,18 +49,18 @@
 label:
 v := @caughtexception;
 v = new java.lang.IllegalStateException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("No container found for your server: ");
 v = virtualinvoke v.<psiprobe.controllers.deploy.DeployController: javax.servlet.ServletContext getServletContext()>();
 v = interfaceinvoke v.<javax.servlet.ServletContext: java.lang.String getServerInfo()>();
-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[])>("\u0001");
+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[])>("No container found for your server: \u0001");
 specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
 throw v;
 label:
 v = new java.util.ArrayList;
 specialinvoke v.<java.util.ArrayList: void <init>()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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.<org.apache.catalina.Context: java.lang.String getName()>();
 v = staticinvoke <com.google.common.base.Strings: boolean isNullOrEmpty(java.lang.String)>(v);
@@ -73,9 +72,8 @@
 v = interfaceinvoke v.<org.apache.catalina.Context: java.lang.String getName()>();
 interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("label", v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 interfaceinvoke v.<javax.servlet.http.HttpServletRequest: void setAttribute(java.lang.String,java.lang.Object)>("apps", v);
 v = new org.springframework.web.servlet.ModelAndView;
 v = virtualinvoke v.<psiprobe.controllers.deploy.DeployController: java.lang.String getViewName()>();
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.UploadWarController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.UploadWarController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.UploadWarController.jimple	2025-03-13 18:06:11.523877687 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.deploy.UploadWarController.jimple	2025-03-13 18:06:17.239787760 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.deploy.UploadWarController extends psiprobe.controllers.AbstractTomcatContainerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/deploy/UploadWarController;");
-<psiprobe.controllers.deploy.UploadWarController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.deploy.UploadWarController v;
@@ -29,7 +22,6 @@
 }
 protected org.springframework.web.servlet.ModelAndView handleRequestInternal(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) throws java.lang.Exception
 {
-java.lang.StringBuilder v, v, v;
 java.lang.Object[] v, v, v, v;
 org.apache.tomcat.util.http.fileupload.servlet.ServletRequestContext v, v;
 java.io.IOException v;
@@ -49,7 +41,7 @@
 org.apache.tomcat.util.http.fileupload.disk.DiskFileItemFactory v;
 java.lang.Throwable v;
 javax.servlet.http.HttpServletRequest v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
 java.io.File v, v, v, v, v;
 java.net.URL v, v;
 java.net.URI v;
@@ -90,8 +82,9 @@
 specialinvoke v.<org.apache.tomcat.util.http.fileupload.servlet.ServletRequestContext: void <init>(javax.servlet.http.HttpServletRequest)>(v);
 v = virtualinvoke v.<org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload: java.util.List parseRequest(org.apache.tomcat.util.http.fileupload.RequestContext)>(v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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.<org.apache.tomcat.util.http.fileupload.FileItem: boolean isFormField()>();
 if v != 0 goto label;
@@ -147,10 +140,6 @@
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
 if v == 0 goto label;
 v = 1;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -184,8 +173,7 @@
 label:
 v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
 v = virtualinvoke v.<java.lang.String: java.lang.String replaceAll(java.lang.String,java.lang.String)>("\\.war$", "");
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("/");
-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[])>("\u0001");
+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[])>("/\u0001");
 label:
 v = virtualinvoke v.<psiprobe.controllers.deploy.UploadWarController: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
@@ -222,18 +210,15 @@
 v = virtualinvoke v.<psiprobe.controllers.deploy.UploadWarController: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
 v = interfaceinvoke v.<psiprobe.TomcatContainer: java.io.File getAppBase()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".war");
+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[])>("\u.war");
 specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
 staticinvoke <org.apache.commons.io.FileUtils: void moveFile(java.io.File,java.io.File)>(v, v);
 v = virtualinvoke v.<psiprobe.controllers.deploy.UploadWarController: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
 v = new java.net.URL;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("jar:");
 v = virtualinvoke v.<java.io.File: java.net.URI toURI()>();
 v = virtualinvoke v.<java.net.URI: java.net.URL toURL()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.URL)>(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[])>("\u0001!/");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.URL)>(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[])>("jar:\u0001!/");
 specialinvoke v.<java.net.URL: void <init>(java.lang.String)>(v);
 interfaceinvoke v.<psiprobe.TomcatContainer: void installWar(java.lang.String,java.net.URL)>(v, v);
 v = virtualinvoke v.<psiprobe.controllers.deploy.UploadWarController: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
@@ -287,6 +272,15 @@
 v = virtualinvoke v.<psiprobe.controllers.deploy.UploadWarController: org.springframework.context.support.MessageSourceAccessor getMessageSourceAccessor()>();
 v = virtualinvoke v.<org.springframework.context.support.MessageSourceAccessor: java.lang.String getMessage(java.lang.String)>("probe.src.deploy.war.notWar.failure");
 label:
+if v == null goto label;
+interfaceinvoke v.<javax.servlet.http.HttpServletRequest: void setAttribute(java.lang.String,java.lang.Object)>("errorMessage", v);
+label:
+v = virtualinvoke v.<java.io.File: boolean exists()>();
+if v == 0 goto label;
+v = virtualinvoke v.<java.io.File: boolean delete()>();
+if v != 0 goto label;
+v = <psiprobe.controllers.deploy.UploadWarController: org.slf4j.Logger logger>;
+interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("Unable to delete temp war file");
 goto label;
 label:
 v := @caughtexception;
@@ -322,16 +316,6 @@
 label:
 throw v;
 label:
-if v == null goto label;
-interfaceinvoke v.<javax.servlet.http.HttpServletRequest: void setAttribute(java.lang.String,java.lang.Object)>("errorMessage", v);
-label:
-v = virtualinvoke v.<java.io.File: boolean exists()>();
-if v == 0 goto label;
-v = virtualinvoke v.<java.io.File: boolean delete()>();
-if v != 0 goto label;
-v = <psiprobe.controllers.deploy.UploadWarController: org.slf4j.Logger logger>;
-interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>("Unable to delete temp war file");
-label:
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.InternalResourceView;
 v = virtualinvoke v.<psiprobe.controllers.deploy.UploadWarController: java.lang.String getViewName()>();
@@ -341,6 +325,7 @@
 catch java.lang.Exception from label to label with label;
 catch java.io.IOException 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;
 }
 public void setViewName(java.lang.String)
 {
@@ -351,4 +336,11 @@
 specialinvoke v.<psiprobe.controllers.AbstractTomcatContainerController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/deploy/UploadWarController;");
+<psiprobe.controllers.deploy.UploadWarController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.DiscardCompiledJspController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.DiscardCompiledJspController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.DiscardCompiledJspController.jimple	2025-03-13 18:06:11.531877561 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.DiscardCompiledJspController.jimple	2025-03-13 18:06:17.243787697 +0000
@@ -29,8 +29,7 @@
 javax.servlet.http.HttpServletRequest v;
 org.springframework.web.servlet.view.RedirectView v;
 psiprobe.beans.ContainerWrapperBean v;
-java.lang.StringBuilder v;
-java.lang.String v, v, v, v, v, v;
+java.lang.String v, v, v, v, v;
 v := @this: psiprobe.controllers.jsp.DiscardCompiledJspController;
 v := @parameter: java.lang.String;
 v := @parameter: org.apache.catalina.Context;
@@ -42,11 +41,9 @@
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.RedirectView;
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getContextPath()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.controllers.jsp.DiscardCompiledJspController: java.lang.String getViewName()>();
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getQueryString()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001?\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("\u0001\u0001?\u0001");
 specialinvoke v.<org.springframework.web.servlet.view.RedirectView: void <init>(java.lang.String)>(v);
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(org.springframework.web.servlet.View)>(v);
 return v;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.DisplayJspController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.DisplayJspController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.DisplayJspController.jimple	2025-03-13 18:06:11.531877561 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.DisplayJspController.jimple	2025-03-13 18:06:17.247787633 +0000
@@ -25,7 +25,7 @@
 javax.servlet.http.HttpServletRequest v;
 org.springframework.web.servlet.view.RedirectView v;
 int v;
-java.lang.String v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v;
 boolean v, v;
 javax.servlet.http.HttpSession v, v;
 psiprobe.model.jsp.Summary v;
@@ -36,7 +36,6 @@
 psiprobe.controllers.jsp.DisplayJspController v;
 psiprobe.beans.ContainerWrapperBean v;
 java.lang.Object v;
-java.lang.StringBuilder v;
 v := @this: psiprobe.controllers.jsp.DisplayJspController;
 v := @parameter: java.lang.String;
 v := @parameter: org.apache.catalina.Context;
@@ -64,8 +63,6 @@
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.RedirectView;
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getRequestURI()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<java.lang.String: int length()>();
 if v != 0 goto label;
 v = "/";
@@ -73,7 +70,7 @@
 label:
 v = v;
 label:
-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[])>("?webapp=\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001?webapp=\u0001");
 specialinvoke v.<org.springframework.web.servlet.view.RedirectView: void <init>(java.lang.String)>(v);
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(org.springframework.web.servlet.View)>(v);
 return v;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.RecompileJspController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.RecompileJspController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.RecompileJspController.jimple	2025-03-13 18:06:11.531877561 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.RecompileJspController.jimple	2025-03-13 18:06:17.247787633 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.jsp.RecompileJspController extends psiprobe.controllers.AbstractContextHandlerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/jsp/RecompileJspController;");
-<psiprobe.controllers.jsp.RecompileJspController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.jsp.RecompileJspController v;
@@ -34,11 +27,10 @@
 boolean v, v, v, v;
 javax.servlet.http.HttpSession v, v, v;
 org.springframework.web.servlet.ModelAndView v;
-java.lang.StringBuilder v;
 psiprobe.controllers.jsp.RecompileJspController v;
 java.util.ArrayList v, v, v;
 javax.servlet.http.HttpServletRequest v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v, v, v, v;
 org.slf4j.Logger v;
 java.util.Iterator v;
 javax.servlet.http.HttpServletResponse v;
@@ -63,17 +55,17 @@
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.util.Enumeration getParameterNames()>();
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = "on";
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getParameter(java.lang.String)>(v);
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
 if v == 0 goto label;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = virtualinvoke v.<psiprobe.controllers.jsp.RecompileJspController: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
 interfaceinvoke v.<psiprobe.TomcatContainer: void recompileJsps(org.apache.catalina.Context,psiprobe.model.jsp.Summary,java.util.List)>(v, v, v);
@@ -103,12 +95,10 @@
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.RedirectView;
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getContextPath()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.controllers.jsp.RecompileJspController: java.lang.String getViewName()>();
 v = staticinvoke <org.springframework.web.bind.ServletRequestUtils: java.lang.String getStringParameter(javax.servlet.ServletRequest,java.lang.String,java.lang.String)>(v, "view", v);
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getQueryString()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001?\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("\u0001\u0001?\u0001");
 specialinvoke v.<org.springframework.web.servlet.view.RedirectView: void <init>(java.lang.String)>(v);
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(org.springframework.web.servlet.View)>(v);
 return v;
@@ -122,4 +112,11 @@
 specialinvoke v.<psiprobe.controllers.AbstractContextHandlerController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/jsp/RecompileJspController;");
+<psiprobe.controllers.jsp.RecompileJspController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.ViewServletSourceController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.ViewServletSourceController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.ViewServletSourceController.jimple	2025-03-13 18:06:11.535877497 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.ViewServletSourceController.jimple	2025-03-13 18:06:17.247787633 +0000
@@ -70,9 +70,6 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.InputStream: void close()>();
-label:
 throw v;
 label:
 v = new org.springframework.web.servlet.ModelAndView;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.ViewSourceController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.ViewSourceController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.ViewSourceController.jimple	2025-03-13 18:06:11.535877497 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.jsp.ViewSourceController.jimple	2025-03-13 18:06:17.251787572 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.jsp.ViewSourceController extends psiprobe.controllers.AbstractContextHandlerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/jsp/ViewSourceController;");
-<psiprobe.controllers.jsp.ViewSourceController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.jsp.ViewSourceController v;
@@ -74,12 +67,12 @@
 v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
 if v == null goto label;
 v = virtualinvoke v.<java.lang.String: java.lang.String replace(char,char)>(92, 47);
-goto label;
 label:
+v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("../");
+if v == 0 goto label;
 v = virtualinvoke v.<java.lang.String: java.lang.String replace(java.lang.CharSequence,java.lang.CharSequence)>("../", "");
+goto label;
 label:
-v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("../");
-if v != 0 goto label;
 v = virtualinvoke v.<psiprobe.controllers.jsp.ViewSourceController: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
 v = interfaceinvoke v.<psiprobe.TomcatContainer: boolean resourceExists(java.lang.String,org.apache.catalina.Context)>(v, v);
@@ -109,9 +102,6 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.InputStream: void close()>();
-label:
 throw v;
 label:
 v = virtualinvoke v.<psiprobe.controllers.jsp.ViewSourceController: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
@@ -133,9 +123,6 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.InputStream: void close()>();
-label:
 throw v;
 label:
 v = <psiprobe.controllers.jsp.ViewSourceController: org.slf4j.Logger logger>;
@@ -172,4 +159,11 @@
 specialinvoke v.<psiprobe.controllers.AbstractContextHandlerController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/jsp/ViewSourceController;");
+<psiprobe.controllers.jsp.ViewSourceController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.logs.AbstractLogHandlerController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.logs.AbstractLogHandlerController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.logs.AbstractLogHandlerController.jimple	2025-03-13 18:06:11.535877497 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.logs.AbstractLogHandlerController.jimple	2025-03-13 18:06:17.251787572 +0000
@@ -2,13 +2,6 @@
 {
 private static final org.slf4j.Logger logger;
 private psiprobe.beans.LogResolverBean logResolver;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/logs/AbstractLogHandlerController;");
-<psiprobe.controllers.logs.AbstractLogHandlerController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.logs.AbstractLogHandlerController v;
@@ -45,7 +38,6 @@
 javax.servlet.http.HttpServletResponse v;
 java.io.File v, v, v;
 org.springframework.web.servlet.ModelAndView v;
-java.lang.StringBuilder v;
 psiprobe.controllers.logs.AbstractLogHandlerController v;
 v := @this: psiprobe.controllers.logs.AbstractLogHandlerController;
 v := @parameter: javax.servlet.http.HttpServletRequest;
@@ -89,8 +81,7 @@
 v = "";
 goto label;
 label:
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" \'");
-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[])>("\u0001\'");
+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[])>(" \'\u0001\'");
 label:
 v[2] = v;
 interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object[])>("{}{} log{} not found", v);
@@ -101,4 +92,11 @@
 return v;
 }
 protected abstract org.springframework.web.servlet.ModelAndView handleLogFile(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, psiprobe.tools.logging.LogDestination) throws java.lang.Exception;
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/logs/AbstractLogHandlerController;");
+<psiprobe.controllers.logs.AbstractLogHandlerController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.logs.DownloadLogController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.logs.DownloadLogController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.logs.DownloadLogController.jimple	2025-03-13 18:06:11.539877436 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.logs.DownloadLogController.jimple	2025-03-13 18:06:17.251787572 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.logs.DownloadLogController extends psiprobe.controllers.logs.AbstractLogHandlerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/logs/DownloadLogController;");
-<psiprobe.controllers.logs.DownloadLogController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.logs.DownloadLogController v;
@@ -78,4 +71,11 @@
 specialinvoke v.<psiprobe.controllers.logs.AbstractLogHandlerController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/logs/DownloadLogController;");
+<psiprobe.controllers.logs.DownloadLogController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.logs.FollowController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.logs.FollowController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.logs.FollowController.jimple	2025-03-13 18:06:11.539877436 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.logs.FollowController.jimple	2025-03-13 18:06:17.255787508 +0000
@@ -79,8 +79,11 @@
 label:
 v = 0L;
 v = v - v;
-goto label;
 label:
+v = v cmp v;
+if v >= 0 goto label;
+v = virtualinvoke v.<psiprobe.tools.BackwardsLineReader: java.lang.String readLine()>();
+if v == null goto label;
 v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
 if v != 0 goto label;
 virtualinvoke v.<java.util.LinkedList: void addFirst(java.lang.Object)>(v);
@@ -94,12 +97,7 @@
 if v == 0 goto label;
 v = virtualinvoke v.<java.util.LinkedList: int size()>();
 v = v cmp v;
-if v >= 0 goto label;
-label:
-v = v cmp v;
-if v >= 0 goto label;
-v = virtualinvoke v.<psiprobe.tools.BackwardsLineReader: java.lang.String readLine()>();
-if v != null goto label;
+if v < 0 goto label;
 label:
 v = v cmp 0L;
 if v == 0 goto label;
@@ -111,9 +109,6 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<psiprobe.tools.BackwardsFileStream: void close()>();
-label:
 throw v;
 label:
 virtualinvoke v.<org.springframework.web.servlet.ModelAndView: org.springframework.web.servlet.ModelAndView addObject(java.lang.String,java.lang.Object)>("lines", v);
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.oshi.OshiController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.oshi.OshiController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.oshi.OshiController.jimple	2025-03-13 18:06:11.555877183 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.oshi.OshiController.jimple	2025-03-13 18:06:17.267787319 +0000
@@ -2,17 +2,6 @@
 {
 private static final org.slf4j.Logger logger;
 private static java.util.List oshi;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-java.util.ArrayList v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/oshi/OshiController;");
-<psiprobe.controllers.oshi.OshiController: org.slf4j.Logger logger> = v;
-v = new java.util.ArrayList;
-specialinvoke v.<java.util.ArrayList: void <init>()>();
-<psiprobe.controllers.oshi.OshiController: java.util.List oshi> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.oshi.OshiController v;
@@ -202,17 +191,17 @@
 specialinvoke v.<java.lang.StringBuilder: void <init>()>();
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
 v = "\n";
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
 if v != 0 goto label;
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(10);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = <psiprobe.controllers.oshi.OshiController: org.slf4j.Logger logger>;
 v = staticinvoke <java.lang.Character: java.lang.Character valueOf(char)>(10);
 interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object,java.lang.Object)>("Printing Operating System and Hardware Info:{}{}", v, v);
@@ -228,25 +217,21 @@
 java.time.Instant v;
 java.util.List v, v, v, v, v, v, v;
 java.lang.Object v;
-java.lang.StringBuilder v, v, v, v;
 v := @parameter: oshi.software.os.OperatingSystem;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Booted: ");
 v = interfaceinvoke v.<oshi.software.os.OperatingSystem: long getSystemBootTime()>();
 v = staticinvoke <java.time.Instant: java.time.Instant ofEpochSecond(long)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.time.Instant)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.time.Instant)>(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[])>("Booted: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Uptime: ");
 v = interfaceinvoke v.<oshi.software.os.OperatingSystem: long getSystemUptime()>();
 v = staticinvoke <oshi.util.FormatUtil: java.lang.String formatElapsedSecs(long)>(v);
-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[])>("\u0001");
+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[])>("Uptime: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Running with");
 v = interfaceinvoke v.<oshi.software.os.OperatingSystem: boolean isElevated()>();
 if v == 0 goto label;
 v = "";
@@ -254,23 +239,22 @@
 label:
 v = "out";
 label:
-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[])>("\u elevated permissions.");
+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[])>("Running with\u elevated permissions.");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("Sessions:");
 v = interfaceinvoke v.<oshi.software.os.OperatingSystem: java.util.List getSessions()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" ");
 v = virtualinvoke v.<oshi.software.os.OSSession: java.lang.String toString()>();
-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[])>("\u0001");
+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[])>(" \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 private static void printComputerSystem(oshi.hardware.ComputerSystem)
@@ -279,25 +263,21 @@
 oshi.hardware.Firmware v;
 oshi.hardware.ComputerSystem v;
 java.util.List v, v, v;
-java.lang.StringBuilder v, v, v;
 java.lang.String v, v, v, v, v, v;
 v := @parameter: oshi.hardware.ComputerSystem;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("System: ");
 v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
-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[])>("\u0001");
+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[])>("System: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" Firmware: ");
 v = interfaceinvoke v.<oshi.hardware.ComputerSystem: oshi.hardware.Firmware getFirmware()>();
 v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
-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[])>("\u0001");
+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[])>(" Firmware: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" Baseboard: ");
 v = interfaceinvoke v.<oshi.hardware.ComputerSystem: oshi.hardware.Baseboard getBaseboard()>();
 v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
-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[])>("\u0001");
+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[])>(" Baseboard: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 return;
 }
@@ -305,12 +285,11 @@
 {
 oshi.hardware.CentralProcessor v;
 int v, v, v, v;
-java.lang.String v, v, v, v, v;
+java.lang.String v, v, v, v;
 boolean v;
 java.util.Iterator v;
 java.util.List v, v, v, v;
 java.lang.Object v;
-java.lang.StringBuilder v, v;
 v := @parameter: oshi.hardware.CentralProcessor;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
@@ -319,17 +298,15 @@
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(" Cores:");
 v = interfaceinvoke v.<oshi.hardware.CentralProcessor: java.util.List getPhysicalProcessors()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("  ");
 v = interfaceinvoke v.<oshi.hardware.CentralProcessor: int getPhysicalPackageCount()>();
 if v <= 1 goto label;
 v = virtualinvoke v.<oshi.hardware.CentralProcessor$PhysicalProcessor: int getPhysicalPackageNumber()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(",");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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,");
 goto label;
 label:
 v = "";
@@ -337,11 +314,10 @@
 v = virtualinvoke v.<oshi.hardware.CentralProcessor$PhysicalProcessor: int getPhysicalProcessorNumber()>();
 v = virtualinvoke v.<oshi.hardware.CentralProcessor$PhysicalProcessor: int getEfficiency()>();
 v = virtualinvoke v.<oshi.hardware.CentralProcessor$PhysicalProcessor: java.lang.String getIdString()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int,int,java.lang.String)>(v, v, 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[])>("\u0001\u0001: efficiency=\u, id=\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int,int,java.lang.String)>(v, v, 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[])>("  \u0001\u0001: efficiency=\u, id=\u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 private static void printMemory(oshi.hardware.GlobalMemory)
@@ -353,18 +329,15 @@
 oshi.hardware.VirtualMemory v;
 java.util.List v, v, v, v, v;
 java.lang.Object v;
-java.lang.StringBuilder v, v, v;
 v := @parameter: oshi.hardware.GlobalMemory;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Physical Memory: \n ");
 v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
-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[])>("\u0001");
+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[])>("Physical Memory: \n \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = interfaceinvoke v.<oshi.hardware.GlobalMemory: oshi.hardware.VirtualMemory getVirtualMemory()>();
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Virtual Memory: \n ");
 v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
-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[])>("\u0001");
+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[])>("Virtual Memory: \n \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = interfaceinvoke v.<oshi.hardware.GlobalMemory: java.util.List getPhysicalMemory()>();
 v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
@@ -372,24 +345,22 @@
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("Physical Memory: ");
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" ");
 v = virtualinvoke v.<oshi.hardware.PhysicalMemory: java.lang.String toString()>();
-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[])>("\u0001");
+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[])>(" \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 return;
 }
 private static void printCpu(oshi.hardware.CentralProcessor)
 {
 byte v, v, v, v, v, v;
-java.lang.StringBuilder v, v, v, v, v, v, v, v;
+java.lang.StringBuilder v, v;
 java.lang.Object[] v, v, v, v, v, v;
 long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
 long[][] v;
@@ -405,24 +376,21 @@
 double v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
 v := @parameter: oshi.hardware.CentralProcessor;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Context Switches/Interrupts: ");
 v = interfaceinvoke v.<oshi.hardware.CentralProcessor: long getContextSwitches()>();
 v = interfaceinvoke v.<oshi.hardware.CentralProcessor: long getInterrupts()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long)>(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 = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long)>(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[])>("Context Switches/Interrupts: \u / \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = interfaceinvoke v.<oshi.hardware.CentralProcessor: long[] getSystemCpuLoadTicks()>();
 v = interfaceinvoke v.<oshi.hardware.CentralProcessor: long[][] getProcessorCpuLoadTicks()>();
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("CPU, IOWait, and IRQ ticks @ 0 sec:");
 v = staticinvoke <java.util.Arrays: java.lang.String toString(long[])>(v);
-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[])>("\u0001");
+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[])>("CPU, IOWait, and IRQ ticks @ 0 sec:\u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 staticinvoke <oshi.util.Util: void sleep(long)>(1000L);
 v = interfaceinvoke v.<oshi.hardware.CentralProcessor: long[] getSystemCpuLoadTicks()>();
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("CPU, IOWait, and IRQ ticks @ 1 sec:");
 v = staticinvoke <java.util.Arrays: java.lang.String toString(long[])>(v);
-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[])>("\u0001");
+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[])>("CPU, IOWait, and IRQ ticks @ 1 sec:\u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <oshi.hardware.CentralProcessor$TickType: oshi.hardware.CentralProcessor$TickType USER>;
 v = virtualinvoke v.<oshi.hardware.CentralProcessor$TickType: int getIndex()>();
@@ -533,7 +501,6 @@
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = interfaceinvoke v.<oshi.hardware.CentralProcessor: double[] getSystemLoadAverage(int)>(3);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("CPU load averages:");
 v = v[0];
 v = v cmpg 0.0;
 if v >= 0 goto label;
@@ -570,15 +537,15 @@
 v[0] = v;
 v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>(" %.2f", v);
 label:
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("\u0001\u0001\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("CPU load averages:\u0001\u0001\u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = new java.lang.StringBuilder;
 specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("CPU load per processor:");
 v = interfaceinvoke v.<oshi.hardware.CentralProcessor: double[] getProcessorCpuLoadBetweenTicks(long[][])>(v);
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = newarray (java.lang.Object)[1];
 v = v * 100.0;
@@ -587,8 +554,8 @@
 v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>(" %.1f%%", v);
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
@@ -597,18 +564,16 @@
 v = v cmp 0L;
 if v <= 0 goto label;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Vendor Frequency: ");
 v = staticinvoke <oshi.util.FormatUtil: java.lang.String formatHertz(long)>(v);
-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[])>("\u0001");
+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[])>("Vendor Frequency: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 label:
 v = interfaceinvoke v.<oshi.hardware.CentralProcessor: long getMaxFreq()>();
 v = v cmp 0L;
 if v <= 0 goto label;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Max Frequency: ");
 v = staticinvoke <oshi.util.FormatUtil: java.lang.String formatHertz(long)>(v);
-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[])>("\u0001");
+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[])>("Max Frequency: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 label:
 v = interfaceinvoke v.<oshi.hardware.CentralProcessor: long[] getCurrentFreq()>();
@@ -618,8 +583,9 @@
 v = new java.lang.StringBuilder;
 specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Current Frequencies: ");
 v = 0;
-goto label;
 label:
+v = lengthof v;
+if v >= v goto label;
 if v <= 0 goto label;
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", ");
 label:
@@ -627,9 +593,8 @@
 v = staticinvoke <oshi.util.FormatUtil: java.lang.String formatHertz(long)>(v);
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
 v = v + 1;
+goto label;
 label:
-v = lengthof v;
-if v < v goto label;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
@@ -641,18 +606,17 @@
 oshi.hardware.GlobalMemory v;
 java.lang.Integer v;
 java.util.Map v;
+boolean v, v;
+java.util.function.Predicate v;
 java.util.Set v;
-java.lang.StringBuilder v, v, v, v;
+java.util.List v, v, v, v, v, v, v, v, v, v;
 java.lang.Object[] v;
 java.lang.Double v, v;
 long v, v, v, v, v, v, v, v, v;
-oshi.software.os.OSProcess v, v;
-java.lang.String v, v, v, v, v, v, v, v, v;
-boolean v, v;
-java.util.function.Predicate v;
-java.util.List v, v, v, v, v, v, v, v, v, v;
 oshi.software.os.OperatingSystem v;
 int v, v, v, v, v, v, v, v;
+oshi.software.os.OSProcess v, v;
+java.lang.String v, v, v, v, v, v, v, v, v;
 double v, v, v, v;
 java.util.Iterator v, v;
 java.lang.Object v, v, v, v, v;
@@ -662,17 +626,15 @@
 v = interfaceinvoke v.<oshi.software.os.OperatingSystem: int getProcessId()>();
 v = interfaceinvoke v.<oshi.software.os.OperatingSystem: oshi.software.os.OSProcess getProcess(int)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("My PID: ");
 v = interfaceinvoke v.<oshi.software.os.OSProcess: int getProcessID()>();
 v = interfaceinvoke v.<oshi.software.os.OSProcess: long getAffinityMask()>();
 v = staticinvoke <java.lang.Long: java.lang.String toBinaryString(long)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,java.lang.String)>(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 with affinity \u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,java.lang.String)>(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[])>("My PID: \u with affinity \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Processes: ");
 v = interfaceinvoke v.<oshi.software.os.OperatingSystem: int getProcessCount()>();
 v = interfaceinvoke v.<oshi.software.os.OperatingSystem: int getThreadCount()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,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, Threads: \u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,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[])>("Processes: \u, Threads: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <oshi.software.os.OperatingSystem$ProcessFiltering: java.util.function.Predicate ALL_PROCESSES>;
 v = <oshi.software.os.OperatingSystem$ProcessSorting: java.util.Comparator CPU_DESC>;
@@ -680,8 +642,10 @@
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("   PID  %CPU %MEM       VSZ       RSS Name");
 v = 0;
-goto label;
 label:
+v = interfaceinvoke v.<java.util.List: int size()>();
+if v >= v goto label;
+if v >= 5 goto label;
 v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 v = newarray (java.lang.Object)[6];
@@ -713,10 +677,7 @@
 v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>(" %5d %5.1f %4.1f %9s %9s %s", v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = v + 1;
-label:
-v = interfaceinvoke v.<java.util.List: int size()>();
-if v >= v goto label;
-if v < 5 goto label;
+goto label;
 label:
 v = interfaceinvoke v.<oshi.software.os.OperatingSystem: int getProcessId()>();
 v = interfaceinvoke v.<oshi.software.os.OperatingSystem: oshi.software.os.OSProcess getProcess(int)>(v);
@@ -724,33 +685,31 @@
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("Current process arguments: ");
 v = interfaceinvoke v.<oshi.software.os.OSProcess: java.util.List getArguments()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("  ");
-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[])>("\u0001");
+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[])>("  \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("Current process environment: ");
 v = interfaceinvoke v.<oshi.software.os.OSProcess: java.util.Map getEnvironmentVariables()>();
 v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("  ");
 v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
 v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.Object)>(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[])>("\u0001=\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.Object)>(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[])>("  \u0001=\u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 private static void printServices(oshi.software.os.OperatingSystem)
@@ -773,8 +732,9 @@
 v = 0;
 v = interfaceinvoke v.<oshi.software.os.OperatingSystem: java.util.List getServices()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<oshi.software.os.OSService: oshi.software.os.OSService$State getState()>();
 v = <oshi.software.os.OSService$State: oshi.software.os.OSService$State RUNNING>;
@@ -794,14 +754,14 @@
 v[2] = v;
 v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>(" %5d  %7s  %s", v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = 0;
 v = interfaceinvoke v.<oshi.software.os.OperatingSystem: java.util.List getServices()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<oshi.software.os.OSService: oshi.software.os.OSService$State getState()>();
 v = <oshi.software.os.OSService$State: oshi.software.os.OSService$State STOPPED>;
@@ -821,22 +781,19 @@
 v[2] = v;
 v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>(" %5d  %7s  %s", v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 private static void printSensors(oshi.hardware.Sensors)
 {
 java.util.List v;
 oshi.hardware.Sensors v;
-java.lang.StringBuilder v;
 java.lang.String v, v;
 v := @parameter: oshi.hardware.Sensors;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Sensors: ");
 v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
-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[])>("\u0001");
+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[])>("Sensors: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 return;
 }
@@ -856,15 +813,15 @@
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("Unknown");
 label:
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n ");
 v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
@@ -872,40 +829,35 @@
 }
 private static void printDisks(java.util.List)
 {
-java.lang.String v, v, v, v;
-boolean v, v;
 java.util.Iterator v, v;
 java.util.List v, v, v, v, v;
 java.lang.Object v, v;
-java.lang.StringBuilder v, v;
+java.lang.String v, v, v, v;
+boolean v, v;
 v := @parameter: java.util.List;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("Disks:");
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" ");
 v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
-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[])>("\u0001");
+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[])>(" \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = interfaceinvoke v.<oshi.hardware.HWDiskStore: java.util.List getPartitions()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" |-- ");
 v = virtualinvoke v.<oshi.hardware.HWPartition: java.lang.String toString()>();
-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[])>("\u0001");
+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[])>(" |-- \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 private static void printLVgroups(java.util.List)
@@ -913,7 +865,6 @@
 java.util.Iterator v;
 java.util.List v, v, v;
 java.lang.Object v;
-java.lang.StringBuilder v;
 java.lang.String v, v;
 boolean v, v;
 v := @parameter: java.util.List;
@@ -922,17 +873,15 @@
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("Logical Volume Groups:");
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" ");
 v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
-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[])>("\u0001");
+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[])>(" \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 return;
 }
@@ -942,7 +891,6 @@
 java.lang.Long v, v;
 boolean v, v;
 java.util.List v, v, v, v;
-java.lang.StringBuilder v;
 java.lang.Object[] v, v;
 java.lang.Double v, v;
 long v, v, v, v, v, v, v, v, v;
@@ -966,13 +914,13 @@
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = interfaceinvoke v.<oshi.software.os.FileSystem: java.util.List getFileStores()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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.<oshi.software.os.OSFileStore: long getUsableSpace()>();
 v = interfaceinvoke v.<oshi.software.os.OSFileStore: long getTotalSpace()>();
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" %s (%s) [%s] %s of %s free (%.1f%%), %s of %s files free (%.1f%%) is %s ");
 v = interfaceinvoke v.<oshi.software.os.OSFileStore: java.lang.String getLogicalVolume()>();
 if v == null goto label;
 v = interfaceinvoke v.<oshi.software.os.OSFileStore: java.lang.String getLogicalVolume()>();
@@ -983,7 +931,7 @@
 label:
 v = "%s";
 label:
-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[])>("\u and is mounted at %s");
+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[])>(" %s (%s) [%s] %s of %s free (%.1f%%), %s of %s files free (%.1f%%) is %s \u and is mounted at %s");
 v = newarray (java.lang.Object)[12];
 v = interfaceinvoke v.<oshi.software.os.OSFileStore: java.lang.String getName()>();
 v[0] = v;
@@ -1027,9 +975,8 @@
 v[11] = v;
 v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>(v, v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 private static void printNetworkInterfaces(java.util.List)
@@ -1049,15 +996,14 @@
 goto label;
 label:
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n ");
 v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
@@ -1067,14 +1013,12 @@
 private static void printNetworkParameters(oshi.software.os.NetworkParams)
 {
 java.util.List v;
-java.lang.StringBuilder v;
 oshi.software.os.NetworkParams v;
 java.lang.String v, v;
 v := @parameter: oshi.software.os.NetworkParams;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Network parameters:\n ");
 v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
-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[])>("\u0001");
+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[])>("Network parameters:\n \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 return;
 }
@@ -1082,32 +1026,27 @@
 {
 oshi.software.os.InternetProtocolStats v;
 oshi.software.os.InternetProtocolStats$TcpStats v, v;
-java.lang.String v, v, v, v;
 java.util.List v, v, v, v, v;
 oshi.software.os.InternetProtocolStats$UdpStats v, v;
-java.lang.StringBuilder v, v, v, v;
+java.lang.String v, v, v, v;
 v := @parameter: oshi.software.os.InternetProtocolStats;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("Internet Protocol statistics:");
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" TCPv4: ");
 v = interfaceinvoke v.<oshi.software.os.InternetProtocolStats: oshi.software.os.InternetProtocolStats$TcpStats getTCPv4Stats()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oshi.software.os.InternetProtocolStats$TcpStats)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oshi.software.os.InternetProtocolStats$TcpStats)>(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[])>(" TCPv4: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" TCPv6: ");
 v = interfaceinvoke v.<oshi.software.os.InternetProtocolStats: oshi.software.os.InternetProtocolStats$TcpStats getTCPv6Stats()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oshi.software.os.InternetProtocolStats$TcpStats)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oshi.software.os.InternetProtocolStats$TcpStats)>(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[])>(" TCPv6: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" UDPv4: ");
 v = interfaceinvoke v.<oshi.software.os.InternetProtocolStats: oshi.software.os.InternetProtocolStats$UdpStats getUDPv4Stats()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oshi.software.os.InternetProtocolStats$UdpStats)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oshi.software.os.InternetProtocolStats$UdpStats)>(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[])>(" UDPv4: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" UDPv6: ");
 v = interfaceinvoke v.<oshi.software.os.InternetProtocolStats: oshi.software.os.InternetProtocolStats$UdpStats getUDPv6Stats()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oshi.software.os.InternetProtocolStats$UdpStats)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (oshi.software.os.InternetProtocolStats$UdpStats)>(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[])>(" UDPv6: \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 return;
 }
@@ -1117,7 +1056,6 @@
 java.util.List v, v, v, v;
 int v;
 java.lang.Object v;
-java.lang.StringBuilder v;
 java.lang.String v, v;
 boolean v;
 v := @parameter: java.util.List;
@@ -1125,20 +1063,19 @@
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("Displays:");
 v = 0;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" Display ");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("\u0001:");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>(" Display \u0001:");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = v + 1;
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 private static void printUsbDevices(java.util.List)
@@ -1152,15 +1089,15 @@
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("USB Devices:");
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 private static void printSoundCards(java.util.List)
@@ -1168,24 +1105,22 @@
 java.util.Iterator v;
 java.util.List v, v, v;
 java.lang.Object v;
-java.lang.StringBuilder v;
 java.lang.String v, v;
 boolean v;
 v := @parameter: java.util.List;
 v = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("Sound Cards:");
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" ");
 v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-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[])>("\u0001");
+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[])>(" \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return;
 }
 private static void printGraphicsCards(java.util.List)
@@ -1193,7 +1128,6 @@
 java.util.Iterator v;
 java.util.List v, v, v, v;
 java.lang.Object v;
-java.lang.StringBuilder v;
 java.lang.String v, v;
 boolean v, v;
 v := @parameter: java.util.List;
@@ -1206,18 +1140,27 @@
 goto label;
 label:
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = <psiprobe.controllers.oshi.OshiController: java.util.List oshi>;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(" ");
 v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-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[])>("\u0001");
+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[])>(" \u0001");
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
+return;
+}
+static void <clinit>()
+{
+org.slf4j.Logger v;
+java.util.ArrayList v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/oshi/OshiController;");
+<psiprobe.controllers.oshi.OshiController: org.slf4j.Logger logger> = v;
+v = new java.util.ArrayList;
+specialinvoke v.<java.util.ArrayList: void <init>()>();
+<psiprobe.controllers.oshi.OshiController: java.util.List oshi> = v;
 return;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.quickcheck.BaseTomcatAvailabilityController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.quickcheck.BaseTomcatAvailabilityController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.quickcheck.BaseTomcatAvailabilityController.jimple	2025-03-13 18:06:11.559877121 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.quickcheck.BaseTomcatAvailabilityController.jimple	2025-03-13 18:06:17.271787257 +0000
@@ -31,7 +31,6 @@
 byte v;
 java.nio.file.Path v, v, v, v;
 psiprobe.beans.ResourceResolver v, v, v;
-java.lang.StringBuilder v;
 java.lang.Throwable v, v;
 java.io.ByteArrayOutputStream v;
 long v, v, v;
@@ -72,8 +71,9 @@
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.TomcatContainer getTomcatContainer()>();
 v = interfaceinvoke v.<psiprobe.TomcatContainer: java.util.List findContexts()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.controllers.quickcheck.BaseTomcatAvailabilityController: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
@@ -91,8 +91,9 @@
 v = virtualinvoke v.<psiprobe.controllers.quickcheck.BaseTomcatAvailabilityController: psiprobe.beans.ContainerWrapperBean getContainerWrapper()>();
 v = interfaceinvoke v.<psiprobe.beans.ResourceResolver: java.util.List getApplicationResources(org.apache.catalina.Context,psiprobe.beans.ContainerWrapperBean)>(v, v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.ApplicationResource: psiprobe.model.DataSourceInfo getDataSourceInfo()>();
 if v == null goto label;
@@ -105,12 +106,8 @@
 virtualinvoke v.<psiprobe.model.TomcatTestReport: void setDatasourceUsageScore(int)>(v);
 v = virtualinvoke v.<psiprobe.model.ApplicationResource: java.lang.String getName()>();
 virtualinvoke v.<psiprobe.model.TomcatTestReport: void setDataSourceName(java.lang.String)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 if v == 0 goto label;
 v = 1;
 goto label;
@@ -124,8 +121,9 @@
 v = virtualinvoke v.<psiprobe.beans.ContainerWrapperBean: psiprobe.beans.ResourceResolver getResourceResolver()>();
 v = interfaceinvoke v.<psiprobe.beans.ResourceResolver: java.util.List getApplicationResources()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.ApplicationResource: psiprobe.model.DataSourceInfo getDataSourceInfo()>();
 if v == null goto label;
@@ -136,9 +134,7 @@
 virtualinvoke v.<psiprobe.model.TomcatTestReport: void setDatasourceUsageScore(int)>(v);
 v = virtualinvoke v.<psiprobe.model.ApplicationResource: java.lang.String getName()>();
 virtualinvoke v.<psiprobe.model.TomcatTestReport: void setDataSourceName(java.lang.String)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 virtualinvoke v.<psiprobe.model.TomcatTestReport: void setDatasourceTest(int)>(1);
 v = "hello";
@@ -147,14 +143,14 @@
 label:
 v = new java.io.ByteArrayOutputStream;
 specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
-goto label;
 label:
+if v <= 0 goto label;
 v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
 v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.nio.charset.Charset)>(v);
 virtualinvoke v.<java.io.ByteArrayOutputStream: void write(byte[])>(v);
 v = v - 1;
+goto label;
 label:
-if v > 0 goto label;
 virtualinvoke v.<psiprobe.model.TomcatTestReport: void setMemoryTest(int)>(1);
 label:
 goto label;
@@ -173,11 +169,9 @@
 v = new java.util.ArrayList;
 specialinvoke v.<java.util.ArrayList: void <init>()>();
 label:
-goto label;
-label:
+if v <= 0 goto label;
 v = new java.io.File;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("tctest_");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("tctest_\u0001");
 specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, v);
 v = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
 v = newarray (java.nio.file.OpenOption)[0];
@@ -194,76 +188,68 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.OutputStream: void close()>();
-label:
 throw v;
 label:
 v = v - 1;
-label:
-if v > 0 goto label;
-virtualinvoke v.<psiprobe.model.TomcatTestReport: void setFileTest(int)>(1);
-label:
 goto label;
 label:
-v := @caughtexception;
-virtualinvoke v.<psiprobe.model.TomcatTestReport: void setFileTest(int)>(2);
-v = v.<psiprobe.controllers.quickcheck.BaseTomcatAvailabilityController: org.slf4j.Logger logger>;
-interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("", v);
+virtualinvoke v.<psiprobe.model.TomcatTestReport: void setFileTest(int)>(1);
 label:
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
 staticinvoke <java.nio.file.Files: void delete(java.nio.file.Path)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 goto label;
 label:
 v := @caughtexception;
+virtualinvoke v.<psiprobe.model.TomcatTestReport: void setFileTest(int)>(2);
+v = v.<psiprobe.controllers.quickcheck.BaseTomcatAvailabilityController: org.slf4j.Logger logger>;
+interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("", v);
+label:
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
 staticinvoke <java.nio.file.Files: void delete(java.nio.file.Path)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-throw v;
-label:
+v := @caughtexception;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
 staticinvoke <java.nio.file.Files: void delete(java.nio.file.Path)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+throw v;
 label:
 v = staticinvoke <java.lang.System: long currentTimeMillis()>();
 v = v - v;
@@ -277,5 +263,6 @@
 catch java.lang.Throwable from label to label with label;
 catch java.io.IOException 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;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.servlets.ListServletMapsController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.servlets.ListServletMapsController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.servlets.ListServletMapsController.jimple	2025-03-13 18:06:11.563877058 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.servlets.ListServletMapsController.jimple	2025-03-13 18:06:17.275787194 +0000
@@ -53,14 +53,14 @@
 v = new java.util.ArrayList;
 specialinvoke v.<java.util.ArrayList: void <init>()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = staticinvoke <psiprobe.tools.ApplicationUtils: java.util.List getApplicationServletMaps(org.apache.catalina.Context)>(v);
 interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = new org.springframework.web.servlet.ModelAndView;
 v = virtualinvoke v.<psiprobe.controllers.servlets.ListServletMapsController: java.lang.String getViewName()>();
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(java.lang.String,java.lang.String,java.lang.Object)>(v, "servletMaps", v);
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.servlets.ListServletsController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.servlets.ListServletsController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.servlets.ListServletsController.jimple	2025-03-13 18:06:11.567876995 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.servlets.ListServletsController.jimple	2025-03-13 18:06:17.275787194 +0000
@@ -53,24 +53,24 @@
 v = new java.util.ArrayList;
 specialinvoke v.<java.util.ArrayList: void <init>()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 if v == null goto label;
 v = staticinvoke <psiprobe.tools.ApplicationUtils: java.util.List getApplicationServlets(org.apache.catalina.Context)>(v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.ServletInfo: java.util.List getMappings()>();
 staticinvoke <java.util.Collections: void sort(java.util.List)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = new org.springframework.web.servlet.ModelAndView;
 v = virtualinvoke v.<psiprobe.controllers.servlets.ListServletsController: java.lang.String getViewName()>();
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(java.lang.String,java.lang.String,java.lang.Object)>(v, "servlets", v);
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sessions.ExpireSessionsController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sessions.ExpireSessionsController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sessions.ExpireSessionsController.jimple	2025-03-13 18:06:11.571876931 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sessions.ExpireSessionsController.jimple	2025-03-13 18:06:17.279787131 +0000
@@ -41,8 +41,8 @@
 v = staticinvoke <org.springframework.web.bind.ServletRequestUtils: java.lang.String[] getStringParameters(javax.servlet.ServletRequest,java.lang.String)>(v, "sid_webapp");
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 if v == null goto label;
 v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(";");
@@ -70,8 +70,8 @@
 interfaceinvoke v.<org.apache.catalina.Session: void expire()>();
 label:
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.InternalResourceView;
 v = virtualinvoke v.<psiprobe.controllers.sessions.ExpireSessionsController: java.lang.String getViewName()>();
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sessions.ListSessionsController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sessions.ListSessionsController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sessions.ListSessionsController.jimple	2025-03-13 18:06:11.575876869 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sessions.ListSessionsController.jimple	2025-03-13 18:06:17.283787067 +0000
@@ -117,8 +117,9 @@
 v = new java.util.ArrayList;
 specialinvoke v.<java.util.ArrayList: void <init>()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 if v == null goto label;
 v = interfaceinvoke v.<org.apache.catalina.Context: org.apache.catalina.Manager getManager()>();
@@ -132,8 +133,8 @@
 v = interfaceinvoke v.<org.apache.catalina.Manager: org.apache.catalina.Session[] findSessions()>();
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = virtualinvoke v.<psiprobe.model.SessionSearchInfo: boolean isUseAttr()>();
 v = staticinvoke <psiprobe.tools.ApplicationUtils: psiprobe.model.ApplicationSession getApplicationSession(org.apache.catalina.Session,boolean,boolean)>(v, v, v);
@@ -155,11 +156,8 @@
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 label:
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
 if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.model.SessionSearchInfo: boolean isApply()>();
@@ -222,16 +220,15 @@
 if v != 0 goto label;
 v = virtualinvoke v.<psiprobe.model.SessionSearchInfo: java.util.List getAttrNameMsgs()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = newarray (java.lang.Object)[1];
 v[0] = v;
 v = virtualinvoke v.<org.springframework.context.support.MessageSourceAccessor: java.lang.String getMessage(java.lang.String,java.lang.Object[])>("probe.src.sessions.search.invalid.attrName", v);
 virtualinvoke v.<psiprobe.model.SessionSearchInfo: void addErrorMessage(java.lang.String)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 v = virtualinvoke v.<psiprobe.model.SessionSearchInfo: boolean isAgeFromValid()>();
 if v != 0 goto label;
@@ -373,29 +370,26 @@
 specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
 v = virtualinvoke v.<psiprobe.model.ApplicationSession: java.util.List getAttributes()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.Attribute: java.lang.String getName()>();
 if v == null goto label;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
 v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
 if v == 0 goto label;
 interfaceinvoke v.<java.util.Iterator: void remove()>();
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
 if v == 0 goto label;
 v = 1;
-goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 label:
 v = v;
 label:
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sessions.RemoveSessAttributeController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sessions.RemoveSessAttributeController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sessions.RemoveSessAttributeController.jimple	2025-03-13 18:06:11.583876743 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sessions.RemoveSessAttributeController.jimple	2025-03-13 18:06:17.287787005 +0000
@@ -23,7 +23,7 @@
 {
 javax.servlet.http.HttpServletRequest v;
 org.springframework.web.servlet.view.RedirectView v;
-java.lang.String v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v;
 org.apache.catalina.Manager v;
 javax.servlet.http.HttpSession v;
 psiprobe.controllers.sessions.RemoveSessAttributeController v;
@@ -31,7 +31,6 @@
 org.apache.catalina.Session v;
 org.apache.catalina.Context v;
 org.springframework.web.servlet.ModelAndView v;
-java.lang.StringBuilder v;
 v := @this: psiprobe.controllers.sessions.RemoveSessAttributeController;
 v := @parameter: java.lang.String;
 v := @parameter: org.apache.catalina.Context;
@@ -48,11 +47,9 @@
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.RedirectView;
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getContextPath()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.controllers.sessions.RemoveSessAttributeController: java.lang.String getViewName()>();
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getQueryString()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001?\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("\u0001\u0001?\u0001");
 specialinvoke v.<org.springframework.web.servlet.view.RedirectView: void <init>(java.lang.String)>(v);
 specialinvoke v.<org.springframework.web.servlet.ModelAndView: void <init>(org.springframework.web.servlet.View)>(v);
 return v;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.CachedRecordSetController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.CachedRecordSetController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.CachedRecordSetController.jimple	2025-03-13 18:06:11.583876743 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.CachedRecordSetController.jimple	2025-03-13 18:06:17.291786942 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.sql.CachedRecordSetController extends psiprobe.PostParameterizableViewController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/sql/CachedRecordSetController;");
-<psiprobe.controllers.sql.CachedRecordSetController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.sql.CachedRecordSetController v;
@@ -106,4 +99,11 @@
 specialinvoke v.<psiprobe.PostParameterizableViewController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/sql/CachedRecordSetController;");
+<psiprobe.controllers.sql.CachedRecordSetController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.ConnectionTestController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.ConnectionTestController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.ConnectionTestController.jimple	2025-03-13 18:06:11.587876680 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.ConnectionTestController.jimple	2025-03-13 18:06:17.291786942 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.sql.ConnectionTestController extends psiprobe.controllers.AbstractContextHandlerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/sql/ConnectionTestController;");
-<psiprobe.controllers.sql.ConnectionTestController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.sql.ConnectionTestController v;
@@ -34,19 +27,20 @@
 psiprobe.controllers.sql.ConnectionTestController v;
 psiprobe.beans.ResourceResolver v;
 org.springframework.web.servlet.ModelAndView v, v;
-java.lang.Throwable v, v, v;
-java.lang.Object[] v, v;
+java.lang.Throwable v;
+java.lang.Object[] v, v, v;
 java.sql.DatabaseMetaData v;
 java.util.ArrayList v;
+java.sql.SQLException v;
 javax.servlet.http.HttpServletRequest v;
 int v;
 javax.sql.DataSource v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v;
-org.slf4j.Logger v;
+java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
+org.slf4j.Logger v, v;
 javax.servlet.http.HttpServletResponse v;
 org.apache.catalina.Context v;
 psiprobe.beans.ContainerWrapperBean v, v;
-org.springframework.context.support.MessageSourceAccessor v, v;
+org.springframework.context.support.MessageSourceAccessor v, v, v;
 v := @this: psiprobe.controllers.sql.ConnectionTestController;
 v := @parameter: java.lang.String;
 v := @parameter: org.apache.catalina.Context;
@@ -104,14 +98,17 @@
 return v;
 label:
 v := @caughtexception;
-if v == null goto label;
-interfaceinvoke v.<java.sql.Connection: void close()>();
-label:
 throw v;
 label:
 v := @caughtexception;
-v = v;
-throw v;
+v = virtualinvoke v.<psiprobe.controllers.sql.ConnectionTestController: org.springframework.context.support.MessageSourceAccessor getMessageSourceAccessor()>();
+v = newarray (java.lang.Object)[1];
+v = virtualinvoke v.<java.sql.SQLException: java.lang.String getMessage()>();
+v[0] = v;
+v = virtualinvoke v.<org.springframework.context.support.MessageSourceAccessor: java.lang.String getMessage(java.lang.String,java.lang.Object[])>("probe.src.dataSourceTest.connection.failure", v);
+v = <psiprobe.controllers.sql.ConnectionTestController: org.slf4j.Logger logger>;
+interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
+interfaceinvoke v.<javax.servlet.http.HttpServletRequest: void setAttribute(java.lang.String,java.lang.Object)>("errorMessage", v);
 label:
 v = new org.springframework.web.servlet.ModelAndView;
 v = virtualinvoke v.<psiprobe.controllers.sql.ConnectionTestController: java.lang.String getViewName()>();
@@ -119,7 +116,7 @@
 return v;
 catch javax.naming.NamingException 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;
+catch java.sql.SQLException from label to label with label;
 }
 protected boolean isContextOptional()
 {
@@ -156,4 +153,11 @@
 specialinvoke v.<psiprobe.controllers.AbstractContextHandlerController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/sql/ConnectionTestController;");
+<psiprobe.controllers.sql.ConnectionTestController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.ExecuteSqlController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.ExecuteSqlController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.ExecuteSqlController.jimple	2025-03-13 18:06:11.591876616 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.ExecuteSqlController.jimple	2025-03-13 18:06:17.295786879 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.sql.ExecuteSqlController extends psiprobe.controllers.AbstractContextHandlerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/sql/ExecuteSqlController;");
-<psiprobe.controllers.sql.ExecuteSqlController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.sql.ExecuteSqlController v;
@@ -147,13 +140,19 @@
 v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet getResultSet()>();
 label:
 v = interfaceinvoke v.<java.sql.ResultSet: java.sql.ResultSetMetaData getMetaData()>();
-goto label;
+label:
+v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
+if v == 0 goto label;
+if v < 0 goto label;
+v = interfaceinvoke v.<java.util.List: int size()>();
+if v >= v goto label;
 label:
 v = new java.util.LinkedHashMap;
 specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
 v = 1;
-goto label;
 label:
+v = interfaceinvoke v.<java.sql.ResultSetMetaData: int getColumnCount()>();
+if v > v goto label;
 v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(v);
 v = interfaceinvoke v.<java.sql.ResultSet: boolean wasNull()>();
 if v == 0 goto label;
@@ -170,35 +169,26 @@
 v = new java.lang.StringBuilder;
 v = interfaceinvoke v.<java.sql.ResultSetMetaData: java.lang.String getColumnLabel(int)>(v);
 specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-goto label;
-label:
-virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" ");
 label:
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
 v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
-if v != 0 goto label;
+if v == 0 goto label;
+virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(" ");
+goto label;
+label:
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
 v = staticinvoke <org.springframework.web.util.HtmlUtils: java.lang.String htmlEscape(java.lang.String)>(v);
 interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
 v = v + 1;
+goto label;
 label:
-v = interfaceinvoke v.<java.sql.ResultSetMetaData: int getColumnCount()>();
-if v <= v goto label;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-label:
-v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
-if v == 0 goto label;
-if v < 0 goto label;
-v = interfaceinvoke v.<java.util.List: int size()>();
-if v < v goto label;
+goto label;
 label:
 interfaceinvoke v.<java.sql.ResultSet: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-interfaceinvoke v.<java.sql.ResultSet: void close()>();
-label:
 throw v;
 label:
 v = interfaceinvoke v.<java.util.List: int size()>();
@@ -207,18 +197,12 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-interfaceinvoke v.<java.sql.PreparedStatement: void close()>();
-label:
 throw v;
 label:
 interfaceinvoke v.<java.sql.Connection: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-interfaceinvoke v.<java.sql.Connection: void close()>();
-label:
 throw v;
 label:
 entermonitor v;
@@ -279,4 +263,11 @@
 specialinvoke v.<psiprobe.controllers.AbstractContextHandlerController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/sql/ExecuteSqlController;");
+<psiprobe.controllers.sql.ExecuteSqlController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.QueryHistoryItemController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.QueryHistoryItemController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.QueryHistoryItemController.jimple	2025-03-13 18:06:11.591876616 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.sql.QueryHistoryItemController.jimple	2025-03-13 18:06:17.299786816 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.sql.QueryHistoryItemController extends org.springframework.web.servlet.mvc.AbstractController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/sql/QueryHistoryItemController;");
-<psiprobe.controllers.sql.QueryHistoryItemController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.sql.QueryHistoryItemController v;
@@ -73,4 +66,11 @@
 return null;
 catch java.lang.IndexOutOfBoundsException from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/sql/QueryHistoryItemController;");
+<psiprobe.controllers.sql.QueryHistoryItemController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.system.AdviseGarbageCollectionController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.system.AdviseGarbageCollectionController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.system.AdviseGarbageCollectionController.jimple	2025-03-13 18:06:11.591876616 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.system.AdviseGarbageCollectionController.jimple	2025-03-13 18:06:17.299786816 +0000
@@ -2,13 +2,6 @@
 {
 private static final org.slf4j.Logger logger;
 private java.lang.String replacePattern;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/system/AdviseGarbageCollectionController;");
-<psiprobe.controllers.system.AdviseGarbageCollectionController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.system.AdviseGarbageCollectionController v;
@@ -49,13 +42,12 @@
 {
 javax.servlet.http.HttpServletRequest v;
 org.springframework.web.servlet.view.RedirectView v;
-java.lang.String v, v, v, v, v, v;
+java.lang.String v, v, v, v, v;
 boolean v;
 org.slf4j.Logger v, v, v;
 java.lang.Runtime v, v;
 javax.servlet.http.HttpServletResponse v;
 org.springframework.web.servlet.ModelAndView v;
-java.lang.StringBuilder v;
 psiprobe.controllers.system.AdviseGarbageCollectionController v;
 v := @this: psiprobe.controllers.system.AdviseGarbageCollectionController;
 v := @parameter: javax.servlet.http.HttpServletRequest;
@@ -68,10 +60,8 @@
 goto label;
 label:
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getContextPath()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.controllers.system.AdviseGarbageCollectionController: java.lang.String getViewName()>();
-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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
 label:
 if v == 0 goto label;
 v = staticinvoke <java.lang.Runtime: java.lang.Runtime getRuntime()>();
@@ -102,4 +92,11 @@
 specialinvoke v.<org.springframework.web.servlet.mvc.ParameterizableViewController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/system/AdviseGarbageCollectionController;");
+<psiprobe.controllers.system.AdviseGarbageCollectionController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.system.BaseSysInfoController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.system.BaseSysInfoController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.system.BaseSysInfoController.jimple	2025-03-13 18:06:11.595876554 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.system.BaseSysInfoController.jimple	2025-03-13 18:06:17.299786816 +0000
@@ -107,26 +107,25 @@
 v = staticinvoke <java.lang.System: java.util.Properties getProperties()>();
 v = virtualinvoke v.<java.util.Properties: java.util.Set stringPropertyNames()>();
 v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
-goto label;
 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 = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>(v);
 interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = virtualinvoke v.<psiprobe.controllers.system.BaseSysInfoController: javax.servlet.ServletContext getServletContext()>();
 v = staticinvoke <psiprobe.tools.SecurityUtils: boolean hasAttributeValueRole(javax.servlet.ServletContext,javax.servlet.http.HttpServletRequest)>(v, v);
 if v != 0 goto label;
 v = v.<psiprobe.controllers.system.BaseSysInfoController: java.util.List filterOutKeys>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 virtualinvoke v.<psiprobe.model.SystemInformation: void setSystemProperties(java.util.Map)>(v);
 v = new org.springframework.web.servlet.ModelAndView;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.GetClassLoaderUrlsController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.GetClassLoaderUrlsController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.GetClassLoaderUrlsController.jimple	2025-03-13 18:06:11.599876491 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.GetClassLoaderUrlsController.jimple	2025-03-13 18:06:17.303786752 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.threads.GetClassLoaderUrlsController extends org.springframework.web.servlet.mvc.ParameterizableViewController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/threads/GetClassLoaderUrlsController;");
-<psiprobe.controllers.threads.GetClassLoaderUrlsController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.threads.GetClassLoaderUrlsController v;
@@ -76,4 +69,11 @@
 specialinvoke v.<org.springframework.web.servlet.mvc.ParameterizableViewController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/threads/GetClassLoaderUrlsController;");
+<psiprobe.controllers.threads.GetClassLoaderUrlsController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.KillThreadController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.KillThreadController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.KillThreadController.jimple	2025-03-13 18:06:11.599876491 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.KillThreadController.jimple	2025-03-13 18:06:17.307786691 +0000
@@ -44,9 +44,8 @@
 javax.servlet.http.HttpServletRequest v;
 org.springframework.web.servlet.view.RedirectView v;
 java.lang.Thread v;
-java.lang.StringBuilder v;
 psiprobe.controllers.threads.KillThreadController v;
-java.lang.String v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v;
 v := @this: psiprobe.controllers.threads.KillThreadController;
 v := @parameter: javax.servlet.http.HttpServletRequest;
 v := @parameter: javax.servlet.http.HttpServletResponse;
@@ -65,10 +64,8 @@
 goto label;
 label:
 v = interfaceinvoke v.<javax.servlet.http.HttpServletRequest: java.lang.String getContextPath()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<psiprobe.controllers.threads.KillThreadController: java.lang.String getViewName()>();
-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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
 label:
 v = new org.springframework.web.servlet.ModelAndView;
 v = new org.springframework.web.servlet.view.RedirectView;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.ListSunThreadsController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.ListSunThreadsController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.ListSunThreadsController.jimple	2025-03-13 18:06:11.603876428 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.ListSunThreadsController.jimple	2025-03-13 18:06:17.307786691 +0000
@@ -56,8 +56,8 @@
 v = v;
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = newarray (java.lang.Object)[2];
 v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
@@ -114,8 +114,7 @@
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 label:
 v = v + 1;
-label:
-if v < v goto label;
+goto label;
 label:
 v = new org.springframework.web.servlet.ModelAndView;
 v = virtualinvoke v.<psiprobe.controllers.threads.ListSunThreadsController: java.lang.String getViewName()>();
@@ -133,16 +132,15 @@
 if v == null goto label;
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = v cmp v;
 if v != 0 goto label;
 return 1;
 label:
 v = v + 1;
-label:
-if v < v goto label;
+goto label;
 label:
 return 0;
 }
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.ListThreadsController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.ListThreadsController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.ListThreadsController.jimple	2025-03-13 18:06:11.607876365 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.ListThreadsController.jimple	2025-03-13 18:06:17.315786564 +0000
@@ -44,8 +44,9 @@
 v = new java.util.TreeMap;
 specialinvoke v.<java.util.TreeMap: void <init>()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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.<org.apache.catalina.Context: org.apache.catalina.Loader getLoader()>();
 if v == null goto label;
@@ -57,9 +58,8 @@
 v = staticinvoke <psiprobe.controllers.threads.ListThreadsController: java.lang.String toUid(java.lang.Object)>(v);
 v = interfaceinvoke v.<org.apache.catalina.Context: java.lang.String getName()>();
 interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = new org.springframework.web.servlet.ModelAndView;
 v = virtualinvoke v.<psiprobe.controllers.threads.ListThreadsController: java.lang.String getViewName()>();
 v = specialinvoke v.<psiprobe.controllers.threads.ListThreadsController: java.util.List enumerateThreads(java.util.Map)>(v);
@@ -85,20 +85,20 @@
 v := @parameter: java.util.Map;
 v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
 v = virtualinvoke v.<java.lang.Thread: java.lang.ThreadGroup getThreadGroup()>();
-goto label;
 label:
 v = virtualinvoke v.<java.lang.ThreadGroup: java.lang.ThreadGroup getParent()>();
-label:
+if v == null goto label;
 v = virtualinvoke v.<java.lang.ThreadGroup: java.lang.ThreadGroup getParent()>();
-if v != null goto label;
+goto label;
+label:
 v = new java.util.ArrayList;
 specialinvoke v.<java.util.ArrayList: void <init>()>();
 v = virtualinvoke v.<java.lang.ThreadGroup: int activeCount()>();
 v = newarray (java.lang.Thread)[v];
 v = virtualinvoke v.<java.lang.ThreadGroup: int enumerate(java.lang.Thread[])>(v);
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = new psiprobe.model.java.ThreadModel;
 specialinvoke v.<psiprobe.model.java.ThreadModel: void <init>()>();
 v = v[v];
@@ -145,8 +145,8 @@
 label:
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 return v;
 }
 private static java.lang.String toUid(java.lang.Object)
@@ -154,15 +154,12 @@
 int v;
 java.lang.Class v;
 java.lang.Object v;
-java.lang.StringBuilder v;
-java.lang.String v, v, v;
+java.lang.String v, v;
 v := @parameter: java.lang.Object;
 v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
 v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = virtualinvoke v.<java.lang.Object: int hashCode()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("@\u0001");
+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[])>("\u0001@\u0001");
 return v;
 }
 public void setViewName(java.lang.String)
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.ThreadStackController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.ThreadStackController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.ThreadStackController.jimple	2025-03-13 18:06:11.607876365 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.threads.ThreadStackController.jimple	2025-03-13 18:06:17.323786439 +0000
@@ -75,8 +75,8 @@
 v = interfaceinvoke v.<javax.management.MBeanServer: java.lang.Object getAttribute(javax.management.ObjectName,java.lang.String)>(v, "AllThreadIds");
 v = lengthof v;
 v = 0;
-goto label;
 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);
@@ -91,8 +91,7 @@
 goto label;
 label:
 v = v + 1;
-label:
-if v < v goto label;
+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;
@@ -117,8 +116,8 @@
 v = v;
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = new psiprobe.model.ThreadStackElement;
 specialinvoke v.<psiprobe.model.ThreadStackElement: void <init>()>();
@@ -135,8 +134,7 @@
 virtualinvoke v.<psiprobe.model.ThreadStackElement: void setNativeMethod(boolean)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = v + 1;
-label:
-if v < v goto label;
+goto label;
 label:
 v = new org.springframework.web.servlet.ModelAndView;
 v = virtualinvoke v.<psiprobe.controllers.threads.ThreadStackController: java.lang.String getViewName()>();
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.truststore.TrustStoreController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.truststore.TrustStoreController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.truststore.TrustStoreController.jimple	2025-03-13 18:06:11.607876365 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.truststore.TrustStoreController.jimple	2025-03-13 18:06:17.327786376 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.truststore.TrustStoreController extends psiprobe.controllers.AbstractTomcatContainerController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/truststore/TrustStoreController;");
-<psiprobe.controllers.truststore.TrustStoreController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.truststore.TrustStoreController v;
@@ -35,6 +28,7 @@
 java.nio.file.Path v;
 boolean v, v;
 java.security.KeyStore v, v;
+java.lang.Exception v;
 org.springframework.web.servlet.ModelAndView v;
 java.security.Principal v;
 java.security.cert.Certificate v, v;
@@ -47,7 +41,7 @@
 javax.servlet.http.HttpServletRequest v;
 java.nio.file.OpenOption[] v;
 java.lang.String v, v, v, v, v, v, v, v;
-org.slf4j.Logger v;
+org.slf4j.Logger v, v;
 java.util.Iterator v;
 javax.servlet.http.HttpServletResponse v;
 char[] v;
@@ -69,6 +63,7 @@
 v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("javax.net.ssl.trustStore");
 v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("javax.net.ssl.trustStorePassword");
 if v == null goto label;
+label:
 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.OpenOption)[0];
@@ -88,16 +83,18 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.InputStream: void close()>();
-label:
 throw v;
 label:
+v := @caughtexception;
+v = <psiprobe.controllers.truststore.TrustStoreController: org.slf4j.Logger logger>;
+interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("", v);
+label:
 v = virtualinvoke v.<java.security.KeyStore: java.util.Enumeration aliases()>();
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = new java.util.HashMap;
 specialinvoke v.<java.util.HashMap: void <init>()>();
@@ -117,10 +114,6 @@
 v = virtualinvoke v.<java.text.SimpleDateFormat: java.lang.String format(java.util.Date)>(v);
 interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("expirationDate", v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -133,6 +126,9 @@
 virtualinvoke v.<org.springframework.web.servlet.ModelAndView: org.springframework.web.servlet.ModelAndView addObject(java.lang.String,java.lang.Object)>("certificates", v);
 return v;
 catch java.lang.Throwable from label to label with label;
+catch java.security.NoSuchAlgorithmException from label to label with label;
+catch java.security.cert.CertificateException from label to label with label;
+catch java.io.IOException from label to label with label;
 catch java.security.KeyStoreException from label to label with label;
 }
 public void setViewName(java.lang.String)
@@ -144,4 +140,11 @@
 specialinvoke v.<psiprobe.controllers.AbstractTomcatContainerController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/truststore/TrustStoreController;");
+<psiprobe.controllers.truststore.TrustStoreController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.RestartJvmController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.RestartJvmController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.RestartJvmController.jimple	2025-03-13 18:06:11.611876302 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.RestartJvmController.jimple	2025-03-13 18:06:17.327786376 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.wrapper.RestartJvmController extends psiprobe.PostParameterizableViewController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/wrapper/RestartJvmController;");
-<psiprobe.controllers.wrapper.RestartJvmController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.wrapper.RestartJvmController v;
@@ -74,4 +67,11 @@
 specialinvoke v.<psiprobe.PostParameterizableViewController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/wrapper/RestartJvmController;");
+<psiprobe.controllers.wrapper.RestartJvmController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.StopJvmController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.StopJvmController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.StopJvmController.jimple	2025-03-13 18:06:11.611876302 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.StopJvmController.jimple	2025-03-13 18:06:17.327786376 +0000
@@ -2,13 +2,6 @@
 {
 private static final org.slf4j.Logger logger;
 private int stopExitCode;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/wrapper/StopJvmController;");
-<psiprobe.controllers.wrapper.StopJvmController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.wrapper.StopJvmController v;
@@ -95,4 +88,11 @@
 specialinvoke v.<psiprobe.PostParameterizableViewController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/wrapper/StopJvmController;");
+<psiprobe.controllers.wrapper.StopJvmController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.ThreadDumpController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.ThreadDumpController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.ThreadDumpController.jimple	2025-03-13 18:06:11.611876302 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.ThreadDumpController.jimple	2025-03-13 18:06:17.331786313 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.wrapper.ThreadDumpController extends psiprobe.PostParameterizableViewController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/wrapper/ThreadDumpController;");
-<psiprobe.controllers.wrapper.ThreadDumpController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.wrapper.ThreadDumpController v;
@@ -74,4 +67,11 @@
 specialinvoke v.<psiprobe.PostParameterizableViewController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/wrapper/ThreadDumpController;");
+<psiprobe.controllers.wrapper.ThreadDumpController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.WrapperInfoController.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.WrapperInfoController.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.WrapperInfoController.jimple	2025-03-13 18:06:11.611876302 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.controllers.wrapper.WrapperInfoController.jimple	2025-03-13 18:06:17.331786313 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.controllers.wrapper.WrapperInfoController extends org.springframework.web.servlet.mvc.ParameterizableViewController
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/wrapper/WrapperInfoController;");
-<psiprobe.controllers.wrapper.WrapperInfoController: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.controllers.wrapper.WrapperInfoController v;
@@ -109,4 +102,11 @@
 specialinvoke v.<org.springframework.web.servlet.mvc.ParameterizableViewController: void setViewName(java.lang.String)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/controllers/wrapper/WrapperInfoController;");
+<psiprobe.controllers.wrapper.WrapperInfoController: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jfreechart.XYLine3DRenderer.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jfreechart.XYLine3DRenderer.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jfreechart.XYLine3DRenderer.jimple	2025-03-13 18:06:11.467878568 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jfreechart.XYLine3DRenderer.jimple	2025-03-13 18:06:17.175788767 +0000
@@ -7,14 +7,6 @@
 private double xOffset;
 private double yOffset;
 private transient java.awt.Paint wallPaint;
-static void <clinit>()
-{
-java.awt.Color v;
-v = new java.awt.Color;
-specialinvoke v.<java.awt.Color: void <init>(int,int,int)>(221, 221, 221);
-<psiprobe.jfreechart.XYLine3DRenderer: java.awt.Paint DEFAULT_WALL_PAINT> = v;
-return;
-}
 public void <init>()
 {
 java.awt.Paint v;
@@ -90,36 +82,49 @@
 protected boolean isLinePass(int)
 {
 int v;
+boolean v;
 psiprobe.jfreechart.XYLine3DRenderer v;
 v := @this: psiprobe.jfreechart.XYLine3DRenderer;
 v := @parameter: int;
 if v == 0 goto label;
-if v == 1 goto label;
-return 0;
+if v != 1 goto label;
 label:
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
+label:
+return v;
 }
 protected boolean isItemPass(int)
 {
 int v;
+boolean v;
 psiprobe.jfreechart.XYLine3DRenderer v;
 v := @this: psiprobe.jfreechart.XYLine3DRenderer;
 v := @parameter: int;
 if v != 2 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 protected boolean isShadowPass(int)
 {
 int v;
+boolean v;
 psiprobe.jfreechart.XYLine3DRenderer v;
 v := @this: psiprobe.jfreechart.XYLine3DRenderer;
 v := @parameter: int;
 if v != 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 protected void drawFirstPassShape(java.awt.Graphics2D, int, int, int, java.awt.Shape)
 {
@@ -219,4 +224,12 @@
 staticinvoke <org.jfree.chart.util.SerialUtils: void writePaint(java.awt.Paint,java.io.ObjectOutputStream)>(v, v);
 return;
 }
+static void <clinit>()
+{
+java.awt.Color v;
+v = new java.awt.Color;
+specialinvoke v.<java.awt.Color: void <init>(int,int,int)>(221, 221, 221);
+<psiprobe.jfreechart.XYLine3DRenderer: java.awt.Paint DEFAULT_WALL_PAINT> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.AddQueryParamTag.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.AddQueryParamTag.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.AddQueryParamTag.jimple	2025-03-13 18:06:11.615876240 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.AddQueryParamTag.jimple	2025-03-13 18:06:17.335786250 +0000
@@ -4,13 +4,6 @@
 private static final org.slf4j.Logger logger;
 private java.lang.String param;
 private java.lang.String value;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/jsp/AddQueryParamTag;");
-<psiprobe.jsp.AddQueryParamTag: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.jsp.AddQueryParamTag v;
@@ -47,8 +40,9 @@
 v = interfaceinvoke v.<javax.servlet.ServletRequest: java.util.Enumeration getParameterNames()>();
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = v.<psiprobe.jsp.AddQueryParamTag: java.lang.String param>;
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
@@ -62,9 +56,7 @@
 v = staticinvoke <org.springframework.web.bind.ServletRequestUtils: java.lang.String getStringParameter(javax.servlet.ServletRequest,java.lang.String,java.lang.String)>(v, v, "");
 v = staticinvoke <org.apache.commons.text.StringEscapeUtils: java.lang.String escapeHtml4(java.lang.String)>(v);
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 v = v.<psiprobe.jsp.AddQueryParamTag: javax.servlet.jsp.PageContext pageContext>;
 v = virtualinvoke v.<javax.servlet.jsp.PageContext: javax.servlet.jsp.JspWriter getOut()>();
@@ -116,4 +108,11 @@
 v.<psiprobe.jsp.AddQueryParamTag: java.lang.String value> = v;
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/jsp/AddQueryParamTag;");
+<psiprobe.jsp.AddQueryParamTag: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.DurationTag.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.DurationTag.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.DurationTag.jimple	2025-03-13 18:06:11.615876240 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.DurationTag.jimple	2025-03-13 18:06:17.335786250 +0000
@@ -3,13 +3,6 @@
 private static final long serialVersionUID;
 private static final org.slf4j.Logger logger;
 private long value;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/jsp/DurationTag;");
-<psiprobe.jsp.DurationTag: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.jsp.DurationTag v;
@@ -59,8 +52,7 @@
 public static java.lang.String duration(long)
 {
 long v, v, v, v, v, v, v;
-java.lang.StringBuilder v;
-java.lang.String v, v, v, v, v;
+java.lang.String v, v, v, v;
 v := @parameter: long;
 v = v % 1000L;
 v = v / 1000L;
@@ -68,25 +60,21 @@
 v = v / 60L;
 v = v % 60L;
 v = v % 60L;
-v = staticinvoke <java.lang.String: java.lang.String valueOf(long)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = staticinvoke <psiprobe.jsp.DurationTag: java.lang.String long2Str(long)>(v);
 v = staticinvoke <psiprobe.jsp.DurationTag: java.lang.String long2Str(long)>(v);
 v = staticinvoke <psiprobe.jsp.DurationTag: java.lang.String long3Str(long)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>(":\u0001:\u.\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,java.lang.String,java.lang.String,java.lang.String)>(v, v, 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[])>("\u0001:\u0001:\u.\u0001");
 return v;
 }
 private static java.lang.String long2Str(long)
 {
-byte v;
-java.lang.StringBuilder v;
 long v;
 java.lang.String v;
+byte v;
 v := @parameter: long;
 v = v cmp 10L;
 if v >= 0 goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("0");
-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[])>("\u0001");
+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[])>("0\u0001");
 goto label;
 label:
 v = staticinvoke <java.lang.Long: java.lang.String toString(long)>(v);
@@ -95,24 +83,28 @@
 }
 private static java.lang.String long3Str(long)
 {
-long v;
 byte v, v;
-java.lang.StringBuilder v, v;
+long v;
 java.lang.String v, v, v;
 v := @parameter: long;
 v = v cmp 10L;
 if v >= 0 goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("00");
-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[])>("\u0001");
+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[])>("00\u0001");
 return v;
 label:
 v = v cmp 100L;
 if v >= 0 goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("0");
-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[])>("\u0001");
+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[])>("0\u0001");
 return v;
 label:
 v = staticinvoke <java.lang.Long: java.lang.String toString(long)>(v);
 return v;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/jsp/DurationTag;");
+<psiprobe.jsp.DurationTag: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.OutTag.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.OutTag.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.OutTag.jimple	2025-03-13 18:06:11.615876240 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.OutTag.jimple	2025-03-13 18:06:17.339786186 +0000
@@ -108,10 +108,9 @@
 javax.servlet.jsp.JspWriter v;
 psiprobe.jsp.OutTag v;
 int v, v, v, v, v, v, v, v, v, v;
-java.lang.String v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v;
 boolean v;
 java.io.IOException v;
-java.lang.StringBuilder v, v, v;
 v := @this: psiprobe.jsp.OutTag;
 v := @parameter: java.lang.String;
 v := @parameter: javax.servlet.jsp.JspWriter;
@@ -127,22 +126,18 @@
 v = v.<psiprobe.jsp.OutTag: int maxLength>;
 v = v - 3;
 v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>("...");
+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[])>("\u...");
 goto label;
 label:
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("...");
 v = virtualinvoke v.<java.lang.String: int length()>();
 v = v.<psiprobe.jsp.OutTag: int maxLength>;
 v = v - v;
 v = v + 3;
 v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(v);
-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[])>("\u0001");
+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[])>("...\u0001");
 label:
 v = staticinvoke <org.apache.commons.text.StringEscapeUtils: java.lang.String escapeHtml4(java.lang.String)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("<span title=\"");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\">\u0001</span>");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("<span title=\"\u0001\">\u0001</span>");
 virtualinvoke v.<javax.servlet.jsp.JspWriter: void print(java.lang.String)>(v);
 goto label;
 label:
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.ParamToggleTag.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.ParamToggleTag.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.ParamToggleTag.jimple	2025-03-13 18:06:11.619876177 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.ParamToggleTag.jimple	2025-03-13 18:06:17.339786186 +0000
@@ -3,13 +3,6 @@
 private static final long serialVersionUID;
 private static final org.slf4j.Logger logger;
 private java.lang.String param;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/jsp/ParamToggleTag;");
-<psiprobe.jsp.ParamToggleTag: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.jsp.ParamToggleTag v;
@@ -46,11 +39,11 @@
 v = v.<psiprobe.jsp.ParamToggleTag: java.lang.String param>;
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("=");
-if v == 0 goto label;
-v = 0;
+if v != 0 goto label;
+v = 1;
 goto label;
 label:
-v = 1;
+v = 0;
 label:
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(boolean)>(v);
 v = v.<psiprobe.jsp.ParamToggleTag: javax.servlet.jsp.PageContext pageContext>;
@@ -61,8 +54,9 @@
 v = interfaceinvoke v.<javax.servlet.ServletRequest: java.util.Enumeration getParameterNames()>();
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = v.<psiprobe.jsp.ParamToggleTag: java.lang.String param>;
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
@@ -84,9 +78,6 @@
 specialinvoke v.<javax.servlet.jsp.JspException: void <init>(java.lang.Throwable)>(v);
 throw v;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 v = v.<psiprobe.jsp.ParamToggleTag: javax.servlet.jsp.PageContext pageContext>;
 v = virtualinvoke v.<javax.servlet.jsp.PageContext: javax.servlet.jsp.JspWriter getOut()>();
 virtualinvoke v.<javax.servlet.jsp.JspWriter: void print(java.lang.Object)>(v);
@@ -121,4 +112,11 @@
 v.<psiprobe.jsp.ParamToggleTag: java.lang.String param> = v;
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/jsp/ParamToggleTag;");
+<psiprobe.jsp.ParamToggleTag: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.VisualScoreTag.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.VisualScoreTag.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.VisualScoreTag.jimple	2025-03-13 18:06:11.619876177 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.VisualScoreTag.jimple	2025-03-13 18:06:17.343786124 +0000
@@ -17,13 +17,6 @@
 private boolean showEmptyBlocks;
 private boolean showA;
 private boolean showB;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/jsp/VisualScoreTag;");
-<psiprobe.jsp.VisualScoreTag: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.jsp.VisualScoreTag v;
@@ -40,11 +33,15 @@
 public int doAfterBody() throws javax.servlet.jsp.JspException
 {
 java.lang.Throwable v;
-javax.servlet.jsp.tagext.BodyContent v;
+org.slf4j.Logger v;
 psiprobe.jsp.VisualScoreTag v;
+javax.servlet.jsp.JspException v;
 javax.servlet.jsp.JspWriter v;
-java.lang.String v, v, v;
+java.io.IOException v;
+javax.servlet.jsp.tagext.BodyContent v;
+java.lang.String v, v, v, v, v;
 v := @this: psiprobe.jsp.VisualScoreTag;
+label:
 v = virtualinvoke v.<psiprobe.jsp.VisualScoreTag: javax.servlet.jsp.tagext.BodyContent getBodyContent()>();
 label:
 v = virtualinvoke v.<javax.servlet.jsp.tagext.BodyContent: java.lang.String getString()>();
@@ -57,20 +54,27 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<javax.servlet.jsp.tagext.BodyContent: void close()>();
+throw v;
 label:
+v := @caughtexception;
+v = <psiprobe.jsp.VisualScoreTag: org.slf4j.Logger logger>;
+interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("", v);
+v = new javax.servlet.jsp.JspException;
+v = virtualinvoke v.<java.io.IOException: java.lang.String getMessage()>();
+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[])>("Error:IOException while writing to client\u0001");
+specialinvoke v.<javax.servlet.jsp.JspException: void <init>(java.lang.String)>(v);
 throw v;
 label:
 return 0;
 catch java.lang.Throwable from label to label with label;
+catch java.io.IOException from label to label with label;
 }
 java.lang.String calculateSuffix(java.lang.String)
 {
 byte v, v, v, v, v;
-java.lang.StringBuilder v, v, v, v, v;
+java.lang.StringBuilder v;
 java.lang.Object[] v, v, v, v, v, v, v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
 boolean v, v, v, v, v, v, v;
 psiprobe.jsp.VisualScoreTag v;
 int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
@@ -185,44 +189,38 @@
 label:
 v = newarray (java.lang.Object)[1];
 v = v.<psiprobe.jsp.VisualScoreTag: int partialBlocks>;
-v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>("+0");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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+0");
 v[0] = v;
 v = staticinvoke <java.text.MessageFormat: java.lang.String format(java.lang.String,java.lang.Object[])>(v, v);
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 if v <= 0 goto label;
 v = newarray (java.lang.Object)[1];
-v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("+\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,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[0] = v;
 v = staticinvoke <java.text.MessageFormat: java.lang.String format(java.lang.String,java.lang.Object[])>(v, v);
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
 label:
 v = newarray (java.lang.Object)[1];
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("0+");
 v = v.<psiprobe.jsp.VisualScoreTag: int partialBlocks>;
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("0+\u0001");
 v[0] = v;
 v = staticinvoke <java.text.MessageFormat: java.lang.String format(java.lang.String,java.lang.Object[])>(v, v);
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 if v <= 0 goto label;
 v = newarray (java.lang.Object)[1];
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("0+");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("0+\u0001");
 v[0] = v;
 v = staticinvoke <java.text.MessageFormat: java.lang.String format(java.lang.String,java.lang.Object[])>(v, v);
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
@@ -256,12 +254,11 @@
 v[0] = "0+0";
 v = staticinvoke <java.text.MessageFormat: java.lang.String format(java.lang.String,java.lang.Object[])>(v, v);
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
 v = v + 1;
-label:
-if v < v goto label;
+goto label;
 label:
 v = v.<psiprobe.jsp.VisualScoreTag: boolean showB>;
 if v == 0 goto label;
@@ -446,4 +443,11 @@
 v.<psiprobe.jsp.VisualScoreTag: boolean showB> = v;
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/jsp/VisualScoreTag;");
+<psiprobe.jsp.VisualScoreTag: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.VolumeTag.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.VolumeTag.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.VolumeTag.jimple	2025-03-13 18:06:11.619876177 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.jsp.VolumeTag.jimple	2025-03-13 18:06:17.343786124 +0000
@@ -4,13 +4,6 @@
 private static final org.slf4j.Logger logger;
 private long value;
 private int fractions;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/jsp/VolumeTag;");
-<psiprobe.jsp.VolumeTag: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.jsp.VolumeTag v;
@@ -53,7 +46,6 @@
 java.io.IOException v;
 long v, v;
 int v;
-java.lang.StringBuilder v;
 java.lang.String v, v, v;
 psiprobe.jsp.VolumeTag v;
 v := @this: psiprobe.jsp.VolumeTag;
@@ -65,8 +57,7 @@
 label:
 v = v.<psiprobe.jsp.VolumeTag: javax.servlet.jsp.PageContext pageContext>;
 v = virtualinvoke v.<javax.servlet.jsp.PageContext: javax.servlet.jsp.JspWriter getOut()>();
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("<span title=\"");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\">\u0001</span>");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("<span title=\"\u0001\">\u0001</span>");
 virtualinvoke v.<javax.servlet.jsp.JspWriter: void write(java.lang.String)>(v);
 label:
 goto label;
@@ -81,4 +72,11 @@
 return 1;
 catch java.io.IOException from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/jsp/VolumeTag;");
+<psiprobe.jsp.VolumeTag: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.model.SessionSearchInfo.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.model.SessionSearchInfo.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.model.SessionSearchInfo.jimple	2025-03-13 18:06:11.583876743 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.model.SessionSearchInfo.jimple	2025-03-13 18:06:17.287787005 +0000
@@ -26,13 +26,6 @@
 private java.lang.String lastIp;
 private java.lang.String infoMessage;
 private final java.util.List errorMessages;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/model/SessionSearchInfo;");
-<psiprobe.model.SessionSearchInfo: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.model.SessionSearchInfo v;
@@ -55,6 +48,7 @@
 {
 psiprobe.model.SessionSearchInfo v;
 java.lang.String v, v, v, v, v, v, v;
+boolean v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.String sessionId>;
 if v != null goto label;
@@ -70,100 +64,132 @@
 if v != null goto label;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.String lastIp>;
 if v != null goto label;
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
 label:
-return 0;
+return v;
 }
 public boolean isSessionIdValid()
 {
 psiprobe.model.SessionSearchInfo v;
 java.lang.String v;
 java.util.regex.Pattern v;
+boolean v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.String sessionId>;
 if v == null goto label;
 v = v.<psiprobe.model.SessionSearchInfo: java.util.regex.Pattern sessionIdPattern>;
-if v != null goto label;
-return 0;
+if v == null goto label;
 label:
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
+label:
+return v;
 }
 public boolean isAttrNameValid()
 {
 psiprobe.model.SessionSearchInfo v;
 java.util.List v;
 java.lang.String v;
-boolean v;
+boolean v, v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.String attrName>;
 if v == null goto label;
 v = v.<psiprobe.model.SessionSearchInfo: java.util.List attrNamePatterns>;
 v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
-if v == 0 goto label;
-return 0;
+if v != 0 goto label;
 label:
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
+label:
+return v;
 }
 public boolean isAgeFromValid()
 {
 psiprobe.model.SessionSearchInfo v;
 java.lang.String v;
 java.lang.Integer v;
+boolean v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.String ageFrom>;
 if v == null goto label;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.Integer ageFromSec>;
-if v != null goto label;
-return 0;
+if v == null goto label;
 label:
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
+label:
+return v;
 }
 public boolean isAgeToValid()
 {
 psiprobe.model.SessionSearchInfo v;
 java.lang.String v;
 java.lang.Integer v;
+boolean v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.String ageTo>;
 if v == null goto label;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.Integer ageToSec>;
-if v != null goto label;
-return 0;
+if v == null goto label;
 label:
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
+label:
+return v;
 }
 public boolean isIdleTimeFromValid()
 {
 psiprobe.model.SessionSearchInfo v;
 java.lang.String v;
 java.lang.Integer v;
+boolean v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.String idleTimeFrom>;
 if v == null goto label;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.Integer idleTimeFromSec>;
-if v != null goto label;
-return 0;
+if v == null goto label;
 label:
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
+label:
+return v;
 }
 public boolean isIdleTimeToValid()
 {
 psiprobe.model.SessionSearchInfo v;
 java.lang.String v;
 java.lang.Integer v;
+boolean v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.String idleTimeTo>;
 if v == null goto label;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.Integer idleTimeToSec>;
-if v != null goto label;
-return 0;
+if v == null goto label;
+label:
+v = 1;
+goto label;
 label:
-return 1;
+v = 0;
+label:
+return v;
 }
 public boolean isValid()
 {
 psiprobe.model.SessionSearchInfo v;
-boolean v, v, v, v, v, v;
+boolean v, v, v, v, v, v, v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = virtualinvoke v.<psiprobe.model.SessionSearchInfo: boolean isSessionIdValid()>();
 if v == 0 goto label;
@@ -177,14 +203,17 @@
 if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.model.SessionSearchInfo: boolean isIdleTimeToValid()>();
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
 label:
-return 0;
+return v;
 }
 public boolean isUseSearch()
 {
 psiprobe.model.SessionSearchInfo v;
-boolean v, v, v;
+boolean v, v, v, v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = virtualinvoke v.<psiprobe.model.SessionSearchInfo: boolean isApply()>();
 if v == 0 goto label;
@@ -192,20 +221,27 @@
 if v != 0 goto label;
 v = virtualinvoke v.<psiprobe.model.SessionSearchInfo: boolean isValid()>();
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
 label:
-return 0;
+return v;
 }
 public boolean isUseSessionId()
 {
 psiprobe.model.SessionSearchInfo v;
 java.util.regex.Pattern v;
+boolean v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.util.regex.Pattern sessionIdPattern>;
 if v == null goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 public boolean isUseAttrName()
 {
@@ -215,81 +251,104 @@
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.util.List attrNamePatterns>;
 v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
-if v == 0 goto label;
-v = 0;
+if v != 0 goto label;
+v = 1;
 goto label;
 label:
-v = 1;
+v = 0;
 label:
 return v;
 }
 public boolean isUseAttr()
 {
 psiprobe.model.SessionSearchInfo v;
-boolean v, v;
+boolean v, v, v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = virtualinvoke v.<psiprobe.model.SessionSearchInfo: boolean isUseSearch()>();
 if v == 0 goto label;
 v = virtualinvoke v.<psiprobe.model.SessionSearchInfo: boolean isUseAttrName()>();
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 public boolean isUseAgeFrom()
 {
 psiprobe.model.SessionSearchInfo v;
 java.lang.Integer v;
+boolean v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.Integer ageFromSec>;
 if v == null goto label;
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
 label:
-return 0;
+return v;
 }
 public boolean isUseAgeTo()
 {
 psiprobe.model.SessionSearchInfo v;
 java.lang.Integer v;
+boolean v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.Integer ageToSec>;
 if v == null goto label;
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
 label:
-return 0;
+return v;
 }
 public boolean isUseIdleTimeFrom()
 {
 psiprobe.model.SessionSearchInfo v;
 java.lang.Integer v;
+boolean v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.Integer idleTimeFromSec>;
 if v == null goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 public boolean isUseIdleTimeTo()
 {
 psiprobe.model.SessionSearchInfo v;
 java.lang.Integer v;
+boolean v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.Integer idleTimeToSec>;
 if v == null goto label;
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
 label:
-return 0;
+return v;
 }
 public boolean isUseLastIp()
 {
 psiprobe.model.SessionSearchInfo v;
 java.lang.String v;
+boolean v;
 v := @this: psiprobe.model.SessionSearchInfo;
 v = v.<psiprobe.model.SessionSearchInfo: java.lang.String lastIp>;
 if v == null goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 public java.lang.String getSearchAction()
 {
@@ -427,8 +486,8 @@
 label:
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 label:
 v = v.<psiprobe.model.SessionSearchInfo: java.util.List attrNamePatterns>;
@@ -445,8 +504,7 @@
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 label:
 v = v + 1;
-label:
-if v < v goto label;
+goto label;
 label:
 return;
 catch java.util.regex.PatternSyntaxException from label to label with label;
@@ -684,4 +742,11 @@
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/model/SessionSearchInfo;");
+<psiprobe.model.SessionSearchInfo: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.model.sql.DataSourceTestInfo.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.model.sql.DataSourceTestInfo.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.model.sql.DataSourceTestInfo.jimple	2025-03-13 18:06:11.583876743 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.model.sql.DataSourceTestInfo.jimple	2025-03-13 18:06:17.291786942 +0000
@@ -30,17 +30,16 @@
 virtualinvoke v.<java.util.LinkedList: boolean remove(java.lang.Object)>(v);
 v = v.<psiprobe.model.sql.DataSourceTestInfo: java.util.LinkedList queryHistory>;
 virtualinvoke v.<java.util.LinkedList: void addFirst(java.lang.Object)>(v);
-goto label;
-label:
-v = v.<psiprobe.model.sql.DataSourceTestInfo: java.util.LinkedList queryHistory>;
-virtualinvoke v.<java.util.LinkedList: java.lang.Object removeLast()>();
 label:
 v = v.<psiprobe.model.sql.DataSourceTestInfo: int historySize>;
 if v < 0 goto label;
 v = v.<psiprobe.model.sql.DataSourceTestInfo: java.util.LinkedList queryHistory>;
 v = virtualinvoke v.<java.util.LinkedList: int size()>();
 v = v.<psiprobe.model.sql.DataSourceTestInfo: int historySize>;
-if v > v goto label;
+if v <= v goto label;
+v = v.<psiprobe.model.sql.DataSourceTestInfo: java.util.LinkedList queryHistory>;
+virtualinvoke v.<java.util.LinkedList: java.lang.Object removeLast()>();
+goto label;
 label:
 return;
 }
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.model.stats.StatsCollection.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.model.stats.StatsCollection.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.model.stats.StatsCollection.jimple	2025-03-13 18:06:11.335880645 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.model.stats.StatsCollection.jimple	2025-03-13 18:06:17.043790843 +0000
@@ -8,13 +8,6 @@
 private java.io.File contextTempDir;
 private int maxFiles;
 private final psiprobe.tools.UpdateCommitLock lock;
-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;
-}
 public void <init>()
 {
 psiprobe.model.stats.StatsCollection v;
@@ -71,14 +64,18 @@
 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;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 public int getMaxFiles()
 {
@@ -191,8 +188,9 @@
 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()>();
-goto label;
 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);
@@ -200,9 +198,8 @@
 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:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return v;
 }
 private java.io.File makeFile()
@@ -231,10 +228,9 @@
 psiprobe.model.stats.StatsCollection v;
 java.nio.file.Path v, v, v;
 boolean v, v, v;
-java.lang.StringBuilder v, v, 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, 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;
@@ -247,9 +243,7 @@
 label:
 v = specialinvoke v.<psiprobe.model.stats.StatsCollection: java.io.File makeFile()>();
 v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>(".\u0001");
+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];
@@ -257,9 +251,7 @@
 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 = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>(".\u0001");
+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);
@@ -271,9 +263,7 @@
 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 = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>(".\u0001");
+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);
@@ -288,9 +278,7 @@
 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 = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>(".\u0001");
+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()>();
@@ -300,10 +288,8 @@
 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 = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = v + 1;
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>(".\u0001");
+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;
@@ -319,16 +305,18 @@
 {
 java.lang.Throwable v, v;
 com.thoughtworks.xstream.XStream v;
-long v, v, v, v, v;
-java.lang.Long v, 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;
-psiprobe.tools.UpdateCommitLock v, v, v;
-java.io.File 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()>();
@@ -349,12 +337,23 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.OutputStream: void close()>();
-label:
 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>;
@@ -362,8 +361,9 @@
 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;
+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>;
@@ -371,8 +371,12 @@
 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)
@@ -414,8 +418,9 @@
 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()>();
-goto label;
 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()>();
@@ -433,18 +438,13 @@
 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);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 if v == null goto label;
 virtualinvoke v.<java.io.InputStream: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.InputStream: void close()>();
-label:
 throw v;
 label:
 v = <psiprobe.model.stats.StatsCollection: org.slf4j.Logger logger>;
@@ -503,8 +503,7 @@
 java.util.Map v;
 int v, v, v;
 psiprobe.model.stats.StatsCollection v;
-java.lang.StringBuilder v;
-java.lang.String v, v, v;
+java.lang.String v, v;
 v := @this: psiprobe.model.stats.StatsCollection;
 v = 0;
 label:
@@ -515,9 +514,7 @@
 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 = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>(".\u0001");
+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);
@@ -556,4 +553,11 @@
 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;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.StringTokenizer.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.StringTokenizer.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.StringTokenizer.jimple	2025-03-13 18:06:11.383879889 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.StringTokenizer.jimple	2025-03-13 18:06:17.091790088 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.tokenizer.StringTokenizer extends psiprobe.tokenizer.Tokenizer
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tokenizer/StringTokenizer;");
-<psiprobe.tokenizer.StringTokenizer: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.tokenizer.StringTokenizer v;
@@ -91,4 +84,11 @@
 return null;
 catch java.io.IOException from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tokenizer/StringTokenizer;");
+<psiprobe.tokenizer.StringTokenizer: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.Tokenizer.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.Tokenizer.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.Tokenizer.jimple	2025-03-13 18:06:11.387879826 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.Tokenizer.jimple	2025-03-13 18:06:17.095790025 +0000
@@ -14,13 +14,6 @@
 private int cacheSize;
 private final char[] cacheBuffer;
 private int cachePinPosition;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tokenizer/Tokenizer;");
-<psiprobe.tokenizer.Tokenizer: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.tokenizer.Tokenizer v;
@@ -177,8 +170,9 @@
 v = v.<psiprobe.tokenizer.Tokenizer: psiprobe.tokenizer.Tokenizer$TokenizerToken token>;
 virtualinvoke v.<psiprobe.tokenizer.Tokenizer$TokenizerToken: void init()>();
 v = newarray (char)[1];
-goto label;
 label:
+v = virtualinvoke v.<psiprobe.tokenizer.Tokenizer: boolean hasMore()>();
+if v == 0 goto label;
 specialinvoke v.<psiprobe.tokenizer.Tokenizer: void read(char[],int)>(v, 1);
 v = v[0];
 v = specialinvoke v.<psiprobe.tokenizer.Tokenizer: int lookupSymbol(char)>(v);
@@ -211,21 +205,20 @@
 label:
 v = v.<psiprobe.tokenizer.TokenizerSymbol: java.lang.String tailText>;
 if v == null goto label;
-goto label;
 label:
+v = virtualinvoke v.<psiprobe.tokenizer.Tokenizer: boolean hasMore()>();
+if v == 0 goto label;
+v = v.<psiprobe.tokenizer.TokenizerSymbol: java.lang.String tailText>;
+v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
+v = specialinvoke v.<psiprobe.tokenizer.Tokenizer: boolean compare(char[],int)>(v, 0);
+if v != 0 goto label;
 specialinvoke v.<psiprobe.tokenizer.Tokenizer: void read(char[],int)>(v, 1);
 if v != 0 goto label;
 v = v.<psiprobe.tokenizer.Tokenizer$TokenizerToken: java.lang.StringBuilder text>;
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char[])>(v);
 v = v.<psiprobe.tokenizer.Tokenizer$TokenizerToken: java.lang.StringBuilder innerText>;
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char[])>(v);
-label:
-v = virtualinvoke v.<psiprobe.tokenizer.Tokenizer: boolean hasMore()>();
-if v == 0 goto label;
-v = v.<psiprobe.tokenizer.TokenizerSymbol: java.lang.String tailText>;
-v = virtualinvoke v.<java.lang.String: char[] toCharArray()>();
-v = specialinvoke v.<psiprobe.tokenizer.Tokenizer: boolean compare(char[],int)>(v, 0);
-if v == 0 goto label;
+goto label;
 label:
 if v != 0 goto label;
 v = v.<psiprobe.tokenizer.Tokenizer$TokenizerToken: java.lang.StringBuilder text>;
@@ -237,7 +230,7 @@
 v = v.<psiprobe.tokenizer.Tokenizer: psiprobe.tokenizer.Tokenizer$TokenizerToken token>;
 v = v.<psiprobe.tokenizer.Tokenizer$TokenizerToken: java.lang.StringBuilder text>;
 v = virtualinvoke v.<java.lang.StringBuilder: int length()>();
-if v <= 0 goto label;
+if v > 0 goto label;
 goto label;
 label:
 v = v.<psiprobe.tokenizer.Tokenizer: psiprobe.tokenizer.Tokenizer$TokenizerToken token>;
@@ -245,9 +238,7 @@
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char[])>(v);
 v = v.<psiprobe.tokenizer.Tokenizer: psiprobe.tokenizer.Tokenizer$TokenizerToken token>;
 v.<psiprobe.tokenizer.Tokenizer$TokenizerToken: int type> = 0;
-label:
-v = virtualinvoke v.<psiprobe.tokenizer.Tokenizer: boolean hasMore()>();
-if v != 0 goto label;
+goto label;
 label:
 v = v.<psiprobe.tokenizer.Tokenizer: psiprobe.tokenizer.Tokenizer$TokenizerToken token>;
 return v;
@@ -298,8 +289,9 @@
 v = lengthof v;
 specialinvoke v.<psiprobe.tokenizer.Tokenizer: void read(char[],int)>(v, v);
 v = 0;
-goto label;
 label:
+v = lengthof v;
+if v >= v goto label;
 v = v[v];
 v = v + v;
 v = v[v];
@@ -311,9 +303,8 @@
 return 0;
 label:
 v = v + 1;
+goto label;
 label:
-v = lengthof v;
-if v < v goto label;
 return 1;
 }
 private int lookupSymbol(char) throws java.io.IOException
@@ -335,19 +326,20 @@
 v = v.<psiprobe.tokenizer.Tokenizer: java.util.List symbols>;
 v = staticinvoke <java.util.Collections: int binarySearch(java.util.List,java.lang.Object)>(v, v);
 if v < 0 goto label;
-goto label;
-label:
-v = v - 1;
 label:
 if v <= 0 goto label;
 v = v.<psiprobe.tokenizer.Tokenizer: java.util.List symbols>;
 v = v - 1;
 v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
 v = virtualinvoke v.<psiprobe.tokenizer.TokenizerSymbol: int compareTo(java.lang.Character)>(v);
-if v == 0 goto label;
+if v != 0 goto label;
+v = v - 1;
 goto label;
 label:
 v = v.<psiprobe.tokenizer.Tokenizer: java.util.List symbols>;
+v = interfaceinvoke v.<java.util.List: int size()>();
+if v >= v goto label;
+v = v.<psiprobe.tokenizer.Tokenizer: java.util.List symbols>;
 v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
 v = virtualinvoke v.<psiprobe.tokenizer.TokenizerSymbol: int compareTo(java.lang.Character)>(v);
 if v != 0 goto label;
@@ -359,10 +351,7 @@
 goto label;
 label:
 v = v + 1;
-label:
-v = v.<psiprobe.tokenizer.Tokenizer: java.util.List symbols>;
-v = interfaceinvoke v.<java.util.List: int size()>();
-if v < v goto label;
+goto label;
 label:
 return v;
 }
@@ -406,6 +395,7 @@
 int v, v, v, v;
 psiprobe.tokenizer.Tokenizer v;
 psiprobe.tokenizer.Tokenizer$TokenizerToken v;
+boolean v;
 v := @this: psiprobe.tokenizer.Tokenizer;
 specialinvoke v.<psiprobe.tokenizer.Tokenizer: void loadCache(int)>(0);
 v = v.<psiprobe.tokenizer.Tokenizer: int cachePosition>;
@@ -415,10 +405,14 @@
 v = v.<psiprobe.tokenizer.Tokenizer$TokenizerToken: int type>;
 if v != 3 goto label;
 v = v.<psiprobe.tokenizer.Tokenizer: int pushCount>;
-if v > 0 goto label;
-return 0;
+if v <= 0 goto label;
 label:
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
+label:
+return v;
 }
 public void addSymbol(java.lang.String)
 {
@@ -539,4 +533,11 @@
 return v;
 catch java.lang.NumberFormatException from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tokenizer/Tokenizer;");
+<psiprobe.tokenizer.Tokenizer: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.TokenizerSymbol.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.TokenizerSymbol.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.TokenizerSymbol.jimple	2025-03-13 18:06:11.387879826 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.TokenizerSymbol.jimple	2025-03-13 18:06:17.095790025 +0000
@@ -106,7 +106,7 @@
 }
 public boolean equals(java.lang.Object)
 {
-boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
+boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
 java.lang.Boolean v, v, v, v, v, v, v, v;
 java.lang.String v, v, v, v, v, v;
 java.lang.Class v, v;
@@ -157,8 +157,11 @@
 v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
 v = staticinvoke <java.util.Objects: boolean equals(java.lang.Object,java.lang.Object)>(v, v);
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.UniqueList.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.UniqueList.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.UniqueList.jimple	2025-03-13 18:06:11.623876114 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tokenizer.UniqueList.jimple	2025-03-13 18:06:17.347786061 +0000
@@ -24,7 +24,7 @@
 java.lang.Comparable v;
 psiprobe.tokenizer.UniqueList v;
 java.util.Comparator v;
-boolean v, v;
+boolean v, v, v;
 v := @this: psiprobe.tokenizer.UniqueList;
 v := @parameter: java.lang.Comparable;
 v := @parameter: java.util.Comparator;
@@ -51,9 +51,12 @@
 specialinvoke v.<java.util.ArrayList: void add(int,java.lang.Object)>(v, v);
 label:
 if v >= 0 goto label;
-return 1;
+v = 1;
+goto label;
+label:
+v = 0;
 label:
-return 0;
+return v;
 }
 public synchronized void add(int, java.lang.Comparable)
 {
@@ -84,14 +87,13 @@
 v = v;
 if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.tokenizer.UniqueList: boolean add(java.lang.Comparable)>(v);
 v = v & v;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 return v;
 }
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.ApplicationUtils.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.ApplicationUtils.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.ApplicationUtils.jimple	2025-03-13 18:06:11.415879386 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.ApplicationUtils.jimple	2025-03-13 18:06:17.127789522 +0000
@@ -1,13 +1,6 @@
 public final class psiprobe.tools.ApplicationUtils extends java.lang.Object
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/ApplicationUtils;");
-<psiprobe.tools.ApplicationUtils: org.slf4j.Logger logger> = v;
-return;
-}
 private void <init>()
 {
 psiprobe.tools.ApplicationUtils v;
@@ -32,12 +25,11 @@
 boolean v, v, v, v, v, v, v, v, v;
 psiprobe.beans.ResourceResolver v;
 psiprobe.model.ApplicationSession v;
-java.lang.StringBuilder v;
 long v, v, v, v;
 psiprobe.model.Application v;
 java.util.ArrayList v;
 int v, v, v, v, v, v, v, v, v, v;
-java.lang.String v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v;
 org.apache.catalina.Manager v, v;
 org.slf4j.Logger v, v, v, v;
 org.apache.catalina.Session v;
@@ -77,11 +69,9 @@
 virtualinvoke v.<psiprobe.model.Application: void setSessionTimeout(int)>(v);
 v = interfaceinvoke v.<org.apache.catalina.Context: javax.servlet.ServletContext getServletContext()>();
 v = interfaceinvoke v.<javax.servlet.ServletContext: int getMajorVersion()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 v = interfaceinvoke v.<org.apache.catalina.Context: javax.servlet.ServletContext getServletContext()>();
 v = interfaceinvoke v.<javax.servlet.ServletContext: int getMinorVersion()>();
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>(".\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,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");
 virtualinvoke v.<psiprobe.model.Application: void setServletVersion(java.lang.String)>(v);
 if v == null goto label;
 v = <psiprobe.tools.ApplicationUtils: org.slf4j.Logger logger>;
@@ -106,8 +96,8 @@
 v = interfaceinvoke v.<org.apache.catalina.Manager: org.apache.catalina.Session[] findSessions()>();
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = staticinvoke <psiprobe.tools.ApplicationUtils: psiprobe.model.ApplicationSession getApplicationSession(org.apache.catalina.Session,boolean,boolean)>(v, v, 0);
 if v == null goto label;
@@ -126,8 +116,8 @@
 v = v + v;
 label:
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 virtualinvoke v.<psiprobe.model.Application: void setSerializable(boolean)>(v);
 virtualinvoke v.<psiprobe.model.Application: void setSessionAttributeCount(long)>(v);
 virtualinvoke v.<psiprobe.model.Application: void setSize(long)>(v);
@@ -168,8 +158,8 @@
 v = interfaceinvoke v.<org.apache.catalina.Context: org.apache.catalina.Container[] findChildren()>();
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = v instanceof org.apache.catalina.core.StandardWrapper;
 if v == 0 goto label;
@@ -189,8 +179,8 @@
 v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
 label:
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 virtualinvoke v.<psiprobe.model.Application: void setServletCount(int)>(v);
 virtualinvoke v.<psiprobe.model.Application: void setRequestCount(int)>(v);
 virtualinvoke v.<psiprobe.model.Application: void setErrorCount(int)>(v);
@@ -227,6 +217,8 @@
 v = <psiprobe.tools.ApplicationUtils: org.slf4j.Logger logger>;
 interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Calculating datasource usage score");
 v = newarray (int)[2];
+v[0] = 0;
+v[1] = 0;
 label:
 v = interfaceinvoke v.<psiprobe.beans.ResourceResolver: java.util.List getApplicationResources(org.apache.catalina.Context,psiprobe.beans.ContainerWrapperBean)>(v, v);
 label:
@@ -238,8 +230,9 @@
 throw v;
 label:
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.model.ApplicationResource: psiprobe.model.DataSourceInfo getDataSourceInfo()>();
 if v == null goto label;
@@ -253,9 +246,8 @@
 v = virtualinvoke v.<psiprobe.model.DataSourceInfo: int getEstablishedScore()>();
 v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
 v[1] = v;
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return v;
 catch javax.naming.NamingException from label to label with label;
 }
@@ -333,8 +325,9 @@
 v = interfaceinvoke v.<javax.servlet.http.HttpSession: java.util.Enumeration getAttributeNames()>();
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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.<javax.servlet.http.HttpSession: java.lang.Object getAttribute(java.lang.String)>(v);
 if v == 0 goto label;
@@ -375,9 +368,8 @@
 label:
 v = v + 1;
 v = v + v;
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = interfaceinvoke v.<javax.servlet.http.HttpSession: java.lang.Object getAttribute(java.lang.String)>("__psiprobe_la_ip");
 if v == null goto label;
 virtualinvoke v.<psiprobe.model.ApplicationSession: void setLastAccessedIp(java.lang.String)>(v);
@@ -422,8 +414,9 @@
 v = interfaceinvoke v.<javax.servlet.ServletContext: java.util.Enumeration getAttributeNames()>();
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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.<javax.servlet.ServletContext: java.lang.Object getAttribute(java.lang.String)>(v);
 v = new psiprobe.model.Attribute;
@@ -434,9 +427,8 @@
 v = staticinvoke <org.springframework.util.ClassUtils: java.lang.String getQualifiedName(java.lang.Class)>(v);
 virtualinvoke v.<psiprobe.model.Attribute: void setType(java.lang.String)>(v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 return v;
 }
 public static java.util.List getApplicationInitParams(org.apache.catalina.Context, psiprobe.beans.ContainerWrapperBean)
@@ -500,11 +492,11 @@
 v = interfaceinvoke v.<org.apache.catalina.Wrapper: java.lang.String getServletClass()>();
 virtualinvoke v.<psiprobe.model.ServletInfo: void setServletClass(java.lang.String)>(v);
 v = interfaceinvoke v.<org.apache.catalina.Wrapper: boolean isUnavailable()>();
-if v == 0 goto label;
-v = 0;
+if v != 0 goto label;
+v = 1;
 goto label;
 label:
-v = 1;
+v = 0;
 label:
 virtualinvoke v.<psiprobe.model.ServletInfo: void setAvailable(boolean)>(v);
 v = interfaceinvoke v.<org.apache.catalina.Wrapper: int getLoadOnStartup()>();
@@ -580,8 +572,8 @@
 specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = v instanceof org.apache.catalina.Wrapper;
 if v == 0 goto label;
@@ -590,8 +582,8 @@
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 label:
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 return v;
 }
 public static java.util.List getApplicationServletMaps(org.apache.catalina.Context)
@@ -611,8 +603,8 @@
 specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 if v == null goto label;
 v = interfaceinvoke v.<org.apache.catalina.Context: java.lang.String findServletMapping(java.lang.String)>(v);
@@ -636,19 +628,19 @@
 v = interfaceinvoke v.<org.apache.catalina.Wrapper: java.lang.String getServletClass()>();
 virtualinvoke v.<psiprobe.model.ServletMapping: void setServletClass(java.lang.String)>(v);
 v = interfaceinvoke v.<org.apache.catalina.Wrapper: boolean isUnavailable()>();
-if v == 0 goto label;
-v = 0;
+if v != 0 goto label;
+v = 1;
 goto label;
 label:
-v = 1;
+v = 0;
 label:
 virtualinvoke v.<psiprobe.model.ServletMapping: void setAvailable(boolean)>(v);
 label:
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 label:
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 return v;
 }
 public static java.util.List getApplicationFilters(org.apache.catalina.Context, psiprobe.beans.ContainerWrapperBean)
@@ -663,4 +655,11 @@
 v = interfaceinvoke v.<psiprobe.TomcatContainer: java.util.List getApplicationFilters(org.apache.catalina.Context)>(v);
 return v;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/ApplicationUtils;");
+<psiprobe.tools.ApplicationUtils: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
Only in results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar: psiprobe.tools.AsyncSocketFactory$1.jimple
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.AsyncSocketFactory$SocketRunnable.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.AsyncSocketFactory$SocketRunnable.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.AsyncSocketFactory$SocketRunnable.jimple	2025-03-13 18:06:11.623876114 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.AsyncSocketFactory$SocketRunnable.jimple	2025-03-13 18:06:17.347786061 +0000
@@ -19,13 +19,16 @@
 {
 java.lang.Throwable v, v;
 java.net.Socket v, v;
-psiprobe.tools.AsyncSocketFactory$SocketWrapper v, v, v, v, v, v;
+psiprobe.tools.AsyncSocketFactory$SocketWrapper v, v, v, v, v, v, v;
 int v;
 psiprobe.tools.AsyncSocketFactory$SocketRunnable v;
 java.lang.String v;
 boolean v;
+org.slf4j.Logger v;
+java.io.IOException v;
 java.lang.Object v, v;
 v := @this: psiprobe.tools.AsyncSocketFactory$SocketRunnable;
+label:
 v = new java.net.Socket;
 v = v.<psiprobe.tools.AsyncSocketFactory$SocketRunnable: psiprobe.tools.AsyncSocketFactory$SocketWrapper socketWrapper>;
 v = virtualinvoke v.<psiprobe.tools.AsyncSocketFactory$SocketWrapper: java.lang.String getServer()>();
@@ -48,11 +51,14 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.net.Socket: void close()>();
-label:
 throw v;
 label:
+v := @caughtexception;
+v = <psiprobe.tools.AsyncSocketFactory: org.slf4j.Logger logger>;
+interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("", v);
+v = v.<psiprobe.tools.AsyncSocketFactory$SocketRunnable: psiprobe.tools.AsyncSocketFactory$SocketWrapper socketWrapper>;
+virtualinvoke v.<psiprobe.tools.AsyncSocketFactory$SocketWrapper: void setException(java.io.IOException)>(v);
+label:
 v = v.<psiprobe.tools.AsyncSocketFactory$SocketRunnable: java.lang.Object sync>;
 entermonitor v;
 label:
@@ -68,6 +74,7 @@
 label:
 return;
 catch java.lang.Throwable from label to label with label;
+catch java.io.IOException from label to label with label;
 catch java.lang.Throwable from label to label with label;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.AsyncSocketFactory$TimeoutRunnable.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.AsyncSocketFactory$TimeoutRunnable.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.AsyncSocketFactory$TimeoutRunnable.jimple	2025-03-13 18:06:11.627876050 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.AsyncSocketFactory$TimeoutRunnable.jimple	2025-03-13 18:06:17.351785998 +0000
@@ -18,10 +18,13 @@
 public void run()
 {
 java.lang.Throwable v;
+org.slf4j.Logger v;
+java.lang.InterruptedException v;
 psiprobe.tools.AsyncSocketFactory$TimeoutRunnable v;
 java.lang.Object v, v;
 long v;
 v := @this: psiprobe.tools.AsyncSocketFactory$TimeoutRunnable;
+label:
 v = v.<psiprobe.tools.AsyncSocketFactory$TimeoutRunnable: long timeout>;
 staticinvoke <java.lang.Thread: void sleep(long)>(v);
 v = v.<psiprobe.tools.AsyncSocketFactory$TimeoutRunnable: java.lang.Object sync>;
@@ -37,7 +40,12 @@
 exitmonitor v;
 throw v;
 label:
+v := @caughtexception;
+v = <psiprobe.tools.AsyncSocketFactory: org.slf4j.Logger logger>;
+interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("", v);
+label:
 return;
 catch java.lang.Throwable from label to label with label;
+catch java.lang.InterruptedException from label to label with label;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.AsyncSocketFactory.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.AsyncSocketFactory.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.AsyncSocketFactory.jimple	2025-03-13 18:06:11.623876114 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.AsyncSocketFactory.jimple	2025-03-13 18:06:17.347786061 +0000
@@ -1,13 +1,6 @@
 public final class psiprobe.tools.AsyncSocketFactory extends java.lang.Object
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/AsyncSocketFactory;");
-<psiprobe.tools.AsyncSocketFactory: org.slf4j.Logger logger> = v;
-return;
-}
 private void <init>()
 {
 psiprobe.tools.AsyncSocketFactory v;
@@ -35,20 +28,20 @@
 v := @parameter: int;
 v := @parameter: long;
 v = new psiprobe.tools.AsyncSocketFactory$SocketWrapper;
-specialinvoke v.<psiprobe.tools.AsyncSocketFactory$SocketWrapper: void <init>(psiprobe.tools.AsyncSocketFactory$SocketWrapper)>(null);
+specialinvoke v.<psiprobe.tools.AsyncSocketFactory$SocketWrapper: void <init>()>();
 v.<psiprobe.tools.AsyncSocketFactory$SocketWrapper: java.lang.String server> = v;
 v.<psiprobe.tools.AsyncSocketFactory$SocketWrapper: int port> = v;
 v = new java.lang.Object;
 specialinvoke v.<java.lang.Object: void <init>()>();
 v = new java.lang.Thread;
 v = new psiprobe.tools.AsyncSocketFactory$SocketRunnable;
-specialinvoke v.<psiprobe.tools.AsyncSocketFactory$SocketRunnable: void <init>(psiprobe.tools.AsyncSocketFactory$SocketWrapper,java.lang.Object,psiprobe.tools.AsyncSocketFactory$SocketRunnable)>(v, v, null);
+specialinvoke v.<psiprobe.tools.AsyncSocketFactory$SocketRunnable: void <init>(psiprobe.tools.AsyncSocketFactory$SocketWrapper,java.lang.Object)>(v, v);
 specialinvoke v.<java.lang.Thread: void <init>(java.lang.Runnable)>(v);
 virtualinvoke v.<java.lang.Thread: void setDaemon(boolean)>(1);
 v = new java.lang.Thread;
 v = new psiprobe.tools.AsyncSocketFactory$TimeoutRunnable;
 v = v * 1000L;
-specialinvoke v.<psiprobe.tools.AsyncSocketFactory$TimeoutRunnable: void <init>(java.lang.Object,long,psiprobe.tools.AsyncSocketFactory$TimeoutRunnable)>(v, v, null);
+specialinvoke v.<psiprobe.tools.AsyncSocketFactory$TimeoutRunnable: void <init>(java.lang.Object,long)>(v, v);
 specialinvoke v.<java.lang.Thread: void <init>(java.lang.Runnable)>(v);
 virtualinvoke v.<java.lang.Thread: void setDaemon(boolean)>(1);
 virtualinvoke v.<java.lang.Thread: void start()>();
@@ -96,4 +89,11 @@
 catch java.lang.InterruptedException from label to label with label;
 catch java.lang.Throwable from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/AsyncSocketFactory;");
+<psiprobe.tools.AsyncSocketFactory: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.BackwardsLineReader.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.BackwardsLineReader.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.BackwardsLineReader.jimple	2025-03-13 18:06:11.539877436 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.BackwardsLineReader.jimple	2025-03-13 18:06:17.255787508 +0000
@@ -109,8 +109,10 @@
 v := @this: psiprobe.tools.BackwardsLineReader;
 v := @parameter: byte[];
 v = 0;
-goto label;
 label:
+v = lengthof v;
+v = v / 2;
+if v >= v goto label;
 v = v[v];
 v = lengthof v;
 v = v - v;
@@ -122,10 +124,8 @@
 v = v - 1;
 v[v] = v;
 v = v + 1;
+goto label;
 label:
-v = lengthof v;
-v = v / 2;
-if v < v goto label;
 return;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.Instruments.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.Instruments.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.Instruments.jimple	2025-03-13 18:06:11.411879449 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.Instruments.jimple	2025-03-13 18:06:17.119789648 +0000
@@ -17,38 +17,6 @@
 private final java.util.List thisQueue;
 private final java.util.List nextQueue;
 private java.lang.ClassLoader classLoader;
-static void <clinit>()
-{
-byte v;
-psiprobe.tools.SimpleAccessor v;
-java.lang.String v, v, v, v;
-boolean v, v, v;
-v = new psiprobe.tools.SimpleAccessor;
-specialinvoke v.<psiprobe.tools.SimpleAccessor: void <init>()>();
-<psiprobe.tools.Instruments: psiprobe.tools.Accessor ACCESSOR> = v;
-v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("psiprobe.intruments.ignoreNIO");
-v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("sun.arch.data.model");
-if v == null goto label;
-v = "true";
-v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
-if v != 0 goto label;
-v = 0;
-goto label;
-label:
-v = 1;
-label:
-<psiprobe.tools.Instruments: boolean IGNORE_NIO> = v;
-v = "64";
-v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
-if v == 0 goto label;
-v = 8;
-goto label;
-label:
-v = 4;
-label:
-<psiprobe.tools.Instruments: long SIZE_REFERENCE> = v;
-return;
-}
 public void <init>()
 {
 java.util.HashSet v;
@@ -124,12 +92,15 @@
 v = 0L;
 v = v.<psiprobe.tools.Instruments: java.util.List thisQueue>;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-goto label;
 label:
 v = v.<psiprobe.tools.Instruments: java.util.List thisQueue>;
+v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
+if v != 0 goto label;
+v = v.<psiprobe.tools.Instruments: java.util.List thisQueue>;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = staticinvoke <psiprobe.tools.Instruments: boolean isInitialized()>();
 if v == 0 goto label;
@@ -174,9 +145,8 @@
 v = v + v;
 label:
 interfaceinvoke v.<java.util.Iterator: void remove()>();
+goto label;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 v = v.<psiprobe.tools.Instruments: java.util.List nextQueue>;
 v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
 if v != 0 goto label;
@@ -185,10 +155,8 @@
 interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
 v = v.<psiprobe.tools.Instruments: java.util.List nextQueue>;
 interfaceinvoke v.<java.util.List: void clear()>();
+goto label;
 label:
-v = v.<psiprobe.tools.Instruments: java.util.List thisQueue>;
-v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
-if v == 0 goto label;
 return v;
 }
 private long sizeOfObject(java.lang.Object)
@@ -207,13 +175,13 @@
 v := @parameter: java.lang.Object;
 v = 8L;
 v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
-goto label;
 label:
+if v == null goto label;
 v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field[] getDeclaredFields()>();
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = virtualinvoke v.<java.lang.reflect.Field: int getModifiers()>();
 v = staticinvoke <java.lang.reflect.Modifier: boolean isStatic(int)>(v);
@@ -241,11 +209,11 @@
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 label:
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 v = virtualinvoke v.<java.lang.Class: java.lang.Class getSuperclass()>();
+goto label;
 label:
-if v != null goto label;
 return v;
 }
 private long sizeOfArray(java.lang.Object)
@@ -270,15 +238,14 @@
 return v;
 label:
 v = 0;
-goto label;
 label:
+v = staticinvoke <java.lang.reflect.Array: int getLength(java.lang.Object)>(v);
+if v >= v goto label;
 v = v.<psiprobe.tools.Instruments: java.util.List nextQueue>;
 v = staticinvoke <java.lang.reflect.Array: java.lang.Object get(java.lang.Object,int)>(v, v);
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 v = v + 1;
-label:
-v = staticinvoke <java.lang.reflect.Array: int getLength(java.lang.Object)>(v);
-if v < v goto label;
+goto label;
 label:
 return 0L;
 }
@@ -329,11 +296,15 @@
 public static boolean isInitialized()
 {
 psiprobe.tools.Accessor v;
+boolean v;
 v = <psiprobe.tools.Instruments: psiprobe.tools.Accessor ACCESSOR>;
 if v == null goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 public static java.lang.Object getField(java.lang.Object, java.lang.String)
 {
@@ -369,8 +340,8 @@
 v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field[] getDeclaredFields()>();
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = virtualinvoke v.<java.lang.reflect.Field: java.lang.String getName()>();
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
@@ -378,8 +349,8 @@
 return v;
 label:
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 v = virtualinvoke v.<java.lang.Class: java.lang.Class getSuperclass()>();
 if v == null goto label;
 v = staticinvoke <psiprobe.tools.Instruments: java.lang.reflect.Field findField(java.lang.Class,java.lang.String)>(v, v);
@@ -387,4 +358,37 @@
 label:
 return null;
 }
+static void <clinit>()
+{
+long v;
+psiprobe.tools.SimpleAccessor v;
+java.lang.String v, v, v, v;
+boolean v, v, v;
+v = new psiprobe.tools.SimpleAccessor;
+specialinvoke v.<psiprobe.tools.SimpleAccessor: void <init>()>();
+<psiprobe.tools.Instruments: psiprobe.tools.Accessor ACCESSOR> = v;
+v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("psiprobe.intruments.ignoreNIO");
+v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("sun.arch.data.model");
+if v == null goto label;
+v = "true";
+v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
+if v == 0 goto label;
+label:
+v = 1;
+goto label;
+label:
+v = 0;
+label:
+<psiprobe.tools.Instruments: boolean IGNORE_NIO> = v;
+v = "64";
+v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
+if v == 0 goto label;
+v = 8L;
+goto label;
+label:
+v = 4L;
+label:
+<psiprobe.tools.Instruments: long SIZE_REFERENCE> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.JmxTools.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.JmxTools.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.JmxTools.jimple	2025-03-13 18:06:11.391879764 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.JmxTools.jimple	2025-03-13 18:06:17.103789900 +0000
@@ -1,13 +1,6 @@
 public final class psiprobe.tools.JmxTools extends java.lang.Object
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/JmxTools;");
-<psiprobe.tools.JmxTools: org.slf4j.Logger logger> = v;
-return;
-}
 private void <init>()
 {
 psiprobe.tools.JmxTools v;
@@ -198,7 +191,7 @@
 javax.management.openmbean.CompositeData v;
 java.lang.Object v;
 java.lang.String v;
-boolean v, v;
+boolean v, v, v;
 v := @parameter: javax.management.openmbean.CompositeData;
 v := @parameter: java.lang.String;
 v = interfaceinvoke v.<javax.management.openmbean.CompositeData: java.lang.Object get(java.lang.String)>(v);
@@ -206,9 +199,12 @@
 if v == 0 goto label;
 v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 public static boolean hasAttribute(javax.management.MBeanServer, javax.management.ObjectName, java.lang.String) throws java.lang.Exception
 {
@@ -227,8 +223,8 @@
 v = virtualinvoke v.<javax.management.MBeanInfo: javax.management.MBeanAttributeInfo[] getAttributes()>();
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = virtualinvoke v.<javax.management.MBeanAttributeInfo: java.lang.String getName()>();
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
@@ -236,8 +232,15 @@
 return 1;
 label:
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 return 0;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/JmxTools;");
+<psiprobe.tools.JmxTools: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.LogOutputStream.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.LogOutputStream.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.LogOutputStream.jimple	2025-03-13 18:06:11.627876050 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.LogOutputStream.jimple	2025-03-13 18:06:17.351785998 +0000
@@ -11,13 +11,6 @@
 private final org.slf4j.Logger logger;
 private final int level;
 private final java.lang.StringBuilder buf;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/LogOutputStream;");
-<psiprobe.tools.LogOutputStream: org.slf4j.Logger INTERNAL_LOGGER> = v;
-return;
-}
 private void <init>(org.slf4j.Logger, int)
 {
 org.slf4j.Logger v;
@@ -44,8 +37,9 @@
 public static java.io.PrintStream createPrintStream(org.slf4j.Logger, int)
 {
 java.io.PrintStream v;
-java.lang.Throwable v, v, v;
-org.slf4j.Logger v;
+java.lang.Throwable v;
+org.slf4j.Logger v, v;
+java.io.IOException v;
 psiprobe.tools.LogOutputStream v;
 java.nio.charset.Charset v;
 int v;
@@ -66,16 +60,14 @@
 return v;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<psiprobe.tools.LogOutputStream: void close()>();
-label:
 throw v;
 label:
 v := @caughtexception;
-v = v;
-throw v;
-catch java.lang.Throwable from label to label with label;
+v = <psiprobe.tools.LogOutputStream: org.slf4j.Logger INTERNAL_LOGGER>;
+interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("", v);
+return null;
 catch java.lang.Throwable from label to label with label;
+catch java.io.IOException from label to label with label;
 }
 public void flush()
 {
@@ -213,4 +205,11 @@
 label:
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/LogOutputStream;");
+<psiprobe.tools.LogOutputStream: org.slf4j.Logger INTERNAL_LOGGER> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.Mailer.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.Mailer.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.Mailer.jimple	2025-03-13 18:06:11.319880897 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.Mailer.jimple	2025-03-13 18:06:17.027791096 +0000
@@ -6,13 +6,6 @@
 private java.lang.String smtp;
 private java.lang.String defaultTo;
 private java.lang.String subjectPrefix;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/Mailer;");
-<psiprobe.tools.Mailer: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.tools.Mailer v;
@@ -151,9 +144,6 @@
 goto label;
 label:
 v := @caughtexception;
-if v == null goto label;
-virtualinvoke v.<java.io.PrintStream: void close()>();
-label:
 throw v;
 label:
 return;
@@ -163,14 +153,13 @@
 {
 boolean v, v;
 javax.mail.internet.MimeMultipart v;
-java.lang.StringBuilder v;
 psiprobe.tools.MailMessage v;
 javax.mail.internet.InternetAddress[] v, v, v;
 javax.mail.internet.MimeBodyPart v, v;
 java.lang.String[] v, v, v;
 javax.mail.internet.InternetAddress v;
 int v, v, v;
-java.lang.String v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v, v, v;
 javax.mail.internet.MimeMessage v;
 javax.activation.DataSource[] v;
 psiprobe.tools.Mailer v;
@@ -187,23 +176,21 @@
 v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
 if v != 0 goto label;
 v = v.<psiprobe.tools.Mailer: java.lang.String subjectPrefix>;
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>(" \u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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");
 label:
 v = new javax.mail.internet.MimeMultipart;
 specialinvoke v.<javax.mail.internet.MimeMultipart: void <init>(java.lang.String)>("related");
 v = virtualinvoke v.<psiprobe.tools.MailMessage: javax.activation.DataSource[] getAttachmentsArray()>();
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = staticinvoke <psiprobe.tools.Mailer: javax.mail.internet.MimeBodyPart createAttachmentPart(javax.activation.DataSource)>(v);
 virtualinvoke v.<javax.mail.internet.MimeMultipart: void addBodyPart(javax.mail.BodyPart)>(v);
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 v = virtualinvoke v.<psiprobe.tools.MailMessage: java.lang.String getBody()>();
 v = virtualinvoke v.<psiprobe.tools.MailMessage: boolean isBodyHtml()>();
 v = staticinvoke <psiprobe.tools.Mailer: javax.mail.internet.MimeBodyPart createMessageBodyPart(java.lang.String,boolean)>(v, v);
@@ -256,15 +243,15 @@
 specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = staticinvoke <javax.mail.internet.InternetAddress: javax.mail.internet.InternetAddress[] parse(java.lang.String)>(v);
 v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
 interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 v = interfaceinvoke v.<java.util.List: int size()>();
 v = newarray (javax.mail.internet.InternetAddress)[v];
 v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
@@ -306,4 +293,11 @@
 virtualinvoke v.<javax.mail.internet.MimeBodyPart: void setHeader(java.lang.String,java.lang.String)>("content-type", v);
 return v;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/Mailer;");
+<psiprobe.tools.Mailer: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.ObjectWrapper.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.ObjectWrapper.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.ObjectWrapper.jimple	2025-03-13 18:06:11.627876050 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.ObjectWrapper.jimple	2025-03-13 18:06:17.351785998 +0000
@@ -13,17 +13,21 @@
 }
 public boolean equals(java.lang.Object)
 {
+psiprobe.tools.ObjectWrapper v;
 java.lang.Class v, v;
 java.lang.Object v, v, v, v;
-psiprobe.tools.ObjectWrapper v;
+boolean v, v;
 v := @this: psiprobe.tools.ObjectWrapper;
 v := @parameter: java.lang.Object;
 v = v.<psiprobe.tools.ObjectWrapper: java.lang.Object wrappedObject>;
 if v != null goto label;
 if v != null goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 label:
 v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
 v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
@@ -33,9 +37,12 @@
 v = v.<psiprobe.tools.ObjectWrapper: java.lang.Object wrappedObject>;
 v = v.<psiprobe.tools.ObjectWrapper: java.lang.Object wrappedObject>;
 if v != v goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 public int hashCode()
 {
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.SecurityUtils.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.SecurityUtils.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.SecurityUtils.jimple	2025-03-13 18:06:11.479878378 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.SecurityUtils.jimple	2025-03-13 18:06:17.191788514 +0000
@@ -21,16 +21,16 @@
 v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(",");
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 v = staticinvoke <psiprobe.tools.SecurityUtils: boolean userHasRole(java.lang.String)>(v);
 if v == 0 goto label;
 return 1;
 label:
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 return 0;
 }
 private static boolean userHasRole(java.lang.String)
@@ -48,17 +48,14 @@
 v = interfaceinvoke v.<org.springframework.security.core.Authentication: java.util.Collection getAuthorities()>();
 v = 0;
 v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
-goto label;
 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.<org.springframework.security.core.GrantedAuthority: java.lang.String getAuthority()>();
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
 if v == 0 goto label;
 v = 1;
-goto label;
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 label:
 return v;
 }
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.SimpleAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.SimpleAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.SimpleAccessor.jimple	2025-03-13 18:06:11.627876050 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.SimpleAccessor.jimple	2025-03-13 18:06:17.351785998 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.tools.SimpleAccessor extends java.lang.Object implements psiprobe.tools.Accessor
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/SimpleAccessor;");
-<psiprobe.tools.SimpleAccessor: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.tools.SimpleAccessor v;
@@ -111,4 +104,11 @@
 return;
 catch java.lang.SecurityException from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/SimpleAccessor;");
+<psiprobe.tools.SimpleAccessor: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.SizeExpression.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.SizeExpression.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.SizeExpression.jimple	2025-03-13 18:06:11.459878693 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.SizeExpression.jimple	2025-03-13 18:06:17.167788893 +0000
@@ -17,17 +17,15 @@
 }
 public static long parse(java.lang.String)
 {
+char v;
+java.lang.NumberFormatException v;
 java.util.regex.Matcher v;
 java.lang.String v, v, v, v, v, v;
+java.util.regex.Pattern v;
 boolean v, v;
 double v, v, v;
-char v;
-java.lang.NumberFormatException v;
-java.lang.StringBuilder v, v;
-java.util.regex.Pattern v;
 v := @parameter: java.lang.String;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("(\\d+|\\d*\\.\\d+)\\s*(");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>("[KMGTP]") <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)?(B)?");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>("[KMGTP]") <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[])>("(\\d+|\\d*\\.\\d+)\\s*(\u)?(B)?");
 v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String,int)>(v, 2);
 v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
 v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
@@ -51,20 +49,18 @@
 return v;
 label:
 v = new java.lang.NumberFormatException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Invalid expression format: ");
-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[])>("\u0001");
+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[])>("Invalid expression format: \u0001");
 specialinvoke v.<java.lang.NumberFormatException: void <init>(java.lang.String)>(v);
 throw v;
 }
 public static java.lang.String format(long, int, boolean)
 {
-byte v, v, v, v, v;
-boolean v;
-java.lang.StringBuilder v, v, v, v, v, v;
 long v;
 java.text.NumberFormat v;
+byte v, v, v, v, v;
 int v;
-java.lang.String v, v, v, v, v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v;
+boolean v;
 double v, v, v, v, v, v, v, v, v, v;
 v := @parameter: long;
 v := @parameter: int;
@@ -92,54 +88,42 @@
 if v >= 0 goto label;
 v = v / v;
 v = staticinvoke <psiprobe.tools.SizeExpression: double round(double,int)>(v, v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(char)>(75);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>("\u0001");
+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[])>("K\u0001");
 goto label;
 label:
 v = v cmpg v;
 if v >= 0 goto label;
 v = v / v;
 v = staticinvoke <psiprobe.tools.SizeExpression: double round(double,int)>(v, v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(char)>(77);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>("\u0001");
+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[])>("M\u0001");
 goto label;
 label:
 v = v cmpg v;
 if v >= 0 goto label;
 v = v / v;
 v = staticinvoke <psiprobe.tools.SizeExpression: double round(double,int)>(v, v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(char)>(71);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>("\u0001");
+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[])>("G\u0001");
 goto label;
 label:
 v = v cmpg v;
 if v >= 0 goto label;
 v = v / v;
 v = staticinvoke <psiprobe.tools.SizeExpression: double round(double,int)>(v, v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(char)>(84);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>("\u0001");
+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[])>("T\u0001");
 goto label;
 label:
 v = v / v;
 v = staticinvoke <psiprobe.tools.SizeExpression: double round(double,int)>(v, v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(char)>(80);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>("\u0001");
+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[])>("P\u0001");
 label:
 v = virtualinvoke v.<java.text.NumberFormat: java.lang.String format(double)>(v);
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
 if v == 0 goto label;
 v = " ";
 goto label;
 label:
 v = "";
 label:
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("\u0001\u0001\u0001");
 return v;
 }
 private static double round(double, int)
@@ -161,7 +145,6 @@
 char v, v;
 long v, v, v, v, v, v, v, v;
 java.lang.IllegalArgumentException v;
-java.lang.StringBuilder v;
 java.lang.String v;
 boolean v;
 v := @parameter: char;
@@ -173,12 +156,21 @@
 v = 1000L;
 label:
 v = staticinvoke <java.lang.Character: char toUpperCase(char)>(v);
-lookupswitch(v)
+tableswitch(v)
 {
 case 71: goto label;
+case 72: goto label;
+case 73: goto label;
+case 74: goto label;
 case 75: goto label;
+case 76: goto label;
 case 77: goto label;
+case 78: goto label;
+case 79: goto label;
 case 80: goto label;
+case 81: goto label;
+case 82: goto label;
+case 83: goto label;
 case 84: goto label;
 default: goto label;
 };
@@ -205,8 +197,7 @@
 goto label;
 label:
 v = new java.lang.IllegalArgumentException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Invalid unit prefix: ");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (char)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (char)>(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[])>("Invalid unit prefix: \u0001");
 specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
 throw v;
 label:
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.TimeExpression.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.TimeExpression.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.TimeExpression.jimple	2025-03-13 18:06:11.455878757 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.TimeExpression.jimple	2025-03-13 18:06:17.167788893 +0000
@@ -46,17 +46,16 @@
 {
 long v, v, v, v, v, v, v, v;
 byte v, v, v, v, v, v, v, v, v;
-java.lang.String v, v, v, v, v, v, v;
+java.lang.String v, v, v, v, v, v;
 java.lang.IllegalArgumentException v, v;
-java.lang.StringBuilder v, v, v;
 v := @parameter: long;
 v := @parameter: long;
-goto label;
 label:
+v = v cmp v;
+if v < 0 goto label;
 v = v - v;
+goto label;
 label:
-v = v cmp v;
-if v >= 0 goto label;
 v = 0L;
 v = 0L;
 v = 0L;
@@ -76,8 +75,7 @@
 goto label;
 label:
 v = new java.lang.IllegalArgumentException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Period is too large: ");
-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[])>("\u0001");
+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[])>("Period is too large: \u0001");
 specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -100,8 +98,7 @@
 goto label;
 label:
 v = new java.lang.IllegalArgumentException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Phase is too large: ");
-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[])>("\u0001");
+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[])>("Phase is too large: \u0001");
 specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -115,17 +112,14 @@
 if v != 0 goto label;
 v = staticinvoke <psiprobe.tools.TimeExpression: java.lang.String cronSubexpression(long,long)>(v, v);
 label:
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(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 \u \u \u \u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, 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 \u \u \u \u \u0001");
 return v;
 }
 private static java.lang.String cronSubexpression(long, long)
 {
-long v, v;
 byte v, v, v;
-java.lang.StringBuilder v;
-java.lang.String v, v, v;
+long v, v;
+java.lang.String v, v;
 v := @parameter: long;
 v := @parameter: long;
 v = v cmp 0L;
@@ -139,9 +133,7 @@
 if v != 0 goto label;
 return "*";
 label:
-v = staticinvoke <java.lang.String: java.lang.String valueOf(long)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(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[])>("/\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long)>(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[])>("\u0001/\u0001");
 return v;
 }
 public static long inSeconds(java.lang.String)
@@ -153,7 +145,6 @@
 boolean v, v;
 char v;
 java.lang.IllegalArgumentException v, v, v;
-java.lang.StringBuilder v, v, v;
 v := @parameter: java.lang.String;
 if v == null goto label;
 v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
@@ -170,8 +161,7 @@
 v = v cmp 0L;
 if v != 0 goto label;
 v = new java.lang.IllegalArgumentException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Invalid unit in expression: ");
-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[])>("\u0001");
+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[])>("Invalid unit in expression: \u0001");
 specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -182,8 +172,7 @@
 v = v cmp 0L;
 if v >= 0 goto label;
 v = new java.lang.IllegalArgumentException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Invalid value in expression: ");
-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[])>("\u0001");
+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[])>("Invalid value in expression: \u0001");
 specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -191,15 +180,13 @@
 return v;
 label:
 v = new java.lang.IllegalArgumentException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Invalid expression format: ");
-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[])>("\u0001");
+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[])>("Invalid expression format: \u0001");
 specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
 throw v;
 }
 private static int multiplier(char)
 {
 char v;
-java.lang.StringBuilder v;
 java.lang.String v;
 java.lang.IllegalArgumentException v;
 v := @parameter: char;
@@ -218,8 +205,7 @@
 return 3600;
 label:
 v = new java.lang.IllegalArgumentException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Invalid unit: ");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (char)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (char)>(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[])>("Invalid unit: \u0001");
 specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
 throw v;
 }
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.UpdateCommitLock.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.UpdateCommitLock.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.UpdateCommitLock.jimple	2025-03-13 18:06:11.359880267 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.UpdateCommitLock.jimple	2025-03-13 18:06:17.067790466 +0000
@@ -15,14 +15,15 @@
 int v, v, v, v;
 psiprobe.tools.UpdateCommitLock v;
 v := @this: psiprobe.tools.UpdateCommitLock;
-goto label;
-label:
-virtualinvoke v.<java.lang.Object: void wait()>();
 label:
 v = v.<psiprobe.tools.UpdateCommitLock: int commitCount>;
 if v > 0 goto label;
 v = v.<psiprobe.tools.UpdateCommitLock: int commitRequests>;
-if v > 0 goto label;
+if v <= 0 goto label;
+label:
+virtualinvoke v.<java.lang.Object: void wait()>();
+goto label;
+label:
 v = v.<psiprobe.tools.UpdateCommitLock: int updateCount>;
 v = v + 1;
 v.<psiprobe.tools.UpdateCommitLock: int updateCount> = v;
@@ -47,14 +48,15 @@
 v = v.<psiprobe.tools.UpdateCommitLock: int commitRequests>;
 v = v + 1;
 v.<psiprobe.tools.UpdateCommitLock: int commitRequests> = v;
-goto label;
-label:
-virtualinvoke v.<java.lang.Object: void wait()>();
 label:
 v = v.<psiprobe.tools.UpdateCommitLock: int updateCount>;
 if v > 0 goto label;
 v = v.<psiprobe.tools.UpdateCommitLock: int commitCount>;
-if v > 0 goto label;
+if v <= 0 goto label;
+label:
+virtualinvoke v.<java.lang.Object: void wait()>();
+goto label;
+label:
 v = v.<psiprobe.tools.UpdateCommitLock: int commitRequests>;
 v = v - 1;
 v.<psiprobe.tools.UpdateCommitLock: int commitRequests> = v;
Only in results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar: psiprobe.tools.Whois$1.jimple
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.Whois.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.Whois.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.Whois.jimple	2025-03-13 18:06:11.471878505 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.Whois.jimple	2025-03-13 18:06:17.179788704 +0000
@@ -1,13 +1,6 @@
 public final class psiprobe.tools.Whois extends java.lang.Object
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/Whois;");
-<psiprobe.tools.Whois: org.slf4j.Logger logger> = v;
-return;
-}
 private void <init>()
 {
 psiprobe.tools.Whois v;
@@ -47,7 +40,7 @@
 boolean v, v, v;
 java.lang.StringBuilder v, v;
 psiprobe.tools.Whois$Response v, v, v;
-java.lang.Throwable v, v, v, v;
+java.lang.Throwable v, v, v;
 java.net.Socket v;
 long v;
 java.nio.charset.Charset v, v;
@@ -70,11 +63,10 @@
 return null;
 label:
 v = new psiprobe.tools.Whois$Response;
-specialinvoke v.<psiprobe.tools.Whois$Response: void <init>(psiprobe.tools.Whois$Response)>(null);
+specialinvoke v.<psiprobe.tools.Whois$Response: void <init>()>();
 v = v;
 v.<psiprobe.tools.Whois$Response: java.lang.String server> = v;
 v.<psiprobe.tools.Whois$Response: int port> = v;
-v = null;
 v = staticinvoke <psiprobe.tools.AsyncSocketFactory: java.net.Socket createSocket(java.lang.String,int,long)>(v, v, v);
 label:
 v = new java.io.PrintStream;
@@ -93,8 +85,9 @@
 virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
 v = new java.lang.StringBuilder;
 specialinvoke v.<java.lang.StringBuilder: void <init>()>();
-goto label;
 label:
+v = virtualinvoke v.<java.io.BufferedReader: java.lang.String readLine()>();
+if v == null goto label;
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
 virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
 v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
@@ -110,9 +103,8 @@
 v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
 v = v.<psiprobe.tools.Whois$Response: java.util.Map data>;
 interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
+goto label;
 label:
-v = virtualinvoke v.<java.io.BufferedReader: java.lang.String readLine()>();
-if v != null goto label;
 v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
 v.<psiprobe.tools.Whois$Response: java.lang.String summary> = v;
 v = null;
@@ -150,42 +142,18 @@
 goto label;
 label:
 v := @caughtexception;
-v = v;
-if v == null goto label;
-virtualinvoke v.<java.io.BufferedReader: void close()>();
-label:
 throw v;
 label:
 virtualinvoke v.<java.io.PrintStream: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v != null goto label;
-v = v;
-goto label;
-label:
-if v == v goto label;
-virtualinvoke v.<java.lang.Throwable: void addSuppressed(java.lang.Throwable)>(v);
-label:
-if v == null goto label;
-virtualinvoke v.<java.io.PrintStream: void close()>();
-label:
 throw v;
 label:
 virtualinvoke v.<java.net.Socket: void close()>();
 goto label;
 label:
 v := @caughtexception;
-if v != null goto label;
-v = v;
-goto label;
-label:
-if v == v goto label;
-virtualinvoke v.<java.lang.Throwable: void addSuppressed(java.lang.Throwable)>(v);
-label:
-if v == null goto label;
-virtualinvoke v.<java.net.Socket: void close()>();
-label:
 throw v;
 label:
 return v;
@@ -194,4 +162,11 @@
 catch java.lang.Throwable from label to label with label;
 catch java.lang.Throwable from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/Whois;");
+<psiprobe.tools.Whois: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.DefaultAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.DefaultAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.DefaultAccessor.jimple	2025-03-13 18:06:11.375880016 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.DefaultAccessor.jimple	2025-03-13 18:06:17.083790215 +0000
@@ -3,13 +3,6 @@
 protected static final org.slf4j.Logger logger;
 private psiprobe.model.Application application;
 private java.lang.Object target;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/logging/DefaultAccessor;");
-<psiprobe.tools.logging.DefaultAccessor: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>()
 {
 psiprobe.tools.logging.DefaultAccessor v;
@@ -98,12 +91,12 @@
 interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Could not access property \'{}\' of object \'{}\'", v, v);
 return v;
 catch java.lang.IllegalArgumentException from label to label with label;
-catch java.lang.IllegalArgumentException from label to label with label;
-catch java.lang.IllegalAccessException from label to label with label;
 catch java.lang.IllegalAccessException from label to label with label;
 catch java.lang.reflect.InvocationTargetException from label to label with label;
-catch java.lang.reflect.InvocationTargetException from label to label with label;
 catch java.lang.NoSuchMethodException from label to label with label;
+catch java.lang.IllegalArgumentException from label to label with label;
+catch java.lang.IllegalAccessException from label to label with label;
+catch java.lang.reflect.InvocationTargetException from label to label with label;
 catch java.lang.NoSuchMethodException from label to label with label;
 }
 protected java.lang.Object getProperty(java.lang.Object, java.lang.String, java.lang.Object)
@@ -148,10 +141,17 @@
 interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("", v);
 return v;
 catch java.lang.NoSuchMethodException from label to label with label;
-catch java.lang.NoSuchMethodException from label to label with label;
-catch java.lang.IllegalAccessException from label to label with label;
 catch java.lang.IllegalAccessException from label to label with label;
 catch java.lang.reflect.InvocationTargetException from label to label with label;
+catch java.lang.NoSuchMethodException from label to label with label;
+catch java.lang.IllegalAccessException from label to label with label;
 catch java.lang.reflect.InvocationTargetException from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/logging/DefaultAccessor;");
+<psiprobe.tools.logging.DefaultAccessor: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.catalina.CatalinaLoggerAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.catalina.CatalinaLoggerAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.catalina.CatalinaLoggerAccessor.jimple	2025-03-13 18:06:11.407879511 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.catalina.CatalinaLoggerAccessor.jimple	2025-03-13 18:06:17.115789710 +0000
@@ -31,11 +31,10 @@
 psiprobe.tools.logging.catalina.CatalinaLoggerAccessor v;
 java.text.SimpleDateFormat v;
 java.lang.String[] v;
-java.lang.String v, v, v, v, v, v;
+java.lang.String v, v, v, v, v;
 boolean v, v, v;
 java.io.File v, v, v;
 java.lang.Object v, v, v, v, v, v, v, v;
-java.lang.StringBuilder v;
 v := @this: psiprobe.tools.logging.catalina.CatalinaLoggerAccessor;
 v = virtualinvoke v.<psiprobe.tools.logging.catalina.CatalinaLoggerAccessor: java.lang.Object getTarget()>();
 v = virtualinvoke v.<psiprobe.tools.logging.catalina.CatalinaLoggerAccessor: java.lang.Object invokeMethod(java.lang.Object,java.lang.String,java.lang.Object,java.lang.Object)>(v, "getDirectory", null, null);
@@ -65,9 +64,7 @@
 v = specialinvoke v.<psiprobe.tools.logging.catalina.CatalinaLoggerAccessor: boolean notNull(java.lang.String[])>(v);
 if v == 0 goto label;
 v = new java.io.File;
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("\u0001\u0001\u0001");
 specialinvoke v.<java.io.File: void <init>(java.lang.String,java.lang.String)>(v, v);
 goto label;
 label:
@@ -95,15 +92,15 @@
 v := @parameter: java.lang.String[];
 v = lengthof v;
 v = 0;
-goto label;
 label:
+if v >= v goto label;
 v = v[v];
 if v != null goto label;
 return 0;
 label:
 v = v + 1;
+goto label;
 label:
-if v < v goto label;
 return 1;
 }
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.commons.AbstractLoggerAccessorVisitor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.commons.AbstractLoggerAccessorVisitor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.commons.AbstractLoggerAccessorVisitor.jimple	2025-03-13 18:06:11.631875988 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.commons.AbstractLoggerAccessorVisitor.jimple	2025-03-13 18:06:17.355785935 +0000
@@ -30,6 +30,7 @@
 if v != null goto label;
 return;
 label:
+if v == null goto label;
 v = new psiprobe.tools.logging.log4j.Log4JLoggerAccessor;
 specialinvoke v.<psiprobe.tools.logging.log4j.Log4JLoggerAccessor: void <init>()>();
 virtualinvoke v.<psiprobe.tools.logging.log4j.Log4JLoggerAccessor: void setTarget(java.lang.Object)>(v);
@@ -38,8 +39,6 @@
 virtualinvoke v.<psiprobe.tools.logging.log4j.Log4JLoggerAccessor: void setContext(boolean)>(1);
 virtualinvoke v.<psiprobe.tools.logging.commons.AbstractLoggerAccessorVisitor: void visit(psiprobe.tools.logging.log4j.Log4JLoggerAccessor)>(v);
 v = virtualinvoke v.<psiprobe.tools.logging.commons.AbstractLoggerAccessorVisitor: java.lang.Object invokeMethod(java.lang.Object,java.lang.String,java.lang.Object,java.lang.Object)>(v, "getParent", null, null);
-label:
-if v != null goto label;
 goto label;
 label:
 v = "java.util.logging.Logger";
@@ -47,8 +46,8 @@
 v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
 if v == 0 goto label;
-goto label;
 label:
+if v == null goto label;
 v = new psiprobe.tools.logging.jdk.Jdk14LoggerAccessor;
 specialinvoke v.<psiprobe.tools.logging.jdk.Jdk14LoggerAccessor: void <init>()>();
 virtualinvoke v.<psiprobe.tools.logging.jdk.Jdk14LoggerAccessor: void setTarget(java.lang.Object)>(v);
@@ -57,8 +56,7 @@
 virtualinvoke v.<psiprobe.tools.logging.jdk.Jdk14LoggerAccessor: void setContext(boolean)>(1);
 virtualinvoke v.<psiprobe.tools.logging.commons.AbstractLoggerAccessorVisitor: void visit(psiprobe.tools.logging.jdk.Jdk14LoggerAccessor)>(v);
 v = virtualinvoke v.<psiprobe.tools.logging.commons.AbstractLoggerAccessorVisitor: java.lang.Object invokeMethod(java.lang.Object,java.lang.String,java.lang.Object,java.lang.Object)>(v, "getParent", null, null);
-label:
-if v != null goto label;
+goto label;
 label:
 return;
 }
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.jdk.Jdk14LoggerAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.jdk.Jdk14LoggerAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.jdk.Jdk14LoggerAccessor.jimple	2025-03-13 18:06:11.407879511 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.jdk.Jdk14LoggerAccessor.jimple	2025-03-13 18:06:17.115789710 +0000
@@ -26,18 +26,15 @@
 v = virtualinvoke v.<psiprobe.tools.logging.jdk.Jdk14LoggerAccessor: java.lang.Object getTarget()>();
 v = staticinvoke <org.apache.commons.lang.reflect.MethodUtils: java.lang.Object invokeMethod(java.lang.Object,java.lang.String)>(v, "getHandlers");
 v = 0;
-goto label;
 label:
+v = lengthof v;
+if v >= v goto label;
 v = v[v];
 v = specialinvoke v.<psiprobe.tools.logging.jdk.Jdk14LoggerAccessor: psiprobe.tools.logging.jdk.Jdk14HandlerAccessor wrapHandler(java.lang.Object,int)>(v, v);
 if v == null goto label;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
 label:
 v = v + 1;
-label:
-v = lengthof v;
-if v < v goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -71,17 +68,21 @@
 {
 psiprobe.tools.logging.jdk.Jdk14LoggerAccessor v;
 java.lang.String v, v;
-boolean v, v;
+boolean v, v, v;
 v := @this: psiprobe.tools.logging.jdk.Jdk14LoggerAccessor;
 v = "";
 v = virtualinvoke v.<psiprobe.tools.logging.jdk.Jdk14LoggerAccessor: java.lang.String getName()>();
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
 if v != 0 goto label;
 v = virtualinvoke v.<psiprobe.tools.logging.jdk.Jdk14LoggerAccessor: boolean isJuliRoot()>();
-if v != 0 goto label;
-return 0;
+if v == 0 goto label;
+label:
+v = 1;
+goto label;
 label:
-return 1;
+v = 0;
+label:
+return v;
 }
 public boolean isJuliRoot()
 {
@@ -171,14 +172,14 @@
 label:
 v = null;
 v = virtualinvoke v.<psiprobe.tools.logging.jdk.Jdk14LoggerAccessor: java.lang.Object getTarget()>();
-goto label;
 label:
+if v != null goto label;
+if v == null goto label;
 v = specialinvoke v.<psiprobe.tools.logging.jdk.Jdk14LoggerAccessor: java.lang.Object getLevelInternal(java.lang.Object)>(v);
 v = staticinvoke <org.apache.commons.lang.reflect.MethodUtils: java.lang.Object invokeMethod(java.lang.Object,java.lang.String)>(v, "getParent");
+goto label;
 label:
 if v != null goto label;
-if v != null goto label;
-if v != null goto label;
 v = virtualinvoke v.<psiprobe.tools.logging.jdk.Jdk14LoggerAccessor: boolean isJuliRoot()>();
 if v == 0 goto label;
 label:
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.jdk.Jdk14ManagerAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.jdk.Jdk14ManagerAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.jdk.Jdk14ManagerAccessor.jimple	2025-03-13 18:06:11.419879323 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.jdk.Jdk14ManagerAccessor.jimple	2025-03-13 18:06:17.127789522 +0000
@@ -8,9 +8,8 @@
 java.lang.NullPointerException v;
 java.lang.Class v;
 java.lang.Object v;
-java.lang.StringBuilder v;
 java.lang.ClassLoader v;
-java.lang.String v, v, v;
+java.lang.String v, v;
 java.lang.reflect.Method v;
 v := @this: psiprobe.tools.logging.jdk.Jdk14ManagerAccessor;
 v := @parameter: java.lang.ClassLoader;
@@ -23,9 +22,7 @@
 if v != null goto label;
 v = new java.lang.NullPointerException;
 v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>(".getLogManager() returned null");
+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[])>("\u.getLogManager() returned null");
 specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -46,13 +43,12 @@
 psiprobe.tools.logging.jdk.Jdk14LoggerAccessor v;
 java.lang.NullPointerException v;
 psiprobe.model.Application v;
-java.lang.String v, v, v, v, v;
+java.lang.String v, v, v, v;
 org.slf4j.Logger v;
 psiprobe.tools.logging.jdk.Jdk14ManagerAccessor v;
 java.lang.Exception v;
 java.lang.Class v, v;
 java.lang.Object v, v, v, v;
-java.lang.StringBuilder v;
 v := @this: psiprobe.tools.logging.jdk.Jdk14ManagerAccessor;
 v := @parameter: java.lang.String;
 label:
@@ -65,9 +61,7 @@
 v = virtualinvoke v.<psiprobe.tools.logging.jdk.Jdk14ManagerAccessor: java.lang.Object getTarget()>();
 v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
 v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>("#getLogger(\"\u0001\") returned null");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001#getLogger(\"\u0001\") returned null");
 specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -113,17 +107,14 @@
 v = staticinvoke <org.apache.commons.lang.reflect.MethodUtils: java.lang.Object invokeMethod(java.lang.Object,java.lang.String)>(v, "getLoggerNames");
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.tools.logging.jdk.Jdk14ManagerAccessor: psiprobe.tools.logging.jdk.Jdk14LoggerAccessor getLogger(java.lang.String)>(v);
 if v == null goto label;
 v = virtualinvoke v.<psiprobe.tools.logging.jdk.Jdk14LoggerAccessor: java.util.List getHandlers()>();
 interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.jdk.JuliHandlerAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.jdk.JuliHandlerAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.jdk.JuliHandlerAccessor.jimple	2025-03-13 18:06:11.631875988 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.jdk.JuliHandlerAccessor.jimple	2025-03-13 18:06:17.359785871 +0000
@@ -12,8 +12,7 @@
 psiprobe.tools.logging.jdk.JuliHandlerAccessor v;
 java.io.File v, v;
 java.lang.Object v, v, v, v, v, v, v, v;
-java.lang.StringBuilder v;
-java.lang.String v, v;
+java.lang.String v;
 v := @this: psiprobe.tools.logging.jdk.JuliHandlerAccessor;
 v = virtualinvoke v.<psiprobe.tools.logging.jdk.JuliHandlerAccessor: java.lang.Object getTarget()>();
 v = staticinvoke <psiprobe.tools.Instruments: java.lang.Object getField(java.lang.Object,java.lang.String)>(v, "directory");
@@ -29,9 +28,7 @@
 if v == null goto label;
 v = new java.io.File;
 v = v;
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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[])>("\u0001\u0001\u0001");
 specialinvoke v.<java.io.File: void <init>(java.lang.String,java.lang.String)>(v, v);
 goto label;
 label:
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j.Log4JLoggerAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j.Log4JLoggerAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j.Log4JLoggerAccessor.jimple	2025-03-13 18:06:11.423879259 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j.Log4JLoggerAccessor.jimple	2025-03-13 18:06:17.131789459 +0000
@@ -28,16 +28,13 @@
 v = staticinvoke <org.apache.commons.lang.reflect.MethodUtils: java.lang.Object invokeMethod(java.lang.Object,java.lang.String)>(v, "getAllAppenders");
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = specialinvoke v.<psiprobe.tools.logging.log4j.Log4JLoggerAccessor: psiprobe.tools.logging.log4j.Log4JAppenderAccessor wrapAppender(java.lang.Object)>(v);
 if v == null goto label;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -101,7 +98,7 @@
 {
 psiprobe.tools.logging.log4j.Log4JLoggerAccessor v;
 java.lang.String v, v, v, v;
-boolean v, v;
+boolean v, v, v;
 v := @this: psiprobe.tools.logging.log4j.Log4JLoggerAccessor;
 v = "root";
 v = virtualinvoke v.<psiprobe.tools.logging.log4j.Log4JLoggerAccessor: java.lang.String getName()>();
@@ -111,9 +108,12 @@
 v = virtualinvoke v.<psiprobe.tools.logging.log4j.Log4JLoggerAccessor: java.lang.String getTargetClass()>();
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
 if v == 0 goto label;
-return 1;
+v = 1;
+goto label;
 label:
-return 0;
+v = 0;
+label:
+return v;
 }
 public java.lang.String getName()
 {
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j.Log4JManagerAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j.Log4JManagerAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j.Log4JManagerAccessor.jimple	2025-03-13 18:06:11.439879008 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j.Log4JManagerAccessor.jimple	2025-03-13 18:06:17.147789207 +0000
@@ -29,7 +29,7 @@
 java.lang.NullPointerException v;
 psiprobe.model.Application v;
 psiprobe.tools.logging.log4j.Log4JManagerAccessor v;
-java.lang.String v, v, v, v;
+java.lang.String v, v, v;
 java.lang.reflect.Method v;
 org.slf4j.Logger v;
 java.lang.Class[] v;
@@ -37,7 +37,6 @@
 psiprobe.tools.logging.log4j.Log4JLoggerAccessor v;
 java.lang.Class v, v;
 java.lang.Object v, v, v, v;
-java.lang.StringBuilder v;
 v := @this: psiprobe.tools.logging.log4j.Log4JManagerAccessor;
 label:
 v = virtualinvoke v.<psiprobe.tools.logging.log4j.Log4JManagerAccessor: java.lang.Object getTarget()>();
@@ -50,9 +49,7 @@
 v = virtualinvoke v.<psiprobe.tools.logging.log4j.Log4JManagerAccessor: java.lang.Object getTarget()>();
 v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
 v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>("#getRootLogger() returned null");
+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[])>("\u0001#getRootLogger() returned null");
 specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -79,7 +76,7 @@
 java.lang.NullPointerException v;
 psiprobe.model.Application v;
 psiprobe.tools.logging.log4j.Log4JManagerAccessor v;
-java.lang.String v, v, v, v, v;
+java.lang.String v, v, v, v;
 java.lang.reflect.Method v;
 org.slf4j.Logger v;
 java.lang.Class[] v;
@@ -87,7 +84,6 @@
 psiprobe.tools.logging.log4j.Log4JLoggerAccessor v;
 java.lang.Class v, v;
 java.lang.Object v, v, v, v;
-java.lang.StringBuilder v;
 v := @this: psiprobe.tools.logging.log4j.Log4JManagerAccessor;
 v := @parameter: java.lang.String;
 label:
@@ -103,9 +99,7 @@
 v = virtualinvoke v.<psiprobe.tools.logging.log4j.Log4JManagerAccessor: java.lang.Object getTarget()>();
 v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
 v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-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[])>("#getLogger(\"\u0001\") returned null");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001#getLogger(\"\u0001\") returned null");
 specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -161,8 +155,9 @@
 v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(null, v);
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = new psiprobe.tools.logging.log4j.Log4JLoggerAccessor;
 specialinvoke v.<psiprobe.tools.logging.log4j.Log4JLoggerAccessor: void <init>()>();
@@ -171,10 +166,6 @@
 virtualinvoke v.<psiprobe.tools.logging.log4j.Log4JLoggerAccessor: void setApplication(psiprobe.model.Application)>(v);
 v = virtualinvoke v.<psiprobe.tools.logging.log4j.Log4JLoggerAccessor: java.util.List getAppenders()>();
 interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j2.Log4J2AppenderAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j2.Log4J2AppenderAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j2.Log4J2AppenderAccessor.jimple	2025-03-13 18:06:11.435879071 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j2.Log4J2AppenderAccessor.jimple	2025-03-13 18:06:17.147789207 +0000
@@ -93,10 +93,9 @@
 }
 public java.io.File getFile()
 {
-boolean v;
-java.lang.StringBuilder v, v, v, v, v;
 psiprobe.tools.logging.log4j.Log4J2AppenderAccessor v;
 java.lang.String v, v, v, v, v, v, v;
+boolean v;
 java.io.File v, v, v;
 java.lang.Class v;
 java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
@@ -130,37 +129,32 @@
 v = virtualinvoke v.<psiprobe.tools.logging.log4j.Log4J2AppenderAccessor: java.lang.Object getProperty(java.lang.Object,java.lang.String,java.lang.Object,boolean)>(v, "literal", null, 1);
 label:
 v = new java.io.File;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("mailto:");
 v = virtualinvoke v.<psiprobe.tools.logging.log4j.Log4J2AppenderAccessor: java.lang.Object getProperty(java.lang.Object,java.lang.String,java.lang.Object,boolean)>(v, "to", "", 1);
 if v == null goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("&from=");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("&from=\u0001");
 goto label;
 label:
 v = "";
 label:
 if v == null goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("&cc=");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("&cc=\u0001");
 goto label;
 label:
 v = "";
 label:
 if v == null goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("&bcc=");
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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[])>("&bcc=\u0001");
 goto label;
 label:
 v = "";
 label:
 if v == null goto label;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("&subject=");
-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[])>("\u0001");
+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[])>("&subject=\u0001");
 goto label;
 label:
 v = "";
 label:
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, 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[])>("\u0001\u0001\u0001\u0001\u0001");
+v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, 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[])>("mailto:\u0001\u0001\u0001\u0001\u0001");
 specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
 v = v;
 goto label;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j2.Log4J2LoggerConfigAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j2.Log4J2LoggerConfigAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j2.Log4J2LoggerConfigAccessor.jimple	2025-03-13 18:06:11.431879134 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j2.Log4J2LoggerConfigAccessor.jimple	2025-03-13 18:06:17.139789334 +0000
@@ -54,15 +54,14 @@
 v = v.<psiprobe.tools.logging.log4j.Log4J2LoggerConfigAccessor: java.util.Map appenderMap>;
 v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
 v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
-goto label;
 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 = specialinvoke v.<psiprobe.tools.logging.log4j.Log4J2LoggerConfigAccessor: psiprobe.tools.logging.log4j.Log4J2AppenderAccessor wrapAppender(java.lang.Object)>(v);
 if v == null goto label;
 interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
+goto label;
 label:
 return v;
 }
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j2.Log4J2WebLoggerContextUtilsAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j2.Log4J2WebLoggerContextUtilsAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j2.Log4J2WebLoggerContextUtilsAccessor.jimple	2025-03-13 18:06:11.427879198 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.log4j2.Log4J2WebLoggerContextUtilsAccessor.jimple	2025-03-13 18:06:17.135789395 +0000
@@ -1,13 +1,6 @@
 public class psiprobe.tools.logging.log4j.Log4J2WebLoggerContextUtilsAccessor extends psiprobe.tools.logging.DefaultAccessor
 {
 private static final org.slf4j.Logger logger;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/logging/log4j2/Log4J2WebLoggerContextUtilsAccessor;");
-<psiprobe.tools.logging.log4j.Log4J2WebLoggerContextUtilsAccessor: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>(java.lang.ClassLoader) throws java.lang.ClassNotFoundException
 {
 org.slf4j.Logger v, v;
@@ -31,7 +24,7 @@
 java.lang.NullPointerException v;
 psiprobe.model.Application v;
 psiprobe.tools.logging.log4j.Log4J2LoggerContextAccessor v, v;
-java.lang.String v, v, v, v;
+java.lang.String v, v, v;
 java.lang.reflect.Method v;
 org.slf4j.Logger v, v, v, v, v;
 java.lang.Class[] v;
@@ -39,7 +32,6 @@
 psiprobe.tools.logging.log4j.Log4J2WebLoggerContextUtilsAccessor v;
 java.lang.Class v, v;
 java.lang.Object v, v, v, v;
-java.lang.StringBuilder v;
 javax.servlet.ServletContext v;
 v := @this: psiprobe.tools.logging.log4j.Log4J2WebLoggerContextUtilsAccessor;
 v := @parameter: javax.servlet.ServletContext;
@@ -76,9 +68,7 @@
 v = virtualinvoke v.<psiprobe.tools.logging.log4j.Log4J2WebLoggerContextUtilsAccessor: java.lang.Object getTarget()>();
 v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
 v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
-v = staticinvoke <java.lang.String: java.lang.String valueOf(java.lang.Object)>(v);
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>(v);
-v = dynamicinvoke "makeConcatWithConstants" <java.lang.String ()>() <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[])>("#getWebLoggerContext(Ljavax/servlet/ServletContext) returned null");
+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[])>("\u0001#getWebLoggerContext(Ljavax/servlet/ServletContext) returned null");
 specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -105,4 +95,11 @@
 catch java.lang.Exception from label to label with label;
 catch java.lang.Exception from label to label with label;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/logging/log4j2/Log4J2WebLoggerContextUtilsAccessor;");
+<psiprobe.tools.logging.log4j.Log4J2WebLoggerContextUtilsAccessor: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback.LogbackFactoryAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback.LogbackFactoryAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback.LogbackFactoryAccessor.jimple	2025-03-13 18:06:11.443878945 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback.LogbackFactoryAccessor.jimple	2025-03-13 18:06:17.155789081 +0000
@@ -121,8 +121,9 @@
 v = newarray (java.lang.Object)[0];
 v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = new psiprobe.tools.logging.logback.LogbackLoggerAccessor;
 specialinvoke v.<psiprobe.tools.logging.logback.LogbackLoggerAccessor: void <init>()>();
@@ -131,10 +132,6 @@
 virtualinvoke v.<psiprobe.tools.logging.logback.LogbackLoggerAccessor: void setApplication(psiprobe.model.Application)>(v);
 v = virtualinvoke v.<psiprobe.tools.logging.logback.LogbackLoggerAccessor: java.util.List getAppenders()>();
 interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback.LogbackLoggerAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback.LogbackLoggerAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback.LogbackLoggerAccessor.jimple	2025-03-13 18:06:11.431879134 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback.LogbackLoggerAccessor.jimple	2025-03-13 18:06:17.143789271 +0000
@@ -30,26 +30,21 @@
 v = staticinvoke <com.google.common.collect.Iterators: java.util.Enumeration asEnumeration(java.util.Iterator)>(v);
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = specialinvoke v.<psiprobe.tools.logging.logback.LogbackLoggerAccessor: java.util.List getSiftedAppenders(java.lang.Object)>(v);
 if v == null goto label;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 specialinvoke v.<psiprobe.tools.logging.logback.LogbackLoggerAccessor: void wrapAndAddAppender(java.lang.Object,java.util.List)>(v, v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 goto label;
 label:
 specialinvoke v.<psiprobe.tools.logging.logback.LogbackLoggerAccessor: void wrapAndAddAppender(java.lang.Object,java.util.List)>(v, v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -94,8 +89,9 @@
 if v != null goto label;
 v = virtualinvoke v.<psiprobe.tools.logging.logback.LogbackLoggerAccessor: java.util.List getAppenders()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.tools.logging.logback.LogbackAppenderAccessor: java.lang.String getIndex()>();
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
@@ -103,9 +99,6 @@
 label:
 return v;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 v = specialinvoke v.<psiprobe.tools.logging.logback.LogbackLoggerAccessor: psiprobe.tools.logging.logback.LogbackAppenderAccessor wrapAppender(java.lang.Object)>(v);
 label:
 return v;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback13.Logback13FactoryAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback13.Logback13FactoryAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback13.Logback13FactoryAccessor.jimple	2025-03-13 18:06:11.399879638 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback13.Logback13FactoryAccessor.jimple	2025-03-13 18:06:17.107789837 +0000
@@ -131,8 +131,9 @@
 v = newarray (java.lang.Object)[0];
 v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = new psiprobe.tools.logging.logback.Logback13LoggerAccessor;
 specialinvoke v.<psiprobe.tools.logging.logback.Logback13LoggerAccessor: void <init>()>();
@@ -141,10 +142,6 @@
 virtualinvoke v.<psiprobe.tools.logging.logback.Logback13LoggerAccessor: void setApplication(psiprobe.model.Application)>(v);
 v = virtualinvoke v.<psiprobe.tools.logging.logback.Logback13LoggerAccessor: java.util.List getAppenders()>();
 interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback13.Logback13LoggerAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback13.Logback13LoggerAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback13.Logback13LoggerAccessor.jimple	2025-03-13 18:06:11.423879259 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.logback13.Logback13LoggerAccessor.jimple	2025-03-13 18:06:17.131789459 +0000
@@ -29,26 +29,21 @@
 v = staticinvoke <com.google.common.collect.Iterators: java.util.Enumeration asEnumeration(java.util.Iterator)>(v);
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = specialinvoke v.<psiprobe.tools.logging.logback.Logback13LoggerAccessor: java.util.List getSiftedAppenders(java.lang.Object)>(v);
 if v == null goto label;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 specialinvoke v.<psiprobe.tools.logging.logback.Logback13LoggerAccessor: void wrapAndAddAppender(java.lang.Object,java.util.List)>(v, v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 goto label;
 label:
 specialinvoke v.<psiprobe.tools.logging.logback.Logback13LoggerAccessor: void wrapAndAddAppender(java.lang.Object,java.util.List)>(v, v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -84,8 +79,9 @@
 if v != null goto label;
 v = virtualinvoke v.<psiprobe.tools.logging.logback.Logback13LoggerAccessor: java.util.List getAppenders()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.tools.logging.logback.Logback13AppenderAccessor: java.lang.String getIndex()>();
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
@@ -93,9 +89,6 @@
 label:
 return v;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 v = specialinvoke v.<psiprobe.tools.logging.logback.Logback13LoggerAccessor: psiprobe.tools.logging.logback.Logback13AppenderAccessor wrapAppender(java.lang.Object)>(v);
 label:
 return v;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackFactoryAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackFactoryAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackFactoryAccessor.jimple	2025-03-13 18:06:11.423879259 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackFactoryAccessor.jimple	2025-03-13 18:06:17.135789395 +0000
@@ -121,8 +121,9 @@
 v = newarray (java.lang.Object)[0];
 v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = new psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor;
 specialinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor: void <init>()>();
@@ -131,10 +132,6 @@
 virtualinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor: void setApplication(psiprobe.model.Application)>(v);
 v = virtualinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor: java.util.List getAppenders()>();
 interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor.jimple	2025-03-13 18:06:11.443878945 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor.jimple	2025-03-13 18:06:17.151789144 +0000
@@ -30,26 +30,21 @@
 v = staticinvoke <com.google.common.collect.Iterators: java.util.Enumeration asEnumeration(java.util.Iterator)>(v);
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = specialinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor: java.util.List getSiftedAppenders(java.lang.Object)>(v);
 if v == null goto label;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 specialinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor: void wrapAndAddAppender(java.lang.Object,java.util.List)>(v, v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 goto label;
 label:
 specialinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor: void wrapAndAddAppender(java.lang.Object,java.util.List)>(v, v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -96,8 +91,9 @@
 if v != null goto label;
 v = virtualinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor: java.util.List getAppenders()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackAppenderAccessor: java.lang.String getIndex()>();
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
@@ -105,9 +101,6 @@
 label:
 return v;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 v = specialinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackLoggerAccessor: psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogbackAppenderAccessor wrapAppender(java.lang.Object)>(v);
 label:
 return v;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback13.TomcatSlf4jLogback13FactoryAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback13.TomcatSlf4jLogback13FactoryAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback13.TomcatSlf4jLogback13FactoryAccessor.jimple	2025-03-13 18:06:11.419879323 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback13.TomcatSlf4jLogback13FactoryAccessor.jimple	2025-03-13 18:06:17.127789522 +0000
@@ -131,8 +131,9 @@
 v = newarray (java.lang.Object)[0];
 v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = new psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13LoggerAccessor;
 specialinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13LoggerAccessor: void <init>()>();
@@ -141,10 +142,6 @@
 virtualinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13LoggerAccessor: void setApplication(psiprobe.model.Application)>(v);
 v = virtualinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13LoggerAccessor: java.util.List getAppenders()>();
 interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback13.TomcatSlf4jLogback13LoggerAccessor.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback13.TomcatSlf4jLogback13LoggerAccessor.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback13.TomcatSlf4jLogback13LoggerAccessor.jimple	2025-03-13 18:06:11.403879575 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.logging.slf4jlogback13.TomcatSlf4jLogback13LoggerAccessor.jimple	2025-03-13 18:06:17.111789774 +0000
@@ -30,26 +30,21 @@
 v = staticinvoke <com.google.common.collect.Iterators: java.util.Enumeration asEnumeration(java.util.Iterator)>(v);
 v = staticinvoke <java.util.Collections: java.util.ArrayList list(java.util.Enumeration)>(v);
 v = virtualinvoke v.<java.util.ArrayList: java.util.Iterator iterator()>();
-goto label;
 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 = specialinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13LoggerAccessor: java.util.List getSiftedAppenders(java.lang.Object)>(v);
 if v == null goto label;
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 label:
+v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
+if v == 0 goto label;
 v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
 specialinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13LoggerAccessor: void wrapAndAddAppender(java.lang.Object,java.util.List)>(v, v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
 goto label;
 label:
 specialinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13LoggerAccessor: void wrapAndAddAppender(java.lang.Object,java.util.List)>(v, v);
-label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 goto label;
 label:
 v := @caughtexception;
@@ -96,8 +91,9 @@
 if v != null goto label;
 v = virtualinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13LoggerAccessor: java.util.List getAppenders()>();
 v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
-goto label;
 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 = virtualinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13AppenderAccessor: java.lang.String getIndex()>();
 v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
@@ -105,9 +101,6 @@
 label:
 return v;
 label:
-v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
-if v != 0 goto label;
-label:
 v = specialinvoke v.<psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13LoggerAccessor: psiprobe.tools.logging.slf4jlogback.TomcatSlf4jLogback13AppenderAccessor wrapAppender(java.lang.Object)>(v);
 label:
 return v;
diff -u results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.url.UrlParser.jimple results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.url.UrlParser.jimple
--- results/com.github.psi-probe/psi-probe/3.7.0/jnorm/reference/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.url.UrlParser.jimple	2025-03-13 18:06:11.627876050 +0000
+++ results/com.github.psi-probe/psi-probe/3.7.0/jnorm/rebuild/psi-probe-core-3.7.0.jar:psi-probe-core-3.7.0.jar/psiprobe.tools.url.UrlParser.jimple	2025-03-13 18:06:17.355785935 +0000
@@ -5,13 +5,6 @@
 private java.lang.String host;
 private int port;
 private java.lang.String path;
-static void <clinit>()
-{
-org.slf4j.Logger v;
-v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/url/UrlParser;");
-<psiprobe.tools.url.UrlParser: org.slf4j.Logger logger> = v;
-return;
-}
 public void <init>(java.lang.String) throws java.net.MalformedURLException
 {
 int v, v, v, v, v, v, v, v, v;
@@ -20,7 +13,6 @@
 org.slf4j.Logger v;
 java.net.MalformedURLException v, v;
 java.lang.NumberFormatException v;
-java.lang.StringBuilder v;
 v := @this: psiprobe.tools.url.UrlParser;
 v := @parameter: java.lang.String;
 specialinvoke v.<java.lang.Object: void <init>()>();
@@ -67,8 +59,7 @@
 v = <psiprobe.tools.url.UrlParser: org.slf4j.Logger logger>;
 interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("", v);
 v = new java.net.MalformedURLException;
-specialinvoke v.<java.lang.StringBuilder: void <init>(java.lang.String)>("Invalid port ");
-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[])>("\u0001");
+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[])>("Invalid port \u0001");
 specialinvoke v.<java.net.MalformedURLException: void <init>(java.lang.String)>(v);
 throw v;
 label:
@@ -145,4 +136,11 @@
 v.<psiprobe.tools.url.UrlParser: java.lang.String path> = v;
 return;
 }
+static void <clinit>()
+{
+org.slf4j.Logger v;
+v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lpsiprobe/tools/url/UrlParser;");
+<psiprobe.tools.url.UrlParser: org.slf4j.Logger logger> = v;
+return;
+}
 }
\ No newline at end of file
