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/06/01 19:53:16 UTC
[commons-csv] branch master updated: [CSV-149]/[CSV-195] fix line
number is not proper at EOF (#60)
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 ad11cd1 [CSV-149]/[CSV-195] fix line number is not proper at EOF (#60)
ad11cd1 is described below
commit ad11cd14d0e407e351d7de71018cbc25ccb4352f
Author: Chen <ch...@163.com>
AuthorDate: Tue Jun 2 03:53:07 2020 +0800
[CSV-149]/[CSV-195] fix line number is not proper at EOF (#60)
---
.../java/org/apache/commons/csv/ExtendedBufferedReader.java | 3 ++-
src/test/java/org/apache/commons/csv/CSVParserTest.java | 12 ++++++------
.../java/org/apache/commons/csv/issues/JiraCsv149Test.java | 2 --
3 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/main/java/org/apache/commons/csv/ExtendedBufferedReader.java b/src/main/java/org/apache/commons/csv/ExtendedBufferedReader.java
index b9ca79d..9731f81 100644
--- a/src/main/java/org/apache/commons/csv/ExtendedBufferedReader.java
+++ b/src/main/java/org/apache/commons/csv/ExtendedBufferedReader.java
@@ -125,7 +125,8 @@ final class ExtendedBufferedReader extends BufferedReader {
@Override
public int read() throws IOException {
final int current = super.read();
- if (current == CR || current == LF && lastChar != CR) {
+ if ((current == CR || current == LF && lastChar != CR)
+ || (current == END_OF_STREAM && lastChar != CR && lastChar != LF && lastChar != END_OF_STREAM)) {
eolCounter++;
}
lastChar = current;
diff --git a/src/test/java/org/apache/commons/csv/CSVParserTest.java b/src/test/java/org/apache/commons/csv/CSVParserTest.java
index d058cc4..8c41094 100644
--- a/src/test/java/org/apache/commons/csv/CSVParserTest.java
+++ b/src/test/java/org/apache/commons/csv/CSVParserTest.java
@@ -644,11 +644,11 @@ public class CSVParserTest {
assertEquals(2, record.getRecordNumber());
assertEquals(2, parser.getRecordNumber());
assertNotNull(record = parser.nextRecord());
- assertEquals(8, parser.getCurrentLineNumber());
+ assertEquals(9, parser.getCurrentLineNumber());
assertEquals(3, record.getRecordNumber());
assertEquals(3, parser.getRecordNumber());
assertNull(record = parser.nextRecord());
- assertEquals(8, parser.getCurrentLineNumber());
+ assertEquals(9, parser.getCurrentLineNumber());
assertEquals(3, parser.getRecordNumber());
}
}
@@ -1192,11 +1192,11 @@ public class CSVParserTest {
assertNotNull(parser.nextRecord());
assertEquals(2, parser.getCurrentLineNumber());
assertNotNull(parser.nextRecord());
- // Still 2 because the last line is does not have EOL chars
- assertEquals(2, parser.getCurrentLineNumber());
+ // Read EOF without EOL should 3
+ assertEquals(3, parser.getCurrentLineNumber());
assertNull(parser.nextRecord());
- // Still 2 because the last line is does not have EOL chars
- assertEquals(2, parser.getCurrentLineNumber());
+ // Read EOF without EOL should 3
+ assertEquals(3, parser.getCurrentLineNumber());
}
}
diff --git a/src/test/java/org/apache/commons/csv/issues/JiraCsv149Test.java b/src/test/java/org/apache/commons/csv/issues/JiraCsv149Test.java
index d44093a..83fb36f 100644
--- a/src/test/java/org/apache/commons/csv/issues/JiraCsv149Test.java
+++ b/src/test/java/org/apache/commons/csv/issues/JiraCsv149Test.java
@@ -24,10 +24,8 @@ import java.io.StringReader;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
-import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
-@Disabled
public class JiraCsv149Test {
private static final String CR_LF = "\r\n";