[
https://issues.apache.org/jira/browse/COLLECTIONS-265?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Henri Yandell closed COLLECTIONS-265.
-------------------------------------
Resolution: Fixed
svn ci -m "Applying my patch from COLLECTIONS-265. TreeBag no longer accepts
non-Comparable classes when it naturally ordered (ie: no comparator has been
set)" src
Sending src/java/org/apache/commons/collections/TreeBag.java
Sending src/java/org/apache/commons/collections/bag/TreeBag.java
Sending src/test/org/apache/commons/collections/TestTreeBag.java
Sending src/test/org/apache/commons/collections/bag/TestTreeBag.java
Transmitting file data ....
Committed revision 641166.
> 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
> Fix For: 3.3
>
> Attachments: COLLECTIONS-265.patch, 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.