DO NOT REPLY [Bug 33839] - [beanutils] DecimalLocaleConverter und subClasses: ConversionException not thrown

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

DO NOT REPLY [Bug 33839] - [beanutils] DecimalLocaleConverter und subClasses: ConversionException not thrown

Bugzilla from bugzilla@apache.org
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG?
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=33839>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND?
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=33839





------- Additional Comments From [hidden email]  2005-05-28 04:09 -------
Created an attachment (id=15191)
 --> (http://issues.apache.org/bugzilla/attachment.cgi?id=15191&action=view)
Patch indicating change required in DecimalLocaleConverter

Sorry, I find your explanation confusing and it took me a while to work out
what the problem was - so I'm going to re-state it to (hopefully) make it
clearer.

BaseLocaleConverter has a number of constructors which can be divided into
three groups:
  A) protected constructors with a default value
  B) protected constructors without a default value
  C) a private constructor

All the protected constructors end all calling the private constructor with a
"useDefault" parameter. The protected constructors WITH a "default value"
parameter call the private constructor with a "useDefault" value of "true". The
protected constructors WITHOUT a "default value" parameter call the private
constructor with a "useDefault" value of "false". The "useDefault" variable is
used to determine whether to throw a ConversionException or return a default
value when a conversion error occurs.

DecimalLocaleConverter was changed on 4th Feb 2004 (revision 128763) so that
the constructor WITHOUT a default value that used to call the appropriate
(super) constructor in BaseLocaleConveter instead called a constructor in
itself with a default value of null. Effectively this means that
DecimalLocaleConverter and all its siblings will always have a "useDefault"
setting of "true" and never throw a ConversionException, but always return a
default value.

Correcting this will have a big impact because the following classes inherit
from DecimalLocaleConverter:
     * BigDecimalLocaleConveter
     * BigIntegerLocaleConveter
     * ByteLocaleConveter
     * DoubleLocaleConveter
     * FloatLocaleConveter
     * IntegerLocaleConveter
     * LongLocaleConveter
     * ShortLocaleConveter

All these classes will start throwing ConversionExceptions where they never did
in the past.

Correcting the error is very simple - however it causes quite a few of the test
cases to fail (they were added after this bug, which is why it wasn't picked
up).

Attaching a patch indicating change required - I don't have time to fix the
test cases at the moment.

--
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]