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 2005/04/09 00:41:14 UTC

svn commit: r160634 - lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/ChangeLabel.java

Author: andreas
Date: Fri Apr  8 15:41:13 2005
New Revision: 160634

URL: http://svn.apache.org/viewcvs?view=rev&rev=160634
Log:
locking added to ChangeLabel usecase

Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/ChangeLabel.java

Modified: lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/ChangeLabel.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/ChangeLabel.java?view=diff&r1=160633&r2=160634
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/ChangeLabel.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/site/usecases/ChangeLabel.java Fri Apr  8 15:41:13 2005
@@ -21,6 +21,7 @@
 import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.site.SiteManager;
 import org.apache.lenya.cms.usecase.DocumentUsecase;
+import org.apache.lenya.cms.usecase.UsecaseException;
 
 /**
  * Change the label of a document.
@@ -45,6 +46,31 @@
             addErrorMessage("This usecase can only be invoked in the authoring area!");
         } else if (!getSourceDocument().exists()) {
             addErrorMessage("This usecase can only be invoked on existing documents.");
+        }
+    }
+
+    /**
+     * @see org.apache.lenya.cms.usecase.Usecase#lockInvolvedObjects()
+     */
+    public void lockInvolvedObjects() throws UsecaseException {
+        super.lockInvolvedObjects();
+        SiteManager siteManager = null;
+        ServiceSelector selector = null;
+        try {
+            Document doc = getSourceDocument();
+            selector = (ServiceSelector) this.manager.lookup(SiteManager.ROLE + "Selector");
+            siteManager = (SiteManager) selector.select(doc.getPublication().getSiteManagerHint());
+            siteManager.getSiteStructure(doc.getIdentityMap(), doc.getPublication(), doc.getArea())
+                    .lock();
+        } catch (Exception e) {
+            throw new UsecaseException(e);
+        } finally {
+            if (selector != null) {
+                if (siteManager != null) {
+                    selector.release(siteManager);
+                }
+                this.manager.release(selector);
+            }
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org