Author: rmannibucau
Date: Mon Aug  5 14:28:26 2013
New Revision: 1510498

URL: http://svn.apache.org/r1510498
Log:
TOMEE-1012 AsynchronousPool.RejectedExecutionHandlerClass = ....

Modified:
    
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/ExecutorBuilder.java

Modified: 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/ExecutorBuilder.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/ExecutorBuilder.java?rev=1510498&r1=1510497&r2=1510498&view=diff
==============================================================================
--- 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/ExecutorBuilder.java
 (original)
+++ 
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/ExecutorBuilder.java
 Mon Aug  5 14:28:26 2013
@@ -16,6 +16,7 @@
  */
 package org.apache.openejb.util;
 
+import org.apache.openejb.OpenEJBRuntimeException;
 import org.apache.openejb.loader.Options;
 import org.apache.openejb.util.executor.OfferRejectedExecutionHandler;
 
@@ -98,8 +99,17 @@ public class ExecutorBuilder {
 
         RejectedExecutionHandler handler = this.rejectedExecutionHandler;
         if (handler == null) {
-            final Duration duration = options.get(prefix + ".OfferTimeout", 
new Duration(30, TimeUnit.SECONDS));
-            handler = new OfferRejectedExecutionHandler(duration);
+            final String rejectedExecutionHandlerClass = options.get(prefix + 
".RejectedExecutionHandlerClass", (String) null);
+            if (rejectedExecutionHandlerClass == null) {
+                final Duration duration = options.get(prefix + 
".OfferTimeout", new Duration(30, TimeUnit.SECONDS));
+                handler = new OfferRejectedExecutionHandler(duration);
+            } else {
+                try {
+                    handler = 
RejectedExecutionHandler.class.cast(Thread.currentThread().getContextClassLoader().loadClass(rejectedExecutionHandlerClass).newInstance());
+                } catch (final Exception e) {
+                    throw new OpenEJBRuntimeException(e);
+                }
+            }
         }
 
         final ThreadPoolExecutor threadPoolExecutor = new 
ThreadPoolExecutor(corePoolSize


Reply via email to