commons-issues mailing list archives

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

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

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: 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
>
> 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.


Mime
View raw message