You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2021/07/21 16:15:51 UTC

[tomcat] branch 9.0.x updated (0857b86 -> 0ccebea)

This is an automated email from the ASF dual-hosted git repository.

markt pushed a change to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git.


    from 0857b86  Deprecate unused Executor method
     new 09a64e8  Improve comment
     new 0ccebea  Remove unnecessary code

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 java/org/apache/catalina/core/LocalStrings.properties       |  1 -
 java/org/apache/catalina/core/LocalStrings_fr.properties    |  1 -
 java/org/apache/catalina/core/LocalStrings_ja.properties    |  1 -
 java/org/apache/catalina/core/LocalStrings_ko.properties    |  1 -
 java/org/apache/catalina/core/LocalStrings_zh_CN.properties |  1 -
 java/org/apache/catalina/core/StandardThreadExecutor.java   | 12 +++---------
 java/org/apache/tomcat/util/threads/ThreadPoolExecutor.java |  4 ++++
 7 files changed, 7 insertions(+), 14 deletions(-)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[tomcat] 02/02: Remove unnecessary code

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 0ccebeab3e265ac19c32c457d50ce6b5864bcb05
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 21 17:08:53 2021 +0100

    Remove unnecessary code
---
 java/org/apache/catalina/core/LocalStrings.properties       |  1 -
 java/org/apache/catalina/core/LocalStrings_fr.properties    |  1 -
 java/org/apache/catalina/core/LocalStrings_ja.properties    |  1 -
 java/org/apache/catalina/core/LocalStrings_ko.properties    |  1 -
 java/org/apache/catalina/core/LocalStrings_zh_CN.properties |  1 -
 java/org/apache/catalina/core/StandardThreadExecutor.java   | 12 +++---------
 6 files changed, 3 insertions(+), 14 deletions(-)

diff --git a/java/org/apache/catalina/core/LocalStrings.properties b/java/org/apache/catalina/core/LocalStrings.properties
index 2011e68..03e9351 100644
--- a/java/org/apache/catalina/core/LocalStrings.properties
+++ b/java/org/apache/catalina/core/LocalStrings.properties
@@ -280,7 +280,6 @@ standardService.start.name=Starting service [{0}]
 standardService.stop.name=Stopping service [{0}]
 
 standardThreadExecutor.notStarted=The executor has not been started
-standardThreadExecutor.queueFull=The executor's work queue is full
 
 standardWrapper.allocate=Error allocating a servlet instance
 standardWrapper.allocateException=Allocate exception for servlet [{0}]
diff --git a/java/org/apache/catalina/core/LocalStrings_fr.properties b/java/org/apache/catalina/core/LocalStrings_fr.properties
index eba024d..4432255 100644
--- a/java/org/apache/catalina/core/LocalStrings_fr.properties
+++ b/java/org/apache/catalina/core/LocalStrings_fr.properties
@@ -280,7 +280,6 @@ standardService.start.name=Démarrage du service [{0}]
 standardService.stop.name=Arrêt du service [{0}]
 
 standardThreadExecutor.notStarted=L'exécuteur n'a pas encore été démarré
-standardThreadExecutor.queueFull=La file de travail de l'exécuteur est pleine
 
 standardWrapper.allocate=Erreur d'allocation à une instance de servlet
 standardWrapper.allocateException=Exception lors de l''allocation pour la servlet [{0}]
diff --git a/java/org/apache/catalina/core/LocalStrings_ja.properties b/java/org/apache/catalina/core/LocalStrings_ja.properties
index 7ed622b..9c58eba 100644
--- a/java/org/apache/catalina/core/LocalStrings_ja.properties
+++ b/java/org/apache/catalina/core/LocalStrings_ja.properties
@@ -280,7 +280,6 @@ standardService.start.name=サービス [{0}] を起動します
 standardService.stop.name=サービス [{0}] を停止します
 
 standardThreadExecutor.notStarted=エグゼキュターは開始ししていません。
-standardThreadExecutor.queueFull=エグゼキュターの作業キューは満杯です。
 
 standardWrapper.allocate=サーブレットインスタンスを割り当て中のエラーです
 standardWrapper.allocateException=サーブレット [{0}] に例外を割り当てます
diff --git a/java/org/apache/catalina/core/LocalStrings_ko.properties b/java/org/apache/catalina/core/LocalStrings_ko.properties
index cc36efc..5e88de7 100644
--- a/java/org/apache/catalina/core/LocalStrings_ko.properties
+++ b/java/org/apache/catalina/core/LocalStrings_ko.properties
@@ -280,7 +280,6 @@ standardService.start.name=서비스 [{0}]을(를) 시작합니다.
 standardService.stop.name=서비스 [{0}]을(를) 중지시킵니다.
 
 standardThreadExecutor.notStarted=Executor가 아직 시작되지 않았습니다.
-standardThreadExecutor.queueFull=해당 Executor의 작업 큐가 꽉 찼습니다.
 
 standardWrapper.allocate=서블릿 인스턴스를 할당하는 중 오류 발생
 standardWrapper.allocateException=서블릿 [{0}]을(를) 위해 할당하던 중 예외 발생
diff --git a/java/org/apache/catalina/core/LocalStrings_zh_CN.properties b/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
index de75d8f..43252f5 100644
--- a/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
@@ -281,7 +281,6 @@ standardService.start.name=正在启动服务[{0}]
 standardService.stop.name=正在停止服务[{0}]
 
 standardThreadExecutor.notStarted=执行器尚未启动
-standardThreadExecutor.queueFull=执行者的工作队列已满
 
 standardWrapper.allocate=分配一个servlet实例错误
 standardWrapper.allocateException=分配异常的servlet [{0}]
diff --git a/java/org/apache/catalina/core/StandardThreadExecutor.java b/java/org/apache/catalina/core/StandardThreadExecutor.java
index 5e7d4db..09ce5c6 100644
--- a/java/org/apache/catalina/core/StandardThreadExecutor.java
+++ b/java/org/apache/catalina/core/StandardThreadExecutor.java
@@ -16,7 +16,6 @@
  */
 package org.apache.catalina.core;
 
-import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.catalina.Executor;
@@ -171,14 +170,9 @@ public class StandardThreadExecutor extends LifecycleMBeanBase
     @Override
     public void execute(Runnable command) {
         if (executor != null) {
-            try {
-                executor.execute(command);
-            } catch (RejectedExecutionException rx) {
-                //there could have been contention around the queue
-                if (!((TaskQueue) executor.getQueue()).force(command)) {
-                    throw new RejectedExecutionException(sm.getString("standardThreadExecutor.queueFull"));
-                }
-            }
+            // Note any RejectedExecutionException due to the use of TaskQueue
+            // will be handled by the o.a.t.u.threads.ThreadPoolExecutor
+            executor.execute(command);
         } else {
             throw new IllegalStateException(sm.getString("standardThreadExecutor.notStarted"));
         }

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[tomcat] 01/02: Improve comment

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 09a64e84b61b32b4d738d21e43644eb103a32611
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 21 17:05:19 2021 +0100

    Improve comment
---
 java/org/apache/tomcat/util/threads/ThreadPoolExecutor.java | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/java/org/apache/tomcat/util/threads/ThreadPoolExecutor.java b/java/org/apache/tomcat/util/threads/ThreadPoolExecutor.java
index 2b9e931..3038baa 100644
--- a/java/org/apache/tomcat/util/threads/ThreadPoolExecutor.java
+++ b/java/org/apache/tomcat/util/threads/ThreadPoolExecutor.java
@@ -176,6 +176,10 @@ public class ThreadPoolExecutor extends java.util.concurrent.ThreadPoolExecutor
             super.execute(command);
         } catch (RejectedExecutionException rx) {
             if (super.getQueue() instanceof TaskQueue) {
+                // If the Executor is close to maximum pool size, concurrent
+                // calls to execute() may result (due to Tomcat's use of
+                // TaskQueue) in some tasks being rejected rather than queued.
+                // If this happens, add them to the queue.
                 final TaskQueue queue = (TaskQueue)super.getQueue();
                 try {
                     if (!queue.force(command, timeout, unit)) {

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org