You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2020/05/24 14:48:00 UTC

[commons-csv] branch master updated: Replace org.apache.commons.csv.Assertions.notNull() with Objects.requireNonNull().

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-csv.git


The following commit(s) were added to refs/heads/master by this push:
     new adc4faa  Replace org.apache.commons.csv.Assertions.notNull() with Objects.requireNonNull().
adc4faa is described below

commit adc4faa7841f3ae7ce95cbdc4480de9d2e736317
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun May 24 10:47:56 2020 -0400

    Replace org.apache.commons.csv.Assertions.notNull() with
    Objects.requireNonNull().
---
 src/changes/changes.xml                            |   1 +
 .../java/org/apache/commons/csv/Assertions.java    |  38 ----
 .../java/org/apache/commons/csv/CSVParser.java     |  27 +--
 .../java/org/apache/commons/csv/CSVPrinter.java    |   5 +-
 .../org/apache/commons/csv/AssertionsTest.java     |  37 ----
 .../java/org/apache/commons/csv/CSVParserTest.java | 219 ++++++++++-----------
 .../org/apache/commons/csv/CSVPrinterTest.java     |   4 +-
 7 files changed, 126 insertions(+), 205 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c354e45..c977be3 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -54,6 +54,7 @@
       <action                 type="update" dev="ggregory" due-to="Chen">Improve CSVRecord and CSVPrinter code coverage #66.</action>
       <action                 type="update" dev="ggregory" due-to="Chen">Improve lexer and token coverage #67.</action>
       <action issue="CSV-211" type="fix" dev="ggregory" due-to="Alpesh Kulkarni, Chen">CSVFormat.format trims last delimiter if the delimiter is a white space #71.</action>
+      <action                 type="update" dev="ggregory" due-to="Gary Gregory">Replace org.apache.commons.csv.Assertions.notNull() with Objects.requireNonNull().</action>
     </release>
     <release version="1.8" date="2020-02-01" description="Feature and bug fix release (Java 8).
 
diff --git a/src/main/java/org/apache/commons/csv/Assertions.java b/src/main/java/org/apache/commons/csv/Assertions.java
deleted file mode 100644
index 057b3d7..0000000
--- a/src/main/java/org/apache/commons/csv/Assertions.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.commons.csv;
-
-import java.util.Objects;
-
-/**
- * Utility class for input parameter validation.
- *
- * TODO Replace usage with {@link Objects} when we switch to Java 7.
- */
-final class Assertions {
-
-    private Assertions() {
-        // can not be instantiated
-    }
-
-    static void notNull(final Object parameter, final String parameterName) {
-        if (parameter == null) {
-            throw new IllegalArgumentException("Parameter '" + parameterName + "' must not be null!");
-        }
-    }
-}
diff --git a/src/main/java/org/apache/commons/csv/CSVParser.java b/src/main/java/org/apache/commons/csv/CSVParser.java
index c189dc4..727bb5a 100644
--- a/src/main/java/org/apache/commons/csv/CSVParser.java
+++ b/src/main/java/org/apache/commons/csv/CSVParser.java
@@ -39,6 +39,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
+import java.util.Objects;
 import java.util.TreeMap;
 
 /**
@@ -200,8 +201,8 @@ public final class CSVParser implements Iterable<CSVRecord>, Closeable {
      */
     @SuppressWarnings("resource")
     public static CSVParser parse(final File file, final Charset charset, final CSVFormat format) throws IOException {
-        Assertions.notNull(file, "file");
-        Assertions.notNull(format, "format");
+        Objects.requireNonNull(file, "file");
+        Objects.requireNonNull(format, "format");
         return new CSVParser(new InputStreamReader(new FileInputStream(file), charset), format);
     }
 
@@ -229,8 +230,8 @@ public final class CSVParser implements Iterable<CSVRecord>, Closeable {
     @SuppressWarnings("resource")
     public static CSVParser parse(final InputStream inputStream, final Charset charset, final CSVFormat format)
             throws IOException {
-        Assertions.notNull(inputStream, "inputStream");
-        Assertions.notNull(format, "format");
+        Objects.requireNonNull(inputStream, "inputStream");
+        Objects.requireNonNull(format, "format");
         return parse(new InputStreamReader(inputStream, charset), format);
     }
 
@@ -251,8 +252,8 @@ public final class CSVParser implements Iterable<CSVRecord>, Closeable {
      * @since 1.5
      */
     public static CSVParser parse(final Path path, final Charset charset, final CSVFormat format) throws IOException {
-        Assertions.notNull(path, "path");
-        Assertions.notNull(format, "format");
+        Objects.requireNonNull(path, "path");
+        Objects.requireNonNull(format, "format");
         return parse(Files.newInputStream(path), charset, format);
     }
 
@@ -293,8 +294,8 @@ public final class CSVParser implements Iterable<CSVRecord>, Closeable {
      *             If an I/O error occurs
      */
     public static CSVParser parse(final String string, final CSVFormat format) throws IOException {
-        Assertions.notNull(string, "string");
-        Assertions.notNull(format, "format");
+        Objects.requireNonNull(string, "string");
+        Objects.requireNonNull(format, "format");
 
         return new CSVParser(new StringReader(string), format);
     }
@@ -322,9 +323,9 @@ public final class CSVParser implements Iterable<CSVRecord>, Closeable {
      *             If an I/O error occurs
      */
     public static CSVParser parse(final URL url, final Charset charset, final CSVFormat format) throws IOException {
-        Assertions.notNull(url, "url");
-        Assertions.notNull(charset, "charset");
-        Assertions.notNull(format, "format");
+        Objects.requireNonNull(url, "url");
+        Objects.requireNonNull(charset, "charset");
+        Objects.requireNonNull(format, "format");
 
         return new CSVParser(new InputStreamReader(url.openStream(), charset), format);
     }
@@ -403,8 +404,8 @@ public final class CSVParser implements Iterable<CSVRecord>, Closeable {
     @SuppressWarnings("resource")
     public CSVParser(final Reader reader, final CSVFormat format, final long characterOffset, final long recordNumber)
         throws IOException {
-        Assertions.notNull(reader, "reader");
-        Assertions.notNull(format, "format");
+        Objects.requireNonNull(reader, "reader");
+        Objects.requireNonNull(format, "format");
 
         this.format = format;
         this.lexer = new Lexer(format, new ExtendedBufferedReader(reader));
diff --git a/src/main/java/org/apache/commons/csv/CSVPrinter.java b/src/main/java/org/apache/commons/csv/CSVPrinter.java
index 12992f6..d5e6aca 100644
--- a/src/main/java/org/apache/commons/csv/CSVPrinter.java
+++ b/src/main/java/org/apache/commons/csv/CSVPrinter.java
@@ -28,6 +28,7 @@ import java.sql.Clob;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.Arrays;
+import java.util.Objects;
 
 /**
  * Prints values in a {@link CSVFormat CSV format}.
@@ -92,8 +93,8 @@ public final class CSVPrinter implements Flushable, Closeable {
      *             thrown if the parameters of the format are inconsistent or if either out or format are null.
      */
     public CSVPrinter(final Appendable out, final CSVFormat format) throws IOException {
-        Assertions.notNull(out, "out");
-        Assertions.notNull(format, "format");
+        Objects.requireNonNull(out, "out");
+        Objects.requireNonNull(format, "format");
 
         this.out = out;
         this.format = format;
diff --git a/src/test/java/org/apache/commons/csv/AssertionsTest.java b/src/test/java/org/apache/commons/csv/AssertionsTest.java
deleted file mode 100644
index 7d90d9b..0000000
--- a/src/test/java/org/apache/commons/csv/AssertionsTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.commons.csv;
-
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-import org.junit.jupiter.api.Test;
-
-/**
- */
-public class AssertionsTest {
-
-    @Test
-    public void testNotNull() {
-        Assertions.notNull(new Object(), "object");
-    }
-
-    @Test
-    public void testNotNullNull() {
-        assertThrows(IllegalArgumentException.class, () -> Assertions.notNull(null, "object"));
-    }
-}
diff --git a/src/test/java/org/apache/commons/csv/CSVParserTest.java b/src/test/java/org/apache/commons/csv/CSVParserTest.java
index 582652f..87e8a5a 100644
--- a/src/test/java/org/apache/commons/csv/CSVParserTest.java
+++ b/src/test/java/org/apache/commons/csv/CSVParserTest.java
@@ -67,15 +67,15 @@ public class CSVParserTest {
     private static final String UTF_8_NAME = UTF_8.name();
 
     private static final String CSV_INPUT = "a,b,c,d\n" + " a , b , 1 2 \n" + "\"foo baar\", b,\n"
-            // + " \"foo\n,,\n\"\",,\n\\\"\",d,e\n";
-            + "   \"foo\n,,\n\"\",,\n\"\"\",d,e\n"; // changed to use standard CSV escaping
+    // + " \"foo\n,,\n\"\",,\n\\\"\",d,e\n";
+        + "   \"foo\n,,\n\"\",,\n\"\"\",d,e\n"; // changed to use standard CSV escaping
 
     private static final String CSV_INPUT_1 = "a,b,c,d";
 
     private static final String CSV_INPUT_2 = "a,b,1 2";
 
     private static final String[][] RESULT = { { "a", "b", "c", "d" }, { "a", "b", "1 2" }, { "foo baar", "b", "" },
-            { "foo\n,,\n\",,\n\"", "d", "e" } };
+        { "foo\n,,\n\",,\n\"", "d", "e" } };
 
     private BOMInputStream createBOMInputStream(final String resource) throws IOException {
         final URL url = ClassLoader.getSystemClassLoader().getResource(resource);
@@ -96,28 +96,28 @@ public class CSVParserTest {
         // quote as the encapsulator.
 
         final String code = "one,two,three\n" // 0
-        + "'',''\n" // 1) empty encapsulators
-                + "/',/'\n" // 2) single encapsulators
-                + "'/'','/''\n" // 3) single encapsulators encapsulated via escape
-                + "'''',''''\n" // 4) single encapsulators encapsulated via doubling
-                + "/,,/,\n" // 5) separator escaped
-                + "//,//\n" // 6) escape escaped
-                + "'//','//'\n" // 7) escape escaped in encapsulation
-                + "   8   ,   \"quoted \"\" /\" // string\"   \n" // don't eat spaces
-                + "9,   /\n   \n" // escaped newline
-                + "";
+            + "'',''\n" // 1) empty encapsulators
+            + "/',/'\n" // 2) single encapsulators
+            + "'/'','/''\n" // 3) single encapsulators encapsulated via escape
+            + "'''',''''\n" // 4) single encapsulators encapsulated via doubling
+            + "/,,/,\n" // 5) separator escaped
+            + "//,//\n" // 6) escape escaped
+            + "'//','//'\n" // 7) escape escaped in encapsulation
+            + "   8   ,   \"quoted \"\" /\" // string\"   \n" // don't eat spaces
+            + "9,   /\n   \n" // escaped newline
+            + "";
         final String[][] res = { { "one", "two", "three" }, // 0
-                { "", "" }, // 1
-                { "'", "'" }, // 2
-                { "'", "'" }, // 3
-                { "'", "'" }, // 4
-                { ",", "," }, // 5
-                { "/", "/" }, // 6
-                { "/", "/" }, // 7
-                { "   8   ", "   \"quoted \"\" /\" / string\"   " }, { "9", "   \n   " }, };
+            { "", "" }, // 1
+            { "'", "'" }, // 2
+            { "'", "'" }, // 3
+            { "'", "'" }, // 4
+            { ",", "," }, // 5
+            { "/", "/" }, // 6
+            { "/", "/" }, // 7
+            { "   8   ", "   \"quoted \"\" /\" / string\"   " }, { "9", "   \n   " }, };
 
         final CSVFormat format = CSVFormat.newFormat(',').withQuote('\'').withRecordSeparator(CRLF).withEscape('/')
-                .withIgnoreEmptyLines();
+            .withIgnoreEmptyLines();
 
         try (final CSVParser parser = CSVParser.parse(code, format)) {
             final List<CSVRecord> records = parser.getRecords();
@@ -135,16 +135,16 @@ public class CSVParserTest {
         // quote as the encapsulator.
 
         final String code = "" + " , , \n" // 1)
-                + " \t ,  , \n" // 2)
-                + " // , /, , /,\n" // 3)
-                + "";
+            + " \t ,  , \n" // 2)
+            + " // , /, , /,\n" // 3)
+            + "";
         final String[][] res = { { " ", " ", " " }, // 1
-                { " \t ", "  ", " " }, // 2
-                { " / ", " , ", " ," }, // 3
+            { " \t ", "  ", " " }, // 2
+            { " / ", " , ", " ," }, // 3
         };
 
         final CSVFormat format = CSVFormat.newFormat(',').withRecordSeparator(CRLF).withEscape('/')
-                .withIgnoreEmptyLines();
+            .withIgnoreEmptyLines();
 
         try (final CSVParser parser = CSVParser.parse(code, format)) {
             final List<CSVRecord> records = parser.getRecords();
@@ -157,13 +157,13 @@ public class CSVParserTest {
     @Test
     @Disabled
     public void testBackslashEscapingOld() throws IOException {
-        final String code = "one,two,three\n" + "on\\\"e,two\n" + "on\"e,two\n" + "one,\"tw\\\"o\"\n" +
-                "one,\"t\\,wo\"\n" + "one,two,\"th,ree\"\n" + "\"a\\\\\"\n" + "a\\,b\n" + "\"a\\\\,b\"";
+        final String code = "one,two,three\n" + "on\\\"e,two\n" + "on\"e,two\n" + "one,\"tw\\\"o\"\n"
+            + "one,\"t\\,wo\"\n" + "one,two,\"th,ree\"\n" + "\"a\\\\\"\n" + "a\\,b\n" + "\"a\\\\,b\"";
         final String[][] res = { { "one", "two", "three" }, { "on\\\"e", "two" }, { "on\"e", "two" },
-                { "one", "tw\"o" }, { "one", "t\\,wo" }, // backslash in quotes only escapes a delimiter (",")
-                { "one", "two", "th,ree" }, { "a\\\\" }, // backslash in quotes only escapes a delimiter (",")
-                { "a\\", "b" }, // a backslash must be returned
-                { "a\\\\,b" } // backslash in quotes only escapes a delimiter (",")
+            { "one", "tw\"o" }, { "one", "t\\,wo" }, // backslash in quotes only escapes a delimiter (",")
+            { "one", "two", "th,ree" }, { "a\\\\" }, // backslash in quotes only escapes a delimiter (",")
+            { "a\\", "b" }, // a backslash must be returned
+            { "a\\\\,b" } // backslash in quotes only escapes a delimiter (",")
         };
         try (final CSVParser parser = CSVParser.parse(code, CSVFormat.DEFAULT)) {
             final List<CSVRecord> records = parser.getRecords();
@@ -191,7 +191,7 @@ public class CSVParserTest {
     @Test
     public void testBOMInputStream_ParserWithInputStream() throws IOException {
         try (final BOMInputStream inputStream = createBOMInputStream("CSVFileParser/bom.csv");
-                final CSVParser parser = CSVParser.parse(inputStream, UTF_8, CSVFormat.EXCEL.withHeader())) {
+            final CSVParser parser = CSVParser.parse(inputStream, UTF_8, CSVFormat.EXCEL.withHeader())) {
             for (final CSVRecord record : parser) {
                 final String string = record.get("Date");
                 assertNotNull(string);
@@ -203,7 +203,7 @@ public class CSVParserTest {
     @Test
     public void testBOMInputStream_ParserWithReader() throws IOException {
         try (final Reader reader = new InputStreamReader(createBOMInputStream("CSVFileParser/bom.csv"), UTF_8_NAME);
-                final CSVParser parser = new CSVParser(reader, CSVFormat.EXCEL.withHeader())) {
+            final CSVParser parser = new CSVParser(reader, CSVFormat.EXCEL.withHeader())) {
             for (final CSVRecord record : parser) {
                 final String string = record.get("Date");
                 assertNotNull(string);
@@ -215,7 +215,7 @@ public class CSVParserTest {
     @Test
     public void testBOMInputStream_parseWithReader() throws IOException {
         try (final Reader reader = new InputStreamReader(createBOMInputStream("CSVFileParser/bom.csv"), UTF_8_NAME);
-                final CSVParser parser = CSVParser.parse(reader, CSVFormat.EXCEL.withHeader())) {
+            final CSVParser parser = CSVParser.parse(reader, CSVFormat.EXCEL.withHeader())) {
             for (final CSVRecord record : parser) {
                 final String string = record.get("Date");
                 assertNotNull(string);
@@ -266,10 +266,10 @@ public class CSVParserTest {
     @Test
     public void testDefaultFormat() throws IOException {
         final String code = "" + "a,b#\n" // 1)
-                + "\"\n\",\" \",#\n" // 2)
-                + "#,\"\"\n" // 3)
-                + "# Final comment\n"// 4)
-                ;
+            + "\"\n\",\" \",#\n" // 2)
+            + "#,\"\"\n" // 3)
+            + "# Final comment\n"// 4)
+        ;
         final String[][] res = { { "a", "b#" }, { "\n", " ", "#" }, { "#", "" }, { "# Final comment" } };
 
         CSVFormat format = CSVFormat.DEFAULT;
@@ -293,10 +293,8 @@ public class CSVParserTest {
 
     @Test
     public void testDuplicateHeadersNotAllowed() {
-        assertThrows(
-                IllegalArgumentException.class,
-                () -> CSVParser.parse("a,b,a\n1,2,3\nx,y,z",
-                        CSVFormat.DEFAULT.withHeader().withAllowDuplicateHeaderNames(false)));
+        assertThrows(IllegalArgumentException.class, () -> CSVParser.parse("a,b,a\n1,2,3\nx,y,z",
+            CSVFormat.DEFAULT.withHeader().withAllowDuplicateHeaderNames(false)));
     }
 
     @Test
@@ -340,7 +338,7 @@ public class CSVParserTest {
     public void testEmptyLineBehaviorExcel() throws Exception {
         final String[] codes = { "hello,\r\n\r\n\r\n", "hello,\n\n\n", "hello,\"\"\r\n\r\n\r\n", "hello,\"\"\n\n\n" };
         final String[][] res = { { "hello", "" }, { "" }, // Excel format does not ignore empty lines
-                { "" } };
+            { "" } };
         for (final String code : codes) {
             try (final CSVParser parser = CSVParser.parse(code, CSVFormat.EXCEL)) {
                 final List<CSVRecord> records = parser.getRecords();
@@ -356,10 +354,10 @@ public class CSVParserTest {
     @Test
     public void testEndOfFileBehaviorCSV() throws Exception {
         final String[] codes = { "hello,\r\n\r\nworld,\r\n", "hello,\r\n\r\nworld,", "hello,\r\n\r\nworld,\"\"\r\n",
-                "hello,\r\n\r\nworld,\"\"", "hello,\r\n\r\nworld,\n", "hello,\r\n\r\nworld,",
-                "hello,\r\n\r\nworld,\"\"\n", "hello,\r\n\r\nworld,\"\"" };
+            "hello,\r\n\r\nworld,\"\"", "hello,\r\n\r\nworld,\n", "hello,\r\n\r\nworld,", "hello,\r\n\r\nworld,\"\"\n",
+            "hello,\r\n\r\nworld,\"\"" };
         final String[][] res = { { "hello", "" }, // CSV format ignores empty lines
-                { "world", "" } };
+            { "world", "" } };
         for (final String code : codes) {
             try (final CSVParser parser = CSVParser.parse(code, CSVFormat.DEFAULT)) {
                 final List<CSVRecord> records = parser.getRecords();
@@ -375,10 +373,10 @@ public class CSVParserTest {
     @Test
     public void testEndOfFileBehaviorExcel() throws Exception {
         final String[] codes = { "hello,\r\n\r\nworld,\r\n", "hello,\r\n\r\nworld,", "hello,\r\n\r\nworld,\"\"\r\n",
-                "hello,\r\n\r\nworld,\"\"", "hello,\r\n\r\nworld,\n", "hello,\r\n\r\nworld,",
-                "hello,\r\n\r\nworld,\"\"\n", "hello,\r\n\r\nworld,\"\"" };
+            "hello,\r\n\r\nworld,\"\"", "hello,\r\n\r\nworld,\n", "hello,\r\n\r\nworld,", "hello,\r\n\r\nworld,\"\"\n",
+            "hello,\r\n\r\nworld,\"\"" };
         final String[][] res = { { "hello", "" }, { "" }, // Excel format does not ignore empty lines
-                { "world", "" } };
+            { "world", "" } };
 
         for (final String code : codes) {
             try (final CSVParser parser = CSVParser.parse(code, CSVFormat.EXCEL)) {
@@ -394,10 +392,10 @@ public class CSVParserTest {
 
     @Test
     public void testExcelFormat1() throws IOException {
-        final String code = "value1,value2,value3,value4\r\na,b,c,d\r\n  x,,," +
-                "\r\n\r\n\"\"\"hello\"\"\",\"  \"\"world\"\"\",\"abc\ndef\",\r\n";
+        final String code = "value1,value2,value3,value4\r\na,b,c,d\r\n  x,,,"
+            + "\r\n\r\n\"\"\"hello\"\"\",\"  \"\"world\"\"\",\"abc\ndef\",\r\n";
         final String[][] res = { { "value1", "value2", "value3", "value4" }, { "a", "b", "c", "d" },
-                { "  x", "", "", "" }, { "" }, { "\"hello\"", "  \"world\"", "abc\ndef", "" } };
+            { "  x", "", "", "" }, { "" }, { "\"hello\"", "  \"world\"", "abc\ndef", "" } };
         try (final CSVParser parser = CSVParser.parse(code, CSVFormat.EXCEL)) {
             final List<CSVRecord> records = parser.getRecords();
             assertEquals(res.length, records.size());
@@ -424,6 +422,7 @@ public class CSVParserTest {
 
     /**
      * Tests an exported Excel worksheet with a header row and rows that have more columns than the headers
+     * 
      * @throws Exception
      */
     @Test
@@ -485,7 +484,7 @@ public class CSVParserTest {
     @Test
     public void testGetHeaderMap() throws Exception {
         try (final CSVParser parser = CSVParser.parse("a,b,c\n1,2,3\nx,y,z",
-                CSVFormat.DEFAULT.withHeader("A", "B", "C"))) {
+            CSVFormat.DEFAULT.withHeader("A", "B", "C"))) {
             final Map<String, Integer> headerMap = parser.getHeaderMap();
             final Iterator<String> columnNames = headerMap.keySet().iterator();
             // Headers are iterated in column order.
@@ -575,7 +574,7 @@ public class CSVParserTest {
     public void testGetOneLineOneParser() throws IOException {
         final CSVFormat format = CSVFormat.DEFAULT;
         try (final PipedWriter writer = new PipedWriter();
-                final CSVParser parser = new CSVParser(new PipedReader(writer), format)) {
+            final CSVParser parser = new CSVParser(new PipedReader(writer), format)) {
             writer.append(CSV_INPUT_1);
             writer.append(format.getRecordSeparator());
             final CSVRecord record1 = parser.nextRecord();
@@ -627,8 +626,8 @@ public class CSVParserTest {
     @Test
     public void testGetRecordWithMultiLineValues() throws Exception {
         try (final CSVParser parser = CSVParser.parse(
-                "\"a\r\n1\",\"a\r\n2\"" + CRLF + "\"b\r\n1\",\"b\r\n2\"" + CRLF + "\"c\r\n1\",\"c\r\n2\"",
-                CSVFormat.DEFAULT.withRecordSeparator(CRLF))) {
+            "\"a\r\n1\",\"a\r\n2\"" + CRLF + "\"b\r\n1\",\"b\r\n2\"" + CRLF + "\"c\r\n1\",\"c\r\n2\"",
+            CSVFormat.DEFAULT.withRecordSeparator(CRLF))) {
             CSVRecord record;
             assertEquals(0, parser.getRecordNumber());
             assertEquals(0, parser.getCurrentLineNumber());
@@ -688,7 +687,8 @@ public class CSVParserTest {
     public void testHeaderMissing() throws Exception {
         final Reader in = new StringReader("a,,c\n1,2,3\nx,y,z");
 
-        final Iterator<CSVRecord> records = CSVFormat.DEFAULT.withHeader().withAllowMissingColumnNames().parse(in).iterator();
+        final Iterator<CSVRecord> records = CSVFormat.DEFAULT.withHeader().withAllowMissingColumnNames().parse(in)
+            .iterator();
 
         for (int i = 0; i < 2; i++) {
             assertTrue(records.hasNext());
@@ -720,18 +720,15 @@ public class CSVParserTest {
 
     @Test
     public void testHeadersMissingOneColumnException() throws Exception {
-       final Reader in = new StringReader("a,,c,d,e\n1,2,3,4,5\nv,w,x,y,z");
-       assertThrows(IllegalArgumentException.class, () -> CSVFormat.DEFAULT.withHeader().parse(in).iterator());
+        final Reader in = new StringReader("a,,c,d,e\n1,2,3,4,5\nv,w,x,y,z");
+        assertThrows(IllegalArgumentException.class, () -> CSVFormat.DEFAULT.withHeader().parse(in).iterator());
     }
 
     @Test
     public void testHeadersWithNullColumnName() throws IOException {
         final Reader in = new StringReader("header1,null,header3\n1,2,3\n4,5,6");
-        final Iterator<CSVRecord> records = CSVFormat.DEFAULT
-            .withHeader()
-            .withNullString("null")
-            .withAllowMissingColumnNames()
-            .parse(in).iterator();
+        final Iterator<CSVRecord> records = CSVFormat.DEFAULT.withHeader().withNullString("null")
+            .withAllowMissingColumnNames().parse(in).iterator();
         final CSVRecord record = records.next();
         // Expect the null header to be missing
         assertEquals(Arrays.asList("header1", "header3"), record.getParser().getHeaderNames());
@@ -742,7 +739,7 @@ public class CSVParserTest {
     public void testIgnoreCaseHeaderMapping() throws Exception {
         final Reader reader = new StringReader("1,2,3");
         final Iterator<CSVRecord> records = CSVFormat.DEFAULT.withHeader("One", "TWO", "three").withIgnoreHeaderCase()
-                .parse(reader).iterator();
+            .parse(reader).iterator();
         final CSVRecord record = records.next();
         assertEquals("1", record.get("one"));
         assertEquals("2", record.get("two"));
@@ -856,7 +853,7 @@ public class CSVParserTest {
     public void testMappedButNotSetAsOutlook2007ContactExport() throws Exception {
         final Reader in = new StringReader("a,b,c\n1,2\nx,y,z");
         final Iterator<CSVRecord> records = CSVFormat.DEFAULT.withHeader("A", "B", "C").withSkipHeaderRecord().parse(in)
-                .iterator();
+            .iterator();
         CSVRecord record;
 
         // 1st record
@@ -926,12 +923,12 @@ public class CSVParserTest {
 
     @Test
     public void testNewCSVParserNullReaderFormat() {
-        assertThrows(IllegalArgumentException.class, () -> new CSVParser(null, CSVFormat.DEFAULT));
+        assertThrows(NullPointerException.class, () -> new CSVParser(null, CSVFormat.DEFAULT));
     }
 
     @Test
     public void testNewCSVParserReaderNullFormat() {
-        assertThrows(IllegalArgumentException.class, () -> new CSVParser(new StringReader(""), null));
+        assertThrows(NullPointerException.class, () -> new CSVParser(new StringReader(""), null));
     }
 
     @Test
@@ -948,82 +945,78 @@ public class CSVParserTest {
         final CSVFormat format = CSVFormat.DEFAULT.withHeader("A", "B", "C", "D");
         final Charset charset = StandardCharsets.UTF_8;
 
-        try(final CSVParser parser = CSVParser.parse(new InputStreamReader(url.openStream(), charset), format)) {
+        try (final CSVParser parser = CSVParser.parse(new InputStreamReader(url.openStream(), charset), format)) {
             parseFully(parser);
         }
-        try(final CSVParser parser = CSVParser.parse(new String(Files.readAllBytes(Paths.get(url.toURI())), charset), format)) {
+        try (final CSVParser parser = CSVParser.parse(new String(Files.readAllBytes(Paths.get(url.toURI())), charset),
+            format)) {
             parseFully(parser);
         }
-        try(final CSVParser parser = CSVParser.parse(new File(url.toURI()), charset, format)) {
+        try (final CSVParser parser = CSVParser.parse(new File(url.toURI()), charset, format)) {
             parseFully(parser);
         }
-        try(final CSVParser parser = CSVParser.parse(url.openStream(), charset, format)) {
+        try (final CSVParser parser = CSVParser.parse(url.openStream(), charset, format)) {
             parseFully(parser);
         }
-        try(final CSVParser parser = CSVParser.parse(Paths.get(url.toURI()), charset, format)) {
+        try (final CSVParser parser = CSVParser.parse(Paths.get(url.toURI()), charset, format)) {
             parseFully(parser);
         }
-        try(final CSVParser parser = CSVParser.parse(url, charset, format)) {
+        try (final CSVParser parser = CSVParser.parse(url, charset, format)) {
             parseFully(parser);
         }
-        try(final CSVParser parser = new CSVParser(new InputStreamReader(url.openStream(), charset), format)) {
+        try (final CSVParser parser = new CSVParser(new InputStreamReader(url.openStream(), charset), format)) {
             parseFully(parser);
         }
-        try(final CSVParser parser = new CSVParser(new InputStreamReader(url.openStream(), charset), format, /*characterOffset=*/0, /*recordNumber=*/1)) {
+        try (final CSVParser parser = new CSVParser(new InputStreamReader(url.openStream(), charset), format,
+            /* characterOffset= */0, /* recordNumber= */1)) {
             parseFully(parser);
         }
     }
 
     @Test
     public void testParseFileNullFormat() {
-        assertThrows(
-                IllegalArgumentException.class,
-                () -> CSVParser.parse(new File("CSVFileParser/test.csv"), Charset.defaultCharset(), null));
+        assertThrows(NullPointerException.class,
+            () -> CSVParser.parse(new File("CSVFileParser/test.csv"), Charset.defaultCharset(), null));
     }
 
     @Test
     public void testParseNullFileFormat() {
-        assertThrows(
-                IllegalArgumentException.class,
-                () -> CSVParser.parse((File) null, Charset.defaultCharset(), CSVFormat.DEFAULT));
+        assertThrows(NullPointerException.class,
+            () -> CSVParser.parse((File) null, Charset.defaultCharset(), CSVFormat.DEFAULT));
     }
 
     @Test
     public void testParseNullPathFormat() {
-        assertThrows(
-                IllegalArgumentException.class,
-                () -> CSVParser.parse((Path) null, Charset.defaultCharset(), CSVFormat.DEFAULT));
+        assertThrows(NullPointerException.class,
+            () -> CSVParser.parse((Path) null, Charset.defaultCharset(), CSVFormat.DEFAULT));
     }
 
     @Test
     public void testParseNullStringFormat() {
-        assertThrows(IllegalArgumentException.class, () -> CSVParser.parse((String) null, CSVFormat.DEFAULT));
+        assertThrows(NullPointerException.class, () -> CSVParser.parse((String) null, CSVFormat.DEFAULT));
     }
 
     @Test
     public void testParseNullUrlCharsetFormat() {
-        assertThrows(
-                IllegalArgumentException.class,
-                () -> CSVParser.parse((URL) null, Charset.defaultCharset(), CSVFormat.DEFAULT));
+        assertThrows(NullPointerException.class,
+            () -> CSVParser.parse((URL) null, Charset.defaultCharset(), CSVFormat.DEFAULT));
     }
 
     @Test
     public void testParserUrlNullCharsetFormat() {
-        assertThrows(
-                IllegalArgumentException.class,
-                () -> CSVParser.parse(new URL("https://commons.apache.org"), null, CSVFormat.DEFAULT));
+        assertThrows(NullPointerException.class,
+            () -> CSVParser.parse(new URL("https://commons.apache.org"), null, CSVFormat.DEFAULT));
     }
 
     @Test
     public void testParseStringNullFormat() {
-        assertThrows(IllegalArgumentException.class, () -> CSVParser.parse("csv data", (CSVFormat) null));
+        assertThrows(NullPointerException.class, () -> CSVParser.parse("csv data", (CSVFormat) null));
     }
 
     @Test
     public void testParseUrlCharsetNullFormat() {
-        assertThrows(
-                IllegalArgumentException.class,
-                () -> CSVParser.parse(new URL("https://commons.apache.org"), Charset.defaultCharset(), null));
+        assertThrows(NullPointerException.class,
+            () -> CSVParser.parse(new URL("https://commons.apache.org"), Charset.defaultCharset(), null));
     }
 
     @Test
@@ -1094,7 +1087,7 @@ public class CSVParserTest {
     public void testSkipHeaderOverrideDuplicateHeaders() throws Exception {
         final Reader in = new StringReader("a,a,a\n1,2,3\nx,y,z");
         final Iterator<CSVRecord> records = CSVFormat.DEFAULT.withHeader("X", "Y", "Z").withSkipHeaderRecord().parse(in)
-                .iterator();
+            .iterator();
         final CSVRecord record = records.next();
         assertEquals("1", record.get("X"));
         assertEquals("2", record.get("Y"));
@@ -1105,7 +1098,7 @@ public class CSVParserTest {
     public void testSkipSetAltHeaders() throws Exception {
         final Reader in = new StringReader("a,b,c\n1,2,3\nx,y,z");
         final Iterator<CSVRecord> records = CSVFormat.DEFAULT.withHeader("X", "Y", "Z").withSkipHeaderRecord().parse(in)
-                .iterator();
+            .iterator();
         final CSVRecord record = records.next();
         assertEquals("1", record.get("X"));
         assertEquals("2", record.get("Y"));
@@ -1116,7 +1109,7 @@ public class CSVParserTest {
     public void testSkipSetHeader() throws Exception {
         final Reader in = new StringReader("a,b,c\n1,2,3\nx,y,z");
         final Iterator<CSVRecord> records = CSVFormat.DEFAULT.withHeader("a", "b", "c").withSkipHeaderRecord().parse(in)
-                .iterator();
+            .iterator();
         final CSVRecord record = records.next();
         assertEquals("1", record.get("a"));
         assertEquals("2", record.get("b"));
@@ -1127,9 +1120,9 @@ public class CSVParserTest {
     @Disabled
     public void testStartWithEmptyLinesThenHeaders() throws Exception {
         final String[] codes = { "\r\n\r\n\r\nhello,\r\n\r\n\r\n", "hello,\n\n\n", "hello,\"\"\r\n\r\n\r\n",
-                "hello,\"\"\n\n\n" };
+            "hello,\"\"\n\n\n" };
         final String[][] res = { { "hello", "" }, { "" }, // Excel format does not ignore empty lines
-                { "" } };
+            { "" } };
         for (final String code : codes) {
             try (final CSVParser parser = CSVParser.parse(code, CSVFormat.EXCEL)) {
                 final List<CSVRecord> records = parser.getRecords();
@@ -1146,7 +1139,7 @@ public class CSVParserTest {
     public void testTrailingDelimiter() throws Exception {
         final Reader in = new StringReader("a,a,a,\n\"1\",\"2\",\"3\",\nx,y,z,");
         final Iterator<CSVRecord> records = CSVFormat.DEFAULT.withHeader("X", "Y", "Z").withSkipHeaderRecord()
-                .withTrailingDelimiter().parse(in).iterator();
+            .withTrailingDelimiter().parse(in).iterator();
         final CSVRecord record = records.next();
         assertEquals("1", record.get("X"));
         assertEquals("2", record.get("Y"));
@@ -1158,7 +1151,7 @@ public class CSVParserTest {
     public void testTrim() throws Exception {
         final Reader in = new StringReader("a,a,a\n\" 1 \",\" 2 \",\" 3 \"\nx,y,z");
         final Iterator<CSVRecord> records = CSVFormat.DEFAULT.withHeader("X", "Y", "Z").withSkipHeaderRecord()
-                .withTrim().parse(in).iterator();
+            .withTrim().parse(in).iterator();
         final CSVRecord record = records.next();
         assertEquals("1", record.get("X"));
         assertEquals("2", record.get("Y"));
@@ -1188,7 +1181,7 @@ public class CSVParserTest {
 
     private void validateLineNumbers(final String lineSeparator) throws IOException {
         try (final CSVParser parser = CSVParser.parse("a" + lineSeparator + "b" + lineSeparator + "c",
-                CSVFormat.DEFAULT.withRecordSeparator(lineSeparator))) {
+            CSVFormat.DEFAULT.withRecordSeparator(lineSeparator))) {
             assertEquals(0, parser.getCurrentLineNumber());
             assertNotNull(parser.nextRecord());
             assertEquals(1, parser.getCurrentLineNumber());
@@ -1205,7 +1198,7 @@ public class CSVParserTest {
 
     private void validateRecordNumbers(final String lineSeparator) throws IOException {
         try (final CSVParser parser = CSVParser.parse("a" + lineSeparator + "b" + lineSeparator + "c",
-                CSVFormat.DEFAULT.withRecordSeparator(lineSeparator))) {
+            CSVFormat.DEFAULT.withRecordSeparator(lineSeparator))) {
             CSVRecord record;
             assertEquals(0, parser.getRecordNumber());
             assertNotNull(record = parser.nextRecord());
@@ -1226,11 +1219,11 @@ public class CSVParserTest {
         final String nl = lineSeparator; // used as linebreak in values for better distinction
 
         final String code = "a,b,c" + lineSeparator + "1,2,3" + lineSeparator +
-                // to see if recordPosition correctly points to the enclosing quote
-                "'A" + nl + "A','B" + nl + "B',CC" + lineSeparator +
-                // unicode test... not very relevant while operating on strings instead of bytes, but for
-                // completeness...
-                "\u00c4,\u00d6,\u00dc" + lineSeparator + "EOF,EOF,EOF";
+        // to see if recordPosition correctly points to the enclosing quote
+            "'A" + nl + "A','B" + nl + "B',CC" + lineSeparator +
+            // unicode test... not very relevant while operating on strings instead of bytes, but for
+            // completeness...
+            "\u00c4,\u00d6,\u00dc" + lineSeparator + "EOF,EOF,EOF";
 
         final CSVFormat format = CSVFormat.newFormat(',').withQuote('\'').withRecordSeparator(lineSeparator);
         CSVParser parser = CSVParser.parse(code, format);
diff --git a/src/test/java/org/apache/commons/csv/CSVPrinterTest.java b/src/test/java/org/apache/commons/csv/CSVPrinterTest.java
index bfa0951..d3c56ee 100644
--- a/src/test/java/org/apache/commons/csv/CSVPrinterTest.java
+++ b/src/test/java/org/apache/commons/csv/CSVPrinterTest.java
@@ -901,12 +901,12 @@ public class CSVPrinterTest {
 
     @Test
     public void testNewCsvPrinterAppendableNullFormat() {
-        assertThrows(IllegalArgumentException.class, () -> new CSVPrinter(new StringWriter(), null));
+        assertThrows(NullPointerException.class, () -> new CSVPrinter(new StringWriter(), null));
     }
 
     @Test
     public void testNewCsvPrinterNullAppendableFormat() {
-        assertThrows(IllegalArgumentException.class, () -> new CSVPrinter(null, CSVFormat.DEFAULT));
+        assertThrows(NullPointerException.class, () -> new CSVPrinter(null, CSVFormat.DEFAULT));
     }
 
     @Test