You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:25:49 UTC

[sling-org-apache-sling-commons-threads] annotated tag org.apache.sling.commons.threads-3.2.0 created (now 46e3cfb)

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a change to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git.


      at 46e3cfb  (tag)
 tagging 5ee1d96d4828afa2cd5649d23547707e89d31226 (commit)
      by Carsten Ziegeler
      on Sun Oct 20 13:45:53 2013 +0000

- Log -----------------------------------------------------------------
org.apache.sling.commons.threads-3.2.0
-----------------------------------------------------------------------

This annotated tag includes the following new commits:

     new cdf4581  Add new threads module for providing thread pools.
     new c3a54e0  Set svn:ignore
     new 6569a93  Use thread pool to create new threads instead of directly instantiating threads.
     new a216040  Create own thread pool for eventing.
     new 5dfc716  Use thread pooling for scheduler as well. Create own pool for eventing.
     new f8c7fb7  Use jvm default thread factory and always provide priority and daemon settings.
     new a5761c4  Use thread pool configuration object to be extensible.
     new b9020b0  Move licence and notice to top level dir.
     new e413af3  Add incubator disclaimer.
     new 1597daa  Add notice files.
     new 3020eb2  Write first element in pom in one line (to avoid problems with the maven release plugin) and minor pom fixes.
     new 2c687bd  Update notice files.
     new 4c666b9  SLING-417: Move sling/threads to commons/threads
     new 8d1f9f1  SLING-417: Move threads to commons.
     new 23e3268  Eclude maven-eclipse.xml generated by the maven eclipse plugin.
     new 5fa8b5a  SLING-442: Clean up exports, imports, dependencies and used plugins.
     new f7b228d  SLING-479 Fix @scr.tags:   - normalize metadata attribute settings to "no"   - ensure proper metadata and ds attributes are set   - create metatype.properties files where required   - fix metatype.properties files
     new b8442a7  SLING-483: Add excludes for javadocs (WiP)
     new f31810f  SLING-495 - NOTICE files generated using mknotice script
     new 7a30ca2  SLING-495 - NOTICE files updated according to changes in revision 662927
     new fc95c64  SLING-495 - NOTICE files regenerated with revision 663097 changes
     new 601db57  Use released version of parent pom.
     new e4986f9  [maven-release-plugin] prepare release org.apache.sling.commons.threads-2.0.0-incubator
     new 7097543  [maven-release-plugin] prepare for next development iteration
     new bac4721  Fix reference to parent pom.
     new 88286dd  SLING-521: Restore more notice files.
     new dc0cc02  SLING-521: Separate between notice files for bin and src dists.
     new 82242fd  SLING-521: Separate between notice files for bin and src dists.
     new 64c2458  SLING-521: Separate between notice files for bin and src dists.
     new b29c28c  Change copyright year to 2008.
     new 88db633  Update to released versions.
     new 3aaff93  [maven-release-plugin] prepare release org.apache.sling.commons.threads-2.0.2-incubator
     new c5e1a11  [maven-release-plugin] prepare for next development iteration
     new bac3bfb  Use latest snapshots again to make project buildable.
     new 0720836  Use released parent pom where possible.
     new bb289e6  SLING-555 : Update all poms to use the latest parent pom; update parent pom to include the incubator repo for plugins and use latest plugins.
     new daee250  SLING-758 : Correctly evaluate block policy and use the correct handler.
     new 194ca0d  Add more logging to easier detect pool problems.
     new 21e9144  SLING-808 : Increase version to 5-incubator-SNAPSHOT
     new 3ad9b97  Update notice files to include 2009 in copyright statement.
     new 58081a1  SLING-829 Cosmetics to the bundle/project names
     new 3a9b17c  SLING-865 : Move to bundles
     new ae528ef  SLING-865 : Adjust reactor pom and svn information in each module.
     new 6807294  SLING-865 : Adjust path to parent pom and add profiles for samples and contrib
     new 7807d1c  Use release parent pom
     new 03fc7dc  [maven-release-plugin] prepare release org.apache.sling.commons.threads-2.0.4-incubator
     new a28c935  [maven-release-plugin] prepare for next development iteration
     new 4ca55b3  Use next dev version of parent pom
     new bed1b63  Set parent pom to released version.
     new 6ad9afb  Move Sling to new TLP location
     new 10df9b4  SLING-1011 : Remove disclaimer file.
     new ae744d2  SLING-1011 : Adjust svn location
     new 97b3488  SLING-1011 : Remove disclaimer from readme's, adjust links to webite, fix versions in poms.
     new 97733b6  SLING-1033 Upgrade to Sling parent POM 6 (and ensure web app has the leglize stuff, too)
     new ca64268  SLING-1205 Upgrade all projects to parent POM 8 and use OSGi provided OSGi libraries
     new 3423042  SLING-1244 : Redesign thread pool management
     new 1be56f6  [maven-release-plugin] prepare release org.apache.sling.commons.threads-3.0.0
     new d87e5e7  [maven-release-plugin] prepare for next development iteration
     new b56bac2  Add some more debug information.
     new 60be200  Fix typo
     new c65358b  Use released parent pom.
     new 8145a6d  SLING-1699 : New default configuration is created on each startup
     new 7ec685e  Update notice files
     new f0b3a2a  [maven-release-plugin] prepare release org.apache.sling.commons.threads-3.0.2
     new 77bf590  [maven-release-plugin] prepare for next development iteration
     new 33781d0  SLING-1819 : Unused custom thread pool is never removed
     new 540bc62  SLING-1820 : Display current pool statistics in web console
     new b92d2c5  SLING-1821 :  Custom thread pools should get an optional label
     new 6d5d355  Add a web console label
     new 9499566  SLING-1833 : Remove direct dependency to web console by using new configuration printer support
     new 358040b  Prepare for release.
     new b6b8506  [maven-release-plugin] prepare release org.apache.sling.commons.threads-3.1.0
     new 327ebb0  [maven-release-plugin] prepare for next development iteration
     new 8046561  updating all modules to parent 10-SNAPSHOT in anticipation of emma additions to parent
     new c36972c  Update to recent snapshots
     new 0e4133b  Use latest releases.
     new 8ac6fdc  SLING-2150 : Update plugins to use the latest available versions
     new abc3e4c  Update to recent snapshot
     new c88d147  Using latest released parent pom
     new e281787  SLING-2187 - adding new module to contain our custom notice file; adding remote-resources plugin configuration to parent pom and removing all existing appended-resources NOTICE files
     new b7d45cc  temporarily using snapshots during release vote
     new 558c2bb  using latest releases
     new 22cbbc7  SLING-2480 : Add config for maven-sling-plugin to m2e configuration
     new bbd4453  Update to latest parent pom
     new ec3dff0  Use released versions
     new 6a7b2e4  Typo
     new 540daa4  SLING-2540 : Allow the ThreadPool to process Callable/Runnable and return a Future. Apply patch from Timothee Maret
     new 66cfaea  SLING-2563 - auto generate label based on a stack trace
     new 606bc12  SLING-2564 - adding JMX monitoring of Sling Thread Pools
     new b2e73ea  SLING-2535 wrapped the reference counter in a dedicated synchronised block to ensure that all access to the counter is safe. I think this will be safer than calling from within synchronised blocks as it doesnt rely on the caller remembering the methods need to be single threaded.
     new 9243258  SLING-2535 Undid my previous commit and put the synchronisation one layer further out as orriginally suggested. Synchronising in incUsage and decUsage is too risky from a deadlock point of view. Added Javadoc to warn about thread safety on the methods.
     new 6bb1173  Use latest releases and update to new parent pom
     new 6befbeb  Update to latest parent pom and use latest releases in launchpad
     new 5b61798  Correct reactor pom and update to parent pom 16
     new decafa3  SLING-2858 - Maven build fails after upgrading to parent 16: No annotation processors found in classpath
     new 77ccb6c  Update to latest parent pom
     new 95583d2  Update to parent pom 18
     new 5528320  [maven-release-plugin] prepare release org.apache.sling.commons.threads-3.2.0
     new 5ee1d96  [maven-release-plugin]  copy for tag org.apache.sling.commons.threads-3.2.0

The 99 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


-- 
To stop receiving notification emails like this one, please contact
['"commits@sling.apache.org" <co...@sling.apache.org>'].

[sling-org-apache-sling-commons-threads] 21/27: Update to latest parent pom and use latest releases in launchpad

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 6befbeb64b4553a1605e051a63643dc0c4c8577e
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Feb 18 08:38:52 2013 +0000

    Update to latest parent pom and use latest releases in launchpad
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1447147 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 39adec1..cc0ec5e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>14</version>
+        <version>15</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 01/27: [maven-release-plugin] prepare for next development iteration

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 327ebb003abf7adbd8f091576d097cd0065b9edf
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Tue Oct 12 09:37:03 2010 +0000

    [maven-release-plugin] prepare for next development iteration
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1021710 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 92e7cd9..8c83ede 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.commons.threads</artifactId>
     <packaging>bundle</packaging>
-    <version>3.1.0</version>
+    <version>3.1.1-SNAPSHOT</version>
 
     <name>Apache Sling Thread Support</name>
     <description>
@@ -37,9 +37,9 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.threads-3.1.0</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.threads-3.1.0</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.commons.threads-3.1.0</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/trunk/bundles/commons/threads</url>
     </scm>
 
     <build>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 08/27: SLING-2187 - adding new module to contain our custom notice file; adding remote-resources plugin configuration to parent pom and removing all existing appended-resources NOTICE files

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit e28178701b74d9c330214b3f4a59529eff38d711
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Wed Aug 31 19:23:49 2011 +0000

    SLING-2187 - adding new module to contain our custom notice file; adding remote-resources plugin configuration to parent pom and removing all existing appended-resources NOTICE files
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1163752 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index b53b747..6de90a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>11</version>
+        <version>12-SNAPSHOT</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 15/27: SLING-2540 : Allow the ThreadPool to process Callable/Runnable and return a Future. Apply patch from Timothee Maret

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 540daa40c5abb485d925f063fab21bbfd0be8858
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Jul 18 14:36:54 2012 +0000

    SLING-2540 : Allow the ThreadPool to process Callable/Runnable and return a Future. Apply patch from Timothee Maret
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1362967 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            |  2 +-
 .../apache/sling/commons/threads/ThreadPool.java   | 19 ++++++++
 .../commons/threads/impl/DefaultThreadPool.java    | 56 +++++++++++++++++-----
 .../commons/threads/impl/ThreadPoolFacade.java     | 18 ++++++-
 4 files changed, 80 insertions(+), 15 deletions(-)

diff --git a/pom.xml b/pom.xml
index b774988..b9e5d2a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,7 +58,7 @@
                             org.apache.sling.commons.threads.impl.Activator
                         </Bundle-Activator>
                         <Export-Package>
-                            org.apache.sling.commons.threads;version=3.1.0
+                            org.apache.sling.commons.threads;version=3.2.0
                         </Export-Package>
                         <Private-Package>
                             org.apache.sling.commons.threads.impl
diff --git a/src/main/java/org/apache/sling/commons/threads/ThreadPool.java b/src/main/java/org/apache/sling/commons/threads/ThreadPool.java
index d06d701..746206c 100644
--- a/src/main/java/org/apache/sling/commons/threads/ThreadPool.java
+++ b/src/main/java/org/apache/sling/commons/threads/ThreadPool.java
@@ -16,6 +16,9 @@
  */
 package org.apache.sling.commons.threads;
 
+import java.util.concurrent.Callable;
+import java.util.concurrent.Future;
+
 /**
  * The thread pool interface allows to start runnables by
  * getting threads from a managed pool.
@@ -29,6 +32,22 @@ public interface ThreadPool {
     void execute(Runnable runnable);
 
     /**
+     * Submits a callable for execution
+     * @param callable The {@link Callable} to submit
+     * @return A {@link Future} representing pending completion of the {@link Callable}
+     * @since 3.2
+     */
+    <T> Future<T> submit(Callable<T> callable);
+
+    /**
+     * Submits a runnable for execution
+     * @param runnable The {@link Runnable} to submit
+     * @return A {@link Future} representing pending completion of the {@link Runnable}
+     * @since 3.2
+     */
+    Future<?> submit(Runnable runnable);
+
+    /**
      * The name of the thread pool.
      */
     String getName();
diff --git a/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPool.java b/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPool.java
index dee1524..81b8740 100644
--- a/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPool.java
+++ b/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPool.java
@@ -17,7 +17,9 @@
 package org.apache.sling.commons.threads.impl;
 
 import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.Callable;
 import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.RejectedExecutionHandler;
 import java.util.concurrent.SynchronousQueue;
@@ -152,23 +154,36 @@ public class DefaultThreadPool
     /**
      * @see org.apache.sling.commons.threads.ThreadPool#execute(java.lang.Runnable)
      */
-    public void execute(Runnable runnable) {
-        if ( this.executor == null ) {
-            throw new IllegalStateException("Thread pool " + this.name + " is already shutdown.");
-        }
+    public void execute(final Runnable runnable) {
+        checkExecutor();
         if ( runnable != null ) {
-            if ( this.logger.isDebugEnabled() ) {
-                this.logger.debug("Executing runnable: {}, pool={}, active={}, corePoolSize={}, maxPoolSize={}, queueSize={}",
-                        new Object[] {runnable,
-                                      this.name,
-                                      this.executor.getActiveCount(),
-                                      this.executor.getCorePoolSize(),
-                                      this.executor.getMaximumPoolSize(),
-                                      this.executor.getQueue().size()});
+            if ( logger.isDebugEnabled() ) {
+                logOperation("Executing runnable: ", runnable);
             }
+            executor.execute(runnable);
+        }
+    }
 
-        	this.executor.execute(runnable);
+    /**
+     * @see org.apache.sling.commons.threads.ThreadPool#submit(java.util.concurrent.Callable)
+     */
+    public <T> Future<T> submit(final Callable<T> callable) {
+        checkExecutor();
+        if ( logger.isDebugEnabled() ) {
+            logOperation("Submitting callable: ", callable);
         }
+        return executor.submit(callable);
+    }
+
+    /**
+     * @see org.apache.sling.commons.threads.ThreadPool#submit(java.lang.Runnable)
+     */
+    public Future<?> submit(final Runnable runnable) {
+        checkExecutor();
+        if ( logger.isDebugEnabled() ) {
+            logOperation("Submitting runnable: ", runnable);
+        }
+        return executor.submit(runnable);
     }
 
     /**
@@ -203,4 +218,19 @@ public class DefaultThreadPool
     public ThreadPoolExecutor getExecutor() {
         return this.executor;
     }
+
+    private void checkExecutor() {
+        if ( this.executor == null ) {
+            throw new IllegalStateException("Thread pool " + this.name + " is already shutdown.");
+        }
+    }
+
+    private void logOperation(final String msg, final Object obj) {
+        logger.debug("{} {}, pool={}, active={}, corePoolSize={}, maxPoolSize={}, queueSize={}",
+                new Object[] {msg, obj, name,
+                        executor.getActiveCount(),
+                        executor.getCorePoolSize(),
+                        executor.getMaximumPoolSize(),
+                        executor.getQueue().size()});
+    }
 }
diff --git a/src/main/java/org/apache/sling/commons/threads/impl/ThreadPoolFacade.java b/src/main/java/org/apache/sling/commons/threads/impl/ThreadPoolFacade.java
index 0135e3c..94c8198 100644
--- a/src/main/java/org/apache/sling/commons/threads/impl/ThreadPoolFacade.java
+++ b/src/main/java/org/apache/sling/commons/threads/impl/ThreadPoolFacade.java
@@ -16,6 +16,8 @@
  */
 package org.apache.sling.commons.threads.impl;
 
+import java.util.concurrent.Callable;
+import java.util.concurrent.Future;
 import java.util.concurrent.ThreadPoolExecutor;
 
 import org.apache.sling.commons.threads.ThreadPool;
@@ -43,11 +45,25 @@ public final class ThreadPoolFacade implements ThreadPool {
     /**
      * @see org.apache.sling.commons.threads.ThreadPool#execute(java.lang.Runnable)
      */
-    public void execute(Runnable runnable) {
+    public void execute(final Runnable runnable) {
         this.delegatee.execute(runnable);
     }
 
     /**
+     * @see org.apache.sling.commons.threads.ThreadPool#submit(java.util.concurrent.Callable)
+     */
+    public <T> Future<T> submit(final Callable<T> callable) {
+        return this.delegatee.submit(callable);
+    }
+
+    /**
+     * @see org.apache.sling.commons.threads.ThreadPool#submit(java.lang.Runnable)
+     */
+    public Future<?> submit(final Runnable runnable) {
+        return this.delegatee.submit(runnable);
+    }
+
+    /**
      * @see org.apache.sling.commons.threads.ThreadPool#getConfiguration()
      */
     public ThreadPoolConfig getConfiguration() {

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 27/27: [maven-release-plugin] copy for tag org.apache.sling.commons.threads-3.2.0

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 5ee1d96d4828afa2cd5649d23547707e89d31226
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Sun Oct 20 13:45:53 2013 +0000

    [maven-release-plugin]  copy for tag org.apache.sling.commons.threads-3.2.0
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.threads-3.2.0@1533894 13f79535-47bb-0310-9956-ffa450edef68

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 17/27: SLING-2564 - adding JMX monitoring of Sling Thread Pools

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 606bc12b8e7027eec074fc754fe0f38aeaa7d2b4
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Thu Oct 18 21:53:20 2012 +0000

    SLING-2564 - adding JMX monitoring of Sling Thread Pools
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1399878 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            |   3 +-
 .../threads/impl/DefaultThreadPoolManager.java     |  64 +++++++--
 .../commons/threads/impl/ThreadPoolMBeanImpl.java  | 147 +++++++++++++++++++
 .../sling/commons/threads/jmx/ThreadPoolMBean.java | 159 +++++++++++++++++++++
 4 files changed, 364 insertions(+), 9 deletions(-)

diff --git a/pom.xml b/pom.xml
index b9e5d2a..3b69b95 100644
--- a/pom.xml
+++ b/pom.xml
@@ -58,7 +58,8 @@
                             org.apache.sling.commons.threads.impl.Activator
                         </Bundle-Activator>
                         <Export-Package>
-                            org.apache.sling.commons.threads;version=3.2.0
+                            org.apache.sling.commons.threads;version=3.2.0,
+                            org.apache.sling.commons.threads.jmx;version=1.0.0
                         </Export-Package>
                         <Private-Package>
                             org.apache.sling.commons.threads.impl
diff --git a/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java b/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java
index ee86399..331d668 100644
--- a/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java
+++ b/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java
@@ -18,6 +18,7 @@ package org.apache.sling.commons.threads.impl;
 
 import java.util.Dictionary;
 import java.util.HashMap;
+import java.util.Hashtable;
 import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.ThreadPoolExecutor;
@@ -28,8 +29,10 @@ import org.apache.sling.commons.threads.ThreadPoolConfig;
 import org.apache.sling.commons.threads.ThreadPoolConfig.ThreadPoolPolicy;
 import org.apache.sling.commons.threads.ThreadPoolConfig.ThreadPriority;
 import org.apache.sling.commons.threads.ThreadPoolManager;
+import org.apache.sling.commons.threads.jmx.ThreadPoolMBean;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.cm.ConfigurationException;
 import org.osgi.service.cm.ManagedServiceFactory;
 import org.slf4j.Logger;
@@ -69,12 +72,15 @@ public class DefaultThreadPoolManager
     public void destroy() {
         this.logger.debug("Disposing all thread pools");
 
+        final Map<String, Entry> localCopy = new HashMap<String, Entry>(this.pools.size());
         synchronized ( this.pools ) {
-            for (final Entry entry : this.pools.values()) {
-                entry.shutdown();
-            }
+            localCopy.putAll(this.pools);
             this.pools.clear();
         }
+        for (final Entry entry : localCopy.values()) {
+            entry.unregisterMBean();
+            entry.shutdown();
+        }
         this.logger.info("Stopped Apache Sling Thread Pool Manager");
     }
 
@@ -119,17 +125,22 @@ public class DefaultThreadPoolManager
     public ThreadPool get(final String name) {
         final String poolName = (name == null ? DEFAULT_THREADPOOL_NAME : name);
         Entry entry = null;
+        boolean created = false;
         synchronized (this.pools) {
             entry = this.pools.get(poolName);
             if ( entry == null ) {
                 this.logger.debug("Creating new pool with name {}", poolName);
                 final ModifiableThreadPoolConfig config = new ModifiableThreadPoolConfig();
-                entry = new Entry(null, config, poolName);
+                entry = new Entry(null, config, poolName, bundleContext);
+                created = true;
 
                 this.pools.put(poolName, entry);
             }
-            return entry.incUsage();
         }
+        if (created) {
+            entry.registerMBean();
+        }
+        return entry.incUsage();
     }
 
     /**
@@ -137,15 +148,20 @@ public class DefaultThreadPoolManager
      */
     public void release(ThreadPool pool) {
         if ( pool instanceof ThreadPoolFacade ) {
+            Entry removedEntry = null;
             synchronized ( this.pools ) {
                 final Entry entry = this.pools.get(pool.getName());
                 if ( entry != null ) {
                     entry.decUsage();
                     if ( !entry.isUsed() ) {
+                        removedEntry = entry;
                         this.pools.remove(pool.getName());
                     }
                 }
             }
+            if ( removedEntry != null ) {
+                removedEntry.unregisterMBean();
+            }
         }
 
     }
@@ -176,10 +192,11 @@ public class DefaultThreadPoolManager
 
         final String name = "ThreadPool-" + UUID.randomUUID().toString() +
              (label == null ? "" : " (" + label + ")");
-        final Entry entry = new Entry(null, config, name);
+        final Entry entry = new Entry(null, config, name, bundleContext);
         synchronized ( this.pools ) {
             this.pools.put(name, entry);
         }
+        entry.registerMBean();
         return entry.incUsage();
     }
 
@@ -210,6 +227,7 @@ public class DefaultThreadPoolManager
             throw new ConfigurationException(ModifiableThreadPoolConfig.PROPERTY_NAME, "Property is missing or empty.");
         }
         this.logger.debug("Updating {} with {}", pid, properties);
+        Entry createdEntry = null;
         synchronized ( this.pools ) {
             final ThreadPoolConfig config = this.createConfig(properties);
 
@@ -241,9 +259,13 @@ public class DefaultThreadPoolManager
                 foundEntry.update(config, name, pid);
             } else {
                 // create
-                this.pools.put(name, new Entry(pid, config, name));
+                createdEntry = new Entry(pid, config, name, bundleContext);
+                this.pools.put(name, createdEntry);
             }
         }
+        if ( createdEntry != null ) {
+            createdEntry.registerMBean(); 
+        }
     }
 
     /**
@@ -275,6 +297,8 @@ public class DefaultThreadPoolManager
     }
 
     protected static final class Entry {
+        private static final Logger logger = LoggerFactory.getLogger(Entry.class);
+
         /** The configuration pid. (might be null for anonymous pools.*/
         private volatile String pid;
 
@@ -290,10 +314,15 @@ public class DefaultThreadPoolManager
         /** The corresponding pool - might be null if unused. */
         private volatile ThreadPoolFacade pool;
 
-        public Entry(final String pid, final ThreadPoolConfig config, final String name) {
+        private ServiceRegistration mbeanRegistration;
+
+        private BundleContext bundleContext;
+
+        public Entry(final String pid, final ThreadPoolConfig config, final String name, final BundleContext bundleContext) {
             this.pid = pid;
             this.config = config;
             this.name = name;
+            this.bundleContext = bundleContext;
         }
 
         public String getPid() {
@@ -352,5 +381,24 @@ public class DefaultThreadPoolManager
             }
             return null;
         }
+
+        protected void unregisterMBean() {
+            if ( this.mbeanRegistration != null ) {
+                this.mbeanRegistration.unregister();
+                this.mbeanRegistration = null;
+            }
+        }
+
+        protected void registerMBean() {
+            try {
+                final Dictionary<String, String> mbeanProps = new Hashtable<String, String>();
+                mbeanProps.put("jmx.objectname", "org.apache.sling:type=threads,service=ThreadPool,name=" + this.name);
+
+                final ThreadPoolMBeanImpl mbean = new ThreadPoolMBeanImpl(this);
+                this.mbeanRegistration = bundleContext.registerService(ThreadPoolMBean.class.getName(), mbean, mbeanProps);
+            } catch (Throwable t) {
+                logger.warn("Unable to register Thread Pool MBean", t);
+            }
+        }
     }
 }
diff --git a/src/main/java/org/apache/sling/commons/threads/impl/ThreadPoolMBeanImpl.java b/src/main/java/org/apache/sling/commons/threads/impl/ThreadPoolMBeanImpl.java
new file mode 100644
index 0000000..fe96b97
--- /dev/null
+++ b/src/main/java/org/apache/sling/commons/threads/impl/ThreadPoolMBeanImpl.java
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.sling.commons.threads.impl;
+
+import java.util.concurrent.ThreadPoolExecutor;
+
+import javax.management.NotCompliantMBeanException;
+import javax.management.StandardMBean;
+
+import org.apache.sling.commons.threads.impl.DefaultThreadPoolManager.Entry;
+import org.apache.sling.commons.threads.jmx.ThreadPoolMBean;
+
+class ThreadPoolMBeanImpl extends StandardMBean implements ThreadPoolMBean {
+    
+    private final Entry entry;
+
+    ThreadPoolMBeanImpl(Entry entry) throws NotCompliantMBeanException {
+        super(ThreadPoolMBean.class);
+        this.entry = entry;
+    }
+
+    public String getBlockPolicy() {
+        return this.entry.getConfig().getBlockPolicy().name();
+    }
+
+    public int getExecutorActiveCount() {
+        final ThreadPoolExecutor tpe = this.entry.getExecutor();
+        if ( tpe != null ) {
+            return tpe.getActiveCount();
+        } else {
+            return -1;
+        }
+    }
+
+    public long getExecutorCompletedTaskCount() {
+        final ThreadPoolExecutor tpe = this.entry.getExecutor();
+        if ( tpe != null ) {
+            return tpe.getCompletedTaskCount();
+        } else {
+            return -1;
+        }
+    }
+
+    public int getExecutorCorePoolSize() {
+        final ThreadPoolExecutor tpe = this.entry.getExecutor();
+        if ( tpe != null ) {
+            return tpe.getCorePoolSize();
+        } else {
+            return -1;
+        }
+    }
+
+    public int getExecutorLargestPoolSize() {
+        final ThreadPoolExecutor tpe = this.entry.getExecutor();
+        if ( tpe != null ) {
+            return tpe.getLargestPoolSize();
+        } else {
+            return -1;
+        }
+    }
+
+    public int getExecutorMaximumPoolSize() {
+        final ThreadPoolExecutor tpe = this.entry.getExecutor();
+        if ( tpe != null ) {
+            return tpe.getMaximumPoolSize();
+        } else {
+            return -1;
+        }
+    }
+
+    public int getExecutorPoolSize() {
+        final ThreadPoolExecutor tpe = this.entry.getExecutor();
+        if ( tpe != null ) {
+            return tpe.getPoolSize();
+        } else {
+            return -1;
+        }
+    }
+
+    public long getExecutorTaskCount() {
+        final ThreadPoolExecutor tpe = this.entry.getExecutor();
+        if ( tpe != null ) {
+            return tpe.getTaskCount();
+        } else {
+            return -1;
+        }
+    }
+
+    public long getKeepAliveTime() {
+        return this.entry.getConfig().getKeepAliveTime();
+    }
+
+    public int getMaxPoolSize() {
+        return this.entry.getConfig().getMaxPoolSize();
+    }
+
+    public int getMinPoolSize() {
+        return this.entry.getConfig().getMinPoolSize();
+    }
+
+    public String getName() {
+        return this.entry.getName();
+    }
+
+    public String getPid() {
+        return this.entry.getPid();
+    }
+
+    public String getPriority() {
+        return this.entry.getConfig().getPriority().name();
+    }
+
+    public int getQueueSize() {
+        return this.entry.getConfig().getQueueSize();
+    }
+
+    public int getShutdownWaitTimeMs() {
+        return this.entry.getConfig().getShutdownWaitTimeMs();
+    }
+
+    public boolean isDaemon() {
+        return this.entry.getConfig().isDaemon();
+    }
+
+    public boolean isShutdownGraceful() {
+        return this.entry.getConfig().isShutdownGraceful();
+    }
+
+    public boolean isUsed() {
+        return this.entry.isUsed();
+    }
+
+}
diff --git a/src/main/java/org/apache/sling/commons/threads/jmx/ThreadPoolMBean.java b/src/main/java/org/apache/sling/commons/threads/jmx/ThreadPoolMBean.java
new file mode 100644
index 0000000..bdee6b3
--- /dev/null
+++ b/src/main/java/org/apache/sling/commons/threads/jmx/ThreadPoolMBean.java
@@ -0,0 +1,159 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.apache.sling.commons.threads.jmx;
+
+/**
+ * This is the management interface for a Sling Thread Pool.
+ */
+public interface ThreadPoolMBean {
+
+    /**
+     * Retrieve the block policy of the thread pool.
+     * 
+     * @return the block policy
+     */
+    String getBlockPolicy();
+
+    /**
+     * Retrieve the active count from the pool's Executor.
+     * 
+     * @return the active count or -1 if the thread pool does not have an Executor
+     */
+    int getExecutorActiveCount();
+
+    /**
+     * Retrieve the completed task count from the pool's Executor.
+     * 
+     * @return the completed task count or -1 if the thread pool does not have an Executor
+     */
+    long getExecutorCompletedTaskCount();
+
+    /**
+     * Retrieve the core pool size from the pool's Executor.
+     * 
+     * @return the core pool size or -1 if the thread pool does not have an Executor
+     */
+    int getExecutorCorePoolSize();
+
+    /**
+     * Retrieve the largest pool size from the pool's Executor.
+     * 
+     * @return the largest pool size or -1 if the thread pool does not have an Executor
+     */
+    int getExecutorLargestPoolSize();
+
+    /**
+     * Retrieve the maximum pool size from the pool's Executor.
+     * 
+     * @return the maximum pool size or -1 if the thread pool does not have an Executor
+     */
+    int getExecutorMaximumPoolSize();
+
+
+    /**
+     * Retrieve the pool size from the pool's Executor.
+     * 
+     * @return the pool size or -1 if the thread pool does not have an Executor
+     */
+    int getExecutorPoolSize();
+
+
+    /**
+     * Retrieve the task count from the pool's Executor.
+     * 
+     * @return the task count or -1 if the thread pool does not have an Executor
+     */
+    long getExecutorTaskCount();
+
+    /**
+     * Return the configured keep alive time.
+     * 
+     * @return The configured keep alive time.
+     */
+    long getKeepAliveTime();
+
+    /**
+     * Return the configured maximum pool size.
+     * 
+     * @return The configured maximum pool size.
+     */
+    int getMaxPoolSize();
+
+    /**
+     * Return the minimum pool size.
+     * 
+     * @return The minimum pool size.
+     */
+    int getMinPoolSize();
+
+    /**
+     * Return the name of the thread pool
+     * 
+     * @return the name
+     */
+    String getName();
+
+    /**
+     * Return the configuration pid of the thread pool.
+     * 
+     * @return the pid
+     */
+    String getPid();
+
+    /**
+     * Return the configured priority of the thread pool.
+     * 
+     * @return the priority
+     */
+    String getPriority();
+
+    /**
+     * Return the configured queue size.
+     * 
+     * @return The configured queue size.
+     */
+    int getQueueSize();
+
+    /**
+     * Return the configured shutdown wait time in milliseconds.
+     * 
+     * @return The configured shutdown wait time.
+     */
+    int getShutdownWaitTimeMs();
+
+    /**
+     * Return whether or not the thread pool creates daemon threads.
+     * 
+     * @return The daemon configuration.
+     */
+    boolean isDaemon();
+
+    /**
+     * Return whether or not the thread pool is configured to shutdown gracefully.
+     * 
+     * @return The graceful shutdown configuration.
+     */
+    boolean isShutdownGraceful();
+
+    /**
+     * Return whether or not the thread pool is in use.
+     * 
+     * @return The used state of the pool.
+     */
+    boolean isUsed();
+
+}

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 23/27: SLING-2858 - Maven build fails after upgrading to parent 16: No annotation processors found in classpath

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit decafa35c71c0ae2e899af620f47c61f00dee072
Author: Robert Munteanu <ro...@apache.org>
AuthorDate: Tue May 7 15:13:05 2013 +0000

    SLING-2858 - Maven build fails after upgrading to parent 16: No
    annotation processors found in classpath
    
    Add explicit org.apache.felix.scr.annotations dependency where needed.
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1479937 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/pom.xml b/pom.xml
index 6bd993d..f1b42e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -84,6 +84,10 @@
     </reporting>
     <dependencies>
         <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.scr.annotations</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>org.osgi.core</artifactId>
         </dependency>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 03/27: Update to recent snapshots

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit c36972c926afc28e61b38bf2598de022ed300136
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Dec 8 16:37:27 2010 +0000

    Update to recent snapshots
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1043504 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index c410f54..7ee3e2e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>10-SNAPSHOT</version>
+        <version>11-SNAPSHOT</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 10/27: using latest releases

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 558c2bbdd95d52dced1362f7fc4809f1413fe765
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Wed Sep 7 14:35:51 2011 +0000

    using latest releases
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1166199 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e1221b6..2ba89d2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>13-SNAPSHOT</version>
+        <version>12</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 24/27: Update to latest parent pom

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 77ccb6cfc2e20817a4f28b3d8a2d7af473577f88
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Fri Jul 19 07:04:15 2013 +0000

    Update to latest parent pom
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1504788 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index f1b42e0..1275eb1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>16</version>
+        <version>17</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 13/27: Use released versions

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit ec3dff01ad8894f8d69c1cdb009a66ae3b90ae29
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Tue Jul 10 11:07:18 2012 +0000

    Use released versions
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1359601 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index bfc5a73..b774988 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>14-SNAPSHOT</version>
+        <version>13</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 12/27: Update to latest parent pom

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit bbd4453978f7542af48775d25ce36eea5ca54de7
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Jul 5 09:29:47 2012 +0000

    Update to latest parent pom
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1357521 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e1221b6..bfc5a73 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>13-SNAPSHOT</version>
+        <version>14-SNAPSHOT</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 25/27: Update to parent pom 18

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 95583d29ea7ad91dcf2aef76be677242de57bb6e
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Fri Sep 6 12:15:57 2013 +0000

    Update to parent pom 18
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1520554 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 1275eb1..324ac45 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>17</version>
+        <version>18</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 09/27: temporarily using snapshots during release vote

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit b7d45cc4512df81acbd9036507410527dfaf36ea
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Wed Aug 31 20:10:55 2011 +0000

    temporarily using snapshots during release vote
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1163785 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 6de90a3..e1221b6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>12-SNAPSHOT</version>
+        <version>13-SNAPSHOT</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 07/27: Using latest released parent pom

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit c88d147d697ee1f69843d3278f0c62503b4ed240
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Aug 8 11:31:38 2011 +0000

    Using latest released parent pom
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1154924 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 6de90a3..b53b747 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>12-SNAPSHOT</version>
+        <version>11</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 02/27: updating all modules to parent 10-SNAPSHOT in anticipation of emma additions to parent

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 8046561b16266606dc7f1b722e726a290ccd05ae
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Wed Oct 13 20:54:21 2010 +0000

    updating all modules to parent 10-SNAPSHOT in anticipation of emma additions to parent
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1022288 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 8c83ede..c410f54 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>9</version>
+        <version>10-SNAPSHOT</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 26/27: [maven-release-plugin] prepare release org.apache.sling.commons.threads-3.2.0

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 55283206f78512cabe88449d36987ccd9eca2198
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Sun Oct 20 13:45:18 2013 +0000

    [maven-release-plugin] prepare release org.apache.sling.commons.threads-3.2.0
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1533893 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pom.xml b/pom.xml
index 324ac45..892f6f8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,7 +29,7 @@
 
     <artifactId>org.apache.sling.commons.threads</artifactId>
     <packaging>bundle</packaging>
-    <version>3.1.1-SNAPSHOT</version>
+    <version>3.2.0</version>
 
     <name>Apache Sling Thread Support</name>
     <description>
@@ -37,9 +37,9 @@
     </description>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads</developerConnection>
-        <url>http://svn.apache.org/viewvc/sling/trunk/bundles/commons/threads</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.threads-3.2.0</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.threads-3.2.0</developerConnection>
+        <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.commons.threads-3.2.0</url>
     </scm>
 
     <build>

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 19/27: SLING-2535 Undid my previous commit and put the synchronisation one layer further out as orriginally suggested. Synchronising in incUsage and decUsage is too risky from a deadlock point of view. Added Javadoc to warn about thread safety on the methods.

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 92432586307eaf7bf31c989a4f74bdd0958fa198
Author: Ian Boston <ie...@apache.org>
AuthorDate: Thu Nov 1 00:22:50 2012 +0000

    SLING-2535 Undid my previous commit and put the synchronisation one layer further out as orriginally suggested. Synchronising in incUsage and decUsage is too risky from a deadlock point of view. Added Javadoc to warn about thread safety on the methods.
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1404430 13f79535-47bb-0310-9956-ffa450edef68
---
 .../threads/impl/DefaultThreadPoolManager.java     | 38 ++++++++++++++--------
 1 file changed, 25 insertions(+), 13 deletions(-)

diff --git a/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java b/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java
index 65f3059..024b2e6 100644
--- a/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java
+++ b/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java
@@ -126,6 +126,7 @@ public class DefaultThreadPoolManager
         final String poolName = (name == null ? DEFAULT_THREADPOOL_NAME : name);
         Entry entry = null;
         boolean created = false;
+        ThreadPool threadPool = null;
         synchronized (this.pools) {
             entry = this.pools.get(poolName);
             if ( entry == null ) {
@@ -136,11 +137,12 @@ public class DefaultThreadPoolManager
 
                 this.pools.put(poolName, entry);
             }
+            threadPool = entry.incUsage();
         }
         if (created) {
             entry.registerMBean();
         }
-        return entry.incUsage();
+        return threadPool;
     }
 
     /**
@@ -193,11 +195,13 @@ public class DefaultThreadPoolManager
         final String name = "ThreadPool-" + UUID.randomUUID().toString() +
              (label == null ? "" : " (" + label + ")");
         final Entry entry = new Entry(null, config, name, bundleContext);
+        ThreadPool threadPool = null;
         synchronized ( this.pools ) {
             this.pools.put(name, entry);
+            threadPool = entry.incUsage();
         }
         entry.registerMBean();
-        return entry.incUsage();
+        return threadPool;
     }
 
     /**
@@ -342,22 +346,30 @@ public class DefaultThreadPoolManager
             }
         }
 
+        /**
+         * Increments a usage counter and gets the ThreadPoolFacade inside the Entry.
+         * Note this method is not thread safe and must at all time be protected from
+         * multiple threads accessing it at the same time. The counter is volatile and 
+         * hence not atomic in updates.
+         * @return the thread pool Facade instance after reference counting the usage.
+         */
         public ThreadPoolFacade incUsage() {
-            synchronized (usagelock) {
-                if ( pool == null ) {
-                    pool = new ThreadPoolFacade(new DefaultThreadPool(name, this.config));
-                }
-                this.count++;
-                return pool;
+            if ( pool == null ) {
+                pool = new ThreadPoolFacade(new DefaultThreadPool(name, this.config));
             }
+            this.count++;
+            return pool;
         }
 
+        /**
+         * Decrement the usage counter, and if its zero initiate a shutdown the entry (and the thread pool). 
+         * Note: this method is not thread safe and must at all time be protected from multiple threads
+         * accessing it at the same time. The counter is volatile and hence not atomic in updates.
+         */
         public void decUsage() {
-            synchronized (usagelock) {
-                this.count--;
-                if ( this.count == 0 ) {
-                    this.shutdown();
-                }
+            this.count--;
+            if ( this.count == 0 ) {
+                this.shutdown();
             }
         }
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 04/27: Use latest releases.

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 0e4133b7b568e68b846a551a90204209dbd6abeb
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Mon Dec 13 08:55:35 2010 +0000

    Use latest releases.
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1045037 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 7ee3e2e..e3e8ad1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>11-SNAPSHOT</version>
+        <version>10</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 14/27: Typo

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 6a7b2e47701f7ef301900dd88903fc9eceedc3cb
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Jul 18 13:56:52 2012 +0000

    Typo
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1362956 13f79535-47bb-0310-9956-ffa450edef68
---
 src/main/java/org/apache/sling/commons/threads/ThreadPoolManager.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/commons/threads/ThreadPoolManager.java b/src/main/java/org/apache/sling/commons/threads/ThreadPoolManager.java
index 871729e..fa69df2 100644
--- a/src/main/java/org/apache/sling/commons/threads/ThreadPoolManager.java
+++ b/src/main/java/org/apache/sling/commons/threads/ThreadPoolManager.java
@@ -18,7 +18,7 @@ package org.apache.sling.commons.threads;
 
 
 /**
- * The <cod>ThreadPoolManager</code> manages thread pools.
+ * The <code>ThreadPoolManager</code> manages thread pools.
  *
  */
 public interface ThreadPoolManager {

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 05/27: SLING-2150 : Update plugins to use the latest available versions

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 8ac6fdca4608b95e280051710597a16768669ae4
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Jul 20 12:21:40 2011 +0000

    SLING-2150 : Update plugins to use the latest available versions
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1148722 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index e3e8ad1..7ee3e2e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>10</version>
+        <version>11-SNAPSHOT</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 18/27: SLING-2535 wrapped the reference counter in a dedicated synchronised block to ensure that all access to the counter is safe. I think this will be safer than calling from within synchronised blocks as it doesnt rely on the caller remembering the methods need to be single threaded.

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit b2e73eae7543182f126dac7789a09ee0165955cf
Author: Ian Boston <ie...@apache.org>
AuthorDate: Wed Oct 31 10:49:32 2012 +0000

    SLING-2535 wrapped the reference counter in a dedicated synchronised block to ensure that all access to the counter is safe. I think this will be safer than calling from within synchronised blocks as it doesnt rely on the caller remembering the methods need to be single threaded.
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1404087 13f79535-47bb-0310-9956-ffa450edef68
---
 .../threads/impl/DefaultThreadPoolManager.java     | 24 +++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java b/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java
index 331d668..65f3059 100644
--- a/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java
+++ b/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java
@@ -318,6 +318,12 @@ public class DefaultThreadPoolManager
 
         private BundleContext bundleContext;
 
+        /**
+         * This lock protects the counter which is volatile so must be
+         * protected.
+         */
+        private Object usagelock = new Object();
+
         public Entry(final String pid, final ThreadPoolConfig config, final String name, final BundleContext bundleContext) {
             this.pid = pid;
             this.config = config;
@@ -337,17 +343,21 @@ public class DefaultThreadPoolManager
         }
 
         public ThreadPoolFacade incUsage() {
-            if ( pool == null ) {
-                pool = new ThreadPoolFacade(new DefaultThreadPool(name, this.config));
+            synchronized (usagelock) {
+                if ( pool == null ) {
+                    pool = new ThreadPoolFacade(new DefaultThreadPool(name, this.config));
+                }
+                this.count++;
+                return pool;
             }
-            this.count++;
-            return pool;
         }
 
         public void decUsage() {
-            this.count--;
-            if ( this.count == 0 ) {
-                this.shutdown();
+            synchronized (usagelock) {
+                this.count--;
+                if ( this.count == 0 ) {
+                    this.shutdown();
+                }
             }
         }
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 06/27: Update to recent snapshot

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit abc3e4c5345ed7bf1bc265e548f3cc6ca23d2da4
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Aug 3 09:01:37 2011 +0000

    Update to recent snapshot
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1153397 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 7ee3e2e..6de90a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>11-SNAPSHOT</version>
+        <version>12-SNAPSHOT</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 20/27: Use latest releases and update to new parent pom

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 6bb11734c821222ea9b61abf7216ec7206db6af1
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Sun Dec 23 06:53:35 2012 +0000

    Use latest releases and update to new parent pom
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1425425 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 3b69b95..39adec1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>13</version>
+        <version>14</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 11/27: SLING-2480 : Add config for maven-sling-plugin to m2e configuration

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 22cbbc798db30382a7fc47c6be71c114a481c516
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed May 16 07:39:13 2012 +0000

    SLING-2480 : Add config for maven-sling-plugin to m2e configuration
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1339038 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 2ba89d2..e1221b6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>12</version>
+        <version>13-SNAPSHOT</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 16/27: SLING-2563 - auto generate label based on a stack trace

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 66cfaeab2c923fdc8643b3bd9706d9ae743c56f4
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Fri Aug 17 20:26:07 2012 +0000

    SLING-2563 - auto generate label based on a stack trace
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1374422 13f79535-47bb-0310-9956-ffa450edef68
---
 .../commons/threads/impl/DefaultThreadPoolManager.java      | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java b/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java
index 3344313..ee86399 100644
--- a/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java
+++ b/src/main/java/org/apache/sling/commons/threads/impl/DefaultThreadPoolManager.java
@@ -161,6 +161,19 @@ public class DefaultThreadPoolManager
         if ( config == null ) {
             throw new IllegalArgumentException("Config must not be null.");
         }
+
+        if ( label == null ) {
+            // generate the label by taking the first external frame off the stack trace
+            final StackTraceElement[] stackTrace = new Exception().getStackTrace();
+            if ( stackTrace != null && stackTrace.length > 1 ) {
+                if ( stackTrace[1].getClassName().equals( this.getClass().getName() ) ) {
+                    label = stackTrace[2].getClassName();
+                } else {
+                    label = stackTrace[1].getClassName();
+                }
+            }
+        }
+
         final String name = "ThreadPool-" + UUID.randomUUID().toString() +
              (label == null ? "" : " (" + label + ")");
         final Entry entry = new Entry(null, config, name);

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.

[sling-org-apache-sling-commons-threads] 22/27: Correct reactor pom and update to parent pom 16

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.commons.threads-3.2.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-threads.git

commit 5b617983e7e22f3a8a36d5fbfb811ccdfcf8372f
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Sun May 5 14:38:24 2013 +0000

    Correct reactor pom and update to parent pom 16
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/commons/threads@1479333 13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index cc0ec5e..6bd993d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.sling</groupId>
         <artifactId>sling</artifactId>
-        <version>15</version>
+        <version>16</version>
         <relativePath>../../../parent/pom.xml</relativePath>
     </parent>
 

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.