public class org.glassfish.grizzly.http.server.CLStaticHttpHandler extends org.glassfish.grizzly.http.server.StaticHttpHandlerBase
{
private static final java.util.logging.Logger LOGGER;
protected static final java.lang.String CHECK_NON_SLASH_TERMINATED_FOLDERS_PROP;
private static final boolean CHECK_NON_SLASH_TERMINATED_FOLDERS;
private static final java.lang.String SLASH_STR;
private static final java.lang.String EMPTY_STR;
private final java.lang.ClassLoader classLoader;
private final org.glassfish.grizzly.utils.ArraySet docRoots;
static final boolean $assertionsDisabled;
public transient void <init>(java.lang.ClassLoader, java.lang.String[])
{
org.glassfish.grizzly.http.server.CLStaticHttpHandler v;
java.lang.String[] v;
java.lang.IllegalArgumentException v, v;
int v, v, v;
java.lang.ClassLoader v;
java.lang.String v;
org.glassfish.grizzly.utils.ArraySet v, v, v;
boolean v;
v := @this: org.glassfish.grizzly.http.server.CLStaticHttpHandler;
v := @parameter: java.lang.ClassLoader;
v := @parameter: java.lang.String[];
specialinvoke v.<org.glassfish.grizzly.http.server.StaticHttpHandlerBase: void <init>()>();
v = new org.glassfish.grizzly.utils.ArraySet;
specialinvoke v.<org.glassfish.grizzly.utils.ArraySet: void <init>(java.lang.Class)>(class "Ljava/lang/String;");
v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: org.glassfish.grizzly.utils.ArraySet docRoots> = v;
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("ClassLoader can not be null");
throw v;
label:
v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.lang.ClassLoader classLoader> = v;
v = lengthof v;
if v <= 0 goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>("/");
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Doc root should end with slash (\'/\')");
throw v;
label:
v = v + 1;
goto label;
label:
v = v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: org.glassfish.grizzly.utils.ArraySet docRoots>;
virtualinvoke v.<org.glassfish.grizzly.utils.ArraySet: boolean addAll(java.lang.Object[])>(v);
goto label;
label:
v = v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: org.glassfish.grizzly.utils.ArraySet docRoots>;
virtualinvoke v.<org.glassfish.grizzly.utils.ArraySet: boolean add(java.lang.Object)>("/");
label:
return;
}
public boolean addDocRoot(java.lang.String)
{
org.glassfish.grizzly.http.server.CLStaticHttpHandler v;
java.lang.String v;
java.lang.IllegalArgumentException v;
org.glassfish.grizzly.utils.ArraySet v;
boolean v, v;
v := @this: org.glassfish.grizzly.http.server.CLStaticHttpHandler;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>("/");
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Doc root should end with slash (\'/\')");
throw v;
label:
v = v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: org.glassfish.grizzly.utils.ArraySet docRoots>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.ArraySet: boolean add(java.lang.Object)>(v);
return v;
}
public boolean removeDocRoot(java.lang.String)
{
org.glassfish.grizzly.http.server.CLStaticHttpHandler v;
java.lang.String v;
org.glassfish.grizzly.utils.ArraySet v;
boolean v;
v := @this: org.glassfish.grizzly.http.server.CLStaticHttpHandler;
v := @parameter: java.lang.String;
v = v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: org.glassfish.grizzly.utils.ArraySet docRoots>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.ArraySet: boolean remove(java.lang.Object)>(v);
return v;
}
public java.lang.ClassLoader getClassLoader()
{
org.glassfish.grizzly.http.server.CLStaticHttpHandler v;
java.lang.ClassLoader v;
v := @this: org.glassfish.grizzly.http.server.CLStaticHttpHandler;
v = v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.lang.ClassLoader classLoader>;
return v;
}
protected boolean handle(java.lang.String, org.glassfish.grizzly.http.server.Request, org.glassfish.grizzly.http.server.Response) throws java.lang.Exception
{
org.glassfish.grizzly.http.util.HttpStatus v;
org.glassfish.grizzly.http.server.CLStaticHttpHandler v;
java.lang.ClassLoader v;
java.lang.Object[] v;
java.lang.AssertionError v, v, v;
java.net.URLConnection v;
java.lang.String 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;
org.glassfish.grizzly.http.server.Request v;
org.glassfish.grizzly.http.Method v, v, v;
java.net.URL v, v;
java.util.jar.JarFile v;
org.glassfish.grizzly.http.server.Response v;
java.net.URI v, v;
boolean 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.server.CLStaticHttpHandler$JarURLInputStream v, v;
java.util.logging.Logger v, v, v, v;
java.util.logging.Level v, v, v, v;
java.util.jar.JarEntry v;
int v, v;
org.glassfish.grizzly.http.util.Header v;
java.io.InputStream v, v, v;
v := @this: org.glassfish.grizzly.http.server.CLStaticHttpHandler;
v := @parameter: java.lang.String;
v := @parameter: org.glassfish.grizzly.http.server.Request;
v := @parameter: org.glassfish.grizzly.http.server.Response;
v = null;
v = null;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("/");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(1);
label:
v = 1;
v = virtualinvoke v.<java.lang.String: int length()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>("/");
if v == 0 goto label;
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[])>("\u0001index.html");
v = 0;
label:
v = specialinvoke v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.net.URL lookupResource(java.lang.String)>(v);
if v != null goto label;
if v == 0 goto label;
v = <org.glassfish.grizzly.http.server.CLStaticHttpHandler: boolean CHECK_NON_SLASH_TERMINATED_FOLDERS>;
if v == 0 goto 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[])>("\u0001/index.html");
v = specialinvoke v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.net.URL lookupResource(java.lang.String)>(v);
v = 0;
label:
v = null;
v = null;
v = 0;
if v == null goto label;
v = "file";
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = new java.io.File;
v = virtualinvoke v.<java.net.URL: java.net.URI toURI()>();
specialinvoke v.<java.io.File: void <init>(java.net.URI)>(v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v == 0 goto label;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.io.File,java.lang.String)>(v, "/index.html");
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: boolean isFile()>();
if v == 0 goto label;
v = v;
v = virtualinvoke v.<java.io.File: java.lang.String getPath()>();
v = 1;
goto label;
label:
v = v;
v = virtualinvoke v.<java.io.File: java.lang.String getPath()>();
v = 1;
goto label;
label:
v = virtualinvoke v.<java.net.URL: java.net.URLConnection openConnection()>();
v = "jar";
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.net.JarURLConnection: java.util.jar.JarEntry getJarEntry()>();
v = virtualinvoke v.<java.net.JarURLConnection: java.util.jar.JarFile getJarFile()>();
v = null;
v = virtualinvoke v.<java.util.jar.JarEntry: boolean isDirectory()>();
if v != 0 goto label;
v = virtualinvoke v.<java.util.jar.JarFile: java.io.InputStream getInputStream(java.util.zip.ZipEntry)>(v);
v = v;
if v != null goto label;
label:
v = virtualinvoke v.<java.util.jar.JarEntry: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>("/");
if v == 0 goto label;
v = virtualinvoke v.<java.util.jar.JarEntry: 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[])>("\u0001index.html");
goto label;
label:
v = virtualinvoke v.<java.util.jar.JarEntry: 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/index.html");
label:
v = virtualinvoke v.<java.util.jar.JarFile: java.util.jar.JarEntry getJarEntry(java.lang.String)>(v);
if v == null goto label;
v = virtualinvoke v.<java.util.jar.JarFile: java.io.InputStream getInputStream(java.util.zip.ZipEntry)>(v);
label:
if v == null goto label;
v = new org.glassfish.grizzly.http.server.CLStaticHttpHandler$JarURLInputStream;
specialinvoke v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler$JarURLInputStream: void <init>(java.net.JarURLConnection,java.util.jar.JarFile,java.io.InputStream)>(v, v, v);
v = v;
v = <org.glassfish.grizzly.http.server.CLStaticHttpHandler: boolean $assertionsDisabled>;
if v != 0 goto label;
if v != null goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = virtualinvoke v.<java.util.jar.JarEntry: java.lang.String getName()>();
v = 1;
goto label;
label:
staticinvoke <org.glassfish.grizzly.http.server.CLStaticHttpHandler: void closeJarFileIfNeeded(java.net.JarURLConnection,java.util.jar.JarFile)>(v, v);
goto label;
label:
v = "bundle";
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
if v == 0 goto label;
v = virtualinvoke v.<java.net.URLConnection: int getContentLength()>();
if v > 0 goto label;
v = v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.lang.ClassLoader classLoader>;
v = virtualinvoke v.<java.net.URL: java.lang.String getPath()>();
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/index.html");
v = virtualinvoke v.<java.lang.ClassLoader: java.net.URL getResource(java.lang.String)>(v);
if v == null goto label;
v = v;
v = virtualinvoke v.<java.net.URL: java.net.URLConnection openConnection()>();
label:
v = 1;
goto label;
label:
v = 1;
label:
if v != 0 goto label;
v = <org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "Resource not found {0}", v);
label:
return 0;
label:
v = <org.glassfish.grizzly.http.server.CLStaticHttpHandler: boolean $assertionsDisabled>;
if v != 0 goto label;
if v != null goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = <org.glassfish.grizzly.http.Method: org.glassfish.grizzly.http.Method GET>;
v = virtualinvoke v.<org.glassfish.grizzly.http.server.Request: org.glassfish.grizzly.http.Method getMethod()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = <org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = newarray (java.lang.Object)[2];
v[0] = v;
v = virtualinvoke v.<org.glassfish.grizzly.http.server.Request: org.glassfish.grizzly.http.Method getMethod()>();
v[1] = v;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object[])>(v, "Resource found {0}, but HTTP method {1} is not allowed", v);
label:
v = <org.glassfish.grizzly.http.util.HttpStatus: org.glassfish.grizzly.http.util.HttpStatus METHOD_NOT_ALLOWED_405>;
virtualinvoke v.<org.glassfish.grizzly.http.server.Response: void setStatus(org.glassfish.grizzly.http.util.HttpStatus)>(v);
v = <org.glassfish.grizzly.http.util.Header: org.glassfish.grizzly.http.util.Header Allow>;
virtualinvoke v.<org.glassfish.grizzly.http.server.Response: void setHeader(org.glassfish.grizzly.http.util.Header,java.lang.String)>(v, "GET");
return 1;
label:
if v == null goto label;
v = v;
goto label;
label:
v = virtualinvoke v.<java.net.URL: java.lang.String getPath()>();
label:
staticinvoke <org.glassfish.grizzly.http.server.CLStaticHttpHandler: void pickupContentType(org.glassfish.grizzly.http.server.Response,java.lang.String)>(v, v);
if v == null goto label;
virtualinvoke v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: boolean addToFileCache(org.glassfish.grizzly.http.server.Request,org.glassfish.grizzly.http.server.Response,java.io.File)>(v, v, v);
staticinvoke <org.glassfish.grizzly.http.server.CLStaticHttpHandler: void sendFile(org.glassfish.grizzly.http.server.Response,java.io.File)>(v, v);
goto label;
label:
v = <org.glassfish.grizzly.http.server.CLStaticHttpHandler: boolean $assertionsDisabled>;
if v != 0 goto label;
if v != null goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = "jar";
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = new java.net.URI;
v = virtualinvoke v.<java.net.URL: java.lang.String getPath()>();
specialinvoke v.<java.net.URI: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.net.URI: java.lang.String getPath()>();
v = specialinvoke v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.io.File getJarFile(java.lang.String)>(v);
specialinvoke v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: boolean addTimeStampEntryToFileCache(org.glassfish.grizzly.http.server.Request,org.glassfish.grizzly.http.server.Response,java.io.File)>(v, v, v);
label:
if v == null goto label;
v = v;
goto label;
label:
v = virtualinvoke v.<java.net.URLConnection: java.io.InputStream getInputStream()>();
label:
staticinvoke <org.glassfish.grizzly.http.server.CLStaticHttpHandler: void sendResource(org.glassfish.grizzly.http.server.Response,java.io.InputStream)>(v, v);
label:
return 1;
}
private java.net.URL lookupResource(java.lang.String)
{
java.lang.Object[] v;
java.net.URL v;
java.util.logging.Level v, v;
int v, v, v;
java.lang.String v, v, v, v;
boolean v, v, v;
org.glassfish.grizzly.http.server.CLStaticHttpHandler v;
java.util.logging.Logger v, v;
java.lang.ClassLoader v;
org.glassfish.grizzly.utils.ArraySet v;
v := @this: org.glassfish.grizzly.http.server.CLStaticHttpHandler;
v := @parameter: java.lang.String;
v = v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: org.glassfish.grizzly.utils.ArraySet docRoots>;
v = virtualinvoke v.<org.glassfish.grizzly.utils.ArraySet: java.lang.Object[] getArray()>();
if v == null goto label;
v = lengthof v;
if v != 0 goto label;
label:
v = <org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
v = virtualinvoke v.<java.util.logging.Logger: boolean isLoggable(java.util.logging.Level)>(v);
if v == 0 goto label;
v = <org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.util.logging.Logger LOGGER>;
v = <java.util.logging.Level: java.util.logging.Level FINE>;
virtualinvoke v.<java.util.logging.Logger: void log(java.util.logging.Level,java.lang.String,java.lang.Object)>(v, "No doc roots registered -> resource {0} is not found ", v);
label:
return null;
label:
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = "/";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = "";
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("/");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(1);
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 = v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.lang.ClassLoader classLoader>;
v = virtualinvoke v.<java.lang.ClassLoader: java.net.URL getResource(java.lang.String)>(v);
if v == null goto label;
return v;
label:
v = v + 1;
goto label;
label:
return null;
}
private static void sendResource(org.glassfish.grizzly.http.server.Response, java.io.InputStream) throws java.io.IOException
{
org.glassfish.grizzly.http.util.Header v;
long v;
org.glassfish.grizzly.http.server.Response v;
org.glassfish.grizzly.http.util.HttpStatus v;
org.glassfish.grizzly.http.io.NIOOutputStream v;
java.io.InputStream v;
org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler v;
v := @parameter: org.glassfish.grizzly.http.server.Response;
v := @parameter: java.io.InputStream;
v = <org.glassfish.grizzly.http.util.HttpStatus: org.glassfish.grizzly.http.util.HttpStatus OK_200>;
virtualinvoke v.<org.glassfish.grizzly.http.server.Response: void setStatus(org.glassfish.grizzly.http.util.HttpStatus)>(v);
v = <org.glassfish.grizzly.http.util.Header: org.glassfish.grizzly.http.util.Header Date>;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
virtualinvoke v.<org.glassfish.grizzly.http.server.Response: void addDateHeader(org.glassfish.grizzly.http.util.Header,long)>(v, v);
virtualinvoke v.<org.glassfish.grizzly.http.server.Response: void suspend()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.server.Response: org.glassfish.grizzly.http.io.NIOOutputStream getNIOOutputStream()>();
v = new org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler;
specialinvoke v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler$NonBlockingDownloadHandler: void <init>(org.glassfish.grizzly.http.server.Response,org.glassfish.grizzly.http.io.NIOOutputStream,java.io.InputStream,int)>(v, v, v, 8192);
virtualinvoke v.<org.glassfish.grizzly.http.io.NIOOutputStream: void notifyCanWrite(org.glassfish.grizzly.WriteHandler)>(v);
return;
}
private boolean addTimeStampEntryToFileCache(org.glassfish.grizzly.http.server.Request, org.glassfish.grizzly.http.server.Response, java.io.File)
{
org.glassfish.grizzly.http.HttpRequestPacket v;
org.glassfish.grizzly.http.server.Request v;
org.glassfish.grizzly.http.server.CLStaticHttpHandler v;
long v;
org.glassfish.grizzly.http.server.FileCacheFilter v;
org.glassfish.grizzly.http.server.Response v;
java.io.File v;
org.glassfish.grizzly.filterchain.FilterChainContext v;
boolean v, v;
org.glassfish.grizzly.http.server.filecache.FileCache v;
v := @this: org.glassfish.grizzly.http.server.CLStaticHttpHandler;
v := @parameter: org.glassfish.grizzly.http.server.Request;
v := @parameter: org.glassfish.grizzly.http.server.Response;
v := @parameter: java.io.File;
v = virtualinvoke v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: boolean isFileCacheEnabled()>();
if v == 0 goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.server.Request: org.glassfish.grizzly.filterchain.FilterChainContext getContext()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.server.CLStaticHttpHandler: org.glassfish.grizzly.http.server.FileCacheFilter lookupFileCache(org.glassfish.grizzly.filterchain.FilterChainContext)>(v);
if v == null goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.server.FileCacheFilter: org.glassfish.grizzly.http.server.filecache.FileCache getFileCache()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.server.filecache.FileCache: boolean isEnabled()>();
if v == 0 goto label;
if v == null goto label;
staticinvoke <org.glassfish.grizzly.http.server.CLStaticHttpHandler: void addCachingHeaders(org.glassfish.grizzly.http.server.Response,java.io.File)>(v, v);
label:
v = virtualinvoke v.<org.glassfish.grizzly.http.server.Request: org.glassfish.grizzly.http.HttpRequestPacket getRequest()>();
v = virtualinvoke v.<java.io.File: long lastModified()>();
virtualinvoke v.<org.glassfish.grizzly.http.server.filecache.FileCache: org.glassfish.grizzly.http.server.filecache.FileCache$CacheResult add(org.glassfish.grizzly.http.HttpRequestPacket,long)>(v, v);
return 1;
label:
return 0;
}
private java.io.File getJarFile(java.lang.String) throws java.net.MalformedURLException, java.io.FileNotFoundException
{
java.net.MalformedURLException v;
org.glassfish.grizzly.http.server.CLStaticHttpHandler v;
java.io.File v;
java.io.FileNotFoundException v;
int v, v;
java.lang.String v, v;
boolean v, v;
v := @this: org.glassfish.grizzly.http.server.CLStaticHttpHandler;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int indexOf(java.lang.String)>("!/");
v = (int) -1;
if v != v goto label;
v = new java.net.MalformedURLException;
specialinvoke v.<java.net.MalformedURLException: void <init>(java.lang.String)>("The jar file delimeter were not found");
throw v;
label:
v = new java.io.File;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: boolean isFile()>();
if v != 0 goto label;
label:
v = new java.io.FileNotFoundException;
specialinvoke v.<java.io.FileNotFoundException: void <init>(java.lang.String)>("The jar file was not found");
throw v;
label:
return v;
}
private static void closeJarFileIfNeeded(java.net.JarURLConnection, java.util.jar.JarFile) throws java.io.IOException
{
java.util.jar.JarFile v;
java.net.JarURLConnection v;
boolean v;
v := @parameter: java.net.JarURLConnection;
v := @parameter: java.util.jar.JarFile;
v = virtualinvoke v.<java.net.JarURLConnection: boolean getUseCaches()>();
if v != 0 goto label;
virtualinvoke v.<java.util.jar.JarFile: void close()>();
label:
return;
}
static void <clinit>()
{
java.util.logging.Logger v;
java.lang.Class v, v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v;
v = class "Lorg/glassfish/grizzly/http/server/CLStaticHttpHandler;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<org.glassfish.grizzly.http.server.CLStaticHttpHandler: boolean $assertionsDisabled> = v;
v = staticinvoke <org.glassfish.grizzly.Grizzly: java.util.logging.Logger logger(java.lang.Class)>(class "Lorg/glassfish/grizzly/http/server/CLStaticHttpHandler;");
<org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.util.logging.Logger LOGGER> = v;
v = class "Lorg/glassfish/grizzly/http/server/CLStaticHttpHandler;";
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[])>("\u.check-non-slash-terminated-folders");
<org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.lang.String CHECK_NON_SLASH_TERMINATED_FOLDERS_PROP> = v;
v = <org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.lang.String CHECK_NON_SLASH_TERMINATED_FOLDERS_PROP>;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>(v);
if v == null goto label;
v = <org.glassfish.grizzly.http.server.CLStaticHttpHandler: java.lang.String CHECK_NON_SLASH_TERMINATED_FOLDERS_PROP>;
v = staticinvoke <java.lang.Boolean: boolean getBoolean(java.lang.String)>(v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
<org.glassfish.grizzly.http.server.CLStaticHttpHandler: boolean CHECK_NON_SLASH_TERMINATED_FOLDERS> = v;
return;
}
}