final class org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap
  super_class: java.lang.Object
{
  private volatile int volatileFlag;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$ProcessorState singleProcessorState;
    descriptor: Lorg/glassfish/grizzly/nio/NIOConnection$ProcessorStatesMap$ProcessorState;
    flags: (0x0002) ACC_PRIVATE

  private java.util.concurrent.ConcurrentMap<org.glassfish.grizzly.Processor, java.lang.Object> processorStatesMap;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/concurrent/ConcurrentMap<Lorg/glassfish/grizzly/Processor;Ljava/lang/Object;>;

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap this
         0: .line 952
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/grizzly/nio/NIOConnection$ProcessorStatesMap;

  public <E> E getState(org.glassfish.grizzly.Processor, org.glassfish.grizzly.utils.NullaryFunction<E>);
    descriptor: (Lorg/glassfish/grizzly/Processor;Lorg/glassfish/grizzly/utils/NullaryFunction;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap this
        start local 1 // org.glassfish.grizzly.Processor processor
        start local 2 // org.glassfish.grizzly.utils.NullaryFunction stateFactory
         0: .line 960
            aload 0 /* this */
            getfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap.volatileFlag:I
            istore 3 /* c */
        start local 3 // int c
         1: .line 961
            iload 3 /* c */
            ifne 3
         2: .line 963
            aload 0 /* this */
            aload 1 /* processor */
            aload 2 /* stateFactory */
            invokevirtual org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap.getStateSync:(Lorg/glassfish/grizzly/Processor;Lorg/glassfish/grizzly/utils/NullaryFunction;)Ljava/lang/Object;
            areturn
         3: .line 965
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap.singleProcessorState:Lorg/glassfish/grizzly/nio/NIOConnection$ProcessorStatesMap$ProcessorState;
            astore 4 /* localProcessorState */
        start local 4 // org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$ProcessorState localProcessorState
         4: .line 966
            aload 4 /* localProcessorState */
            ifnull 7
         5: .line 967
            aload 4 /* localProcessorState */
            getfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$ProcessorState.processor:Lorg/glassfish/grizzly/Processor;
            aload 1 /* processor */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 969
            aload 4 /* localProcessorState */
            getfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$ProcessorState.state:Ljava/lang/Object;
            areturn
         7: .line 972
      StackMap locals: org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$ProcessorState
      StackMap stack:
            aload 0 /* this */
            aload 1 /* processor */
            aload 2 /* stateFactory */
            invokevirtual org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap.getStateSync:(Lorg/glassfish/grizzly/Processor;Lorg/glassfish/grizzly/utils/NullaryFunction;)Ljava/lang/Object;
            areturn
         8: .line 978
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* processor */
            aload 2 /* stateFactory */
            invokestatic org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$StaticMapAccessor.getFromMap:(Lorg/glassfish/grizzly/nio/NIOConnection$ProcessorStatesMap;Lorg/glassfish/grizzly/Processor;Lorg/glassfish/grizzly/utils/NullaryFunction;)Ljava/lang/Object;
            areturn
        end local 4 // org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$ProcessorState localProcessorState
        end local 3 // int c
        end local 2 // org.glassfish.grizzly.utils.NullaryFunction stateFactory
        end local 1 // org.glassfish.grizzly.Processor processor
        end local 0 // org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Lorg/glassfish/grizzly/nio/NIOConnection$ProcessorStatesMap;
            0    9     1            processor  Lorg/glassfish/grizzly/Processor;
            0    9     2         stateFactory  Lorg/glassfish/grizzly/utils/NullaryFunction<TE;>;
            1    9     3                    c  I
            4    9     4  localProcessorState  Lorg/glassfish/grizzly/nio/NIOConnection$ProcessorStatesMap$ProcessorState;
    Signature: <E:Ljava/lang/Object;>(Lorg/glassfish/grizzly/Processor;Lorg/glassfish/grizzly/utils/NullaryFunction<TE;>;)TE;
    MethodParameters:
              Name  Flags
      processor     final
      stateFactory  final

  private synchronized <E>  getStateSync(org.glassfish.grizzly.Processor, org.glassfish.grizzly.utils.NullaryFunction<E>);
    descriptor: (Lorg/glassfish/grizzly/Processor;Lorg/glassfish/grizzly/utils/NullaryFunction;)Ljava/lang/Object;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap this
        start local 1 // org.glassfish.grizzly.Processor processor
        start local 2 // org.glassfish.grizzly.utils.NullaryFunction stateFactory
         0: .line 983
            aload 0 /* this */
            getfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap.volatileFlag:I
            ifne 5
         1: .line 984
            aload 2 /* stateFactory */
            invokeinterface org.glassfish.grizzly.utils.NullaryFunction.evaluate:()Ljava/lang/Object;
            astore 3 /* state */
        start local 3 // java.lang.Object state
         2: .line 985
            aload 0 /* this */
            new org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$ProcessorState
            dup
            aload 1 /* processor */
            aload 3 /* state */
            invokespecial org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$ProcessorState.<init>:(Lorg/glassfish/grizzly/Processor;Ljava/lang/Object;)V
            putfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap.singleProcessorState:Lorg/glassfish/grizzly/nio/NIOConnection$ProcessorStatesMap$ProcessorState;
         3: .line 986
            aload 0 /* this */
            dup
            getfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap.volatileFlag:I
            iconst_1
            iadd
            putfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap.volatileFlag:I
         4: .line 988
            aload 3 /* state */
            areturn
        end local 3 // java.lang.Object state
         5: .line 989
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap.volatileFlag:I
            iconst_1
            if_icmpne 8
         6: .line 990
            aload 0 /* this */
            getfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap.singleProcessorState:Lorg/glassfish/grizzly/nio/NIOConnection$ProcessorStatesMap$ProcessorState;
            getfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$ProcessorState.processor:Lorg/glassfish/grizzly/Processor;
            aload 1 /* processor */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 991
            aload 0 /* this */
            getfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap.singleProcessorState:Lorg/glassfish/grizzly/nio/NIOConnection$ProcessorStatesMap$ProcessorState;
            getfield org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$ProcessorState.state:Ljava/lang/Object;
            areturn
         8: .line 998
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* processor */
            aload 2 /* stateFactory */
            invokestatic org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$StaticMapAccessor.getFromMapSync:(Lorg/glassfish/grizzly/nio/NIOConnection$ProcessorStatesMap;Lorg/glassfish/grizzly/Processor;Lorg/glassfish/grizzly/utils/NullaryFunction;)Ljava/lang/Object;
            areturn
        end local 2 // org.glassfish.grizzly.utils.NullaryFunction stateFactory
        end local 1 // org.glassfish.grizzly.Processor processor
        end local 0 // org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lorg/glassfish/grizzly/nio/NIOConnection$ProcessorStatesMap;
            0    9     1     processor  Lorg/glassfish/grizzly/Processor;
            0    9     2  stateFactory  Lorg/glassfish/grizzly/utils/NullaryFunction<TE;>;
            2    5     3         state  TE;
    Signature: <E:Ljava/lang/Object;>(Lorg/glassfish/grizzly/Processor;Lorg/glassfish/grizzly/utils/NullaryFunction<TE;>;)Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      processor     final
      stateFactory  final
}
SourceFile: "NIOConnection.java"
NestHost: org.glassfish.grizzly.nio.NIOConnection
InnerClasses:
  private final ProcessorStatesMap = org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap of org.glassfish.grizzly.nio.NIOConnection
  private final ProcessorState = org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$ProcessorState of org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap
  private final StaticMapAccessor = org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap$StaticMapAccessor of org.glassfish.grizzly.nio.NIOConnection$ProcessorStatesMap