public class org.springframework.cache.concurrent.ConcurrentMapCache extends org.springframework.cache.support.AbstractValueAdaptingCache
{
private final java.lang.String name;
private final java.util.concurrent.ConcurrentMap store;
private final org.springframework.core.serializer.support.SerializationDelegate serialization;
public void <init>(java.lang.String)
{
java.util.concurrent.ConcurrentHashMap v;
java.lang.String v;
org.springframework.cache.concurrent.ConcurrentMapCache v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.String;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(256);
specialinvoke v.<org.springframework.cache.concurrent.ConcurrentMapCache: void <init>(java.lang.String,java.util.concurrent.ConcurrentMap,boolean)>(v, v, 1);
return;
}
public void <init>(java.lang.String, boolean)
{
org.springframework.cache.concurrent.ConcurrentMapCache v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.String v;
boolean v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(256);
specialinvoke v.<org.springframework.cache.concurrent.ConcurrentMapCache: void <init>(java.lang.String,java.util.concurrent.ConcurrentMap,boolean)>(v, v, v);
return;
}
public void <init>(java.lang.String, java.util.concurrent.ConcurrentMap, boolean)
{
org.springframework.cache.concurrent.ConcurrentMapCache v;
java.lang.String v;
boolean v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.String;
v := @parameter: java.util.concurrent.ConcurrentMap;
v := @parameter: boolean;
specialinvoke v.<org.springframework.cache.concurrent.ConcurrentMapCache: void <init>(java.lang.String,java.util.concurrent.ConcurrentMap,boolean,org.springframework.core.serializer.support.SerializationDelegate)>(v, v, v, null);
return;
}
protected void <init>(java.lang.String, java.util.concurrent.ConcurrentMap, boolean, org.springframework.core.serializer.support.SerializationDelegate)
{
org.springframework.core.serializer.support.SerializationDelegate v;
org.springframework.cache.concurrent.ConcurrentMapCache v;
java.lang.String v;
boolean v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.String;
v := @parameter: java.util.concurrent.ConcurrentMap;
v := @parameter: boolean;
v := @parameter: org.springframework.core.serializer.support.SerializationDelegate;
specialinvoke v.<org.springframework.cache.support.AbstractValueAdaptingCache: void <init>(boolean)>(v);
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "Name must not be null");
staticinvoke <org.springframework.util.Assert: void notNull(java.lang.Object,java.lang.String)>(v, "Store must not be null");
v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.lang.String name> = v;
v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.util.concurrent.ConcurrentMap store> = v;
v.<org.springframework.cache.concurrent.ConcurrentMapCache: org.springframework.core.serializer.support.SerializationDelegate serialization> = v;
return;
}
public final boolean isStoreByValue()
{
org.springframework.core.serializer.support.SerializationDelegate v;
org.springframework.cache.concurrent.ConcurrentMapCache v;
boolean v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: org.springframework.core.serializer.support.SerializationDelegate serialization>;
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public final java.lang.String getName()
{
java.lang.String v;
org.springframework.cache.concurrent.ConcurrentMapCache v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.lang.String name>;
return v;
}
public final java.util.concurrent.ConcurrentMap getNativeCache()
{
org.springframework.cache.concurrent.ConcurrentMapCache v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.util.concurrent.ConcurrentMap store>;
return v;
}
protected java.lang.Object lookup(java.lang.Object)
{
org.springframework.cache.concurrent.ConcurrentMapCache v;
java.lang.Object v, v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.Object;
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.util.concurrent.ConcurrentMap store>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
return v;
}
public java.lang.Object get(java.lang.Object, java.util.concurrent.Callable)
{
java.lang.Throwable v, v;
java.util.concurrent.Callable v;
java.util.concurrent.ConcurrentMap v;
org.springframework.cache.concurrent.ConcurrentMapCache v;
org.springframework.cache.Cache$ValueRetrievalException v;
org.springframework.cache.Cache$ValueWrapper v, v;
java.lang.Object v, v, v, v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.Object;
v := @parameter: java.util.concurrent.Callable;
v = virtualinvoke v.<org.springframework.cache.concurrent.ConcurrentMapCache: org.springframework.cache.Cache$ValueWrapper get(java.lang.Object)>(v);
if v == null goto label;
v = interfaceinvoke v.<org.springframework.cache.Cache$ValueWrapper: java.lang.Object get()>();
return v;
label:
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.util.concurrent.ConcurrentMap store>;
entermonitor v;
label:
v = virtualinvoke v.<org.springframework.cache.concurrent.ConcurrentMapCache: org.springframework.cache.Cache$ValueWrapper get(java.lang.Object)>(v);
if v == null goto label;
v = interfaceinvoke v.<org.springframework.cache.Cache$ValueWrapper: java.lang.Object get()>();
exitmonitor v;
label:
return v;
label:
v = interfaceinvoke v.<java.util.concurrent.Callable: java.lang.Object call()>();
label:
goto label;
label:
v := @caughtexception;
v = new org.springframework.cache.Cache$ValueRetrievalException;
specialinvoke v.<org.springframework.cache.Cache$ValueRetrievalException: void <init>(java.lang.Object,java.util.concurrent.Callable,java.lang.Throwable)>(v, v, v);
throw v;
label:
virtualinvoke v.<org.springframework.cache.concurrent.ConcurrentMapCache: void put(java.lang.Object,java.lang.Object)>(v, v);
exitmonitor v;
label:
return v;
label:
v := @caughtexception;
exitmonitor v;
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void put(java.lang.Object, java.lang.Object)
{
org.springframework.cache.concurrent.ConcurrentMapCache v;
java.lang.Object v, v, v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.util.concurrent.ConcurrentMap store>;
v = virtualinvoke v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.lang.Object toStoreValue(java.lang.Object)>(v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return;
}
public org.springframework.cache.Cache$ValueWrapper putIfAbsent(java.lang.Object, java.lang.Object)
{
org.springframework.cache.concurrent.ConcurrentMapCache v;
org.springframework.cache.Cache$ValueWrapper v;
java.lang.Object v, v, v, v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.Object;
v := @parameter: java.lang.Object;
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.util.concurrent.ConcurrentMap store>;
v = virtualinvoke v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.lang.Object toStoreValue(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object putIfAbsent(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.springframework.cache.concurrent.ConcurrentMapCache: org.springframework.cache.Cache$ValueWrapper toValueWrapper(java.lang.Object)>(v);
return v;
}
public void evict(java.lang.Object)
{
java.lang.Object v;
org.springframework.cache.concurrent.ConcurrentMapCache v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.Object;
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.util.concurrent.ConcurrentMap store>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
return;
}
public void clear()
{
org.springframework.cache.concurrent.ConcurrentMapCache v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.util.concurrent.ConcurrentMap store>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: void clear()>();
return;
}
protected java.lang.Object toStoreValue(java.lang.Object)
{
java.lang.Throwable v;
org.springframework.core.serializer.support.SerializationDelegate v;
java.lang.IllegalArgumentException v;
org.springframework.cache.concurrent.ConcurrentMapCache v;
java.lang.Object v, v, v;
java.lang.String v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.Object;
v = specialinvoke v.<org.springframework.cache.support.AbstractValueAdaptingCache: java.lang.Object toStoreValue(java.lang.Object)>(v);
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: org.springframework.core.serializer.support.SerializationDelegate serialization>;
if v == null goto label;
label:
v = specialinvoke v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.lang.Object serializeValue(java.lang.Object)>(v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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 serialize cache value \'\u0001\'. Does it implement Serializable?");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
private java.lang.Object serializeValue(java.lang.Object) throws java.io.IOException
{
java.lang.Throwable v;
org.springframework.core.serializer.support.SerializationDelegate v;
byte[] v;
org.springframework.cache.concurrent.ConcurrentMapCache v;
java.io.ByteArrayOutputStream v;
java.lang.Object v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.Object;
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
label:
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: org.springframework.core.serializer.support.SerializationDelegate serialization>;
virtualinvoke v.<org.springframework.core.serializer.support.SerializationDelegate: void serialize(java.lang.Object,java.io.OutputStream)>(v, v);
v = virtualinvoke v.<java.io.ByteArrayOutputStream: byte[] toByteArray()>();
label:
virtualinvoke v.<java.io.ByteArrayOutputStream: void close()>();
return v;
label:
v := @caughtexception;
virtualinvoke v.<java.io.ByteArrayOutputStream: void close()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
protected java.lang.Object fromStoreValue(java.lang.Object)
{
java.lang.Throwable v;
org.springframework.core.serializer.support.SerializationDelegate v;
java.lang.IllegalArgumentException v;
org.springframework.cache.concurrent.ConcurrentMapCache v;
java.lang.Object v, v, v, v;
java.lang.String v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.Object;
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: org.springframework.core.serializer.support.SerializationDelegate serialization>;
if v == null goto label;
label:
v = specialinvoke v.<org.springframework.cache.concurrent.ConcurrentMapCache: java.lang.Object deserializeValue(java.lang.Object)>(v);
v = specialinvoke v.<org.springframework.cache.support.AbstractValueAdaptingCache: java.lang.Object fromStoreValue(java.lang.Object)>(v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object)>(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 deserialize cache value \'\u0001\'");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = specialinvoke v.<org.springframework.cache.support.AbstractValueAdaptingCache: java.lang.Object fromStoreValue(java.lang.Object)>(v);
return v;
catch java.lang.Throwable from label to label with label;
}
private java.lang.Object deserializeValue(java.lang.Object) throws java.io.IOException
{
java.lang.Throwable v;
org.springframework.core.serializer.support.SerializationDelegate v;
org.springframework.cache.concurrent.ConcurrentMapCache v;
java.io.ByteArrayInputStream v;
java.lang.Object v, v;
v := @this: org.springframework.cache.concurrent.ConcurrentMapCache;
v := @parameter: java.lang.Object;
v = new java.io.ByteArrayInputStream;
specialinvoke v.<java.io.ByteArrayInputStream: void <init>(byte[])>(v);
label:
v = v.<org.springframework.cache.concurrent.ConcurrentMapCache: org.springframework.core.serializer.support.SerializationDelegate serialization>;
v = virtualinvoke v.<org.springframework.core.serializer.support.SerializationDelegate: java.lang.Object deserialize(java.io.InputStream)>(v);
label:
virtualinvoke v.<java.io.ByteArrayInputStream: void close()>();
return v;
label:
v := @caughtexception;
virtualinvoke v.<java.io.ByteArrayInputStream: void close()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
}