[
https://issues.apache.org/jira/browse/LANG-980?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Benedikt Ritter updated LANG-980:
---------------------------------
Fix Version/s: Patch Needed
> DurationFormatUtils uses == for comparing objects
> -------------------------------------------------
>
> Key: LANG-980
> URL: https://issues.apache.org/jira/browse/LANG-980
> Project: Commons Lang
> Issue Type: Bug
> Components: lang.time.*
> Reporter: Sebb
> Priority: Minor
> Fix For: Patch Needed
>
>
> As reported on the ML, Findbugs complains that == is being used to compare
> objects in the class DurationFormatUtils.
> These objects are the strings which define the various durations: "y", "M",
> "d" etc. These are final static objects (singletons) so the use of == should
> be OK but it is not good practice.
> One way to avoid the warnings would be to use an Enum for the singleton
> objects. For example:
> {code}
> enum Duration { YEAR, MONTH, ... }
> static final ParseObject y = ParseObject.YEAR;
> static final ParseObject M = ParseObject.MONTH;
> ...
> {code}
> Note: the package protected fields y, M etc are currently needed for the unit
> tests.
> The above change would then allow the format() method to use a switch
> statement which would likely be faster than the if chain it has to use now.
> Eliminating the warnings for == which are currently safe would make it
> obvious if == was used elsewhere in an unsafe way.
--
This message was sent by Atlassian JIRA
(v6.2#6252)