RFR: 8077822: javac does not recognize '*.java' as file if '-J' option is specified
Kumar Srinivasan
kumar.x.srinivasan at oracle.com
Tue May 19 18:22:55 UTC 2015
Hi Rob,
Looks good, except a small nit, I would've written this with a positive
check
+ /* Copy the non-vm args */
+ for (i = 0; i < nargc ; i++) {
+ const char *arg = stdargs[i].arg;
+ if (arg[0] != '-' || arg[1] != 'J') {
+ argv = (StdArg*) JLI_MemRealloc(argv, (nargs+1) * sizeof(StdArg));
+ argv[nargs].arg = JLI_StringDup(arg);
+ argv[nargs].has_wildcard = stdargs[i].has_wildcard;
+ nargs++;
+ }
+ }
as follows.....
/* Copy the non-vm args */
for (i = 0; i < nargc ; i++) {
const char *arg = stdargs[i].arg;
if (arg[0] == '-' && arg[1] == 'J') // OR if (JLI_StrNCmp(arg, "-J", JLI_StrLen("-J") == 0)
continue;
argv = (StdArg*) JLI_MemRealloc(argv, (nargs+1) * sizeof(StdArg));
argv[nargs].arg = JLI_StringDup(arg);
argv[nargs].has_wildcard = stdargs[i].has_wildcard;
nargs++;
}
Thanks
Kumar
On 5/19/2015 6:58 AM, Rob McKenna wrote:
> Hi folks,
>
> Because of platform specifics the Java launcher contains some extra
> wildcard expansion processing on Windows.
>
> As part of this processing the list of args received by
> CreateApplicationArgs (java_md.c) is compared to the original list in
> the java launchers main method.
>
> Unfortunately the CreateApplicationArgs list has already been filtered
> by TranslateApplicationArgs which removes VM specific flags. This
> results in the launcher incorrectly neglecting to expand wildcard
> arguments.
>
> This fix filters the main method args in the same way so
> CreateApplicationArgs will be comparing like with like.
>
> http://cr.openjdk.java.net/~robm/8077822/webrev.01/
>
> -Rob
More information about the core-libs-dev
mailing list