// #APIDOC_EXCLUDE_BEGIN public static void notifyFailureToSender(ACLMessage msg, String sender, String error) { if (myFrontEnd != null) { // Send back a failure message try { Iterator it = msg.getAllReceiver(); while (it.hasNext()) { AID receiver = (AID) it.next(); // If this receiver is local, the message has certainly been delivered // successfully --> Do not send any FAILURE back for this receiver if (myFrontEnd.getLocalAgent(receiver.getLocalName()) == null) { ACLMessage failure = msg.createReply(); failure.setPerformative(ACLMessage.FAILURE); failure.setSender(myFrontEnd.getAMS()); failure.setLanguage(FIPANames.ContentLanguage.FIPA_SL); String content = "( (action " + sender; content = content + " (ACLMessage) ) (MTS-error " + receiver + " \"" + error + "\") )"; failure.setContent(content); myFrontEnd.messageIn(failure, sender); } } } catch (Exception e1) { logger.log(Logger.SEVERE, "Error delivering FAILURE message.", e1); } } }