Quoting Valeriy Podkolzin <[EMAIL PROTECTED]>:
> I tried to cleanup objects in the end of examples\xml\Test.
>
> With regular SubjectNodes everything is fine:
>
> subject4 = (SubjectNode)structure.retrieve(slideToken, "/toto/1.txt");
> structure.remove(slideToken, subject4);
> subject4 = (SubjectNode)structure.retrieve(slideToken, "/toto/2.txt");
> structure.remove(slideToken, subject4);
> subject4 = (SubjectNode)structure.retrieve(slideToken,
> "/toto/2/3/4/5");
> structure.remove(slideToken, subject4);
> subject4 = (SubjectNode)structure.retrieve(slideToken, "/toto/2/3/4");
> structure.remove(slideToken, subject4);
> subject4 = (SubjectNode)structure.retrieve(slideToken, "/toto/2/3");
> structure.remove(slideToken, subject4);
> subject4 = (SubjectNode)structure.retrieve(slideToken, "/toto/2");
>
> But whatever I try to delete LinkObject:
>
> subject4 = (SubjectNode)structure.retrieve(slideToken,
> "/toto/test.lnk",
> true);
If I remember the example well, that call will return the SubjectNode
at "/toto".
> structure.remove(slideToken, subject4);
> // still return /toto subject in subject4
Yes, that's correct.
It's illegal to remove an object which has children so you get an exception.
Note : There is a delete macro from the Macro helper which you can use to
remove an entire branch of the namespace wich a single call.
If you want to remove the link itself, do :
subject4 = (SubjectNode)structure.retrieve(slideToken,
"/toto/test.lnk",
false);
structure.remove(slideToken, subject4);
> or
>
> //doesn't work either! structure.remove(slideToken, link);// link is
ref
> to
> LinkNode
>
> or
>
> subject4 = (SubjectNode)structure.retrieve(slideToken,
> "/toto/test.lnk");
> structure.remove(slideToken, subject4);
>
>
> I got on
> subject4 = (SubjectNode)structure.retrieve(slideToken, "/toto");
> structure.remove(slideToken, subject4);
>
> org.apache.slide.structure.ObjectHasChildrenException: Object /toto has
> children at
> org.apache.slide.structure.StructureImpl.remove(StructureImpl.java:640)
>
> And I see that /toto is still in SQL database.
>
> Am I wrong in deleteing LinkNode, or is it a BUG?
I think you may be wrong here, since all the retrieve you mentioned will return
the node at "/toto".
Remy