public final class org.glassfish.grizzly.http.util.StringCache extends java.lang.Object
{
private static final java.util.logging.Logger logger;
static boolean byteEnabled;
static boolean charEnabled;
static int trainThreshold;
static int cacheSize;
static final java.util.HashMap bcStats;
static int bcCount;
static org.glassfish.grizzly.http.util.StringCache$ByteEntry[] bcCache;
static final java.util.HashMap ccStats;
static int ccCount;
static org.glassfish.grizzly.http.util.StringCache$CharEntry[] ccCache;
static int accessCount;
static int hitCount;
public void <init>()
{
org.glassfish.grizzly.http.util.StringCache v;
v := @this: org.glassfish.grizzly.http.util.StringCache;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static int getCacheSize()
{
int v;
v = <org.glassfish.grizzly.http.util.StringCache: int cacheSize>;
return v;
}
public static void setCacheSize(int)
{
int v;
v := @parameter: int;
<org.glassfish.grizzly.http.util.StringCache: int cacheSize> = v;
return;
}
public static boolean getByteEnabled()
{
boolean v;
v = <org.glassfish.grizzly.http.util.StringCache: boolean byteEnabled>;
return v;
}
public static void setByteEnabled(boolean)
{
boolean v;
v := @parameter: boolean;
<org.glassfish.grizzly.http.util.StringCache: boolean byteEnabled> = v;
return;
}
public static boolean getCharEnabled()
{
boolean v;
v = <org.glassfish.grizzly.http.util.StringCache: boolean charEnabled>;
return v;
}
public static void setCharEnabled(boolean)
{
boolean v;
v := @parameter: boolean;
<org.glassfish.grizzly.http.util.StringCache: boolean charEnabled> = v;
return;
}
public static int getTrainThreshold()
{
int v;
v = <org.glassfish.grizzly.http.util.StringCache: int trainThreshold>;
return v;
}
public static void setTrainThreshold(int)
{
int v;
v := @parameter: int;
<org.glassfish.grizzly.http.util.StringCache: int trainThreshold> = v;
return;
}
public static int getAccessCount()
{
int v;
v = <org.glassfish.grizzly.http.util.StringCache: int accessCount>;
return v;
}
public static int getHitCount()
{
int v;
v = <org.glassfish.grizzly.http.util.StringCache: int hitCount>;
return v;
}
public static void reset()
{
java.lang.Throwable v, v;
java.util.HashMap v, v;
<org.glassfish.grizzly.http.util.StringCache: int hitCount> = 0;
<org.glassfish.grizzly.http.util.StringCache: int accessCount> = 0;
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap bcStats>;
entermonitor v;
label:
<org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$ByteEntry[] bcCache> = null;
<org.glassfish.grizzly.http.util.StringCache: int bcCount> = 0;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap ccStats>;
entermonitor v;
label:
<org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$CharEntry[] ccCache> = null;
<org.glassfish.grizzly.http.util.StringCache: int ccCount> = 0;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
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 toString(org.glassfish.grizzly.http.util.ByteChunk)
{
byte[] v, v, v, v, v;
java.lang.Integer v;
java.util.Set v;
java.lang.Throwable v;
long v, v, v;
java.util.ArrayList v;
java.lang.String v, v, v, v;
org.glassfish.grizzly.http.util.ByteChunk v, v;
org.glassfish.grizzly.http.util.StringCache$ByteEntry[] v, v, v;
java.util.TreeMap v;
int[] v;
boolean v, v, v;
java.util.logging.Logger v, v;
java.util.HashMap v, v, v, v, v, v, v;
java.util.logging.Level v, v;
java.nio.charset.Charset 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, v;
java.util.Iterator v;
java.lang.Object v, v, v, v, v, v, v;
org.glassfish.grizzly.http.util.StringCache$ByteEntry v;
v := @parameter: org.glassfish.grizzly.http.util.ByteChunk;
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$ByteEntry[] bcCache>;
if v != null goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: java.lang.String toStringInternal()>();
v = <org.glassfish.grizzly.http.util.StringCache: boolean byteEnabled>;
if v == 0 goto label;
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap bcStats>;
entermonitor v;
label:
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$ByteEntry[] bcCache>;
if v == null goto label;
exitmonitor v;
label:
return v;
label:
v = <org.glassfish.grizzly.http.util.StringCache: int bcCount>;
v = <org.glassfish.grizzly.http.util.StringCache: int trainThreshold>;
if v <= v goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = new java.util.TreeMap;
specialinvoke v.<java.util.TreeMap: void <init>()>();
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap bcStats>;
v = virtualinvoke v.<java.util.HashMap: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap bcStats>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
v = v[0];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = virtualinvoke v.<java.util.TreeMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v;
virtualinvoke v.<java.util.TreeMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap bcStats>;
v = virtualinvoke v.<java.util.HashMap: int size()>();
v = <org.glassfish.grizzly.http.util.StringCache: int cacheSize>;
if v <= v goto label;
v = <org.glassfish.grizzly.http.util.StringCache: int cacheSize>;
label:
v = newarray (org.glassfish.grizzly.http.util.StringCache$ByteEntry)[v];
v = new org.glassfish.grizzly.http.util.ByteChunk;
specialinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: void <init>()>();
v = 0;
label:
if v >= v goto label;
v = virtualinvoke v.<java.util.TreeMap: java.lang.Object lastKey()>();
v = virtualinvoke v.<java.util.TreeMap: java.lang.Object get(java.lang.Object)>(v);
v = 0;
label:
v = virtualinvoke v.<java.util.ArrayList: int size()>();
if v >= v goto label;
if v >= v goto label;
v = virtualinvoke v.<java.util.ArrayList: java.lang.Object get(int)>(v);
v = v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: byte[] name>;
v = v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: byte[] name>;
v = lengthof v;
virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: void setBytes(byte[],int,int)>(v, 0, v);
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: int findClosest(org.glassfish.grizzly.http.util.ByteChunk,org.glassfish.grizzly.http.util.StringCache$ByteEntry[],int)>(v, v, v);
if v != v goto label;
v = v + 1;
v[v] = v;
goto label;
label:
v = v + 1;
v = v + 2;
v = v - v;
v = v - 1;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
v = v + 1;
v[v] = v;
label:
v = v + 1;
v = v + 1;
goto label;
label:
virtualinvoke v.<java.util.TreeMap: java.lang.Object remove(java.lang.Object)>(v);
goto label;
label:
<org.glassfish.grizzly.http.util.StringCache: int bcCount> = 0;
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap bcStats>;
virtualinvoke v.<java.util.HashMap: void clear()>();
<org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$ByteEntry[] bcCache> = v;
v = <org.glassfish.grizzly.http.util.StringCache: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level FINEST>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = <org.glassfish.grizzly.http.util.StringCache: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level FINEST>;
v = v - v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("ByteCache generation time: \u0001ms");
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, v);
goto label;
label:
v = <org.glassfish.grizzly.http.util.StringCache: int bcCount>;
v = v + 1;
<org.glassfish.grizzly.http.util.StringCache: int bcCount> = v;
v = new org.glassfish.grizzly.http.util.StringCache$ByteEntry;
specialinvoke v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: void <init>()>();
v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: java.lang.String value> = v;
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap bcStats>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getEnd()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getStart()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getLength()>();
v = newarray (byte)[v];
v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: byte[] name> = v;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: byte[] getBuffer()>();
v = v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: byte[] name>;
v = v - v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, 0, v);
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: java.nio.charset.Charset getCharset()>();
v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: java.nio.charset.Charset charset> = v;
v = newarray (int)[1];
v[0] = 1;
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap bcStats>;
virtualinvoke v.<java.util.HashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = v[0];
v = v + 1;
v[0] = v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
label:
v = <org.glassfish.grizzly.http.util.StringCache: int accessCount>;
v = v + 1;
<org.glassfish.grizzly.http.util.StringCache: int accessCount> = v;
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: java.lang.String find(org.glassfish.grizzly.http.util.ByteChunk)>(v);
if v != null goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: java.lang.String toStringInternal()>();
return v;
label:
v = <org.glassfish.grizzly.http.util.StringCache: int hitCount>;
v = v + 1;
<org.glassfish.grizzly.http.util.StringCache: int hitCount> = v;
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 toString(org.glassfish.grizzly.http.util.CharChunk)
{
java.lang.Integer v;
org.glassfish.grizzly.http.util.StringCache$CharEntry v;
java.util.Set v;
org.glassfish.grizzly.http.util.StringCache$CharEntry[] v, v, v;
java.lang.Throwable v;
long v, v, v;
java.util.ArrayList v;
java.lang.String v, v, v, v;
org.glassfish.grizzly.http.util.CharChunk v, v;
java.util.TreeMap v;
char[] v, v, v, v, v;
int[] v;
boolean v, v, v;
java.util.logging.Logger v, v;
java.util.HashMap v, v, v, v, v, v, v;
java.util.logging.Level v, 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, v;
java.util.Iterator v;
java.lang.Object v, v, v, v, v, v, v;
v := @parameter: org.glassfish.grizzly.http.util.CharChunk;
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$CharEntry[] ccCache>;
if v != null goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: java.lang.String toStringInternal()>();
v = <org.glassfish.grizzly.http.util.StringCache: boolean charEnabled>;
if v == 0 goto label;
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap ccStats>;
entermonitor v;
label:
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$CharEntry[] ccCache>;
if v == null goto label;
exitmonitor v;
label:
return v;
label:
v = <org.glassfish.grizzly.http.util.StringCache: int ccCount>;
v = <org.glassfish.grizzly.http.util.StringCache: int trainThreshold>;
if v <= v goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = new java.util.TreeMap;
specialinvoke v.<java.util.TreeMap: void <init>()>();
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap ccStats>;
v = virtualinvoke v.<java.util.HashMap: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap ccStats>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
v = v[0];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = virtualinvoke v.<java.util.TreeMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v;
virtualinvoke v.<java.util.TreeMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap ccStats>;
v = virtualinvoke v.<java.util.HashMap: int size()>();
v = <org.glassfish.grizzly.http.util.StringCache: int cacheSize>;
if v <= v goto label;
v = <org.glassfish.grizzly.http.util.StringCache: int cacheSize>;
label:
v = newarray (org.glassfish.grizzly.http.util.StringCache$CharEntry)[v];
v = new org.glassfish.grizzly.http.util.CharChunk;
specialinvoke v.<org.glassfish.grizzly.http.util.CharChunk: void <init>()>();
v = 0;
label:
if v >= v goto label;
v = virtualinvoke v.<java.util.TreeMap: java.lang.Object lastKey()>();
v = virtualinvoke v.<java.util.TreeMap: java.lang.Object get(java.lang.Object)>(v);
v = 0;
label:
v = virtualinvoke v.<java.util.ArrayList: int size()>();
if v >= v goto label;
if v >= v goto label;
v = virtualinvoke v.<java.util.ArrayList: java.lang.Object get(int)>(v);
v = v.<org.glassfish.grizzly.http.util.StringCache$CharEntry: char[] name>;
v = v.<org.glassfish.grizzly.http.util.StringCache$CharEntry: char[] name>;
v = lengthof v;
virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: void setChars(char[],int,int)>(v, 0, v);
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: int findClosest(org.glassfish.grizzly.http.util.CharChunk,org.glassfish.grizzly.http.util.StringCache$CharEntry[],int)>(v, v, v);
if v != v goto label;
v = v + 1;
v[v] = v;
goto label;
label:
v = v + 1;
v = v + 2;
v = v - v;
v = v - 1;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
v = v + 1;
v[v] = v;
label:
v = v + 1;
v = v + 1;
goto label;
label:
virtualinvoke v.<java.util.TreeMap: java.lang.Object remove(java.lang.Object)>(v);
goto label;
label:
<org.glassfish.grizzly.http.util.StringCache: int ccCount> = 0;
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap ccStats>;
virtualinvoke v.<java.util.HashMap: void clear()>();
<org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$CharEntry[] ccCache> = v;
v = <org.glassfish.grizzly.http.util.StringCache: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level FINEST>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = <org.glassfish.grizzly.http.util.StringCache: java.util.logging.Logger logger>;
v = <java.util.logging.Level: java.util.logging.Level FINEST>;
v = v - v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("CharCache generation time: \u0001ms");
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String)>(v, v);
goto label;
label:
v = <org.glassfish.grizzly.http.util.StringCache: int ccCount>;
v = v + 1;
<org.glassfish.grizzly.http.util.StringCache: int ccCount> = v;
v = new org.glassfish.grizzly.http.util.StringCache$CharEntry;
specialinvoke v.<org.glassfish.grizzly.http.util.StringCache$CharEntry: void <init>()>();
v.<org.glassfish.grizzly.http.util.StringCache$CharEntry: java.lang.String value> = v;
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap ccStats>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: int getEnd()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: int getStart()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: int getLength()>();
v = newarray (char)[v];
v.<org.glassfish.grizzly.http.util.StringCache$CharEntry: char[] name> = v;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: char[] getBuffer()>();
v = v.<org.glassfish.grizzly.http.util.StringCache$CharEntry: char[] name>;
v = v - v;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, 0, v);
v = newarray (int)[1];
v[0] = 1;
v = <org.glassfish.grizzly.http.util.StringCache: java.util.HashMap ccStats>;
virtualinvoke v.<java.util.HashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = v[0];
v = v + 1;
v[0] = v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
label:
v = <org.glassfish.grizzly.http.util.StringCache: int accessCount>;
v = v + 1;
<org.glassfish.grizzly.http.util.StringCache: int accessCount> = v;
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: java.lang.String find(org.glassfish.grizzly.http.util.CharChunk)>(v);
if v != null goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: java.lang.String toStringInternal()>();
return v;
label:
v = <org.glassfish.grizzly.http.util.StringCache: int hitCount>;
v = v + 1;
<org.glassfish.grizzly.http.util.StringCache: int hitCount> = v;
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
protected static int compare(org.glassfish.grizzly.http.util.ByteChunk, byte[])
{
byte[] v, v;
byte v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v;
org.glassfish.grizzly.http.util.ByteChunk v;
v := @parameter: org.glassfish.grizzly.http.util.ByteChunk;
v := @parameter: byte[];
v = 0;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: byte[] getBuffer()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getStart()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getEnd()>();
v = lengthof v;
v = v - v;
if v >= v goto label;
v = v - v;
label:
v = 0;
label:
if v >= v goto label;
if v != 0 goto label;
v = v + v;
v = v[v];
v = v[v];
if v <= v goto label;
v = 1;
goto label;
label:
v = v + v;
v = v[v];
v = v[v];
if v >= v goto label;
v = -1;
label:
v = v + 1;
goto label;
label:
if v != 0 goto label;
v = lengthof v;
v = v - v;
if v <= v goto label;
v = -1;
goto label;
label:
v = lengthof v;
v = v - v;
if v >= v goto label;
v = 1;
label:
return v;
}
protected static java.lang.String find(org.glassfish.grizzly.http.util.ByteChunk)
{
byte[] v;
java.nio.charset.Charset v, v;
int v, v, v;
java.lang.String v;
boolean v;
org.glassfish.grizzly.http.util.ByteChunk v;
org.glassfish.grizzly.http.util.StringCache$ByteEntry[] v, v, v, v, v;
org.glassfish.grizzly.http.util.StringCache$ByteEntry v, v, v;
v := @parameter: org.glassfish.grizzly.http.util.ByteChunk;
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$ByteEntry[] bcCache>;
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$ByteEntry[] bcCache>;
v = lengthof v;
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: int findClosest(org.glassfish.grizzly.http.util.ByteChunk,org.glassfish.grizzly.http.util.StringCache$ByteEntry[],int)>(v, v, v);
if v < 0 goto label;
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$ByteEntry[] bcCache>;
v = v[v];
v = v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: byte[] name>;
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: int compare(org.glassfish.grizzly.http.util.ByteChunk,byte[])>(v, v);
if v != 0 goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: java.nio.charset.Charset getCharset()>();
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$ByteEntry[] bcCache>;
v = v[v];
v = v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: java.nio.charset.Charset charset>;
v = virtualinvoke v.<java.nio.charset.Charset: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
label:
return null;
label:
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$ByteEntry[] bcCache>;
v = v[v];
v = v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: java.lang.String value>;
return v;
}
protected static int findClosest(org.glassfish.grizzly.http.util.ByteChunk, org.glassfish.grizzly.http.util.StringCache$ByteEntry[], int)
{
byte[] v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
org.glassfish.grizzly.http.util.ByteChunk v;
org.glassfish.grizzly.http.util.StringCache$ByteEntry[] v;
org.glassfish.grizzly.http.util.StringCache$ByteEntry v, v, v;
v := @parameter: org.glassfish.grizzly.http.util.ByteChunk;
v := @parameter: org.glassfish.grizzly.http.util.StringCache$ByteEntry[];
v := @parameter: int;
v = 0;
v = v - 1;
v = (int) -1;
if v != v goto label;
v = (int) -1;
return v;
label:
v = v[0];
v = v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: byte[] name>;
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: int compare(org.glassfish.grizzly.http.util.ByteChunk,byte[])>(v, v);
if v >= 0 goto label;
v = (int) -1;
return v;
label:
if v != 0 goto label;
return 0;
label:
v = v + v;
v = v >>> 1;
v = v[v];
v = v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: byte[] name>;
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: int compare(org.glassfish.grizzly.http.util.ByteChunk,byte[])>(v, v);
if v != 1 goto label;
v = v;
goto label;
label:
if v != 0 goto label;
return v;
label:
v = v;
label:
v = v - v;
if v != 1 goto label;
v = v[v];
v = v.<org.glassfish.grizzly.http.util.StringCache$ByteEntry: byte[] name>;
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: int compare(org.glassfish.grizzly.http.util.ByteChunk,byte[])>(v, v);
if v >= 0 goto label;
return v;
label:
return v;
}
protected static int compare(org.glassfish.grizzly.http.util.CharChunk, char[])
{
byte v;
int v, v, v, v, v, v, v, v, v, v, v;
char v, v, v, v;
org.glassfish.grizzly.http.util.CharChunk v;
char[] v, v;
v := @parameter: org.glassfish.grizzly.http.util.CharChunk;
v := @parameter: char[];
v = 0;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: char[] getBuffer()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: int getStart()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: int getEnd()>();
v = lengthof v;
v = v - v;
if v >= v goto label;
v = v - v;
label:
v = 0;
label:
if v >= v goto label;
if v != 0 goto label;
v = v + v;
v = v[v];
v = v[v];
if v <= v goto label;
v = 1;
goto label;
label:
v = v + v;
v = v[v];
v = v[v];
if v >= v goto label;
v = -1;
label:
v = v + 1;
goto label;
label:
if v != 0 goto label;
v = lengthof v;
v = v - v;
if v <= v goto label;
v = -1;
goto label;
label:
v = lengthof v;
v = v - v;
if v >= v goto label;
v = 1;
label:
return v;
}
protected static java.lang.String find(org.glassfish.grizzly.http.util.CharChunk)
{
org.glassfish.grizzly.http.util.StringCache$CharEntry v, v;
org.glassfish.grizzly.http.util.CharChunk v;
org.glassfish.grizzly.http.util.StringCache$CharEntry[] v, v, v, v;
int v, v, v;
char[] v;
java.lang.String v;
v := @parameter: org.glassfish.grizzly.http.util.CharChunk;
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$CharEntry[] ccCache>;
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$CharEntry[] ccCache>;
v = lengthof v;
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: int findClosest(org.glassfish.grizzly.http.util.CharChunk,org.glassfish.grizzly.http.util.StringCache$CharEntry[],int)>(v, v, v);
if v < 0 goto label;
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$CharEntry[] ccCache>;
v = v[v];
v = v.<org.glassfish.grizzly.http.util.StringCache$CharEntry: char[] name>;
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: int compare(org.glassfish.grizzly.http.util.CharChunk,char[])>(v, v);
if v == 0 goto label;
label:
return null;
label:
v = <org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$CharEntry[] ccCache>;
v = v[v];
v = v.<org.glassfish.grizzly.http.util.StringCache$CharEntry: java.lang.String value>;
return v;
}
protected static int findClosest(org.glassfish.grizzly.http.util.CharChunk, org.glassfish.grizzly.http.util.StringCache$CharEntry[], int)
{
int v, v, v, v, v, v, v, v, v, v, v, v;
org.glassfish.grizzly.http.util.StringCache$CharEntry v, v, v;
org.glassfish.grizzly.http.util.CharChunk v;
org.glassfish.grizzly.http.util.StringCache$CharEntry[] v;
char[] v, v, v;
v := @parameter: org.glassfish.grizzly.http.util.CharChunk;
v := @parameter: org.glassfish.grizzly.http.util.StringCache$CharEntry[];
v := @parameter: int;
v = 0;
v = v - 1;
v = (int) -1;
if v != v goto label;
v = (int) -1;
return v;
label:
v = v[0];
v = v.<org.glassfish.grizzly.http.util.StringCache$CharEntry: char[] name>;
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: int compare(org.glassfish.grizzly.http.util.CharChunk,char[])>(v, v);
if v >= 0 goto label;
v = (int) -1;
return v;
label:
if v != 0 goto label;
return 0;
label:
v = v + v;
v = v >>> 1;
v = v[v];
v = v.<org.glassfish.grizzly.http.util.StringCache$CharEntry: char[] name>;
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: int compare(org.glassfish.grizzly.http.util.CharChunk,char[])>(v, v);
if v != 1 goto label;
v = v;
goto label;
label:
if v != 0 goto label;
return v;
label:
v = v;
label:
v = v - v;
if v != 1 goto label;
v = v[v];
v = v.<org.glassfish.grizzly.http.util.StringCache$CharEntry: char[] name>;
v = staticinvoke <org.glassfish.grizzly.http.util.StringCache: int compare(org.glassfish.grizzly.http.util.CharChunk,char[])>(v, v);
if v >= 0 goto label;
return v;
label:
return v;
}
static void <clinit>()
{
java.util.HashMap v, v;
java.util.logging.Logger v;
int v, v, v, v;
java.lang.String v, v, v, v, v, v;
boolean v, v;
v = staticinvoke <org.glassfish.grizzly.Grizzly: java.util.logging.Logger logger(java.lang.Class)>(class "Lorg/glassfish/grizzly/http/util/StringCache;");
<org.glassfish.grizzly.http.util.StringCache: java.util.logging.Logger logger> = v;
v = "true";
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("tomcat.util.buf.StringCache.byte.enabled", "false");
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
<org.glassfish.grizzly.http.util.StringCache: boolean byteEnabled> = v;
v = "true";
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("tomcat.util.buf.StringCache.char.enabled", "false");
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
<org.glassfish.grizzly.http.util.StringCache: boolean charEnabled> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("tomcat.util.buf.StringCache.trainThreshold", "20000");
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
<org.glassfish.grizzly.http.util.StringCache: int trainThreshold> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("tomcat.util.buf.StringCache.cacheSize", "200");
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
<org.glassfish.grizzly.http.util.StringCache: int cacheSize> = v;
v = new java.util.HashMap;
v = <org.glassfish.grizzly.http.util.StringCache: int cacheSize>;
specialinvoke v.<java.util.HashMap: void <init>(int)>(v);
<org.glassfish.grizzly.http.util.StringCache: java.util.HashMap bcStats> = v;
<org.glassfish.grizzly.http.util.StringCache: int bcCount> = 0;
<org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$ByteEntry[] bcCache> = null;
v = new java.util.HashMap;
v = <org.glassfish.grizzly.http.util.StringCache: int cacheSize>;
specialinvoke v.<java.util.HashMap: void <init>(int)>(v);
<org.glassfish.grizzly.http.util.StringCache: java.util.HashMap ccStats> = v;
<org.glassfish.grizzly.http.util.StringCache: int ccCount> = 0;
<org.glassfish.grizzly.http.util.StringCache: org.glassfish.grizzly.http.util.StringCache$CharEntry[] ccCache> = null;
<org.glassfish.grizzly.http.util.StringCache: int accessCount> = 0;
<org.glassfish.grizzly.http.util.StringCache: int hitCount> = 0;
return;
}
}