From: kkolinko Date: Sun, 3 Jan 2010 14:02:31 +0000 (+0000) Subject: Followup to r895191 X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=5510bb7000d24f4cd40a77964fba00e3d4639729;p=tomcat7.0 Followup to r895191 Fix calling Tomcat Windows scripts from a directory containing '&' character, and allow to use this character in the names of CATALINA_HOME/CATALINA_BASE directories. https://issues.apache.org/bugzilla/show_bug.cgi?id=48464#c4 Note, that both 'set' and 'echo' commands have to use quotes. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@895392 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/bin/catalina.bat b/bin/catalina.bat index 542436077..6fb4de144 100755 --- a/bin/catalina.bat +++ b/bin/catalina.bat @@ -74,12 +74,12 @@ rem $Id$ rem --------------------------------------------------------------------------- rem Guess CATALINA_HOME if not defined -set CURRENT_DIR=%cd% +set "CURRENT_DIR=%cd%" if not "%CATALINA_HOME%" == "" goto gotHome -set CATALINA_HOME=%CURRENT_DIR% +set "CATALINA_HOME=%CURRENT_DIR%" if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome cd .. -set CATALINA_HOME=%cd% +set "CATALINA_HOME=%cd%" cd "%CURRENT_DIR%" :gotHome if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome @@ -102,11 +102,11 @@ if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat" rem Get standard Java environment variables if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath -echo Cannot find %CATALINA_HOME%\bin\setclasspath.bat +echo Cannot find "%CATALINA_HOME%\bin\setclasspath.bat" echo This file is needed to run this program goto end :okSetclasspath -set BASEDIR=%CATALINA_HOME% +set "BASEDIR=%CATALINA_HOME%" call "%CATALINA_HOME%\bin\setclasspath.bat" %1 if errorlevel 1 goto end @@ -114,25 +114,25 @@ rem Add on extra jar file to CLASSPATH rem Note that there are no quotes as we do not want to introduce random rem quotes into the CLASSPATH if "%CLASSPATH%" == "" goto emptyClasspath -set CLASSPATH=%CLASSPATH%; +set "CLASSPATH=%CLASSPATH%;" :emptyClasspath -set CLASSPATH=%CLASSPATH%%CATALINA_HOME%\bin\bootstrap.jar +set "CLASSPATH=%CLASSPATH%%CATALINA_HOME%\bin\bootstrap.jar" if not "%CATALINA_BASE%" == "" goto gotBase -set CATALINA_BASE=%CATALINA_HOME% +set "CATALINA_BASE=%CATALINA_HOME%" :gotBase if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir -set CATALINA_TMPDIR=%CATALINA_BASE%\temp +set "CATALINA_TMPDIR=%CATALINA_BASE%\temp" :gotTmpdir rem Add tomcat-juli.jar to classpath rem tomcat-juli.jar can be over-ridden per instance if not exist "%CATALINA_BASE%\bin\tomcat-juli.jar" goto juliClasspathHome -set CLASSPATH=%CLASSPATH%;%CATALINA_BASE%\bin\tomcat-juli.jar +set "CLASSPATH=%CLASSPATH%;%CATALINA_BASE%\bin\tomcat-juli.jar" goto juliClasspathDone :juliClasspathHome -set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\tomcat-juli.jar +set "CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\tomcat-juli.jar" :juliClasspathDone if not "%LOGGING_CONFIG%" == "" goto noJuliConfig @@ -149,16 +149,16 @@ set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER% rem ----- Execute The Requested Command --------------------------------------- -echo Using CATALINA_BASE: %CATALINA_BASE% -echo Using CATALINA_HOME: %CATALINA_HOME% -echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR% +echo Using CATALINA_BASE: "%CATALINA_BASE%" +echo Using CATALINA_HOME: "%CATALINA_HOME%" +echo Using CATALINA_TMPDIR: "%CATALINA_TMPDIR%" if ""%1"" == ""debug"" goto use_jdk -echo Using JRE_HOME: %JRE_HOME% +echo Using JRE_HOME: "%JRE_HOME%" goto java_dir_displayed :use_jdk -echo Using JAVA_HOME: %JAVA_HOME% +echo Using JAVA_HOME: "%JAVA_HOME%" :java_dir_displayed -echo Using CLASSPATH: %CLASSPATH% +echo Using CLASSPATH: "%CLASSPATH%" set _EXECJAVA=%_RUNJAVA% set MAINCLASS=org.apache.catalina.startup.Bootstrap @@ -210,7 +210,7 @@ set DEBUG_OPTS=-sourcepath "%CATALINA_HOME%\..\..\java" if not ""%1"" == ""-security"" goto execCmd shift echo Using Security Manager -set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy +set "SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy" goto execCmd :doRun @@ -218,7 +218,7 @@ shift if not ""%1"" == ""-security"" goto execCmd shift echo Using Security Manager -set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy +set "SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy" goto execCmd :doStart @@ -232,7 +232,7 @@ set _EXECJAVA=start %_RUNJAVA% if not ""%1"" == ""-security"" goto execCmd shift echo Using Security Manager -set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy +set "SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy" goto execCmd :doStop diff --git a/bin/digest.bat b/bin/digest.bat index 4a8563aa9..1e78e2b1a 100755 --- a/bin/digest.bat +++ b/bin/digest.bat @@ -33,11 +33,11 @@ echo This environment variable is needed to run this program goto end :okHome -set EXECUTABLE=%CATALINA_HOME%\bin\tool-wrapper.bat +set "EXECUTABLE=%CATALINA_HOME%\bin\tool-wrapper.bat" rem Check that target executable exists if exist "%EXECUTABLE%" goto okExec -echo Cannot find %EXECUTABLE% +echo Cannot find "%EXECUTABLE%" echo This file is needed to run this program goto end :okExec diff --git a/bin/service.bat b/bin/service.bat index 952e14179..a00f4ac8c 100755 --- a/bin/service.bat +++ b/bin/service.bat @@ -29,15 +29,15 @@ rem rem $Id$ rem --------------------------------------------------------------------------- -set SELF=%~dp0%service.bat +set "SELF=%~dp0%service.bat" rem Guess CATALINA_HOME if not defined -set CURRENT_DIR=%cd% +set "CURRENT_DIR=%cd%" if not "%CATALINA_HOME%" == "" goto gotHome -set CATALINA_HOME=%cd% +set "CATALINA_HOME=%cd%" if exist "%CATALINA_HOME%\bin\tomcat@VERSION_MAJOR@.exe" goto okHome rem CD to the upper dir cd .. -set CATALINA_HOME=%cd% +set "CATALINA_HOME=%cd%" :gotHome if exist "%CATALINA_HOME%\bin\tomcat@VERSION_MAJOR@.exe" goto okHome echo The tomcat.exe was not found... @@ -51,10 +51,10 @@ echo This environment variable is needed to run this program goto end :okHome if not "%CATALINA_BASE%" == "" goto gotBase -set CATALINA_BASE=%CATALINA_HOME% +set "CATALINA_BASE=%CATALINA_HOME%" :gotBase -set EXECUTABLE=%CATALINA_HOME%\bin\tomcat@VERSION_MAJOR@.exe +set "EXECUTABLE=%CATALINA_HOME%\bin\tomcat@VERSION_MAJOR@.exe" rem Set default Service name set SERVICE_NAME=Tomcat@VERSION_MAJOR@ @@ -102,26 +102,26 @@ goto end :doInstall rem Install the service echo Installing the service '%SERVICE_NAME%' ... -echo Using CATALINA_HOME: %CATALINA_HOME% -echo Using CATALINA_BASE: %CATALINA_BASE% -echo Using JAVA_HOME: %JAVA_HOME% +echo Using CATALINA_HOME: "%CATALINA_HOME%" +echo Using CATALINA_BASE: "%CATALINA_BASE%" +echo Using JAVA_HOME: "%JAVA_HOME%" rem Use the environment variables as an example rem Each command line option is prefixed with PR_ set PR_DESCRIPTION=Apache Tomcat @VERSION@ Server - http://tomcat.apache.org/ -set PR_INSTALL=%EXECUTABLE% -set PR_LOGPATH=%CATALINA_BASE%\logs -set PR_CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_BASE%\bin\tomcat-juli.jar;%CATALINA_HOME%\bin\tomcat-juli.jar +set "PR_INSTALL=%EXECUTABLE%" +set "PR_LOGPATH=%CATALINA_BASE%\logs" +set "PR_CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_BASE%\bin\tomcat-juli.jar;%CATALINA_HOME%\bin\tomcat-juli.jar" rem Set the server jvm from JAVA_HOME -set PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll +set "PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll" if exist "%PR_JVM%" goto foundJvm rem Set the client jvm from JAVA_HOME -set PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dll +set "PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dll" if exist "%PR_JVM%" goto foundJvm set PR_JVM=auto :foundJvm -echo Using JVM: %PR_JVM% +echo Using JVM: "%PR_JVM%" "%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop if not errorlevel 1 goto installed echo Failed installing '%SERVICE_NAME%' service @@ -137,7 +137,7 @@ set PR_JVM= rem Set extra parameters "%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions "-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\endorsed" --StartMode jvm --StopMode jvm rem More extra parameters -set PR_LOGPATH=%CATALINA_BASE%\logs +set "PR_LOGPATH=%CATALINA_BASE%\logs" set PR_STDOUTPUT=auto set PR_STDERROR=auto "%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" --JvmMs 128 --JvmMx 256 diff --git a/bin/setclasspath.bat b/bin/setclasspath.bat index ffa221399..c19305680 100755 --- a/bin/setclasspath.bat +++ b/bin/setclasspath.bat @@ -40,7 +40,7 @@ if not exist "%JAVA_HOME%\bin\javaw.exe" goto noJavaHome if not exist "%JAVA_HOME%\bin\jdb.exe" goto noJavaHome if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome if not "%JRE_HOME%" == "" goto okJavaHome -set JRE_HOME=%JAVA_HOME% +set "JRE_HOME=%JAVA_HOME%" goto okJavaHome :noJavaHome @@ -64,7 +64,7 @@ goto exit rem Don't override the endorsed dir if the user has set it previously if not "%JAVA_ENDORSED_DIRS%" == "" goto gotEndorseddir rem Set the default -Djava.endorsed.dirs argument -set JAVA_ENDORSED_DIRS=%BASEDIR%\endorsed +set "JAVA_ENDORSED_DIRS=%BASEDIR%\endorsed" :gotEndorseddir rem Set standard command for invoking Java. diff --git a/bin/shutdown.bat b/bin/shutdown.bat index 8e4848142..83c30bda8 100755 --- a/bin/shutdown.bat +++ b/bin/shutdown.bat @@ -22,12 +22,12 @@ rem $Id$ rem --------------------------------------------------------------------------- rem Guess CATALINA_HOME if not defined -set CURRENT_DIR=%cd% +set "CURRENT_DIR=%cd%" if not "%CATALINA_HOME%" == "" goto gotHome -set CATALINA_HOME=%CURRENT_DIR% +set "CATALINA_HOME=%CURRENT_DIR%" if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome cd .. -set CATALINA_HOME=%cd% +set "CATALINA_HOME=%cd%" cd "%CURRENT_DIR%" :gotHome if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome @@ -36,11 +36,11 @@ echo This environment variable is needed to run this program goto end :okHome -set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat +set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat" rem Check that target executable exists if exist "%EXECUTABLE%" goto okExec -echo Cannot find %EXECUTABLE% +echo Cannot find "%EXECUTABLE%" echo This file is needed to run this program goto end :okExec diff --git a/bin/startup.bat b/bin/startup.bat index bd074d159..8b1965a75 100755 --- a/bin/startup.bat +++ b/bin/startup.bat @@ -22,12 +22,12 @@ rem $Id$ rem --------------------------------------------------------------------------- rem Guess CATALINA_HOME if not defined -set CURRENT_DIR=%cd% +set "CURRENT_DIR=%cd%" if not "%CATALINA_HOME%" == "" goto gotHome -set CATALINA_HOME=%CURRENT_DIR% +set "CATALINA_HOME=%CURRENT_DIR%" if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome cd .. -set CATALINA_HOME=%cd% +set "CATALINA_HOME=%cd%" cd "%CURRENT_DIR%" :gotHome if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome @@ -36,11 +36,11 @@ echo This environment variable is needed to run this program goto end :okHome -set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat +set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat" rem Check that target executable exists if exist "%EXECUTABLE%" goto okExec -echo Cannot find %EXECUTABLE% +echo Cannot find "%EXECUTABLE%" echo This file is needed to run this program goto end :okExec diff --git a/bin/tool-wrapper.bat b/bin/tool-wrapper.bat index 6a7561d38..35129294d 100755 --- a/bin/tool-wrapper.bat +++ b/bin/tool-wrapper.bat @@ -54,21 +54,21 @@ if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat" rem Get standard Java environment variables if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath -echo Cannot find %CATALINA_HOME%\bin\setclasspath.bat +echo Cannot find "%CATALINA_HOME%\bin\setclasspath.bat" echo This file is needed to run this program goto end :okSetclasspath -set BASEDIR=%CATALINA_HOME% +set "BASEDIR=%CATALINA_HOME%" call "%CATALINA_HOME%\bin\setclasspath.bat" rem Add on extra jar files to CLASSPATH rem Note that there are no quotes as we do not want to introduce random rem quotes into the CLASSPATH if "%CLASSPATH%" == "" goto noclasspath -set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jar;%BASEDIR%\lib\servlet-api.jar +set "CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jar;%BASEDIR%\lib\servlet-api.jar" goto okclasspath :noclasspath -set CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar;%BASEDIR%\lib\servlet-api.jar +set "CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar;%BASEDIR%\lib\servlet-api.jar" :okclasspath rem Get remaining unshifted command line arguments and save them in the diff --git a/bin/version.bat b/bin/version.bat index 939ae1cd8..62acce6b4 100755 --- a/bin/version.bat +++ b/bin/version.bat @@ -22,12 +22,12 @@ rem $Id$ rem --------------------------------------------------------------------------- rem Guess CATALINA_HOME if not defined -set CURRENT_DIR=%cd% +set "CURRENT_DIR=%cd%" if not "%CATALINA_HOME%" == "" goto gotHome -set CATALINA_HOME=%CURRENT_DIR% +set "CATALINA_HOME=%CURRENT_DIR%" if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome cd .. -set CATALINA_HOME=%cd% +set "CATALINA_HOME=%cd%" cd "%CURRENT_DIR%" :gotHome if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome @@ -36,11 +36,11 @@ echo This environment variable is needed to run this program goto end :okHome -set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat +set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat" rem Check that target executable exists if exist "%EXECUTABLE%" goto okExec -echo Cannot find %EXECUTABLE% +echo Cannot find "%EXECUTABLE%" echo This file is needed to run this program goto end :okExec