[jdom-interest] Bug in Document.java

Jason Hunter jhunter at acm.org
Sun Oct 7 13:31:23 PDT 2001


Fixed.  Good catch.

-jh-

Jools wrote:
> 
> Hi
> 
> A bug exists in Document.java where a ProcessingInstruction can be
> removed
> from a Document but the parentage is not set to null, should it be
> removed.
> 
> Attached is a demonstraction of the bug (DocBug.java) and a diff which
> will fix the problem taken against the current version in CVS.
> 
> --Jools
> 
>   ------------------------------------------------------------------------
> Index: Document.java
> ===================================================================
> RCS file: /home/cvspublic/jdom/src/java/org/jdom/Document.java,v
> retrieving revision 1.44
> diff -r1.44 Document.java
> 575c575,580
> <         return content.remove(pi);
> ---
> >         if (content.remove(pi)) {
> >                       pi.setDocument(null);
> >                       return true;
> >               } else {
> >                       return false;
> >               }
> 
>   ------------------------------------------------------------------------
> import org.jdom.Element;
> import org.jdom.Document;
> import org.jdom.ProcessingInstruction;
> 
> public class DocBug {
> 
>         public static void main(String[] args) {
>                 Document doc = new Document(new Element("bug"));
> 
>                 ProcessingInstruction foo = new ProcessingInstruction("foo", "data");
> 
>                 // Adding sets the parent.
>                 doc.addContent(foo);
> 
>                 // Removing __should__ set the parent to null.
>                 doc.removeContent(foo);
> 
>                 // This should not throw an exception.
>                 doc.addContent(foo);
>         }
> }



More information about the jdom-interest mailing list