[exo-jcr-commits] exo-jcr SVN: r4472 - 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
Fri Jun 3 02:17:08 EDT 2011


Author: dkuleshov
Date: 2011-06-03 02:17:06 -0400 (Fri, 03 Jun 2011)
New Revision: 4472

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/BackupScheduler.java
Log:
EXOJCR-1354: added thread stopping methods to BackupManager stop method

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	2011-06-02 14:24:29 UTC (rev 4471)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java	2011-06-03 06:17:06 UTC (rev 4472)
@@ -310,6 +310,8 @@
    class WorkspaceBackupAutoStopper extends Thread
    {
 
+      private boolean isToBeStopped = false;
+
       WorkspaceBackupAutoStopper(ExoContainerContext ctx)
       {
          super("WorkspaceBackupAutoStopper" + (ctx == null ? "" : " " + ctx.getName()));
@@ -321,7 +323,7 @@
       @Override
       public void run()
       {
-         while (true)
+         while (!isToBeStopped)
          {
             try
             {
@@ -360,10 +362,16 @@
             }
          }
       }
+
+      public void close()
+      {
+         isToBeStopped = true;
+      }
    }
 
    class RepositoryBackupAutoStopper extends Thread
    {
+      boolean isToBeStopped = false;
 
       RepositoryBackupAutoStopper(ExoContainerContext ctx)
       {
@@ -376,7 +384,7 @@
       @Override
       public void run()
       {
-         while (true)
+         while (!isToBeStopped)
          {
             try
             {
@@ -409,6 +417,11 @@
             }
          }
       }
+
+      public void close()
+      {
+         isToBeStopped = true;
+      }
    }
 
    /**
@@ -921,6 +934,10 @@
     */
    public void stop()
    {
+      workspaceBackupStopper.close();
+      repositoryBackupStopper.close();
+      scheduler.cancelTimer();
+
       // 1. stop current backup chains
       // for (Iterator iterator = currentBackups.iterator(); iterator.hasNext();) {
       // BackupChain bc = (BackupChain) iterator.next();

Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupScheduler.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupScheduler.java	2011-06-02 14:24:29 UTC (rev 4471)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupScheduler.java	2011-06-03 06:17:06 UTC (rev 4472)
@@ -1135,4 +1135,12 @@
 
       return false;
    }
+
+   /**
+    * Simple method to release the thread used by timer used in scheduler
+    */
+   public void cancelTimer()
+   {
+      timer.cancel();
+   }
 }



More information about the exo-jcr-commits mailing list