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