Buggy code:
public abstract class NodeImpl implements Serializable , Cloneable , Node , NodeList , EventTarget { static final long serialVersionUID = - 6316591992167219696L ; public static final short ELEMENT_DEFINITION_NODE = - 1 ; protected NodeImpl ownerNode ; protected short flags ; protected static final short READONLY = 1 << 0 ; protected static final short SYNCDATA = 1 << 1 ; protected static final short SYNCCHILDREN = 1 << 2 ; protected static final short OWNED = 1 << 3 ; protected static final short FIRSTCHILD = 1 << 4 ; protected static final short SPECIFIED = 1 << 5 ; protected static final short IGNORABLEWS = 1 << 6 ; protected static final short SETVALUE = 1 << 7 ; protected static final short HASSTRING = 1 << 8 ; protected static final short UNNORMALIZED = 1 << 9 ; protected NodeImpl ( DocumentImpl ownerDocument ) { } public NodeImpl ( ) { } public abstract short getNodeType ( ) { } public abstract String getNodeName ( ) { } public String getNodeValue ( ) { } public void setNodeValue ( String x ) throws DOMException { } public Node appendChild ( Node newChild ) throws DOMException { } public Node cloneNode ( boolean deep ) { } public Document getOwnerDocument ( ) { } DocumentImpl ownerDocument ( ) { } void setOwnerDocument ( DocumentImpl doc ) { } public Node getParentNode ( ) { } NodeImpl parentNode ( ) { } public Node getNextSibling ( ) { } public Node getPreviousSibling ( ) { } ChildNode previousSibling ( ) { } public NamedNodeMap getAttributes ( ) { } public boolean hasAttributes ( ) { } public boolean hasChildNodes ( ) { } public NodeList getChildNodes ( ) { } public Node getFirstChild ( ) { } public Node getLastChild ( ) { } public Node insertBefore ( Node newChild , Node refChild ) throws DOMException { } public Node removeChild ( Node oldChild ) throws DOMException { } public Node replaceChild ( Node newChild , Node oldChild ) throws DOMException { } public int getLength ( ) { } public Node item ( int index ) { } public void normalize ( ) { } public boolean isSupported ( String feature , String version ) { } public String getNamespaceURI ( ) { } public String getPrefix ( ) { } public void setPrefix ( String prefix ) throws DOMException { } public String getLocalName ( ) { } protected static final boolean MUTATIONEVENTS = true ; protected static final int MUTATION_NONE = 0 ; protected static final int MUTATION_LOCAL = 1 ; protected static final int MUTATION_AGGREGATE = 2 ; protected static final int MUTATION_ALL = 65535 ; class LEntry { String type ; EventListener listener ; boolean useCapture ; LEntry ( String type , EventListener listener , boolean useCapture ) { } } public void addEventListener ( String type , EventListener listener , boolean useCapture ) { } public void removeEventListener ( String type , EventListener listener , boolean useCapture ) { } public boolean dispatchEvent ( Event event ) { } void dispatchEventToSubtree ( Node n , Event e ) { } class EnclosingAttr { AttrImpl node ; String oldvalue ; } NodeImpl . EnclosingAttr getEnclosingAttr ( ) { } void dispatchAggregateEvents ( NodeImpl . EnclosingAttr ea ) { } void dispatchAggregateEvents ( AttrImpl enclosingAttr , String oldvalue , short change ) { } public void setReadOnly ( boolean readOnly , boolean deep ) { } public boolean getReadOnly ( ) { } public void setUserData ( Object data ) { } public Object getUserData ( ) { } protected void changed ( ) { } protected int changes ( ) { } protected void synchronizeData ( ) { } final boolean isReadOnly ( ) { } final void isReadOnly ( boolean value ) { } final boolean needsSyncData ( ) { } final void needsSyncData ( boolean value ) { } final boolean needsSyncChildren ( ) { } final void needsSyncChildren ( boolean value ) { } final boolean isOwned ( ) { } final void isOwned ( boolean value ) { } final boolean isFirstChild ( ) { } final void isFirstChild ( boolean value ) { } final boolean isSpecified ( ) { } final void isSpecified ( boolean value ) { } final boolean internalIsIgnorableWhitespace ( ) { } final void isIgnorableWhitespace ( boolean value ) { } final boolean setValueCalled ( ) { } final void setValueCalled ( boolean value ) { } final boolean hasStringValue ( ) { } final void hasStringValue ( boolean value ) { } final boolean isNormalized ( ) { } final void isNormalized ( boolean value ) { <START_BUG> if ( ( ( ! value ) && ( ! ( isNormalized ( ) ) ) ) && ( ( ownerNode ) != null ) ) { <END_BUG> ownerNode . isNormalized ( false ) ; } flags = ( ( short ) ( ( value ) ? ( flags ) & ( ~ ( NodeImpl . UNNORMALIZED ) ) : ( flags ) | ( NodeImpl . UNNORMALIZED ) ) ) ; } public String toString ( ) { } private void writeObject ( ObjectOutputStream out ) throws IOException { } }

Fix:
if ( ( ( ! value ) && ( isNormalized ( ) ) ) && ( ( ownerNode ) != null ) ) {