[ 
https://issues.apache.org/jira/browse/COLLECTIONS-265?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hasan Diwan updated COLLECTIONS-265:
------------------------------------

    Attachment: TreeBag.pat

adds the add method with the following semantics:

public boolean add(Object o) {
   if (o instanceof Comparable) {
      return super.add(o);
  }
  else return false;
}

can this be committed asap as well?

> TreeBag allows uncomparable item to be added, breaking toString
> ---------------------------------------------------------------
>
>                 Key: COLLECTIONS-265
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-265
>             Project: Commons Collections
>          Issue Type: Bug
>          Components: Bag
>    Affects Versions: 3.2
>            Reporter: David Saff
>            Priority: Minor
>         Attachments: TreeBag.pat
>
>
> The following code throws an exception not when the Object is added, but when 
> toString is called:
>               TreeBag bag = new TreeBag();
>               bag.add(new Object());
>               bag.toString();
> Trace:
> java.lang.ClassCastException: java.lang.Object
>       at java.util.TreeMap.compare(TreeMap.java:1093)
>       at java.util.TreeMap.getEntry(TreeMap.java:347)
>       at java.util.TreeMap.get(TreeMap.java:265)
>       at 
> org.apache.commons.collections.bag.AbstractMapBag.getCount(AbstractMapBag.java:116)
>       at 
> org.apache.commons.collections.bag.AbstractMapBag.toString(AbstractMapBag.java:581)
> [...]
> In a client program, toString should never throw an exception--it makes 
> debugging much harder, for one thing.  I believe that TreeBag should defend 
> against the addition of uncomparable objects, so that toString will never 
> throw an exception.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to