Dims, I'm a little concerned about unnecessary object creations here - why not just fix the problem by checking for null accurately everywhere? I'm not quite sure about the tradeoffs involved between creating an empty ArrayList for every MessageElement vs. null-checking.....
--Glen > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:dims@;apache.org] > Sent: Tuesday, November 05, 2002 9:41 AM > To: [EMAIL PROTECTED] > Subject: cvs commit: xml-axis/java/src/org/apache/axis/message > MessageElement.java > > > dims 2002/11/05 06:40:31 > > Modified: java/src/org/apache/axis/message MessageElement.java > Log: > Fix for Bug 14140 - getNamespacePrefixes of MessageElement > throws a NullPointerException if no namespaces have been declared. > > Revision Changes Path > 1.134 +16 -22 > xml-axis/java/src/org/apache/axis/message/MessageElement.java > > Index: MessageElement.java > =================================================================== > RCS file: > /home/cvs/xml-axis/java/src/org/apache/axis/message/MessageEle > ment.java,v > retrieving revision 1.133 > retrieving revision 1.134 > diff -u -r1.133 -r1.134 > --- MessageElement.java 4 Nov 2002 19:40:54 -0000 1.133 > +++ MessageElement.java 5 Nov 2002 14:40:31 -0000 1.134 > @@ -143,7 +143,7 @@ > > protected MessageElement parent = null; > > - public ArrayList namespaces = null; > + public ArrayList namespaces = new ArrayList(); > > /** Our encoding style, if any */ > protected String encodingStyle = null; > @@ -301,9 +301,9 @@ > * @return Attributes collection > */ > public Attributes getCompleteAttributes() { > - if (namespaces == null) > + if (namespaces.size()==0) > return attributes; > - > + > AttributesImpl attrs = null; > if (attributes == NullAttributes.singleton) > attrs = new AttributesImpl(); > @@ -447,7 +447,8 @@ > > public void setNSMappings(ArrayList namespaces) > { > - this.namespaces = namespaces; > + if(namespaces != null) > + this.namespaces = namespaces; > } > > public String getPrefix(String namespaceURI) { > @@ -458,12 +459,10 @@ > return getRealElement().getPrefix(namespaceURI); > } > > - if (namespaces != null) { > - for (int i = 0; i < namespaces.size(); i++) { > - Mapping map = (Mapping)namespaces.get(i); > - if (map.getNamespaceURI().equals(namespaceURI)) > - return map.getPrefix(); > - } > + for (int i = 0; i < namespaces.size(); i++) { > + Mapping map = (Mapping)namespaces.get(i); > + if (map.getNamespaceURI().equals(namespaceURI)) > + return map.getPrefix(); > } > > if (parent != null) > @@ -480,12 +479,10 @@ > return getRealElement().getNamespaceURI(prefix); > } > > - if (namespaces != null) { > - for (int i = 0; i < namespaces.size(); i++) { > - Mapping map = (Mapping)namespaces.get(i); > - if (map.getPrefix().equals(prefix)) { > - return map.getNamespaceURI(); > - } > + for (int i = 0; i < namespaces.size(); i++) { > + Mapping map = (Mapping)namespaces.get(i); > + if (map.getPrefix().equals(prefix)) { > + return map.getNamespaceURI(); > } > } > > @@ -783,11 +780,9 @@ > if (prefix != null) > context.registerPrefixForURI(prefix, namespaceURI); > > - if (namespaces != null) { > - for (Iterator i = namespaces.iterator(); > i.hasNext();) { > - Mapping mapping = (Mapping) i.next(); > - > context.registerPrefixForURI(mapping.getPrefix(), > mapping.getNamespaceURI()); > - } > + for (Iterator i = namespaces.iterator(); i.hasNext();) { > + Mapping mapping = (Mapping) i.next(); > + > context.registerPrefixForURI(mapping.getPrefix(), > mapping.getNamespaceURI()); > } > > if (objectValue != null) { > @@ -817,7 +812,6 @@ > } > > public void addMapping(Mapping map) { > - if (namespaces == null) namespaces = new ArrayList(); > namespaces.add(map); > } > > > > >