You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by no...@apache.org on 2011/07/05 15:23:58 UTC

svn commit: r1143049 - in /aries/trunk/jmx/jmx-whiteboard/src/main/java/org/apache/aries/jmx/whiteboard: JmxWhiteboardSupport.java MBeanHolder.java

Author: not
Date: Tue Jul  5 13:23:58 2011
New Revision: 1143049

URL: http://svn.apache.org/viewvc?rev=1143049&view=rev
Log:
ARIES-701 Commit patch to use an identity hash map to cash mbean to mbean holder mappings. Patch provided by fmeschbe

Modified:
    aries/trunk/jmx/jmx-whiteboard/src/main/java/org/apache/aries/jmx/whiteboard/JmxWhiteboardSupport.java
    aries/trunk/jmx/jmx-whiteboard/src/main/java/org/apache/aries/jmx/whiteboard/MBeanHolder.java

Modified: aries/trunk/jmx/jmx-whiteboard/src/main/java/org/apache/aries/jmx/whiteboard/JmxWhiteboardSupport.java
URL: http://svn.apache.org/viewvc/aries/trunk/jmx/jmx-whiteboard/src/main/java/org/apache/aries/jmx/whiteboard/JmxWhiteboardSupport.java?rev=1143049&r1=1143048&r2=1143049&view=diff
==============================================================================
--- aries/trunk/jmx/jmx-whiteboard/src/main/java/org/apache/aries/jmx/whiteboard/JmxWhiteboardSupport.java (original)
+++ aries/trunk/jmx/jmx-whiteboard/src/main/java/org/apache/aries/jmx/whiteboard/JmxWhiteboardSupport.java Tue Jul  5 13:23:58 2011
@@ -20,7 +20,7 @@ package org.apache.aries.jmx.whiteboard;
 
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashMap;
+import java.util.IdentityHashMap;
 
 import javax.management.MBeanRegistration;
 import javax.management.MBeanServer;
@@ -40,7 +40,8 @@ class JmxWhiteboardSupport {
 
     private MBeanServer[] mbeanServers = new MBeanServer[0];
 
-    private final HashMap<MBeanHolder, MBeanHolder> mbeans = new HashMap<MBeanHolder, MBeanHolder>();
+    // mapping registered MBean services to their MBeanHolder objects
+    private final IdentityHashMap<Object, MBeanHolder> mbeans = new IdentityHashMap<Object, MBeanHolder>();
 
     protected synchronized void addMBeanServer(final MBeanServer mbeanServer) {
 
@@ -83,7 +84,7 @@ class JmxWhiteboardSupport {
             for (MBeanServer mbeanServer : mbeanServers) {
                 holder.register(mbeanServer);
             }
-            mbeans.put(holder, holder);
+            mbeans.put(mbean, holder);
         }
     }
 
@@ -91,7 +92,7 @@ class JmxWhiteboardSupport {
 
         log.debug("unregisterMBean: Removing MBean {}", mbean);
 
-        final MBeanHolder holder = mbeans.remove(new MBeanHolder(mbean, null));
+        final MBeanHolder holder = mbeans.remove(mbean);
         if (holder != null) {
             holder.unregister();
         }

Modified: aries/trunk/jmx/jmx-whiteboard/src/main/java/org/apache/aries/jmx/whiteboard/MBeanHolder.java
URL: http://svn.apache.org/viewvc/aries/trunk/jmx/jmx-whiteboard/src/main/java/org/apache/aries/jmx/whiteboard/MBeanHolder.java?rev=1143049&r1=1143048&r2=1143049&view=diff
==============================================================================
--- aries/trunk/jmx/jmx-whiteboard/src/main/java/org/apache/aries/jmx/whiteboard/MBeanHolder.java (original)
+++ aries/trunk/jmx/jmx-whiteboard/src/main/java/org/apache/aries/jmx/whiteboard/MBeanHolder.java Tue Jul  5 13:23:58 2011
@@ -90,24 +90,4 @@ final class MBeanHolder {
                 + name, e);
         }
     }
-
-    // ---------- Object Overwrite
-
-    @Override
-    public int hashCode() {
-        return mbean.hashCode();
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (obj == null) {
-            return false;
-        } else if (obj == this) {
-            return true;
-        } else if (obj instanceof MBeanHolder) {
-            return mbean == ((MBeanHolder) obj).mbean;
-        }
-
-        return false;
-    }
 }