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]

Reply via email to