RFR 8023367 Collections.emptyList().sort((Comparator)null) throws NPE

Mike Duigou mike.duigou at oracle.com
Tue Aug 20 16:27:32 UTC 2013


Looks OK to me.

On Aug 20 2013, at 08:39 , Paul Sandoz wrote:

> Hi,
> 
> Please see below for a simple fix to stop throwing an NPE on Collections.emptyList().sort(null);
> 
> Paul.
> 
> http://hg.openjdk.java.net/lambda/lambda/jdk/rev/67e00b862126
> 
> diff -r 3647aab7b1d5 src/share/classes/java/util/Collections.java
> --- a/src/share/classes/java/util/Collections.java	Tue Aug 06 14:26:34 2013 +0100
> +++ b/src/share/classes/java/util/Collections.java	Tue Aug 20 17:38:16 2013 +0200
> @@ -4508,7 +4508,6 @@
>         }
>         @Override
>         public void sort(Comparator<? super E> c) {
> -            Objects.requireNonNull(c);
>         }
> 
>         // Override default methods in Collection
> diff -r 3647aab7b1d5 test/java/util/Collection/ListDefaults.java
> --- a/test/java/util/Collection/ListDefaults.java	Tue Aug 06 14:26:34 2013 +0100
> +++ b/test/java/util/Collection/ListDefaults.java	Tue Aug 20 17:38:16 2013 +0200
> @@ -49,6 +49,7 @@
> 
> /**
>  * @test
> + * @bug 8023367
>  * @library testlibrary
>  * @build CollectionAsserts CollectionSupplier
>  * @run testng ListDefaults
> @@ -100,6 +101,7 @@
>     @DataProvider(name="listProvider", parallel=true)
>     public static Object[][] listCases() {
>         final List<Object[]> cases = new LinkedList<>();
> +        cases.add(new Object[] { Collections.emptyList() });
>         cases.add(new Object[] { new ArrayList<>() });
>         cases.add(new Object[] { new LinkedList<>() });
>         cases.add(new Object[] { new Vector<>() });
> @@ -128,6 +130,11 @@
>             list.removeIf(null);
>             fail("expected NPE not thrown");
>         } catch (NullPointerException npe) {}
> +        try {
> +            list.sort(null);
> +        } catch (Throwable t) {
> +            fail("Exception not expected: " + t);
> +        }
>     }
> 
>     @Test




More information about the core-libs-dev mailing list