svn commit: r574842 - in /lenya/trunk/src: java/org/apache/lenya/cms/repository/ modules/sitetree/java/src/org/apache/lenya/cms/site/tree2/ modules/sourcerepository/java/src/org/apache/lenya/cms/repository/

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Wed Sep 12 01:34:07 2007
New Revision: 574842

URL: http://svn.apache.org/viewvc?rev=574842&view=rev
Log:
Introduced Persistable.isModified() to check if a persistable should be saved. SiteTreeImpl.changed() won't be called during loading anymore. This fixes bug 43291.

Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/repository/Persistable.java
    lenya/trunk/src/java/org/apache/lenya/cms/repository/SessionImpl.java
    lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/cms/site/tree2/SiteTreeImpl.java
    lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/ModifiableMetaDataHandler.java

Modified: lenya/trunk/src/java/org/apache/lenya/cms/repository/Persistable.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/repository/Persistable.java?rev=574842&r1=574841&r2=574842&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/repository/Persistable.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/repository/Persistable.java Wed Sep 12 01:34:07 2007
@@ -28,5 +28,10 @@
      * @throws RepositoryException if the object couldn't be saved.
      */
     void save() throws RepositoryException;
+    
+    /**
+     * @return if the persistable object has been modified, i.e. if it needs to be saved.
+     */
+    boolean isModified();
 
 }

Modified: lenya/trunk/src/java/org/apache/lenya/cms/repository/SessionImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/repository/SessionImpl.java?rev=574842&r1=574841&r2=574842&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/repository/SessionImpl.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/repository/SessionImpl.java Wed Sep 12 01:34:07 2007
@@ -167,8 +167,9 @@
         for (int i = 0; i < objects.length; i++) {
             if (objects[i] instanceof Node) {
                 Node node = (Node) objects[i];
-                if (node.getPersistable() != null) {
-                    node.getPersistable().save();
+                Persistable persistable = node.getPersistable();
+                if (persistable != null && persistable.isModified()) {
+                    persistable.save();
                 }
             }
         }

Modified: lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/cms/site/tree2/SiteTreeImpl.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/cms/site/tree2/SiteTreeImpl.java?rev=574842&r1=574841&r2=574842&view=diff
==============================================================================
--- lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/cms/site/tree2/SiteTreeImpl.java (original)
+++ lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/cms/site/tree2/SiteTreeImpl.java Wed Sep 12 01:34:07 2007
@@ -501,6 +501,12 @@
     }
 
     protected void changed() {
-        this.changed = true;
+        if (!this.loading) {
+            this.changed = true;
+        }
+    }
+
+    public boolean isModified() {
+        return this.changed;
     }
 }

Modified: lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/ModifiableMetaDataHandler.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/ModifiableMetaDataHandler.java?rev=574842&r1=574841&r2=574842&view=diff
==============================================================================
--- lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/ModifiableMetaDataHandler.java (original)
+++ lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/ModifiableMetaDataHandler.java Wed Sep 12 01:34:07 2007
@@ -114,7 +114,6 @@
         changed();
     }
 
-
     protected void setValue(String namespaceUri, String key, String value) throws MetaDataException {
         List values = getValueList(namespaceUri, key);
         values.clear();
@@ -122,9 +121,12 @@
         changed();
     }
 
-
     private void changed() {
         this.changed = true;
+    }
+
+    public boolean isModified() {
+        return this.changed;
     }
 
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.