On Fri, Sep 21, 2012 at 6:27 PM, James Carman
<[email protected]> wrote:
> According to the documentation:
>
> "The values must be primitives or their counter objects (such as
> Integer, Long, Character). The types, String, CharSequence, Date,
> BigDecimal and BigInteger are all converted to their toString()
> representation. All other types are dropped."
>
> So, it would seem that BigInteger should be toString()ed.  However, in
> the JmsBinding class, we see the following code:
>
> protected Object getValidJMSHeaderValue(String headerName, Object 
> headerValue) {
>         if (headerValue instanceof String) {
>             return headerValue;
>         } else if (headerValue instanceof Number) {
>             return headerValue;
>         } else if (headerValue instanceof Character) {
>             return headerValue;
>         } else if (headerValue instanceof CharSequence) {
>             return headerValue.toString();
>         } else if (headerValue instanceof Boolean) {
>             return headerValue;
>         } else if (headerValue instanceof Date) {
>             return headerValue.toString();
>         }
>         return null;
>     }
>
> Since BigInteger extends Number, it will merely return the instance
> itself.  Does this contradict the documentation?  It looks like this
> value will be used to call setObjectProperty() on the JMS message
> later.
>

Yes those 2 big should be explicit toString'ed. Fell free to create a
JIRA ticket and a patch.


> Thanks,
>
> James



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
FuseSource is now part of Red Hat
Email: [email protected]
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to