• Icon: Sub-task Sub-task
    • Resolution: Fixed
    • Icon: P4 P4
    • 25
    • 25
    • tools
    • jdk-25+9-73-gba28119642a

    • master
    • generic
    • generic

      This is split off as a sub-task of JDK-8224228, which seeks to add @SuppressWarnings support for lexical features.

      There are a few of small refactoring cleanups possible relating to the nested class Log.DiagnosticHandler.

      First, this class is currently declared as a static inner class with an explicit field reference to its outer class (Log) instance. Although protected and non final, this field really should never be changed. Therefore, there is no reason not to just make DiagnosticHandler a non-static inner class. This will slightly simplify the code and eliminate an obscure corner case by which a bug could possibly occur someday.

      Secondly, the deferred diagnostics are currently stored in a linked list, and in cases where they must be sorted before being reported, they have to be copied into an array first. A simpler and more space efficient approach would be to just use an ArrayList. Then the sorting variant of the method can just sort the list in place and delegate directly to the non-sorting variant.

      Finally, the code can be simplified by replacing a null "filter" predicate with an always true predicate at construction time instead of at filter time.

            acobbs Archie Cobbs
            acobbs Archie Cobbs
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: