[exo-jcr-commits] exo-jcr SVN: r920 - jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Dec 3 10:37:52 EST 2009


Author: gavrikvetal
Date: 2009-12-03 10:37:51 -0500 (Thu, 03 Dec 2009)
New Revision: 920

Modified:
   jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java
   jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobWorkspaceRestore.java
Log:
EXOJCR-250 - Add human readable message in case Workspace creation error via HHTPBackupAgent


Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java	2009-12-03 13:45:47 UTC (rev 919)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java	2009-12-03 15:37:51 UTC (rev 920)
@@ -407,7 +407,6 @@
             throws BackupOperationException, RepositoryException, RepositoryConfigurationException,
             BackupConfigurationException
    {
-
       List<JobEntryInfo> list = log.getJobEntryInfos();
       BackupConfig config = log.getBackupConfig();
 

Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobWorkspaceRestore.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobWorkspaceRestore.java	2009-12-03 13:45:47 UTC (rev 919)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobWorkspaceRestore.java	2009-12-03 15:37:51 UTC (rev 920)
@@ -33,6 +33,7 @@
 
 import java.util.Calendar;
 
+import javax.jcr.InvalidItemStateException;
 import javax.jcr.RepositoryException;
 
 /**
@@ -173,28 +174,43 @@
     */
    private void restore() throws Throwable
    {
+      boolean restored = true;
+      RepositoryImpl repository = (RepositoryImpl)repositoryService.getRepository(repositoryName);
       try
       {
-         RepositoryImpl repository = (RepositoryImpl)repositoryService.getRepository(repositoryName);
          RepositoryEntry reEntry = repository.getConfiguration();
+         backupManager.restore(backupChainLog, reEntry.getName(), wEntry, false);
+      }
+      catch (InvalidItemStateException e)
+      {
+         restored = false;
+         throw new WorkspaceRestoreExeption("Workspace '" + "/" + repositoryName + "/" + wEntry.getName()
+            + "' can not be restored! There was database error!", e);
 
-         try
-         {
-            backupManager.restore(backupChainLog, reEntry.getName(), wEntry, false);
-         }
-         catch (Throwable t)
-         {
-            removeWorkspace(repository, wEntry.getName());
-            throw new WorkspaceRestoreExeption("Can not be restored the workspace '" + "/" + repositoryName + "/"
-               + wEntry.getName() + "' :", t);
-         }
-
       }
       catch (Throwable t)
       {
-         throw new WorkspaceRestoreExeption("Can not be restored the workspace  '" + "/" + repositoryName + "/"
-            + wEntry.getName() + "' :", t);
+         restored = false;
+         throw new WorkspaceRestoreExeption("Workspace '" + "/" + repositoryName + "/" + wEntry.getName()
+            + "' can not be restored!", t);
+
       }
+      finally
+      {
+         if (!restored)
+         {
+            try
+            {
+               removeWorkspace(repository, wEntry.getName());
+            }
+            catch (Throwable thr)
+            {
+               throw new WorkspaceRestoreExeption("Workspace '" + "/" + repositoryName + "/"
+                  + wEntry.getName() + "' can not be restored!", thr);
+            }
+         }
+      }
+
    }
 
    /**



More information about the exo-jcr-commits mailing list