Skip to content
Snippets Groups Projects
Commit 8d54a9f5 authored by Jesper Zedlitz's avatar Jesper Zedlitz
Browse files

handle consecutive empty lines correctly

parent c9a4bd74
No related branches found
No related tags found
No related merge requests found
Pipeline #182 passed
...@@ -84,12 +84,6 @@ public class FilterInvalidRDF extends InputStream { ...@@ -84,12 +84,6 @@ public class FilterInvalidRDF extends InputStream {
return -1; return -1;
} }
// insert a newline character at the end of each line
if (index == currentLine.length) {
index++;
return '\n';
}
if (index > currentLine.length) { if (index > currentLine.length) {
readNextLine(); readNextLine();
} }
...@@ -97,6 +91,11 @@ public class FilterInvalidRDF extends InputStream { ...@@ -97,6 +91,11 @@ public class FilterInvalidRDF extends InputStream {
if (currentLine == null) { if (currentLine == null) {
return -1; return -1;
} }
// insert a newline character at the end of each line
if (index == currentLine.length) {
index++;
return '\n';
}
byte result = currentLine[index]; byte result = currentLine[index];
index++; index++;
......
...@@ -3,6 +3,7 @@ package de.landsh.opendata.catalogproxy; ...@@ -3,6 +3,7 @@ package de.landsh.opendata.catalogproxy;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import java.io.ByteArrayInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
...@@ -21,6 +22,32 @@ public class FilterInvalidRDFTest { ...@@ -21,6 +22,32 @@ public class FilterInvalidRDFTest {
assertEquals(expectedResult, result); assertEquals(expectedResult, result);
} }
@Test
public void read_empty_stream() throws IOException {
InputStream inputStream = new FilterInvalidRDF(new ByteArrayInputStream(new byte[0]));
assertEquals(-1, inputStream.read());
}
@Test
public void read_empty_line() throws IOException {
InputStream inputStream = new FilterInvalidRDF(new ByteArrayInputStream("\n".getBytes()));
String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
assertEquals("\n", result);
}
@Test
public void read_empty_lines() throws IOException {
InputStream inputStream = new FilterInvalidRDF(new ByteArrayInputStream("\n\n\n".getBytes()));
String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
assertEquals("\n\n\n", result);
}
@Test
public void read_no_newline() throws IOException {
InputStream inputStream = new FilterInvalidRDF(new ByteArrayInputStream("OK".getBytes()));
String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
assertEquals("OK\n", result);
}
@Test @Test
public void read_iri_with_space() throws IOException { public void read_iri_with_space() throws IOException {
final String invalidIRI = "\"https://opendata.schleswig-holstein.de/dataset/automatische-zahlstelle-neustadt i. h.-süd-2012\""; final String invalidIRI = "\"https://opendata.schleswig-holstein.de/dataset/automatische-zahlstelle-neustadt i. h.-süd-2012\"";
...@@ -59,6 +86,5 @@ public class FilterInvalidRDFTest { ...@@ -59,6 +86,5 @@ public class FilterInvalidRDFTest {
@Test @Test
public void filterLine_invalid_xml_entity() { public void filterLine_invalid_xml_entity() {
assertEquals("?nn=1819516&cms_detail=1105&cms_map=0", FilterInvalidRDF.filterLine("?nn=1819516&cms_detail=1105&cms_map=0")); assertEquals("?nn=1819516&cms_detail=1105&cms_map=0", FilterInvalidRDF.filterLine("?nn=1819516&cms_detail=1105&cms_map=0"));
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment