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:22 UTC

[tomcat] branch 10.0.x updated (f984f54 -> 027b4df)

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

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


    from f984f54  Deprecate unused Executor method
     new 4afe23a  Improve comment
     new 027b4df  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 10.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 027b4dfa511c772f2aa08a4a82aac28fc66a89eb
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 e3cabcb..7c05313 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 0e6a013..5778813 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 7963651..1f4b3b6 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 6613f14..30d4a92 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 0341978..aa9eec0 100644
--- a/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/core/LocalStrings_zh_CN.properties
@@ -280,7 +280,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 10.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 4afe23a16e55eeec43daa2037778029774c6f633
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