public abstract class org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory extends java.lang.Object implements com.esotericsoftware.kryo.pool.KryoFactory
{
private final java.util.Set registrations;
private boolean registrationRequired;
private volatile boolean kryoCreated;
public void <init>()
{
java.util.LinkedHashSet v;
org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory v;
v := @this: org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
v.<org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory: java.util.Set registrations> = v;
return;
}
public void registerClass(java.lang.Class)
{
java.lang.IllegalStateException v;
java.util.Set v;
java.lang.Class v;
boolean v;
org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory v;
v := @this: org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory;
v := @parameter: java.lang.Class;
v = v.<org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory: boolean kryoCreated>;
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Can\'t register class after creating kryo instance");
throw v;
label:
v = v.<org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory: java.util.Set registrations>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
return;
}
public com.esotericsoftware.kryo.Kryo create()
{
com.esotericsoftware.kryo.serializers.DefaultSerializers$BigDecimalSerializer v;
java.lang.String[] v;
de.javakaffee.kryoserializers.RegexSerializer v;
de.javakaffee.kryoserializers.URISerializer v;
java.util.Map v;
java.util.function.BiConsumer v;
boolean v, v, v;
com.esotericsoftware.kryo.serializers.DefaultSerializers$BigIntegerSerializer v;
org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory v;
com.esotericsoftware.kryo.serializers.JavaSerializer v;
de.javakaffee.kryoserializers.BitSetSerializer v;
java.util.Iterator v;
de.javakaffee.kryoserializers.JdkProxySerializer v;
java.util.Set v;
de.javakaffee.kryoserializers.ArraysAsListSerializer v;
de.javakaffee.kryoserializers.UUIDSerializer v;
de.javakaffee.kryoserializers.GregorianCalendarSerializer v;
org.apache.dubbo.common.serialize.kryo.CompatibleKryo v;
java.util.List v;
java.lang.Class v;
java.lang.Object v;
v := @this: org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory;
v = v.<org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory: boolean kryoCreated>;
if v != 0 goto label;
v.<org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory: boolean kryoCreated> = 1;
label:
v = new org.apache.dubbo.common.serialize.kryo.CompatibleKryo;
specialinvoke v.<org.apache.dubbo.common.serialize.kryo.CompatibleKryo: void <init>()>();
v = v.<org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory: boolean registrationRequired>;
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: void setRegistrationRequired(boolean)>(v);
v = new com.esotericsoftware.kryo.serializers.JavaSerializer;
specialinvoke v.<com.esotericsoftware.kryo.serializers.JavaSerializer: void <init>()>();
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: void addDefaultSerializer(java.lang.Class,com.esotericsoftware.kryo.Serializer)>(class "Ljava/lang/Throwable;", v);
v = newarray (java.lang.String)[1];
v[0] = "";
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = new de.javakaffee.kryoserializers.ArraysAsListSerializer;
specialinvoke v.<de.javakaffee.kryoserializers.ArraysAsListSerializer: void <init>()>();
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class,com.esotericsoftware.kryo.Serializer)>(v, v);
v = new de.javakaffee.kryoserializers.GregorianCalendarSerializer;
specialinvoke v.<de.javakaffee.kryoserializers.GregorianCalendarSerializer: void <init>()>();
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class,com.esotericsoftware.kryo.Serializer)>(class "Ljava/util/GregorianCalendar;", v);
v = new de.javakaffee.kryoserializers.JdkProxySerializer;
specialinvoke v.<de.javakaffee.kryoserializers.JdkProxySerializer: void <init>()>();
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class,com.esotericsoftware.kryo.Serializer)>(class "Ljava/lang/reflect/InvocationHandler;", v);
v = new com.esotericsoftware.kryo.serializers.DefaultSerializers$BigDecimalSerializer;
specialinvoke v.<com.esotericsoftware.kryo.serializers.DefaultSerializers$BigDecimalSerializer: void <init>()>();
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class,com.esotericsoftware.kryo.Serializer)>(class "Ljava/math/BigDecimal;", v);
v = new com.esotericsoftware.kryo.serializers.DefaultSerializers$BigIntegerSerializer;
specialinvoke v.<com.esotericsoftware.kryo.serializers.DefaultSerializers$BigIntegerSerializer: void <init>()>();
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class,com.esotericsoftware.kryo.Serializer)>(class "Ljava/math/BigInteger;", v);
v = new de.javakaffee.kryoserializers.RegexSerializer;
specialinvoke v.<de.javakaffee.kryoserializers.RegexSerializer: void <init>()>();
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class,com.esotericsoftware.kryo.Serializer)>(class "Ljava/util/regex/Pattern;", v);
v = new de.javakaffee.kryoserializers.BitSetSerializer;
specialinvoke v.<de.javakaffee.kryoserializers.BitSetSerializer: void <init>()>();
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class,com.esotericsoftware.kryo.Serializer)>(class "Ljava/util/BitSet;", v);
v = new de.javakaffee.kryoserializers.URISerializer;
specialinvoke v.<de.javakaffee.kryoserializers.URISerializer: void <init>()>();
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class,com.esotericsoftware.kryo.Serializer)>(class "Ljava/net/URI;", v);
v = new de.javakaffee.kryoserializers.UUIDSerializer;
specialinvoke v.<de.javakaffee.kryoserializers.UUIDSerializer: void <init>()>();
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class,com.esotericsoftware.kryo.Serializer)>(class "Ljava/util/UUID;", v);
staticinvoke <de.javakaffee.kryoserializers.UnmodifiableCollectionsSerializer: void registerSerializers(com.esotericsoftware.kryo.Kryo)>(v);
staticinvoke <de.javakaffee.kryoserializers.SynchronizedCollectionsSerializer: void registerSerializers(com.esotericsoftware.kryo.Kryo)>(v);
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/util/HashMap;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/util/ArrayList;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/util/LinkedList;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/util/HashSet;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/util/TreeSet;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/util/Hashtable;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/util/Date;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/util/Calendar;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/util/concurrent/ConcurrentHashMap;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/text/SimpleDateFormat;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/util/GregorianCalendar;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/util/Vector;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/util/BitSet;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/lang/StringBuffer;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/lang/StringBuilder;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "Ljava/lang/Object;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "[Ljava/lang/Object;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "[Ljava/lang/String;");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "[B");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "[C");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "[I");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "[F");
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(class "[D");
v = v.<org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory: java.util.Set registrations>;
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()>();
virtualinvoke v.<com.esotericsoftware.kryo.Kryo: com.esotericsoftware.kryo.Registration register(java.lang.Class)>(v);
goto label;
label:
v = staticinvoke <org.apache.dubbo.common.serialize.support.SerializableClassRegistry: java.util.Map getRegisteredClasses()>();
v = staticinvoke <org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory$lambda_create_0__638: java.util.function.BiConsumer bootstrap$(com.esotericsoftware.kryo.Kryo)>(v);
interfaceinvoke v.<java.util.Map: void forEach(java.util.function.BiConsumer)>(v);
return v;
}
public void setRegistrationRequired(boolean)
{
boolean v;
org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory v;
v := @this: org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory;
v := @parameter: boolean;
v.<org.apache.dubbo.common.serialize.kryo.utils.AbstractKryoFactory: boolean registrationRequired> = v;
return;
}
public abstract void returnKryo(com.esotericsoftware.kryo.Kryo);
public abstract com.esotericsoftware.kryo.Kryo getKryo();
}