Update of /var/cvs/src/org/mmbase/bridge/implementation
In directory james.mmbase.org:/tmp/cvs-serv2409/implementation
Modified Files:
Tag: MMBase-1_8
BasicNode.java
Log Message:
To fix MMB-1794 correctly, we need to know when which node is commited
See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/bridge/implementation
See also: http://www.mmbase.org/jira/browse/MMB-1794
Index: BasicNode.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/bridge/implementation/BasicNode.java,v
retrieving revision 1.210.2.10
retrieving revision 1.210.2.11
diff -u -b -r1.210.2.10 -r1.210.2.11
--- BasicNode.java 9 Dec 2008 10:39:53 -0000 1.210.2.10
+++ BasicNode.java 23 Mar 2009 17:33:11 -0000 1.210.2.11
@@ -32,7 +32,7 @@
* @author Rob Vermeulen
* @author Pierre van Rooden
* @author Michiel Meeuwissen
- * @version $Id: BasicNode.java,v 1.210.2.10 2008/12/09 10:39:53 michiel Exp $
+ * @version $Id: BasicNode.java,v 1.210.2.11 2009/03/23 17:33:11 michiel Exp $
* @see org.mmbase.bridge.Node
* @see org.mmbase.module.core.MMObjectNode
*/
@@ -293,6 +293,7 @@
if (TemporaryNodeManager.UNKNOWN == result) {
throw new BridgeException("Can't change unknown field '" +
fieldName + "', of node " + getNumber() + " of nodeManager '" +
getNodeManager().getName() +"'");
} else if (TemporaryNodeManager.INVALID_VALUE == result) {
+
getNode().storeValue(fieldName, value); // commit() will throw
that invalid.
}
}
@@ -483,8 +484,14 @@
if (isNew()) {
cloud.verify(Operation.CREATE,
BasicCloudContext.mmb.getTypeDef().getIntValue(getNodeManager().getName()));
}
+ if (log.isDebugEnabled()) {
+ log.debug("security checking " + noderef.getChanged());
+ }
edit(ACTION_COMMIT);
+ Object prev = getCloud().getProperty(CLOUD_COMMITNODE_KEY);
+ try {
+ getCloud().setProperty(CLOUD_COMMITNODE_KEY, new
Integer(getNumber())); // Validation code want to know that we are commiting
right now.
Collection errors = validate();
if (errors.size() > 0) {
String mes = "node " + getNumber() + noderef.getChanged() + ",
builder '" + nodeManager.getName() + "' " + errors.toString();
@@ -493,6 +500,12 @@
throw new IllegalArgumentException(mes);
}
}
+ } finally {
+ getCloud().setProperty(CLOUD_COMMITNODE_KEY, prev);
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("commitprocessing " + noderef.getChanged());
+ }
processCommit();
if (log.isDebugEnabled()) {
log.debug("committing " + noderef.getChanged());
@@ -506,7 +519,7 @@
node.insert(cloud.getUser());
// cloud.createSecurityInfo(getNumber());
} else {
- log.debug("not new");
+ log.debug("not new " + node.getChanged());
node.commit(cloud.getUser());
//cloud.updateSecurityInfo(getNumber());
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs