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