You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2007/09/11 16:09:38 UTC
svn commit: r574602 - in /lenya/trunk/src:
modules-core/workflow/java/src/org/apache/lenya/cms/workflow/usecases/
modules/sourcerepository/java/src/org/apache/lenya/cms/repository/
Author: andreas
Date: Tue Sep 11 07:09:37 2007
New Revision: 574602
URL: http://svn.apache.org/viewvc?rev=574602&view=rev
Log:
Publish usecase: Lock live sitetree; SourceNode: re-date lock to loading revision; fixes bug 43290.
Modified:
lenya/trunk/src/modules-core/workflow/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java
lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java
lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceWrapper.java
Modified: lenya/trunk/src/modules-core/workflow/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/workflow/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java?rev=574602&r1=574601&r2=574602&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/workflow/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java (original)
+++ lenya/trunk/src/modules-core/workflow/java/src/org/apache/lenya/cms/workflow/usecases/Publish.java Tue Sep 11 07:09:37 2007
@@ -135,7 +135,14 @@
Document doc = getSourceDocument();
if(doc != null) {
nodes.add(doc.getRepositoryNode());
+
+ // lock the authoring site to avoid having live nodes for which no corresponding
+ // authoring node exists
nodes.add(doc.area().getSite().getRepositoryNode());
+
+ // lock the live site to avoid overriding changes made by others
+ SiteStructure liveSite = doc.getPublication().getArea(Publication.LIVE_AREA).getSite();
+ nodes.add(liveSite.getRepositoryNode());
}
return (org.apache.lenya.cms.repository.Node[]) nodes
Modified: lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java?rev=574602&r1=574601&r2=574602&view=diff
==============================================================================
--- lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java (original)
+++ lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceNode.java Tue Sep 11 07:09:37 2007
@@ -244,14 +244,17 @@
if (getLogger().isDebugEnabled()) {
getLogger().debug("Locking [" + this + "]");
}
- if (getContentSource().isLoaded() || getMetaSource().isLoaded()) {
- throw new RepositoryException("Node [" + this
- + "] is already loaded, locking would have no effect "
- + "and could lead to an inconsistent repository.");
- }
try {
- int currentVersion = getCurrentRevisionNumber();
- this.lock = getSession().createLock(this, currentVersion);
+ int currentRev = getCurrentRevisionNumber();
+
+ int contentLoadRev = getContentSource().getLoadRevision();
+ int contentRev = contentLoadRev == -1 ? currentRev : contentLoadRev;
+
+ int metaLoadRev = getMetaSource().getLoadRevision();
+ int metaRev = metaLoadRev == -1 ? currentRev : metaLoadRev;
+
+ int lockRev = Math.min(contentRev, metaRev);
+ this.lock = getSession().createLock(this, lockRev);
} catch (TransactionException e) {
throw new RepositoryException(e);
}
Modified: lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceWrapper.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceWrapper.java?rev=574602&r1=574601&r2=574602&view=diff
==============================================================================
--- lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceWrapper.java (original)
+++ lenya/trunk/src/modules/sourcerepository/java/src/org/apache/lenya/cms/repository/SourceWrapper.java Tue Sep 11 07:09:37 2007
@@ -204,7 +204,7 @@
}
private boolean deleted;
- private boolean loaded = false;
+ private int loadRevision = -1;
protected void delete() {
this.deleted = true;
@@ -262,7 +262,7 @@
this.manager.release(resolver);
}
}
- this.loaded = true;
+ this.loadRevision = this.node.getCurrentRevisionNumber();
}
/**
@@ -418,8 +418,8 @@
return new NodeOutputStream();
}
- protected boolean isLoaded() {
- return this.loaded;
+ protected int getLoadRevision() {
+ return this.loadRevision;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org