Set remainingActions = new HashSet();
Set originalDiagnoses = new HashSet();
    private boolean handleNodeRequest(ReconnectTimeCondition rtc) {        // Set the values of the Node Diagnosis & all Agent Diagnosiss        double time = ((Double)rtc.getValue()).doubleValue();        String request =  time > 0.0 ? DISCONNECT_REQUEST : CONNECT_REQUEST;        String response =  time > 0.0 ? ALLOW_DISCONNECT : ALLOW_CONNECT;        RequestRecord rr = new RequestRecord();        Set originalActions = new HashSet();        Set remainingActions = new HashSet();        Set whichToOffer;        RequestToDisconnectNodeDiagnosis diag = requestToDisconnectNodeDiagnosisIndex.getDiagnosis(new AssetID(rtc.getAsset(), AssetType.findAssetType("Node")));                if (request == DISCONNECT_REQUEST) {            createOverdueAlarm(diag, rtc, time);            whichToOffer = ALLOW_DISCONNECT_SET;        }        else {            whichToOffer = ALLOW_CONNECT_SET;        }        try {            diag.setValue(request);             if (logger.isDebugEnabled()) logger.debug("DisconnectChange set "                    +diag.dump()+ " "+time                    +" for the Coordinator");            blackboard.publishChange(diag);            DisconnectAction Action = disconnectActionIndex.getAction(new AssetID(rtc.getAsset(), AssetType.findAssetType("Node")));            Action.setValuesOffered(whichToOffer);            if (logger.isDebugEnabled()) logger.debug(Action.dump());            blackboard.publishChange(Action);            rr.setAssetID(Action.getAssetID());            originalActions.add(Action);            remainingActions.add(Action);            pendingRequests.put(Action, rr);        } catch (IllegalValueException e) {            logger.error("Attempt to set: "+diag.toString()+" with illegal value "+e.toString());            return false;        }        Iterator iter = rtc.getAgents().iterator();        while (iter.hasNext()) {            String agentName = (String) iter.next();            AssetID id = new AssetID(agentName, AssetType.findAssetType("Agent"));            RequestToDisconnectAgentDiagnosis agentDiag = requestToDisconnectAgentDiagnosisIndex.getDiagnosis(id);            try {                agentDiag.setValue(request); // wants to disconnect                if (logger.isDebugEnabled()) logger.debug("DisconnectChange set "                        +agentDiag.dump()+ " "+time                        +" for the Coordinator");                blackboard.publishChange(agentDiag);                DisconnectAction Action = disconnectActionIndex.getAction(id);                Action.setValuesOffered(whichToOffer);                blackboard.publishChange(Action);                if (logger.isDebugEnabled()) logger.debug(Action.dump());                originalActions.add(Action);                remainingActions.add(Action);                pendingRequests.put(Action, rr);            } catch (IllegalValueException e) {                logger.error("Attempt to set: "+diag.toString()+" with illegal value "+e.toString());                return false;            }        }        rr.setOriginalActions(originalActions);        rr.setRemainingActions(remainingActions);        rr.setRequest(response);                if (logger.isInfoEnabled()) { logger.info(rr.dump()); }        return true;    }