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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org