[
https://issues.apache.org/jira/browse/AMQ-5633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish closed AMQ-5633.
-----------------------------
Resolution: Not a Problem
This is working as the spec defines it to
"Getting a property value for a name which has not been set returns a null
value. Only the getStringProperty and getObjectProperty methods can return a
null value. Attempting to read a null value as a primitive type must be treated
as calling the primitive's corresponding valueOf(String) conversion method with
a null value. "
Calling Boolean.valueOf(null) returns false.
> MapMessage.getBooleanProperty should probably throw if value not present
> ------------------------------------------------------------------------
>
> Key: AMQ-5633
> URL: https://issues.apache.org/jira/browse/AMQ-5633
> Project: ActiveMQ
> Issue Type: Bug
> Reporter: Endre Stølsvik
>
> Compared to the other property getters (except for String and Object, which
> are clearly documented in spec as should return null), the getBoolanProperty
> just returns false if the value is not present.
> MapMessage, line ~583:
> {code}
> public boolean getBooleanProperty(String name) throws JMSException {
> Object value = getObjectProperty(name);
> if (value == null) {
> return false;
> }
> 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");
> }
> return rc.booleanValue();
> }
> {code}
> Compared to e.g. getByteProperty right below:
> {code}
> public byte getByteProperty(String name) throws JMSException {
> Object value = getObjectProperty(name);
> if (value == null) {
> throw new NumberFormatException("property " + name + " was null");
> }
> 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");
> }
> return rc.byteValue();
> }
> {code}
> or getFloatProperty some methods below:
> {code}
> public float getFloatProperty(String name) throws JMSException {
> Object value = getObjectProperty(name);
> if (value == null) {
> throw new NullPointerException("property " + name + " was null");
> }
> 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");
> }
> return rc.floatValue();
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)