public class org.apache.dubbo.common.utils.PojoUtils extends java.lang.Object
{
private static final org.apache.dubbo.common.logger.Logger logger;
private static final java.util.concurrent.ConcurrentMap NAME_METHODS_CACHE;
private static final java.util.concurrent.ConcurrentMap CLASS_FIELD_CACHE;
private static final boolean GENERIC_WITH_CLZ;
private static final java.util.List CLASS_CAN_BE_STRING;
public void <init>()
{
org.apache.dubbo.common.utils.PojoUtils v;
v := @this: org.apache.dubbo.common.utils.PojoUtils;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public static java.lang.Object[] generalize(java.lang.Object[])
{
java.lang.Object[] v, v;
int v, v, v;
java.lang.Object v, v;
v := @parameter: java.lang.Object[];
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.utils.PojoUtils: java.lang.Object generalize(java.lang.Object)>(v);
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
public static java.lang.Object[] realize(java.lang.Object[], java.lang.Class[])
{
java.lang.Object[] v, v;
java.lang.Class[] v;
java.lang.IllegalArgumentException v;
int v, v, v, v, v;
java.lang.Class v;
java.lang.Object v, v;
v := @parameter: java.lang.Object[];
v := @parameter: java.lang.Class[];
v = lengthof v;
v = lengthof v;
if v == v goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("args.length != types.length");
throw v;
label:
v = lengthof v;
v = newarray (java.lang.Object)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v[v];
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object realize(java.lang.Object,java.lang.Class)>(v, v);
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
public static java.lang.Object[] realize(java.lang.Object[], java.lang.Class[], java.lang.reflect.Type[])
{
java.lang.Object[] v, v;
int v, v, v, v, v, v, v;
java.lang.Class[] v;
java.lang.IllegalArgumentException v;
java.lang.reflect.Type v;
java.lang.reflect.Type[] v;
java.lang.Class v;
java.lang.Object v, v;
v := @parameter: java.lang.Object[];
v := @parameter: java.lang.Class[];
v := @parameter: java.lang.reflect.Type[];
v = lengthof v;
v = lengthof v;
if v != v goto label;
v = lengthof v;
v = lengthof v;
if v == v goto label;
label:
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("args.length != types.length");
throw v;
label:
v = lengthof v;
v = newarray (java.lang.Object)[v];
v = 0;
label:
v = lengthof v;
if v >= v goto label;
v = v[v];
v = v[v];
v = v[v];
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object realize(java.lang.Object,java.lang.Class,java.lang.reflect.Type)>(v, v, v);
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
public static java.lang.Object generalize(java.lang.Object)
{
java.lang.Object v, v;
java.util.IdentityHashMap v;
v := @parameter: java.lang.Object;
v = new java.util.IdentityHashMap;
specialinvoke v.<java.util.IdentityHashMap: void <init>()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object generalize(java.lang.Object,java.util.Map)>(v, v);
return v;
}
private static java.lang.Object generalize(java.lang.Object, java.util.Map)
{
java.util.Map v, v;
java.util.Set v;
java.lang.Exception v, v;
java.lang.Object[] v, v;
java.util.ArrayList v;
java.lang.String v, v, v, v, v, v, v, v, v;
java.lang.RuntimeException v, v;
java.lang.reflect.Field v;
java.lang.reflect.Method[] v;
java.util.AbstractCollection v, v;
java.lang.reflect.Method v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String[] v;
java.util.HashMap v;
java.util.HashSet v;
int v, v, v, v, v, v, v, v, v;
java.util.Iterator v, v;
java.lang.reflect.Field[] v;
java.lang.Class v, v, v, v, v, v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: java.lang.Object;
v := @parameter: java.util.Map;
if v != null goto label;
return null;
label:
v = v instanceof java.lang.Enum;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Enum: java.lang.String name()>();
return v;
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 = class "Ljava/lang/Enum;";
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.Class getComponentType()>();
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
v = staticinvoke <java.lang.reflect.Array: int getLength(java.lang.Object)>(v);
v = newarray (java.lang.String)[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);
v = virtualinvoke v.<java.lang.Enum: java.lang.String name()>();
v[v] = v;
v = v + 1;
goto label;
label:
return v;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: boolean isPrimitives(java.lang.Class)>(v);
if v == 0 goto label;
return v;
label:
v = v instanceof java.lang.Class;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
return v;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
return v;
label:
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
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 = newarray (java.lang.Object)[v];
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, 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);
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object generalize(java.lang.Object,java.util.Map)>(v, v);
v[v] = v;
v = v + 1;
goto label;
label:
return v;
label:
v = v instanceof java.util.Collection;
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Collection: int size()>();
v = v instanceof java.util.List;
if v == 0 goto label;
v = new java.util.ArrayList;
v = v;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
goto label;
label:
v = new java.util.HashSet;
v = v;
specialinvoke v.<java.util.HashSet: void <init>(int)>(v);
label:
v = v;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
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()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object generalize(java.lang.Object,java.util.Map)>(v, v);
interfaceinvoke v.<java.util.Collection: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
label:
v = v instanceof java.util.Map;
if v == 0 goto label;
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.util.Map createMap(java.util.Map)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, 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 = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object generalize(java.lang.Object,java.util.Map)>(v, v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object generalize(java.lang.Object,java.util.Map)>(v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return v;
label:
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.apache.dubbo.common.utils.PojoUtils: boolean GENERIC_WITH_CLZ>;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("class", v);
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
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 isBeanPropertyReadMethod(java.lang.reflect.Method)>(v);
if v == 0 goto label;
staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: void makeAccessible(java.lang.reflect.Method)>(v);
label:
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: java.lang.String getPropertyNameFromBeanReadMethod(java.lang.reflect.Method)>(v);
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);
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object generalize(java.lang.Object,java.util.Map)>(v, v);
interfaceinvoke v.<java.util.Map: 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:
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field[] getFields()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: boolean isPublicInstanceField(java.lang.reflect.Field)>(v);
if v == 0 goto label;
label:
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Object get(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = v instanceof java.util.Map;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.String getName()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object generalize(java.lang.Object,java.util.Map)>(v, v);
interfaceinvoke v.<java.util.Map: 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:
v = v + 1;
goto label;
label:
return v;
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 realize(java.lang.Object, java.lang.Class)
{
java.util.IdentityHashMap v;
java.lang.Class v;
java.lang.Object v, v;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Class;
v = new java.util.IdentityHashMap;
specialinvoke v.<java.util.IdentityHashMap: void <init>()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object realize0(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.util.Map)>(v, v, null, v);
return v;
}
public static java.lang.Object realize(java.lang.Object, java.lang.Class, java.lang.reflect.Type)
{
java.util.IdentityHashMap v;
java.lang.reflect.Type v;
java.lang.Class v;
java.lang.Object v, v;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.reflect.Type;
v = new java.util.IdentityHashMap;
specialinvoke v.<java.util.IdentityHashMap: void <init>()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object realize0(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.util.Map)>(v, v, v, v);
return v;
}
private static java.util.Collection createCollection(java.lang.Class, int)
{
java.lang.Exception v;
java.util.ArrayList v, v;
java.util.HashSet v;
int v, v;
java.lang.Class v;
java.lang.Object v;
boolean v, v, v, v;
v := @parameter: java.lang.Class;
v := @parameter: int;
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(class "Ljava/util/ArrayList;");
if v == 0 goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
return v;
label:
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(class "Ljava/util/HashSet;");
if v == 0 goto label;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>(int)>(v);
return v;
label:
v = virtualinvoke v.<java.lang.Class: boolean isInterface()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.Class: int getModifiers()>();
v = staticinvoke <java.lang.reflect.Modifier: boolean isAbstract(int)>(v);
if v != 0 goto label;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
label:
return v;
label:
v := @caughtexception;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
return v;
catch java.lang.Exception from label to label with label;
}
private static java.util.Map createMap(java.util.Map)
{
java.lang.Object[] v;
java.util.HashMap v, v;
java.lang.reflect.Constructor v;
java.util.LinkedHashMap v;
java.util.Map v, v;
java.util.Hashtable v;
java.util.WeakHashMap v;
java.util.IdentityHashMap v;
java.util.Properties v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.Class[] v;
java.lang.Exception v, v;
java.util.concurrent.ConcurrentSkipListMap v;
java.util.TreeMap v;
java.lang.Class v;
java.lang.Object v;
v := @parameter: java.util.Map;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if class "Ljava/util/HashMap;" != v goto label;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
goto label;
label:
if class "Ljava/util/Hashtable;" != v goto label;
v = new java.util.Hashtable;
specialinvoke v.<java.util.Hashtable: void <init>()>();
goto label;
label:
if class "Ljava/util/IdentityHashMap;" != v goto label;
v = new java.util.IdentityHashMap;
specialinvoke v.<java.util.IdentityHashMap: void <init>()>();
goto label;
label:
if class "Ljava/util/LinkedHashMap;" != v goto label;
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
goto label;
label:
if class "Ljava/util/Properties;" != v goto label;
v = new java.util.Properties;
specialinvoke v.<java.util.Properties: void <init>()>();
goto label;
label:
if class "Ljava/util/TreeMap;" != v goto label;
v = new java.util.TreeMap;
specialinvoke v.<java.util.TreeMap: void <init>()>();
goto label;
label:
if class "Ljava/util/WeakHashMap;" != v goto label;
v = new java.util.WeakHashMap;
specialinvoke v.<java.util.WeakHashMap: void <init>()>();
return v;
label:
if class "Ljava/util/concurrent/ConcurrentHashMap;" != v goto label;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
goto label;
label:
if class "Ljava/util/concurrent/ConcurrentSkipListMap;" != v goto label;
v = new java.util.concurrent.ConcurrentSkipListMap;
specialinvoke v.<java.util.concurrent.ConcurrentSkipListMap: void <init>()>();
goto label;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
label:
goto label;
label:
v := @caughtexception;
label:
if v != null goto label;
label:
v = newarray (java.lang.Class)[1];
v[0] = class "Ljava/util/Map;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[1];
v = <java.util.Collections: java.util.Map EMPTY_MAP>;
v[0] = v;
virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
label:
goto label;
label:
v := @caughtexception;
label:
if v != null goto label;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = v;
label:
return v;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
private static java.lang.Object realize0(java.lang.Object, java.lang.Class, java.lang.reflect.Type, java.util.Map)
{
java.lang.Thread v;
java.util.Map v, v;
java.lang.ClassLoader v;
java.lang.Object[] v;
java.lang.Class[] v, v;
java.lang.reflect.Field v, v;
java.lang.reflect.Method v;
java.util.Collection v, v;
int 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, v, v;
java.lang.Object 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, v, v, v, v, v, v, v, v, v;
java.util.Set v, v;
java.lang.Exception v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v;
java.lang.RuntimeException v, v;
java.lang.ClassNotFoundException v;
org.apache.dubbo.common.utils.PojoUtils$PojoInvocationHandler v;
java.lang.Enum v, v;
boolean 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, v, v, v, v, v, v, v, v;
java.lang.IllegalAccessException v;
java.lang.reflect.Type v, v, v, v, v, v, v, v;
java.lang.reflect.Type[] v;
java.util.HashMap v;
org.apache.dubbo.common.utils.SerializeClassChecker v;
java.util.Iterator v, v, v, v;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.reflect.Type;
v := @parameter: java.util.Map;
if v != null goto label;
return null;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.Class: boolean isEnum()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v != class "Ljava/lang/String;" goto label;
v = staticinvoke <java.lang.Enum: java.lang.Enum valueOf(java.lang.Class,java.lang.String)>(v, v);
return v;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: boolean isPrimitives(java.lang.Class)>(v);
if v == 0 goto label;
if v == null goto label;
v = virtualinvoke v.<java.lang.Class: boolean isArray()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.Class getComponentType()>();
v = virtualinvoke v.<java.lang.Class: boolean isEnum()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
if v == class "[Ljava/lang/String;" goto label;
label:
v = staticinvoke <org.apache.dubbo.common.utils.CompatibleTypeUtils: java.lang.Object compatibleTypeConvert(java.lang.Object,java.lang.Class)>(v, v);
return v;
label:
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
return v;
label:
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: boolean isArray()>();
if v == 0 goto label;
v = class "Ljava/util/Collection;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.Class getComponentType()>();
v = staticinvoke <java.lang.reflect.Array: int getLength(java.lang.Object)>(v);
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.util.Collection createCollection(java.lang.Class,int)>(v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, 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);
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object realize0(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.util.Map)>(v, v, null, v);
interfaceinvoke v.<java.util.Collection: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
return v;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.Class: boolean isArray()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.Class getComponentType()>();
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.Class getComponentType()>();
label:
v = v;
v = staticinvoke <java.lang.reflect.Array: int getLength(java.lang.Object)>(v);
v = staticinvoke <java.lang.reflect.Array: java.lang.Object newInstance(java.lang.Class,int)>(v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, 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);
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object realize0(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.util.Map)>(v, v, null, v);
staticinvoke <java.lang.reflect.Array: void set(java.lang.Object,int,java.lang.Object)>(v, v, v);
v = v + 1;
goto label;
label:
return v;
label:
v = v instanceof java.util.Collection;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Class: boolean isArray()>();
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.Class getComponentType()>();
v = interfaceinvoke v.<java.util.Collection: int size()>();
v = staticinvoke <java.lang.reflect.Array: java.lang.Object newInstance(java.lang.Class,int)>(v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
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()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object realize0(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.util.Map)>(v, v, null, v);
staticinvoke <java.lang.reflect.Array: void set(java.lang.Object,int,java.lang.Object)>(v, v, v);
v = v + 1;
goto label;
label:
return v;
label:
v = interfaceinvoke v.<java.util.Collection: int size()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.util.Collection createCollection(java.lang.Class,int)>(v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
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()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.reflect.Type getGenericClassByIndex(java.lang.reflect.Type,int)>(v, 0);
if v == null goto label;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
label:
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object realize0(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.util.Map)>(v, v, v, v);
interfaceinvoke v.<java.util.Collection: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
label:
v = v instanceof java.util.Map;
if v == 0 goto label;
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("class");
v = v instanceof java.lang.String;
if v == 0 goto 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);
label:
v = staticinvoke <org.apache.dubbo.common.utils.ClassUtils: java.lang.Class forName(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
v = virtualinvoke v.<java.lang.Class: boolean isEnum()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("name");
if v == null goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v = staticinvoke <java.lang.Enum: java.lang.Enum valueOf(java.lang.Class,java.lang.String)>(v, v);
return v;
label:
v = virtualinvoke v.<java.lang.Class: boolean isInterface()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
interfaceinvoke v.<java.util.Map: void putAll(java.util.Map)>(v);
v = <org.apache.dubbo.common.utils.PojoUtils: boolean GENERIC_WITH_CLZ>;
if v == 0 goto label;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>("class");
label:
goto label;
label:
v := @caughtexception;
label:
v = class "Ljava/util/Map;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
if v != class "Ljava/lang/Object;" goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.reflect.Type getKeyTypeForMap(java.lang.Class)>(v);
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.reflect.Type getGenericClassByIndex(java.lang.reflect.Type,int)>(v, 0);
v = v instanceof java.lang.Class;
if v == 0 goto label;
v = v instanceof java.lang.Class;
if v == 0 goto label;
v = interfaceinvoke v.<java.lang.reflect.Type: java.lang.String getTypeName()>();
v = interfaceinvoke v.<java.lang.reflect.Type: java.lang.String getTypeName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
if v == 0 goto label;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>(int)>(0);
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.util.Map createMap(java.util.Map)>(v);
goto label;
label:
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.util.Map createMap(java.util.Map)>(v);
label:
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, 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 = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.reflect.Type getGenericClassByIndex(java.lang.reflect.Type,int)>(v, 0);
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.reflect.Type getGenericClassByIndex(java.lang.reflect.Type,int)>(v, 1);
v = v instanceof java.lang.Class;
if v != 0 goto label;
v = v instanceof java.lang.reflect.ParameterizedType;
if v == 0 goto label;
interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type getRawType()>();
goto label;
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
if v != null goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
label:
v = v;
label:
v = v instanceof java.lang.Class;
if v != 0 goto label;
v = v instanceof java.lang.reflect.ParameterizedType;
if v == 0 goto label;
interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type getRawType()>();
goto label;
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
if v != null goto label;
v = null;
goto label;
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
label:
v = v;
label:
if v != null goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
goto label;
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object realize0(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.util.Map)>(v, v, v, v);
label:
v = v;
if v != null goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
goto label;
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object realize0(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.util.Map)>(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:
return v;
label:
v = virtualinvoke v.<java.lang.Class: boolean isInterface()>();
if v == 0 goto label;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = virtualinvoke v.<java.lang.Thread: java.lang.ClassLoader getContextClassLoader()>();
v = newarray (java.lang.Class)[1];
v[0] = v;
v = new org.apache.dubbo.common.utils.PojoUtils$PojoInvocationHandler;
specialinvoke v.<org.apache.dubbo.common.utils.PojoUtils$PojoInvocationHandler: void <init>(java.util.Map)>(v);
v = staticinvoke <java.lang.reflect.Proxy: java.lang.Object newProxyInstance(java.lang.ClassLoader,java.lang.Class[],java.lang.reflect.InvocationHandler)>(v, v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return v;
label:
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object newInstance(java.lang.Class)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, 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 = v instanceof java.lang.String;
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
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()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.reflect.Method getSetterMethod(java.lang.Class,java.lang.String,java.lang.Class)>(v, v, v);
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.reflect.Field getField(java.lang.Class,java.lang.String)>(v, v);
if v == null goto label;
staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: void makeAccessible(java.lang.reflect.Method)>(v);
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.reflect.Type[] getGenericParameterTypes()>();
v = v[0];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Class[] getParameterTypes()>();
v = v[0];
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object realize0(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.util.Map)>(v, v, v, v);
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);
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.Object,java.lang.Class,java.lang.String)>(v, v, 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[])>("Failed to set pojo \u property \u value \u0001(\u), cause: \u0001");
v = <org.apache.dubbo.common.utils.PojoUtils: org.apache.dubbo.common.logger.Logger logger>;
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.Class getType()>();
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.reflect.Type getGenericType()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object realize0(java.lang.Object,java.lang.Class,java.lang.reflect.Type,java.util.Map)>(v, v, v, v);
label:
virtualinvoke v.<java.lang.reflect.Field: void set(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.IllegalAccessException: java.lang.String getMessage()>();
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[])>("Failed to set field \u of pojo \u : \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v instanceof java.lang.Throwable;
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("message");
v = v instanceof java.lang.String;
if v == 0 goto label;
label:
v = class "Ljava/lang/Throwable;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getDeclaredField(java.lang.String)>("detailMessage");
staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: void makeAccessible(java.lang.reflect.Field)>(v);
virtualinvoke v.<java.lang.reflect.Field: void set(java.lang.Object,java.lang.Object)>(v, v);
label:
goto label;
label:
v := @caughtexception;
label:
return 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.Exception from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
catch java.lang.Exception from label to label with label;
}
private static java.lang.reflect.Type getKeyTypeForMap(java.lang.Class)
{
java.lang.reflect.Type v, v, v;
int v, v;
java.lang.reflect.Type[] v, v;
java.lang.Class v;
java.lang.String v, v;
boolean v, v, v;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Type[] getGenericInterfaces()>();
v = staticinvoke <org.apache.dubbo.common.utils.ArrayUtils: boolean isEmpty(java.lang.Object[])>(v);
if v != 0 goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v instanceof java.lang.reflect.ParameterizedType;
if v == 0 goto label;
v = "java.util.Map";
v = interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type getRawType()>();
v = interfaceinvoke v.<java.lang.reflect.Type: java.lang.String getTypeName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type[] getActualTypeArguments()>();
v = v[0];
return v;
label:
v = v + 1;
goto label;
label:
return null;
}
private static java.lang.reflect.Type getGenericClassByIndex(java.lang.reflect.Type, int)
{
java.lang.reflect.Type v, v;
int v;
java.lang.reflect.Type[] v;
boolean v;
v := @parameter: java.lang.reflect.Type;
v := @parameter: int;
v = null;
v = v instanceof java.lang.reflect.ParameterizedType;
if v == 0 goto label;
v = interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type[] getActualTypeArguments()>();
v = v[v];
label:
return v;
}
private static java.lang.Object newInstance(java.lang.Class)
{
java.lang.Throwable v;
java.lang.Object[] v;
java.lang.ReflectiveOperationException v;
java.lang.reflect.Constructor v, v;
java.util.function.Function v;
java.lang.reflect.Constructor[] v;
int v, v, v, v, v, v, v;
java.lang.String v, v, v;
java.lang.Class[] v, v, v, v, v;
java.lang.RuntimeException v, v;
java.util.stream.Stream v, v;
java.lang.Class v;
java.lang.Object v, v;
v := @parameter: java.lang.Class;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Object newInstance()>();
label:
return v;
label:
v := @caughtexception;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor[] getDeclaredConstructors()>();
v = lengthof v;
if v != 0 goto label;
v = new java.lang.RuntimeException;
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[])>("Illegal constructor: \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v[0];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Class[] getParameterTypes()>();
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.reflect.Constructor: java.lang.Class[] getParameterTypes()>();
v = lengthof v;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Class[] getParameterTypes()>();
v = lengthof v;
if v >= v goto label;
v = v;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Class[] getParameterTypes()>();
v = lengthof v;
if v == 0 goto label;
label:
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.Class[] getParameterTypes()>();
v = staticinvoke <java.util.Arrays: java.util.stream.Stream stream(java.lang.Object[])>(v);
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils$getDefaultValue__235: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object[] toArray()>();
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.lang.ReflectiveOperationException: java.lang.String getMessage()>();
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.InstantiationException from label to label with label;
catch java.lang.reflect.InvocationTargetException from label to label with label;
catch java.lang.IllegalAccessException from label to label with label;
}
public static java.lang.Object getDefaultValue(java.lang.Class)
{
java.lang.Integer v;
java.lang.Character v;
java.lang.Short v;
java.lang.Boolean v;
java.lang.String v, v, v, v, v, v, v, v;
java.lang.Byte v;
boolean v, v, v, v, v;
java.lang.Class v;
v := @parameter: java.lang.Class;
v = "char";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = staticinvoke <java.lang.Character: java.lang.Character valueOf(char)>(0);
return v;
label:
v = "boolean";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
return v;
label:
v = "byte";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = staticinvoke <java.lang.Byte: java.lang.Byte valueOf(byte)>(0);
return v;
label:
v = "short";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = staticinvoke <java.lang.Short: java.lang.Short valueOf(short)>(0);
return v;
label:
v = virtualinvoke v.<java.lang.Class: boolean isPrimitive()>();
if v == 0 goto label;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(0);
goto label;
label:
v = null;
label:
return v;
}
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;
java.util.concurrent.ConcurrentMap v, v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.reflect.Method v;
boolean v, v;
java.lang.Class[] v;
java.lang.Class v, v;
java.lang.Object 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 = <org.apache.dubbo.common.utils.PojoUtils: java.util.concurrent.ConcurrentMap NAME_METHODS_CACHE>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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[])>("\u.\u0001(\u)");
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
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;
goto label;
label:
v = v + 1;
goto label;
label:
if v == null goto label;
v = <org.apache.dubbo.common.utils.PojoUtils: java.util.concurrent.ConcurrentMap NAME_METHODS_CACHE>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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[])>("\u.\u0001(\u)");
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
catch java.lang.NoSuchMethodException from label to label with label;
}
private static java.lang.reflect.Field getField(java.lang.Class, java.lang.String)
{
java.util.function.Function v;
java.util.concurrent.ConcurrentMap v, v, v, v;
java.lang.NoSuchFieldException v;
int v, v;
java.lang.String v, v;
boolean v, v, v, v;
java.lang.reflect.Field v, v;
java.lang.reflect.Field[] v;
java.lang.Class v;
java.lang.Object v, v, v, v;
v := @parameter: java.lang.Class;
v := @parameter: java.lang.String;
v = null;
v = <org.apache.dubbo.common.utils.PojoUtils: java.util.concurrent.ConcurrentMap CLASS_FIELD_CACHE>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.apache.dubbo.common.utils.PojoUtils: java.util.concurrent.ConcurrentMap CLASS_FIELD_CACHE>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = <org.apache.dubbo.common.utils.PojoUtils: java.util.concurrent.ConcurrentMap CLASS_FIELD_CACHE>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
return v;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field getDeclaredField(java.lang.String)>(v);
staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: void makeAccessible(java.lang.reflect.Field)>(v);
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Field[] getFields()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: boolean isPublicInstanceField(java.lang.reflect.Field)>(v);
if v == 0 goto label;
v = v;
goto label;
label:
v = v + 1;
goto label;
label:
if v == null goto label;
v = <org.apache.dubbo.common.utils.PojoUtils: java.util.concurrent.ConcurrentMap CLASS_FIELD_CACHE>;
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils$lambda_getField_0__236: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
catch java.lang.NoSuchFieldException from label to label with label;
}
public static boolean isPojo(java.lang.Class)
{
java.lang.Class v, v, v;
boolean v, v, v, v;
v := @parameter: java.lang.Class;
v = staticinvoke <org.apache.dubbo.common.utils.ReflectUtils: boolean isPrimitives(java.lang.Class)>(v);
if v != 0 goto label;
v = class "Ljava/util/Collection;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
v = class "Ljava/util/Map;";
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static void updatePropertyIfAbsent(java.util.function.Supplier, java.util.function.Consumer, java.lang.Object)
{
java.util.function.Consumer v;
java.lang.Object v, v;
java.util.function.Supplier v;
v := @parameter: java.util.function.Supplier;
v := @parameter: java.util.function.Consumer;
v := @parameter: java.lang.Object;
if v == null goto label;
v = interfaceinvoke v.<java.util.function.Supplier: java.lang.Object get()>();
if v != null goto label;
interfaceinvoke v.<java.util.function.Consumer: void accept(java.lang.Object)>(v);
label:
return;
}
public static java.lang.Object mapToPojo(java.util.Map, java.lang.Class) throws java.lang.ReflectiveOperationException
{
java.lang.Object[] v;
java.lang.reflect.Constructor v;
java.util.Map v, v;
boolean v;
java.util.Iterator v;
java.lang.Class[] v;
java.util.Set v;
java.lang.reflect.Type v;
java.lang.Class v;
java.lang.Object v, v, v, v, v, v;
v := @parameter: java.util.Map;
v := @parameter: java.lang.Class;
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);
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 = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = virtualinvoke v.<java.lang.reflect.Field: java.lang.reflect.Type getGenericType()>();
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object getFieldObject(java.lang.Object,java.lang.reflect.Type)>(v, v);
virtualinvoke v.<java.lang.reflect.Field: void set(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return v;
}
private static java.lang.Object getFieldObject(java.lang.Object, java.lang.reflect.Type) throws java.lang.ReflectiveOperationException
{
java.lang.IllegalArgumentException v;
java.lang.reflect.Type v;
java.lang.Object v, v, v;
java.lang.String v, v;
boolean v, v, v, v, v;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.reflect.Type;
v = v instanceof java.lang.Class;
if v == 0 goto label;
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object convertClassType(java.lang.Object,java.lang.Class)>(v, v);
return v;
label:
v = v instanceof java.lang.reflect.ParameterizedType;
if v == 0 goto label;
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object convertParameterizedType(java.lang.Object,java.lang.reflect.ParameterizedType)>(v, v);
return v;
label:
v = v instanceof java.lang.reflect.GenericArrayType;
if v != 0 goto label;
v = v instanceof java.lang.reflect.TypeVariable;
if v != 0 goto label;
v = v instanceof java.lang.reflect.WildcardType;
if v == 0 goto label;
label:
return null;
label:
v = new java.lang.IllegalArgumentException;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
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[])>("Unrecognized Type: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
}
private static java.lang.Object convertClassType(java.lang.Object, java.lang.Class) throws java.lang.ReflectiveOperationException
{
java.util.List v;
java.lang.Class v, v, v;
java.lang.Object v, v;
java.lang.String v;
boolean v, v, v, v, v;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Class;
v = virtualinvoke v.<java.lang.Class: boolean isPrimitive()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.utils.ClassUtils: boolean isAssignableFrom(java.lang.Class,java.lang.Class)>(v, v);
if v == 0 goto label;
label:
return v;
label:
v = staticinvoke <java.util.Objects: boolean equals(java.lang.Object,java.lang.Object)>(v, class "Ljava/lang/String;");
if v == 0 goto label;
v = <org.apache.dubbo.common.utils.PojoUtils: java.util.List CLASS_CAN_BE_STRING>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
return v;
label:
v = v instanceof java.util.Map;
if v == 0 goto label;
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object mapToPojo(java.util.Map,java.lang.Class)>(v, v);
return v;
label:
return null;
}
private static java.lang.Object convertParameterizedType(java.lang.Object, java.lang.reflect.ParameterizedType) throws java.lang.ReflectiveOperationException
{
boolean v, v, v, v, v;
java.util.Set v;
java.lang.reflect.Type v, v, v, v;
java.lang.reflect.Type[] v;
java.lang.Object[] v, v;
java.lang.reflect.Constructor v, v;
java.util.Iterator v, v;
java.lang.Class[] v, v;
java.lang.reflect.ParameterizedType v;
java.lang.Class v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.reflect.ParameterizedType;
v = interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type getRawType()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.utils.ClassUtils: boolean isAssignableFrom(java.lang.Class,java.lang.Class)>(v, v);
if v != 0 goto label;
return null;
label:
v = interfaceinvoke v.<java.lang.reflect.ParameterizedType: java.lang.reflect.Type[] getActualTypeArguments()>();
v = staticinvoke <org.apache.dubbo.common.utils.ClassUtils: boolean isAssignableFrom(java.lang.Class,java.lang.Class)>(class "Ljava/util/Map;", v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
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);
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 = v[0];
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object getFieldObject(java.lang.Object,java.lang.reflect.Type)>(v, v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v[1];
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object getFieldObject(java.lang.Object,java.lang.reflect.Type)>(v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return v;
label:
v = staticinvoke <org.apache.dubbo.common.utils.ClassUtils: boolean isAssignableFrom(java.lang.Class,java.lang.Class)>(class "Ljava/util/Collection;", v);
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
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);
v = interfaceinvoke v.<java.lang.Iterable: 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 = v[0];
v = staticinvoke <org.apache.dubbo.common.utils.PojoUtils: java.lang.Object getFieldObject(java.lang.Object,java.lang.reflect.Type)>(v, v);
interfaceinvoke v.<java.util.Collection: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
label:
return null;
}
static void <clinit>()
{
java.util.List v;
org.apache.dubbo.common.logger.Logger v;
java.util.concurrent.ConcurrentHashMap v, v;
java.lang.Class[] v;
java.lang.String v;
boolean v;
v = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(class "Lorg/apache/dubbo/common/utils/PojoUtils;");
<org.apache.dubbo.common.utils.PojoUtils: org.apache.dubbo.common.logger.Logger logger> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
<org.apache.dubbo.common.utils.PojoUtils: java.util.concurrent.ConcurrentMap NAME_METHODS_CACHE> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
<org.apache.dubbo.common.utils.PojoUtils: java.util.concurrent.ConcurrentMap CLASS_FIELD_CACHE> = v;
v = staticinvoke <org.apache.dubbo.common.utils.ConfigUtils: java.lang.String getProperty(java.lang.String,java.lang.String)>("generic.include.class", "true");
v = staticinvoke <java.lang.Boolean: boolean parseBoolean(java.lang.String)>(v);
<org.apache.dubbo.common.utils.PojoUtils: boolean GENERIC_WITH_CLZ> = v;
v = newarray (java.lang.Class)[8];
v[0] = class "Ljava/lang/Byte;";
v[1] = class "Ljava/lang/Short;";
v[2] = class "Ljava/lang/Integer;";
v[3] = class "Ljava/lang/Long;";
v[4] = class "Ljava/lang/Float;";
v[5] = class "Ljava/lang/Double;";
v[6] = class "Ljava/lang/Boolean;";
v[7] = class "Ljava/lang/Character;";
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
<org.apache.dubbo.common.utils.PojoUtils: java.util.List CLASS_CAN_BE_STRING> = v;
return;
}
}