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:32:19 UTC

[tomcat] branch 8.5.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 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


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

commit ccf0a9b246427014f59aaf904ad5441b343e2976
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
---
 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 5df6701..dbfcc1b 100644
--- a/java/org/apache/catalina/startup/Catalina.java
+++ b/java/org/apache/catalina/startup/Catalina.java
@@ -792,11 +792,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 ff890a5..a56ee23 100644
--- a/java/org/apache/catalina/startup/ContextConfig.java
+++ b/java/org/apache/catalina/startup/ContextConfig.java
@@ -674,7 +674,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();
@@ -695,14 +695,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 5daf876..0197b39 100644
--- a/java/org/apache/catalina/startup/LocalStrings.properties
+++ b/java/org/apache/catalina/startup/LocalStrings.properties
@@ -57,6 +57,7 @@ contextConfig.jndiUrlNotDirContextConn=The connection created for URL [{0}] was
 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}]
@@ -74,8 +75,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 e27d107..47ff2bf 100644
--- a/java/org/apache/catalina/startup/LocalStrings_es.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_es.properties
@@ -63,8 +63,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 347862a..8fdab27 100644
--- a/java/org/apache/catalina/startup/LocalStrings_fr.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_fr.properties
@@ -70,8 +70,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 ee9f4ad..f7d633a 100644
--- a/java/org/apache/catalina/startup/LocalStrings_ja.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_ja.properties
@@ -70,8 +70,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 3a22667..26afe9f 100644
--- a/java/org/apache/catalina/startup/LocalStrings_ko.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_ko.properties
@@ -70,8 +70,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 ac0036e..5fa3049 100644
--- a/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
+++ b/java/org/apache/catalina/startup/LocalStrings_zh_CN.properties
@@ -70,8 +70,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 1cf1f14..818da19 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 8.5.57 (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 8.5.56 (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