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]