You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by sa...@apache.org on 2015/07/27 23:59:36 UTC
incubator-johnzon git commit: Improved handling of trailing garbage
Repository: incubator-johnzon
Updated Branches:
refs/heads/master 7de3d8433 -> 1ea4fd8c3
Improved handling of trailing garbage
Project: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/commit/1ea4fd8c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/tree/1ea4fd8c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-johnzon/diff/1ea4fd8c
Branch: refs/heads/master
Commit: 1ea4fd8c3d894cbe8398e5808414cfd2d2eaa992
Parents: 7de3d84
Author: Hendrik Saly <he...@gmail.com>
Authored: Mon Jul 27 23:59:09 2015 +0200
Committer: Hendrik Saly <he...@gmail.com>
Committed: Mon Jul 27 23:59:09 2015 +0200
----------------------------------------------------------------------
.../johnzon/core/JsonStreamParserImpl.java | 2 +-
.../org/apache/johnzon/core/JsonParserTest.java | 77 +++++++++++++++++++-
2 files changed, 77 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/1ea4fd8c/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java
----------------------------------------------------------------------
diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java
index 3778b3b..e72ca7b 100644
--- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java
+++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonStreamParserImpl.java
@@ -185,7 +185,7 @@ public class JsonStreamParserImpl implements JsonChars, JsonParser{
}
//detect garbage at the end of the file after last object or array is closed
- if (bufferPos < availableCharsInBuffer - 2) {
+ if (bufferPos < availableCharsInBuffer) {
final char c = readNextNonWhitespaceChar(readNextChar());
http://git-wip-us.apache.org/repos/asf/incubator-johnzon/blob/1ea4fd8c/johnzon-core/src/test/java/org/apache/johnzon/core/JsonParserTest.java
----------------------------------------------------------------------
diff --git a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonParserTest.java b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonParserTest.java
index 87146f2..dc6326f 100644
--- a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonParserTest.java
+++ b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonParserTest.java
@@ -1636,7 +1636,82 @@ public class JsonParserTest {
}
}
-
+
+ @Test(expected=JsonParsingException.class)
+ public void rfc7159MustFailForLiteral() {
+ Json.createReader(new ByteArrayInputStream("null ".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void rfc7159MustFailForString() {
+ Json.createReader(new ByteArrayInputStream("\"hello\"".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void rfc7159MustFailForNumber() {
+ Json.createReader(new ByteArrayInputStream(" 12 ".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void arrayFollowedByGarbage() {
+ Json.createReader(new ByteArrayInputStream("[12],".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void arrayFollowedByGarbage1() {
+ Json.createReader(new ByteArrayInputStream("[12]:".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void arrayFollowedByGarbage2() {
+ Json.createReader(new ByteArrayInputStream("[12]:,".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void objectFollowedByGarbage() {
+ Json.createReader(new ByteArrayInputStream("{\"a\":2},".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void objectFollowedByGarbage1() {
+ Json.createReader(new ByteArrayInputStream("{\"a\":2}:".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void objectFollowedByGarbage2() {
+ Json.createReader(new ByteArrayInputStream("{\"a\":2},:".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void objectFollowedByGarbage3() {
+ Json.createReader(new ByteArrayInputStream("{\"a\":2}-".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void objectFollowedByGarbage4() {
+ Json.createReader(new ByteArrayInputStream("{\"a\":2}------------".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void objectFollowedByGarbage5() {
+ Json.createReader(new ByteArrayInputStream("{\"a\":2}{\"a\":2}".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void objectFollowedByGarbage6() {
+ Json.createReader(new ByteArrayInputStream("{\"a\":2}\"".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void objectFollowedByGarbage7() {
+ Json.createReader(new ByteArrayInputStream("{\"a\":2} \"".getBytes())).read();
+ }
+
+ @Test(expected=JsonParsingException.class)
+ public void objectPrependedByGarbage7() {
+ Json.createReader(new ByteArrayInputStream("-{\"a\":2}".getBytes())).read();
+ }
+
class AttemptingInputStream extends ByteArrayInputStream {
public AttemptingInputStream(byte[] buf) {