jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tanju Erinmez" <tanju.erin...@gmail.com>
Subject Problem with child order after restoring of parent
Date Thu, 22 Jun 2006 15:00:26 GMT
Greetings,

I'm using the latest trunk version and tried the following sequence
which leads to swapped child nodes (this worked in 1.0.1).
Specifically:

Add nodes:
  parent
    childA
    childB

Remove childA:
  parent
    childB

Restore initial version:
  parent
    childB
    childA

The parent node is of type nt:unstructured which carries an
OrderableChildNodes=true so I assumed that upon restoring the order
would be preserved.

What would be the correct behavior for this?

Cheers,
Tanju

--------------

TESTCASE used with both Derby & InMemPMs (boiled down beyond sense :)

// Add parent & childA, childB
Node parent = session.getRootNode().addNode("parent", "nt:unstructured");
parent.addMixin("mix:versionable");
Node c1 = parent.addNode("childA", "nt:unstructured");
c1.addMixin("mix:versionable");
Node c2 = parent.addNode("childB", "nt:unstructured");
c2.addMixin("mix:versionable");
session.save();
c1.checkin();
c2.checkin();
Version v1 = parent.checkin();
// OK : parent.getNodes() -> childA, childB

// Remove childA
parent = session.getRootNode().getNode("parent");
parent.checkout();
c1 = parent.getNodes().nextNode();
c1.checkout();
c1.remove();
session.save();
Version v2 = parent.checkin();
// OK : parent.getNodes() -> childA, childB

// Remove childA
parent = session.getRootNode().getNode("parent");
parent.restore(v1, true);
// Not OK : parent.getNodes() -> childB, childA

Mime
View raw message