Skip to content

Commit 953a6de

Browse files
authored
fix isssue csv-259 (apache#61)
* fix isssue csv-259 * add testcase for CSV259 * exclude csv259 test file * organize the imports
1 parent e503c56 commit 953a6de

4 files changed

Lines changed: 16 additions & 0 deletions

File tree

pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@
256256
<exclude>src/test/resources/ferc.gov/contract.txt</exclude>
257257
<exclude>src/test/resources/ferc.gov/transaction.txt</exclude>
258258
<exclude>src/test/resources/**/*.bin</exclude>
259+
<exclude>src/test/resources/CSV-259/sample.txt</exclude>
259260
</excludes>
260261
</configuration>
261262
</plugin>
@@ -373,6 +374,7 @@
373374
<exclude>src/test/resources/ferc.gov/contract.txt</exclude>
374375
<exclude>src/test/resources/ferc.gov/transaction.txt</exclude>
375376
<exclude>src/test/resources/**/*.bin</exclude>
377+
<exclude>src/test/resources/CSV-259/sample.txt</exclude>
376378
</excludes>
377379
</configuration>
378380
</plugin>

src/main/java/org/apache/commons/csv/CSVFormat.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1408,6 +1408,7 @@ private void printWithEscapes(final Reader reader, final Appendable out) throws
14081408
if (pos > start) {
14091409
out.append(builder.substring(start, pos));
14101410
builder.setLength(0);
1411+
pos = -1;
14111412
}
14121413
if (c == LF) {
14131414
c = 'n';

src/test/java/org/apache/commons/csv/CSVPrinterTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import java.io.StringReader;
3535
import java.io.StringWriter;
3636
import java.io.Writer;
37+
import java.io.Reader;
38+
import java.io.FileReader;
3739
import java.nio.charset.Charset;
3840
import java.nio.charset.StandardCharsets;
3941
import java.sql.BatchUpdateException;
@@ -310,6 +312,16 @@ public void testCSV135() throws IOException {
310312
tryFormat(list, '"', '"', "\"\"\"\"\"\",\\\\,\"\\\"\"\\\"");
311313
}
312314

315+
@Test
316+
public void testCSV259() throws IOException {
317+
final StringWriter sw = new StringWriter();
318+
final Reader reader = new FileReader("src/test/resources/CSV-259/sample.txt");
319+
try (final CSVPrinter printer = new CSVPrinter(sw, CSVFormat.DEFAULT.withEscape('!').withQuote(null))) {
320+
printer.print(reader);
321+
assertEquals("x!,y!,z", sw.toString());
322+
}
323+
}
324+
313325
@Test
314326
public void testDelimeterQuoted() throws IOException {
315327
final StringWriter sw = new StringWriter();
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
x,y,z

0 commit comments

Comments
 (0)