code: private void handleFailedSendDataRequest(SerialMessage originalMessage) {
  		ZWaveNode node = this.getNode(originalMessage.getMessageNode());
  		
  		if (node.getNodeStage() == NodeStage.NODEBUILDINFO_DEAD)
  			return;
  		
  		if (!node.isListening() && originalMessage.getPriority() != SerialMessage.SerialMessagePriority.Low) {
  			ZWaveWakeUpCommandClass wakeUpCommandClass = (ZWaveWakeUpCommandClass)node.getCommandClass(ZWaveCommandClass.CommandClass.WAKE_UP);
  			
  			if (wakeUpCommandClass != null) {
  				wakeUpCommandClass.setAwake(false);
  				wakeUpCommandClass.putInWakeUpQueue(originalMessage); //it's a battery operated device, place in wake-up queue.
  				return;
  			}
  		} else if (!node.isListening() && originalMessage.getPriority() == SerialMessage.SerialMessagePriority.Low)
  			return;
  		
  		node.incrementResendCount();
  		
  		logger.error("Got an error while sending data to node {}. Resending message.", node.getNodeId());
  		this.sendData(originalMessage);
  	}
docs: Handles a failed SendData request. This can either be because of the stick actively reporting it
  or because of a time-out of the transaction in the send thread.
  @param originalMessage the original message that was sent