commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Saff (JIRA)" <>
Subject [jira] Commented: (COLLECTIONS-265) TreeBag allows uncomparable item to be added, breaking toString
Date Wed, 19 Sep 2007 13:33:43 GMT


David Saff commented on COLLECTIONS-265:

I prefer #2, but stated it poorly.  I would prefer if the first add of an uncomparable Object
raised an exception.  The example code above is the current, somewhat odd behavior: add accepts
the object the first time, but rejects it the second.  I think it should reject it the first
time for consistency.

I agree that #1 is odd.  It is the de facto behavior of java.util.TreeSet: that's not terribly
important to me, but if it is to the maintainers, TreeBag could follow the example.

> TreeBag allows uncomparable item to be added, breaking toString
> ---------------------------------------------------------------
>                 Key: COLLECTIONS-265
>                 URL:
>             Project: Commons Collections
>          Issue Type: Bug
>          Components: Bag
>    Affects Versions: 3.2
>            Reporter: David Saff
>            Priority: Minor
> 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
> 	at java.util.TreeMap.getEntry(
> 	at java.util.TreeMap.get(
> 	at org.apache.commons.collections.bag.AbstractMapBag.getCount(
> 	at org.apache.commons.collections.bag.AbstractMapBag.toString(
> [...]
> 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.

View raw message