public synchronized void start(StartContext context) throws StartException {
SERVER_MANAGEMENT_LOGGER.debugf("Starting operation handler service %s", context.getController().getName());
if(executor.getOptionalValue() == null) {
// Create the default executor
final BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<Runnable>(WORK_QUEUE_SIZE);
final ThreadFactory threadFactory = new JBossThreadFactory(new ThreadGroup(getThreadGroupName()), Boolean.FALSE, null, "%G - %t", null, null, AccessController.getContext());
final ThreadPoolExecutor executorService = new ThreadPoolExecutor(POOL_CORE_SIZE, POOL_MAX_SIZE,
60L, TimeUnit.SECONDS, workQueue,
threadFactory);
// Allow the core threads to time out as well
executorService.allowCoreThreadTimeOut(true);