Fix a potential race condition in MBean unregister logic.

The unregister method should relies on the MBeanServer class to validate if the target MBean has been unregistered or not to avoid race condition.
diff --git a/metrics-common/src/main/java/org/apache/helix/monitoring/mbeans/MBeanRegistrar.java b/metrics-common/src/main/java/org/apache/helix/monitoring/mbeans/MBeanRegistrar.java
index 22bd516..28ff99c 100644
--- a/metrics-common/src/main/java/org/apache/helix/monitoring/mbeans/MBeanRegistrar.java
+++ b/metrics-common/src/main/java/org/apache/helix/monitoring/mbeans/MBeanRegistrar.java
@@ -21,6 +21,7 @@
 
 import java.lang.management.ManagementFactory;
 import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
 import javax.management.JMException;
 import javax.management.MBeanServer;
 import javax.management.MalformedObjectNameException;
@@ -84,10 +85,13 @@
   }
 
   public static void unregister(ObjectName objectName) {
-    if (objectName != null && _beanServer.isRegistered(objectName)) {
+    if (objectName != null) {
       try {
         _beanServer.unregisterMBean(objectName);
         LOG.info("MBean {} has been un-registered.", objectName.getCanonicalName());
+      } catch (InstanceNotFoundException ex) {
+        LOG.warn("MBean {} does not exist. It might have been removed already.",
+            objectName.getCanonicalName());
       } catch (JMException e) {
         LOG.warn("Error in un-registering: " + objectName.getCanonicalName(), e);
       }