--- a/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java Tue Jul 08 17:53:03 2008 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java Tue Jul 08 18:06:19 2008 -0700
@@ -140,24 +140,31 @@
new Option(false, "-public") {
void process(JavapTask task, String opt, String arg) {
+ task.options.accessOptions.add(opt);
task.options.showAccess = AccessFlags.ACC_PUBLIC;
}
},
new Option(false, "-protected") {
void process(JavapTask task, String opt, String arg) {
+ task.options.accessOptions.add(opt);
task.options.showAccess = AccessFlags.ACC_PROTECTED;
}
},
new Option(false, "-package") {
void process(JavapTask task, String opt, String arg) {
+ task.options.accessOptions.add(opt);
task.options.showAccess = 0;
}
},
new Option(false, "-p", "-private") {
void process(JavapTask task, String opt, String arg) {
+ if (!task.options.accessOptions.contains("-p") &&
+ !task.options.accessOptions.contains("-private")) {
+ task.options.accessOptions.add(opt);
+ }
task.options.showAccess = AccessFlags.ACC_PRIVATE;
}
},
@@ -386,6 +393,16 @@
throw new BadArgs("err.unknown.option", arg).showUsage(true);
}
+ if (!options.compat && options.accessOptions.size() > 1) {
+ StringBuilder sb = new StringBuilder();
+ for (String opt: options.accessOptions) {
+ if (sb.length() > 0)
+ sb.append(" ");
+ sb.append(opt);
+ }
+ throw new BadArgs("err.incompatible.options", sb);
+ }
+
if (options.ignoreSymbolFile && fileManager instanceof JavapFileManager)
((JavapFileManager) fileManager).setIgnoreSymbolFile(true);