-
Bug
-
Resolution: Fixed
-
P3
-
9, 10, 11, 12
-
b14
-
x86_64
-
windows_10
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8212126 | 11.0.2 | Henry Jen | P3 | Resolved | Fixed | b01 |
ADDITIONAL SYSTEM INFORMATION :
Can be reproduced on JDK 9.0.4/10.0.2/11+28, Windows 7 and 10
A DESCRIPTION OF THE PROBLEM :
Recently we found our application throws `ClassNotFoundException`. After some investigation, this is an issue affecting JDK 9/10/11 (which supports @optionFile in `java` argument list) on Windows.
REGRESSION : Last worked in version 11
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
I created a repo to reproduce it:
https://github.com/blindpirate/jdk-cp-option-file-issue
- On Windows (tested on Win 7/10 With 9.0.4/10.0.2/11+28).
- Clone https://github.com/blindpirate/jdk-cp-option-file-issue
- Copy `groovy/groovy-all-2.4.15.jar` to `C:\tcagent1\work-1234567890123456-subprojects-tooling-api-build-integ-test-lib\groovy-all-2.4.15.jar` (this path is at the end of `problematic-cp.txt` file). What matters is the path length.
- `cd jdk-cp-option-file-issue`.
- Run `javac -cp '.;./groovy/groovy-all-2.4.15.jar' Main.java` to perform a compilation.
- Run `java @problematic-cp.txt Main` you get a `java.lang.NoClassDefFoundError: groovy/lang/GroovyObject`.
- Modify `problematic-cp.txt`, add or remove one character in the `-cp` list (don't change the ending `C:\\tcagent1\\work-1234567890123456-subprojects-tooling-api-build-integ-test-lib\\groovy-all-2.4.15.jar;."`), for example, change `C:\\tcagent1\\work\\1234567890123456\\intTestHomeDir\\worker-1\\caches\\4.10.1-20180912160000+0000\\workerMain\\gradle-worker.jar` to `C:\\tcagent1\\work\\1234567890123456\\intTestHomeDir\\worker-1\\caches\\4.10.1-20180912160000+0000\\workerMain\\gradle-worker.ja`
- Run `java @problematic-cp.txt Main` you get the successful result.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Classpath can be read from option file.
ACTUAL -
It doesn't work somehow.
CUSTOMER SUBMITTED WORKAROUND :
Not found.
FREQUENCY : always
Can be reproduced on JDK 9.0.4/10.0.2/11+28, Windows 7 and 10
A DESCRIPTION OF THE PROBLEM :
Recently we found our application throws `ClassNotFoundException`. After some investigation, this is an issue affecting JDK 9/10/11 (which supports @optionFile in `java` argument list) on Windows.
REGRESSION : Last worked in version 11
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
I created a repo to reproduce it:
https://github.com/blindpirate/jdk-cp-option-file-issue
- On Windows (tested on Win 7/10 With 9.0.4/10.0.2/11+28).
- Clone https://github.com/blindpirate/jdk-cp-option-file-issue
- Copy `groovy/groovy-all-2.4.15.jar` to `C:\tcagent1\work-1234567890123456-subprojects-tooling-api-build-integ-test-lib\groovy-all-2.4.15.jar` (this path is at the end of `problematic-cp.txt` file). What matters is the path length.
- `cd jdk-cp-option-file-issue`.
- Run `javac -cp '.;./groovy/groovy-all-2.4.15.jar' Main.java` to perform a compilation.
- Run `java @problematic-cp.txt Main` you get a `java.lang.NoClassDefFoundError: groovy/lang/GroovyObject`.
- Modify `problematic-cp.txt`, add or remove one character in the `-cp` list (don't change the ending `C:\\tcagent1\\work-1234567890123456-subprojects-tooling-api-build-integ-test-lib\\groovy-all-2.4.15.jar;."`), for example, change `C:\\tcagent1\\work\\1234567890123456\\intTestHomeDir\\worker-1\\caches\\4.10.1-20180912160000+0000\\workerMain\\gradle-worker.jar` to `C:\\tcagent1\\work\\1234567890123456\\intTestHomeDir\\worker-1\\caches\\4.10.1-20180912160000+0000\\workerMain\\gradle-worker.ja`
- Run `java @problematic-cp.txt Main` you get the successful result.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Classpath can be read from option file.
ACTUAL -
It doesn't work somehow.
CUSTOMER SUBMITTED WORKAROUND :
Not found.
FREQUENCY : always
- backported by
-
JDK-8212126 Escaped character at specific position in argument file is not handled properly
-
- Resolved
-