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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to