elena 2004/01/18 09:39:37 Modified: java/src/org/apache/xerces/dom ElementImpl.java Log: Fixing bug #21859 Revision Changes Path 1.64 +16 -3 xml-xerces/java/src/org/apache/xerces/dom/ElementImpl.java Index: ElementImpl.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/ElementImpl.java,v retrieving revision 1.63 retrieving revision 1.64 diff -u -r1.63 -r1.64 --- ElementImpl.java 17 Nov 2003 19:48:52 -0000 1.63 +++ ElementImpl.java 18 Jan 2004 17:39:36 -0000 1.64 @@ -687,8 +687,21 @@ attributes.setNamedItemNS(newAttr); } else { - // change prefix and value - ((AttrNSImpl)newAttr).name= (prefix!=null)?(prefix+":"+localName):localName; + if (newAttr instanceof AttrNSImpl){ + // change prefix and value + ((AttrNSImpl)newAttr).name= (prefix!=null)?(prefix+":"+localName):localName; + } + else { + // This case may happen if user calls: + // elem.setAttribute("name", "value"); + // elem.setAttributeNS(null, "name", "value"); + // This case is not defined by the DOM spec, we choose + // to create a new attribute in this case and remove an old one from the tree + // note this might cause events to be propagated or user data to be lost + newAttr = new AttrNSImpl((CoreDocumentImpl)getOwnerDocument(), namespaceURI, qualifiedName, localName); + attributes.setNamedItemNS(newAttr); + } + newAttr.setNodeValue(value); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]