BeanComparator(String, Comparator) should check the comparator for null and 
default to ComparableComparator.getInstance()
-------------------------------------------------------------------------------------------------------------------------

                 Key: BEANUTILS-267
                 URL: https://issues.apache.org/jira/browse/BEANUTILS-267
             Project: Commons BeanUtils
          Issue Type: Improvement
          Components: Bean-Collections
    Affects Versions: 1.7.0
            Reporter: Jacob Kjome
            Priority: Minor



The way the BeanComparator(String, Comparator) constructor is implemented is 
inconvenient.  I've got code that passes in a comparator.  This comparator may 
be null.  I assumed that the 2-args constructor would sanely ignore a null 
comparator argument and use a default like ReverseComparator does in 
commons-collections, but alas, no.  I have to do the null check before I pass 
it in  

For instance, here's the constructor for ReverseComparator, which takes a 
Comparator argument...

    public ReverseComparator(Comparator comparator) {
        if(comparator != null) {
            this.comparator = comparator;
        } else {
            this.comparator = ComparableComparator.getInstance();
        }
    }

The null check and provided default is convenient and reasonable.  

Here's the current constructor for BeanComparator that can only end in a 
NullPointerException if provided  null comparator....

    public BeanComparator( String property, Comparator comparator ) {
        setProperty( property );
        this.comparator = comparator;
    }

Why not?....

    public BeanComparator( String property, Comparator comparator ) {
        setProperty( property );
        if(comparator != null) {
            this.comparator = comparator;
        } else {
            this.comparator = ComparableComparator.getInstance();
        }
    }

The fact that BeanComparator allows itself to be put in a bad state by storing 
a null comparator which it later tries to use with no null check, guaranteeing 
a NullPointerException, probably should be considered a bug.  However, since it 
works just fine when provided a non-null comparator, I consider this more of an 
"Improvement" opportunity than a bug, thus the reported Issue Type.  Hopefully 
this can be applied to the next release.


Jake

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to