You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2023/01/27 11:06:54 UTC

[cayenne] branch STABLE-4.2 updated (78868d820 -> 52433d177)

This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a change to branch STABLE-4.2
in repository https://gitbox.apache.org/repos/asf/cayenne.git


    from 78868d820 Fix OpIdFactory test
     new ca04d2bd2 CAY-2789 MalformedJsonException thrown when reading manually edited JSON data in Postgres
     new 52433d177 Add JsonTokenizer trailing spaces test

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/cayenne/value/json/JsonTokenizer.java   |  3 +++
 .../cayenne/value/json/JsonTokenizerTest.java      | 28 ++++++++++++++++++++++
 2 files changed, 31 insertions(+)


[cayenne] 01/02: CAY-2789 MalformedJsonException thrown when reading manually edited JSON data in Postgres

Posted by nt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch STABLE-4.2
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit ca04d2bd2d49d338b701dbf3005c8b34372ed508
Author: Mikhail Dzianishchyts <mi...@gmail.com>
AuthorDate: Tue Jan 17 11:22:45 2023 +0300

    CAY-2789 MalformedJsonException thrown when reading manually edited JSON data in Postgres
    
    (cherry picked from commit 6634ecba37d0a7dd07eeff7643b03a5207b93951)
---
 .../main/java/org/apache/cayenne/value/json/JsonTokenizer.java |  3 +++
 .../java/org/apache/cayenne/value/json/JsonTokenizerTest.java  | 10 ++++++++++
 2 files changed, 13 insertions(+)

diff --git a/cayenne-server/src/main/java/org/apache/cayenne/value/json/JsonTokenizer.java b/cayenne-server/src/main/java/org/apache/cayenne/value/json/JsonTokenizer.java
index 14f415240..9ab9ec46e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/value/json/JsonTokenizer.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/value/json/JsonTokenizer.java
@@ -52,6 +52,9 @@ final class JsonTokenizer {
         while (position < data.length) {
             // skip whitespace
             skipWhitespace();
+            if (position == data.length) {
+                break;
+            }
             JsonToken token = nextValue();
             // only string could be used as an object member name
             if (states[currentState] == State.OBJECT_MEMBER_NAME) {
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java b/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java
index daea7cb05..c64d01415 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java
@@ -28,6 +28,16 @@ import static org.junit.Assert.assertEquals;
  */
 public class JsonTokenizerTest {
 
+    @Test
+    public void testEmpty() {
+        JsonTokenizer tokenizer;
+        JsonTokenizer.JsonToken token;
+
+        tokenizer = new JsonTokenizer("");
+        token = tokenizer.nextToken();
+        assertEquals(JsonTokenizer.TokenType.NONE, token.type);
+    }
+
     @Test
     public void testNull() {
         JsonTokenizer tokenizer;


[cayenne] 02/02: Add JsonTokenizer trailing spaces test

Posted by nt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch STABLE-4.2
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 52433d177709bd2d51e664ca01167766d7dbed2a
Author: Mikhail Dzianishchyts <mi...@gmail.com>
AuthorDate: Tue Jan 17 11:42:03 2023 +0300

    Add JsonTokenizer trailing spaces test
    
    (cherry picked from commit 67a895bba48e22a9b0db475fe8301beb8eaf6a09)
---
 .../apache/cayenne/value/json/JsonTokenizerTest.java   | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java b/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java
index c64d01415..990d63620 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/value/json/JsonTokenizerTest.java
@@ -283,6 +283,24 @@ public class JsonTokenizerTest {
         assertEquals("abc", token5.toString());
     }
 
+    @Test
+    public void testTrailingSpaces() {
+        JsonTokenizer tokenizer;
+        JsonTokenizer.JsonToken token;
+
+        tokenizer = new JsonTokenizer("{\"test\": \"some value\"} \n");
+        token = tokenizer.nextToken();
+        assertEquals(JsonTokenizer.TokenType.OBJECT_START, token.type);
+        token = tokenizer.nextToken();
+        assertEquals(JsonTokenizer.TokenType.STRING, token.type);
+        token = tokenizer.nextToken();
+        assertEquals(JsonTokenizer.TokenType.STRING, token.type);
+        token = tokenizer.nextToken();
+        assertEquals(JsonTokenizer.TokenType.OBJECT_END, token.type);
+        token = tokenizer.nextToken();
+        assertEquals(JsonTokenizer.TokenType.NONE, token.type);
+    }
+
     @Test
     public void testEmptyArray() {
         JsonTokenizer tokenizer = new JsonTokenizer("[]");