diff --git a/src/main/java/org/archive/format/http/HttpHeaderParser.java b/src/main/java/org/archive/format/http/HttpHeaderParser.java index fdec62f2..d63ec405 100755 --- a/src/main/java/org/archive/format/http/HttpHeaderParser.java +++ b/src/main/java/org/archive/format/http/HttpHeaderParser.java @@ -231,6 +231,7 @@ public ParseState handleByte(byte b, HttpHeaderParser parser) if(b == LF) { // TODO: this is lax, is LFLF an OK terminator? // that's all folks! + parser.headerFinished(); parser.parseFinished(); return parser.endState; } diff --git a/src/test/java/org/archive/format/http/HttpResponseParserTest.java b/src/test/java/org/archive/format/http/HttpResponseParserTest.java index 2850fe44..c0d13230 100644 --- a/src/test/java/org/archive/format/http/HttpResponseParserTest.java +++ b/src/test/java/org/archive/format/http/HttpResponseParserTest.java @@ -38,4 +38,23 @@ public void testParse() throws IOException { } + public void testParseWithLf() throws IOException { + + HttpResponseParser parser = new HttpResponseParser(); + String message = "200 OK\nContent-Type: text/plain\n\nHi there"; + try { + HttpResponse response = + parser.parse(new ByteArrayInputStream(message.getBytes(IAUtils.UTF8))); + assertNotNull(response); + HttpHeaders headers = response.getHeaders(); + assertNotNull(headers); + assertEquals(1,headers.size()); + + } catch (HttpParseException e) { + e.printStackTrace(); + fail(); + } + + } + }