public class org.aspectj.weaver.loadtime.Aj implements org.aspectj.weaver.loadtime.ClassPreProcessor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.aspectj.weaver.loadtime.Aj
  super_class: java.lang.Object
{
  private org.aspectj.weaver.loadtime.IWeavingContext weavingContext;
    descriptor: Lorg/aspectj/weaver/loadtime/IWeavingContext;
    flags: (0x0002) ACC_PRIVATE

  public static org.aspectj.weaver.tools.cache.SimpleCache laCache;
    descriptor: Lorg/aspectj/weaver/tools/cache/SimpleCache;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  private static java.lang.ref.ReferenceQueue adaptorQueue;
    descriptor: Ljava/lang/ref/ReferenceQueue;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static org.aspectj.weaver.tools.Trace trace;
    descriptor: Lorg/aspectj/weaver/tools/Trace;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.lang.String deleLoader;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "sun.reflect.DelegatingClassLoader"

  private static final java.lang.String deleLoader2;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "jdk.internal.reflect.DelegatingClassLoader"

  public static java.util.List<java.lang.String> loadersToSkip;
    descriptor: Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Signature: Ljava/util/List<Ljava/lang/String;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=0
         0: .line 43
            invokestatic org.aspectj.weaver.tools.cache.SimpleCacheFactory.createSimpleCache:()Lorg/aspectj/weaver/tools/cache/SimpleCache;
            putstatic org.aspectj.weaver.loadtime.Aj.laCache:Lorg/aspectj/weaver/tools/cache/SimpleCache;
         1: .line 50
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putstatic org.aspectj.weaver.loadtime.Aj.adaptorQueue:Ljava/lang/ref/ReferenceQueue;
         2: .line 52
            invokestatic org.aspectj.weaver.tools.TraceFactory.getTraceFactory:()Lorg/aspectj/weaver/tools/TraceFactory;
            ldc Lorg/aspectj/weaver/loadtime/Aj;
            invokevirtual org.aspectj.weaver.tools.TraceFactory.getTrace:(Ljava/lang/Class;)Lorg/aspectj/weaver/tools/Trace;
            putstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
         3: .line 259
            aconst_null
            putstatic org.aspectj.weaver.loadtime.Aj.loadersToSkip:Ljava/util/List;
         4: .line 263
            new org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor
            new org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor
            dup
            invokespecial org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.<init>:()V
            invokespecial org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor.<init>:(Lorg/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor;)V
         5: .line 265
            ldc "aj.weaving.loadersToSkip"
            ldc ""
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* loadersToSkipProperty */
        start local 0 // java.lang.String loadersToSkipProperty
         6: .line 266
            new java.util.StringTokenizer
            dup
            aload 0 /* loadersToSkipProperty */
            ldc ","
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 1 /* st */
        start local 1 // java.util.StringTokenizer st
         7: .line 267
            aload 0 /* loadersToSkipProperty */
            ifnull 16
            getstatic org.aspectj.weaver.loadtime.Aj.loadersToSkip:Ljava/util/List;
            ifnonnull 16
         8: .line 268
            aload 1 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifeq 13
         9: .line 270
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putstatic org.aspectj.weaver.loadtime.Aj.loadersToSkip:Ljava/util/List;
        10: .line 272
            goto 13
        11: .line 273
      StackMap locals: java.lang.String java.util.StringTokenizer
      StackMap stack:
            aload 1 /* st */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            astore 2 /* nextLoader */
        start local 2 // java.lang.String nextLoader
        12: .line 274
            getstatic org.aspectj.weaver.loadtime.Aj.loadersToSkip:Ljava/util/List;
            aload 2 /* nextLoader */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String nextLoader
        13: .line 272
      StackMap locals:
      StackMap stack:
            aload 1 /* st */
            invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
            ifne 11
        end local 1 // java.util.StringTokenizer st
        end local 0 // java.lang.String loadersToSkipProperty
        14: .line 277
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Exception
        15: pop
        16: .line 280
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            6   14     0  loadersToSkipProperty  Ljava/lang/String;
            7   14     1                     st  Ljava/util/StringTokenizer;
           12   13     2             nextLoader  Ljava/lang/String;
      Exception table:
        from    to  target  type
           5    14      15  Class java.lang.Exception

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.loadtime.Aj this
         0: .line 55
            aload 0 /* this */
            aconst_null
            invokespecial org.aspectj.weaver.loadtime.Aj.<init>:(Lorg/aspectj/weaver/loadtime/IWeavingContext;)V
         1: .line 56
            return
        end local 0 // org.aspectj.weaver.loadtime.Aj this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/aspectj/weaver/loadtime/Aj;

  public void <init>(org.aspectj.weaver.loadtime.IWeavingContext);
    descriptor: (Lorg/aspectj/weaver/loadtime/IWeavingContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.loadtime.Aj this
        start local 1 // org.aspectj.weaver.loadtime.IWeavingContext context
         0: .line 58
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
            ifeq 3
         2: .line 60
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            ldc "<init>"
            aload 0 /* this */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* context */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            aastore
            invokeinterface org.aspectj.weaver.tools.Trace.enter:(Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V
         3: .line 61
      StackMap locals: org.aspectj.weaver.loadtime.Aj org.aspectj.weaver.loadtime.IWeavingContext
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            putfield org.aspectj.weaver.loadtime.Aj.weavingContext:Lorg/aspectj/weaver/loadtime/IWeavingContext;
         4: .line 62
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
            ifeq 6
         5: .line 63
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            ldc "<init>"
            invokeinterface org.aspectj.weaver.tools.Trace.exit:(Ljava/lang/String;)V
         6: .line 64
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.aspectj.weaver.loadtime.IWeavingContext context
        end local 0 // org.aspectj.weaver.loadtime.Aj this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/aspectj/weaver/loadtime/Aj;
            0    7     1  context  Lorg/aspectj/weaver/loadtime/IWeavingContext;
    MethodParameters:
         Name  Flags
      context  

  public void initialize();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.aspectj.weaver.loadtime.Aj this
         0: .line 72
            return
        end local 0 // org.aspectj.weaver.loadtime.Aj this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/aspectj/weaver/loadtime/Aj;

  public byte[] preProcess(java.lang.String, byte[], java.lang.ClassLoader, java.security.ProtectionDomain);
    descriptor: (Ljava/lang/String;[BLjava/lang/ClassLoader;Ljava/security/ProtectionDomain;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=12, args_size=5
        start local 0 // org.aspectj.weaver.loadtime.Aj this
        start local 1 // java.lang.String className
        start local 2 // byte[] bytes
        start local 3 // java.lang.ClassLoader loader
        start local 4 // java.security.ProtectionDomain protectionDomain
         0: .line 79
            aload 3 /* loader */
            ifnull 2
            aload 1 /* className */
            ifnull 2
         1: .line 80
            aload 3 /* loader */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "sun.reflect.DelegatingClassLoader"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
            aload 3 /* loader */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "jdk.internal.reflect.DelegatingClassLoader"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 82
      StackMap locals:
      StackMap stack:
            aload 2 /* bytes */
            areturn
         3: .line 85
      StackMap locals:
      StackMap stack:
            getstatic org.aspectj.weaver.loadtime.Aj.loadersToSkip:Ljava/util/List;
            ifnull 6
         4: .line 87
            getstatic org.aspectj.weaver.loadtime.Aj.loadersToSkip:Ljava/util/List;
            aload 3 /* loader */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 89
            aload 2 /* bytes */
            areturn
         6: .line 93
      StackMap locals:
      StackMap stack:
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
            ifeq 8
         7: .line 94
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            ldc "preProcess"
            aload 0 /* this */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* className */
            aastore
            dup
            iconst_1
            aload 2 /* bytes */
            aastore
            dup
            iconst_2
            aload 3 /* loader */
            aastore
            invokeinterface org.aspectj.weaver.tools.Trace.enter:(Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V
         8: .line 95
      StackMap locals:
      StackMap stack:
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
            ifeq 10
         9: .line 96
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            ldc "preProcess"
            aload 0 /* this */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* loader */
            invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
            aastore
            dup
            iconst_1
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            aastore
            invokeinterface org.aspectj.weaver.tools.Trace.event:(Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)V
        10: .line 99
      StackMap locals:
      StackMap stack:
            aload 3 /* loader */
            dup
            astore 5
            monitorenter
        11: .line 101
            invokestatic org.aspectj.weaver.tools.cache.SimpleCacheFactory.isEnabled:()Z
            ifeq 17
        12: .line 102
            getstatic org.aspectj.weaver.loadtime.Aj.laCache:Lorg/aspectj/weaver/tools/cache/SimpleCache;
            aload 1 /* className */
            aload 2 /* bytes */
            aload 3 /* loader */
            aload 4 /* protectionDomain */
            invokevirtual org.aspectj.weaver.tools.cache.SimpleCache.getAndInitialize:(Ljava/lang/String;[BLjava/lang/ClassLoader;Ljava/security/ProtectionDomain;)[B
            astore 6 /* cacheBytes */
        start local 6 // byte[] cacheBytes
        13: .line 103
            aload 6 /* cacheBytes */
            ifnull 17
        14: .line 104
            aload 6 /* cacheBytes */
            astore 11
            aload 5
            monitorexit
        15: .line 139
            invokestatic org.aspectj.bridge.context.CompilationAndWeavingContext.resetForThread:()V
        16: .line 104
            aload 11
            areturn
        end local 6 // byte[] cacheBytes
        17: .line 108
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 3 /* loader */
            aload 0 /* this */
            getfield org.aspectj.weaver.loadtime.Aj.weavingContext:Lorg/aspectj/weaver/loadtime/IWeavingContext;
            invokestatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver:(Ljava/lang/ClassLoader;Lorg/aspectj/weaver/loadtime/IWeavingContext;)Lorg/aspectj/weaver/tools/WeavingAdaptor;
            astore 6 /* weavingAdaptor */
        start local 6 // org.aspectj.weaver.tools.WeavingAdaptor weavingAdaptor
        18: .line 109
            aload 6 /* weavingAdaptor */
            ifnonnull 24
        19: .line 110
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
            ifeq 21
        20: .line 111
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            ldc "preProcess"
            invokeinterface org.aspectj.weaver.tools.Trace.exit:(Ljava/lang/String;)V
        21: .line 112
      StackMap locals: org.aspectj.weaver.tools.WeavingAdaptor
      StackMap stack:
            aload 2 /* bytes */
            astore 11
            aload 5
            monitorexit
        22: .line 139
            invokestatic org.aspectj.bridge.context.CompilationAndWeavingContext.resetForThread:()V
        23: .line 112
            aload 11
            areturn
        24: .line 115
      StackMap locals:
      StackMap stack:
            aload 6 /* weavingAdaptor */
            aload 4 /* protectionDomain */
            invokevirtual org.aspectj.weaver.tools.WeavingAdaptor.setActiveProtectionDomain:(Ljava/security/ProtectionDomain;)V
        25: .line 116
            aload 6 /* weavingAdaptor */
            aload 1 /* className */
            aload 2 /* bytes */
            iconst_0
            invokevirtual org.aspectj.weaver.tools.WeavingAdaptor.weaveClass:(Ljava/lang/String;[BZ)[B
            astore 7 /* newBytes */
        start local 7 // byte[] newBytes
        26: .line 117
            aload 6 /* weavingAdaptor */
            invokevirtual org.aspectj.weaver.tools.WeavingAdaptor.getMessageHolder:()Lorg/aspectj/bridge/IMessageHolder;
            iconst_1
            invokestatic org.aspectj.weaver.Dump.dumpOnExit:(Lorg/aspectj/bridge/IMessageHolder;Z)Ljava/lang/String;
            pop
        27: .line 118
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
            ifeq 29
        28: .line 119
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            ldc "preProcess"
            aload 7 /* newBytes */
            invokeinterface org.aspectj.weaver.tools.Trace.exit:(Ljava/lang/String;Ljava/lang/Object;)V
        29: .line 120
      StackMap locals: byte[]
      StackMap stack:
            invokestatic org.aspectj.weaver.tools.cache.SimpleCacheFactory.isEnabled:()Z
            ifeq 31
        30: .line 121
            getstatic org.aspectj.weaver.loadtime.Aj.laCache:Lorg/aspectj/weaver/tools/cache/SimpleCache;
            aload 1 /* className */
            aload 2 /* bytes */
            aload 7 /* newBytes */
            invokevirtual org.aspectj.weaver.tools.cache.SimpleCache.put:(Ljava/lang/String;[B[B)V
        31: .line 123
      StackMap locals:
      StackMap stack:
            aload 7 /* newBytes */
            astore 9
        32: .line 125
            aload 6 /* weavingAdaptor */
            aconst_null
            invokevirtual org.aspectj.weaver.tools.WeavingAdaptor.setActiveProtectionDomain:(Ljava/security/ProtectionDomain;)V
            aload 5
            monitorexit
        33: .line 139
            invokestatic org.aspectj.bridge.context.CompilationAndWeavingContext.resetForThread:()V
        34: .line 123
            aload 9
            areturn
        end local 7 // byte[] newBytes
        35: .line 124
      StackMap locals: org.aspectj.weaver.loadtime.Aj java.lang.String byte[] java.lang.ClassLoader java.security.ProtectionDomain java.lang.ClassLoader org.aspectj.weaver.tools.WeavingAdaptor
      StackMap stack: java.lang.Throwable
            astore 8
        36: .line 125
            aload 6 /* weavingAdaptor */
            aconst_null
            invokevirtual org.aspectj.weaver.tools.WeavingAdaptor.setActiveProtectionDomain:(Ljava/security/ProtectionDomain;)V
        37: .line 126
            aload 8
            athrow
        end local 6 // org.aspectj.weaver.tools.WeavingAdaptor weavingAdaptor
        38: .line 99
      StackMap locals: org.aspectj.weaver.loadtime.Aj java.lang.String byte[] java.lang.ClassLoader java.security.ProtectionDomain java.lang.ClassLoader
      StackMap stack: java.lang.Throwable
            aload 5
            monitorexit
        39: athrow
        40: .line 130
      StackMap locals: org.aspectj.weaver.loadtime.Aj java.lang.String byte[] java.lang.ClassLoader java.security.ProtectionDomain
      StackMap stack: java.lang.Throwable
            astore 5 /* th */
        start local 5 // java.lang.Throwable th
        41: .line 131
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            aload 1 /* className */
            aload 5 /* th */
            invokeinterface org.aspectj.weaver.tools.Trace.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        42: .line 132
            aload 5 /* th */
            invokestatic org.aspectj.weaver.Dump.dumpWithException:(Ljava/lang/Throwable;)Ljava/lang/String;
            pop
        43: .line 135
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            invokeinterface org.aspectj.weaver.tools.Trace.isTraceEnabled:()Z
            ifeq 45
        44: .line 136
            getstatic org.aspectj.weaver.loadtime.Aj.trace:Lorg/aspectj/weaver/tools/Trace;
            ldc "preProcess"
            aload 5 /* th */
            invokeinterface org.aspectj.weaver.tools.Trace.exit:(Ljava/lang/String;Ljava/lang/Throwable;)V
        45: .line 137
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 2 /* bytes */
            astore 11
        46: .line 139
            invokestatic org.aspectj.bridge.context.CompilationAndWeavingContext.resetForThread:()V
        47: .line 137
            aload 11
            areturn
        end local 5 // java.lang.Throwable th
        48: .line 138
      StackMap locals: org.aspectj.weaver.loadtime.Aj java.lang.String byte[] java.lang.ClassLoader java.security.ProtectionDomain
      StackMap stack: java.lang.Throwable
            astore 10
        49: .line 139
            invokestatic org.aspectj.bridge.context.CompilationAndWeavingContext.resetForThread:()V
        50: .line 140
            aload 10
            athrow
        end local 4 // java.security.ProtectionDomain protectionDomain
        end local 3 // java.lang.ClassLoader loader
        end local 2 // byte[] bytes
        end local 1 // java.lang.String className
        end local 0 // org.aspectj.weaver.loadtime.Aj this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   51     0              this  Lorg/aspectj/weaver/loadtime/Aj;
            0   51     1         className  Ljava/lang/String;
            0   51     2             bytes  [B
            0   51     3            loader  Ljava/lang/ClassLoader;
            0   51     4  protectionDomain  Ljava/security/ProtectionDomain;
           13   17     6        cacheBytes  [B
           18   38     6    weavingAdaptor  Lorg/aspectj/weaver/tools/WeavingAdaptor;
           26   35     7          newBytes  [B
           41   48     5                th  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          24    32      35  any
          11    15      38  any
          17    22      38  any
          24    33      38  any
          35    39      38  any
          10    15      40  Class java.lang.Throwable
          17    22      40  Class java.lang.Throwable
          24    33      40  Class java.lang.Throwable
          35    40      40  Class java.lang.Throwable
          10    15      48  any
          17    22      48  any
          24    33      48  any
          35    46      48  any
    MethodParameters:
                  Name  Flags
      className         
      bytes             
      loader            
      protectionDomain  

  public static int removeStaleAdaptors(boolean);
    descriptor: (Z)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=1
        start local 0 // boolean displayProgress
         0: .line 196
            iconst_0
            istore 1 /* removed */
        start local 1 // int removed
         1: .line 197
            getstatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.weavingAdaptors:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         2: .line 198
            iload 0 /* displayProgress */
            ifeq 11
         3: .line 199
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Weaver adaptors before queue processing:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 200
            getstatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.weavingAdaptors:Ljava/util/Map;
            astore 3 /* m */
        start local 3 // java.util.Map m
         5: .line 201
            aload 3 /* m */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            astore 4 /* keys */
        start local 4 // java.util.Set keys
         6: .line 202
            aload 4 /* keys */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5 /* iterator */
        start local 5 // java.util.Iterator iterator
         7: goto 10
         8: .line 203
      StackMap locals: int int java.util.Map java.util.Map java.util.Set java.util.Iterator
      StackMap stack:
            aload 5 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 6 /* object */
        start local 6 // java.lang.Object object
         9: .line 204
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 6 /* object */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.weavingAdaptors:Ljava/util/Map;
            aload 6 /* object */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 6 // java.lang.Object object
        10: .line 202
      StackMap locals:
      StackMap stack:
            aload 5 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 5 // java.util.Iterator iterator
        end local 4 // java.util.Set keys
        end local 3 // java.util.Map m
        11: .line 207
      StackMap locals:
      StackMap stack:
            getstatic org.aspectj.weaver.loadtime.Aj.adaptorQueue:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            astore 3 /* o */
        start local 3 // java.lang.Object o
        12: .line 208
            goto 26
        13: .line 209
      StackMap locals: java.lang.Object
      StackMap stack:
            iload 0 /* displayProgress */
            ifeq 15
        14: .line 210
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Processing referencequeue entry "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* o */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        15: .line 211
      StackMap locals:
      StackMap stack:
            aload 3 /* o */
            checkcast org.aspectj.weaver.loadtime.Aj$AdaptorKey
            astore 4 /* wo */
        start local 4 // org.aspectj.weaver.loadtime.Aj$AdaptorKey wo
        16: .line 212
            getstatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.weavingAdaptors:Ljava/util/Map;
            aload 4 /* wo */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 17
            iconst_1
            goto 18
      StackMap locals: org.aspectj.weaver.loadtime.Aj$AdaptorKey
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: istore 5 /* didit */
        start local 5 // boolean didit
        19: .line 213
            iload 5 /* didit */
            ifeq 22
        20: .line 214
            iinc 1 /* removed */ 1
        21: .line 215
            goto 23
        22: .line 216
      StackMap locals: int
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Eh?? key="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* wo */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        23: .line 218
      StackMap locals:
      StackMap stack:
            iload 0 /* displayProgress */
            ifeq 25
        24: .line 219
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Removed? "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* didit */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        25: .line 220
      StackMap locals:
      StackMap stack:
            getstatic org.aspectj.weaver.loadtime.Aj.adaptorQueue:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            astore 3 /* o */
        end local 5 // boolean didit
        end local 4 // org.aspectj.weaver.loadtime.Aj$AdaptorKey wo
        26: .line 208
      StackMap locals:
      StackMap stack:
            aload 3 /* o */
            ifnonnull 13
        27: .line 222
            iload 0 /* displayProgress */
            ifeq 36
        28: .line 223
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Weaver adaptors after queue processing:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        29: .line 224
            getstatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.weavingAdaptors:Ljava/util/Map;
            astore 4 /* m */
        start local 4 // java.util.Map m
        30: .line 225
            aload 4 /* m */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            astore 5 /* keys */
        start local 5 // java.util.Set keys
        31: .line 226
            aload 5 /* keys */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6 /* iterator */
        start local 6 // java.util.Iterator iterator
        32: goto 35
        33: .line 227
      StackMap locals: java.util.Map java.util.Set java.util.Iterator
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 7 /* object */
        start local 7 // java.lang.Object object
        34: .line 228
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 7 /* object */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.weavingAdaptors:Ljava/util/Map;
            aload 7 /* object */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 7 // java.lang.Object object
        35: .line 226
      StackMap locals:
      StackMap stack:
            aload 6 /* iterator */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 33
        end local 6 // java.util.Iterator iterator
        end local 5 // java.util.Set keys
        end local 4 // java.util.Map m
        end local 3 // java.lang.Object o
        36: .line 197
      StackMap locals: int int java.util.Map
      StackMap stack:
            aload 2
            monitorexit
        37: goto 40
      StackMap locals:
      StackMap stack: java.lang.Throwable
        38: aload 2
            monitorexit
        39: athrow
        40: .line 232
      StackMap locals:
      StackMap stack:
            iload 1 /* removed */
            ireturn
        end local 1 // int removed
        end local 0 // boolean displayProgress
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   41     0  displayProgress  Z
            1   41     1          removed  I
            5   11     3                m  Ljava/util/Map<Lorg/aspectj/weaver/loadtime/Aj$AdaptorKey;Lorg/aspectj/weaver/loadtime/Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor;>;
            6   11     4             keys  Ljava/util/Set<Lorg/aspectj/weaver/loadtime/Aj$AdaptorKey;>;
            7   11     5         iterator  Ljava/util/Iterator<Lorg/aspectj/weaver/loadtime/Aj$AdaptorKey;>;
            9   10     6           object  Ljava/lang/Object;
           12   36     3                o  Ljava/lang/Object;
           16   26     4               wo  Lorg/aspectj/weaver/loadtime/Aj$AdaptorKey;
           19   26     5            didit  Z
           30   36     4                m  Ljava/util/Map<Lorg/aspectj/weaver/loadtime/Aj$AdaptorKey;Lorg/aspectj/weaver/loadtime/Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor;>;
           31   36     5             keys  Ljava/util/Set<Lorg/aspectj/weaver/loadtime/Aj$AdaptorKey;>;
           32   36     6         iterator  Ljava/util/Iterator<Lorg/aspectj/weaver/loadtime/Aj$AdaptorKey;>;
           34   35     7           object  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           2    37      38  any
          38    39      38  any
    MethodParameters:
                 Name  Flags
      displayProgress  

  public static int getActiveAdaptorCount();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 239
            getstatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.weavingAdaptors:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void checkQ();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=0
         0: .line 247
            getstatic org.aspectj.weaver.loadtime.Aj.adaptorQueue:Ljava/lang/ref/ReferenceQueue;
            dup
            astore 0
            monitorenter
         1: .line 248
            getstatic org.aspectj.weaver.loadtime.Aj.adaptorQueue:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            astore 1 /* o */
        start local 1 // java.lang.Object o
         2: .line 249
            goto 6
         3: .line 250
      StackMap locals: java.lang.ref.ReferenceQueue java.lang.Object
      StackMap stack:
            aload 1 /* o */
            checkcast org.aspectj.weaver.loadtime.Aj$AdaptorKey
            astore 2 /* wo */
        start local 2 // org.aspectj.weaver.loadtime.Aj$AdaptorKey wo
         4: .line 252
            getstatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.weavingAdaptors:Ljava/util/Map;
            aload 2 /* wo */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 254
            getstatic org.aspectj.weaver.loadtime.Aj.adaptorQueue:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            astore 1 /* o */
        end local 2 // org.aspectj.weaver.loadtime.Aj$AdaptorKey wo
         6: .line 249
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            ifnonnull 3
        end local 1 // java.lang.Object o
         7: .line 247
            aload 0
            monitorexit
         8: goto 11
      StackMap locals: java.lang.ref.ReferenceQueue
      StackMap stack: java.lang.Throwable
         9: aload 0
            monitorexit
        10: athrow
        11: .line 257
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2    7     1     o  Ljava/lang/Object;
            4    6     2    wo  Lorg/aspectj/weaver/loadtime/Aj$AdaptorKey;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any

  public java.lang.String getNamespace(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.aspectj.weaver.loadtime.Aj this
        start local 1 // java.lang.ClassLoader loader
         0: .line 351
            aload 1 /* loader */
            aload 0 /* this */
            getfield org.aspectj.weaver.loadtime.Aj.weavingContext:Lorg/aspectj/weaver/loadtime/IWeavingContext;
            invokestatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver:(Ljava/lang/ClassLoader;Lorg/aspectj/weaver/loadtime/IWeavingContext;)Lorg/aspectj/weaver/tools/WeavingAdaptor;
            checkcast org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor
            astore 2 /* weavingAdaptor */
        start local 2 // org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor weavingAdaptor
         1: .line 352
            aload 2 /* weavingAdaptor */
            invokevirtual org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.getNamespace:()Ljava/lang/String;
            areturn
        end local 2 // org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor weavingAdaptor
        end local 1 // java.lang.ClassLoader loader
        end local 0 // org.aspectj.weaver.loadtime.Aj this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/aspectj/weaver/loadtime/Aj;
            0    2     1          loader  Ljava/lang/ClassLoader;
            1    2     2  weavingAdaptor  Lorg/aspectj/weaver/loadtime/ClassLoaderWeavingAdaptor;
    MethodParameters:
        Name  Flags
      loader  

  public boolean generatedClassesExist(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.loadtime.Aj this
        start local 1 // java.lang.ClassLoader loader
         0: .line 363
            aload 1 /* loader */
            aload 0 /* this */
            getfield org.aspectj.weaver.loadtime.Aj.weavingContext:Lorg/aspectj/weaver/loadtime/IWeavingContext;
            invokestatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver:(Ljava/lang/ClassLoader;Lorg/aspectj/weaver/loadtime/IWeavingContext;)Lorg/aspectj/weaver/tools/WeavingAdaptor;
            checkcast org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor
            aconst_null
            invokevirtual org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.generatedClassesExistFor:(Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.ClassLoader loader
        end local 0 // org.aspectj.weaver.loadtime.Aj this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/aspectj/weaver/loadtime/Aj;
            0    1     1  loader  Ljava/lang/ClassLoader;
    MethodParameters:
        Name  Flags
      loader  

  public void flushGeneratedClasses(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.aspectj.weaver.loadtime.Aj this
        start local 1 // java.lang.ClassLoader loader
         0: .line 367
            aload 1 /* loader */
            aload 0 /* this */
            getfield org.aspectj.weaver.loadtime.Aj.weavingContext:Lorg/aspectj/weaver/loadtime/IWeavingContext;
            invokestatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver:(Ljava/lang/ClassLoader;Lorg/aspectj/weaver/loadtime/IWeavingContext;)Lorg/aspectj/weaver/tools/WeavingAdaptor;
            checkcast org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor
            invokevirtual org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.flushGeneratedClasses:()V
         1: .line 368
            return
        end local 1 // java.lang.ClassLoader loader
        end local 0 // org.aspectj.weaver.loadtime.Aj this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/aspectj/weaver/loadtime/Aj;
            0    2     1  loader  Ljava/lang/ClassLoader;
    MethodParameters:
        Name  Flags
      loader  

  public void prepareForRedefinition(java.lang.ClassLoader, java.lang.String);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.aspectj.weaver.loadtime.Aj this
        start local 1 // java.lang.ClassLoader loader
        start local 2 // java.lang.String className
         0: .line 372
            aload 1 /* loader */
            aload 0 /* this */
            getfield org.aspectj.weaver.loadtime.Aj.weavingContext:Lorg/aspectj/weaver/loadtime/IWeavingContext;
            invokestatic org.aspectj.weaver.loadtime.Aj$WeaverContainer.getWeaver:(Ljava/lang/ClassLoader;Lorg/aspectj/weaver/loadtime/IWeavingContext;)Lorg/aspectj/weaver/tools/WeavingAdaptor;
            checkcast org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor
            aload 2 /* className */
            invokevirtual org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.flushGeneratedClassesFor:(Ljava/lang/String;)V
         1: .line 373
            return
        end local 2 // java.lang.String className
        end local 1 // java.lang.ClassLoader loader
        end local 0 // org.aspectj.weaver.loadtime.Aj this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/aspectj/weaver/loadtime/Aj;
            0    2     1     loader  Ljava/lang/ClassLoader;
            0    2     2  className  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      loader     
      className  
}
SourceFile: "Aj.java"
NestMembers:
  org.aspectj.weaver.loadtime.Aj$AdaptorKey  org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor  org.aspectj.weaver.loadtime.Aj$WeaverContainer
InnerClasses:
  private AdaptorKey = org.aspectj.weaver.loadtime.Aj$AdaptorKey of org.aspectj.weaver.loadtime.Aj
  ExplicitlyInitializedClassLoaderWeavingAdaptor = org.aspectj.weaver.loadtime.Aj$ExplicitlyInitializedClassLoaderWeavingAdaptor of org.aspectj.weaver.loadtime.Aj
  WeaverContainer = org.aspectj.weaver.loadtime.Aj$WeaverContainer of org.aspectj.weaver.loadtime.Aj