Author: fanningpj
Date: Tue Jun  9 11:06:29 2026
New Revision: 1935163

Log:
some tidy up

Modified:
   xmlbeans/trunk/src/main/java/org/apache/xmlbeans/GDate.java
   xmlbeans/trunk/src/main/java/org/apache/xmlbeans/GDateBuilder.java
   xmlbeans/trunk/src/main/java/org/apache/xmlbeans/GDuration.java
   
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/util/XsTypeConverter.java

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/GDate.java
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/GDate.java Tue Jun  9 
09:56:56 2026        (r1935162)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/GDate.java Tue Jun  9 
11:06:29 2026        (r1935163)
@@ -151,7 +151,11 @@ public final class GDate implements GDat
                         throw new IllegalArgumentException("year value 
starting with zero must be 4 or less digits: " + string);
                     }
 
-                    value = value * 10 + digitVal(ch);
+                    long newValue = value * 10L + digitVal(ch);
+                    if (newValue > Integer.MAX_VALUE) {
+                        throw new IllegalArgumentException("date value causes 
overflow: " + string);
+                    }
+                    value = Math.toIntExact(newValue);
                     start += 1;
                 }
                 digits += start;

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/GDateBuilder.java
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/GDateBuilder.java  Tue Jun 
 9 09:56:56 2026        (r1935162)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/GDateBuilder.java  Tue Jun 
 9 11:06:29 2026        (r1935163)
@@ -1098,7 +1098,7 @@ public final class GDateBuilder implemen
     static Date dateForGDate(GDateSpecification date) {
         long jDate = julianDateForGDate(date);
         long to1970Date = jDate - 2440588;
-        long to1970Ms = 1000 * 60 * 60 * 24 * to1970Date;
+        long to1970Ms = Math.multiplyExact(1000 * 60 * 60 * 24, to1970Date);
 
         to1970Ms += date.getMillisecond();
         to1970Ms += date.getSecond() * 1000L;

Modified: xmlbeans/trunk/src/main/java/org/apache/xmlbeans/GDuration.java
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/GDuration.java     Tue Jun 
 9 09:56:56 2026        (r1935162)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/GDuration.java     Tue Jun 
 9 11:06:29 2026        (r1935163)
@@ -121,9 +121,10 @@ public final class GDuration implements
                 if (!GDate.isDigit(ch))
                     break;
                 int digit = GDate.digitVal(ch);
-                if (value > (Integer.MAX_VALUE - digit) / 10)
+                long newValue = value * 10L + digit;
+                if (newValue > Integer.MAX_VALUE)
                     throw new IllegalArgumentException("duration field value 
out of range: " + str);
-                value = value * 10 + digit;
+                value = Math.toIntExact(newValue);
             }
             if (ch == '.')
             {

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/util/XsTypeConverter.java
==============================================================================
--- 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/util/XsTypeConverter.java 
    Tue Jun  9 09:56:56 2026        (r1935162)
+++ 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/impl/util/XsTypeConverter.java 
    Tue Jun  9 11:06:29 2026        (r1935163)
@@ -399,7 +399,7 @@ public final class XsTypeConverter {
             prefix = charSeq.subSequence(0, firstcolon).toString();
             localname = charSeq.subSequence(firstcolon + 1, 
charSeq.length()).toString();
             if (firstcolon == 0) {
-                throw new InvalidLexicalValueException("invalid xsd:QName '" + 
charSeq.toString() + "'");
+                throw new InvalidLexicalValueException("invalid xsd:QName '" + 
charSeq + "'");
             }
         } else {
             prefix = EMPTY_PREFIX;
@@ -590,7 +590,7 @@ public final class XsTypeConverter {
         // int parser on a CharSequence
         int length = ch.length();
         if (length < 1) {
-            throw new NumberFormatException("For input string: \"" + 
ch.toString() + "\"");
+            throw new NumberFormatException("For input string: \"" + ch + 
"\"");
         }
 
         int sign = 1;
@@ -620,17 +620,17 @@ public final class XsTypeConverter {
             int v = (c >= '0' && c <= '9') ? c - '0' : -1;
 
             if (v < 0) {
-                throw new NumberFormatException("For input string: \"" + 
ch.toString() + "\"");
+                throw new NumberFormatException("For input string: \"" + ch + 
"\"");
             }
 
             if (result < limit || (result == limit && v > limit2)) {
-                throw new NumberFormatException("For input string: \"" + 
ch.toString() + "\"");
+                throw new NumberFormatException("For input string: \"" + ch + 
"\"");
             }
 
-            result = result * 10 - v;
+            result = Math.toIntExact(result * 10L - v);
         }
 
-        return sign * result;
+        return Math.multiplyExact(sign, result);
     }
 
     // ======================== anyURI ========================


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to