public class org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl extends java.lang.Object implements org.glassfish.common.util.ObjectInputOutputStreamFactory
{
private static final java.util.logging.Logger logger;
private org.osgi.framework.BundleContext ctx;
org.osgi.service.packageadmin.PackageAdmin pkgAdm;
private java.util.concurrent.ConcurrentHashMap name2Id;
private static final java.lang.String NOT_A_BUNDLE_KEY;
static final boolean $assertionsDisabled;
public void <init>(org.osgi.framework.BundleContext)
{
java.util.concurrent.ConcurrentHashMap v;
org.osgi.framework.BundleContext v;
org.osgi.util.tracker.BundleTracker v;
org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl v;
java.lang.Class v, v;
java.lang.Object v, v;
java.lang.String v;
org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl$1 v;
org.osgi.framework.ServiceReference v;
v := @this: org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl;
v := @parameter: org.osgi.framework.BundleContext;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: java.util.concurrent.ConcurrentHashMap name2Id> = v;
v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: org.osgi.framework.BundleContext ctx> = v;
v = class "Lorg/osgi/service/packageadmin/PackageAdmin;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<org.osgi.framework.BundleContext: org.osgi.framework.ServiceReference getServiceReference(java.lang.String)>(v);
v = class "Lorg/osgi/service/packageadmin/PackageAdmin;";
v = interfaceinvoke v.<org.osgi.framework.BundleContext: java.lang.Object getService(org.osgi.framework.ServiceReference)>(v);
v = virtualinvoke v.<java.lang.Class: java.lang.Object cast(java.lang.Object)>(v);
v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: org.osgi.service.packageadmin.PackageAdmin pkgAdm> = v;
v = new org.osgi.util.tracker.BundleTracker;
v = new org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl$1;
specialinvoke v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl$1: void <init>(org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl)>(v);
specialinvoke v.<org.osgi.util.tracker.BundleTracker: void <init>(org.osgi.framework.BundleContext,int,org.osgi.util.tracker.BundleTrackerCustomizer)>(v, 46, v);
virtualinvoke v.<org.osgi.util.tracker.BundleTracker: void open()>();
return;
}
private java.lang.String makeKey(org.osgi.framework.Bundle)
{
org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl v;
java.lang.String v, v;
org.osgi.framework.Bundle v;
org.osgi.framework.Version v;
v := @this: org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl;
v := @parameter: org.osgi.framework.Bundle;
v = interfaceinvoke v.<org.osgi.framework.Bundle: java.lang.String getSymbolicName()>();
v = interfaceinvoke v.<org.osgi.framework.Bundle: org.osgi.framework.Version getVersion()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,org.osgi.framework.Version)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
return v;
}
public java.io.ObjectInputStream createObjectInputStream(java.io.InputStream) throws java.io.IOException
{
org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl$OSGiObjectInputStream v;
java.lang.Thread v;
org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl v;
java.lang.ClassLoader v;
java.io.InputStream v;
v := @this: org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl;
v := @parameter: java.io.InputStream;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
if v != null goto label;
v = staticinvoke <com.sun.enterprise.util.Utility: java.lang.ClassLoader getClassLoader()>();
label:
v = new org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl$OSGiObjectInputStream;
specialinvoke v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl$OSGiObjectInputStream: void <init>(org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl,java.io.InputStream,java.lang.ClassLoader)>(v, v, v);
return v;
}
public java.io.ObjectOutputStream createObjectOutputStream(java.io.OutputStream) throws java.io.IOException
{
java.io.OutputStream v;
org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl v;
org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl$OSGiObjectOutputStream v;
v := @this: org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl;
v := @parameter: java.io.OutputStream;
v = new org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl$OSGiObjectOutputStream;
specialinvoke v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl$OSGiObjectOutputStream: void <init>(org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl,java.io.OutputStream)>(v, v);
return v;
}
public java.lang.Class resolveClass(java.io.ObjectInputStream, java.io.ObjectStreamClass) throws java.io.IOException, java.lang.ClassNotFoundException
{
java.io.ObjectInputStream v;
java.util.concurrent.ConcurrentHashMap v;
java.io.ObjectStreamClass v;
long v;
org.osgi.framework.BundleContext v;
org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl v;
java.lang.Class v, v;
java.lang.Object v;
java.lang.String v, v, v;
org.osgi.framework.Bundle v;
boolean v, v;
v := @this: org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl;
v := @parameter: java.io.ObjectInputStream;
v := @parameter: java.io.ObjectStreamClass;
v = virtualinvoke v.<java.io.ObjectInputStream: java.lang.String readUTF()>();
v = ":";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: java.util.concurrent.ConcurrentHashMap name2Id>;
v = virtualinvoke v.<java.util.concurrent.ConcurrentHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: org.osgi.framework.BundleContext ctx>;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = interfaceinvoke v.<org.osgi.framework.BundleContext: org.osgi.framework.Bundle getBundle(long)>(v);
v = virtualinvoke v.<java.io.ObjectStreamClass: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("[");
if v == 0 goto label;
v = specialinvoke v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: java.lang.Class loadArrayClass(org.osgi.framework.Bundle,java.lang.String)>(v, v);
return v;
label:
v = specialinvoke v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: java.lang.Class loadClassFromBundle(org.osgi.framework.Bundle,java.lang.String)>(v, v);
return v;
label:
return null;
}
public void annotateClass(java.io.ObjectOutputStream, java.lang.Class) throws java.io.IOException
{
org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl v;
java.io.ObjectOutputStream v;
java.lang.Class v;
java.lang.String v;
org.osgi.service.packageadmin.PackageAdmin v;
org.osgi.framework.Bundle v;
v := @this: org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl;
v := @parameter: java.io.ObjectOutputStream;
v := @parameter: java.lang.Class;
v = ":";
v = v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: org.osgi.service.packageadmin.PackageAdmin pkgAdm>;
v = interfaceinvoke v.<org.osgi.service.packageadmin.PackageAdmin: org.osgi.framework.Bundle getBundle(java.lang.Class)>(v);
if v == null goto label;
v = specialinvoke v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: java.lang.String makeKey(org.osgi.framework.Bundle)>(v);
label:
virtualinvoke v.<java.io.ObjectOutputStream: void writeUTF(java.lang.String)>(v);
return;
}
private java.lang.Class loadArrayClass(org.osgi.framework.Bundle, java.lang.String) throws java.lang.ClassNotFoundException
{
java.lang.AssertionError v, v;
int[] v;
int v, v, v, v, v;
org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl v;
java.lang.String v, v;
org.osgi.framework.Bundle v;
boolean v, v;
char v, v, v;
java.lang.Class v, v;
java.lang.Object v;
v := @this: org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl;
v := @parameter: org.osgi.framework.Bundle;
v := @parameter: java.lang.String;
v = <org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(0);
if v == 76 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = 1;
label:
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v != 91 goto label;
v = v + 1;
goto label;
label:
v = <org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: boolean $assertionsDisabled>;
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
if v == 76 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = v + 1;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v - 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(v, v);
v = specialinvoke v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: java.lang.Class loadClassFromBundle(org.osgi.framework.Bundle,java.lang.String)>(v, v);
v = newarray (int)[v];
v = 0;
label:
if v >= v goto label;
v[v] = 0;
v = v + 1;
goto label;
label:
v = staticinvoke <java.lang.reflect.Array: java.lang.Object newInstance(java.lang.Class,int[])>(v, v);
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
return v;
}
private java.lang.Class loadClassFromBundle(org.osgi.framework.Bundle, java.lang.String) throws java.lang.ClassNotFoundException
{
java.security.PrivilegedActionException v;
java.lang.Exception v;
java.lang.SecurityManager v;
org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v;
org.osgi.framework.Bundle v;
org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl$2 v;
v := @this: org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl;
v := @parameter: org.osgi.framework.Bundle;
v := @parameter: java.lang.String;
v = staticinvoke <java.lang.System: java.lang.SecurityManager getSecurityManager()>();
if v != null goto label;
v = interfaceinvoke v.<org.osgi.framework.Bundle: java.lang.Class loadClass(java.lang.String)>(v);
return v;
label:
v = new org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl$2;
specialinvoke v.<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl$2: void <init>(org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl,org.osgi.framework.Bundle,java.lang.String)>(v, v, v);
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedExceptionAction)>(v);
label:
return v;
label:
v := @caughtexception;
v = virtualinvoke v.<java.security.PrivilegedActionException: java.lang.Exception getException()>();
throw v;
catch java.security.PrivilegedActionException from label to label with label;
}
static void <clinit>()
{
java.lang.Class v;
java.util.logging.Logger v;
boolean v, v;
v = class "Lorg/glassfish/common/util/OSGiObjectInputOutputStreamFactoryImpl;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: boolean $assertionsDisabled> = v;
v = staticinvoke <com.sun.enterprise.util.CULoggerInfo: java.util.logging.Logger getLogger()>();
<org.glassfish.common.util.OSGiObjectInputOutputStreamFactoryImpl: java.util.logging.Logger logger> = v;
return;
}
}