public class org.glassfish.grizzly.http.util.HttpRequestURIDecoder extends java.lang.Object
{
protected static final boolean ALLOW_BACKSLASH;
private static final boolean COLLAPSE_ADJACENT_SLASHES;
private static final java.util.logging.Logger LOGGER;
private static final int STATE_CHAR;
private static final int STATE_SLASH;
private static final int STATE_PERCENT;
private static final int STATE_SLASHDOT;
private static final int STATE_SLASHDOTDOT;
public void <init>()
{
org.glassfish.grizzly.http.util.HttpRequestURIDecoder v;
v := @this: org.glassfish.grizzly.http.util.HttpRequestURIDecoder;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static void decode(org.glassfish.grizzly.http.util.MessageBytes, org.glassfish.grizzly.http.util.UDecoder) throws java.lang.Exception
{
org.glassfish.grizzly.http.util.MessageBytes v;
org.glassfish.grizzly.http.util.UDecoder v;
v := @parameter: org.glassfish.grizzly.http.util.MessageBytes;
v := @parameter: org.glassfish.grizzly.http.util.UDecoder;
staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: void decode(org.glassfish.grizzly.http.util.MessageBytes,org.glassfish.grizzly.http.util.UDecoder,java.lang.String,org.glassfish.grizzly.http.util.B2CConverter)>(v, v, null, null);
return;
}
public static void decode(org.glassfish.grizzly.http.util.MessageBytes, org.glassfish.grizzly.http.util.UDecoder, java.lang.String, org.glassfish.grizzly.http.util.B2CConverter) throws java.lang.Exception
{
java.io.IOException v, v;
org.glassfish.grizzly.http.util.CharChunk v;
org.glassfish.grizzly.http.util.B2CConverter v;
org.glassfish.grizzly.http.util.MessageBytes v;
java.lang.String v;
org.glassfish.grizzly.http.util.UDecoder v;
boolean v, v;
v := @parameter: org.glassfish.grizzly.http.util.MessageBytes;
v := @parameter: org.glassfish.grizzly.http.util.UDecoder;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.grizzly.http.util.B2CConverter;
virtualinvoke v.<org.glassfish.grizzly.http.util.UDecoder: void convert(org.glassfish.grizzly.http.util.MessageBytes,boolean)>(v, 0);
v = staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean normalize(org.glassfish.grizzly.http.util.MessageBytes)>(v);
if v != 0 goto label;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("Invalid URI character encoding");
throw v;
label:
if v != null goto label;
v = "utf-8";
label:
staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: void convertURI(org.glassfish.grizzly.http.util.MessageBytes,java.lang.String,org.glassfish.grizzly.http.util.B2CConverter)>(v, v, v);
v = virtualinvoke v.<org.glassfish.grizzly.http.util.MessageBytes: org.glassfish.grizzly.http.util.CharChunk getCharChunk()>();
v = staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean checkNormalize(org.glassfish.grizzly.http.util.CharChunk)>(v);
if v != 0 goto label;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("Invalid URI character encoding");
throw v;
label:
return;
}
public static void decode(org.glassfish.grizzly.http.util.DataChunk) throws java.io.CharConversionException
{
org.glassfish.grizzly.http.util.DataChunk v;
java.nio.charset.Charset v;
v := @parameter: org.glassfish.grizzly.http.util.DataChunk;
v = <org.glassfish.grizzly.utils.Charsets: java.nio.charset.Charset UTF8_CHARSET>;
staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: void decode(org.glassfish.grizzly.http.util.DataChunk,boolean,java.nio.charset.Charset)>(v, 0, v);
return;
}
public static void decode(org.glassfish.grizzly.http.util.DataChunk, boolean) throws java.io.CharConversionException
{
org.glassfish.grizzly.http.util.DataChunk v;
java.nio.charset.Charset v;
boolean v;
v := @parameter: org.glassfish.grizzly.http.util.DataChunk;
v := @parameter: boolean;
v = <org.glassfish.grizzly.utils.Charsets: java.nio.charset.Charset UTF8_CHARSET>;
staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: void decode(org.glassfish.grizzly.http.util.DataChunk,boolean,java.nio.charset.Charset)>(v, v, v);
return;
}
public static void decode(org.glassfish.grizzly.http.util.DataChunk, boolean, java.nio.charset.Charset) throws java.io.CharConversionException
{
org.glassfish.grizzly.http.util.DataChunk v;
java.nio.charset.Charset v;
boolean v;
v := @parameter: org.glassfish.grizzly.http.util.DataChunk;
v := @parameter: boolean;
v := @parameter: java.nio.charset.Charset;
staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: void decode(org.glassfish.grizzly.http.util.DataChunk,org.glassfish.grizzly.http.util.DataChunk,boolean,java.nio.charset.Charset)>(v, v, v, v);
return;
}
public static void decode(org.glassfish.grizzly.http.util.DataChunk, org.glassfish.grizzly.http.util.DataChunk, boolean, java.nio.charset.Charset) throws java.io.CharConversionException
{
org.glassfish.grizzly.http.util.DataChunk v, v;
java.io.CharConversionException v;
java.nio.charset.Charset v;
boolean v, v;
v := @parameter: org.glassfish.grizzly.http.util.DataChunk;
v := @parameter: org.glassfish.grizzly.http.util.DataChunk;
v := @parameter: boolean;
v := @parameter: java.nio.charset.Charset;
staticinvoke <org.glassfish.grizzly.http.util.URLDecoder: void decode(org.glassfish.grizzly.http.util.DataChunk,org.glassfish.grizzly.http.util.DataChunk,boolean)>(v, v, v);
v = staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean normalize(org.glassfish.grizzly.http.util.DataChunk)>(v);
if v != 0 goto label;
v = new java.io.CharConversionException;
specialinvoke v.<java.io.CharConversionException: void <init>(java.lang.String)>("Invalid URI character encoding");
throw v;
label:
staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: void convertToChars(org.glassfish.grizzly.http.util.DataChunk,java.nio.charset.Charset)>(v, v);
return;
}
public static void convertToChars(org.glassfish.grizzly.http.util.DataChunk, java.nio.charset.Charset) throws java.io.CharConversionException
{
org.glassfish.grizzly.http.util.DataChunk v;
java.io.CharConversionException v;
java.nio.charset.Charset v;
org.glassfish.grizzly.http.util.CharChunk v;
boolean v;
v := @parameter: org.glassfish.grizzly.http.util.DataChunk;
v := @parameter: java.nio.charset.Charset;
if v != null goto label;
v = <org.glassfish.grizzly.utils.Charsets: java.nio.charset.Charset UTF8_CHARSET>;
label:
virtualinvoke v.<org.glassfish.grizzly.http.util.DataChunk: void toChars(java.nio.charset.Charset)>(v);
v = virtualinvoke v.<org.glassfish.grizzly.http.util.DataChunk: org.glassfish.grizzly.http.util.CharChunk getCharChunk()>();
v = staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean checkNormalize(org.glassfish.grizzly.http.util.CharChunk)>(v);
if v != 0 goto label;
v = new java.io.CharConversionException;
specialinvoke v.<java.io.CharConversionException: void <init>(java.lang.String)>("Invalid URI character encoding");
throw v;
label:
return;
}
private static void convertURI(org.glassfish.grizzly.http.util.MessageBytes, java.lang.String, org.glassfish.grizzly.http.util.B2CConverter) throws java.lang.Exception
{
byte[] v;
org.glassfish.grizzly.http.util.B2CConverter v, v;
short v;
byte v;
int v, v, v, v, v, v, v, v, v, v;
org.glassfish.grizzly.http.util.MessageBytes v;
java.lang.String v, v, v;
boolean v;
org.glassfish.grizzly.http.util.ByteChunk v;
java.io.IOException v, v;
java.util.logging.Logger v, v;
org.glassfish.grizzly.http.util.CharChunk v;
char[] v, v;
v := @parameter: org.glassfish.grizzly.http.util.MessageBytes;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.grizzly.http.util.B2CConverter;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.MessageBytes: org.glassfish.grizzly.http.util.ByteChunk getByteChunk()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.MessageBytes: org.glassfish.grizzly.http.util.CharChunk getCharChunk()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getLength()>();
v = (int) -1;
virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: void allocate(int,int)>(v, v);
if v == null goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v == 0 goto label;
v = "ISO-8859-1";
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v != 0 goto label;
label:
if v != null goto label;
v = new org.glassfish.grizzly.http.util.B2CConverter;
specialinvoke v.<org.glassfish.grizzly.http.util.B2CConverter: void <init>(java.lang.String)>(v);
v = v;
label:
goto label;
label:
v := @caughtexception;
v = <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: java.util.logging.Logger LOGGER>;
virtualinvoke v.<java.util.logging.Logger: void severe(java.lang.String)>("Invalid URI encoding; using HTTP default");
label:
virtualinvoke v.<org.glassfish.grizzly.http.util.B2CConverter: void convert(org.glassfish.grizzly.http.util.ByteChunk,org.glassfish.grizzly.http.util.CharChunk)>(v, v);
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 getLength()>();
virtualinvoke v.<org.glassfish.grizzly.http.util.MessageBytes: void setChars(char[],int,int)>(v, v, v);
label:
return;
label:
v := @caughtexception;
v = <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: java.util.logging.Logger LOGGER>;
virtualinvoke v.<java.util.logging.Logger: void severe(java.lang.String)>("Invalid URI character encoding; trying ascii");
virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: void recycle()>();
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: byte[] getBuffer()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: char[] getBuffer()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getStart()>();
v = 0;
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getLength()>();
if v >= v goto label;
v = v + v;
v = v[v];
v = v & 255;
v[v] = v;
v = v + 1;
goto label;
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getLength()>();
virtualinvoke v.<org.glassfish.grizzly.http.util.MessageBytes: void setChars(char[],int,int)>(v, 0, v);
return;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
public static boolean normalize(org.glassfish.grizzly.http.util.MessageBytes)
{
org.glassfish.grizzly.http.util.ByteChunk v;
int v;
org.glassfish.grizzly.http.util.MessageBytes v;
org.glassfish.grizzly.http.util.CharChunk v;
boolean v, v;
v := @parameter: org.glassfish.grizzly.http.util.MessageBytes;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.MessageBytes: int getType()>();
if v != 3 goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.MessageBytes: org.glassfish.grizzly.http.util.CharChunk getCharChunk()>();
v = staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean normalizeChars(org.glassfish.grizzly.http.util.CharChunk)>(v);
return v;
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.MessageBytes: org.glassfish.grizzly.http.util.ByteChunk getByteChunk()>();
v = staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean normalizeBytes(org.glassfish.grizzly.http.util.ByteChunk)>(v);
return v;
}
public static boolean normalize(org.glassfish.grizzly.http.util.DataChunk)
{
java.lang.IllegalStateException v;
org.glassfish.grizzly.http.util.DataChunk v;
org.glassfish.grizzly.http.util.ByteChunk v;
org.glassfish.grizzly.http.util.CharChunk v;
java.lang.NullPointerException v;
java.io.CharConversionException v;
org.glassfish.grizzly.http.util.DataChunk$Type v;
int[] v;
int v, v;
boolean v, v, v;
org.glassfish.grizzly.http.util.BufferChunk v;
v := @parameter: org.glassfish.grizzly.http.util.DataChunk;
v = <org.glassfish.grizzly.http.util.HttpRequestURIDecoder$1: int[] $SwitchMap$org$glassfish$grizzly$http$util$DataChunk$Type>;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.DataChunk: org.glassfish.grizzly.http.util.DataChunk$Type getType()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.DataChunk$Type: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.DataChunk: org.glassfish.grizzly.http.util.ByteChunk getByteChunk()>();
v = staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean normalizeBytes(org.glassfish.grizzly.http.util.ByteChunk)>(v);
return v;
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.DataChunk: org.glassfish.grizzly.http.util.BufferChunk getBufferChunk()>();
v = staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean normalizeBuffer(org.glassfish.grizzly.http.util.BufferChunk)>(v);
return v;
label:
virtualinvoke v.<org.glassfish.grizzly.http.util.DataChunk: void toChars(java.nio.charset.Charset)>(null);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>("Unexpected exception", v);
throw v;
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.DataChunk: org.glassfish.grizzly.http.util.CharChunk getCharChunk()>();
v = staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean normalizeChars(org.glassfish.grizzly.http.util.CharChunk)>(v);
return v;
label:
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>()>();
throw v;
catch java.io.CharConversionException from label to label with label;
}
public static boolean checkNormalize(org.glassfish.grizzly.http.util.CharChunk)
{
int v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v;
char v, v, v, v, v, v, v, v;
org.glassfish.grizzly.http.util.CharChunk v;
char[] v;
v := @parameter: org.glassfish.grizzly.http.util.CharChunk;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: char[] getChars()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: int getStart()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: int getEnd()>();
v = v;
label:
if v >= v goto label;
v = v[v];
if v != 92 goto label;
return 0;
label:
v = v[v];
if v != 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
v = <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean COLLAPSE_ADJACENT_SLASHES>;
if v == 0 goto label;
v = v;
label:
v = v - 1;
if v >= v goto label;
v = v[v];
if v != 47 goto label;
v = v + 1;
v = v[v];
if v != 47 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
v = v - v;
if v < 2 goto label;
v = v - 1;
v = v[v];
if v != 46 goto label;
v = v - 2;
v = v[v];
if v == 47 goto label;
v = v - 2;
v = v[v];
if v != 46 goto label;
v = v - 3;
v = v[v];
if v != 47 goto label;
label:
return 0;
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: int indexOf(java.lang.String,int,int,int)>("/./", 0, 3, 0);
if v >= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static boolean normalizeChars(org.glassfish.grizzly.http.util.CharChunk)
{
boolean 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, v, v, v, v, v, v, v, v, v;
char v, v, v, v, v, v, v, v, v, v, v;
org.glassfish.grizzly.http.util.CharChunk v;
char[] v;
v := @parameter: org.glassfish.grizzly.http.util.CharChunk;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: char[] getChars()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: int getStart()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: int getEnd()>();
v = v - v;
if v != 1 goto label;
v = v[v];
if v != 42 goto label;
return 1;
label:
v = v;
label:
if v >= v goto label;
v = v[v];
if v != 92 goto label;
return 0;
label:
v = v[v];
if v != 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
v = v[v];
if v == 47 goto label;
return 0;
label:
v = <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean COLLAPSE_ADJACENT_SLASHES>;
if v == 0 goto label;
v = v;
label:
v = v - 1;
if v >= v goto label;
v = v[v];
if v != 47 goto label;
label:
v = v + 1;
if v >= v goto label;
v = v + 1;
v = v[v];
if v != 47 goto label;
v = v + 1;
v = v - v;
v = v - 1;
staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: void copyChars(char[],int,int,int)>(v, v, v, v);
v = v - 1;
goto label;
label:
v = v + 1;
goto label;
label:
v = v - v;
if v <= 2 goto label;
v = v - 1;
v = v[v];
if v != 46 goto label;
v = v - 2;
v = v[v];
if v == 47 goto label;
v = v - 2;
v = v[v];
if v != 46 goto label;
v = v - 3;
v = v[v];
if v != 47 goto label;
label:
v[v] = 47;
v = v + 1;
label:
virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: void setEnd(int)>(v);
v = 0;
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: int indexOf(java.lang.String,int,int,int)>("/./", 0, 3, v);
if v < 0 goto label;
v = v + v;
v = v + v;
v = v + 2;
v = v - v;
v = v - v;
v = v - 2;
staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: void copyChars(char[],int,int,int)>(v, v, v, v);
v = v - 2;
virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: void setEnd(int)>(v);
goto label;
label:
v = 0;
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: int indexOf(java.lang.String,int,int,int)>("/../", 0, 4, v);
if v < 0 goto label;
if v != 0 goto label;
return 0;
label:
v = (int) -1;
v = v;
v = v + v;
v = v - 1;
label:
if v < 0 goto label;
if v >= 0 goto label;
v = v[v];
if v != 47 goto label;
v = v;
label:
v = v - 1;
goto label;
label:
v = v + v;
v = v + v;
v = v + 3;
v = v - v;
v = v - v;
v = v - 3;
staticinvoke <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: void copyChars(char[],int,int,int)>(v, v, v, v);
v = v + v;
v = v - v;
v = v - 3;
virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: void setEnd(int)>(v);
v = v;
goto label;
label:
virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: void setChars(char[],int,int)>(v, v, v);
return 1;
}
protected static void copyBytes(byte[], int, int, int)
{
byte[] v;
int v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
return;
}
private static void copyChars(char[], int, int, int)
{
int v, v, v;
char[] v;
v := @parameter: char[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
staticinvoke <java.lang.System: void arraycopy(java.lang.Object,int,java.lang.Object,int,int)>(v, v, v, v, v);
return;
}
protected void log(java.lang.String)
{
java.lang.String v;
java.util.logging.Logger v;
org.glassfish.grizzly.http.util.HttpRequestURIDecoder v;
v := @this: org.glassfish.grizzly.http.util.HttpRequestURIDecoder;
v := @parameter: java.lang.String;
v = <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: java.util.logging.Logger LOGGER>;
virtualinvoke v.<java.util.logging.Logger: void info(java.lang.String)>(v);
return;
}
protected void log(java.lang.String, java.lang.Throwable)
{
java.lang.Throwable v;
org.glassfish.grizzly.http.util.HttpRequestURIDecoder v;
java.lang.String v;
java.util.logging.Logger v;
java.util.logging.Level v;
v := @this: org.glassfish.grizzly.http.util.HttpRequestURIDecoder;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Throwable;
v = <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level SEVERE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Throwable)>(v, v, v);
return;
}
protected void convertMB(org.glassfish.grizzly.http.util.MessageBytes)
{
byte[] v;
short v;
byte v;
int v, v, v, v, v, v, v, v;
org.glassfish.grizzly.http.util.MessageBytes v;
org.glassfish.grizzly.http.util.ByteChunk v;
org.glassfish.grizzly.http.util.CharChunk v;
org.glassfish.grizzly.http.util.HttpRequestURIDecoder v;
char[] v;
v := @this: org.glassfish.grizzly.http.util.HttpRequestURIDecoder;
v := @parameter: org.glassfish.grizzly.http.util.MessageBytes;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.MessageBytes: int getType()>();
if v == 2 goto label;
return;
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.MessageBytes: org.glassfish.grizzly.http.util.ByteChunk getByteChunk()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.MessageBytes: org.glassfish.grizzly.http.util.CharChunk getCharChunk()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getLength()>();
v = (int) -1;
virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: void allocate(int,int)>(v, v);
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: byte[] getBuffer()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.CharChunk: char[] getBuffer()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getStart()>();
v = 0;
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getLength()>();
if v >= v goto label;
v = v + v;
v = v[v];
v = v & 255;
v[v] = v;
v = v + 1;
goto label;
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getLength()>();
virtualinvoke v.<org.glassfish.grizzly.http.util.MessageBytes: void setChars(char[],int,int)>(v, 0, v);
return;
}
public static boolean normalizeBytes(org.glassfish.grizzly.http.util.ByteChunk)
{
byte[] v;
byte v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v;
int v, v, v, v, v, v, v, v, v, v, v, 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 = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: byte[] getBytes()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getStart()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: int getEnd()>();
if v != v goto label;
return 0;
label:
v = v - v;
if v != 1 goto label;
v = v[v];
if v != 42 goto label;
return 1;
label:
v = v - v;
if v <= 2 goto label;
v = v - 1;
v = v[v];
if v != 46 goto label;
v = v - 2;
v = v[v];
if v == 47 goto label;
v = v - 2;
v = v[v];
if v != 46 goto label;
v = v - 3;
v = v[v];
if v != 47 goto label;
label:
v[v] = 47;
v = v + 1;
label:
v = 0;
v = v;
v = (int) -1;
v = v;
v = (int) -1;
v = v;
v = v;
label:
if v >= v goto label;
v = v[v];
if v != 0 goto label;
return 0;
label:
v = v[v];
if v != 92 goto label;
return 0;
label:
v = v[v];
if v != 47 goto label;
if v != 0 goto label;
v = 1;
v = v[v];
v[v] = v;
v = v;
v = v;
v = v + 1;
goto label;
label:
if v != 1 goto label;
v = <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean COLLAPSE_ADJACENT_SLASHES>;
if v != 0 goto label;
v = v + 1;
goto label;
label:
if v != 3 goto label;
v = v - 1;
goto label;
label:
if v != 4 goto label;
v = (int) -1;
if v != v goto label;
return 0;
label:
v = v;
v = v;
v = (int) -1;
v = v;
v = v - 1;
label:
if v < v goto label;
v = v[v];
if v != 47 goto label;
v = v;
goto label;
label:
v = v - 1;
goto label;
label:
v = 1;
v = v + 1;
v = v[v];
v[v] = v;
goto label;
label:
v = v[v];
if v != 46 goto label;
if v != 0 goto label;
v = v;
v = v + 1;
v = v[v];
v[v] = v;
goto label;
label:
if v != 1 goto label;
v = 3;
v = v;
v = v + 1;
v = v[v];
v[v] = v;
goto label;
label:
if v != 3 goto label;
v = 4;
v = v;
v = v + 1;
v = v[v];
v[v] = v;
goto label;
label:
v = 0;
v = v;
v = v + 1;
v = v[v];
v[v] = v;
label:
v = v + 1;
goto label;
label:
virtualinvoke v.<org.glassfish.grizzly.http.util.ByteChunk: void setEnd(int)>(v);
return 1;
}
public static boolean normalizeBuffer(org.glassfish.grizzly.http.util.BufferChunk)
{
byte v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v;
org.glassfish.grizzly.Buffer v;
org.glassfish.grizzly.http.util.BufferChunk v;
v := @parameter: org.glassfish.grizzly.http.util.BufferChunk;
v = virtualinvoke v.<org.glassfish.grizzly.http.util.BufferChunk: org.glassfish.grizzly.Buffer getBuffer()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.BufferChunk: int getStart()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.util.BufferChunk: int getEnd()>();
if v != v goto label;
return 0;
label:
v = v - v;
if v != 1 goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: byte get(int)>(v);
if v != 42 goto label;
return 1;
label:
v = v - v;
if v <= 2 goto label;
v = v - 1;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: byte get(int)>(v);
if v != 46 goto label;
v = v - 2;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: byte get(int)>(v);
if v == 47 goto label;
if v != 46 goto label;
v = v - 3;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: byte get(int)>(v);
if v != 47 goto label;
label:
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer put(int,byte)>(v, 47);
v = v + 1;
label:
v = 0;
v = v;
v = (int) -1;
v = v;
v = (int) -1;
v = v;
v = v;
label:
if v >= v goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: byte get(int)>(v);
if v != 0 goto label;
return 0;
label:
if v != 92 goto label;
return 0;
label:
if v != 47 goto label;
if v != 0 goto label;
v = 1;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer put(int,byte)>(v, v);
v = v;
v = v;
v = v + 1;
goto label;
label:
if v != 1 goto label;
v = <org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean COLLAPSE_ADJACENT_SLASHES>;
if v != 0 goto label;
v = v + 1;
goto label;
label:
if v != 3 goto label;
v = v - 1;
goto label;
label:
if v != 4 goto label;
v = (int) -1;
if v != v goto label;
return 0;
label:
v = v;
v = v;
v = (int) -1;
v = v;
v = v - 1;
label:
if v < v goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.Buffer: byte get(int)>(v);
if v != 47 goto label;
v = v;
goto label;
label:
v = v - 1;
goto label;
label:
v = 1;
v = v + 1;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer put(int,byte)>(v, v);
goto label;
label:
if v != 46 goto label;
if v != 0 goto label;
v = v;
v = v + 1;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer put(int,byte)>(v, v);
goto label;
label:
if v != 1 goto label;
v = 3;
v = v;
v = v + 1;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer put(int,byte)>(v, v);
goto label;
label:
if v != 3 goto label;
v = 4;
v = v;
v = v + 1;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer put(int,byte)>(v, v);
goto label;
label:
v = 0;
v = v;
v = v + 1;
interfaceinvoke v.<org.glassfish.grizzly.Buffer: org.glassfish.grizzly.Buffer put(int,byte)>(v, v);
label:
v = v + 1;
goto label;
label:
virtualinvoke v.<org.glassfish.grizzly.http.util.BufferChunk: void setEnd(int)>(v);
return 1;
}
static void <clinit>()
{
java.lang.Boolean v;
java.lang.String v;
java.util.logging.Logger v;
boolean v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("com.sun.enterprise.web.collapseAdjacentSlashes", "true");
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
<org.glassfish.grizzly.http.util.HttpRequestURIDecoder: boolean COLLAPSE_ADJACENT_SLASHES> = v;
v = staticinvoke <org.glassfish.grizzly.Grizzly: java.util.logging.Logger logger(java.lang.Class)>(class "Lorg/glassfish/grizzly/http/util/HttpRequestURIDecoder;");
<org.glassfish.grizzly.http.util.HttpRequestURIDecoder: java.util.logging.Logger LOGGER> = v;
return;
}
}