So we now return the specific Array type (whatever[]) by default?
> -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > Sent: Friday, February 08, 2002 6:15 PM > To: [EMAIL PROTECTED] > Subject: cvs commit: xml-axis/java/src/org/apache/axis/encoding/ser > ArrayDeserializer.java > > > scheu 02/02/08 15:14:44 > > Modified: java/src/org/apache/axis/encoding/ser > ArrayDeserializer.java > Log: > Made changes to hopefully fix David Cole's problem reported > on axis-dev. > > In his case, a deserialized HashMap contained values of > ArrayList instead > of the expected User[]. Changed the array deserializer to > convert itself into the expected array type after the elements have > been set but before referent objects are set. > > Need a testcase... > > Revision Changes Path > 1.4 +13 -2 > 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/Array > Deserializer.java,v > retrieving revision 1.3 > retrieving revision 1.4 > diff -u -r1.3 -r1.4 > --- ArrayDeserializer.java 8 Feb 2002 23:03:36 -0000 1.3 > +++ ArrayDeserializer.java 8 Feb 2002 23:14:44 -0000 1.4 > @@ -221,8 +221,10 @@ > try { > ClassLoader cl = > > context.getMessageContext().getClassLoader(); > - arrayClass = > Class.forName(JavaUtils.getLoadableClassName( > - arrayItemClass.getName() + > "[]"), true, cl); > + arrayClass = Class.forName( > + JavaUtils.getLoadableClassName( > + > JavaUtils.getTextClassName(arrayItemClass.getName()) + "[]"), > + true, cl); > } catch (Exception e) { > throw new SAXException( > > JavaUtils.getMessage("noComponent00", "" + defaultItemType)); > @@ -463,8 +465,17 @@ > } > } > // If all indices are accounted for, the array is complete. > + // Try converting the value (probably an > ArrayListExtension) > + // into the expected array. > + // valueComplete is invoked to inform all > referents that the > + // value of the array is ready. > waiting.remove(hint); > if (isEnded && waiting.size()==0) { > + try { > + if (arrayClass != null) { > + value = JavaUtils.convert(value, arrayClass); > + } > + } catch (Exception e) {} > valueComplete(); > } > } > > > >