001
014
015 package com.liferay.portal.kernel.concurrent;
016
017
020 public class CallerRunsPolicy implements RejectedExecutionHandler {
021
022 public void rejectedExecution(
023 Runnable runnable, ThreadPoolExecutor threadPoolExecutor) {
024
025 if (threadPoolExecutor.isShutdown()) {
026 return;
027 }
028
029 ThreadPoolHandler threadPoolHandler =
030 threadPoolExecutor.getThreadPoolHandler();
031
032 Throwable throwable = null;
033
034 threadPoolHandler.beforeExecute(Thread.currentThread(), runnable);
035
036 try {
037 runnable.run();
038 }
039 catch (RuntimeException re) {
040 throwable = re;
041
042 throw re;
043 }
044 finally {
045 threadPoolHandler.afterExecute(runnable, throwable);
046 }
047 }
048
049 }