You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2010/01/19 19:22:30 UTC

svn commit: r900886 - in /cxf/branches/2.2.x-fixes: ./ rt/core/src/main/java/org/apache/cxf/workqueue/AutomaticWorkQueueImpl.java

Author: dkulp
Date: Tue Jan 19 18:22:30 2010
New Revision: 900886

URL: http://svn.apache.org/viewvc?rev=900886&view=rev
Log:
Merged revisions 900877 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r900877 | dkulp | 2010-01-19 13:14:24 -0500 (Tue, 19 Jan 2010) | 2 lines
  
  Make sure the threadgroup used by the workqueue is destroyed to avoid a
  classloader leak.
........

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/workqueue/AutomaticWorkQueueImpl.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/workqueue/AutomaticWorkQueueImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/workqueue/AutomaticWorkQueueImpl.java?rev=900886&r1=900885&r2=900886&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/workqueue/AutomaticWorkQueueImpl.java (original)
+++ cxf/branches/2.2.x-fixes/rt/core/src/main/java/org/apache/cxf/workqueue/AutomaticWorkQueueImpl.java Tue Jan 19 18:22:30 2010
@@ -175,6 +175,16 @@
         public void setName(String s) {
             name = s;
         }
+        public void shutdown() {
+            if (!group.isDestroyed()) {
+                try {
+                    group.destroy();
+                    group.setDaemon(true);
+                } catch (Throwable t) {
+                    //ignore
+                }
+            }            
+        }
     }
     
     @Resource(name = "org.apache.cxf.workqueue.WorkQueueManager")
@@ -283,7 +293,14 @@
         if (!processRemainingWorkItems) {
             getQueue().clear();
         }
-        shutdown();    
+        shutdown();
+    }
+    @Override
+    protected void terminated() {
+        ThreadFactory f = this.getThreadFactory();
+        if (f instanceof AWQThreadFactory) {
+            ((AWQThreadFactory)f).shutdown();
+        }
     }
 
     /**