8002168: Cleanup initialization of javadoc Messager

Sat, 03 Nov 2012 21:09:57 -0700

author
jjg
date
Sat, 03 Nov 2012 21:09:57 -0700
changeset 1392
352d130c47c5
parent 1391
ef3ad754f5c7
child 1393
d7d932236fee

8002168: Cleanup initialization of javadoc Messager
Reviewed-by: darcy

src/share/classes/com/sun/tools/javadoc/Start.java file | annotate | diff | comparison | revisions
test/tools/javadoc/6958836/Test.java file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/classes/com/sun/tools/javadoc/Start.java	Sat Nov 03 21:07:30 2012 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/javadoc/Start.java	Sat Nov 03 21:09:57 2012 -0700
     1.3 @@ -54,6 +54,8 @@
     1.4   * @author Neal Gafter (rewrite)
     1.5   */
     1.6  class Start {
     1.7 +    /** Context for this invocation. */
     1.8 +    private final Context context;
     1.9  
    1.10      private final String defaultDocletClassName;
    1.11      private final ClassLoader docletParentClassLoader;
    1.12 @@ -69,7 +71,7 @@
    1.13  
    1.14      private long defaultFilter = PUBLIC | PROTECTED;
    1.15  
    1.16 -    private Messager messager;
    1.17 +    private final Messager messager;
    1.18  
    1.19      String docLocale = "";
    1.20  
    1.21 @@ -96,8 +98,8 @@
    1.22            PrintWriter noticeWriter,
    1.23            String defaultDocletClassName,
    1.24            ClassLoader docletParentClassLoader) {
    1.25 -        Context tempContext = new Context(); // interim context until option decoding completed
    1.26 -        messager = new Messager(tempContext, programName, errWriter, warnWriter, noticeWriter);
    1.27 +        context = new Context();
    1.28 +        messager = new Messager(context, programName, errWriter, warnWriter, noticeWriter);
    1.29          this.defaultDocletClassName = defaultDocletClassName;
    1.30          this.docletParentClassLoader = docletParentClassLoader;
    1.31      }
    1.32 @@ -108,8 +110,8 @@
    1.33  
    1.34      Start(String programName, String defaultDocletClassName,
    1.35            ClassLoader docletParentClassLoader) {
    1.36 -        Context tempContext = new Context(); // interim context until option decoding completed
    1.37 -        messager = new Messager(tempContext, programName);
    1.38 +        context = new Context();
    1.39 +        messager = new Messager(context, programName);
    1.40          this.defaultDocletClassName = defaultDocletClassName;
    1.41          this.docletParentClassLoader = docletParentClassLoader;
    1.42      }
    1.43 @@ -219,16 +221,6 @@
    1.44          ListBuffer<String> subPackages = new ListBuffer<String>();
    1.45          ListBuffer<String> excludedPackages = new ListBuffer<String>();
    1.46  
    1.47 -        Context context = new Context();
    1.48 -        // Setup a new Messager, using the same initial parameters as the
    1.49 -        // existing Messager, except that this one will be able to use any
    1.50 -        // options that may be set up below.
    1.51 -        Messager.preRegister(context,
    1.52 -                messager.programName,
    1.53 -                messager.getWriter(Log.WriterKind.ERROR),
    1.54 -                messager.getWriter(Log.WriterKind.WARNING),
    1.55 -                messager.getWriter(Log.WriterKind.NOTICE));
    1.56 -
    1.57          Options compOpts = Options.instance(context);
    1.58          boolean docClasses = false;
    1.59  
    1.60 @@ -368,6 +360,7 @@
    1.61                  javaNames.append(arg);
    1.62              }
    1.63          }
    1.64 +        compOpts.notifyListeners();
    1.65  
    1.66          if (javaNames.isEmpty() && subPackages.isEmpty()) {
    1.67              usageError("main.No_packages_or_classes_specified");
    1.68 @@ -401,10 +394,6 @@
    1.69          boolean ok = root != null;
    1.70          if (ok) ok = docletInvoker.start(root);
    1.71  
    1.72 -        Messager docletMessager = Messager.instance0(context);
    1.73 -        messager.nwarnings += docletMessager.nwarnings;
    1.74 -        messager.nerrors += docletMessager.nerrors;
    1.75 -
    1.76          // We're done.
    1.77          if (compOpts.get("-verbose") != null) {
    1.78              tm = System.currentTimeMillis() - tm;
     2.1 --- a/test/tools/javadoc/6958836/Test.java	Sat Nov 03 21:07:30 2012 -0700
     2.2 +++ b/test/tools/javadoc/6958836/Test.java	Sat Nov 03 21:09:57 2012 -0700
     2.3 @@ -1,5 +1,5 @@
     2.4  /*
     2.5 - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
     2.6 + * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
     2.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     2.8   *
     2.9   * This code is free software; you can redistribute it and/or modify it
    2.10 @@ -23,7 +23,7 @@
    2.11  
    2.12  /*
    2.13   * @test
    2.14 - * @bug 6958836
    2.15 + * @bug 6958836 8002168
    2.16   * @summary javadoc should support -Xmaxerrs and -Xmaxwarns
    2.17   */
    2.18  

mercurial