From f042bbd36a15542908eb52580d581c3c72490abb Mon Sep 17 00:00:00 2001 From: hns Date: Tue, 9 Nov 2004 22:30:26 +0000 Subject: [PATCH] Register child object with synthetic key in node manager when adding to a collection with accessname set. --- src/helma/objectmodel/db/Node.java | 10 ++++++++-- src/helma/objectmodel/db/WrappedNodeManager.java | 9 +++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/helma/objectmodel/db/Node.java b/src/helma/objectmodel/db/Node.java index 097155b8..648c31ea 100644 --- a/src/helma/objectmodel/db/Node.java +++ b/src/helma/objectmodel/db/Node.java @@ -924,6 +924,13 @@ public final class Node implements INode, Serializable { old.remove(); this.removeNode(old); } + + if (state != TRANSIENT) { + Transactor tx = (Transactor) Thread.currentThread(); + SyntheticKey key = new SyntheticKey(this.getKey(), prop); + tx.visitCleanNode(key, node); + nmgr.registerNode(node, key); + } } } } @@ -2301,8 +2308,7 @@ public final class Node implements INode, Serializable { // if the field is not the primary key of the property, also register it if ((rel != null) && (rel.accessName != null) && (state != TRANSIENT)) { Key secKey = new SyntheticKey(getKey(), propname); - - nmgr.evictKey(secKey); + nmgr.registerNode(n, secKey); tx.visitCleanNode(secKey, n); } } diff --git a/src/helma/objectmodel/db/WrappedNodeManager.java b/src/helma/objectmodel/db/WrappedNodeManager.java index 48207978..c048c2e5 100644 --- a/src/helma/objectmodel/db/WrappedNodeManager.java +++ b/src/helma/objectmodel/db/WrappedNodeManager.java @@ -205,6 +205,15 @@ public final class WrappedNodeManager { nmgr.registerNode(node); } + /** + * + * + * @param node ... + */ + public void registerNode(Node node, Key key) { + nmgr.registerNode(node, key); + } + /** * *