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(
035 Thread.currentThread(), runnable);
036
037 try {
038 runnable.run();
039 }
040 catch (RuntimeException re) {
041 throwable = re;
042
043 throw re;
044 }
045 finally {
046 threadPoolHandler.afterExecute(runnable, throwable);
047 }
048 }
049
050 }