https://issues.apache.org/bugzilla/show_bug.cgi?id=56895
Bug ID: 56895
Summary: catalina.bat does not properly compose JAVA_OPTS
Product: Tomcat 7
Version: 7.0.54
Hardware: PC
Status: NEW
Severity: normal
Priority: P2
Component: Integration
Assignee: [email protected]
Reporter: [email protected]
When composing JAVA_OPTS, the current bat script uses this approach:
set JAVA_OPTS=%JAVA_OPTS% %OTHER_STUFF%
However, this leads to issues if the existing JAVA_OPTS had some sort of escape
sequence in it. For example, in my setenv.bat, I add some proxy info:
SET "JAVA_OPTS=-Dhttp.proxyHost=myproxy.localdomain
-Dhttp.nonProxyHosts=*.localdomain^|localhost^|appserver.localdomain"
Using the existing approach, the escape sequence ^| gets processed into |
leaving the next evaluation to treat it as a command pipe, which causes
immediate failure.
If instead you use this approach:
set "JAVA_OPTS=%JAVA_OPTS% %OTHER_STUFF%"
Then those escape sequences are preserved. Here is the patch for version
7.0.54:
--- catalina.bat_ORIGINAL 2014-08-27 18:37:05.173641700 -0400
+++ catalina.bat 2014-08-27 18:06:22.779721000 -0400
@@ -176,12 +176,12 @@
if not exist "%CATALINA_BASE%\conf\logging.properties" goto noJuliConfig
set
LOGGING_CONFIG=-Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
:noJuliConfig
-set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
+set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%"
if not "%LOGGING_MANAGER%" == "" goto noJuliManager
set
LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
:noJuliManager
-set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%
+set "JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%"
rem ----- Execute The Requested Command
---------------------------------------
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]