public class io.quarkus.bootstrap.runner.JarResource extends java.lang.Object implements io.quarkus.bootstrap.runner.ClassLoadingResource
{
private final io.quarkus.bootstrap.runner.ManifestInfo manifestInfo;
private final java.nio.file.Path jarPath;
private final java.util.concurrent.locks.Lock readLock;
private final java.util.concurrent.locks.Lock writeLock;
private volatile java.security.ProtectionDomain protectionDomain;
private volatile java.util.jar.JarFile zipFile;
public void <init>(io.quarkus.bootstrap.runner.ManifestInfo, java.nio.file.Path)
{
io.quarkus.bootstrap.runner.ManifestInfo v;
java.util.concurrent.locks.Lock v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
io.quarkus.bootstrap.runner.JarResource v;
java.nio.file.Path v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
v := @parameter: io.quarkus.bootstrap.runner.ManifestInfo;
v := @parameter: java.nio.file.Path;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<io.quarkus.bootstrap.runner.JarResource: io.quarkus.bootstrap.runner.ManifestInfo manifestInfo> = v;
v.<io.quarkus.bootstrap.runner.JarResource: java.nio.file.Path jarPath> = v;
v = new java.util.concurrent.locks.ReentrantReadWriteLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: void <init>()>();
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock readLock()>();
v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock readLock> = v;
v = interfaceinvoke v.<java.util.concurrent.locks.ReadWriteLock: java.util.concurrent.locks.Lock writeLock()>();
v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock writeLock> = v;
return;
}
public void init(java.lang.ClassLoader)
{
java.net.URL v;
java.lang.RuntimeException v;
java.lang.Exception v;
java.security.ProtectionDomain v;
java.security.cert.Certificate[] v;
java.lang.ClassLoader v;
java.lang.String v, v;
java.net.URI v;
java.security.CodeSource v;
io.quarkus.bootstrap.runner.JarResource v;
java.nio.file.Path v, v, v;
boolean v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
v := @parameter: java.lang.ClassLoader;
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.nio.file.Path jarPath>;
v = interfaceinvoke v.<java.nio.file.Path: java.nio.file.Path toAbsolutePath()>();
v = interfaceinvoke v.<java.nio.file.Path: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("/");
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");
label:
v = new java.net.URI;
specialinvoke v.<java.net.URI: void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>("file", null, v, null);
v = virtualinvoke v.<java.net.URI: java.net.URL toURL()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.nio.file.Path jarPath>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.file.Path)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unable to create protection domain for \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = new java.security.ProtectionDomain;
v = new java.security.CodeSource;
v = (java.security.cert.Certificate[]) null;
specialinvoke v.<java.security.CodeSource: void <init>(java.net.URL,java.security.cert.Certificate[])>(v, v);
specialinvoke v.<java.security.ProtectionDomain: void <init>(java.security.CodeSource,java.security.PermissionCollection,java.lang.ClassLoader,java.security.Principal[])>(v, null, v, null);
v.<io.quarkus.bootstrap.runner.JarResource: java.security.ProtectionDomain protectionDomain> = v;
return;
catch java.net.URISyntaxException from label to label with label;
catch java.net.MalformedURLException from label to label with label;
}
public byte[] getResourceData(java.lang.String)
{
java.lang.Throwable v, v;
byte[] v;
java.util.jar.JarFile v;
long v;
int v, v, v, v;
java.lang.String v, v, v;
io.quarkus.bootstrap.runner.JarResource v;
java.util.zip.ZipEntry v;
java.io.IOException v;
java.lang.RuntimeException v, v;
java.util.concurrent.locks.Lock v, v, v;
java.io.InputStream v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
v := @parameter: java.lang.String;
v = specialinvoke v.<io.quarkus.bootstrap.runner.JarResource: java.util.jar.JarFile readLockAcquireAndGetJarReference()>();
label:
v = virtualinvoke v.<java.util.zip.ZipFile: java.util.zip.ZipEntry getEntry(java.lang.String)>(v);
if v != null goto label;
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock readLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return null;
label:
v = virtualinvoke v.<java.util.zip.ZipFile: java.io.InputStream getInputStream(java.util.zip.ZipEntry)>(v);
label:
v = virtualinvoke v.<java.util.zip.ZipEntry: long getSize()>();
v = newarray (byte)[v];
v = 0;
v = lengthof v;
label:
if v <= 0 goto label;
v = virtualinvoke v.<java.io.InputStream: int read(byte[],int,int)>(v, v, v);
v = (int) -1;
if v != v goto label;
v = new java.lang.RuntimeException;
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[])>("Failed to read all data for \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v + v;
v = v - v;
goto label;
label:
if v == null goto label;
virtualinvoke v.<java.io.InputStream: void close()>();
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock readLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
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[])>("Failed to read zip entry \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v := @caughtexception;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock readLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
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 java.net.URL getResourceURL(java.lang.String)
{
java.lang.Throwable v;
java.net.URL v, v;
java.util.jar.JarFile v;
java.util.jar.JarEntry v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v;
java.net.URI v, v;
io.quarkus.bootstrap.runner.JarResource v;
java.nio.file.Path v;
boolean v;
java.lang.RuntimeException v;
java.lang.Exception v;
java.util.concurrent.locks.Lock v, v, v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
v := @parameter: java.lang.String;
v = specialinvoke v.<io.quarkus.bootstrap.runner.JarResource: java.util.jar.JarFile readLockAcquireAndGetJarReference()>();
label:
v = virtualinvoke v.<java.util.jar.JarFile: java.util.jar.JarEntry getJarEntry(java.lang.String)>(v);
if v != null goto label;
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock readLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return null;
label:
v = staticinvoke <io.smallrye.common.io.jar.JarEntries: java.lang.String getRealName(java.util.jar.JarEntry)>(v);
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>("/");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, v);
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.nio.file.Path jarPath>;
v = interfaceinvoke v.<java.nio.file.Path: java.net.URI toUri()>();
v = new java.net.URI;
v = virtualinvoke v.<java.net.URI: java.lang.String getScheme()>();
v = virtualinvoke v.<java.net.URI: java.lang.String getPath()>();
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.net.URI: void <init>(java.lang.String,java.lang.String,java.lang.String)>(v, v, null);
v = virtualinvoke v.<java.net.URI: java.net.URL toURL()>();
v = new java.net.URL;
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = virtualinvoke v.<java.net.URL: java.lang.String getPath()>();
v = virtualinvoke v.<java.net.URL: java.lang.String getQuery()>();
if v != null goto label;
v = "";
goto label;
label:
v = virtualinvoke v.<java.net.URL: java.lang.String getQuery()>();
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[])>("%3F\u0001");
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");
specialinvoke v.<java.net.URL: void <init>(java.lang.String,java.lang.String,java.lang.String)>("jar", null, v);
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock readLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v := @caughtexception;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock readLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
catch java.net.MalformedURLException from label to label with label;
catch java.net.URISyntaxException 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 io.quarkus.bootstrap.runner.ManifestInfo getManifestInfo()
{
io.quarkus.bootstrap.runner.ManifestInfo v;
io.quarkus.bootstrap.runner.JarResource v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
v = v.<io.quarkus.bootstrap.runner.JarResource: io.quarkus.bootstrap.runner.ManifestInfo manifestInfo>;
return v;
}
public java.security.ProtectionDomain getProtectionDomain()
{
io.quarkus.bootstrap.runner.JarResource v;
java.security.ProtectionDomain v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.security.ProtectionDomain protectionDomain>;
return v;
}
private java.util.jar.JarFile readLockAcquireAndGetJarReference()
{
java.util.concurrent.locks.Lock v, v;
java.util.jar.JarFile v;
io.quarkus.bootstrap.runner.JarResource v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock readLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.jar.JarFile zipFile>;
if v == null goto label;
return v;
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock readLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
specialinvoke v.<io.quarkus.bootstrap.runner.JarResource: void ensureJarFileIsOpen()>();
goto label;
}
private void ensureJarFileIsOpen()
{
java.lang.Throwable v;
java.io.IOException v;
java.util.jar.JarFile v, v;
java.lang.RuntimeException v;
java.io.File v;
java.util.concurrent.locks.Lock v, v, v;
java.lang.String v;
io.quarkus.bootstrap.runner.JarResource v;
java.nio.file.Path v, v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock writeLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.jar.JarFile zipFile>;
if v != null goto label;
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.nio.file.Path jarPath>;
v = interfaceinvoke v.<java.nio.file.Path: java.io.File toFile()>();
v = staticinvoke <io.smallrye.common.io.jar.JarFiles: java.util.jar.JarFile create(java.io.File)>(v);
v.<io.quarkus.bootstrap.runner.JarResource: java.util.jar.JarFile zipFile> = v;
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.nio.file.Path jarPath>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.file.Path)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to open \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock writeLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock writeLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void close()
{
java.lang.Throwable v;
java.util.concurrent.locks.Lock v, v, v;
java.util.jar.JarFile v;
io.quarkus.bootstrap.runner.JarResource v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock writeLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void lock()>();
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.jar.JarFile zipFile>;
if v == null goto label;
v.<io.quarkus.bootstrap.runner.JarResource: java.util.jar.JarFile zipFile> = null;
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock writeLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.util.concurrent.locks.Lock writeLock>;
interfaceinvoke v.<java.util.concurrent.locks.Lock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void resetInternalCaches()
{
io.quarkus.bootstrap.runner.JarResource v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
virtualinvoke v.<io.quarkus.bootstrap.runner.JarResource: void close()>();
return;
}
public java.lang.String toString()
{
java.lang.String v;
io.quarkus.bootstrap.runner.JarResource v;
java.nio.file.Path v, v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.nio.file.Path jarPath>;
v = interfaceinvoke v.<java.nio.file.Path: java.nio.file.Path getFileName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.nio.file.Path)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("JarResource{\u0001}");
return v;
}
public boolean equals(java.lang.Object)
{
io.quarkus.bootstrap.runner.ManifestInfo v, v;
java.lang.Class v, v;
java.lang.Object v;
io.quarkus.bootstrap.runner.JarResource v;
java.nio.file.Path v, v;
boolean v, v, v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
v := @parameter: java.lang.Object;
if v != v goto label;
return 1;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v == v goto label;
label:
return 0;
label:
v = v.<io.quarkus.bootstrap.runner.JarResource: io.quarkus.bootstrap.runner.ManifestInfo manifestInfo>;
v = v.<io.quarkus.bootstrap.runner.JarResource: io.quarkus.bootstrap.runner.ManifestInfo manifestInfo>;
v = staticinvoke <java.util.Objects: boolean equals(java.lang.Object,java.lang.Object)>(v, v);
if v == 0 goto label;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.nio.file.Path jarPath>;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.nio.file.Path jarPath>;
v = interfaceinvoke v.<java.nio.file.Path: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int hashCode()
{
io.quarkus.bootstrap.runner.ManifestInfo v;
java.lang.Object[] v;
int v;
io.quarkus.bootstrap.runner.JarResource v;
java.nio.file.Path v;
v := @this: io.quarkus.bootstrap.runner.JarResource;
v = newarray (java.lang.Object)[2];
v = v.<io.quarkus.bootstrap.runner.JarResource: io.quarkus.bootstrap.runner.ManifestInfo manifestInfo>;
v[0] = v;
v = v.<io.quarkus.bootstrap.runner.JarResource: java.nio.file.Path jarPath>;
v[1] = v;
v = staticinvoke <java.util.Objects: int hash(java.lang.Object[])>(v);
return v;
}
}