Hi Michael,

Michael Harris wrote:
another noob question.  I have the following codes

                Node root = session.getRootNode();
                Node assets = root.addNode("assets");

                // Store content
                Node asset = assets.addNode("asset");
                asset.setProperty("url", "http://asset1url.org";);
                asset.setProperty("name", "Asset 1");
                asset.setProperty("typetype", "image");

                Node asset2 = assets.addNode("asset");

this creates a same named sibling /asset[2]

                asset2.setProperty("url", "http://asset2url.org";);
                asset2.setProperty("name", "Asset 2");
                asset2.setProperty("type", "image");
                session.save();

and then

        Node root = session.getRootNode();
        Node assets = root.getNode("assets");

this will only return the first asset node but not the second one.

        assets.remove();
        session.save();

the more I run the test, the more nodes I get.  Seems like the data in the
TransientRepo is being stored on the disk.  The remove is not cleaning it
up.  For why?

to remove all asset nodes you need to do the following:

for (NodeIterator assets = root.getNodes("assets"); assets.hasNext(); ) {
    assets.nextNode().remove();
}
session.save();

regards
 marcel

Reply via email to