class org.springframework.util.ConcurrentReferenceHashMap$EntryIterator implements java.util.Iterator<java.util.Map$Entry<K, V>>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.util.ConcurrentReferenceHashMap$EntryIterator
  super_class: java.lang.Object
{
  private int segmentIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int referenceIndex;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private org.springframework.util.ConcurrentReferenceHashMap$Reference<K, V>[] references;
    descriptor: [Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
    flags: (0x0002) ACC_PRIVATE
    Signature: [Lorg/springframework/util/ConcurrentReferenceHashMap$Reference<TK;TV;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.util.ConcurrentReferenceHashMap$Reference<K, V> reference;
    descriptor: Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/springframework/util/ConcurrentReferenceHashMap$Reference<TK;TV;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.util.ConcurrentReferenceHashMap$Entry<K, V> next;
    descriptor: Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/springframework/util/ConcurrentReferenceHashMap$Entry<TK;TV;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private org.springframework.util.ConcurrentReferenceHashMap$Entry<K, V> last;
    descriptor: Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/springframework/util/ConcurrentReferenceHashMap$Entry<TK;TV;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  final org.springframework.util.ConcurrentReferenceHashMap this$0;
    descriptor: Lorg/springframework/util/ConcurrentReferenceHashMap;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(org.springframework.util.ConcurrentReferenceHashMap);
    descriptor: (Lorg/springframework/util/ConcurrentReferenceHashMap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
         0: .line 909
            aload 0 /* this */
            aload 1
            putfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.this$0:Lorg/springframework/util/ConcurrentReferenceHashMap;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 910
            aload 0 /* this */
            invokevirtual org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.moveToNextSegment:()V
         2: .line 911
            return
        end local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/util/ConcurrentReferenceHashMap$EntryIterator;
    MethodParameters:
        Name  Flags
      this$0  final

  public boolean hasNext();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
         0: .line 915
            aload 0 /* this */
            invokevirtual org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.getNextIfNecessary:()V
         1: .line 916
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.next:Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
            ifnull 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
        end local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/util/ConcurrentReferenceHashMap$EntryIterator;

  public org.springframework.util.ConcurrentReferenceHashMap$Entry<K, V> next();
    descriptor: ()Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
         0: .line 921
            aload 0 /* this */
            invokevirtual org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.getNextIfNecessary:()V
         1: .line 922
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.next:Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
            ifnonnull 3
         2: .line 923
            new java.util.NoSuchElementException
            dup
            invokespecial java.util.NoSuchElementException.<init>:()V
            athrow
         3: .line 925
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.next:Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
            putfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.last:Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
         4: .line 926
            aload 0 /* this */
            aconst_null
            putfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.next:Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
         5: .line 927
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.last:Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
            areturn
        end local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/springframework/util/ConcurrentReferenceHashMap$EntryIterator;
    Signature: ()Lorg/springframework/util/ConcurrentReferenceHashMap$Entry<TK;TV;>;

  private void getNextIfNecessary();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
         0: .line 931
            goto 5
         1: .line 932
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.moveToNextReference:()V
         2: .line 933
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.reference:Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
            ifnonnull 4
         3: .line 934
            return
         4: .line 936
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.reference:Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
            invokeinterface org.springframework.util.ConcurrentReferenceHashMap$Reference.get:()Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
            putfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.next:Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
         5: .line 931
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.next:Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
            ifnull 1
         6: .line 938
            return
        end local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/springframework/util/ConcurrentReferenceHashMap$EntryIterator;

  private void moveToNextReference();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
         0: .line 941
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.reference:Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
            ifnull 9
         1: .line 942
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.reference:Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
            invokeinterface org.springframework.util.ConcurrentReferenceHashMap$Reference.getNext:()Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
            putfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.reference:Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
         2: .line 944
            goto 9
         3: .line 945
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.referenceIndex:I
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.references:[Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
            arraylength
            if_icmplt 7
         4: .line 946
            aload 0 /* this */
            invokevirtual org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.moveToNextSegment:()V
         5: .line 947
            aload 0 /* this */
            iconst_0
            putfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.referenceIndex:I
         6: .line 948
            goto 9
         7: .line 950
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.references:[Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.referenceIndex:I
            aaload
            putfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.reference:Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
         8: .line 951
            aload 0 /* this */
            dup
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.referenceIndex:I
            iconst_1
            iadd
            putfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.referenceIndex:I
         9: .line 944
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.reference:Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
            ifnonnull 10
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.references:[Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
            ifnonnull 3
        10: .line 954
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/springframework/util/ConcurrentReferenceHashMap$EntryIterator;

  private void moveToNextSegment();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
         0: .line 957
            aload 0 /* this */
            aconst_null
            putfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.reference:Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
         1: .line 958
            aload 0 /* this */
            aconst_null
            putfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.references:[Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
         2: .line 959
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.segmentIndex:I
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.this$0:Lorg/springframework/util/ConcurrentReferenceHashMap;
            getfield org.springframework.util.ConcurrentReferenceHashMap.segments:[Lorg/springframework/util/ConcurrentReferenceHashMap$Segment;
            arraylength
            if_icmpge 5
         3: .line 960
            aload 0 /* this */
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.this$0:Lorg/springframework/util/ConcurrentReferenceHashMap;
            getfield org.springframework.util.ConcurrentReferenceHashMap.segments:[Lorg/springframework/util/ConcurrentReferenceHashMap$Segment;
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.segmentIndex:I
            aaload
            getfield org.springframework.util.ConcurrentReferenceHashMap$Segment.references:[Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
            putfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.references:[Lorg/springframework/util/ConcurrentReferenceHashMap$Reference;
         4: .line 961
            aload 0 /* this */
            dup
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.segmentIndex:I
            iconst_1
            iadd
            putfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.segmentIndex:I
         5: .line 963
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/springframework/util/ConcurrentReferenceHashMap$EntryIterator;

  public void remove();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
         0: .line 967
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.last:Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ldc "No element to remove"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         3: .line 968
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.this$0:Lorg/springframework/util/ConcurrentReferenceHashMap;
            aload 0 /* this */
            getfield org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.last:Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
            invokevirtual org.springframework.util.ConcurrentReferenceHashMap$Entry.getKey:()Ljava/lang/Object;
            invokevirtual org.springframework.util.ConcurrentReferenceHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 969
            return
        end local 0 // org.springframework.util.ConcurrentReferenceHashMap$EntryIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/util/ConcurrentReferenceHashMap$EntryIterator;

  public java.lang.Object next();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.springframework.util.ConcurrentReferenceHashMap$EntryIterator.next:()Lorg/springframework/util/ConcurrentReferenceHashMap$Entry;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljava/util/Iterator<Ljava/util/Map$Entry<TK;TV;>;>;
SourceFile: "ConcurrentReferenceHashMap.java"
NestHost: org.springframework.util.ConcurrentReferenceHashMap
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  protected final Entry = org.springframework.util.ConcurrentReferenceHashMap$Entry of org.springframework.util.ConcurrentReferenceHashMap
  private EntryIterator = org.springframework.util.ConcurrentReferenceHashMap$EntryIterator of org.springframework.util.ConcurrentReferenceHashMap
  protected abstract Reference = org.springframework.util.ConcurrentReferenceHashMap$Reference of org.springframework.util.ConcurrentReferenceHashMap
  protected final Segment = org.springframework.util.ConcurrentReferenceHashMap$Segment of org.springframework.util.ConcurrentReferenceHashMap