public final class org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil extends java.lang.Object
{
private static final org.apache.dubbo.common.logger.Logger logger;
private static final java.util.Map TYPES;
private static final java.lang.String ARRAY_PREFIX;
private static final java.lang.String REFERENCE_TYPE_PREFIX;
private static final java.lang.String REFERENCE_TYPE_SUFFIX;
private void <init>()
{
org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil v;
v := @this: org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static org.apache.dubbo.common.beanutil.JavaBeanDescriptor serialize(java.lang.Object)
{
java.lang.Object v;
org.apache.dubbo.common.beanutil.JavaBeanDescriptor v;
org.apache.dubbo.common.beanutil.JavaBeanAccessor v;
v := @parameter: java.lang.Object;
v = <org.apache.dubbo.common.beanutil.JavaBeanAccessor: org.apache.dubbo.common.beanutil.JavaBeanAccessor FIELD>;
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: org.apache.dubbo.common.beanutil.JavaBeanDescriptor serialize(java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanAccessor)>(v, v);
return v;
}
public static org.apache.dubbo.common.beanutil.JavaBeanDescriptor serialize(java.lang.Object, org.apache.dubbo.common.beanutil.JavaBeanAccessor)
{
java.util.IdentityHashMap v;
java.lang.Object v;
org.apache.dubbo.common.beanutil.JavaBeanDescriptor v;
boolean v;
org.apache.dubbo.common.beanutil.JavaBeanAccessor v;
v := @parameter: java.lang.Object;
v := @parameter: org.apache.dubbo.common.beanutil.JavaBeanAccessor;
if v != null goto label;
return null;
label:
v = v instanceof org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
if v == 0 goto label;
return v;
label:
v = new java.util.IdentityHashMap;
specialinvoke v.<java.util.IdentityHashMap: void <init>()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: org.apache.dubbo.common.beanutil.JavaBeanDescriptor createDescriptorIfAbsent(java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanAccessor,java.util.IdentityHashMap)>(v, v, v);
return v;
}
private static org.apache.dubbo.common.beanutil.JavaBeanDescriptor createDescriptorForSerialize(java.lang.Class)
{
org.apache.dubbo.common.beanutil.JavaBeanDescriptor v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v, v, v, v, v;
java.lang.Class v, v, v, v, v, v;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<java.lang.Class: boolean isEnum()>();
if v == 0 goto label;
v = new org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
specialinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: void <init>(java.lang.String,int)>(v, 2);
return v;
label:
v = virtualinvoke v.<java.lang.Class: boolean isArray()>();
if v == 0 goto label;
v = new org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
v = virtualinvoke v.<java.lang.Class: java.lang.Class getComponentType()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
specialinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: void <init>(java.lang.String,int)>(v, 5);
return v;
label:
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: boolean isPrimitive(java.lang.Class)>(v);
if v == 0 goto label;
v = new org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
specialinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: void <init>(java.lang.String,int)>(v, 6);
return v;
label:
v = class "Ljava/lang/Class;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = new org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
v = class "Ljava/lang/Class;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
specialinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: void <init>(java.lang.String,int)>(v, 1);
return v;
label:
v = class "Ljava/util/Collection;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
v = new org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
specialinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: void <init>(java.lang.String,int)>(v, 3);
return v;
label:
v = class "Ljava/util/Map;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
v = new org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
specialinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: void <init>(java.lang.String,int)>(v, 4);
return v;
label:
v = new org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
specialinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: void <init>(java.lang.String,int)>(v, 7);
return v;
}
private static org.apache.dubbo.common.beanutil.JavaBeanDescriptor createDescriptorIfAbsent(java.lang.Object, org.apache.dubbo.common.beanutil.JavaBeanAccessor, java.util.IdentityHashMap)
{
java.util.IdentityHashMap v;
org.apache.dubbo.common.beanutil.JavaBeanDescriptor v;
org.apache.dubbo.common.beanutil.JavaBeanAccessor v;
java.lang.Class v;
java.lang.Object v, v;
boolean v, v;
v := @parameter: java.lang.Object;
v := @parameter: org.apache.dubbo.common.beanutil.JavaBeanAccessor;
v := @parameter: java.util.IdentityHashMap;
v = virtualinvoke v.<java.util.IdentityHashMap: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.util.IdentityHashMap: java.lang.Object get(java.lang.Object)>(v);
return v;
label:
v = v instanceof org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
if v == 0 goto label;
return v;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: org.apache.dubbo.common.beanutil.JavaBeanDescriptor createDescriptorForSerialize(java.lang.Class)>(v);
virtualinvoke v.<java.util.IdentityHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: void serializeInternal(org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanAccessor,java.util.IdentityHashMap)>(v, v, v, v);
return v;
}
private static void serializeInternal(org.apache.dubbo.common.beanutil.JavaBeanDescriptor, java.lang.Object, org.apache.dubbo.common.beanutil.JavaBeanAccessor, java.util.IdentityHashMap)
{
java.lang.Integer v, v, v, v;
java.util.Map v, v;
java.util.Set v, v;
java.lang.Exception v, v;
java.lang.Object[] v;
org.apache.dubbo.common.beanutil.JavaBeanDescriptor v, v, v, v, v;
java.util.function.BiConsumer v;
java.lang.String v, v, v, v;
java.lang.RuntimeException v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
java.util.IdentityHashMap v;
int v, v, v, v, v;
java.util.Iterator v, v, v;
org.apache.dubbo.common.beanutil.JavaBeanAccessor v;
java.lang.Class v, v, v, v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
v := @parameter: java.lang.Object;
v := @parameter: org.apache.dubbo.common.beanutil.JavaBeanAccessor;
v := @parameter: java.util.IdentityHashMap;
if v == null goto label;
if v != null goto label;
label:
return;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: boolean isEnum()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Enum: java.lang.String name()>();
virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.String setEnumNameProperty(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: boolean isPrimitive(java.lang.Class)>(v);
if v == 0 goto label;
virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.Object setPrimitiveProperty(java.lang.Object)>(v);
goto label;
label:
v = class "Ljava/lang/Class;";
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.String setClassNameProperty(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: boolean isArray()>();
if v == 0 goto label;
v = staticinvoke <java.lang.reflect.Array: int getLength(java.lang.Object)>(v);
v = 0;
label:
if v >= v goto label;
v = staticinvoke <java.lang.reflect.Array: java.lang.Object get(java.lang.Object,int)>(v, v);
if v != null goto label;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.Object setProperty(java.lang.Object,java.lang.Object)>(v, null);
goto label;
label:
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: org.apache.dubbo.common.beanutil.JavaBeanDescriptor createDescriptorIfAbsent(java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanAccessor,java.util.IdentityHashMap)>(v, v, v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.Object setProperty(java.lang.Object,java.lang.Object)>(v, v);
label:
v = v + 1;
goto label;
label:
v = v instanceof java.util.Collection;
if v == 0 goto label;
v = 0;
v = interfaceinvoke v.<java.util.Collection: 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()>();
if v != null goto label;
v = v;
v = v + 1;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.Object setProperty(java.lang.Object,java.lang.Object)>(v, null);
goto label;
label:
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: org.apache.dubbo.common.beanutil.JavaBeanDescriptor createDescriptorIfAbsent(java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanAccessor,java.util.IdentityHashMap)>(v, v, v);
v = v;
v = v + 1;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.Object setProperty(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = v instanceof java.util.Map;
if v == 0 goto label;
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil$lambda_serializeInternal_0__134: java.util.function.BiConsumer bootstrap$(org.apache.dubbo.common.beanutil.JavaBeanAccessor,java.util.IdentityHashMap,org.apache.dubbo.common.beanutil.JavaBeanDescriptor)>(v, v, v);
interfaceinvoke v.<java.util.Map: void forEach(java.util.function.BiConsumer)>(v);
goto label;
label:
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanAccessor: boolean isAccessByMethod(org.apache.dubbo.common.beanutil.JavaBeanAccessor)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: java.util.Map getBeanPropertyReadMethods(java.lang.Class)>(v);
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
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()>();
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
if v == null goto label;
label:
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: org.apache.dubbo.common.beanutil.JavaBeanDescriptor createDescriptorIfAbsent(java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanAccessor,java.util.IdentityHashMap)>(v, v, v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.Object setProperty(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanAccessor: boolean isAccessByField(org.apache.dubbo.common.beanutil.JavaBeanAccessor)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: java.util.Map getBeanPropertyFields(java.lang.Class)>(v);
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
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()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: boolean containsProperty(java.lang.Object)>(v);
if v != 0 goto label;
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
label:
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: org.apache.dubbo.common.beanutil.JavaBeanDescriptor createDescriptorIfAbsent(java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanAccessor,java.util.IdentityHashMap)>(v, v, v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.Object setProperty(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
public static java.lang.Object deserialize(org.apache.dubbo.common.beanutil.JavaBeanDescriptor)
{
java.lang.Thread v;
java.lang.Object v;
java.lang.ClassLoader v;
org.apache.dubbo.common.beanutil.JavaBeanDescriptor v;
v := @parameter: org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Object deserialize(org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader)>(v, v);
return v;
}
public static java.lang.Object deserialize(org.apache.dubbo.common.beanutil.JavaBeanDescriptor, java.lang.ClassLoader)
{
java.util.IdentityHashMap v;
java.lang.Object v;
java.lang.ClassLoader v;
org.apache.dubbo.common.beanutil.JavaBeanDescriptor v;
v := @parameter: org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
v := @parameter: java.lang.ClassLoader;
if v != null goto label;
return null;
label:
v = new java.util.IdentityHashMap;
specialinvoke v.<java.util.IdentityHashMap: void <init>()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Object instantiateForDeserialize(org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader,java.util.IdentityHashMap)>(v, v, v);
staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: void deserializeInternal(java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader,java.util.IdentityHashMap)>(v, v, v, v);
return v;
}
private static void deserializeInternal(java.lang.Object, org.apache.dubbo.common.beanutil.JavaBeanDescriptor, java.lang.ClassLoader, java.util.IdentityHashMap)
{
java.lang.reflect.Method v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.IdentityHashMap v;
java.lang.Exception v;
java.lang.ClassLoader v;
java.lang.Object[] v;
java.lang.ReflectiveOperationException v;
org.apache.dubbo.common.beanutil.JavaBeanDescriptor v;
int v, v, v;
java.lang.String v, v, v, v;
java.util.Iterator v, v, v, v;
org.apache.dubbo.common.logger.Logger v, v;
java.lang.IllegalArgumentException v;
java.lang.reflect.Field v;
java.lang.Class v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: java.lang.Object;
v := @parameter: org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
v := @parameter: java.lang.ClassLoader;
v := @parameter: java.util.IdentityHashMap;
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: boolean isEnumType()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: boolean isClassType()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: boolean isPrimitiveType()>();
if v == 0 goto label;
label:
return;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: boolean isArrayType()>();
if v == 0 goto label;
v = 0;
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: 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()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v instanceof org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Object instantiateForDeserialize(org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader,java.util.IdentityHashMap)>(v, v, v);
staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: void deserializeInternal(java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader,java.util.IdentityHashMap)>(v, v, v, v);
label:
v = v;
v = v + 1;
staticinvoke <java.lang.reflect.Array: void set(java.lang.Object,int,java.lang.Object)>(v, v, v);
goto label;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: boolean isCollectionType()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: 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()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v instanceof org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Object instantiateForDeserialize(org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader,java.util.IdentityHashMap)>(v, v, v);
staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: void deserializeInternal(java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader,java.util.IdentityHashMap)>(v, v, v, v);
label:
interfaceinvoke v.<java.util.Collection: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: boolean isMapType()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: 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()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v instanceof org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Object instantiateForDeserialize(org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader,java.util.IdentityHashMap)>(v, v, v);
staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: void deserializeInternal(java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader,java.util.IdentityHashMap)>(v, v, v, v);
label:
v = v instanceof org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Object instantiateForDeserialize(org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader,java.util.IdentityHashMap)>(v, v, v);
staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: void deserializeInternal(java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader,java.util.IdentityHashMap)>(v, v, v, v);
label:
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: boolean isBeanType()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: 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()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
if v == null goto label;
v = v instanceof org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Object instantiateForDeserialize(org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader,java.util.IdentityHashMap)>(v, v, v);
staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: void deserializeInternal(java.lang.Object,org.apache.dubbo.common.beanutil.JavaBeanDescriptor,java.lang.ClassLoader,java.util.IdentityHashMap)>(v, v, v, v);
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.reflect.Method getSetterMethod(java.lang.Class,java.lang.String,java.lang.Class)>(v, v, v);
v = 0;
label:
if v == null goto label;
v = newarray (java.lang.Object)[1];
v[0] = v;
virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
v = 1;
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: org.apache.dubbo.common.logger.Logger logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.reflect.Method)>(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 set property through method \u0001");
staticinvoke <org.apache.dubbo.common.utils.LogHelper: void warn(org.apache.dubbo.common.logger.Logger,java.lang.String,java.lang.Throwable)>(v, v, v);
label:
if v != 0 goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getField(java.lang.String)>(v);
if v == null goto label;
virtualinvoke v.<java.lang.reflect.Field: void set(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: org.apache.dubbo.common.logger.Logger logger>;
staticinvoke <org.apache.dubbo.common.utils.LogHelper: void warn(org.apache.dubbo.common.logger.Logger,java.lang.String,java.lang.Throwable)>(v, "Failed to set field value", v);
goto label;
label:
v = new java.lang.IllegalArgumentException;
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.String getClassName()>();
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: int getType()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("Unsupported type \u0001:\u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.NoSuchFieldException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
}
private static java.lang.reflect.Method getSetterMethod(java.lang.Class, java.lang.String, java.lang.Class)
{
java.lang.NoSuchMethodException v;
java.lang.reflect.Method[] v;
int v, v;
java.lang.String v, v, v, v, v, v;
java.lang.reflect.Method v, v;
boolean v, v;
java.lang.Class[] v;
java.lang.Class v, v;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int,int)>(0, 1);
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(1);
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[])>("set\u0001\u0001");
v = null;
label:
v = newarray (java.lang.Class)[1];
v[0] = v;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method[] getMethods()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: boolean isBeanPropertyWriteMethod(java.lang.reflect.Method)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = v;
label:
v = v + 1;
goto label;
label:
if v == null goto label;
staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: void makeAccessible(java.lang.reflect.Method)>(v);
label:
return v;
catch java.lang.NoSuchMethodException from label to label with label;
}
private static java.lang.Object instantiate(java.lang.Class) throws java.lang.Exception
{
java.lang.Object[] v, v;
java.lang.ReflectiveOperationException v;
java.lang.reflect.Constructor v, v, v;
java.lang.reflect.Constructor[] v;
int v, v, v, v, v, v, v;
java.lang.String v;
org.apache.dubbo.common.logger.Logger v;
java.lang.Class[] v, v, v, v;
java.lang.Class v, v;
java.lang.Object v, v, v;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor[] getDeclaredConstructors()>();
v = null;
v = 2147483647;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Class[] getParameterTypes()>();
v = lengthof v;
if v >= v goto label;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Class[] getParameterTypes()>();
v = lengthof v;
v = v;
label:
v = v + 1;
goto label;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Class[] getParameterTypes()>();
v = lengthof v;
v = newarray (java.lang.Object)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Object getConstructorArg(java.lang.Class)>(v);
v[v] = v;
v = v + 1;
goto label;
label:
staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: void makeAccessible(java.lang.reflect.Constructor)>(v);
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
label:
return v;
label:
v := @caughtexception;
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<java.lang.ReflectiveOperationException: java.lang.String getMessage()>();
staticinvoke <org.apache.dubbo.common.utils.LogHelper: void warn(org.apache.dubbo.common.logger.Logger,java.lang.String,java.lang.Throwable)>(v, v, v);
label:
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getDeclaredConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
return v;
catch java.lang.InstantiationException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch java.lang.reflect.InvocationTargetException from label to label with label;
}
public static java.lang.Object getConstructorArg(java.lang.Class)
{
java.lang.Float v;
java.lang.Integer v;
java.lang.Character v;
java.lang.Long v;
java.lang.Short v;
java.lang.Byte v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Double v;
java.lang.Boolean v;
java.lang.Class v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: java.lang.Class;
v = <java.lang.Boolean: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = class "Ljava/lang/Boolean;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = <java.lang.Boolean: java.lang.Boolean FALSE>;
return v;
label:
v = <java.lang.Byte: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = class "Ljava/lang/Byte;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Byte: java.lang.Byte valueOf(byte)>(0);
return v;
label:
v = <java.lang.Short: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = class "Ljava/lang/Short;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(0);
return v;
label:
v = <java.lang.Integer: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = class "Ljava/lang/Integer;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(0);
return v;
label:
v = <java.lang.Long: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = class "Ljava/lang/Long;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(0L);
return v;
label:
v = <java.lang.Float: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = class "Ljava/lang/Float;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Float: java.lang.Float valueOf(float)>(0.0F);
return v;
label:
v = <java.lang.Double: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = class "Ljava/lang/Double;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Double: java.lang.Double valueOf(double)>(0.0);
return v;
label:
v = <java.lang.Character: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = class "Ljava/lang/Character;";
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Character: java.lang.Character valueOf(char)>(0);
return v;
label:
return null;
}
private static java.lang.Object instantiateForDeserialize(org.apache.dubbo.common.beanutil.JavaBeanDescriptor, java.lang.ClassLoader, java.util.IdentityHashMap)
{
java.lang.reflect.Method v;
boolean v, v, v, v, v;
java.util.IdentityHashMap v;
java.lang.Exception v, v;
java.lang.ClassLoader v;
java.lang.Object[] v;
org.apache.dubbo.common.beanutil.JavaBeanDescriptor v;
int v;
java.lang.String v, v, v, v, v, v, v, v, v;
java.lang.RuntimeException v, v, v, v;
java.lang.Class v, v, v, v;
java.lang.ClassNotFoundException v, v;
java.lang.Object v, v, v, v;
v := @parameter: org.apache.dubbo.common.beanutil.JavaBeanDescriptor;
v := @parameter: java.lang.ClassLoader;
v := @parameter: java.util.IdentityHashMap;
v = virtualinvoke v.<java.util.IdentityHashMap: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.util.IdentityHashMap: java.lang.Object get(java.lang.Object)>(v);
return v;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: boolean isClassType()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.String getClassNameProperty()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Class name2Class(java.lang.ClassLoader,java.lang.String)>(v, v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.lang.ClassNotFoundException: java.lang.String getMessage()>();
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: boolean isEnumType()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.String getClassName()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Class name2Class(java.lang.ClassLoader,java.lang.String)>(v, v);
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.reflect.Method getEnumValueOfMethod(java.lang.Class)>(v);
v = newarray (java.lang.Object)[2];
v[0] = v;
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.String getEnumPropertyName()>();
v[1] = v;
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(null, v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: boolean isPrimitiveType()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.Object getPrimitiveProperty()>();
return v;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: boolean isArrayType()>();
if v == 0 goto label;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.String getClassName()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Class name2Class(java.lang.ClassLoader,java.lang.String)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.lang.ClassNotFoundException: java.lang.String getMessage()>();
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: int propertySize()>();
v = staticinvoke <java.lang.reflect.Array: java.lang.Object newInstance(java.lang.Class,int)>(v, v);
virtualinvoke v.<java.util.IdentityHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = virtualinvoke v.<org.apache.dubbo.common.beanutil.JavaBeanDescriptor: java.lang.String getClassName()>();
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Class name2Class(java.lang.ClassLoader,java.lang.String)>(v, v);
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Object instantiate(java.lang.Class)>(v);
virtualinvoke v.<java.util.IdentityHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return v;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.Exception from label to label with label;
}
public static java.lang.Class name2Class(java.lang.ClassLoader, java.lang.String) throws java.lang.ClassNotFoundException
{
int[] v;
java.util.Map v, v;
int v, v, v, v;
java.lang.String v;
org.apache.dubbo.common.utils.SerializeClassChecker v;
boolean v, v, v, v;
java.lang.Class v, v, v;
java.lang.Object v, v;
java.lang.ClassLoader v;
v := @parameter: java.lang.ClassLoader;
v := @parameter: java.lang.String;
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
return v;
label:
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: boolean isArray(java.lang.String)>(v);
if v == 0 goto label;
v = 0;
label:
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: boolean isArray(java.lang.String)>(v);
if v == 0 goto label;
v = v + 1;
v = virtualinvoke v.<java.lang.String: java.lang.String substring(int)>(1);
goto label;
label:
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.lang.Class name2Class(java.lang.ClassLoader,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;
label:
v = staticinvoke <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: boolean isReferenceType(java.lang.String)>(v);
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)>(1, v);
label:
v = staticinvoke <org.apache.dubbo.common.utils.SerializeClassChecker: org.apache.dubbo.common.utils.SerializeClassChecker getInstance()>();
virtualinvoke v.<org.apache.dubbo.common.utils.SerializeClassChecker: void validateClass(java.lang.String)>(v);
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String,boolean,java.lang.ClassLoader)>(v, 0, v);
return v;
}
private static boolean isArray(java.lang.String)
{
java.lang.String v;
boolean v, v;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("[");
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static boolean isReferenceType(java.lang.String)
{
java.lang.String v;
boolean v, v, v;
v := @parameter: java.lang.String;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("L");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean endsWith(java.lang.String)>(";");
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static java.lang.reflect.Method getEnumValueOfMethod(java.lang.Class) throws java.lang.NoSuchMethodException
{
java.lang.Class[] v;
java.lang.Class v;
java.lang.reflect.Method v;
v := @parameter: java.lang.Class;
v = newarray (java.lang.Class)[2];
v[0] = class "Ljava/lang/Class;";
v[1] = class "Ljava/lang/String;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("valueOf", v);
return v;
}
static void <clinit>()
{
java.util.Map v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.HashMap v;
java.lang.String v, v, v, v, v, v, v, v;
org.apache.dubbo.common.logger.Logger v;
java.lang.Class 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 = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(class "Lorg/apache/dubbo/common/beanutil/JavaBeanSerializeUtil;");
<org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: org.apache.dubbo.common.logger.Logger logger> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
<org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES> = v;
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Boolean: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = <java.lang.Boolean: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Byte: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = <java.lang.Byte: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Short: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = <java.lang.Short: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Integer: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = <java.lang.Integer: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Long: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = <java.lang.Long: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Float: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = <java.lang.Float: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Double: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = <java.lang.Double: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Void: java.lang.Class TYPE>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = <java.lang.Void: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Boolean: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("Z", v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Byte: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("B", v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Character: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("C", v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Double: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("D", v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Float: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("F", v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Integer: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("I", v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Long: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("J", v);
v = <org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil: java.util.Map TYPES>;
v = <java.lang.Short: java.lang.Class TYPE>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("S", v);
return;
}
}