class com.sun.tools.javac.api.JavacTaskPool$ReusableContext extends com.sun.tools.javac.util.Context implements com.sun.source.util.TaskListener
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.api.JavacTaskPool$ReusableContext
  super_class: com.sun.tools.javac.util.Context
{
  java.util.Set<com.sun.source.tree.CompilationUnitTree> roots;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Lcom/sun/source/tree/CompilationUnitTree;>;

  java.util.List<java.lang.String> arguments;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Ljava/lang/String;>;

  boolean polluted;
    descriptor: Z
    flags: (0x0000) 

  int useCount;
    descriptor: I
    flags: (0x0000) 

  long timeStamp;
    descriptor: J
    flags: (0x0000) 

  com.sun.source.util.TreeScanner<java.lang.Void, com.sun.tools.javac.code.Symtab> pollutionScanner;
    descriptor: Lcom/sun/source/util/TreeScanner;
    flags: (0x0000) 
    Signature: Lcom/sun/source/util/TreeScanner<Ljava/lang/Void;Lcom/sun/tools/javac/code/Symtab;>;

  void <init>(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext this
        start local 1 // java.util.List arguments
         0: .line 248
            aload 0 /* this */
            invokespecial com.sun.tools.javac.util.Context.<init>:()V
         1: .line 239
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.roots:Ljava/util/Set;
         2: .line 242
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.polluted:Z
         3: .line 295
            aload 0 /* this */
            new com.sun.tools.javac.api.JavacTaskPool$ReusableContext$1
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.api.JavacTaskPool$ReusableContext$1.<init>:(Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;)V
            putfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.pollutionScanner:Lcom/sun/source/util/TreeScanner;
         4: .line 249
            aload 0 /* this */
            aload 1 /* arguments */
            putfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.arguments:Ljava/util/List;
         5: .line 250
            aload 0 /* this */
            getstatic com.sun.tools.javac.util.Log.logKey:Lcom/sun/tools/javac/util/Context$Key;
            getstatic com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableLog.factory:Lcom/sun/tools/javac/util/Context$Factory;
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.put:(Lcom/sun/tools/javac/util/Context$Key;Lcom/sun/tools/javac/util/Context$Factory;)V
         6: .line 251
            aload 0 /* this */
            getstatic com.sun.tools.javac.main.JavaCompiler.compilerKey:Lcom/sun/tools/javac/util/Context$Key;
            getstatic com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableJavaCompiler.factory:Lcom/sun/tools/javac/util/Context$Factory;
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.put:(Lcom/sun/tools/javac/util/Context$Key;Lcom/sun/tools/javac/util/Context$Factory;)V
         7: .line 252
            return
        end local 1 // java.util.List arguments
        end local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;
            0    8     1  arguments  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
           Name  Flags
      arguments  

  void clear();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext this
         0: .line 257
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.polluted:Z
            aload 0 /* this */
            ldc Ljavax/tools/JavaFileManager;
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.tools.JavaFileManager
            getstatic javax.tools.StandardLocation.PATCH_MODULE_PATH:Ljavax/tools/StandardLocation;
            invokeinterface javax.tools.JavaFileManager.hasLocation:(Ljavax/tools/JavaFileManager$Location;)Z
            ior
            putfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.polluted:Z
         1: .line 258
            aload 0 /* this */
            getstatic com.sun.tools.javac.main.Arguments.argsKey:Lcom/sun/tools/javac/util/Context$Key;
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.drop:(Lcom/sun/tools/javac/util/Context$Key;)V
         2: .line 259
            aload 0 /* this */
            ldc Ljavax/tools/DiagnosticListener;
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.drop:(Ljava/lang/Class;)V
         3: .line 260
            aload 0 /* this */
            getstatic com.sun.tools.javac.util.Log.outKey:Lcom/sun/tools/javac/util/Context$Key;
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.drop:(Lcom/sun/tools/javac/util/Context$Key;)V
         4: .line 261
            aload 0 /* this */
            getstatic com.sun.tools.javac.util.Log.errKey:Lcom/sun/tools/javac/util/Context$Key;
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.drop:(Lcom/sun/tools/javac/util/Context$Key;)V
         5: .line 262
            aload 0 /* this */
            ldc Ljavax/tools/JavaFileManager;
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.drop:(Ljava/lang/Class;)V
         6: .line 263
            aload 0 /* this */
            ldc Lcom/sun/source/util/JavacTask;
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.drop:(Ljava/lang/Class;)V
         7: .line 264
            aload 0 /* this */
            ldc Lcom/sun/tools/javac/api/JavacTrees;
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.drop:(Ljava/lang/Class;)V
         8: .line 265
            aload 0 /* this */
            ldc Lcom/sun/tools/javac/model/JavacElements;
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.drop:(Ljava/lang/Class;)V
         9: .line 266
            aload 0 /* this */
            ldc Lcom/sun/tools/javac/platform/PlatformDescription;
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.drop:(Ljava/lang/Class;)V
        10: .line 268
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.ht:Ljava/util/Map;
            getstatic com.sun.tools.javac.util.Log.logKey:Lcom/sun/tools/javac/util/Context$Key;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            instanceof com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableLog
            ifeq 26
        11: .line 270
            aload 0 /* this */
            invokestatic com.sun.tools.javac.util.Log.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Log;
            checkcast com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableLog
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableLog.clear:()V
        12: .line 271
            aload 0 /* this */
            invokestatic com.sun.tools.javac.comp.Enter.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Enter;
            invokevirtual com.sun.tools.javac.comp.Enter.newRound:()V
        13: .line 272
            aload 0 /* this */
            invokestatic com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableJavaCompiler.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/main/JavaCompiler;
            checkcast com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableJavaCompiler
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableJavaCompiler.clear:()V
        14: .line 273
            aload 0 /* this */
            invokestatic com.sun.tools.javac.code.Types.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Types;
            invokevirtual com.sun.tools.javac.code.Types.newRound:()V
        15: .line 274
            aload 0 /* this */
            invokestatic com.sun.tools.javac.comp.Check.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Check;
            invokevirtual com.sun.tools.javac.comp.Check.newRound:()V
        16: .line 275
            aload 0 /* this */
            invokestatic com.sun.tools.javac.comp.Check.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Check;
            invokevirtual com.sun.tools.javac.comp.Check.clear:()V
        17: .line 276
            aload 0 /* this */
            invokestatic com.sun.tools.javac.code.Preview.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Preview;
            invokevirtual com.sun.tools.javac.code.Preview.clear:()V
        18: .line 277
            aload 0 /* this */
            invokestatic com.sun.tools.javac.comp.Modules.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Modules;
            invokevirtual com.sun.tools.javac.comp.Modules.newRound:()V
        19: .line 278
            aload 0 /* this */
            invokestatic com.sun.tools.javac.comp.Annotate.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Annotate;
            invokevirtual com.sun.tools.javac.comp.Annotate.newRound:()V
        20: .line 279
            aload 0 /* this */
            invokestatic com.sun.tools.javac.comp.CompileStates.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/CompileStates;
            invokevirtual com.sun.tools.javac.comp.CompileStates.clear:()V
        21: .line 280
            aload 0 /* this */
            invokestatic com.sun.tools.javac.api.MultiTaskListener.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/api/MultiTaskListener;
            invokevirtual com.sun.tools.javac.api.MultiTaskListener.clear:()V
        22: .line 281
            aload 0 /* this */
            invokestatic com.sun.tools.javac.util.Options.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Options;
            invokevirtual com.sun.tools.javac.util.Options.clear:()V
        23: .line 284
            aload 0 /* this */
            invokestatic com.sun.tools.javac.code.Symtab.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Symtab;
            astore 1 /* syms */
        start local 1 // com.sun.tools.javac.code.Symtab syms
        24: .line 285
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.pollutionScanner:Lcom/sun/source/util/TreeScanner;
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.roots:Ljava/util/Set;
            aload 1 /* syms */
            invokevirtual com.sun.source.util.TreeScanner.scan:(Ljava/lang/Iterable;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        25: .line 286
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.roots:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        end local 1 // com.sun.tools.javac.code.Symtab syms
        26: .line 288
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   27     0  this  Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;
           24   26     1  syms  Lcom/sun/tools/javac/code/Symtab;

  public void finished(com.sun.source.util.TaskEvent);
    descriptor: (Lcom/sun/source/util/TaskEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext this
        start local 1 // com.sun.source.util.TaskEvent e
         0: .line 339
            aload 1 /* e */
            invokevirtual com.sun.source.util.TaskEvent.getKind:()Lcom/sun/source/util/TaskEvent$Kind;
            getstatic com.sun.source.util.TaskEvent$Kind.PARSE:Lcom/sun/source/util/TaskEvent$Kind;
            if_acmpne 2
         1: .line 340
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.roots:Ljava/util/Set;
            aload 1 /* e */
            invokevirtual com.sun.source.util.TaskEvent.getCompilationUnit:()Lcom/sun/source/tree/CompilationUnitTree;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         2: .line 342
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.source.util.TaskEvent e
        end local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;
            0    3     1     e  Lcom/sun/source/util/TaskEvent;
    MethodParameters:
      Name  Flags
      e     

  public void started(com.sun.source.util.TaskEvent);
    descriptor: (Lcom/sun/source/util/TaskEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext this
        start local 1 // com.sun.source.util.TaskEvent e
         0: .line 347
            return
        end local 1 // com.sun.source.util.TaskEvent e
        end local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;
            0    1     1     e  Lcom/sun/source/util/TaskEvent;
    MethodParameters:
      Name  Flags
      e     

  <T> void drop(com.sun.tools.javac.util.Context$Key<T>);
    descriptor: (Lcom/sun/tools/javac/util/Context$Key;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext this
        start local 1 // com.sun.tools.javac.util.Context$Key k
         0: .line 350
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.ht:Ljava/util/Map;
            aload 1 /* k */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 351
            return
        end local 1 // com.sun.tools.javac.util.Context$Key k
        end local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;
            0    2     1     k  Lcom/sun/tools/javac/util/Context$Key<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/sun/tools/javac/util/Context$Key<TT;>;)V
    MethodParameters:
      Name  Flags
      k     

  <T> void drop(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext this
        start local 1 // java.lang.Class c
         0: .line 354
            aload 0 /* this */
            getfield com.sun.tools.javac.api.JavacTaskPool$ReusableContext.ht:Ljava/util/Map;
            aload 0 /* this */
            aload 1 /* c */
            invokevirtual com.sun.tools.javac.api.JavacTaskPool$ReusableContext.key:(Ljava/lang/Class;)Lcom/sun/tools/javac/util/Context$Key;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 355
            return
        end local 1 // java.lang.Class c
        end local 0 // com.sun.tools.javac.api.JavacTaskPool$ReusableContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/api/JavacTaskPool$ReusableContext;
            0    2     1     c  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)V
    MethodParameters:
      Name  Flags
      c     
}
SourceFile: "JavacTaskPool.java"
NestHost: com.sun.tools.javac.api.JavacTaskPool
InnerClasses:
  public final Kind = com.sun.source.util.TaskEvent$Kind of com.sun.source.util.TaskEvent
  ReusableContext = com.sun.tools.javac.api.JavacTaskPool$ReusableContext of com.sun.tools.javac.api.JavacTaskPool
  com.sun.tools.javac.api.JavacTaskPool$ReusableContext$1
  ReusableJavaCompiler = com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableJavaCompiler of com.sun.tools.javac.api.JavacTaskPool$ReusableContext
  ReusableLog = com.sun.tools.javac.api.JavacTaskPool$ReusableContext$ReusableLog of com.sun.tools.javac.api.JavacTaskPool$ReusableContext
  public abstract Factory = com.sun.tools.javac.util.Context$Factory of com.sun.tools.javac.util.Context
  public Key = com.sun.tools.javac.util.Context$Key of com.sun.tools.javac.util.Context
  public abstract Location = javax.tools.JavaFileManager$Location of javax.tools.JavaFileManager