if (logger.isDebugEnabled()) logger.debug("Searching for: " + agentName +" in: " + disconnectActionIndex.toString());
    private boolean handleNodeAcknowledgment(ReconnectTimeCondition rtc) {            if (logger.isDebugEnabled()) logger.debug("Starting handleNodeAcknoweledgement() for: " + rtc.toString());        AssetID assetID = new AssetID(rtc.getAsset(), AssetType.findAssetType("Node"));        DisconnectAction action = disconnectActionIndex.getAction(assetID);        if (logger.isDebugEnabled()) logger.debug("Searching for: " + rtc.getAsset() +" in: " + disconnectActionIndex.toString());        if (logger.isDebugEnabled()) logger.debug(action.dump());        if (action.getValue().getAction() != null) { // i.e., this isn't the initial connection            if (logger.isDebugEnabled()) logger.debug("Value: " + action.getValue());            if (action.getValue().getAction().equals(ALLOW_CONNECT)) {                // Reconnected, so cancel any outstanding alarms                cancelOverdueAlarm_Returned(action.getAssetID());                try {                    action.stop(Action.COMPLETED); // ACK the completion                    if (logger.isDebugEnabled()) logger.debug("**** " + action.dump());                    blackboard.publishChange(action);                    // Assert a new Diagnosis                    RequestToDisconnectNodeDiagnosis diag = requestToDisconnectNodeDiagnosisIndex.getDiagnosis(assetID);                    diag.setValue(CONNECTED);                    if (logger.isDebugEnabled()) logger.debug("**** " + diag.dump());                    blackboard.publishChange(diag);                } catch (IllegalValueException e) {                    logger.error("Attempt to stop: "+action.dump()+" with illegal value "+e.toString());                    return false;                } catch (NoStartedActionException e) {                    logger.error(action.dump() + " had " +e.toString());                    return false;                }                Iterator iter = rtc.getAgents().iterator();                while (iter.hasNext()) {                    String agentName = (String) iter.next();                    if (logger.isDebugEnabled()) logger.debug("Searching for: " + agentName +" in: " + disconnectActionIndex.toString());                    DisconnectAction agentAction = disconnectActionIndex.getAction(new AssetID(agentName, AssetType.findAssetType("Agent")));                    try {                        agentAction.stop(Action.COMPLETED); // ACK the completion                        if (logger.isDebugEnabled()) logger.debug(agentAction.dump());                        blackboard.publishChange(agentAction);                        // Assert a new Diagnosis                        RequestToDisconnectNodeDiagnosis diag = requestToDisconnectNodeDiagnosisIndex.getDiagnosis(assetID);                        diag.setValue(CONNECTED);                        if (logger.isDebugEnabled()) logger.debug(diag.dump());                        blackboard.publishChange(diag);                    } catch (IllegalValueException e) {                        logger.error("Attempt to stop: "+agentAction.dump()+" with illegal value "+e.toString());                        return false;                    } catch (NoStartedActionException e) {                        logger.error(agentAction.dump() + " had " + e.toString());                        return false;                    }                }                return true;                        }             if (action.getValue().getAction().equals(ALLOW_DISCONNECT)) {                // Reconnected, so cancel any outstanding alarms               try {                    action.stop(Action.COMPLETED); // ACK the completion                    if (logger.isDebugEnabled()) logger.debug(action.dump());                    blackboard.publishChange(action);                    // Assert a new Diagnosis                    RequestToDisconnectNodeDiagnosis diag = requestToDisconnectNodeDiagnosisIndex.getDiagnosis(assetID);                    diag.setValue(DISCONNECTED);                if (logger.isDebugEnabled()) logger.debug(diag.dump());                    blackboard.publishChange(diag);                } catch (IllegalValueException e) {                    logger.error("Attempt to stop: "+action.dump()+" with illegal value "+e.toString());                    return false;                } catch (NoStartedActionException e) {                    logger.error(action.dump() + " had " + e.toString());                    return false;                }                Iterator iter = rtc.getAgents().iterator();                while (iter.hasNext()) {                    String agentName = (String) iter.next();                    assetID = new AssetID(agentName, AssetType.findAssetType("Agent"));                    if (logger.isDebugEnabled()) logger.debug("Searching for: " + agentName +" in: " + disconnectActionIndex.toString());                    DisconnectAction agentAction = disconnectActionIndex.getAction(assetID);                    try {                        agentAction.stop(Action.COMPLETED); // ACK the completion                        if (logger.isDebugEnabled()) logger.debug(agentAction.dump());                        blackboard.publishChange(agentAction);                        // Assert a new Diagnosis                        RequestToDisconnectAgentDiagnosis diag = requestToDisconnectAgentDiagnosisIndex.getDiagnosis(assetID);                        diag.setValue(DISCONNECTED);                        if (logger.isDebugEnabled()) logger.debug(diag.dump());                        blackboard.publishChange(diag);                    } catch (IllegalValueException e) {                        logger.error("Attempt to stop: "+agentAction.dump()+" with illegal value "+e.toString());                        return false;                    } catch (NoStartedActionException e) {                        logger.error(agentAction.dump() + " had " + e.toString());                        return false;                    }                }                return true;            }            if (logger.isInfoEnabled()) logger.info("progapateChange() failed to match: " + action.getValue().getAction() + " when compared to " + ALLOW_DISCONNECT + " & " + ALLOW_CONNECT);        }        return false;    }