@@ -1623,61 +1623,57 @@ private void validateRecordNumbers(final String lineSeparator) throws IOExceptio
16231623
16241624 private void validateRecordPosition (final String lineSeparator ) throws IOException {
16251625 final String nl = lineSeparator ; // used as linebreak in values for better distinction
1626-
16271626 final String code = "a,b,c" + lineSeparator + "1,2,3" + lineSeparator +
16281627 // to see if recordPosition correctly points to the enclosing quote
1629- "'A" + nl + "A','B" + nl + "B',CC" + lineSeparator +
1630- // unicode test... not very relevant while operating on strings instead of bytes, but for
1631- // completeness...
1632- "\u00c4 ,\u00d6 ,\u00dc " + lineSeparator + "EOF,EOF,EOF" ;
1633-
1628+ "'A" + nl + "A','B" + nl + "B',CC" + lineSeparator +
1629+ // unicode test... not very relevant while operating on strings instead of bytes, but for
1630+ // completeness...
1631+ "\u00c4 ,\u00d6 ,\u00dc " + lineSeparator + "EOF,EOF,EOF" ;
16341632 final CSVFormat format = CSVFormat .newFormat (',' ).withQuote ('\'' ).withRecordSeparator (lineSeparator );
1635- CSVParser parser = CSVParser .parse (code , format );
1636-
1637- CSVRecord record ;
1638- assertEquals (0 , parser .getRecordNumber ());
1639-
1640- assertNotNull (record = parser .nextRecord ());
1641- assertEquals (1 , record .getRecordNumber ());
1642- assertEquals (code .indexOf ('a' ), record .getCharacterPosition ());
1643-
1644- assertNotNull (record = parser .nextRecord ());
1645- assertEquals (2 , record .getRecordNumber ());
1646- assertEquals (code .indexOf ('1' ), record .getCharacterPosition ());
1647-
1648- assertNotNull (record = parser .nextRecord ());
1649- final long positionRecord3 = record .getCharacterPosition ();
1650- assertEquals (3 , record .getRecordNumber ());
1651- assertEquals (code .indexOf ("'A" ), record .getCharacterPosition ());
1652- assertEquals ("A" + lineSeparator + "A" , record .get (0 ));
1653- assertEquals ("B" + lineSeparator + "B" , record .get (1 ));
1654- assertEquals ("CC" , record .get (2 ));
1655-
1656- assertNotNull (record = parser .nextRecord ());
1657- assertEquals (4 , record .getRecordNumber ());
1658- assertEquals (code .indexOf ('\u00c4' ), record .getCharacterPosition ());
1659-
1660- assertNotNull (record = parser .nextRecord ());
1661- assertEquals (5 , record .getRecordNumber ());
1662- assertEquals (code .indexOf ("EOF" ), record .getCharacterPosition ());
1663-
1664- parser .close ();
1665-
1633+ final long positionRecord3 ;
1634+ try (CSVParser parser = CSVParser .parse (code , format )) {
1635+ CSVRecord record ;
1636+ assertEquals (0 , parser .getRecordNumber ());
1637+ // nextRecord
1638+ assertNotNull (record = parser .nextRecord ());
1639+ assertEquals (1 , record .getRecordNumber ());
1640+ assertEquals (code .indexOf ('a' ), record .getCharacterPosition ());
1641+ // nextRecord
1642+ assertNotNull (record = parser .nextRecord ());
1643+ assertEquals (2 , record .getRecordNumber ());
1644+ assertEquals (code .indexOf ('1' ), record .getCharacterPosition ());
1645+ // nextRecord
1646+ assertNotNull (record = parser .nextRecord ());
1647+ positionRecord3 = record .getCharacterPosition ();
1648+ assertEquals (3 , record .getRecordNumber ());
1649+ assertEquals (code .indexOf ("'A" ), record .getCharacterPosition ());
1650+ assertEquals ("A" + lineSeparator + "A" , record .get (0 ));
1651+ assertEquals ("B" + lineSeparator + "B" , record .get (1 ));
1652+ assertEquals ("CC" , record .get (2 ));
1653+ // nextRecord
1654+ assertNotNull (record = parser .nextRecord ());
1655+ assertEquals (4 , record .getRecordNumber ());
1656+ assertEquals (code .indexOf ('\u00c4' ), record .getCharacterPosition ());
1657+ // nextRecord
1658+ assertNotNull (record = parser .nextRecord ());
1659+ assertEquals (5 , record .getRecordNumber ());
1660+ assertEquals (code .indexOf ("EOF" ), record .getCharacterPosition ());
1661+ }
16661662 // now try to read starting at record 3
1667- parser = new CSVParser (new StringReader (code .substring ((int ) positionRecord3 )), format , positionRecord3 , 3 );
1668-
1669- assertNotNull ( record = parser . nextRecord ());
1670- assertEquals ( 3 , record . getRecordNumber ());
1671- assertEquals (code . indexOf ( "'A" ) , record .getCharacterPosition ());
1672- assertEquals ( "A" + lineSeparator + "A" , record .get ( 0 ));
1673- assertEquals ("B " + lineSeparator + "B " , record .get (1 ));
1674- assertEquals ("CC" , record .get (2 ));
1675-
1676- assertNotNull ( record = parser . nextRecord ());
1677- assertEquals ( 4 , record . getRecordNumber ());
1678- assertEquals (code . indexOf ( '\u00c4' ) , record .getCharacterPosition ());
1679- assertEquals (" \u00c4 " , record .get ( 0 ));
1680-
1681- parser . close ();
1663+ try ( CSVParser parser = new CSVParser (new StringReader (code .substring ((int ) positionRecord3 )), format , positionRecord3 , 3 )) {
1664+ CSVRecord record ;
1665+ // nextRecord
1666+ assertNotNull ( record = parser . nextRecord ());
1667+ assertEquals (3 , record .getRecordNumber ());
1668+ assertEquals ( code . indexOf ( "'A" ) , record .getCharacterPosition ( ));
1669+ assertEquals ("A " + lineSeparator + "A " , record .get (0 ));
1670+ assertEquals ("B" + lineSeparator + "B" , record .get (1 ));
1671+ assertEquals ( "CC" , record . get ( 2 ));
1672+ // nextRecord
1673+ assertNotNull ( record = parser . nextRecord ());
1674+ assertEquals (4 , record .getRecordNumber ());
1675+ assertEquals (code . indexOf ( ' \u00c4' ) , record .getCharacterPosition ( ));
1676+ assertEquals ( " \u00c4 " , record . get ( 0 ));
1677+ }
16821678 }
16831679}
0 commit comments