CDV ❯ Bad temporary file name generated by boot-jar-path.bat in non-english Windows
-
Bug
-
Status: Closed
-
2 Major
-
Resolution: Fixed
-
Kit & Installation
-
-
hhuynh
-
Reporter: jsala
-
October 07, 2009
-
0
-
Watchers: 0
-
July 27, 2012
-
December 07, 2009
Description
In line 76 of bin\boot-jar-path.bat a temporary file name is created as follows:
set TMPFILE=%TMP%\boot-jar-path-%RANDOM%-%TIME:~6,5%.tmp
This may produce a file name containing a comma in non-english-localized versions of Windows, because of the format returned by %TIME%. E.g. in a Spanish-localized Windows, %TIME% returns:
echo %TIME% 12:32:56,31
So that %TIME:~6,5% will return 56,31. As a result, the script fails elsewhere when attempting to delete %TMPFILE% because it contains a comma.
One possible correction would be to use %TIME:~6,2% so the milliseconds part is not included.
Comments
Hung Huynh 2009-10-21
Joan Sala 2009-10-22
Doesn’t work. The value of TMPFILE is correctly quoted, but now the boot jar is not generated.
It seems that when executing the following line:
for /F %%i in (%TMPFILE%) do @set DSO_BOOT_JAR_NAME=%%i
the result of DSO_BOOT_JAR_NAME is now set to the value of TMPFILE (i.e. the temporary file name) instead of the contents of the file, which is how it is intended to work I think (I have not studied the whole script in detail).
The milliseconds part is important when you start clients through a script and random number could be duplicated. An easy fix would be quoting the %TMPFILE%.
Could you add this on line 77:
set TMPFILE=”%TMPFILE:”=%”
and try that out?