public class org.springframework.beans.CachedIntrospectionResults extends java.lang.Object
{
public static final java.lang.String IGNORE_BEANINFO_PROPERTY_NAME;
private static final boolean shouldIntrospectorIgnoreBeaninfoClasses;
private static final java.util.List beanInfoFactories;
private static final org.apache.commons.logging.Log logger;
static final java.util.Set acceptedClassLoaders;
static final java.util.concurrent.ConcurrentMap strongClassCache;
static final java.util.concurrent.ConcurrentMap softClassCache;
private final java.beans.BeanInfo beanInfo;
private final java.util.Map propertyDescriptorCache;
private final java.util.concurrent.ConcurrentMap typeDescriptorCache;
public static void acceptClassLoader(java.lang.ClassLoader)
{
java.util.Set v;
java.lang.ClassLoader v;
v := @parameter: java.lang.ClassLoader;
if v == null goto label;
v = <org.springframework.beans.CachedIntrospectionResults: java.util.Set acceptedClassLoaders>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
return;
}
public static void clearClassLoader(java.lang.ClassLoader)
{
java.util.concurrent.ConcurrentMap v, v;
boolean v, v, v, v, v, v;
java.util.Iterator v, v, v;
java.util.Set v, v, v;
java.lang.Object v, v, v;
java.lang.ClassLoader v, v, v;
v := @parameter: java.lang.ClassLoader;
v = <org.springframework.beans.CachedIntrospectionResults: java.util.Set acceptedClassLoaders>;
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.springframework.beans.CachedIntrospectionResults: boolean isUnderneathClassLoader(java.lang.ClassLoader,java.lang.ClassLoader)>(v, v);
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
v = <org.springframework.beans.CachedIntrospectionResults: java.util.concurrent.ConcurrentMap strongClassCache>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.util.Set keySet()>();
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 = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = staticinvoke <org.springframework.beans.CachedIntrospectionResults: boolean isUnderneathClassLoader(java.lang.ClassLoader,java.lang.ClassLoader)>(v, v);
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
v = <org.springframework.beans.CachedIntrospectionResults: java.util.concurrent.ConcurrentMap softClassCache>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.util.Set keySet()>();
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 = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = staticinvoke <org.springframework.beans.CachedIntrospectionResults: boolean isUnderneathClassLoader(java.lang.ClassLoader,java.lang.ClassLoader)>(v, v);
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
return;
}
static org.springframework.beans.CachedIntrospectionResults forClass(java.lang.Class) throws org.springframework.beans.BeansException
{
java.util.concurrent.ConcurrentMap v, v, v;
java.lang.String v, v;
boolean v, v, v;
org.springframework.beans.CachedIntrospectionResults v, v;
java.lang.Class v, v;
java.lang.Object v, v, v;
org.apache.commons.logging.Log v, v;
java.lang.ClassLoader v, v;
v := @parameter: java.lang.Class;
v = <org.springframework.beans.CachedIntrospectionResults: java.util.concurrent.ConcurrentMap strongClassCache>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
return v;
label:
v = <org.springframework.beans.CachedIntrospectionResults: java.util.concurrent.ConcurrentMap softClassCache>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
return v;
label:
v = new org.springframework.beans.CachedIntrospectionResults;
specialinvoke v.<org.springframework.beans.CachedIntrospectionResults: void <init>(java.lang.Class)>(v);
v = class "Lorg/springframework/beans/CachedIntrospectionResults;";
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = staticinvoke <org.springframework.util.ClassUtils: boolean isCacheSafe(java.lang.Class,java.lang.ClassLoader)>(v, v);
if v != 0 goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = staticinvoke <org.springframework.beans.CachedIntrospectionResults: boolean isClassLoaderAccepted(java.lang.ClassLoader)>(v);
if v == 0 goto label;
label:
v = <org.springframework.beans.CachedIntrospectionResults: java.util.concurrent.ConcurrentMap strongClassCache>;
goto label;
label:
v = <org.springframework.beans.CachedIntrospectionResults: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.springframework.beans.CachedIntrospectionResults: org.apache.commons.logging.Log logger>;
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[])>("Not strongly caching class [\u] because it is not cache-safe");
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
v = <org.springframework.beans.CachedIntrospectionResults: java.util.concurrent.ConcurrentMap softClassCache>;
label:
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
if v == null goto label;
v = v;
goto label;
label:
v = v;
label:
return v;
}
private static boolean isClassLoaderAccepted(java.lang.ClassLoader)
{
java.util.Iterator v;
java.util.Set v;
java.lang.Object v;
java.lang.ClassLoader v;
boolean v, v;
v := @parameter: java.lang.ClassLoader;
v = <org.springframework.beans.CachedIntrospectionResults: java.util.Set acceptedClassLoaders>;
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.springframework.beans.CachedIntrospectionResults: boolean isUnderneathClassLoader(java.lang.ClassLoader,java.lang.ClassLoader)>(v, v);
if v == 0 goto label;
return 1;
label:
return 0;
}
private static boolean isUnderneathClassLoader(java.lang.ClassLoader, java.lang.ClassLoader)
{
java.lang.ClassLoader v, v, v;
v := @parameter: java.lang.ClassLoader;
v := @parameter: java.lang.ClassLoader;
if v != v goto label;
return 1;
label:
if v != null goto label;
return 0;
label:
v = v;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.ClassLoader: java.lang.ClassLoader getParent()>();
if v != v goto label;
return 1;
label:
return 0;
}
private void <init>(java.lang.Class) throws org.springframework.beans.BeansException
{
java.beans.PropertyDescriptor[] v, v;
java.util.Map v, v, v;
org.springframework.beans.CachedIntrospectionResults v;
java.beans.IntrospectionException v;
java.beans.PropertyDescriptor v, v, v, v;
java.util.LinkedHashMap v;
org.springframework.util.ConcurrentReferenceHashMap v;
java.beans.BeanInfo v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Class[] v;
boolean v, v, v, v, v, v, v, v;
java.util.List v;
int v, v, v, v, v, v;
java.util.Iterator v;
org.springframework.beans.FatalBeanException v;
java.lang.Class v, v, v, v, v, v, v;
java.lang.Object v;
org.apache.commons.logging.Log v, v, v, v, v, v;
v := @this: org.springframework.beans.CachedIntrospectionResults;
v := @parameter: java.lang.Class;
specialinvoke v.<java.lang.Object: void <init>()>();
label:
v = <org.springframework.beans.CachedIntrospectionResults: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.springframework.beans.CachedIntrospectionResults: org.apache.commons.logging.Log logger>;
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[])>("Getting BeanInfo for class [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void trace(java.lang.Object)>(v);
label:
v = null;
v = <org.springframework.beans.CachedIntrospectionResults: java.util.List beanInfoFactories>;
v = interfaceinvoke v.<java.util.List: 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.<org.springframework.beans.BeanInfoFactory: java.beans.BeanInfo getBeanInfo(java.lang.Class)>(v);
if v != null goto label;
goto label;
label:
if v != null goto label;
v = <org.springframework.beans.CachedIntrospectionResults: boolean shouldIntrospectorIgnoreBeaninfoClasses>;
if v == 0 goto label;
v = staticinvoke <java.beans.Introspector: java.beans.BeanInfo getBeanInfo(java.lang.Class,int)>(v, 3);
goto label;
label:
v = staticinvoke <java.beans.Introspector: java.beans.BeanInfo getBeanInfo(java.lang.Class)>(v);
label:
v = v;
label:
v.<org.springframework.beans.CachedIntrospectionResults: java.beans.BeanInfo beanInfo> = v;
v = <org.springframework.beans.CachedIntrospectionResults: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.springframework.beans.CachedIntrospectionResults: org.apache.commons.logging.Log logger>;
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[])>("Caching PropertyDescriptors for class [\u]");
interfaceinvoke v.<org.apache.commons.logging.Log: void trace(java.lang.Object)>(v);
label:
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v.<org.springframework.beans.CachedIntrospectionResults: java.util.Map propertyDescriptorCache> = v;
v = v.<org.springframework.beans.CachedIntrospectionResults: java.beans.BeanInfo beanInfo>;
v = interfaceinvoke v.<java.beans.BeanInfo: java.beans.PropertyDescriptor[] getPropertyDescriptors()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if class "Ljava/lang/Class;" != v goto label;
v = "classLoader";
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = "protectionDomain";
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
label:
v = <org.springframework.beans.CachedIntrospectionResults: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.springframework.beans.CachedIntrospectionResults: org.apache.commons.logging.Log logger>;
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.String getName()>();
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.Class getPropertyType()>();
if v == null goto label;
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.Class getPropertyType()>();
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[])>(" of type [\u]");
goto label;
label:
v = "";
label:
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.Class getPropertyEditorClass()>();
if v == null goto label;
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.Class getPropertyEditorClass()>();
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[])>("; editor [\u]");
goto label;
label:
v = "";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Found bean property \'\u0001\'\u0001\u0001");
interfaceinvoke v.<org.apache.commons.logging.Log: void trace(java.lang.Object)>(v);
label:
v = specialinvoke v.<org.springframework.beans.CachedIntrospectionResults: java.beans.PropertyDescriptor buildGenericTypeAwarePropertyDescriptor(java.lang.Class,java.beans.PropertyDescriptor)>(v, v);
v = v.<org.springframework.beans.CachedIntrospectionResults: java.util.Map propertyDescriptorCache>;
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.String getName()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = v + 1;
goto label;
label:
v = v;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.Class: java.lang.Class[] getInterfaces()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <java.beans.Introspector: java.beans.BeanInfo getBeanInfo(java.lang.Class,int)>(v, 3);
v = interfaceinvoke v.<java.beans.BeanInfo: java.beans.PropertyDescriptor[] getPropertyDescriptors()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v.<org.springframework.beans.CachedIntrospectionResults: java.util.Map propertyDescriptorCache>;
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.String getName()>();
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
v = specialinvoke v.<org.springframework.beans.CachedIntrospectionResults: java.beans.PropertyDescriptor buildGenericTypeAwarePropertyDescriptor(java.lang.Class,java.beans.PropertyDescriptor)>(v, v);
v = v.<org.springframework.beans.CachedIntrospectionResults: java.util.Map propertyDescriptorCache>;
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.String getName()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = v + 1;
goto label;
label:
v = v + 1;
goto label;
label:
v = virtualinvoke v.<java.lang.Class: java.lang.Class getSuperclass()>();
goto label;
label:
v = new org.springframework.util.ConcurrentReferenceHashMap;
specialinvoke v.<org.springframework.util.ConcurrentReferenceHashMap: void <init>()>();
v.<org.springframework.beans.CachedIntrospectionResults: java.util.concurrent.ConcurrentMap typeDescriptorCache> = v;
label:
goto label;
label:
v := @caughtexception;
v = new org.springframework.beans.FatalBeanException;
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[])>("Failed to obtain BeanInfo for class [\u]");
specialinvoke v.<org.springframework.beans.FatalBeanException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch java.beans.IntrospectionException from label to label with label;
}
java.beans.BeanInfo getBeanInfo()
{
org.springframework.beans.CachedIntrospectionResults v;
java.beans.BeanInfo v;
v := @this: org.springframework.beans.CachedIntrospectionResults;
v = v.<org.springframework.beans.CachedIntrospectionResults: java.beans.BeanInfo beanInfo>;
return v;
}
java.lang.Class getBeanClass()
{
java.beans.BeanInfo v;
org.springframework.beans.CachedIntrospectionResults v;
java.lang.Class v;
java.beans.BeanDescriptor v;
v := @this: org.springframework.beans.CachedIntrospectionResults;
v = v.<org.springframework.beans.CachedIntrospectionResults: java.beans.BeanInfo beanInfo>;
v = interfaceinvoke v.<java.beans.BeanInfo: java.beans.BeanDescriptor getBeanDescriptor()>();
v = virtualinvoke v.<java.beans.BeanDescriptor: java.lang.Class getBeanClass()>();
return v;
}
java.beans.PropertyDescriptor getPropertyDescriptor(java.lang.String)
{
org.springframework.beans.CachedIntrospectionResults v;
java.beans.PropertyDescriptor v;
java.util.Map v, v, v;
java.lang.Class v;
java.lang.Object v;
java.lang.String v, v, v;
boolean v, v;
v := @this: org.springframework.beans.CachedIntrospectionResults;
v := @parameter: java.lang.String;
v = v.<org.springframework.beans.CachedIntrospectionResults: java.util.Map propertyDescriptorCache>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = staticinvoke <org.springframework.util.StringUtils: boolean hasLength(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.springframework.beans.CachedIntrospectionResults: java.util.Map propertyDescriptorCache>;
v = staticinvoke <org.springframework.util.StringUtils: java.lang.String uncapitalize(java.lang.String)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = v.<org.springframework.beans.CachedIntrospectionResults: java.util.Map propertyDescriptorCache>;
v = staticinvoke <org.springframework.util.StringUtils: java.lang.String capitalize(java.lang.String)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
label:
if v == null goto label;
v = v instanceof org.springframework.beans.GenericTypeAwarePropertyDescriptor;
if v == 0 goto label;
label:
v = v;
goto label;
label:
v = virtualinvoke v.<org.springframework.beans.CachedIntrospectionResults: java.lang.Class getBeanClass()>();
v = specialinvoke v.<org.springframework.beans.CachedIntrospectionResults: java.beans.PropertyDescriptor buildGenericTypeAwarePropertyDescriptor(java.lang.Class,java.beans.PropertyDescriptor)>(v, v);
label:
return v;
}
java.beans.PropertyDescriptor[] getPropertyDescriptors()
{
java.util.Iterator v;
java.beans.PropertyDescriptor[] v;
java.util.Collection v;
org.springframework.beans.CachedIntrospectionResults v;
java.beans.PropertyDescriptor v;
java.util.Map v, v;
int v, v, v;
java.lang.Class v;
java.lang.Object v;
boolean v, v;
v := @this: org.springframework.beans.CachedIntrospectionResults;
v = v.<org.springframework.beans.CachedIntrospectionResults: java.util.Map propertyDescriptorCache>;
v = interfaceinvoke v.<java.util.Map: int size()>();
v = newarray (java.beans.PropertyDescriptor)[v];
v = 0;
v = v.<org.springframework.beans.CachedIntrospectionResults: java.util.Map propertyDescriptorCache>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
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 = v;
v = v instanceof org.springframework.beans.GenericTypeAwarePropertyDescriptor;
if v == 0 goto label;
v = v;
goto label;
label:
v = virtualinvoke v.<org.springframework.beans.CachedIntrospectionResults: java.lang.Class getBeanClass()>();
v = specialinvoke v.<org.springframework.beans.CachedIntrospectionResults: java.beans.PropertyDescriptor buildGenericTypeAwarePropertyDescriptor(java.lang.Class,java.beans.PropertyDescriptor)>(v, v);
label:
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
private java.beans.PropertyDescriptor buildGenericTypeAwarePropertyDescriptor(java.lang.Class, java.beans.PropertyDescriptor)
{
org.springframework.beans.FatalBeanException v;
org.springframework.beans.CachedIntrospectionResults v;
java.beans.IntrospectionException v;
java.beans.PropertyDescriptor v;
org.springframework.beans.GenericTypeAwarePropertyDescriptor v;
java.lang.Class v, v;
java.lang.String v, v, v;
java.lang.reflect.Method v, v;
v := @this: org.springframework.beans.CachedIntrospectionResults;
v := @parameter: java.lang.Class;
v := @parameter: java.beans.PropertyDescriptor;
label:
v = new org.springframework.beans.GenericTypeAwarePropertyDescriptor;
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.String getName()>();
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.reflect.Method getReadMethod()>();
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.reflect.Method getWriteMethod()>();
v = virtualinvoke v.<java.beans.PropertyDescriptor: java.lang.Class getPropertyEditorClass()>();
specialinvoke v.<org.springframework.beans.GenericTypeAwarePropertyDescriptor: void <init>(java.lang.Class,java.lang.String,java.lang.reflect.Method,java.lang.reflect.Method,java.lang.Class)>(v, v, v, v, v);
label:
return v;
label:
v := @caughtexception;
v = new org.springframework.beans.FatalBeanException;
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[])>("Failed to re-introspect class [\u]");
specialinvoke v.<org.springframework.beans.FatalBeanException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.beans.IntrospectionException from label to label with label;
}
org.springframework.core.convert.TypeDescriptor addTypeDescriptor(java.beans.PropertyDescriptor, org.springframework.core.convert.TypeDescriptor)
{
java.beans.PropertyDescriptor v;
org.springframework.core.convert.TypeDescriptor v, v;
org.springframework.beans.CachedIntrospectionResults v;
java.lang.Object v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.springframework.beans.CachedIntrospectionResults;
v := @parameter: java.beans.PropertyDescriptor;
v := @parameter: org.springframework.core.convert.TypeDescriptor;
v = v.<org.springframework.beans.CachedIntrospectionResults: java.util.concurrent.ConcurrentMap typeDescriptorCache>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
if v == null goto label;
v = v;
goto label;
label:
v = v;
label:
return v;
}
org.springframework.core.convert.TypeDescriptor getTypeDescriptor(java.beans.PropertyDescriptor)
{
java.beans.PropertyDescriptor v;
org.springframework.beans.CachedIntrospectionResults v;
java.lang.Object v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.springframework.beans.CachedIntrospectionResults;
v := @parameter: java.beans.PropertyDescriptor;
v = v.<org.springframework.beans.CachedIntrospectionResults: java.util.concurrent.ConcurrentMap typeDescriptorCache>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
return v;
}
static void <clinit>()
{
java.util.concurrent.ConcurrentHashMap v, v;
java.util.Set v;
org.springframework.util.ConcurrentReferenceHashMap v;
java.util.List v;
java.lang.Class v;
org.apache.commons.logging.Log v;
java.lang.ClassLoader v;
boolean v;
v = staticinvoke <org.springframework.core.SpringProperties: boolean getFlag(java.lang.String)>("spring.beaninfo.ignore");
<org.springframework.beans.CachedIntrospectionResults: boolean shouldIntrospectorIgnoreBeaninfoClasses> = v;
v = class "Lorg/springframework/beans/CachedIntrospectionResults;";
v = virtualinvoke v.<java.lang.Class: java.lang.ClassLoader getClassLoader()>();
v = staticinvoke <org.springframework.core.io.support.SpringFactoriesLoader: java.util.List loadFactories(java.lang.Class,java.lang.ClassLoader)>(class "Lorg/springframework/beans/BeanInfoFactory;", v);
<org.springframework.beans.CachedIntrospectionResults: java.util.List beanInfoFactories> = v;
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(class "Lorg/springframework/beans/CachedIntrospectionResults;");
<org.springframework.beans.CachedIntrospectionResults: org.apache.commons.logging.Log logger> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(16);
v = staticinvoke <java.util.Collections: java.util.Set newSetFromMap(java.util.Map)>(v);
<org.springframework.beans.CachedIntrospectionResults: java.util.Set acceptedClassLoaders> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(64);
<org.springframework.beans.CachedIntrospectionResults: java.util.concurrent.ConcurrentMap strongClassCache> = v;
v = new org.springframework.util.ConcurrentReferenceHashMap;
specialinvoke v.<org.springframework.util.ConcurrentReferenceHashMap: void <init>(int)>(64);
<org.springframework.beans.CachedIntrospectionResults: java.util.concurrent.ConcurrentMap softClassCache> = v;
return;
}
}