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/12 22:36:54 UTC

svn commit: r161113 - lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java

Author: andreas
Date: Tue Apr 12 13:36:53 2005
New Revision: 161113

URL: http://svn.apache.org/viewcvs?view=rev&rev=161113
Log:
AbstractUsecase: moved commit/rollback to finally clause

Modified:
    lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java

Modified: lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java?view=diff&r1=161112&r2=161113
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/usecase/AbstractUsecase.java Tue Apr 12 13:36:53 2005
@@ -197,23 +197,35 @@
      * @see org.apache.lenya.cms.usecase.Usecase#execute()
      */
     public final void execute() throws UsecaseException {
+        Exception exception = null;
         try {
             clearErrorMessages();
             clearInfoMessages();
             doExecute();
             dumpErrorMessages();
-
-            if (getErrorMessages().size() == 0) {
-                getUnitOfWork().commit();
-            }
-
         } catch (LockException e) {
+            exception = e;
             addErrorMessage("The operation could not be completed because an involved object was changed by another user.");
         } catch (Exception e) {
+            exception = e;
             getLogger().error(e.getMessage(), e);
             addErrorMessage(e.getMessage() + " - Please consult the logfiles.");
             if (getLogger().isDebugEnabled()) {
                 throw new UsecaseException(e);
+            }
+        } finally {
+            try {
+                if (getErrorMessages().isEmpty() && exception == null) {
+                    getUnitOfWork().commit();
+                } else {
+                    getUnitOfWork().rollback();
+                }
+            } catch (ServiceException e1) {
+                getLogger().error("Service could not be obtained: ", e1);
+            } catch (TransactionException e1) {
+                getLogger().error("Exception during commit or rollback: ", e1);
+                addErrorMessage("Exception during commit or rollback: " + e1.getMessage()
+                        + " (see logfiles for details)");
             }
         }
     }



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