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.