diff --git a/activemq-core/src/main/java/org/apache/activemq/broker/util/TraceBrokerPathPlugin.java b/activemq-core/src/main/java/org/apache/activemq/broker/util/TraceBrokerPathPlugin.java index 64864cce58..18fee04dcc 100644 --- a/activemq-core/src/main/java/org/apache/activemq/broker/util/TraceBrokerPathPlugin.java +++ b/activemq-core/src/main/java/org/apache/activemq/broker/util/TraceBrokerPathPlugin.java @@ -17,7 +17,6 @@ package org.apache.activemq.broker.util; import java.io.IOException; -import java.util.Map; import org.apache.activemq.broker.BrokerPluginSupport; import org.apache.activemq.command.MessageDispatch; @@ -25,41 +24,44 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * The TraceBrokerPathPlugin can be used in a network of Brokers. Each Broker - * that has the plugin configured, will add it's brokerName to the content - * of a JMS Property. If all Brokers have this property enabled, the path the + * The TraceBrokerPathPlugin can be used in a network of Brokers. Each Broker + * that has the plugin configured, will add it's brokerName to the content + * of a JMS Property. If all Brokers have this property enabled, the path the * message actually took through the network can be seen in the defined property. - * + * * @org.apache.xbean.XBean element="traceBrokerPathPlugin" - * - * + * */ - +@SuppressWarnings("unchecked") public class TraceBrokerPathPlugin extends BrokerPluginSupport { - private String stampProperty = "BrokerPath"; + private String stampProperty = "BrokerPath"; private static final Logger LOG = LoggerFactory.getLogger(TraceBrokerPathPlugin.class); - - public String getStampProperty() { - return stampProperty; - } - public void setStampProperty(String stampProperty) { - this.stampProperty = stampProperty; - } + public String getStampProperty() { + return stampProperty; + } - public void preProcessDispatch(MessageDispatch messageDispatch) { - try { - String brokerStamp = (String)messageDispatch.getMessage().getProperty(getStampProperty()); - if (brokerStamp == null) { - brokerStamp = getBrokerName(); - } else { - brokerStamp += "," + getBrokerName(); - } - messageDispatch.getMessage().setProperty(getStampProperty(), brokerStamp); - } catch (IOException ioe) { - LOG.warn("Setting broker property failed " + ioe, ioe); - } - super.preProcessDispatch(messageDispatch); - } + public void setStampProperty(String stampProperty) { + if (stampProperty != null && !stampProperty.isEmpty()) { + this.stampProperty = stampProperty; + } + } + + public void preProcessDispatch(MessageDispatch messageDispatch) { + try { + if (messageDispatch != null && messageDispatch.getMessage() != null) { + String brokerStamp = (String)messageDispatch.getMessage().getProperty(getStampProperty()); + if (brokerStamp == null) { + brokerStamp = getBrokerName(); + } else { + brokerStamp += "," + getBrokerName(); + } + messageDispatch.getMessage().setProperty(getStampProperty(), brokerStamp); + } + } catch (IOException ioe) { + LOG.warn("Setting broker property failed " + ioe, ioe); + } + super.preProcessDispatch(messageDispatch); + } }