You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Sebb (JIRA)" <ji...@apache.org> on 2014/03/02 13:21:20 UTC
[jira] [Created] (LANG-980) DurationFormatUtils uses == for
comparing objects
Sebb created LANG-980:
-------------------------
Summary: 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
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.1.5#6160)