avar 2003/02/24 11:54:01
Modified: java/src/org/apache/axis/encoding/ser ArrayDeserializer.java
java/src/org/apache/axis/i18n resource.properties
Log:
deserialization missed in case of a two dimensional array
Revision Changes Path
1.35 +8 -8
xml-axis/java/src/org/apache/axis/encoding/ser/ArrayDeserializer.java
Index: ArrayDeserializer.java
===================================================================
RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/encoding/ser/ArrayDeserializer.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -r1.34 -r1.35
--- ArrayDeserializer.java 22 Jan 2003 20:30:57 -0000 1.34
+++ ArrayDeserializer.java 24 Feb 2003 19:54:01 -0000 1.35
@@ -182,12 +182,12 @@
QName innerQName = null;
String innerDimString = "";
if (arrayTypeValue != null) {
+ if (soapConstants != SOAPConstants.SOAP12_CONSTANTS) {
String arrayTypeValueNamespaceURI =
arrayTypeValue.getNamespaceURI();
String arrayTypeValueLocalPart =
arrayTypeValue.getLocalPart();
- if (soapConstants != SOAPConstants.SOAP12_CONSTANTS) {
int leftBracketIndex =
arrayTypeValueLocalPart.lastIndexOf('[');
int rightBracketIndex =
@@ -231,8 +231,9 @@
if (leftStarIndex == 0 && arraySizeValue.length() == 1) {
// "* *" => ""
} else if (leftStarIndex == (arraySizeValue.length() - 1)) {
- innerQName = arrayTypeValue;
- innerDimString = arraySizeValue.substring(0, leftStarIndex
- 1);
+ throw new IllegalArgumentException(
+ Messages.getMessage("badArraySize00",
+ "" + arraySizeValue));
// "* N" => "N"
} else {
dimString = arraySizeValue.substring(leftStarIndex + 2);
@@ -243,10 +244,10 @@
dimString = arraySizeValue;
}
- if (innerDimString == null) {
- defaultItemType = Constants.SOAP_ARRAY12;
- } else {
+ if (innerDimString == null || innerDimString.length() == 0) {
defaultItemType = arrayTypeValue;
+ } else {
+ defaultItemType = Constants.SOAP_ARRAY12;
}
}
}
@@ -307,8 +308,7 @@
if (dimString == null || dimString.length() == 0) {
// Size determined using length of the members
value = new ArrayListExtension(arrayClass);
- }
- else {
+ } else {
try
{
StringTokenizer tokenizer;
1.50 +1 -0 xml-axis/java/src/org/apache/axis/i18n/resource.properties
Index: resource.properties
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/i18n/resource.properties,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- resource.properties 7 Feb 2003 18:01:20 -0000 1.49
+++ resource.properties 24 Feb 2003 19:54:01 -0000 1.50
@@ -29,6 +29,7 @@
# NOTE: in badArrayType00, do not translate "arrayTypeValue"
badArrayType00=Malformed arrayTypeValue ''{0}''
+badArraySize00=Malformed arraySizeValue ''{0}''
# NOTE: in badAuth00, do not translate ""Basic""
badAuth00=Bad authentication type (I can only handle "Basic").