test_class.file: dubbo-common/src/test/java/org/apache/dubbo/common/threadpool/support/AbortPolicyWithReportTest.java
test_class.identifier: AbortPolicyWithReportTest
test_case.body: @Test
      public void jStackDumpTest() throws InterruptedException {
          URL url = URL.valueOf("dubbo://admin:hello1234@10.20.130.230:20880/context/path?dump.directory=/tmp&version=1.0.0&application=morgan&noValue");
          AbortPolicyWithReport abortPolicyWithReport = new AbortPolicyWithReport("Test", url);
  
          try {
              abortPolicyWithReport.rejectedExecution(new Runnable() {
                  @Override
                  public void run() {
                      System.out.println("hello");
                  }
              }, (ThreadPoolExecutor) Executors.newFixedThreadPool(1));
          } catch (RejectedExecutionException rj) {
              // ignore
          }
  
          Thread.sleep(1000);
  
      }
test_case.class_method_signature: AbortPolicyWithReportTest.jStackDumpTest()
test_case.full_signature: @Test public void jStackDumpTest()
test_case.identifier: jStackDumpTest
test_case.invocations: valueOf rejectedExecution println newFixedThreadPool sleep
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void jStackDumpTest()
focal_class.declarator: logger = LoggerFactory.getLogger(AbortPolicyWithReport.class)
focal_class.modifier: protected static final
focal_class.original_string: protected static final Logger logger = LoggerFactory.getLogger(AbortPolicyWithReport.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: threadName
focal_class.modifier: private final
focal_class.original_string: private final String threadName;
focal_class.type: String
focal_class.var_name: threadName
focal_class.declarator: url
focal_class.modifier: private final
focal_class.original_string: private final URL url;
focal_class.type: URL
focal_class.var_name: url
focal_class.declarator: lastPrintTime = 0
focal_class.modifier: private static volatile
focal_class.original_string: private static volatile long lastPrintTime = 0;
focal_class.type: long
focal_class.var_name: lastPrintTime
focal_class.declarator: TEN_MINUTES_MILLS = 10 * 60 * 1000
focal_class.modifier: private static final
focal_class.original_string: private static final long TEN_MINUTES_MILLS = 10 * 60 * 1000;
focal_class.type: long
focal_class.var_name: TEN_MINUTES_MILLS
focal_class.declarator: OS_WIN_PREFIX = "win"
focal_class.modifier: private static final
focal_class.original_string: private static final String OS_WIN_PREFIX = "win";
focal_class.type: String
focal_class.var_name: OS_WIN_PREFIX
focal_class.declarator: OS_NAME_KEY = "os.name"
focal_class.modifier: private static final
focal_class.original_string: private static final String OS_NAME_KEY = "os.name";
focal_class.type: String
focal_class.var_name: OS_NAME_KEY
focal_class.declarator: WIN_DATETIME_FORMAT = "yyyy-MM-dd_HH-mm-ss"
focal_class.modifier: private static final
focal_class.original_string: private static final String WIN_DATETIME_FORMAT = "yyyy-MM-dd_HH-mm-ss";
focal_class.type: String
focal_class.var_name: WIN_DATETIME_FORMAT
focal_class.declarator: DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd_HH:mm:ss"
focal_class.modifier: private static final
focal_class.original_string: private static final String DEFAULT_DATETIME_FORMAT = "yyyy-MM-dd_HH:mm:ss";
focal_class.type: String
focal_class.var_name: DEFAULT_DATETIME_FORMAT
focal_class.declarator: guard = new Semaphore(1)
focal_class.modifier: private static
focal_class.original_string: private static Semaphore guard = new Semaphore(1);
focal_class.type: Semaphore
focal_class.var_name: guard
focal_class.file: dubbo-common/src/main/java/org/apache/dubbo/common/threadpool/support/AbortPolicyWithReport.java
focal_class.identifier: AbortPolicyWithReport
focal_class.class_method_signature: AbortPolicyWithReport.AbortPolicyWithReport(String threadName, URL url)
focal_class.full_signature: public  AbortPolicyWithReport(String threadName, URL url)
focal_class.identifier: AbortPolicyWithReport
focal_class.modifiers: public
focal_class.parameters: (String threadName, URL url)
focal_class.signature:  AbortPolicyWithReport(String threadName, URL url)
focal_class.class_method_signature: AbortPolicyWithReport.rejectedExecution(Runnable r, ThreadPoolExecutor e)
focal_class.full_signature: @Override public void rejectedExecution(Runnable r, ThreadPoolExecutor e)
focal_class.identifier: rejectedExecution
focal_class.modifiers: @Override public
focal_class.parameters: (Runnable r, ThreadPoolExecutor e)
focal_class.return: void
focal_class.signature: void rejectedExecution(Runnable r, ThreadPoolExecutor e)
focal_class.class_method_signature: AbortPolicyWithReport.dispatchThreadPoolExhaustedEvent(String msg)
focal_class.full_signature: public void dispatchThreadPoolExhaustedEvent(String msg)
focal_class.identifier: dispatchThreadPoolExhaustedEvent
focal_class.modifiers: public
focal_class.parameters: (String msg)
focal_class.return: void
focal_class.signature: void dispatchThreadPoolExhaustedEvent(String msg)
focal_class.class_method_signature: AbortPolicyWithReport.dumpJStack()
focal_class.full_signature: private void dumpJStack()
focal_class.identifier: dumpJStack
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void dumpJStack()
focal_class.superclass: extends ThreadPoolExecutor.AbortPolicy
focal_method.body: @Override
      public void rejectedExecution(Runnable r, ThreadPoolExecutor e) {
          String msg = String.format("Thread pool is EXHAUSTED!" +
                  " Thread Name: %s, Pool Size: %d (active: %d, core: %d, max: %d, largest: %d), Task: %d (completed: "
                  + "%d)," +
                  " Executor status:(isShutdown:%s, isTerminated:%s, isTerminating:%s), in %s://%s:%d!",
              threadName, e.getPoolSize(), e.getActiveCount(), e.getCorePoolSize(), e.getMaximumPoolSize(),
              e.getLargestPoolSize(),
              e.getTaskCount(), e.getCompletedTaskCount(), e.isShutdown(), e.isTerminated(), e.isTerminating(),
              url.getProtocol(), url.getIp(), url.getPort());
          logger.warn(msg);
          dumpJStack();
          dispatchThreadPoolExhaustedEvent(msg);
          throw new RejectedExecutionException(msg);
      }
focal_method.class_method_signature: AbortPolicyWithReport.rejectedExecution(Runnable r, ThreadPoolExecutor e)
focal_method.full_signature: @Override public void rejectedExecution(Runnable r, ThreadPoolExecutor e)
focal_method.identifier: rejectedExecution
focal_method.invocations: format getPoolSize getActiveCount getCorePoolSize getMaximumPoolSize getLargestPoolSize getTaskCount getCompletedTaskCount isShutdown isTerminated isTerminating getProtocol getIp getPort warn dumpJStack dispatchThreadPoolExhaustedEvent
focal_method.modifiers: @Override public
focal_method.parameters: (Runnable r, ThreadPoolExecutor e)
focal_method.return: void
focal_method.signature: void rejectedExecution(Runnable r, ThreadPoolExecutor e)