public synchronized boolean getStatus() { boolean retVal = true; try { if(permanentlyDisable) { retVal = false; } Iterator it = dependents.keySet().iterator(); while(it.hasNext()) { AbstractServiceMBean service = (AbstractServiceMBean)it.next(); if(!service.isHealthy() || !service.isStarted()) retVal = false; } } catch(Exception e) { permanentlyDisable = true; retVal = false; } return retVal; }