You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2008/01/08 21:29:50 UTC

svn commit: r610132 - in /jackrabbit/branches/1.4: RELEASE-NOTES.txt jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java

Author: jukka
Date: Tue Jan  8 12:29:49 2008
New Revision: 610132

URL: http://svn.apache.org/viewvc?rev=610132&view=rev
Log:
1.4: Merged revision 609938 (JCR-1296)

Modified:
    jackrabbit/branches/1.4/RELEASE-NOTES.txt
    jackrabbit/branches/1.4/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java

Modified: jackrabbit/branches/1.4/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.4/RELEASE-NOTES.txt?rev=610132&r1=610131&r2=610132&view=diff
==============================================================================
--- jackrabbit/branches/1.4/RELEASE-NOTES.txt (original)
+++ jackrabbit/branches/1.4/RELEASE-NOTES.txt Tue Jan  8 12:29:49 2008
@@ -530,6 +530,7 @@
   [JCR-1160] JCR2SPI: test regression for WorkspaceMoveReferenceableTest...
   [JCR-1183] JCR2SPI: potential race condition in event listener registration
   [JCR-1245] JCR2SPI: Use namespace decl. present in imported xml to ...
+  [JCR-1296] Exception may get lost in WorkspaceManager....
 
 jackrabbit-spi
 

Modified: jackrabbit/branches/1.4/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/branches/1.4/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java?rev=610132&r1=610131&r2=610132&view=diff
==============================================================================
--- jackrabbit/branches/1.4/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java (original)
+++ jackrabbit/branches/1.4/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java Tue Jan  8 12:29:49 2008
@@ -746,6 +746,7 @@
          * Executes the operations on the repository service.
          */
         private void execute(ChangeLog changeLog) throws RepositoryException, ConstraintViolationException, AccessDeniedException, ItemExistsException, NoSuchNodeTypeException, UnsupportedRepositoryOperationException, VersionException {
+            RepositoryException ex = null;
             try {
                 ItemState target = changeLog.getTarget();
                 batch = service.createBatch(sessionInfo, target.getId());
@@ -755,12 +756,28 @@
                     log.debug("executing " + op.getName());
                     op.accept(this);
                 }
+            } catch (RepositoryException e) {
+                ex = e;
             } finally {
                 if (batch != null) {
-                    service.submit(batch);
+                    try {
+                        // submit must be called even in case there is an
+                        // exception to give the service a chance to clean
+                        // up the batch
+                        service.submit(batch);
+                    } catch (RepositoryException e) {
+                        if (ex == null) {
+                            ex = e;
+                        } else {
+                            log.warn("Exception submitting batch", e);
+                        }
+                    }
                     // reset batch field
                     batch = null;
                 }
+            }
+            if (ex != null) {
+                throw ex;
             }
         }