This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git


The following commit(s) were added to refs/heads/master by this push:
     new 2c13fc8  IO-665  ensure that passing a null InputStream results in NPE 
with tests (#112)
2c13fc8 is described below

commit 2c13fc8148128d1a1f19f28b71acad262f24d4a3
Author: Otto Fowler <ottobackwa...@gmail.com>
AuthorDate: Mon Apr 13 21:30:45 2020 -0400

    IO-665  ensure that passing a null InputStream results in NPE with tests 
(#112)
    
    * ensure that passing a null InputStream results in NPE with tests
    
    * remove stray import from bad autocomplete
    
    * per review, fix formating for lamda () ->
    
    * per review, protect other constructors
---
 .../apache/commons/io/input/XmlStreamReader.java   |  8 ++++++--
 .../commons/io/input/XmlStreamReaderTest.java      | 24 ++++++++++++++++++++++
 2 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/commons/io/input/XmlStreamReader.java 
b/src/main/java/org/apache/commons/io/input/XmlStreamReader.java
index a69b923..2ecc38e 100644
--- a/src/main/java/org/apache/commons/io/input/XmlStreamReader.java
+++ b/src/main/java/org/apache/commons/io/input/XmlStreamReader.java
@@ -30,6 +30,7 @@ import java.net.URL;
 import java.net.URLConnection;
 import java.text.MessageFormat;
 import java.util.Locale;
+import java.util.Objects;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -135,7 +136,7 @@ public class XmlStreamReader extends Reader {
      * @throws IOException thrown if there is a problem reading the file.
      */
     public XmlStreamReader(final File file) throws IOException {
-        this(new FileInputStream(file));
+        this(new FileInputStream(Objects.requireNonNull(file)));
     }
 
     /**
@@ -214,6 +215,7 @@ public class XmlStreamReader extends Reader {
      */
     public XmlStreamReader(final InputStream inputStream, final boolean 
lenient, final String defaultEncoding)
             throws IOException {
+        Objects.requireNonNull(inputStream, "inputStream");
         this.defaultEncoding = defaultEncoding;
         final BOMInputStream bom = new BOMInputStream(new 
BufferedInputStream(inputStream, BUFFER_SIZE), false, BOMS);
         final BOMInputStream pis = new BOMInputStream(bom, true, 
XML_GUESS_BYTES);
@@ -239,7 +241,7 @@ public class XmlStreamReader extends Reader {
      *         the URL.
      */
     public XmlStreamReader(final URL url) throws IOException {
-        this(url.openConnection(), null);
+        this(Objects.requireNonNull(url, "url").openConnection(), null);
     }
 
     /**
@@ -262,6 +264,7 @@ public class XmlStreamReader extends Reader {
      *         the URLConnection.
      */
     public XmlStreamReader(final URLConnection conn, final String 
defaultEncoding) throws IOException {
+        Objects.requireNonNull(conn, "conm");
         this.defaultEncoding = defaultEncoding;
         final boolean lenient = true;
         final String contentType = conn.getContentType();
@@ -334,6 +337,7 @@ public class XmlStreamReader extends Reader {
      */
     public XmlStreamReader(final InputStream inputStream, final String 
httpContentType,
             final boolean lenient, final String defaultEncoding) throws 
IOException {
+        Objects.requireNonNull(inputStream, "inputStream");
         this.defaultEncoding = defaultEncoding;
         final BOMInputStream bom = new BOMInputStream(new 
BufferedInputStream(inputStream, BUFFER_SIZE), false, BOMS);
         final BOMInputStream pis = new BOMInputStream(bom, true, 
XML_GUESS_BYTES);
diff --git a/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java 
b/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java
index 019729f..443e5ce 100644
--- a/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java
+++ b/src/test/java/org/apache/commons/io/input/XmlStreamReaderTest.java
@@ -17,15 +17,19 @@
 package org.apache.commons.io.input;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStreamWriter;
 import java.io.Writer;
+import java.net.URL;
+import java.net.URLConnection;
 import java.text.MessageFormat;
 import java.util.HashMap;
 import java.util.Map;
@@ -79,6 +83,26 @@ public class XmlStreamReaderTest {
     }
 
     @Test
+    protected void testNullFileInput() throws IOException {
+        assertThrows(NullPointerException.class, () -> new 
XmlStreamReader((File)null));
+    }
+
+    @Test
+    protected void testNullInputStreamInput() throws IOException {
+        assertThrows(NullPointerException.class, () -> new 
XmlStreamReader((InputStream) null));
+    }
+
+    @Test
+    protected void testNullURLInput() throws IOException {
+         assertThrows(NullPointerException.class, () -> new 
XmlStreamReader((URL)null));
+    }
+
+    @Test
+    protected void testNullURLConnectionInput() throws IOException {
+          assertThrows(NullPointerException.class, () -> new 
XmlStreamReader((URLConnection)null, "US-ASCII"));
+    }
+
+    @Test
     public void testRawNoBomUsAscii() throws Exception {
         _testRawNoBomValid("US-ASCII");
     }

Reply via email to