From 3d8d96c7d2343a64c823f933b11fded51f4970d8 Mon Sep 17 00:00:00 2001 From: Pengyu Nie Date: Tue, 26 Nov 2019 15:45:33 -0600 Subject: [PATCH] [COLLECTIONS-737]: Return 0 immeditaly if the given iterable is null in IterableUtils#size. Update tests. --- .../java/org/apache/commons/collections4/IterableUtils.java | 3 +++ .../org/apache/commons/collections4/FluentIterableTest.java | 6 ------ .../org/apache/commons/collections4/IterableUtilsTest.java | 5 +++++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/apache/commons/collections4/IterableUtils.java b/src/main/java/org/apache/commons/collections4/IterableUtils.java index 125002d5d..bb37d91c8 100644 --- a/src/main/java/org/apache/commons/collections4/IterableUtils.java +++ b/src/main/java/org/apache/commons/collections4/IterableUtils.java @@ -797,6 +797,9 @@ public class IterableUtils { * @return the number of elements contained in the iterable */ public static int size(final Iterable iterable) { + if (iterable == null) { + return 0; + } if (iterable instanceof Collection) { return ((Collection) iterable).size(); } diff --git a/src/test/java/org/apache/commons/collections4/FluentIterableTest.java b/src/test/java/org/apache/commons/collections4/FluentIterableTest.java index 6c38914f5..4b7277713 100644 --- a/src/test/java/org/apache/commons/collections4/FluentIterableTest.java +++ b/src/test/java/org/apache/commons/collections4/FluentIterableTest.java @@ -416,12 +416,6 @@ public class FluentIterableTest { @Test public void size() { - try { - FluentIterable.of((Iterable) null).size(); - fail("expecting NullPointerException"); - } catch (final NullPointerException npe) { - // expected - } assertEquals(0, FluentIterable.of(emptyIterable).size()); assertEquals(IterableUtils.toList(iterableOdd).size(), FluentIterable.of(iterableOdd).size()); } diff --git a/src/test/java/org/apache/commons/collections4/IterableUtilsTest.java b/src/test/java/org/apache/commons/collections4/IterableUtilsTest.java index 5cb404546..b826f727a 100644 --- a/src/test/java/org/apache/commons/collections4/IterableUtilsTest.java +++ b/src/test/java/org/apache/commons/collections4/IterableUtilsTest.java @@ -579,4 +579,9 @@ public class IterableUtilsTest { // expected } } + + @Test + public void size() { + assertEquals(0, IterableUtils.size(null)); + } }