@Test
public void shouldAllowSessionToCreateManyChildrenWithSameNameAndThenSave() {

    // Make sure the property does not exist ...
    check(cache).noNode("/childB/newChild");
    print(false);
    // Set property on existing node ...
    MutableCachedNode nodeB = check(session1).mutableNode("/childB");
    Stopwatch create = new Stopwatch();
    Stopwatch total = new Stopwatch();
    Stopwatch save = new Stopwatch();
    total.start();
    for (int i = 0; i != 1000; ++i) {
        create.start();
        NodeKey newKey = session1.createNodeKey();
        nodeB.createChild(session(), newKey, name("newChild"), property("p1a", 344), property("p2", false));
        create.stop();
    }
    // And save ...
    save.start();
    session1.save();
    save.stop();
    total.stop();
    // Find node B again after the save ...
    nodeB = check(session1).mutableNode("/childB");
    print(true);
    print("Number of children: " + nodeB.getChildReferences(session1).size());
    print("Time (create): " + create.getSimpleStatistics());
    print("Time (save): " + save.getSimpleStatistics());
    print("Time (total): " + total.getTotalDuration());
    session1.clear();
    total.reset();
    total.start();
    nodeB.getChildReferences(session1).getChild(name("newChild"), 9450);
    total.stop();
    print("Time (getchild#9450): " + total.getTotalDuration());
    session1.clear();
    total.reset();
    total.start();
    nodeB.getChildReferences(session1).getChild(name("newChild"), 10);
    total.stop();
    print("Time (getchild#10): " + total.getTotalDuration());
}