[
https://issues.apache.org/jira/browse/COLLECTIONS-377?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13131537#comment-13131537
]
Maks commented on COLLECTIONS-377:
----------------------------------
I fixed.
> CollatingIterator throws NullPointerException when constructor is given null
> (or no) Comparator
> -----------------------------------------------------------------------------------------------
>
> Key: COLLECTIONS-377
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-377
> Project: Commons Collections
> Issue Type: Bug
> Components: Iterator
> Affects Versions: 3.2
> Environment: Java 1.6.0_26
> Reporter: Ryan Hochstetler
> Priority: Minor
>
> CollatingIterator's javadoc
> (http://commons.apache.org/collections/api-release/index.html) states that
> natural sort ordering will be used when null is passed as the Comparator
> argument to any of the constructors accepting one (and for the nullary
> constructor). The following stack is thrown from the subsequent unit test.
> The implementation of least() does not appear to account for the natural sort
> order case.
> java.lang.NullPointerException
> at
> org.apache.commons.collections.iterators.CollatingIterator.least(CollatingIterator.java:334)
> at
> org.apache.commons.collections.iterators.CollatingIterator.next(CollatingIterator.java:230)
> at mil.af.statistics.jutl.collection.MutableDataSeriesTest...
> @SuppressWarnings("unchecked")
> @Test
> public void testCollatingIteratorNaturalOrdering() throws Exception
> {
> Integer[] expected =
> { Integer.valueOf(1), Integer.valueOf(2), Integer.valueOf(3),
> Integer.valueOf(4), Integer.valueOf(5),
> Integer.valueOf(6) };
> List<Integer> evens = Arrays.asList(new Integer[]
> { Integer.valueOf(2), Integer.valueOf(4), Integer.valueOf(6) });
> List<Integer> odds = Arrays.asList(new Integer[]
> { Integer.valueOf(1), Integer.valueOf(3), Integer.valueOf(5) });
> Iterator<Integer> collatingIter = new CollatingIterator(null,
> evens.iterator(), odds.iterator());
> for (Integer expectedInt : expected)
> {
> assertTrue(collatingIter.hasNext());
> assertEquals(expectedInt, collatingIter.next());
> }
> }
> Workaround: provide a Comparator that implements the natural ordering
> contract.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira