test/jdk/javadoc/tool/FlagsTooEarly.java

Print this page

        

*** 27,63 **** * @summary Compilation may go awry if we ask a symbol for its flags during * javac's Enter phase, before the flags are generally available. * @modules jdk.javadoc */ - import com.sun.javadoc.*; ! public class FlagsTooEarly extends Doclet { public static void main(String[] args) { String thisFile = "" + new java.io.File(System.getProperty("test.src", "."), "FlagsTooEarly.java"); ! if (com.sun.tools.javadoc.Main.execute( ! "javadoc", ! "FlagsTooEarly", ! FlagsTooEarly.class.getClassLoader(), ! new String[] {"-Xwerror", thisFile}) != 0) throw new Error("Javadoc encountered warnings or errors."); } /* * The world's simplest doclet. */ ! public static boolean start(RootDoc root) { return true; } - /* * The following sets up the scenario for triggering the (potential) bug. */ C2 c; static class C1 { } static class C2 { } } --- 27,92 ---- * @summary Compilation may go awry if we ask a symbol for its flags during * javac's Enter phase, before the flags are generally available. * @modules jdk.javadoc */ ! import java.util.Collections; ! import java.util.Locale; ! import java.util.Set; + import javax.lang.model.SourceVersion; + + import jdk.javadoc.doclet.Doclet; + import jdk.javadoc.doclet.Reporter; + import jdk.javadoc.doclet.DocletEnvironment; + + public class FlagsTooEarly implements Doclet { + public static void main(String[] args) { String thisFile = "" + new java.io.File(System.getProperty("test.src", "."), "FlagsTooEarly.java"); ! String[] argarray = { ! "-docletpath", System.getProperty("test.classes", "."), ! "-doclet", "FlagsTooEarly", ! "-Xwerror", ! thisFile ! }; ! if (jdk.javadoc.internal.tool.Main.execute(argarray) != 0) throw new Error("Javadoc encountered warnings or errors."); } /* * The world's simplest doclet. */ ! public boolean run(DocletEnvironment root) { return true; } /* * The following sets up the scenario for triggering the (potential) bug. */ C2 c; static class C1 { } static class C2 { } + + @Override + public String getName() { + return "Test"; + } + + @Override + public Set<Option> getSupportedOptions() { + return Collections.emptySet(); + } + + @Override + public SourceVersion getSupportedSourceVersion() { + return SourceVersion.latest(); + } + + public void init(Locale locale, Reporter reporter) { + return; + } }