Our application is rolling with Struts 2.2.1.

One action class implements ModelDriven<E> and in the model we have a 
Map<BusinessObjectA, BusinessObjectB>; where we rolled a custom type converter 
for BusinessObjectA and BusinessObjectB has a BigDecimal. This model has been 
in production for well over 4 months with no issue; that is, until someone 
recently added a space to the end of the related input field, e.g., "54 " 
(quotes added for emphasis).

This causes com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter to fail 
here:

402 if (toType == BigDecimal.class) {
403     return new BigDecimal((String) value);

...seemingly because it doesn't trim prior to creating a new BigDecimal.


1.       I feel like 403 should be calling bigDecValue(value, true) like the 
parent in 
com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter.convertValue()

139 if (toType == BigDecimal.class)
140     result = bigDecValue(value);

If #1 sounds like a candidate for a bug report, I would be happy to report it 
if provided the appropriate url to post to.


2.       Our temporary solution will be to roll our own BigDecimal type 
converter so we can .trim() the string passed into the constructor(String)

Does #2 sound like the best solution? Do you have a more efficient or less 
"custom" approach?

Thank you for your time,
Kevin Biesbrock

Reply via email to