# HG changeset patch # User jjg # Date 1352002197 25200 # Node ID 352d130c47c59afb2b63181153619e08aa0abfb3 # Parent ef3ad754f5c7c9b80045c083e755484da27117f9 8002168: Cleanup initialization of javadoc Messager Reviewed-by: darcy diff -r ef3ad754f5c7 -r 352d130c47c5 src/share/classes/com/sun/tools/javadoc/Start.java --- a/src/share/classes/com/sun/tools/javadoc/Start.java Sat Nov 03 21:07:30 2012 -0700 +++ b/src/share/classes/com/sun/tools/javadoc/Start.java Sat Nov 03 21:09:57 2012 -0700 @@ -54,6 +54,8 @@ * @author Neal Gafter (rewrite) */ class Start { + /** Context for this invocation. */ + private final Context context; private final String defaultDocletClassName; private final ClassLoader docletParentClassLoader; @@ -69,7 +71,7 @@ private long defaultFilter = PUBLIC | PROTECTED; - private Messager messager; + private final Messager messager; String docLocale = ""; @@ -96,8 +98,8 @@ PrintWriter noticeWriter, String defaultDocletClassName, ClassLoader docletParentClassLoader) { - Context tempContext = new Context(); // interim context until option decoding completed - messager = new Messager(tempContext, programName, errWriter, warnWriter, noticeWriter); + context = new Context(); + messager = new Messager(context, programName, errWriter, warnWriter, noticeWriter); this.defaultDocletClassName = defaultDocletClassName; this.docletParentClassLoader = docletParentClassLoader; } @@ -108,8 +110,8 @@ Start(String programName, String defaultDocletClassName, ClassLoader docletParentClassLoader) { - Context tempContext = new Context(); // interim context until option decoding completed - messager = new Messager(tempContext, programName); + context = new Context(); + messager = new Messager(context, programName); this.defaultDocletClassName = defaultDocletClassName; this.docletParentClassLoader = docletParentClassLoader; } @@ -219,16 +221,6 @@ ListBuffer subPackages = new ListBuffer(); ListBuffer excludedPackages = new ListBuffer(); - Context context = new Context(); - // Setup a new Messager, using the same initial parameters as the - // existing Messager, except that this one will be able to use any - // options that may be set up below. - Messager.preRegister(context, - messager.programName, - messager.getWriter(Log.WriterKind.ERROR), - messager.getWriter(Log.WriterKind.WARNING), - messager.getWriter(Log.WriterKind.NOTICE)); - Options compOpts = Options.instance(context); boolean docClasses = false; @@ -368,6 +360,7 @@ javaNames.append(arg); } } + compOpts.notifyListeners(); if (javaNames.isEmpty() && subPackages.isEmpty()) { usageError("main.No_packages_or_classes_specified"); @@ -401,10 +394,6 @@ boolean ok = root != null; if (ok) ok = docletInvoker.start(root); - Messager docletMessager = Messager.instance0(context); - messager.nwarnings += docletMessager.nwarnings; - messager.nerrors += docletMessager.nerrors; - // We're done. if (compOpts.get("-verbose") != null) { tm = System.currentTimeMillis() - tm; diff -r ef3ad754f5c7 -r 352d130c47c5 test/tools/javadoc/6958836/Test.java --- a/test/tools/javadoc/6958836/Test.java Sat Nov 03 21:07:30 2012 -0700 +++ b/test/tools/javadoc/6958836/Test.java Sat Nov 03 21:09:57 2012 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,7 +23,7 @@ /* * @test - * @bug 6958836 + * @bug 6958836 8002168 * @summary javadoc should support -Xmaxerrs and -Xmaxwarns */