void handleRegionRemoval(Region region) throws ManagementException {
    if (!isServiceInitialised("handleRegionRemoval")) {
      return;
    }

    // Moved region remove operation to a guarded block. If a region is getting created it won't
    // allow it to destroy any region.

    synchronized (regionOpLock) {
      ObjectName objectName = MBeanJMXAdapter.getRegionMBeanName(
          internalCache.getDistributedSystem().getDistributedMember(), region.getFullPath());

      try {
        RegionMBean regionMBean = (RegionMBean) service.getLocalRegionMBean(region.getFullPath());
        if (regionMBean != null) {
          regionMBean.stopMonitor();
        }
      } catch (ManagementException e) {
        // If no bean found its a NO-OP
        // Mostly for situation like DiskAccessException while creating region
        // which does a compensatory close region
        if (logger.isDebugEnabled()) {
          logger.debug(e.getMessage(), e);
        }
        return;
      }

      service.unregisterMBean(objectName);

      Notification notification = new Notification(REGION_CLOSED, memberSource,
          SequenceNumber.next(), System.currentTimeMillis(),
          REGION_CLOSED_PREFIX + region.getFullPath());
      memberLevelNotificationEmitter.sendNotification(notification);

      memberMBeanBridge.removeRegion(region);
    }
  }
Handles particular region destroy or close operation it will remove the corresponding MBean
geode-core/src/main/java/org/apache/geode/management/internal/beans/ManagementAdapter.java