Review request: JDK-8159596 Add java --dry-run

Mandy Chung mandy.chung at oracle.com
Tue Jun 28 15:25:43 UTC 2016


When it reaches the if (dryRun) case, it already loads the VM and main class successfully with no exception.  Hence it sets ret = 0.

If there is any exception thrown during the course, CHECK_EXCEPTION_LEAVE or CHECK_EXCEPTION_NULL_LEAVE macros reports the exception and exit with ret=1.


$ java -addmods abc --dry-run -cp hi.jar Hi
Error occurred during initialization of VM
java.lang.module.ResolutionException: Module abc not found
	at java.lang.module.Resolver.fail(java.base/Resolver.java:790)
	at java.lang.module.Resolver.resolveRequires(java.base/Resolver.java:94)
	at java.lang.module.Configuration.resolveRequiresAndUses(java.base/Configuration.java:370)
	at java.lang.module.ModuleDescriptor$1.resolveRequiresAndUses(java.base/ModuleDescriptor.java:1986)
	at jdk.internal.module.ModuleBootstrap.boot(java.base/ModuleBootstrap.java:263)
	at java.lang.System.initPhase2(java.base/System.java:1928)

$ echo $?
1


> On Jun 28, 2016, at 8:18 AM, Paul Benedict <pbenedict at apache.org> wrote:
> 
> Mandy, if I am reading the diff correctly, it looks like you moved the error exit code (1 = unhandled exception) inside the "else" block for a real run only? I think if the dry run also throws an exception, you should set the exit code to 1. If I read the diff wrong, my apologies :-) 
> 
> Cheers,
> Paul
> 
> On Mon, Jun 27, 2016 at 12:36 PM, Mandy Chung <mandy.chung at oracle.com> wrote:
> -XshowSettings would probably be a good place to include the VM arguments.
> $ java -XshowSettings:vm -—dry-run
> 
> I file a JBS issue:
>   https://bugs.openjdk.java.net/browse/JDK-8160389
> 
> Mandy
> 
> 
> > On Jun 27, 2016, at 9:20 AM, Paul Benedict <pbenedict at apache.org> wrote:
> >
> > Mandy, if I may recommend another suggestion, another "sanity" check could be dumping the command line arguments. I know quite a few bash programmers who would really love to see they passed their arguments correctly without executing their program. :-)
> >
> > Cheers,
> > Paul
> >
> > On Mon, Jun 27, 2016 at 10:48 AM, Raymond Gallardo <raymond.gallardo at oracle.com> wrote:
> > Hi Mandy,
> >
> > Does this enhancement need to be doc'd? If so, could you add a subtask (component = docs)?
> >
> > Thanks,
> > --Raymond
> >
> > On 24/06/2016 9:49 AM, Mandy Chung wrote:
> > Webrev:
> >    http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8159596/webrev.00/
> >
> > `java --dry-run` will create the VM, load the main, locate the static void main method, and exit (with 0) instead of executing the method.  As all module options are processed and the boot layer is created, this would be useful to sanity check the options and detect possible issues.
> >
> > Mandy
> >
> >
> >
> 
> 



More information about the jigsaw-dev mailing list