grandchild3.name = "Grandkid3";
grandchild3.parent = child1;
child1.children = Lists.newArrayList(grandchild3);
ObjectStoreSession sess1 = store.beginSession();
sess1.store(root).now();
Key key = sess1.getKey(child2);
ObjectStoreSession sess2 = store.beginSession();
Node child2a = sess2.load(key).activate("**.children", "**.parent", "!**.parent.children").now();
assertEquals(child2.name, child2a.name);
assertEquals(child2.children.size(), child2a.children.size());
assertEquals(child2.children.get(0).name, child2a.children.get(0).name);
assertEquals(child2.children.get(1).name, child2a.children.get(1).name);
assertEquals(child2.parent.name, child2a.parent.name);
assertEquals(child2a, child2a.parent.children.get(1));
assertEquals(null, child2a.parent.children.get(0).name);
assertEquals(null, child2a.parent.children.get(0).children);
sess2.refresh(child2a.parent.children.get(0)).now();
assertEquals("Child1", child2a.parent.children.get(0).name);
assertEquals(1, child2a.parent.children.get(0).children.size());
assertEquals("Grandkid3", child2a.parent.children.get(0).children.get(0).name);
}