You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by rw...@apache.org on 2010/04/08 22:36:22 UTC

svn commit: r932097 - /portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java

Author: rwatler
Date: Thu Apr  8 20:36:22 2010
New Revision: 932097

URL: http://svn.apache.org/viewvc?rev=932097&view=rev
Log:
JS2-1183: shutdown PortletApplicationManager Descriptor Change Monitor Thread during Spring bean lifecycle 

Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java?rev=932097&r1=932096&r2=932097&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java Thu Apr  8 20:36:22 2010
@@ -949,11 +949,11 @@ public class PortletApplicationManager i
             this.maxRetriedStarts = maxretriedStarts;
         }
         
-        public void run()
+        public synchronized void run()
         {
             try
             {
-                sleep(interval);
+                wait(interval);
             }
             catch (InterruptedException e)
             {
@@ -961,14 +961,12 @@ public class PortletApplicationManager i
             while (started)
             {
                 checkDescriptorChanges();
-
                 try
                 {
-                    sleep(interval);
+                    wait(interval);
                 }
                 catch (InterruptedException e)
                 {
-
                 }
             }
         }
@@ -976,10 +974,23 @@ public class PortletApplicationManager i
         /**
          * notifies a switch variable that exits the watcher's montior loop started in the <code>run()</code> method.
          */
-        public synchronized void safeStop()
+        public void safeStop()
         {
-            started = false;
-            monitorInfos.clear();
+            // stop this monitor thread
+            synchronized (this)
+            {
+                started = false;
+                monitorInfos.clear();
+                notifyAll();
+            }
+            // wait for monitor thread stop
+            try
+            {
+                join(interval);
+            }
+            catch (InterruptedException ie)
+            {
+            }
         }
         
         public synchronized void monitor(String contextName, String contextPath, ClassLoader paClassLoader, int paType, File paDir, long checksum)



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org