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 2020/06/04 20:28:41 UTC

[tomcat] branch 9.0.x updated: Play a little more nicely with read-only file systems

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


The following commit(s) were added to refs/heads/9.0.x by this push:
     new 194bc7e  Play a little more nicely with read-only file systems
194bc7e is described below

commit 194bc7e174133034b557e934abee8ddbf11d82d6
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Jun 4 21:23:07 2020 +0100

    Play a little more nicely with read-only file systems
    
    s
---
 java/org/apache/catalina/startup/Catalina.java          |  8 ++++----
 java/org/apache/catalina/startup/ContextConfig.java     | 17 ++++++++++-------
 .../org/apache/catalina/startup/LocalStrings.properties |  3 +--
 .../apache/catalina/startup/LocalStrings_es.properties  |  2 --
 .../apache/catalina/startup/LocalStrings_fr.properties  |  2 --
 .../apache/catalina/startup/LocalStrings_ja.properties  |  2 --
 .../apache/catalina/startup/LocalStrings_ko.properties  |  2 --
 .../catalina/startup/LocalStrings_zh_CN.properties      |  2 --
 webapps/docs/changelog.xml                              | 10 ++++++++++
 9 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/java/org/apache/catalina/startup/Catalina.java b/java/org/apache/catalina/startup/Catalina.java
index 72fac48..00c820e 100644
--- a/java/org/apache/catalina/startup/Catalina.java
+++ b/java/org/apache/catalina/startup/Catalina.java
@@ -733,11 +733,11 @@ public class Catalina {
     }
 
 
+    /**
+     * @deprecated unused. Will be removed in Tomcat 10 onwards.
+     */
+    @Deprecated
     protected void initDirs() {
-        String temp = System.getProperty("java.io.tmpdir");
-        if (temp == null || (!(new File(temp)).isDirectory())) {
-            log.error(sm.getString("embedded.notmp", temp));
-        }
     }
 
 
diff --git a/java/org/apache/catalina/startup/ContextConfig.java b/java/org/apache/catalina/startup/ContextConfig.java
index 4b2663e..2c09a15 100644
--- a/java/org/apache/catalina/startup/ContextConfig.java
+++ b/java/org/apache/catalina/startup/ContextConfig.java
@@ -672,7 +672,7 @@ public class ContextConfig implements LifecycleListener {
     protected void antiLocking() {
 
         if ((context instanceof StandardContext)
-            && ((StandardContext) context).getAntiResourceLocking()) {
+                && ((StandardContext) context).getAntiResourceLocking()) {
 
             Host host = (Host) context.getParent();
             String docBase = context.getDocBase();
@@ -693,14 +693,17 @@ public class ContextConfig implements LifecycleListener {
             ContextName cn = new ContextName(path, context.getWebappVersion());
             docBase = cn.getBaseName();
 
+            String tmp = System.getProperty("java.io.tmpdir");
+            File tmpFile = new File(tmp);
+            if (!tmpFile.isDirectory()) {
+                log.error(sm.getString("contextConfig.noAntiLocking", tmp, context.getName()));
+                return;
+            }
+
             if (originalDocBase.toLowerCase(Locale.ENGLISH).endsWith(".war")) {
-                antiLockingDocBase = new File(
-                        System.getProperty("java.io.tmpdir"),
-                        deploymentCount++ + "-" + docBase + ".war");
+                antiLockingDocBase = new File(tmpFile, deploymentCount++ + "-" + docBase + ".war");
             } else {
-                antiLockingDocBase = new File(
-                        System.getProperty("java.io.tmpdir"),
-                        deploymentCount++ + "-" + docBase);
+                antiLockingDocBase = new File(tmpFile, deploymentCount++ + "-" + docBase);
             }
             antiLockingDocBase = antiLockingDocBase.getAbsoluteFile();
 
diff --git a/java/org/apache/catalina/startup/LocalStrings.properties b/java/org/apache/catalina/startup/LocalStrings.properties
index c857b48..1c897e7 100644
--- a/java/org/apache/catalina/startup/LocalStrings.properties
+++ b/java/org/apache/catalina/startup/LocalStrings.properties
@@ -66,6 +66,7 @@ contextConfig.jarFile=Unable to process Jar [{0}] for annotations
 contextConfig.jspFile.error=JSP file [{0}] must start with a ''/''
 contextConfig.jspFile.warning=WARNING: JSP file [{0}] must start with a ''/'' in Servlet 2.4
 contextConfig.missingRealm=No Realm has been configured to authenticate against
+contextConfig.noAntiLocking=The value [{0}] configured for java.io.tmpdir does not point to a valid directory. The antiResourceLocking setting for the web application [{1}] will be ignored.
 contextConfig.processAnnotationsDir.debug=Scanning directory for class files with annotations [{0}]
 contextConfig.processAnnotationsJar.debug=Scanning jar file for class files with annotations [{0}]
 contextConfig.processAnnotationsWebDir.debug=Scanning web application directory for class files with annotations [{0}]
@@ -84,8 +85,6 @@ contextConfig.unknownUrlProtocol=The URL protocol [{0}] was not recognised durin
 contextConfig.urlPatternValue=Both the urlPatterns and value attributes were set for the [{0}] annotation on class [{1}]
 contextConfig.xmlSettings=Context [{0}] will parse web.xml and web-fragment.xml files with validation:[{1}] and namespaceAware:[{2}]
 
-embedded.notmp=Cannot find specified temporary folder at [{0}]
-
 engineConfig.cce=Lifecycle event data object [{0}] is not an Engine
 engineConfig.start=EngineConfig: Processing START
 engineConfig.stop=EngineConfig: Processing STOP
diff --git a/java/org/apache/catalina/startup/LocalStrings_es.properties b/java/org/apache/catalina/startup/LocalStrings_es.properties
index 7afffab..486245c 100644
--- a/java/org/apache/catalina/startup/LocalStrings_es.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_es.properties
@@ -61,8 +61,6 @@ contextConfig.unknownUrlProtocol=El protocolo de URL [{0}] no fue reconocido dur
 contextConfig.urlPatternValue=Ambis valores de urlPatterns y atributo fuerno puestos para anotación de [{0}] de la clase [{1}]
 contextConfig.xmlSettings=El contexto [{0}] analizará los ficheros web.xml y web-fragment.xml con validación:[{1}] y namespaceAware:[{2}]
 
-embedded.notmp=No puedo hallar carpeta temporal especificada en [{0}]
-
 engineConfig.cce=El objeto de los datos de evento de ciclo de vida (Lifecycle event data object) [{0}] no es un motor (engine)
 engineConfig.start="EngineConfig": Procesando "START"
 engineConfig.stop="EngineConfig": Procesando "STOP"
diff --git a/java/org/apache/catalina/startup/LocalStrings_fr.properties b/java/org/apache/catalina/startup/LocalStrings_fr.properties
index 3371e78..44c33aa 100644
--- a/java/org/apache/catalina/startup/LocalStrings_fr.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_fr.properties
@@ -84,8 +84,6 @@ contextConfig.unknownUrlProtocol=Le protocole de l''URL [{0}] n''a pas été rec
 contextConfig.urlPatternValue=A la fois les attributs urlPatterns et la valeur ont été fixés pour l''annotation [{0}] de la classe [{1}]
 contextConfig.xmlSettings=Le contexte [{0}] va traiter les fichiers web.xml et le web-fragment.xml avec la validation [{1}] et namespaceAware [{2}]
 
-embedded.notmp=Impossible de trouver le répertoire temporaire à [{0}]
-
 engineConfig.cce=L''objet donnée évènement cycle de vie (Lifecycle event data object) [{0}] n''est pas un moteur (engine)
 engineConfig.start="EngineConfig" : Traitement du "START"
 engineConfig.stop="EngineConfig" : Traitement du "STOP"
diff --git a/java/org/apache/catalina/startup/LocalStrings_ja.properties b/java/org/apache/catalina/startup/LocalStrings_ja.properties
index 74f3ea4..6e4d74e 100644
--- a/java/org/apache/catalina/startup/LocalStrings_ja.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_ja.properties
@@ -84,8 +84,6 @@ contextConfig.unknownUrlProtocol=アノテーション処理中にURLプロト
 contextConfig.urlPatternValue=urlPatterns属性とvalue属性の両方が、クラス[{1}]の[{0}]アノテーションに対して設定されています。
 contextConfig.xmlSettings=Context[{0}]は、validation:[{1}]およびnamespaceAware:[{2}]を使用してweb.xmlおよびweb-fragment.xmlファイルを解析します
 
-embedded.notmp=[{0}]に指定された一時フォルダが見つかりません
-
 engineConfig.cce=ライフサイクルイベントデータオブジェクト [{0}] はエンジンではありません
 engineConfig.start=EngineConfig: 処理を開始します
 engineConfig.stop=EngineConfig: 処理を停止します
diff --git a/java/org/apache/catalina/startup/LocalStrings_ko.properties b/java/org/apache/catalina/startup/LocalStrings_ko.properties
index ddc1831..faab64c 100644
--- a/java/org/apache/catalina/startup/LocalStrings_ko.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_ko.properties
@@ -84,8 +84,6 @@ contextConfig.unknownUrlProtocol=Annotation 처리 중, 인식되지 않는 프
 contextConfig.urlPatternValue=클래스 [{1}]의 [{0}] annotation을 위해, urlPatterns와 value 속성, 둘 다 설정되었습니다.
 contextConfig.xmlSettings=컨텍스트 [{0}]이(가), validation:[{1}]와(과) namespaceAware:[{2}]을 사용하여, web.xml과 web-fragment.xml 파일들을 파싱합니다.
 
-embedded.notmp=[{0}] 위치로 지정된 임시 폴더를 찾을 수 없습니다.
-
 engineConfig.cce=Lifecycle 이벤트 데이터 객체 [{0}]이(가) Engine 객체가 아닙니다.
 engineConfig.start=EngineConfig: START 처리 중
 engineConfig.stop=EngineConfig: STOP 처리 중
diff --git a/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
index 44739f5..c35840c 100644
--- a/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
@@ -83,8 +83,6 @@ contextConfig.unknownUrlProtocol=注解解析过程中,URL协议[{0}]未识别
 contextConfig.urlPatternValue=类文件[{1}]的urlPatterns和值属性上同时设置了注解[{0}]
 contextConfig.xmlSettings=上下文[{0}]将解析web.xml和web-fragment.xml文件,验证为:[{1}],命名空间感知为(:[{2}]
 
-embedded.notmp=在[{0}]找不到指定的临时文件夹
-
 engineConfig.cce=生命周期事件数据对象[{0}]不是一个引擎(Engine)
 engineConfig.start=EngineConfig:处理开始。
 engineConfig.stop=引擎配置:处理进程停止
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 21e0b64..4fbd564 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -45,6 +45,16 @@
   issues do not "pop up" wrt. others).
 -->
 <section name="Tomcat 9.0.37 (markt)" rtext="in development">
+  <subsection name="Catalina">
+    <changelog>
+      <add>
+        Remove the error message on start if <code>java.io.tmpdir</code> is
+        missing and add an explicit error message on application deployment when
+        the sole feature that depends on it (anti-resource locking) is
+        configured and can't be used. (markt)
+      </add>
+    </changelog>
+  </subsection>
 </section>
 <section name="Tomcat 9.0.36 (markt)" rtext="release in progress">
   <subsection name="Catalina">


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