From c13b57ca267b4d7aca11b0d93436e0d98332ca7a Mon Sep 17 00:00:00 2001 From: md-yasir Date: Thu, 23 Oct 2025 22:36:53 +0530 Subject: [PATCH 1/8] Made Cookie constructor to private. --- src/main/java/org/json/Cookie.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/json/Cookie.java b/src/main/java/org/json/Cookie.java index ab908a304..11cc97a21 100644 --- a/src/main/java/org/json/Cookie.java +++ b/src/main/java/org/json/Cookie.java @@ -18,7 +18,7 @@ public class Cookie { /** * Constructs a new Cookie object. */ - public Cookie() { + private Cookie() { } /** From 1de42aa4fd2baa6f83a6bac6ef38d29fb8579999 Mon Sep 17 00:00:00 2001 From: md-yasir Date: Thu, 23 Oct 2025 22:37:00 +0530 Subject: [PATCH 2/8] Made CookieList constructor to private. --- src/main/java/org/json/CookieList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/json/CookieList.java b/src/main/java/org/json/CookieList.java index d1064db52..e9dd4e652 100644 --- a/src/main/java/org/json/CookieList.java +++ b/src/main/java/org/json/CookieList.java @@ -14,7 +14,7 @@ public class CookieList { /** * Constructs a new CookieList object. */ - public CookieList() { + private CookieList() { } /** From 5dc1031d17d24ea3b49b3e37ce388acbd170dc2d Mon Sep 17 00:00:00 2001 From: md-yasir Date: Thu, 23 Oct 2025 22:38:01 +0530 Subject: [PATCH 3/8] Made JSONMl constructor to private and refactored ternary operations to independent statement in L243 --- src/main/java/org/json/JSONML.java | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/json/JSONML.java b/src/main/java/org/json/JSONML.java index 6e98c8267..6b702080f 100644 --- a/src/main/java/org/json/JSONML.java +++ b/src/main/java/org/json/JSONML.java @@ -17,9 +17,10 @@ public class JSONML { /** * Constructs a new JSONML object. */ - public JSONML() { + private JSONML() { } + /** * Parse XML values and store them in a JSONArray. * @param x The XMLTokener containing the source string. @@ -239,9 +240,21 @@ private static Object parse( } } else { if (ja != null) { - ja.put(token instanceof String - ? (config.isKeepStrings() ? XML.unescape((String)token) : XML.stringToValue((String)token)) - : token); + Object value; + + if (token instanceof String) { + String strToken = (String) token; + if (config.isKeepStrings()) { + value = XML.unescape(strToken); + } else { + value = XML.stringToValue(strToken); + } + } else { + value = token; + } + + ja.put(value); + } } } From 2c6082a0a2828dc2083056b99696d6c4209e3869 Mon Sep 17 00:00:00 2001 From: md-yasir Date: Thu, 23 Oct 2025 22:50:12 +0530 Subject: [PATCH 4/8] Refactored stop conditions to be invariant by using while loop. --- src/main/java/org/json/Cookie.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/json/Cookie.java b/src/main/java/org/json/Cookie.java index 11cc97a21..630136e58 100644 --- a/src/main/java/org/json/Cookie.java +++ b/src/main/java/org/json/Cookie.java @@ -189,21 +189,30 @@ public static String toString(JSONObject jo) throws JSONException { * @return The unescaped string. */ public static String unescape(String string) { + int i = 0; int length = string.length(); StringBuilder sb = new StringBuilder(length); - for (int i = 0; i < length; ++i) { + + while (i < length) { char c = string.charAt(i); if (c == '+') { - c = ' '; + sb.append(' '); + i++; } else if (c == '%' && i + 2 < length) { int d = JSONTokener.dehexchar(string.charAt(i + 1)); int e = JSONTokener.dehexchar(string.charAt(i + 2)); + if (d >= 0 && e >= 0) { - c = (char)(d * 16 + e); - i += 2; + sb.append((char)(d * 16 + e)); + i += 3; + } else { + sb.append(c); + i++; } + } else { + sb.append(c); + i++; } - sb.append(c); } return sb.toString(); } From 6dd878d3c9262f51973fd167ca75421fc849d205 Mon Sep 17 00:00:00 2001 From: md-yasir Date: Fri, 24 Oct 2025 09:10:53 +0530 Subject: [PATCH 5/8] Deprecated public constructors instead of making it private. --- src/main/java/org/json/CDL.java | 1 + src/main/java/org/json/Cookie.java | 1 + src/main/java/org/json/CookieList.java | 3 ++- src/main/java/org/json/JSONML.java | 3 ++- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/json/CDL.java b/src/main/java/org/json/CDL.java index df527f461..c13b33352 100644 --- a/src/main/java/org/json/CDL.java +++ b/src/main/java/org/json/CDL.java @@ -23,6 +23,7 @@ * @author JSON.org * @version 2016-05-01 */ +@Deprecated public class CDL { /** diff --git a/src/main/java/org/json/Cookie.java b/src/main/java/org/json/Cookie.java index 630136e58..48b69e934 100644 --- a/src/main/java/org/json/Cookie.java +++ b/src/main/java/org/json/Cookie.java @@ -13,6 +13,7 @@ * @author JSON.org * @version 2015-12-09 */ +@Deprecated public class Cookie { /** diff --git a/src/main/java/org/json/CookieList.java b/src/main/java/org/json/CookieList.java index e9dd4e652..293c20086 100644 --- a/src/main/java/org/json/CookieList.java +++ b/src/main/java/org/json/CookieList.java @@ -14,7 +14,8 @@ public class CookieList { /** * Constructs a new CookieList object. */ - private CookieList() { + @Deprecated + public CookieList() { } /** diff --git a/src/main/java/org/json/JSONML.java b/src/main/java/org/json/JSONML.java index 6b702080f..9415c3e65 100644 --- a/src/main/java/org/json/JSONML.java +++ b/src/main/java/org/json/JSONML.java @@ -17,7 +17,8 @@ public class JSONML { /** * Constructs a new JSONML object. */ - private JSONML() { + @Deprecated + public JSONML() { } From 39e8ead7cd39dd9bffeed0f58cccae615adffdcd Mon Sep 17 00:00:00 2001 From: md-yasir Date: Fri, 24 Oct 2025 09:37:46 +0530 Subject: [PATCH 6/8] Added java doc for deprecated decoration --- src/main/java/org/json/CDL.java | 3 ++- src/main/java/org/json/Cookie.java | 3 ++- src/main/java/org/json/CookieList.java | 1 + src/main/java/org/json/JSONML.java | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/json/CDL.java b/src/main/java/org/json/CDL.java index c13b33352..f9afb8338 100644 --- a/src/main/java/org/json/CDL.java +++ b/src/main/java/org/json/CDL.java @@ -23,12 +23,13 @@ * @author JSON.org * @version 2016-05-01 */ -@Deprecated public class CDL { /** * Constructs a new CDL object. + * @deprecated (Utility class cannot be instantiated) */ + @Deprecated public CDL() { } diff --git a/src/main/java/org/json/Cookie.java b/src/main/java/org/json/Cookie.java index 48b69e934..78dcc9302 100644 --- a/src/main/java/org/json/Cookie.java +++ b/src/main/java/org/json/Cookie.java @@ -13,12 +13,13 @@ * @author JSON.org * @version 2015-12-09 */ -@Deprecated public class Cookie { /** * Constructs a new Cookie object. + * @deprecated (Utility class cannot be instantiated) */ + @Deprecated() private Cookie() { } diff --git a/src/main/java/org/json/CookieList.java b/src/main/java/org/json/CookieList.java index 293c20086..ce47aee02 100644 --- a/src/main/java/org/json/CookieList.java +++ b/src/main/java/org/json/CookieList.java @@ -13,6 +13,7 @@ public class CookieList { /** * Constructs a new CookieList object. + * @deprecated (Utility class cannot be instantiated) */ @Deprecated public CookieList() { diff --git a/src/main/java/org/json/JSONML.java b/src/main/java/org/json/JSONML.java index 9415c3e65..bde97a680 100644 --- a/src/main/java/org/json/JSONML.java +++ b/src/main/java/org/json/JSONML.java @@ -16,6 +16,7 @@ public class JSONML { /** * Constructs a new JSONML object. + * @deprecated (Utility class cannot be instantiated) */ @Deprecated public JSONML() { From ac65ee0490d92f6b1854d22651a8e8ded8b7c5ec Mon Sep 17 00:00:00 2001 From: md-yasir Date: Sat, 25 Oct 2025 20:32:30 +0530 Subject: [PATCH 7/8] Revert "Refactored stop conditions to be invariant by using while loop." This issue can be ignored --- src/main/java/org/json/Cookie.java | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/json/Cookie.java b/src/main/java/org/json/Cookie.java index 78dcc9302..fb2241a1e 100644 --- a/src/main/java/org/json/Cookie.java +++ b/src/main/java/org/json/Cookie.java @@ -191,30 +191,21 @@ public static String toString(JSONObject jo) throws JSONException { * @return The unescaped string. */ public static String unescape(String string) { - int i = 0; int length = string.length(); StringBuilder sb = new StringBuilder(length); - - while (i < length) { + for (int i = 0; i < length; ++i) { char c = string.charAt(i); if (c == '+') { - sb.append(' '); - i++; + c = ' '; } else if (c == '%' && i + 2 < length) { int d = JSONTokener.dehexchar(string.charAt(i + 1)); int e = JSONTokener.dehexchar(string.charAt(i + 2)); - if (d >= 0 && e >= 0) { - sb.append((char)(d * 16 + e)); - i += 3; - } else { - sb.append(c); - i++; + c = (char)(d * 16 + e); + i += 2; } - } else { - sb.append(c); - i++; } + sb.append(c); } return sb.toString(); } From 0cdc5e517026b1fbc39bd11be3899f930d97d18b Mon Sep 17 00:00:00 2001 From: md-yasir Date: Sat, 25 Oct 2025 20:51:50 +0530 Subject: [PATCH 8/8] Reverted Constructor access to public --- src/main/java/org/json/Cookie.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/json/Cookie.java b/src/main/java/org/json/Cookie.java index fb2241a1e..f7bab236f 100644 --- a/src/main/java/org/json/Cookie.java +++ b/src/main/java/org/json/Cookie.java @@ -20,7 +20,7 @@ public class Cookie { * @deprecated (Utility class cannot be instantiated) */ @Deprecated() - private Cookie() { + public Cookie() { } /**