[
https://issues.apache.org/jira/browse/VALIDATOR-308?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Til Boerner updated VALIDATOR-308:
----------------------------------
Attachment: flags_test_patch.diff
flags_impl_patch.diff
Patches for tests and implementation of util.Flags
> Logical errors in util.Flags
> ----------------------------
>
> Key: VALIDATOR-308
> URL: https://issues.apache.org/jira/browse/VALIDATOR-308
> Project: Commons Validator
> Issue Type: Bug
> Components: Framework
> Affects Versions: 1.4.0 Release
> Environment: any; flawed logic is independent of environment
> Reporter: Til Boerner
> Priority: Minor
> Labels: flags, patch
> Attachments: flags_impl_patch.diff, flags_test_patch.diff
>
> Original Estimate: 0.25h
> Remaining Estimate: 0.25h
>
> I just came across Validator.util.Flags while trying to avoid writing my own
> flag class. Two errors caught my eye:
> 1) Java uses two's complement representation for its signed primitives. Two
> important consequences: the highest order bit signifies a negative number;
> Long.MAX_VALUE is not the value that has all bits set. This affects
> flag.isOn(long) and flag.turnAllOn() .
> 2) If I understand correctly, flag.isOn(long) is supposed to test if flag has
> ALL bits set which are also set in the long argument. Comparing against 0 is
> the wrong way to do this, even when correcting for the mistake from 1). By
> comparing against 0, the test merely checks if the two values have ANY bits
> in common, which is not what the method's documentation seems to imply.
> These cases don't seem to get much use, otherwise this would be a serious
> problem. (And already be fixed, is my guess.) But still, it is bad enough to
> completely ruin the day of anyone who happens to rely on these features, and
> the poor soul would rightly curse anyone who allowed them to persist in this
> wretched state.
> After submitting this, I can hopefully attach the patch I made. Actually
> there are two separate patches: one for the test, which illustrates the
> problems, and a very simple one for the Flags implementation, which fixes
> them.
> Cheerio! :)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira