Author: fanningpj
Date: Wed Jun 10 18:12:20 2026
New Revision: 1935185

Log:
allocate _dimensions when parsing bracketless soap array size. Thanks to 
aizu-m. This closes #42

Added:
   xmlbeans/trunk/src/test/java/misc/checkin/SOAPArrayTypeTest.java
Modified:
   xmlbeans/trunk/src/main/java/org/apache/xmlbeans/soap/SOAPArrayType.java

Modified: 
xmlbeans/trunk/src/main/java/org/apache/xmlbeans/soap/SOAPArrayType.java
==============================================================================
--- xmlbeans/trunk/src/main/java/org/apache/xmlbeans/soap/SOAPArrayType.java    
Wed Jun 10 17:01:40 2026        (r1935184)
+++ xmlbeans/trunk/src/main/java/org/apache/xmlbeans/soap/SOAPArrayType.java    
Wed Jun 10 18:12:20 2026        (r1935185)
@@ -118,6 +118,7 @@ public final class SOAPArrayType {
             _ranks = EMPTY_INT_ARRAY;
             dimensions = XmlWhitespace.collapse(dimensions, 
XmlWhitespace.WS_COLLAPSE);
             String[] dimStrings = dimensions.split(" ");
+            _dimensions = new int[dimStrings.length];
             for (int i = 0; i < dimStrings.length; i++) {
                 String dimString = dimStrings[i];
                 if (dimString.equals("*")) {

Added: xmlbeans/trunk/src/test/java/misc/checkin/SOAPArrayTypeTest.java
==============================================================================
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ xmlbeans/trunk/src/test/java/misc/checkin/SOAPArrayTypeTest.java    Wed Jun 
10 18:12:20 2026        (r1935185)
@@ -0,0 +1,39 @@
+/*   Copyright 2026 The Apache Software Foundation
+ *
+ *   Licensed under the Apache License, Version 2.0 (the "License");
+ *   you may not use this file except in compliance with the License.
+ *   You may obtain a copy of the License at
+ *
+ *       http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *   Unless required by applicable law or agreed to in writing, software
+ *   distributed under the License is distributed on an "AS IS" BASIS,
+ *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *   See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package misc.checkin;
+
+import org.apache.xmlbeans.soap.SOAPArrayType;
+import org.junit.jupiter.api.Test;
+
+import javax.xml.namespace.QName;
+
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+
+public class SOAPArrayTypeTest {
+
+    private static final QName ITEM = new QName("http://example.com";, "int");
+
+    @Test
+    void parsesBracketlessDimensions() {
+        SOAPArrayType t = new SOAPArrayType(ITEM, "2 3 4");
+        assertArrayEquals(new int[]{2, 3, 4}, t.getDimensions());
+    }
+
+    @Test
+    void parsesBracketlessDimensionsWithWildcard() {
+        SOAPArrayType t = new SOAPArrayType(ITEM, "* 3");
+        assertArrayEquals(new int[]{-1, 3}, t.getDimensions());
+    }
+}


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

Reply via email to