diff --git a/pom.xml b/pom.xml
index 81f5c3c2c..96a9e3f8f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
org.json
json
- 20250517
+ 20250531
bundle
JSON in Java
diff --git a/src/main/java/org/json/XML.java b/src/main/java/org/json/XML.java
index 4bf475935..6e18ee068 100644
--- a/src/main/java/org/json/XML.java
+++ b/src/main/java/org/json/XML.java
@@ -522,6 +522,9 @@ private static boolean isStringAllWhiteSpace(final String s) {
*/
private static Number stringToNumber(final String val) throws NumberFormatException {
char initial = val.charAt(0);
+ if (val.indexOf('e') != -1 || val.indexOf('E') != -1) {
+ throw new NumberFormatException("Scientific notation not supported: [" + val + "]");
+ }
if ((initial >= '0' && initial <= '9') || initial == '-') {
// decimal representation
if (isDecimalNotation(val)) {
diff --git a/src/test/java/org/json/junit/XMLTest.java b/src/test/java/org/json/junit/XMLTest.java
index 2fa5daeea..72586d6f6 100644
--- a/src/test/java/org/json/junit/XMLTest.java
+++ b/src/test/java/org/json/junit/XMLTest.java
@@ -1419,7 +1419,7 @@ public void clarifyCurrentBehavior() {
// and is probably a bug. JSONObject has a similar problem.
String str2 = " primary 008E97 ";
JSONObject jsonObject2 = XML.toJSONObject(str2);
- assertEquals(jsonObject2.getJSONObject("color").getLong("value"), 0e897, .1);
+ assertEquals(jsonObject2.getJSONObject("color").getString("value"), "008E97");
// Workaround for now is to use keepStrings
JSONObject jsonObject3 = XML.toJSONObject(str2, new XMLParserConfiguration().withKeepStrings(true));