class EnhancedQueueExecutorProxy extends EnhancedQueueExecutor {

    public EnhancedQueueExecutorProxy(final Builder builder) {
        super(builder);
    }

    public EnhancedQueueExecutorProxy(final EnhancedQueueExecutor executor) {
        this(new EnhancedQueueExecutor.Builder()
                .setCorePoolSize(executor.getCorePoolSize())
                .setMaximumPoolSize(executor.getMaximumPoolSize())
                .setKeepAliveTime(executor.getKeepAliveTime())
                .setThreadFactory(executor.getThreadFactory())
                .setTerminationTask(executor.getTerminationTask())
                .setRegisterMBean(true)
                .setMBeanName(executor.getMBeanName()));
    }

    @Override
    public void execute(Runnable runnable) {<FILL_FUNCTION_BODY>}
}

        EnhancedRunnable enhanceTask = EnhancedRunnable.of(runnable, this);
        AwareManager.execute(this, enhanceTask);
        try {
            super.execute(enhanceTask);
        } catch (Throwable e) {
            Throwable[] suppressedExceptions = e.getSuppressed();
            for (Throwable t : suppressedExceptions) {
                if (t instanceof RejectedExecutionException) {
                    AwareManager.beforeReject(enhanceTask, this);
                    return;
                }
            }
            throw e;
        }
    
<methods>public void allowCoreThreadTimeOut(boolean) ,public boolean allowsCoreThreadTimeOut() ,public boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException,public void execute(java.lang.Runnable) ,public int getActiveCount() ,public long getCompletedTaskCount() ,public int getCorePoolSize() ,public java.lang.Thread.UncaughtExceptionHandler getExceptionHandler() ,public float getGrowthResistance() ,public java.util.concurrent.Executor getHandoffExecutor() ,public long getKeepAliveTime(java.util.concurrent.TimeUnit) ,public java.time.Duration getKeepAliveTime() ,public int getLargestPoolSize() ,public int getLargestQueueSize() ,public java.lang.String getMBeanName() ,public int getMaximumPoolSize() ,public int getMaximumQueueSize() ,public org.jboss.threads.EnhancedQueueExecutor.MXBeanImpl getMxBean() ,public int getPoolSize() ,public int getQueueSize() ,public long getRejectedTaskCount() ,public java.lang.Thread[] getRunningThreads() ,public long getSubmittedTaskCount() ,public java.lang.Runnable getTerminationTask() ,public java.util.concurrent.ThreadFactory getThreadFactory() ,public StandardThreadPoolMXBean getThreadPoolMXBean() ,public boolean isShutdown() ,public boolean isTerminated() ,public boolean isTerminating() ,public int prestartAllCoreThreads() ,public boolean prestartCoreThread() ,public void setCorePoolSize(int) ,public void setExceptionHandler(java.lang.Thread.UncaughtExceptionHandler) ,public void setGrowthResistance(float) ,public void setHandoffExecutor(java.util.concurrent.Executor) ,public void setKeepAliveTime(long, java.util.concurrent.TimeUnit) ,public void setKeepAliveTime(java.time.Duration) ,public void setMaximumPoolSize(int) ,public void setMaximumQueueSize(int) ,public void setTerminationTask(java.lang.Runnable) ,public void shutdown() ,public void shutdown(boolean) ,public List<java.lang.Runnable> shutdownNow() <variables>static final java.lang.Runnable ACCEPTED,private static final int AT_NO,private static final int AT_SHUTDOWN,private static final int AT_YES,static final java.util.concurrent.Executor DEFAULT_HANDLER,public static final boolean DISABLE_HINT,static final boolean DISABLE_MBEAN,private static final int EXE_CREATE_THREAD,private static final int EXE_OK,private static final int EXE_REJECT_QUEUE_FULL,private static final int EXE_REJECT_SHUTDOWN,static final java.lang.Runnable EXIT,static final java.lang.Runnable GAVE_UP,static final boolean NO_QUEUE_LIMIT,private static final java.lang.Thread[] NO_THREADS,static final int PARK_SPINS,static final boolean REGISTER_MBEAN,static final org.jboss.threads.EnhancedQueueExecutor.QNode TERMINATE_COMPLETE,static final Waiter TERMINATE_COMPLETE_WAITER,static final org.jboss.threads.EnhancedQueueExecutor.QNode TERMINATE_REQUESTED,private static final long TS_ALLOW_CORE_TIMEOUT,private static final long TS_CORE_SHIFT,private static final long TS_CURRENT_SHIFT,private static final long TS_MAX_SHIFT,private static final long TS_SHUTDOWN_COMPLETE,private static final long TS_SHUTDOWN_INTERRUPT,private static final long TS_SHUTDOWN_REQUESTED,private static final long TS_THREAD_CNT_MASK,static final boolean UPDATE_ACTIVE_COUNT,static final boolean UPDATE_STATISTICS,static final boolean UPDATE_TAIL,static final java.lang.Runnable WAITING,static final int YIELD_FACTOR,private final non-sealed java.security.AccessControlContext acc,volatile int activeCount,private static final non-sealed long activeCountOffset,private final java.util.concurrent.atomic.LongAdder completedTaskCounter,volatile java.lang.Thread.UncaughtExceptionHandler exceptionHandler,volatile float growthResistance,private final non-sealed java.lang.Object handle,volatile java.util.concurrent.Executor handoffExecutor,private final non-sealed java.lang.String mBeanName,private final non-sealed org.jboss.threads.EnhancedQueueExecutor.MXBeanImpl mxBean,volatile int peakQueueSize,private static final non-sealed long peakQueueSizeOffset,volatile int peakThreadCount,private static final non-sealed long peakThreadCountOffset,volatile long queueSize,private static final non-sealed long queueSizeOffset,private final java.util.concurrent.atomic.LongAdder rejectedTaskCounter,private final Set<java.lang.Thread> runningThreads,static volatile int sequence,private static final non-sealed java.lang.Object sequenceBase,private static final non-sealed long sequenceOffset,private final java.util.concurrent.atomic.LongAdder spinMisses,private final java.util.concurrent.atomic.LongAdder submittedTaskCounter,volatile java.lang.Runnable terminationTask,volatile Waiter terminationWaiters,private static final non-sealed long terminationWaitersOffset,private final non-sealed java.util.concurrent.ThreadFactory threadFactory,volatile long timeoutNanos