1.1 --- a/src/share/classes/com/sun/tools/javah/JavahTask.java Thu Feb 25 12:26:39 2010 -0800 1.2 +++ b/src/share/classes/com/sun/tools/javah/JavahTask.java Thu Feb 25 13:32:08 2010 -0800 1.3 @@ -255,9 +255,11 @@ 1.4 } 1.5 1.6 this.classes = new ArrayList<String>(); 1.7 - for (String classname: classes) { 1.8 - classname.getClass(); // null-check 1.9 - this.classes.add(classname); 1.10 + if (classes != null) { 1.11 + for (String classname: classes) { 1.12 + classname.getClass(); // null-check 1.13 + this.classes.add(classname); 1.14 + } 1.15 } 1.16 } 1.17 1.18 @@ -316,6 +318,12 @@ 1.19 int run(String[] args) { 1.20 try { 1.21 handleOptions(args); 1.22 + if (classes == null || classes.size() == 0) { 1.23 + if (help || version || fullVersion) 1.24 + return 0; 1.25 + else 1.26 + return 1; 1.27 + } 1.28 boolean ok = run(); 1.29 return ok ? 0 : 1; 1.30 } catch (BadArgs e) { 1.31 @@ -347,8 +355,7 @@ 1.32 fileManager = getDefaultFileManager(diagnosticListener, log); 1.33 1.34 Iterator<String> iter = args.iterator(); 1.35 - if (!iter.hasNext()) 1.36 - help = true; 1.37 + boolean noArgs = !iter.hasNext(); 1.38 1.39 while (iter.hasNext()) { 1.40 String arg = iter.next(); 1.41 @@ -365,7 +372,7 @@ 1.42 } 1.43 1.44 if ((classes == null || classes.size() == 0) && 1.45 - !(help || version || fullVersion)) { 1.46 + !(noArgs || help || version || fullVersion)) { 1.47 throw new BadArgs("err.no.classes.specified"); 1.48 } 1.49