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

Reply via email to