public void postProcess(Message msg) { // call handler List<ExtendedMessageHandler> handlerList = AbstractRoutingDriver.this.extendedHandlerTable.get(msg.getClass()); if (handlerList != null) { for (ExtendedMessageHandler handler : handlerList) { try { handler.postProcess(msg); } catch (Throwable e) { logger.log(Level.SEVERE, "A MessageHandler#postProcess() threw an Exception.", e); } } } // notify the routing algorithm if (AbstractRoutingDriver.this.algorithm != null) { IDAddressPair src = (IDAddressPair) msg.getSource(); if (src.getID() != null && src.getAddress() != null) { AbstractRoutingDriver.this.algorithm.touch(src); } } }
protected void postProcessMessage(Message msg) { if (!this.extMessageHandlerRegistered) return; // call every handlers List<MessageHandler> currentHandlerList; synchronized (this) { currentHandlerList = handlerList; } for (MessageHandler handler : currentHandlerList) { ExtendedMessageHandler extHandler; try { extHandler = (ExtendedMessageHandler) handler; } catch (ClassCastException e) { continue; } try { extHandler.postProcess(msg); } catch (Throwable e) { logger.log(Level.SEVERE, "A MessageHandler#postProcess() threw an Exception.", e); } } }