RFR 8044047: Missing null pointer checks for streams (original) (raw)

Paul Sandoz paul.sandoz at oracle.com
Wed Jul 2 12:01:40 UTC 2014


Hi,

Please review this fix for some missing null-checks in stream code:

http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8044047-null-checks/webrev/ https://bugs.openjdk.java.net/browse/JDK-8044047

I also boosted some of the primitive summary statistic tests.

Unfortunately the refactoring of some test names resulted in disassociation between old and new (not quite sure why in this case), so diffs for renamed tests are below.

Paul.

jdk/test/java/util/stream/test/org/openjdk/tests/java/util/stream/ExplodeOpTest.java -> jdk/test/java/util/stream/test/org/openjdk/tests/java/util/stream/FlatMapOpTest.java

* Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. 33a34 import static java.util.stream.ThowableHelper.checkNPE; 36c37 < * ExplodeOpTest


* FlatMapOpTest 41c42,49 < public class ExplodeOpTest extends OpTestCase {


public class FlatMapOpTest extends OpTestCase {

public void testNullMapper() { checkNPE(() -> Stream.of(1).flatMap(null)); checkNPE(() -> IntStream.of(1).flatMap(null)); checkNPE(() -> LongStream.of(1).flatMap(null)); checkNPE(() -> DoubleStream.of(1).flatMap(null)); }

jdk/test/java/util/stream/test/org/openjdk/tests/java/util/stream/SummaryStatisticsTest.java -> jdk/test/java/util/stream/test/org/openjdk/tests/java/util/stream/CollectAndSummaryStatisticsTest.java

* Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. 24a25,26 import org.testng.annotations.Test; 30a33,35 import java.util.stream.DoubleStream; import java.util.stream.IntStream; import java.util.stream.LongStream; 33,34d37 < import org.testng.annotations.Test; < 35a39 import static java.util.stream.ThowableHelper.checkNPE; 38c42 < * TestSummaryStatistics


* CollectAndSummaryStatisticsTest 43c47,84 < public class SummaryStatisticsTest extends OpTestCase {


public class CollectAndSummaryStatisticsTest extends OpTestCase {

public void testIntCollectNull() { checkNPE(() -> IntStream.of(1).collect(null, IntSummaryStatistics::accept, IntSummaryStatistics::combine)); checkNPE(() -> IntStream.of(1).collect(IntSummaryStatistics::new, null, IntSummaryStatistics::combine)); checkNPE(() -> IntStream.of(1).collect(IntSummaryStatistics::new, IntSummaryStatistics::accept, null)); } public void testLongCollectNull() { checkNPE(() -> LongStream.of(1).collect(null, LongSummaryStatistics::accept, LongSummaryStatistics::combine)); checkNPE(() -> LongStream.of(1).collect(LongSummaryStatistics::new, null, LongSummaryStatistics::combine)); checkNPE(() -> LongStream.of(1).collect(LongSummaryStatistics::new, LongSummaryStatistics::accept, null)); } public void testDoubleCollectNull() { checkNPE(() -> DoubleStream.of(1).collect(null, DoubleSummaryStatistics::accept, DoubleSummaryStatistics::combine)); checkNPE(() -> DoubleStream.of(1).collect(DoubleSummaryStatistics::new, null, DoubleSummaryStatistics::combine)); checkNPE(() -> DoubleStream.of(1).collect(DoubleSummaryStatistics::new, DoubleSummaryStatistics::accept, null)); } 47a89,91 instances.add(countTo(1000).stream().mapToInt(i -> i).collect(IntSummaryStatistics::new, IntSummaryStatistics::accept, IntSummaryStatistics::combine)); 49a94,96 instances.add(countTo(1000).parallelStream().mapToInt(i -> i).collect(IntSummaryStatistics::new, IntSummaryStatistics::accept, IntSummaryStatistics::combine)); 53a101 assertEquals(stats.getAverage(), (double) stats.getSum() / stats.getCount()); 58a107 62a112,114 instances.add(countTo(1000).stream().mapToLong(i -> i).collect(LongSummaryStatistics::new, LongSummaryStatistics::accept, LongSummaryStatistics::combine)); 64a117,119 instances.add(countTo(1000).parallelStream().mapToLong(i -> i).collect(LongSummaryStatistics::new, LongSummaryStatistics::accept, LongSummaryStatistics::combine)); 68a124 assertEquals(stats.getAverage(), (double) stats.getSum() / stats.getCount()); 77a134,136 instances.add(countTo(1000).stream().mapToDouble(i -> i).collect(DoubleSummaryStatistics::new, DoubleSummaryStatistics::accept, DoubleSummaryStatistics::combine)); 79a139,141 instances.add(countTo(1000).parallelStream().mapToDouble(i -> i).collect(DoubleSummaryStatistics::new, DoubleSummaryStatistics::accept, DoubleSummaryStatistics::combine)); 83a146 assertEquals(stats.getAverage(), stats.getSum() / stats.getCount());



More information about the core-libs-dev mailing list