public class org.junit.runners.BlockJUnit4ClassRunner extends org.junit.runners.ParentRunner<org.junit.runners.model.FrameworkMethod>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.junit.runners.BlockJUnit4ClassRunner
  super_class: org.junit.runners.ParentRunner
{
  private final java.util.concurrent.ConcurrentHashMap<org.junit.runners.model.FrameworkMethod, org.junit.runner.Description> methodDescriptions;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Lorg/junit/runners/model/FrameworkMethod;Lorg/junit/runner/Description;>;

  public void <init>(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.lang.Class klass
         0: .line 65
            aload 0 /* this */
            aload 1 /* klass */
            invokespecial org.junit.runners.ParentRunner.<init>:(Ljava/lang/Class;)V
         1: .line 58
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.junit.runners.BlockJUnit4ClassRunner.methodDescriptions:Ljava/util/concurrent/ConcurrentHashMap;
         2: .line 66
            return
        end local 1 // java.lang.Class klass
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    3     1  klass  Ljava/lang/Class<*>;
    Exceptions:
      throws org.junit.runners.model.InitializationError
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
       Name  Flags
      klass  

  protected void runChild(org.junit.runners.model.FrameworkMethod, org.junit.runner.notification.RunNotifier);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;Lorg/junit/runner/notification/RunNotifier;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod method
        start local 2 // org.junit.runner.notification.RunNotifier notifier
         0: .line 74
            aload 0 /* this */
            aload 1 /* method */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.describeChild:(Lorg/junit/runners/model/FrameworkMethod;)Lorg/junit/runner/Description;
            astore 3 /* description */
        start local 3 // org.junit.runner.Description description
         1: .line 75
            aload 0 /* this */
            aload 1 /* method */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.isIgnored:(Lorg/junit/runners/model/FrameworkMethod;)Z
            ifeq 4
         2: .line 76
            aload 2 /* notifier */
            aload 3 /* description */
            invokevirtual org.junit.runner.notification.RunNotifier.fireTestIgnored:(Lorg/junit/runner/Description;)V
         3: .line 77
            goto 5
         4: .line 78
      StackMap locals: org.junit.runner.Description
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* method */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.methodBlock:(Lorg/junit/runners/model/FrameworkMethod;)Lorg/junit/runners/model/Statement;
            aload 3 /* description */
            aload 2 /* notifier */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.runLeaf:(Lorg/junit/runners/model/Statement;Lorg/junit/runner/Description;Lorg/junit/runner/notification/RunNotifier;)V
         5: .line 80
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.junit.runner.Description description
        end local 2 // org.junit.runner.notification.RunNotifier notifier
        end local 1 // org.junit.runners.model.FrameworkMethod method
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    6     1       method  Lorg/junit/runners/model/FrameworkMethod;
            0    6     2     notifier  Lorg/junit/runner/notification/RunNotifier;
            1    6     3  description  Lorg/junit/runner/Description;
    MethodParameters:
          Name  Flags
      method    final
      notifier  

  protected boolean isIgnored(org.junit.runners.model.FrameworkMethod);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod child
         0: .line 88
            aload 1 /* child */
            ldc Lorg/junit/Ignore;
            invokevirtual org.junit.runners.model.FrameworkMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // org.junit.runners.model.FrameworkMethod child
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    2     1  child  Lorg/junit/runners/model/FrameworkMethod;
    MethodParameters:
       Name  Flags
      child  

  protected org.junit.runner.Description describeChild(org.junit.runners.model.FrameworkMethod);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;)Lorg/junit/runner/Description;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod method
         0: .line 93
            aload 0 /* this */
            getfield org.junit.runners.BlockJUnit4ClassRunner.methodDescriptions:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* method */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.junit.runner.Description
            astore 2 /* description */
        start local 2 // org.junit.runner.Description description
         1: .line 95
            aload 2 /* description */
            ifnonnull 6
         2: .line 96
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            invokevirtual org.junit.runners.model.TestClass.getJavaClass:()Ljava/lang/Class;
         3: .line 97
            aload 0 /* this */
            aload 1 /* method */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.testName:(Lorg/junit/runners/model/FrameworkMethod;)Ljava/lang/String;
            aload 1 /* method */
            invokevirtual org.junit.runners.model.FrameworkMethod.getAnnotations:()[Ljava/lang/annotation/Annotation;
         4: .line 96
            invokestatic org.junit.runner.Description.createTestDescription:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/annotation/Annotation;)Lorg/junit/runner/Description;
            astore 2 /* description */
         5: .line 98
            aload 0 /* this */
            getfield org.junit.runners.BlockJUnit4ClassRunner.methodDescriptions:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* method */
            aload 2 /* description */
            invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 101
      StackMap locals: org.junit.runner.Description
      StackMap stack:
            aload 2 /* description */
            areturn
        end local 2 // org.junit.runner.Description description
        end local 1 // org.junit.runners.model.FrameworkMethod method
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    7     1       method  Lorg/junit/runners/model/FrameworkMethod;
            1    7     2  description  Lorg/junit/runner/Description;
    MethodParameters:
        Name  Flags
      method  

  protected java.util.List<org.junit.runners.model.FrameworkMethod> getChildren();
    descriptor: ()Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
         0: .line 106
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.computeTestMethods:()Ljava/util/List;
            areturn
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/runners/BlockJUnit4ClassRunner;
    Signature: ()Ljava/util/List<Lorg/junit/runners/model/FrameworkMethod;>;

  protected java.util.List<org.junit.runners.model.FrameworkMethod> computeTestMethods();
    descriptor: ()Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
         0: .line 119
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            ldc Lorg/junit/Test;
            invokevirtual org.junit.runners.model.TestClass.getAnnotatedMethods:(Ljava/lang/Class;)Ljava/util/List;
            areturn
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/runners/BlockJUnit4ClassRunner;
    Signature: ()Ljava/util/List<Lorg/junit/runners/model/FrameworkMethod;>;

  protected void collectInitializationErrors(java.util.List<java.lang.Throwable>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.util.List errors
         0: .line 124
            aload 0 /* this */
            aload 1 /* errors */
            invokespecial org.junit.runners.ParentRunner.collectInitializationErrors:(Ljava/util/List;)V
         1: .line 126
            aload 0 /* this */
            aload 1 /* errors */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.validateNoNonStaticInnerClass:(Ljava/util/List;)V
         2: .line 127
            aload 0 /* this */
            aload 1 /* errors */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.validateConstructor:(Ljava/util/List;)V
         3: .line 128
            aload 0 /* this */
            aload 1 /* errors */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods:(Ljava/util/List;)V
         4: .line 129
            aload 0 /* this */
            aload 1 /* errors */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.validateFields:(Ljava/util/List;)V
         5: .line 130
            aload 0 /* this */
            aload 1 /* errors */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.validateMethods:(Ljava/util/List;)V
         6: .line 131
            return
        end local 1 // java.util.List errors
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    7     1  errors  Ljava/util/List<Ljava/lang/Throwable;>;
    Signature: (Ljava/util/List<Ljava/lang/Throwable;>;)V
    MethodParameters:
        Name  Flags
      errors  

  protected void validateNoNonStaticInnerClass(java.util.List<java.lang.Throwable>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.util.List errors
         0: .line 134
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            invokevirtual org.junit.runners.model.TestClass.isANonStaticInnerClass:()Z
            ifeq 5
         1: .line 135
            new java.lang.StringBuilder
            dup
            ldc "The inner class "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            invokevirtual org.junit.runners.model.TestClass.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 136
            ldc " is not static."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 135
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* gripe */
        start local 2 // java.lang.String gripe
         4: .line 137
            aload 1 /* errors */
            new java.lang.Exception
            dup
            aload 2 /* gripe */
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String gripe
         5: .line 139
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List errors
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    6     1  errors  Ljava/util/List<Ljava/lang/Throwable;>;
            4    5     2   gripe  Ljava/lang/String;
    Signature: (Ljava/util/List<Ljava/lang/Throwable;>;)V
    MethodParameters:
        Name  Flags
      errors  

  protected void validateConstructor(java.util.List<java.lang.Throwable>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.util.List errors
         0: .line 147
            aload 0 /* this */
            aload 1 /* errors */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.validateOnlyOneConstructor:(Ljava/util/List;)V
         1: .line 148
            aload 0 /* this */
            aload 1 /* errors */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.validateZeroArgConstructor:(Ljava/util/List;)V
         2: .line 149
            return
        end local 1 // java.util.List errors
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    3     1  errors  Ljava/util/List<Ljava/lang/Throwable;>;
    Signature: (Ljava/util/List<Ljava/lang/Throwable;>;)V
    MethodParameters:
        Name  Flags
      errors  

  protected void validateOnlyOneConstructor(java.util.List<java.lang.Throwable>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.util.List errors
         0: .line 156
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.hasOneConstructor:()Z
            ifne 3
         1: .line 157
            ldc "Test class should have exactly one public constructor"
            astore 2 /* gripe */
        start local 2 // java.lang.String gripe
         2: .line 158
            aload 1 /* errors */
            new java.lang.Exception
            dup
            aload 2 /* gripe */
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String gripe
         3: .line 160
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List errors
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    4     1  errors  Ljava/util/List<Ljava/lang/Throwable;>;
            2    3     2   gripe  Ljava/lang/String;
    Signature: (Ljava/util/List<Ljava/lang/Throwable;>;)V
    MethodParameters:
        Name  Flags
      errors  

  protected void validateZeroArgConstructor(java.util.List<java.lang.Throwable>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.util.List errors
         0: .line 167
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            invokevirtual org.junit.runners.model.TestClass.isANonStaticInnerClass:()Z
            ifne 5
         1: .line 168
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.hasOneConstructor:()Z
            ifeq 5
         2: .line 169
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            invokevirtual org.junit.runners.model.TestClass.getOnlyConstructor:()Ljava/lang/reflect/Constructor;
            invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
            arraylength
            ifeq 5
         3: .line 170
            ldc "Test class should have exactly one public zero-argument constructor"
            astore 2 /* gripe */
        start local 2 // java.lang.String gripe
         4: .line 171
            aload 1 /* errors */
            new java.lang.Exception
            dup
            aload 2 /* gripe */
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String gripe
         5: .line 173
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List errors
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    6     1  errors  Ljava/util/List<Ljava/lang/Throwable;>;
            4    5     2   gripe  Ljava/lang/String;
    Signature: (Ljava/util/List<Ljava/lang/Throwable;>;)V
    MethodParameters:
        Name  Flags
      errors  

  private boolean hasOneConstructor();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
         0: .line 176
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            invokevirtual org.junit.runners.model.TestClass.getJavaClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getConstructors:()[Ljava/lang/reflect/Constructor;
            arraylength
            iconst_1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/junit/runners/BlockJUnit4ClassRunner;

  protected void validateInstanceMethods(java.util.List<java.lang.Throwable>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.util.List errors
         0: .line 186
            aload 0 /* this */
            ldc Lorg/junit/After;
            iconst_0
            aload 1 /* errors */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.validatePublicVoidNoArgMethods:(Ljava/lang/Class;ZLjava/util/List;)V
         1: .line 187
            aload 0 /* this */
            ldc Lorg/junit/Before;
            iconst_0
            aload 1 /* errors */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.validatePublicVoidNoArgMethods:(Ljava/lang/Class;ZLjava/util/List;)V
         2: .line 188
            aload 0 /* this */
            aload 1 /* errors */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.validateTestMethods:(Ljava/util/List;)V
         3: .line 190
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.computeTestMethods:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifne 5
         4: .line 191
            aload 1 /* errors */
            new java.lang.Exception
            dup
            ldc "No runnable methods"
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 193
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List errors
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    6     1  errors  Ljava/util/List<Ljava/lang/Throwable;>;
    Signature: (Ljava/util/List<Ljava/lang/Throwable;>;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      errors  

  protected void validateFields(java.util.List<java.lang.Throwable>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.util.List errors
         0: .line 196
            getstatic org.junit.internal.runners.rules.RuleMemberValidator.RULE_VALIDATOR:Lorg/junit/internal/runners/rules/RuleMemberValidator;
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            aload 1 /* errors */
            invokevirtual org.junit.internal.runners.rules.RuleMemberValidator.validate:(Lorg/junit/runners/model/TestClass;Ljava/util/List;)V
         1: .line 197
            return
        end local 1 // java.util.List errors
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    2     1  errors  Ljava/util/List<Ljava/lang/Throwable;>;
    Signature: (Ljava/util/List<Ljava/lang/Throwable;>;)V
    MethodParameters:
        Name  Flags
      errors  

  private void validateMethods(java.util.List<java.lang.Throwable>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.util.List errors
         0: .line 200
            getstatic org.junit.internal.runners.rules.RuleMemberValidator.RULE_METHOD_VALIDATOR:Lorg/junit/internal/runners/rules/RuleMemberValidator;
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            aload 1 /* errors */
            invokevirtual org.junit.internal.runners.rules.RuleMemberValidator.validate:(Lorg/junit/runners/model/TestClass;Ljava/util/List;)V
         1: .line 201
            return
        end local 1 // java.util.List errors
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    2     1  errors  Ljava/util/List<Ljava/lang/Throwable;>;
    Signature: (Ljava/util/List<Ljava/lang/Throwable;>;)V
    MethodParameters:
        Name  Flags
      errors  

  protected void validateTestMethods(java.util.List<java.lang.Throwable>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.util.List errors
         0: .line 208
            aload 0 /* this */
            ldc Lorg/junit/Test;
            iconst_0
            aload 1 /* errors */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.validatePublicVoidNoArgMethods:(Ljava/lang/Class;ZLjava/util/List;)V
         1: .line 209
            return
        end local 1 // java.util.List errors
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    2     1  errors  Ljava/util/List<Ljava/lang/Throwable;>;
    Signature: (Ljava/util/List<Ljava/lang/Throwable;>;)V
    MethodParameters:
        Name  Flags
      errors  

  protected java.lang.Object createTest();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
         0: .line 217
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            invokevirtual org.junit.runners.model.TestClass.getOnlyConstructor:()Ljava/lang/reflect/Constructor;
            iconst_0
            anewarray java.lang.Object
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/junit/runners/BlockJUnit4ClassRunner;
    Exceptions:
      throws java.lang.Exception

  protected java.lang.String testName(org.junit.runners.model.FrameworkMethod);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod method
         0: .line 225
            aload 1 /* method */
            invokevirtual org.junit.runners.model.FrameworkMethod.getName:()Ljava/lang/String;
            areturn
        end local 1 // org.junit.runners.model.FrameworkMethod method
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    1     1  method  Lorg/junit/runners/model/FrameworkMethod;
    MethodParameters:
        Name  Flags
      method  

  protected org.junit.runners.model.Statement methodBlock(org.junit.runners.model.FrameworkMethod);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;)Lorg/junit/runners/model/Statement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod method
         0: .line 263
            new org.junit.runners.BlockJUnit4ClassRunner$1
            dup
            aload 0 /* this */
            invokespecial org.junit.runners.BlockJUnit4ClassRunner$1.<init>:(Lorg/junit/runners/BlockJUnit4ClassRunner;)V
         1: .line 268
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner$1.run:()Ljava/lang/Object;
         2: .line 263
            astore 2 /* test */
        start local 2 // java.lang.Object test
         3: .line 269
            goto 6
        end local 2 // java.lang.Object test
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 3 /* e */
        start local 3 // java.lang.Throwable e
         5: .line 270
            new org.junit.internal.runners.statements.Fail
            dup
            aload 3 /* e */
            invokespecial org.junit.internal.runners.statements.Fail.<init>:(Ljava/lang/Throwable;)V
            areturn
        end local 3 // java.lang.Throwable e
        start local 2 // java.lang.Object test
         6: .line 273
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            aload 1 /* method */
            aload 2 /* test */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.methodInvoker:(Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;)Lorg/junit/runners/model/Statement;
            astore 3 /* statement */
        start local 3 // org.junit.runners.model.Statement statement
         7: .line 274
            aload 0 /* this */
            aload 1 /* method */
            aload 2 /* test */
            aload 3 /* statement */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.possiblyExpectingExceptions:(Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
            astore 3 /* statement */
         8: .line 275
            aload 0 /* this */
            aload 1 /* method */
            aload 2 /* test */
            aload 3 /* statement */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.withPotentialTimeout:(Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
            astore 3 /* statement */
         9: .line 276
            aload 0 /* this */
            aload 1 /* method */
            aload 2 /* test */
            aload 3 /* statement */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.withBefores:(Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
            astore 3 /* statement */
        10: .line 277
            aload 0 /* this */
            aload 1 /* method */
            aload 2 /* test */
            aload 3 /* statement */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.withAfters:(Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
            astore 3 /* statement */
        11: .line 278
            aload 0 /* this */
            aload 1 /* method */
            aload 2 /* test */
            aload 3 /* statement */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.withRules:(Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
            astore 3 /* statement */
        12: .line 279
            aload 3 /* statement */
            areturn
        end local 3 // org.junit.runners.model.Statement statement
        end local 2 // java.lang.Object test
        end local 1 // org.junit.runners.model.FrameworkMethod method
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0   13     1     method  Lorg/junit/runners/model/FrameworkMethod;
            3    4     2       test  Ljava/lang/Object;
            6   13     2       test  Ljava/lang/Object;
            5    6     3          e  Ljava/lang/Throwable;
            7   13     3  statement  Lorg/junit/runners/model/Statement;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Throwable
    MethodParameters:
        Name  Flags
      method  

  protected org.junit.runners.model.Statement methodInvoker(org.junit.runners.model.FrameworkMethod, java.lang.Object);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;)Lorg/junit/runners/model/Statement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod method
        start local 2 // java.lang.Object test
         0: .line 290
            new org.junit.internal.runners.statements.InvokeMethod
            dup
            aload 1 /* method */
            aload 2 /* test */
            invokespecial org.junit.internal.runners.statements.InvokeMethod.<init>:(Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;)V
            areturn
        end local 2 // java.lang.Object test
        end local 1 // org.junit.runners.model.FrameworkMethod method
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    1     1  method  Lorg/junit/runners/model/FrameworkMethod;
            0    1     2    test  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      method  
      test    

  protected org.junit.runners.model.Statement possiblyExpectingExceptions(org.junit.runners.model.FrameworkMethod, java.lang.Object, org.junit.runners.model.Statement);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod method
        start local 2 // java.lang.Object test
        start local 3 // org.junit.runners.model.Statement next
         0: .line 301
            aload 1 /* method */
            ldc Lorg/junit/Test;
            invokevirtual org.junit.runners.model.FrameworkMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast org.junit.Test
            astore 4 /* annotation */
        start local 4 // org.junit.Test annotation
         1: .line 302
            aload 0 /* this */
            aload 4 /* annotation */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.expectsException:(Lorg/junit/Test;)Z
            ifeq 3
            new org.junit.internal.runners.statements.ExpectException
            dup
            aload 3 /* next */
         2: .line 303
            aload 0 /* this */
            aload 4 /* annotation */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getExpectedException:(Lorg/junit/Test;)Ljava/lang/Class;
            invokespecial org.junit.internal.runners.statements.ExpectException.<init>:(Lorg/junit/runners/model/Statement;Ljava/lang/Class;)V
            goto 4
      StackMap locals: org.junit.Test
      StackMap stack:
         3: aload 3 /* next */
         4: .line 302
      StackMap locals:
      StackMap stack: org.junit.runners.model.Statement
            areturn
        end local 4 // org.junit.Test annotation
        end local 3 // org.junit.runners.model.Statement next
        end local 2 // java.lang.Object test
        end local 1 // org.junit.runners.model.FrameworkMethod method
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    5     1      method  Lorg/junit/runners/model/FrameworkMethod;
            0    5     2        test  Ljava/lang/Object;
            0    5     3        next  Lorg/junit/runners/model/Statement;
            1    5     4  annotation  Lorg/junit/Test;
    MethodParameters:
        Name  Flags
      method  
      test    
      next    

  protected org.junit.runners.model.Statement withPotentialTimeout(org.junit.runners.model.FrameworkMethod, java.lang.Object, org.junit.runners.model.Statement);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod method
        start local 2 // java.lang.Object test
        start local 3 // org.junit.runners.model.Statement next
         0: .line 314
            aload 0 /* this */
            aload 1 /* method */
            ldc Lorg/junit/Test;
            invokevirtual org.junit.runners.model.FrameworkMethod.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast org.junit.Test
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTimeout:(Lorg/junit/Test;)J
            lstore 4 /* timeout */
        start local 4 // long timeout
         1: .line 315
            lload 4 /* timeout */
            lconst_0
            lcmp
            ifgt 3
         2: .line 316
            aload 3 /* next */
            areturn
         3: .line 318
      StackMap locals: long
      StackMap stack:
            invokestatic org.junit.internal.runners.statements.FailOnTimeout.builder:()Lorg/junit/internal/runners/statements/FailOnTimeout$Builder;
         4: .line 319
            lload 4 /* timeout */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.junit.internal.runners.statements.FailOnTimeout$Builder.withTimeout:(JLjava/util/concurrent/TimeUnit;)Lorg/junit/internal/runners/statements/FailOnTimeout$Builder;
         5: .line 320
            aload 3 /* next */
            invokevirtual org.junit.internal.runners.statements.FailOnTimeout$Builder.build:(Lorg/junit/runners/model/Statement;)Lorg/junit/internal/runners/statements/FailOnTimeout;
         6: .line 318
            areturn
        end local 4 // long timeout
        end local 3 // org.junit.runners.model.Statement next
        end local 2 // java.lang.Object test
        end local 1 // org.junit.runners.model.FrameworkMethod method
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    7     1   method  Lorg/junit/runners/model/FrameworkMethod;
            0    7     2     test  Ljava/lang/Object;
            0    7     3     next  Lorg/junit/runners/model/Statement;
            1    7     4  timeout  J
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      method  
      test    
      next    

  protected org.junit.runners.model.Statement withBefores(org.junit.runners.model.FrameworkMethod, java.lang.Object, org.junit.runners.model.Statement);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod method
        start local 2 // java.lang.Object target
        start local 3 // org.junit.runners.model.Statement statement
         0: .line 330
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
         1: .line 331
            ldc Lorg/junit/Before;
         2: .line 330
            invokevirtual org.junit.runners.model.TestClass.getAnnotatedMethods:(Ljava/lang/Class;)Ljava/util/List;
            astore 4 /* befores */
        start local 4 // java.util.List befores
         3: .line 332
            aload 4 /* befores */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 4
            aload 3 /* statement */
            goto 6
      StackMap locals: java.util.List
      StackMap stack:
         4: new org.junit.internal.runners.statements.RunBefores
            dup
            aload 3 /* statement */
         5: .line 333
            aload 4 /* befores */
            aload 2 /* target */
            invokespecial org.junit.internal.runners.statements.RunBefores.<init>:(Lorg/junit/runners/model/Statement;Ljava/util/List;Ljava/lang/Object;)V
         6: .line 332
      StackMap locals:
      StackMap stack: org.junit.runners.model.Statement
            areturn
        end local 4 // java.util.List befores
        end local 3 // org.junit.runners.model.Statement statement
        end local 2 // java.lang.Object target
        end local 1 // org.junit.runners.model.FrameworkMethod method
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    7     1     method  Lorg/junit/runners/model/FrameworkMethod;
            0    7     2     target  Ljava/lang/Object;
            0    7     3  statement  Lorg/junit/runners/model/Statement;
            3    7     4    befores  Ljava/util/List<Lorg/junit/runners/model/FrameworkMethod;>;
    MethodParameters:
           Name  Flags
      method     
      target     
      statement  

  protected org.junit.runners.model.Statement withAfters(org.junit.runners.model.FrameworkMethod, java.lang.Object, org.junit.runners.model.Statement);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod method
        start local 2 // java.lang.Object target
        start local 3 // org.junit.runners.model.Statement statement
         0: .line 345
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
         1: .line 346
            ldc Lorg/junit/After;
         2: .line 345
            invokevirtual org.junit.runners.model.TestClass.getAnnotatedMethods:(Ljava/lang/Class;)Ljava/util/List;
            astore 4 /* afters */
        start local 4 // java.util.List afters
         3: .line 347
            aload 4 /* afters */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 4
            aload 3 /* statement */
            goto 6
      StackMap locals: java.util.List
      StackMap stack:
         4: new org.junit.internal.runners.statements.RunAfters
            dup
            aload 3 /* statement */
            aload 4 /* afters */
         5: .line 348
            aload 2 /* target */
            invokespecial org.junit.internal.runners.statements.RunAfters.<init>:(Lorg/junit/runners/model/Statement;Ljava/util/List;Ljava/lang/Object;)V
         6: .line 347
      StackMap locals:
      StackMap stack: org.junit.runners.model.Statement
            areturn
        end local 4 // java.util.List afters
        end local 3 // org.junit.runners.model.Statement statement
        end local 2 // java.lang.Object target
        end local 1 // org.junit.runners.model.FrameworkMethod method
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    7     1     method  Lorg/junit/runners/model/FrameworkMethod;
            0    7     2     target  Ljava/lang/Object;
            0    7     3  statement  Lorg/junit/runners/model/Statement;
            3    7     4     afters  Ljava/util/List<Lorg/junit/runners/model/FrameworkMethod;>;
    MethodParameters:
           Name  Flags
      method     
      target     
      statement  

  private org.junit.runners.model.Statement withRules(org.junit.runners.model.FrameworkMethod, java.lang.Object, org.junit.runners.model.Statement);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod method
        start local 2 // java.lang.Object target
        start local 3 // org.junit.runners.model.Statement statement
         0: .line 353
            aload 0 /* this */
            aload 2 /* target */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestRules:(Ljava/lang/Object;)Ljava/util/List;
            astore 4 /* testRules */
        start local 4 // java.util.List testRules
         1: .line 354
            aload 3 /* statement */
            astore 5 /* result */
        start local 5 // org.junit.runners.model.Statement result
         2: .line 355
            aload 0 /* this */
            aload 1 /* method */
            aload 4 /* testRules */
            aload 2 /* target */
            aload 5 /* result */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.withMethodRules:(Lorg/junit/runners/model/FrameworkMethod;Ljava/util/List;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
            astore 5 /* result */
         3: .line 356
            aload 0 /* this */
            aload 1 /* method */
            aload 4 /* testRules */
            aload 5 /* result */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.withTestRules:(Lorg/junit/runners/model/FrameworkMethod;Ljava/util/List;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
            astore 5 /* result */
         4: .line 358
            aload 5 /* result */
            areturn
        end local 5 // org.junit.runners.model.Statement result
        end local 4 // java.util.List testRules
        end local 3 // org.junit.runners.model.Statement statement
        end local 2 // java.lang.Object target
        end local 1 // org.junit.runners.model.FrameworkMethod method
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    5     1     method  Lorg/junit/runners/model/FrameworkMethod;
            0    5     2     target  Ljava/lang/Object;
            0    5     3  statement  Lorg/junit/runners/model/Statement;
            1    5     4  testRules  Ljava/util/List<Lorg/junit/rules/TestRule;>;
            2    5     5     result  Lorg/junit/runners/model/Statement;
    MethodParameters:
           Name  Flags
      method     
      target     
      statement  

  private org.junit.runners.model.Statement withMethodRules(org.junit.runners.model.FrameworkMethod, java.util.List<org.junit.rules.TestRule>, , org.junit.runners.model.Statement);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;Ljava/util/List;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=5
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod method
        start local 2 // java.util.List testRules
        start local 3 // java.lang.Object target
        start local 4 // org.junit.runners.model.Statement result
         0: .line 363
            aload 0 /* this */
            aload 3 /* target */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getMethodRules:(Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 4
      StackMap locals: org.junit.runners.BlockJUnit4ClassRunner org.junit.runners.model.FrameworkMethod java.util.List java.lang.Object org.junit.runners.model.Statement top java.util.Iterator
      StackMap stack:
         1: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.junit.rules.MethodRule
            astore 5 /* each */
        start local 5 // org.junit.rules.MethodRule each
         2: .line 364
            aload 2 /* testRules */
            aload 5 /* each */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 365
            aload 5 /* each */
            aload 4 /* result */
            aload 1 /* method */
            aload 3 /* target */
            invokeinterface org.junit.rules.MethodRule.apply:(Lorg/junit/runners/model/Statement;Lorg/junit/runners/model/FrameworkMethod;Ljava/lang/Object;)Lorg/junit/runners/model/Statement;
            astore 4 /* result */
        end local 5 // org.junit.rules.MethodRule each
         4: .line 363
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 368
            aload 4 /* result */
            areturn
        end local 4 // org.junit.runners.model.Statement result
        end local 3 // java.lang.Object target
        end local 2 // java.util.List testRules
        end local 1 // org.junit.runners.model.FrameworkMethod method
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    6     1     method  Lorg/junit/runners/model/FrameworkMethod;
            0    6     2  testRules  Ljava/util/List<Lorg/junit/rules/TestRule;>;
            0    6     3     target  Ljava/lang/Object;
            0    6     4     result  Lorg/junit/runners/model/Statement;
            2    4     5       each  Lorg/junit/rules/MethodRule;
    Signature: (Lorg/junit/runners/model/FrameworkMethod;Ljava/util/List<Lorg/junit/rules/TestRule;>;Ljava/lang/Object;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
    MethodParameters:
           Name  Flags
      method     
      testRules  
      target     
      result     

  private java.util.List<org.junit.rules.MethodRule> getMethodRules();
    descriptor: (Ljava/lang/Object;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.lang.Object target
         0: .line 372
            aload 0 /* this */
            aload 1 /* target */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.rules:(Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 1 // java.lang.Object target
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    1     1  target  Ljava/lang/Object;
    Signature: (Ljava/lang/Object;)Ljava/util/List<Lorg/junit/rules/MethodRule;>;
    MethodParameters:
        Name  Flags
      target  

  protected java.util.List<org.junit.rules.MethodRule> rules();
    descriptor: (Ljava/lang/Object;)Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.lang.Object target
         0: .line 381
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            aload 1 /* target */
         1: .line 382
            ldc Lorg/junit/Rule;
            ldc Lorg/junit/rules/MethodRule;
         2: .line 381
            invokevirtual org.junit.runners.model.TestClass.getAnnotatedMethodValues:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/List;
            astore 2 /* rules */
        start local 2 // java.util.List rules
         3: .line 384
            aload 2 /* rules */
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            aload 1 /* target */
         4: .line 385
            ldc Lorg/junit/Rule;
            ldc Lorg/junit/rules/MethodRule;
         5: .line 384
            invokevirtual org.junit.runners.model.TestClass.getAnnotatedFieldValues:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         6: .line 387
            aload 2 /* rules */
            areturn
        end local 2 // java.util.List rules
        end local 1 // java.lang.Object target
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    7     1  target  Ljava/lang/Object;
            3    7     2   rules  Ljava/util/List<Lorg/junit/rules/MethodRule;>;
    Signature: (Ljava/lang/Object;)Ljava/util/List<Lorg/junit/rules/MethodRule;>;
    MethodParameters:
        Name  Flags
      target  

  private org.junit.runners.model.Statement withTestRules(org.junit.runners.model.FrameworkMethod, java.util.List<org.junit.rules.TestRule>, org.junit.runners.model.Statement);
    descriptor: (Lorg/junit/runners/model/FrameworkMethod;Ljava/util/List;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.runners.model.FrameworkMethod method
        start local 2 // java.util.List testRules
        start local 3 // org.junit.runners.model.Statement statement
         0: .line 400
            aload 2 /* testRules */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 1
            aload 3 /* statement */
            goto 2
         1: .line 401
      StackMap locals:
      StackMap stack:
            new org.junit.rules.RunRules
            dup
            aload 3 /* statement */
            aload 2 /* testRules */
            aload 0 /* this */
            aload 1 /* method */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.describeChild:(Lorg/junit/runners/model/FrameworkMethod;)Lorg/junit/runner/Description;
            invokespecial org.junit.rules.RunRules.<init>:(Lorg/junit/runners/model/Statement;Ljava/lang/Iterable;Lorg/junit/runner/Description;)V
         2: .line 400
      StackMap locals:
      StackMap stack: org.junit.runners.model.Statement
            areturn
        end local 3 // org.junit.runners.model.Statement statement
        end local 2 // java.util.List testRules
        end local 1 // org.junit.runners.model.FrameworkMethod method
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    3     1     method  Lorg/junit/runners/model/FrameworkMethod;
            0    3     2  testRules  Ljava/util/List<Lorg/junit/rules/TestRule;>;
            0    3     3  statement  Lorg/junit/runners/model/Statement;
    Signature: (Lorg/junit/runners/model/FrameworkMethod;Ljava/util/List<Lorg/junit/rules/TestRule;>;Lorg/junit/runners/model/Statement;)Lorg/junit/runners/model/Statement;
    MethodParameters:
           Name  Flags
      method     
      testRules  
      statement  

  protected java.util.List<org.junit.rules.TestRule> getTestRules();
    descriptor: (Ljava/lang/Object;)Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // java.lang.Object target
         0: .line 410
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            aload 1 /* target */
         1: .line 411
            ldc Lorg/junit/Rule;
            ldc Lorg/junit/rules/TestRule;
         2: .line 410
            invokevirtual org.junit.runners.model.TestClass.getAnnotatedMethodValues:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/List;
            astore 2 /* result */
        start local 2 // java.util.List result
         3: .line 413
            aload 2 /* result */
            aload 0 /* this */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getTestClass:()Lorg/junit/runners/model/TestClass;
            aload 1 /* target */
         4: .line 414
            ldc Lorg/junit/Rule;
            ldc Lorg/junit/rules/TestRule;
         5: .line 413
            invokevirtual org.junit.runners.model.TestClass.getAnnotatedFieldValues:(Ljava/lang/Object;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         6: .line 416
            aload 2 /* result */
            areturn
        end local 2 // java.util.List result
        end local 1 // java.lang.Object target
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    7     1  target  Ljava/lang/Object;
            3    7     2  result  Ljava/util/List<Lorg/junit/rules/TestRule;>;
    Signature: (Ljava/lang/Object;)Ljava/util/List<Lorg/junit/rules/TestRule;>;
    MethodParameters:
        Name  Flags
      target  

  private java.lang.Class<? extends java.lang.Throwable> getExpectedException(org.junit.Test);
    descriptor: (Lorg/junit/Test;)Ljava/lang/Class;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.Test annotation
         0: .line 420
            aload 1 /* annotation */
            ifnull 1
            aload 1 /* annotation */
            invokeinterface org.junit.Test.expected:()Ljava/lang/Class;
            ldc Lorg/junit/Test$None;
            if_acmpne 2
         1: .line 421
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 423
      StackMap locals:
      StackMap stack:
            aload 1 /* annotation */
            invokeinterface org.junit.Test.expected:()Ljava/lang/Class;
            areturn
        end local 1 // org.junit.Test annotation
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    3     1  annotation  Lorg/junit/Test;
    Signature: (Lorg/junit/Test;)Ljava/lang/Class<+Ljava/lang/Throwable;>;
    MethodParameters:
            Name  Flags
      annotation  

  private boolean expectsException(org.junit.Test);
    descriptor: (Lorg/junit/Test;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.Test annotation
         0: .line 428
            aload 0 /* this */
            aload 1 /* annotation */
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.getExpectedException:(Lorg/junit/Test;)Ljava/lang/Class;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // org.junit.Test annotation
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    2     1  annotation  Lorg/junit/Test;
    MethodParameters:
            Name  Flags
      annotation  

  private long getTimeout(org.junit.Test);
    descriptor: (Lorg/junit/Test;)J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.junit.runners.BlockJUnit4ClassRunner this
        start local 1 // org.junit.Test annotation
         0: .line 432
            aload 1 /* annotation */
            ifnonnull 2
         1: .line 433
            lconst_0
            lreturn
         2: .line 435
      StackMap locals:
      StackMap stack:
            aload 1 /* annotation */
            invokeinterface org.junit.Test.timeout:()J
            lreturn
        end local 1 // org.junit.Test annotation
        end local 0 // org.junit.runners.BlockJUnit4ClassRunner this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/junit/runners/BlockJUnit4ClassRunner;
            0    3     1  annotation  Lorg/junit/Test;
    MethodParameters:
            Name  Flags
      annotation  

  protected boolean isIgnored(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.junit.runners.model.FrameworkMethod
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.isIgnored:(Lorg/junit/runners/model/FrameworkMethod;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected org.junit.runner.Description describeChild(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/junit/runner/Description;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.junit.runners.model.FrameworkMethod
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.describeChild:(Lorg/junit/runners/model/FrameworkMethod;)Lorg/junit/runner/Description;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void runChild(java.lang.Object, org.junit.runner.notification.RunNotifier);
    descriptor: (Ljava/lang/Object;Lorg/junit/runner/notification/RunNotifier;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast org.junit.runners.model.FrameworkMethod
            aload 2
            invokevirtual org.junit.runners.BlockJUnit4ClassRunner.runChild:(Lorg/junit/runners/model/FrameworkMethod;Lorg/junit/runner/notification/RunNotifier;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Lorg/junit/runners/ParentRunner<Lorg/junit/runners/model/FrameworkMethod;>;
SourceFile: "BlockJUnit4ClassRunner.java"
NestMembers:
  org.junit.runners.BlockJUnit4ClassRunner$1
InnerClasses:
  public None = org.junit.Test$None of org.junit.Test
  public Builder = org.junit.internal.runners.statements.FailOnTimeout$Builder of org.junit.internal.runners.statements.FailOnTimeout
  org.junit.runners.BlockJUnit4ClassRunner$1