- Fix for https://issues.apache.org/activemq/browse/AMQ-1576 (behavior is that if a jms property is null, it will not be converted, but will still be added to the default list of properties)

- Fix a spelling typo


git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@629060 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Adrian T. Co 2008-02-19 10:46:13 +00:00
parent 8768a04e63
commit 13af1e36fb
2 changed files with 49 additions and 48 deletions

View File

@ -181,27 +181,27 @@ public final class ActiveMQMessageTransformation {
* message to the specified message
*
* @param fromMessage the message to take the properties from
* @param toMesage the message to add the properties to
* @param toMessage the message to add the properties to
* @throws JMSException
*/
public static void copyProperties(Message fromMessage, Message toMesage) throws JMSException {
toMesage.setJMSMessageID(fromMessage.getJMSMessageID());
toMesage.setJMSCorrelationID(fromMessage.getJMSCorrelationID());
toMesage.setJMSReplyTo(transformDestination(fromMessage.getJMSReplyTo()));
toMesage.setJMSDestination(transformDestination(fromMessage.getJMSDestination()));
toMesage.setJMSDeliveryMode(fromMessage.getJMSDeliveryMode());
toMesage.setJMSRedelivered(fromMessage.getJMSRedelivered());
toMesage.setJMSType(fromMessage.getJMSType());
toMesage.setJMSExpiration(fromMessage.getJMSExpiration());
toMesage.setJMSPriority(fromMessage.getJMSPriority());
toMesage.setJMSTimestamp(fromMessage.getJMSTimestamp());
public static void copyProperties(Message fromMessage, Message toMessage) throws JMSException {
toMessage.setJMSMessageID(fromMessage.getJMSMessageID());
toMessage.setJMSCorrelationID(fromMessage.getJMSCorrelationID());
toMessage.setJMSReplyTo(transformDestination(fromMessage.getJMSReplyTo()));
toMessage.setJMSDestination(transformDestination(fromMessage.getJMSDestination()));
toMessage.setJMSDeliveryMode(fromMessage.getJMSDeliveryMode());
toMessage.setJMSRedelivered(fromMessage.getJMSRedelivered());
toMessage.setJMSType(fromMessage.getJMSType());
toMessage.setJMSExpiration(fromMessage.getJMSExpiration());
toMessage.setJMSPriority(fromMessage.getJMSPriority());
toMessage.setJMSTimestamp(fromMessage.getJMSTimestamp());
Enumeration propertyNames = fromMessage.getPropertyNames();
while (propertyNames.hasMoreElements()) {
String name = propertyNames.nextElement().toString();
Object obj = fromMessage.getObjectProperty(name);
toMesage.setObjectProperty(name, obj);
toMessage.setObjectProperty(name, obj);
}
}
}

View File

@ -39,8 +39,8 @@ import org.apache.activemq.util.JMSExceptionSupport;
import org.apache.activemq.util.TypeConversionSupport;
/**
* @openwire:marshaller code="23"
* @version $Revision:$
* @openwire:marshaller code="23"
*/
public class ActiveMQMessage extends Message implements org.apache.activemq.Message {
@ -82,7 +82,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
return false;
}
ActiveMQMessage msg = (ActiveMQMessage)o;
ActiveMQMessage msg = (ActiveMQMessage) o;
MessageId oMsg = msg.getMessageId();
MessageId thisMsg = this.getMessageId();
return thisMsg != null && oMsg != null && oMsg.equals(thisMsg);
@ -259,7 +259,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
}
public void setJMSPriority(int priority) {
this.setPriority((byte)priority);
this.setPriority((byte) priority);
}
public void clearProperties() {
@ -284,13 +284,14 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
}
interface PropertySetter {
void set(Message message, Object value) throws MessageFormatException;
}
static {
JMS_PROPERTY_SETERS.put("JMSXDeliveryCount", new PropertySetter() {
public void set(Message message, Object value) throws MessageFormatException {
Integer rc = (Integer)TypeConversionSupport.convert(value, Integer.class);
Integer rc = (Integer) TypeConversionSupport.convert(value, Integer.class);
if (rc == null) {
throw new MessageFormatException("Property JMSXDeliveryCount cannot be set from a " + value.getClass().getName() + ".");
}
@ -299,7 +300,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
});
JMS_PROPERTY_SETERS.put("JMSXGroupID", new PropertySetter() {
public void set(Message message, Object value) throws MessageFormatException {
String rc = (String)TypeConversionSupport.convert(value, String.class);
String rc = (String) TypeConversionSupport.convert(value, String.class);
if (rc == null) {
throw new MessageFormatException("Property JMSXGroupID cannot be set from a " + value.getClass().getName() + ".");
}
@ -308,7 +309,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
});
JMS_PROPERTY_SETERS.put("JMSXGroupSeq", new PropertySetter() {
public void set(Message message, Object value) throws MessageFormatException {
Integer rc = (Integer)TypeConversionSupport.convert(value, Integer.class);
Integer rc = (Integer) TypeConversionSupport.convert(value, Integer.class);
if (rc == null) {
throw new MessageFormatException("Property JMSXGroupSeq cannot be set from a " + value.getClass().getName() + ".");
}
@ -317,65 +318,65 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
});
JMS_PROPERTY_SETERS.put("JMSCorrelationID", new PropertySetter() {
public void set(Message message, Object value) throws MessageFormatException {
String rc = (String)TypeConversionSupport.convert(value, String.class);
String rc = (String) TypeConversionSupport.convert(value, String.class);
if (rc == null) {
throw new MessageFormatException("Property JMSCorrelationID cannot be set from a " + value.getClass().getName() + ".");
}
((ActiveMQMessage)message).setJMSCorrelationID(rc);
((ActiveMQMessage) message).setJMSCorrelationID(rc);
}
});
JMS_PROPERTY_SETERS.put("JMSExpiration", new PropertySetter() {
public void set(Message message, Object value) throws MessageFormatException {
Long rc = (Long)TypeConversionSupport.convert(value, Long.class);
Long rc = (Long) TypeConversionSupport.convert(value, Long.class);
if (rc == null) {
throw new MessageFormatException("Property JMSExpiration cannot be set from a " + value.getClass().getName() + ".");
}
((ActiveMQMessage)message).setJMSExpiration(rc.longValue());
((ActiveMQMessage) message).setJMSExpiration(rc.longValue());
}
});
JMS_PROPERTY_SETERS.put("JMSPriority", new PropertySetter() {
public void set(Message message, Object value) throws MessageFormatException {
Integer rc = (Integer)TypeConversionSupport.convert(value, Integer.class);
Integer rc = (Integer) TypeConversionSupport.convert(value, Integer.class);
if (rc == null) {
throw new MessageFormatException("Property JMSPriority cannot be set from a " + value.getClass().getName() + ".");
}
((ActiveMQMessage)message).setJMSPriority(rc.intValue());
((ActiveMQMessage) message).setJMSPriority(rc.intValue());
}
});
JMS_PROPERTY_SETERS.put("JMSRedelivered", new PropertySetter() {
public void set(Message message, Object value) throws MessageFormatException {
Boolean rc = (Boolean)TypeConversionSupport.convert(value, Boolean.class);
Boolean rc = (Boolean) TypeConversionSupport.convert(value, Boolean.class);
if (rc == null) {
throw new MessageFormatException("Property JMSRedelivered cannot be set from a " + value.getClass().getName() + ".");
}
((ActiveMQMessage)message).setJMSRedelivered(rc.booleanValue());
((ActiveMQMessage) message).setJMSRedelivered(rc.booleanValue());
}
});
JMS_PROPERTY_SETERS.put("JMSReplyTo", new PropertySetter() {
public void set(Message message, Object value) throws MessageFormatException {
ActiveMQDestination rc = (ActiveMQDestination)TypeConversionSupport.convert(value, ActiveMQDestination.class);
ActiveMQDestination rc = (ActiveMQDestination) TypeConversionSupport.convert(value, ActiveMQDestination.class);
if (rc == null) {
throw new MessageFormatException("Property JMSReplyTo cannot be set from a " + value.getClass().getName() + ".");
}
((ActiveMQMessage)message).setReplyTo(rc);
((ActiveMQMessage) message).setReplyTo(rc);
}
});
JMS_PROPERTY_SETERS.put("JMSTimestamp", new PropertySetter() {
public void set(Message message, Object value) throws MessageFormatException {
Long rc = (Long)TypeConversionSupport.convert(value, Long.class);
Long rc = (Long) TypeConversionSupport.convert(value, Long.class);
if (rc == null) {
throw new MessageFormatException("Property JMSTimestamp cannot be set from a " + value.getClass().getName() + ".");
}
((ActiveMQMessage)message).setJMSTimestamp(rc.longValue());
((ActiveMQMessage) message).setJMSTimestamp(rc.longValue());
}
});
JMS_PROPERTY_SETERS.put("JMSType", new PropertySetter() {
public void set(Message message, Object value) throws MessageFormatException {
String rc = (String)TypeConversionSupport.convert(value, String.class);
String rc = (String) TypeConversionSupport.convert(value, String.class);
if (rc == null) {
throw new MessageFormatException("Property JMSType cannot be set from a " + value.getClass().getName() + ".");
}
((ActiveMQMessage)message).setJMSType(rc);
((ActiveMQMessage) message).setJMSType(rc);
}
});
}
@ -396,7 +397,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
checkValidObject(value);
PropertySetter setter = JMS_PROPERTY_SETERS.get(name);
if (setter != null) {
if (setter != null && value != null) {
setter.set(this, value);
} else {
try {
@ -409,11 +410,11 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
public void setProperties(Map properties) throws JMSException {
for (Iterator iter = properties.entrySet().iterator(); iter.hasNext();) {
Map.Entry entry = (Map.Entry)iter.next();
Map.Entry entry = (Map.Entry) iter.next();
// Lets use the object property method as we may contain standard
// extension headers like JMSXGroupID
setObjectProperty((String)entry.getKey(), entry.getValue());
setObjectProperty((String) entry.getKey(), entry.getValue());
}
}
@ -451,7 +452,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
if (value == null) {
return false;
}
Boolean rc = (Boolean)TypeConversionSupport.convert(value, Boolean.class);
Boolean rc = (Boolean) TypeConversionSupport.convert(value, Boolean.class);
if (rc == null) {
throw new MessageFormatException("Property " + name + " was a " + value.getClass().getName() + " and cannot be read as a boolean");
}
@ -463,7 +464,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
if (value == null) {
throw new NumberFormatException("property " + name + " was null");
}
Byte rc = (Byte)TypeConversionSupport.convert(value, Byte.class);
Byte rc = (Byte) TypeConversionSupport.convert(value, Byte.class);
if (rc == null) {
throw new MessageFormatException("Property " + name + " was a " + value.getClass().getName() + " and cannot be read as a byte");
}
@ -475,7 +476,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
if (value == null) {
throw new NumberFormatException("property " + name + " was null");
}
Short rc = (Short)TypeConversionSupport.convert(value, Short.class);
Short rc = (Short) TypeConversionSupport.convert(value, Short.class);
if (rc == null) {
throw new MessageFormatException("Property " + name + " was a " + value.getClass().getName() + " and cannot be read as a short");
}
@ -487,7 +488,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
if (value == null) {
throw new NumberFormatException("property " + name + " was null");
}
Integer rc = (Integer)TypeConversionSupport.convert(value, Integer.class);
Integer rc = (Integer) TypeConversionSupport.convert(value, Integer.class);
if (rc == null) {
throw new MessageFormatException("Property " + name + " was a " + value.getClass().getName() + " and cannot be read as an integer");
}
@ -499,7 +500,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
if (value == null) {
throw new NumberFormatException("property " + name + " was null");
}
Long rc = (Long)TypeConversionSupport.convert(value, Long.class);
Long rc = (Long) TypeConversionSupport.convert(value, Long.class);
if (rc == null) {
throw new MessageFormatException("Property " + name + " was a " + value.getClass().getName() + " and cannot be read as a long");
}
@ -511,7 +512,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
if (value == null) {
throw new NullPointerException("property " + name + " was null");
}
Float rc = (Float)TypeConversionSupport.convert(value, Float.class);
Float rc = (Float) TypeConversionSupport.convert(value, Float.class);
if (rc == null) {
throw new MessageFormatException("Property " + name + " was a " + value.getClass().getName() + " and cannot be read as a float");
}
@ -523,7 +524,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
if (value == null) {
throw new NullPointerException("property " + name + " was null");
}
Double rc = (Double)TypeConversionSupport.convert(value, Double.class);
Double rc = (Double) TypeConversionSupport.convert(value, Double.class);
if (rc == null) {
throw new MessageFormatException("Property " + name + " was a " + value.getClass().getName() + " and cannot be read as a double");
}
@ -540,7 +541,7 @@ public class ActiveMQMessage extends Message implements org.apache.activemq.Mess
if (value == null) {
return null;
}
String rc = (String)TypeConversionSupport.convert(value, String.class);
String rc = (String) TypeConversionSupport.convert(value, String.class);
if (rc == null) {
throw new MessageFormatException("Property " + name + " was a " + value.getClass().getName() + " and cannot be read as a String");
}