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