public class org.springframework.jmx.access.MBeanClientInterceptor implements org.aopalliance.intercept.MethodInterceptor, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.DisposableBean
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.springframework.jmx.access.MBeanClientInterceptor
super_class: java.lang.Object
{
protected final org.apache.commons.logging.Log logger;
descriptor: Lorg/apache/commons/logging/Log;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private javax.management.MBeanServerConnection server;
descriptor: Ljavax/management/MBeanServerConnection;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private javax.management.remote.JMXServiceURL serviceUrl;
descriptor: Ljavax/management/remote/JMXServiceURL;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.util.Map<java.lang.String, ?> environment;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;*>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.String agentId;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private boolean connectOnStartup;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean refreshOnConnectFailure;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private javax.management.ObjectName objectName;
descriptor: Ljavax/management/ObjectName;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private boolean useStrictCasing;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.Class<?> managementInterface;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.ClassLoader beanClassLoader;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private final org.springframework.jmx.access.ConnectorDelegate connector;
descriptor: Lorg/springframework/jmx/access/ConnectorDelegate;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private javax.management.MBeanServerConnection serverToUse;
descriptor: Ljavax/management/MBeanServerConnection;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private javax.management.MBeanServerInvocationHandler invocationHandler;
descriptor: Ljavax/management/MBeanServerInvocationHandler;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.util.Map<java.lang.String, javax.management.MBeanAttributeInfo> allowedAttributes;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Ljavax/management/MBeanAttributeInfo;>;
private java.util.Map<org.springframework.jmx.access.MBeanClientInterceptor$MethodCacheKey, javax.management.MBeanOperationInfo> allowedOperations;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Lorg/springframework/jmx/access/MBeanClientInterceptor$MethodCacheKey;Ljavax/management/MBeanOperationInfo;>;
private final java.util.Map<java.lang.reflect.Method, java.lang.String[]> signatureCache;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/reflect/Method;[Ljava/lang/String;>;
private final java.lang.Object preparationMonitor;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.apache.commons.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/commons/logging/Log;
putfield org.springframework.jmx.access.MBeanClientInterceptor.logger:Lorg/apache/commons/logging/Log;
2: aload 0
iconst_1
putfield org.springframework.jmx.access.MBeanClientInterceptor.connectOnStartup:Z
3: aload 0
iconst_0
putfield org.springframework.jmx.access.MBeanClientInterceptor.refreshOnConnectFailure:Z
4: aload 0
iconst_1
putfield org.springframework.jmx.access.MBeanClientInterceptor.useStrictCasing:Z
5: aload 0
invokestatic org.springframework.util.ClassUtils.getDefaultClassLoader:()Ljava/lang/ClassLoader;
putfield org.springframework.jmx.access.MBeanClientInterceptor.beanClassLoader:Ljava/lang/ClassLoader;
6: aload 0
new org.springframework.jmx.access.ConnectorDelegate
dup
invokespecial org.springframework.jmx.access.ConnectorDelegate.<init>:()V
putfield org.springframework.jmx.access.MBeanClientInterceptor.connector:Lorg/springframework/jmx/access/ConnectorDelegate;
7: aload 0
invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
putfield org.springframework.jmx.access.MBeanClientInterceptor.allowedAttributes:Ljava/util/Map;
8: aload 0
invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
putfield org.springframework.jmx.access.MBeanClientInterceptor.allowedOperations:Ljava/util/Map;
9: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield org.springframework.jmx.access.MBeanClientInterceptor.signatureCache:Ljava/util/Map;
10: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield org.springframework.jmx.access.MBeanClientInterceptor.preparationMonitor:Ljava/lang/Object;
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
public void setServer(javax.management.MBeanServerConnection);
descriptor: (Ljavax/management/MBeanServerConnection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.jmx.access.MBeanClientInterceptor.server:Ljavax/management/MBeanServerConnection;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 2 1 server Ljavax/management/MBeanServerConnection;
MethodParameters:
Name Flags
server
public void setServiceUrl(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new javax.management.remote.JMXServiceURL
dup
aload 1
invokespecial javax.management.remote.JMXServiceURL.<init>:(Ljava/lang/String;)V
putfield org.springframework.jmx.access.MBeanClientInterceptor.serviceUrl:Ljavax/management/remote/JMXServiceURL;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 2 1 url Ljava/lang/String;
Exceptions:
throws java.net.MalformedURLException
MethodParameters:
Name Flags
url
public void setEnvironment(java.util.Map<java.lang.String, ?>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.jmx.access.MBeanClientInterceptor.environment:Ljava/util/Map;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 2 1 environment Ljava/util/Map<Ljava/lang/String;*>;
Signature: (Ljava/util/Map<Ljava/lang/String;*>;)V
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
environment
public java.util.Map<java.lang.String, ?> getEnvironment();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.environment:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
Signature: ()Ljava/util/Map<Ljava/lang/String;*>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void setAgentId(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.jmx.access.MBeanClientInterceptor.agentId:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 2 1 agentId Ljava/lang/String;
MethodParameters:
Name Flags
agentId
public void setConnectOnStartup(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.jmx.access.MBeanClientInterceptor.connectOnStartup:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 2 1 connectOnStartup Z
MethodParameters:
Name Flags
connectOnStartup
public void setRefreshOnConnectFailure(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.jmx.access.MBeanClientInterceptor.refreshOnConnectFailure:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 2 1 refreshOnConnectFailure Z
MethodParameters:
Name Flags
refreshOnConnectFailure
public void setObjectName(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic org.springframework.jmx.support.ObjectNameManager.getInstance:(Ljava/lang/Object;)Ljavax/management/ObjectName;
putfield org.springframework.jmx.access.MBeanClientInterceptor.objectName:Ljavax/management/ObjectName;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 2 1 objectName Ljava/lang/Object;
Exceptions:
throws javax.management.MalformedObjectNameException
MethodParameters:
Name Flags
objectName
public void setUseStrictCasing(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.springframework.jmx.access.MBeanClientInterceptor.useStrictCasing:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 2 1 useStrictCasing Z
MethodParameters:
Name Flags
useStrictCasing
public void setManagementInterface(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.jmx.access.MBeanClientInterceptor.managementInterface:Ljava/lang/Class;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 2 1 managementInterface Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)V
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
managementInterface
protected final java.lang.Class<?> getManagementInterface();
descriptor: ()Ljava/lang/Class;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.managementInterface:Ljava/lang/Class;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
Signature: ()Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
public void setBeanClassLoader(java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.springframework.jmx.access.MBeanClientInterceptor.beanClassLoader:Ljava/lang/ClassLoader;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 2 1 beanClassLoader Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
beanClassLoader
public void afterPropertiesSet();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.server:Ljavax/management/MBeanServerConnection;
ifnull 2
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.refreshOnConnectFailure:Z
ifeq 2
1: new java.lang.IllegalArgumentException
dup
ldc "'refreshOnConnectFailure' does not work when setting a 'server' reference. Prefer 'serviceUrl' etc instead."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.connectOnStartup:Z
ifeq 4
3: aload 0
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.prepare:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
public void prepare();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.preparationMonitor:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.server:Ljavax/management/MBeanServerConnection;
ifnull 4
2: aload 0
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.server:Ljavax/management/MBeanServerConnection;
putfield org.springframework.jmx.access.MBeanClientInterceptor.serverToUse:Ljavax/management/MBeanServerConnection;
3: goto 6
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aconst_null
putfield org.springframework.jmx.access.MBeanClientInterceptor.serverToUse:Ljavax/management/MBeanServerConnection;
5: aload 0
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.connector:Lorg/springframework/jmx/access/ConnectorDelegate;
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.serviceUrl:Ljavax/management/remote/JMXServiceURL;
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.environment:Ljava/util/Map;
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.agentId:Ljava/lang/String;
invokevirtual org.springframework.jmx.access.ConnectorDelegate.connect:(Ljavax/management/remote/JMXServiceURL;Ljava/util/Map;Ljava/lang/String;)Ljavax/management/MBeanServerConnection;
putfield org.springframework.jmx.access.MBeanClientInterceptor.serverToUse:Ljavax/management/MBeanServerConnection;
6: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.springframework.jmx.access.MBeanClientInterceptor.invocationHandler:Ljavax/management/MBeanServerInvocationHandler;
7: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.useStrictCasing:Z
ifeq 18
8: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.objectName:Ljavax/management/ObjectName;
ifnull 9
iconst_1
goto 10
StackMap locals:
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: ldc "No ObjectName set"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
11: aload 0
12: new javax.management.MBeanServerInvocationHandler
dup
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.serverToUse:Ljavax/management/MBeanServerConnection;
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.objectName:Ljavax/management/ObjectName;
13: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.managementInterface:Ljava/lang/Class;
ifnull 14
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.managementInterface:Ljava/lang/Class;
invokestatic javax.management.JMX.isMXBeanInterface:(Ljava/lang/Class;)Z
ifeq 14
iconst_1
goto 15
StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor java.lang.Object
StackMap stack: org.springframework.jmx.access.MBeanClientInterceptor new 12 new 12 javax.management.MBeanServerConnection javax.management.ObjectName
14: iconst_0
StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor java.lang.Object
StackMap stack: org.springframework.jmx.access.MBeanClientInterceptor new 12 new 12 javax.management.MBeanServerConnection javax.management.ObjectName int
15: invokespecial javax.management.MBeanServerInvocationHandler.<init>:(Ljavax/management/MBeanServerConnection;Ljavax/management/ObjectName;Z)V
16: putfield org.springframework.jmx.access.MBeanClientInterceptor.invocationHandler:Ljavax/management/MBeanServerInvocationHandler;
17: goto 19
18: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.serverToUse:Ljavax/management/MBeanServerConnection;
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.retrieveMBeanInfo:(Ljavax/management/MBeanServerConnection;)V
19: StackMap locals:
StackMap stack:
aload 1
monitorexit
20: goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
21: aload 1
monitorexit
22: athrow
23: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
Exception table:
from to target type
1 20 21 any
21 22 21 any
private void retrieveMBeanInfo(javax.management.MBeanServerConnection);
descriptor: (Ljavax/management/MBeanServerConnection;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.objectName:Ljavax/management/ObjectName;
invokeinterface javax.management.MBeanServerConnection.getMBeanInfo:(Ljavax/management/ObjectName;)Ljavax/management/MBeanInfo;
astore 2
start local 2 1: aload 2
invokevirtual javax.management.MBeanInfo.getAttributes:()[Ljavax/management/MBeanAttributeInfo;
astore 3
start local 3 2: aload 0
new java.util.HashMap
dup
aload 3
arraylength
invokespecial java.util.HashMap.<init>:(I)V
putfield org.springframework.jmx.access.MBeanClientInterceptor.allowedAttributes:Ljava/util/Map;
3: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 7
StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor javax.management.MBeanServerConnection javax.management.MBeanInfo javax.management.MBeanAttributeInfo[] top int int javax.management.MBeanAttributeInfo[]
StackMap stack:
4: aload 7
iload 5
aaload
astore 4
start local 4 5: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.allowedAttributes:Ljava/util/Map;
aload 4
invokevirtual javax.management.MBeanAttributeInfo.getName:()Ljava/lang/String;
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 6: iinc 5 1
StackMap locals:
StackMap stack:
7: iload 5
iload 6
if_icmplt 4
8: aload 2
invokevirtual javax.management.MBeanInfo.getOperations:()[Ljavax/management/MBeanOperationInfo;
astore 4
start local 4 9: aload 0
new java.util.HashMap
dup
aload 4
arraylength
invokespecial java.util.HashMap.<init>:(I)V
putfield org.springframework.jmx.access.MBeanClientInterceptor.allowedOperations:Ljava/util/Map;
10: aload 4
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 15
StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor javax.management.MBeanServerConnection javax.management.MBeanInfo javax.management.MBeanAttributeInfo[] javax.management.MBeanOperationInfo[] top int int javax.management.MBeanOperationInfo[]
StackMap stack:
11: aload 8
iload 6
aaload
astore 5
start local 5 12: aload 5
invokevirtual javax.management.MBeanOperationInfo.getSignature:()[Ljavax/management/MBeanParameterInfo;
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.beanClassLoader:Ljava/lang/ClassLoader;
invokestatic org.springframework.jmx.support.JmxUtils.parameterInfoToTypes:([Ljavax/management/MBeanParameterInfo;Ljava/lang/ClassLoader;)[Ljava/lang/Class;
astore 9
start local 9 13: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.allowedOperations:Ljava/util/Map;
new org.springframework.jmx.access.MBeanClientInterceptor$MethodCacheKey
dup
aload 5
invokevirtual javax.management.MBeanOperationInfo.getName:()Ljava/lang/String;
aload 9
invokespecial org.springframework.jmx.access.MBeanClientInterceptor$MethodCacheKey.<init>:(Ljava/lang/String;[Ljava/lang/Class;)V
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 9 end local 5 14: iinc 6 1
StackMap locals:
StackMap stack:
15: iload 6
iload 7
if_icmplt 11
end local 4 end local 3 end local 2 16: goto 32
17: StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor javax.management.MBeanServerConnection
StackMap stack: java.lang.ClassNotFoundException
astore 2
start local 2 18: new org.springframework.jmx.access.MBeanInfoRetrievalException
dup
ldc "Unable to locate class specified in method signature"
aload 2
invokespecial org.springframework.jmx.access.MBeanInfoRetrievalException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 19: StackMap locals:
StackMap stack: javax.management.IntrospectionException
astore 2
start local 2 20: new org.springframework.jmx.access.MBeanInfoRetrievalException
dup
new java.lang.StringBuilder
dup
ldc "Unable to obtain MBean info for bean ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.objectName:Ljavax/management/ObjectName;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokespecial org.springframework.jmx.access.MBeanInfoRetrievalException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 21: StackMap locals:
StackMap stack: javax.management.InstanceNotFoundException
astore 2
start local 2 22: new org.springframework.jmx.access.MBeanInfoRetrievalException
dup
new java.lang.StringBuilder
dup
ldc "Unable to obtain MBean info for bean ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.objectName:Ljavax/management/ObjectName;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
23: ldc "]: it is likely that this bean was unregistered during the proxy creation process"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
24: aload 2
25: invokespecial org.springframework.jmx.access.MBeanInfoRetrievalException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 26: StackMap locals:
StackMap stack: javax.management.ReflectionException
astore 2
start local 2 27: new org.springframework.jmx.access.MBeanInfoRetrievalException
dup
new java.lang.StringBuilder
dup
ldc "Unable to read MBean info for bean [ "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.objectName:Ljavax/management/ObjectName;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
aload 2
invokespecial org.springframework.jmx.access.MBeanInfoRetrievalException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 28: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 29: new org.springframework.jmx.access.MBeanInfoRetrievalException
dup
ldc "An IOException occurred when communicating with the MBeanServer. It is likely that you are communicating with a remote MBeanServer. Check the inner exception for exact details."
30: aload 2
31: invokespecial org.springframework.jmx.access.MBeanInfoRetrievalException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 32: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 33 1 server Ljavax/management/MBeanServerConnection;
1 16 2 info Ljavax/management/MBeanInfo;
2 16 3 attributeInfo [Ljavax/management/MBeanAttributeInfo;
5 6 4 infoEle Ljavax/management/MBeanAttributeInfo;
9 16 4 operationInfo [Ljavax/management/MBeanOperationInfo;
12 14 5 infoEle Ljavax/management/MBeanOperationInfo;
13 14 9 paramTypes [Ljava/lang/Class;
18 19 2 ex Ljava/lang/ClassNotFoundException;
20 21 2 ex Ljavax/management/IntrospectionException;
22 26 2 ex Ljavax/management/InstanceNotFoundException;
27 28 2 ex Ljavax/management/ReflectionException;
29 32 2 ex Ljava/io/IOException;
Exception table:
from to target type
0 16 17 Class java.lang.ClassNotFoundException
0 16 19 Class javax.management.IntrospectionException
0 16 21 Class javax.management.InstanceNotFoundException
0 16 26 Class javax.management.ReflectionException
0 16 28 Class java.io.IOException
Exceptions:
throws org.springframework.jmx.access.MBeanInfoRetrievalException
MethodParameters:
Name Flags
server
protected boolean isPrepared();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.preparationMonitor:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.serverToUse:Ljavax/management/MBeanServerConnection;
ifnull 2
iconst_1
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: aload 1
monitorexit
4: ireturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
6: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
Exception table:
from to target type
1 4 5 any
5 6 5 any
public java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation);
descriptor: (Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.preparationMonitor:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.isPrepared:()Z
ifne 3
2: aload 0
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.prepare:()V
3: StackMap locals: java.lang.Object
StackMap stack:
aload 2
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.doInvoke:(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
8: areturn
9: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 10: aload 0
aload 1
aload 2
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.handleConnectFailure:(Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Exception;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 11 1 invocation Lorg/aopalliance/intercept/MethodInvocation;
10 11 2 ex Ljava/lang/Exception;
Exception table:
from to target type
1 4 5 any
5 6 5 any
7 8 9 Class org.springframework.jmx.access.MBeanConnectFailureException
7 8 9 Class java.io.IOException
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
invocation
protected java.lang.Object handleConnectFailure(org.aopalliance.intercept.MethodInvocation, java.lang.Exception);
descriptor: (Lorg/aopalliance/intercept/MethodInvocation;Ljava/lang/Exception;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.refreshOnConnectFailure:Z
ifeq 9
1: ldc "Could not connect to JMX server - retrying"
astore 3
start local 3 2: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isDebugEnabled:()Z
ifeq 5
3: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.logger:Lorg/apache/commons/logging/Log;
aload 3
aload 2
invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
4: goto 7
5: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.logger:Lorg/apache/commons/logging/Log;
invokeinterface org.apache.commons.logging.Log.isWarnEnabled:()Z
ifeq 7
6: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.logger:Lorg/apache/commons/logging/Log;
aload 3
invokeinterface org.apache.commons.logging.Log.warn:(Ljava/lang/Object;)V
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.prepare:()V
8: aload 0
aload 1
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.doInvoke:(Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
areturn
end local 3 9: StackMap locals:
StackMap stack:
aload 2
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 10 1 invocation Lorg/aopalliance/intercept/MethodInvocation;
0 10 2 ex Ljava/lang/Exception;
2 9 3 msg Ljava/lang/String;
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
invocation
ex
protected java.lang.Object doInvoke(org.aopalliance.intercept.MethodInvocation);
descriptor: (Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
astore 2
start local 2 1: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.invocationHandler:Ljavax/management/MBeanServerInvocationHandler;
ifnull 4
2: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.invocationHandler:Ljavax/management/MBeanServerInvocationHandler;
aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getThis:()Ljava/lang/Object;
aload 2
aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getArguments:()[Ljava/lang/Object;
invokevirtual javax.management.MBeanServerInvocationHandler.invoke:(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 3: goto 9
end local 3 4: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 2
invokestatic org.springframework.beans.BeanUtils.findPropertyForMethod:(Ljava/lang/reflect/Method;)Ljava/beans/PropertyDescriptor;
astore 4
start local 4 5: aload 4
ifnull 8
6: aload 0
aload 4
aload 1
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.invokeAttribute:(Ljava/beans/PropertyDescriptor;Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
astore 3
start local 3 7: goto 9
end local 3 8: StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor org.aopalliance.intercept.MethodInvocation java.lang.reflect.Method top java.beans.PropertyDescriptor
StackMap stack:
aload 0
aload 2
aload 1
invokeinterface org.aopalliance.intercept.MethodInvocation.getArguments:()[Ljava/lang/Object;
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.invokeOperation:(Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
astore 3
end local 4 start local 3 9: StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor org.aopalliance.intercept.MethodInvocation java.lang.reflect.Method java.lang.Object
StackMap stack:
aload 0
aload 3
new org.springframework.core.MethodParameter
dup
aload 2
iconst_m1
invokespecial org.springframework.core.MethodParameter.<init>:(Ljava/lang/reflect/Method;I)V
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.convertResultValueIfNecessary:(Ljava/lang/Object;Lorg/springframework/core/MethodParameter;)Ljava/lang/Object;
10: areturn
end local 3 11: StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor org.aopalliance.intercept.MethodInvocation java.lang.reflect.Method
StackMap stack: javax.management.MBeanException
astore 3
start local 3 12: aload 3
invokevirtual javax.management.MBeanException.getTargetException:()Ljava/lang/Exception;
athrow
end local 3 13: StackMap locals:
StackMap stack: javax.management.RuntimeMBeanException
astore 3
start local 3 14: aload 3
invokevirtual javax.management.RuntimeMBeanException.getTargetException:()Ljava/lang/RuntimeException;
athrow
end local 3 15: StackMap locals:
StackMap stack: javax.management.RuntimeErrorException
astore 3
start local 3 16: aload 3
invokevirtual javax.management.RuntimeErrorException.getTargetError:()Ljava/lang/Error;
athrow
end local 3 17: StackMap locals:
StackMap stack: javax.management.RuntimeOperationsException
astore 3
start local 3 18: aload 3
invokevirtual javax.management.RuntimeOperationsException.getTargetException:()Ljava/lang/RuntimeException;
astore 4
start local 4 19: aload 4
instanceof javax.management.RuntimeMBeanException
ifeq 21
20: aload 4
checkcast javax.management.RuntimeMBeanException
invokevirtual javax.management.RuntimeMBeanException.getTargetException:()Ljava/lang/RuntimeException;
athrow
21: StackMap locals: javax.management.RuntimeOperationsException java.lang.RuntimeException
StackMap stack:
aload 4
instanceof javax.management.RuntimeErrorException
ifeq 23
22: aload 4
checkcast javax.management.RuntimeErrorException
invokevirtual javax.management.RuntimeErrorException.getTargetError:()Ljava/lang/Error;
athrow
23: StackMap locals:
StackMap stack:
aload 4
athrow
end local 4 end local 3 24: StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor org.aopalliance.intercept.MethodInvocation java.lang.reflect.Method
StackMap stack: javax.management.OperationsException
astore 3
start local 3 25: aload 2
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.springframework.util.ReflectionUtils.declaresException:(Ljava/lang/reflect/Method;Ljava/lang/Class;)Z
ifeq 27
26: aload 3
athrow
27: StackMap locals: javax.management.OperationsException
StackMap stack:
new org.springframework.jmx.access.InvalidInvocationException
dup
aload 3
invokevirtual javax.management.OperationsException.getMessage:()Ljava/lang/String;
invokespecial org.springframework.jmx.access.InvalidInvocationException.<init>:(Ljava/lang/String;)V
athrow
end local 3 28: StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor org.aopalliance.intercept.MethodInvocation java.lang.reflect.Method
StackMap stack: javax.management.JMException
astore 3
start local 3 29: aload 2
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.springframework.util.ReflectionUtils.declaresException:(Ljava/lang/reflect/Method;Ljava/lang/Class;)Z
ifeq 31
30: aload 3
athrow
31: StackMap locals: javax.management.JMException
StackMap stack:
new org.springframework.jmx.access.InvocationFailureException
dup
ldc "JMX access failed"
aload 3
invokespecial org.springframework.jmx.access.InvocationFailureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 32: StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor org.aopalliance.intercept.MethodInvocation java.lang.reflect.Method
StackMap stack: java.io.IOException
astore 3
start local 3 33: aload 2
aload 3
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokestatic org.springframework.util.ReflectionUtils.declaresException:(Ljava/lang/reflect/Method;Ljava/lang/Class;)Z
ifeq 35
34: aload 3
athrow
35: StackMap locals: java.io.IOException
StackMap stack:
new org.springframework.jmx.access.MBeanConnectFailureException
dup
ldc "I/O failure during JMX access"
aload 3
invokespecial org.springframework.jmx.access.MBeanConnectFailureException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 36 1 invocation Lorg/aopalliance/intercept/MethodInvocation;
1 36 2 method Ljava/lang/reflect/Method;
3 4 3 result Ljava/lang/Object;
7 8 3 result Ljava/lang/Object;
9 11 3 result Ljava/lang/Object;
5 9 4 pd Ljava/beans/PropertyDescriptor;
12 13 3 ex Ljavax/management/MBeanException;
14 15 3 ex Ljavax/management/RuntimeMBeanException;
16 17 3 ex Ljavax/management/RuntimeErrorException;
18 24 3 ex Ljavax/management/RuntimeOperationsException;
19 24 4 rex Ljava/lang/RuntimeException;
25 28 3 ex Ljavax/management/OperationsException;
29 32 3 ex Ljavax/management/JMException;
33 36 3 ex Ljava/io/IOException;
Exception table:
from to target type
1 10 11 Class javax.management.MBeanException
1 10 13 Class javax.management.RuntimeMBeanException
1 10 15 Class javax.management.RuntimeErrorException
1 10 17 Class javax.management.RuntimeOperationsException
1 10 24 Class javax.management.OperationsException
1 10 28 Class javax.management.JMException
1 10 32 Class java.io.IOException
Exceptions:
throws java.lang.Throwable
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
invocation
private java.lang.Object invokeAttribute(java.beans.PropertyDescriptor, org.aopalliance.intercept.MethodInvocation);
descriptor: (Ljava/beans/PropertyDescriptor;Lorg/aopalliance/intercept/MethodInvocation;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.serverToUse:Ljavax/management/MBeanServerConnection;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "No MBeanServerConnection available"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
3: aload 1
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.useStrictCasing:Z
invokestatic org.springframework.jmx.support.JmxUtils.getAttributeName:(Ljava/beans/PropertyDescriptor;Z)Ljava/lang/String;
astore 3
start local 3 4: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.allowedAttributes:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.management.MBeanAttributeInfo
astore 4
start local 4 5: aload 4
ifnonnull 9
6: new org.springframework.jmx.access.InvalidInvocationException
dup
7: new java.lang.StringBuilder
dup
ldc "Attribute '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.beans.PropertyDescriptor.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is not exposed on the management interface"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokespecial org.springframework.jmx.access.InvalidInvocationException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: java.lang.String javax.management.MBeanAttributeInfo
StackMap stack:
aload 2
invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
aload 1
invokevirtual java.beans.PropertyDescriptor.getReadMethod:()Ljava/lang/reflect/Method;
invokevirtual java.lang.reflect.Method.equals:(Ljava/lang/Object;)Z
ifeq 13
10: aload 4
invokevirtual javax.management.MBeanAttributeInfo.isReadable:()Z
ifeq 12
11: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.serverToUse:Ljavax/management/MBeanServerConnection;
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.objectName:Ljavax/management/ObjectName;
aload 3
invokeinterface javax.management.MBeanServerConnection.getAttribute:(Ljavax/management/ObjectName;Ljava/lang/String;)Ljava/lang/Object;
areturn
12: StackMap locals:
StackMap stack:
new org.springframework.jmx.access.InvalidInvocationException
dup
new java.lang.StringBuilder
dup
ldc "Attribute '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is not readable"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.springframework.jmx.access.InvalidInvocationException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
aload 1
invokevirtual java.beans.PropertyDescriptor.getWriteMethod:()Ljava/lang/reflect/Method;
invokevirtual java.lang.reflect.Method.equals:(Ljava/lang/Object;)Z
ifeq 18
14: aload 4
invokevirtual javax.management.MBeanAttributeInfo.isWritable:()Z
ifeq 17
15: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.serverToUse:Ljavax/management/MBeanServerConnection;
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.objectName:Ljavax/management/ObjectName;
new javax.management.Attribute
dup
aload 3
aload 2
invokeinterface org.aopalliance.intercept.MethodInvocation.getArguments:()[Ljava/lang/Object;
iconst_0
aaload
invokespecial javax.management.Attribute.<init>:(Ljava/lang/String;Ljava/lang/Object;)V
invokeinterface javax.management.MBeanServerConnection.setAttribute:(Ljavax/management/ObjectName;Ljavax/management/Attribute;)V
16: aconst_null
areturn
17: StackMap locals:
StackMap stack:
new org.springframework.jmx.access.InvalidInvocationException
dup
new java.lang.StringBuilder
dup
ldc "Attribute '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is not writable"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.springframework.jmx.access.InvalidInvocationException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
19: new java.lang.StringBuilder
dup
ldc "Method ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface org.aopalliance.intercept.MethodInvocation.getMethod:()Ljava/lang/reflect/Method;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] is neither a bean property getter nor a setter"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
20: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 21 1 pd Ljava/beans/PropertyDescriptor;
0 21 2 invocation Lorg/aopalliance/intercept/MethodInvocation;
4 21 3 attributeName Ljava/lang/String;
5 21 4 inf Ljavax/management/MBeanAttributeInfo;
Exceptions:
throws javax.management.JMException, java.io.IOException
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
MethodParameters:
Name Flags
pd
invocation
private java.lang.Object invokeOperation(java.lang.reflect.Method, java.lang.Object[]);
descriptor: (Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.serverToUse:Ljavax/management/MBeanServerConnection;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "No MBeanServerConnection available"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
3: new org.springframework.jmx.access.MBeanClientInterceptor$MethodCacheKey
dup
aload 1
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
invokespecial org.springframework.jmx.access.MBeanClientInterceptor$MethodCacheKey.<init>:(Ljava/lang/String;[Ljava/lang/Class;)V
astore 3
start local 3 4: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.allowedOperations:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast javax.management.MBeanOperationInfo
astore 4
start local 4 5: aload 4
ifnonnull 9
6: new org.springframework.jmx.access.InvalidInvocationException
dup
new java.lang.StringBuilder
dup
ldc "Operation '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: ldc "' is not exposed on the management interface"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokespecial org.springframework.jmx.access.InvalidInvocationException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor$MethodCacheKey javax.management.MBeanOperationInfo
StackMap stack:
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.signatureCache:Ljava/util/Map;
dup
astore 6
monitorenter
10: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.signatureCache:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String[]
astore 5
start local 5 11: aload 5
ifnonnull 14
12: aload 1
invokestatic org.springframework.jmx.support.JmxUtils.getMethodSignature:(Ljava/lang/reflect/Method;)[Ljava/lang/String;
astore 5
13: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.signatureCache:Ljava/util/Map;
aload 1
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: StackMap locals: java.lang.String[] java.util.Map
StackMap stack:
aload 6
monitorexit
15: goto 18
end local 5 StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor java.lang.reflect.Method java.lang.Object[] org.springframework.jmx.access.MBeanClientInterceptor$MethodCacheKey javax.management.MBeanOperationInfo top java.util.Map
StackMap stack: java.lang.Throwable
16: aload 6
monitorexit
17: athrow
start local 5 18: StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor java.lang.reflect.Method java.lang.Object[] org.springframework.jmx.access.MBeanClientInterceptor$MethodCacheKey javax.management.MBeanOperationInfo java.lang.String[]
StackMap stack:
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.serverToUse:Ljavax/management/MBeanServerConnection;
aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.objectName:Ljavax/management/ObjectName;
aload 1
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aload 2
aload 5
invokeinterface javax.management.MBeanServerConnection.invoke:(Ljavax/management/ObjectName;Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/String;)Ljava/lang/Object;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 19 1 method Ljava/lang/reflect/Method;
0 19 2 args [Ljava/lang/Object;
4 19 3 key Lorg/springframework/jmx/access/MBeanClientInterceptor$MethodCacheKey;
5 19 4 info Ljavax/management/MBeanOperationInfo;
11 16 5 signature [Ljava/lang/String;
18 19 5 signature [Ljava/lang/String;
Exception table:
from to target type
10 15 16 any
16 17 16 any
Exceptions:
throws javax.management.JMException, java.io.IOException
MethodParameters:
Name Flags
method
args
protected java.lang.Object convertResultValueIfNecessary(java.lang.Object, org.springframework.core.MethodParameter);
descriptor: (Ljava/lang/Object;Lorg/springframework/core/MethodParameter;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.springframework.core.MethodParameter.getParameterType:()Ljava/lang/Class;
astore 3
start local 3 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.lang.Class
StackMap stack:
aload 3
aload 1
invokestatic org.springframework.util.ClassUtils.isAssignableValue:(Ljava/lang/Class;Ljava/lang/Object;)Z
ifeq 6
4: aload 1
5: areturn
6: StackMap locals:
StackMap stack:
aload 1
instanceof javax.management.openmbean.CompositeData
ifeq 10
7: aload 3
ldc "from"
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljavax/management/openmbean/CompositeData;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 4
start local 4 8: aload 4
aconst_null
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic org.springframework.util.ReflectionUtils.invokeMethod:(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
9: areturn
end local 4 10: StackMap locals:
StackMap stack:
aload 1
instanceof javax.management.openmbean.CompositeData[]
ifeq 21
11: aload 1
checkcast javax.management.openmbean.CompositeData[]
astore 4
start local 4 12: aload 3
invokevirtual java.lang.Class.isArray:()Z
ifeq 15
13: aload 0
aload 4
aload 3
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.convertDataArrayToTargetArray:([Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
14: areturn
15: StackMap locals: javax.management.openmbean.CompositeData[]
StackMap stack:
ldc Ljava/util/Collection;
aload 3
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 36
16: aload 2
invokestatic org.springframework.core.ResolvableType.forMethodParameter:(Lorg/springframework/core/MethodParameter;)Lorg/springframework/core/ResolvableType;
invokevirtual org.springframework.core.ResolvableType.asCollection:()Lorg/springframework/core/ResolvableType;
iconst_0
newarray 10
invokevirtual org.springframework.core.ResolvableType.resolveGeneric:([I)Ljava/lang/Class;
17: astore 5
start local 5 18: aload 5
ifnull 36
19: aload 0
aload 4
aload 3
aload 5
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.convertDataArrayToTargetCollection:([Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/Collection;
20: areturn
end local 5 end local 4 21: StackMap locals:
StackMap stack:
aload 1
instanceof javax.management.openmbean.TabularData
ifeq 25
22: aload 3
ldc "from"
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljavax/management/openmbean/TabularData;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 4
start local 4 23: aload 4
aconst_null
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic org.springframework.util.ReflectionUtils.invokeMethod:(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
24: areturn
end local 4 25: StackMap locals:
StackMap stack:
aload 1
instanceof javax.management.openmbean.TabularData[]
ifeq 36
26: aload 1
checkcast javax.management.openmbean.TabularData[]
astore 4
start local 4 27: aload 3
invokevirtual java.lang.Class.isArray:()Z
ifeq 30
28: aload 0
aload 4
aload 3
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.convertDataArrayToTargetArray:([Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
29: areturn
30: StackMap locals: javax.management.openmbean.TabularData[]
StackMap stack:
ldc Ljava/util/Collection;
aload 3
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 36
31: aload 2
invokestatic org.springframework.core.ResolvableType.forMethodParameter:(Lorg/springframework/core/MethodParameter;)Lorg/springframework/core/ResolvableType;
invokevirtual org.springframework.core.ResolvableType.asCollection:()Lorg/springframework/core/ResolvableType;
iconst_0
newarray 10
invokevirtual org.springframework.core.ResolvableType.resolveGeneric:([I)Ljava/lang/Class;
32: astore 5
start local 5 33: aload 5
ifnull 36
34: aload 0
aload 4
aload 3
aload 5
invokevirtual org.springframework.jmx.access.MBeanClientInterceptor.convertDataArrayToTargetCollection:([Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/Collection;
35: areturn
end local 5 end local 4 36: StackMap locals:
StackMap stack:
new org.springframework.jmx.access.InvocationFailureException
dup
37: new java.lang.StringBuilder
dup
ldc "Incompatible result value ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "] for target type ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
38: invokespecial org.springframework.jmx.access.InvocationFailureException.<init>:(Ljava/lang/String;)V
athrow
39: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
pop
40: new org.springframework.jmx.access.InvocationFailureException
dup
41: new java.lang.StringBuilder
dup
ldc "Could not obtain 'from(CompositeData)' / 'from(TabularData)' method on target type ["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
42: aload 3
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "] for conversion of MXBean data structure ["
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
43: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
44: invokespecial org.springframework.jmx.access.InvocationFailureException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 45 1 result Ljava/lang/Object;
0 45 2 parameter Lorg/springframework/core/MethodParameter;
1 45 3 targetClass Ljava/lang/Class<*>;
8 10 4 fromMethod Ljava/lang/reflect/Method;
12 21 4 array [Ljavax/management/openmbean/CompositeData;
18 21 5 elementType Ljava/lang/Class<*>;
23 25 4 fromMethod Ljava/lang/reflect/Method;
27 36 4 array [Ljavax/management/openmbean/TabularData;
33 36 5 elementType Ljava/lang/Class<*>;
Exception table:
from to target type
1 2 39 Class java.lang.NoSuchMethodException
3 5 39 Class java.lang.NoSuchMethodException
6 9 39 Class java.lang.NoSuchMethodException
10 14 39 Class java.lang.NoSuchMethodException
15 20 39 Class java.lang.NoSuchMethodException
21 24 39 Class java.lang.NoSuchMethodException
25 29 39 Class java.lang.NoSuchMethodException
30 35 39 Class java.lang.NoSuchMethodException
36 39 39 Class java.lang.NoSuchMethodException
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
RuntimeVisibleParameterAnnotations:
0:
org.springframework.lang.Nullable()
1:
MethodParameters:
Name Flags
result
parameter
private convertDataArrayToTargetArray([], java.lang.Class<?>);
descriptor: ([Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 3
start local 3 1: aload 3
ldc "from"
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 4
start local 4 2: aload 3
aload 1
arraylength
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
astore 5
start local 5 3: iconst_0
istore 6
start local 6 4: goto 7
5: StackMap locals: org.springframework.jmx.access.MBeanClientInterceptor java.lang.Object[] java.lang.Class java.lang.Class java.lang.reflect.Method java.lang.Object int
StackMap stack:
aload 5
iload 6
aload 4
aconst_null
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
iload 6
aaload
aastore
invokestatic org.springframework.util.ReflectionUtils.invokeMethod:(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
invokestatic java.lang.reflect.Array.set:(Ljava/lang/Object;ILjava/lang/Object;)V
6: iinc 6 1
StackMap locals:
StackMap stack:
7: iload 6
aload 1
arraylength
if_icmplt 5
end local 6 8: aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 9 1 array [Ljava/lang/Object;
0 9 2 targetClass Ljava/lang/Class<*>;
1 9 3 targetType Ljava/lang/Class<*>;
2 9 4 fromMethod Ljava/lang/reflect/Method;
3 9 5 resultArray Ljava/lang/Object;
4 8 6 i I
Exceptions:
throws java.lang.NoSuchMethodException
Signature: ([Ljava/lang/Object;Ljava/lang/Class<*>;)Ljava/lang/Object;
MethodParameters:
Name Flags
array
targetClass
private java.util.Collection<?> convertDataArrayToTargetCollection([], java.lang.Class<?>, java.lang.Class<?>);
descriptor: ([Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/Collection;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
ldc "from"
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 4
start local 4 1: aload 2
aload 1
invokestatic java.lang.reflect.Array.getLength:(Ljava/lang/Object;)I
invokestatic org.springframework.core.CollectionFactory.createCollection:(Ljava/lang/Class;I)Ljava/util/Collection;
astore 5
start local 5 2: iconst_0
istore 6
start local 6 3: goto 6
4: StackMap locals: java.lang.reflect.Method java.util.Collection int
StackMap stack:
aload 5
aload 4
aconst_null
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
iload 6
aaload
aastore
invokestatic org.springframework.util.ReflectionUtils.invokeMethod:(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
5: iinc 6 1
StackMap locals:
StackMap stack:
6: iload 6
aload 1
arraylength
if_icmplt 4
end local 6 7: aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
0 8 1 array [Ljava/lang/Object;
0 8 2 collectionType Ljava/lang/Class<*>;
0 8 3 elementType Ljava/lang/Class<*>;
1 8 4 fromMethod Ljava/lang/reflect/Method;
2 8 5 resultColl Ljava/util/Collection<Ljava/lang/Object;>;
3 7 6 i I
Exceptions:
throws java.lang.NoSuchMethodException
Signature: ([Ljava/lang/Object;Ljava/lang/Class<*>;Ljava/lang/Class<*>;)Ljava/util/Collection<*>;
MethodParameters:
Name Flags
array
collectionType
elementType
public void destroy();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.jmx.access.MBeanClientInterceptor.connector:Lorg/springframework/jmx/access/ConnectorDelegate;
invokevirtual org.springframework.jmx.access.ConnectorDelegate.close:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/springframework/jmx/access/MBeanClientInterceptor;
}
SourceFile: "MBeanClientInterceptor.java"
NestMembers:
org.springframework.jmx.access.MBeanClientInterceptor$MethodCacheKey
InnerClasses:
private final MethodCacheKey = org.springframework.jmx.access.MBeanClientInterceptor$MethodCacheKey of org.springframework.jmx.access.MBeanClientInterceptor