8076397: Better MBean connections
authorjbachorik
Wed, 01 Apr 2015 17:30:28 +0200
changeset 31700 e803266598cb
parent 31699 7bc1eec6ce3b
child 31701 b4d934543e0a
8076397: Better MBean connections Reviewed-by: dfuchs, ahgross
jdk/src/java.management/share/classes/javax/management/MBeanServerInvocationHandler.java
--- a/jdk/src/java.management/share/classes/javax/management/MBeanServerInvocationHandler.java	Tue Apr 07 13:37:30 2015 +0300
+++ b/jdk/src/java.management/share/classes/javax/management/MBeanServerInvocationHandler.java	Wed Apr 01 17:30:28 2015 +0200
@@ -141,6 +141,12 @@
         if (connection == null) {
             throw new IllegalArgumentException("Null connection");
         }
+//        if (Proxy.isProxyClass(connection.getClass())) {
+//            if (MBeanServerInvocationHandler.class.isAssignableFrom(
+//                    Proxy.getInvocationHandler(connection).getClass())) {
+//                throw new IllegalArgumentException("Wrapping MBeanServerInvocationHandler");
+//            }
+//        }
         if (objectName == null) {
             throw new IllegalArgumentException("Null object name");
         }
@@ -418,6 +424,10 @@
                              new Class<?>[] {Object.class})
             && isLocal(proxy, method))
             return true;
+//        if (methodName.equals("finalize")
+//            && method.getParameterTypes().length == 0) {
+//            return true;
+//        }
         return false;
     }
 
@@ -453,6 +463,9 @@
                 connection + "[" + objectName + "])";
         } else if (methodName.equals("hashCode")) {
             return objectName.hashCode()+connection.hashCode();
+        } else if (methodName.equals("finalize")) {
+            // ignore the finalizer invocation via proxy
+            return null;
         }
 
         throw new RuntimeException("Unexpected method name: " + methodName);