class java.util.concurrent.CopyOnWriteArrayList$COWSubList implements java.util.List<E>, java.util.RandomAccess
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.util.concurrent.CopyOnWriteArrayList$COWSubList
super_class: java.lang.Object
{
private final int offset;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int size;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.Object[] expectedArray;
descriptor: [Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
final java.util.concurrent.CopyOnWriteArrayList this$0;
descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(java.util.concurrent.CopyOnWriteArrayList, java.lang.Object[], int, int);
descriptor: (Ljava/util/concurrent/CopyOnWriteArrayList;[Ljava/lang/Object;II)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
2: aload 0
iload 3
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
3: aload 0
iload 4
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
4: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 5 2 es [Ljava/lang/Object;
0 5 3 offset I
0 5 4 size I
MethodParameters:
Name Flags
this$0 final
es
offset
size
private void checkForComodification();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
if_acmpeq 2
1: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
private java.lang.Object[] getArrayChecked();
descriptor: ()[Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
astore 1
start local 1 1: aload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
if_acmpeq 3
2: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
3: StackMap locals: java.lang.Object[]
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
1 4 1 a [Ljava/lang/Object;
private void rangeCheck(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iflt 1
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
if_icmplt 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
invokestatic java.util.concurrent.CopyOnWriteArrayList.outOfBounds:(II)Ljava/lang/String;
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 3 1 index I
MethodParameters:
Name Flags
index
private void rangeCheckForAdd(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iflt 1
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
invokestatic java.util.concurrent.CopyOnWriteArrayList.outOfBounds:(II)Ljava/lang/String;
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 3 1 index I
MethodParameters:
Name Flags
index
public java.lang.Object[] toArray();
descriptor: ()[Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 4
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.getArrayChecked:()[Ljava/lang/Object;
astore 1
start local 1 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 2
start local 2 3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
istore 3
start local 3 4: aload 4
monitorexit
5: goto 8
end local 3 end local 2 end local 1 StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList top top top java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 4
monitorexit
7: athrow
start local 1 start local 2 start local 3 8: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object[] int int
StackMap stack:
aload 1
iload 2
iload 2
iload 3
iadd
invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;II)[Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
2 6 1 es [Ljava/lang/Object;
8 9 1 es [Ljava/lang/Object;
3 6 2 offset I
8 9 2 offset I
4 6 3 size I
8 9 3 size I
Exception table:
from to target type
1 5 6 any
6 7 6 any
public <T> T[] toArray();
descriptor: ([Ljava/lang/Object;)[Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 5
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.getArrayChecked:()[Ljava/lang/Object;
astore 2
start local 2 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 3
start local 3 3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
istore 4
start local 4 4: aload 5
monitorexit
5: goto 8
end local 4 end local 3 end local 2 StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object[] top top top java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 5
monitorexit
7: athrow
start local 2 start local 3 start local 4 8: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object[] java.lang.Object[] int int
StackMap stack:
aload 1
arraylength
iload 4
if_icmpge 11
9: aload 2
iload 3
iload 3
iload 4
iadd
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
10: invokestatic java.util.Arrays.copyOfRange:([Ljava/lang/Object;IILjava/lang/Class;)[Ljava/lang/Object;
areturn
11: StackMap locals:
StackMap stack:
aload 2
iload 3
aload 1
iconst_0
iload 4
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
12: aload 1
arraylength
iload 4
if_icmple 14
13: aload 1
iload 4
aconst_null
aastore
14: StackMap locals:
StackMap stack:
aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 15 1 a [Ljava/lang/Object;
2 6 2 es [Ljava/lang/Object;
8 15 2 es [Ljava/lang/Object;
3 6 3 offset I
8 15 3 offset I
4 6 4 size I
8 15 4 size I
Exception table:
from to target type
1 5 6 any
6 7 6 any
Signature: <T:Ljava/lang/Object;>([TT;)[TT;
MethodParameters:
Name Flags
a
public int indexOf(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 5
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.getArrayChecked:()[Ljava/lang/Object;
astore 2
start local 2 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 3
start local 3 3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
istore 4
start local 4 4: aload 5
monitorexit
5: goto 8
end local 4 end local 3 end local 2 StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object top top top java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 5
monitorexit
7: athrow
start local 2 start local 3 start local 4 8: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object java.lang.Object[] int int
StackMap stack:
aload 1
aload 2
iload 3
iload 3
iload 4
iadd
invokestatic java.util.concurrent.CopyOnWriteArrayList.indexOfRange:(Ljava/lang/Object;[Ljava/lang/Object;II)I
istore 5
start local 5 9: iload 5
iconst_m1
if_icmpne 10
iconst_m1
goto 11
StackMap locals: int
StackMap stack:
10: iload 5
iload 3
isub
StackMap locals:
StackMap stack: int
11: ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 12 1 o Ljava/lang/Object;
2 6 2 es [Ljava/lang/Object;
8 12 2 es [Ljava/lang/Object;
3 6 3 offset I
8 12 3 offset I
4 6 4 size I
8 12 4 size I
9 12 5 i I
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
o
public int lastIndexOf(java.lang.Object);
descriptor: (Ljava/lang/Object;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 5
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.getArrayChecked:()[Ljava/lang/Object;
astore 2
start local 2 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 3
start local 3 3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
istore 4
start local 4 4: aload 5
monitorexit
5: goto 8
end local 4 end local 3 end local 2 StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object top top top java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 5
monitorexit
7: athrow
start local 2 start local 3 start local 4 8: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object java.lang.Object[] int int
StackMap stack:
aload 1
aload 2
iload 3
iload 3
iload 4
iadd
invokestatic java.util.concurrent.CopyOnWriteArrayList.lastIndexOfRange:(Ljava/lang/Object;[Ljava/lang/Object;II)I
istore 5
start local 5 9: iload 5
iconst_m1
if_icmpne 10
iconst_m1
goto 11
StackMap locals: int
StackMap stack:
10: iload 5
iload 3
isub
StackMap locals:
StackMap stack: int
11: ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 12 1 o Ljava/lang/Object;
2 6 2 es [Ljava/lang/Object;
8 12 2 es [Ljava/lang/Object;
3 6 3 offset I
8 12 3 offset I
4 6 4 size I
8 12 4 size I
9 12 5 i I
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
o
public boolean contains(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.indexOf:(Ljava/lang/Object;)I
iflt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 2 1 o Ljava/lang/Object;
MethodParameters:
Name Flags
o
public boolean containsAll(java.util.Collection<?>);
descriptor: (Ljava/util/Collection;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 5
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.getArrayChecked:()[Ljava/lang/Object;
astore 2
start local 2 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 3
start local 3 3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
istore 4
start local 4 4: aload 5
monitorexit
5: goto 8
end local 4 end local 3 end local 2 StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.Collection top top top java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 5
monitorexit
7: athrow
start local 2 start local 3 start local 4 8: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.Collection java.lang.Object[] int int
StackMap stack:
aload 1
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 6
goto 12
StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.Collection java.lang.Object[] int int top java.util.Iterator
StackMap stack:
9: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 5
start local 5 10: aload 5
aload 2
iload 3
iload 3
iload 4
iadd
invokestatic java.util.concurrent.CopyOnWriteArrayList.indexOfRange:(Ljava/lang/Object;[Ljava/lang/Object;II)I
ifge 12
11: iconst_0
ireturn
end local 5 12: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
13: iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 14 1 c Ljava/util/Collection<*>;
2 6 2 es [Ljava/lang/Object;
8 14 2 es [Ljava/lang/Object;
3 6 3 offset I
8 14 3 offset I
4 6 4 size I
8 14 4 size I
10 12 5 o Ljava/lang/Object;
Exception table:
from to target type
1 5 6 any
6 7 6 any
Signature: (Ljava/util/Collection<*>;)Z
MethodParameters:
Name Flags
c
public boolean isEmpty();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:()I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.toArray:()[Ljava/lang/Object;
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 4
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.getArrayChecked:()[Ljava/lang/Object;
astore 1
start local 1 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 2
start local 2 3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
istore 3
start local 3 4: aload 4
monitorexit
5: goto 8
end local 3 end local 2 end local 1 StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList top top top java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 4
monitorexit
7: athrow
start local 1 start local 2 start local 3 8: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object[] int int
StackMap stack:
aload 1
iload 2
iload 2
iload 3
iadd
invokestatic java.util.concurrent.CopyOnWriteArrayList.hashCodeOfRange:([Ljava/lang/Object;II)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
2 6 1 es [Ljava/lang/Object;
8 9 1 es [Ljava/lang/Object;
3 6 2 offset I
8 9 2 offset I
4 6 3 size I
8 9 3 size I
Exception table:
from to target type
1 5 6 any
6 7 6 any
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=8, args_size=2
start local 0 start local 1 0: aload 1
aload 0
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.util.List
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
checkcast java.util.List
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 2
start local 2 5: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 6
monitorenter
6: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.getArrayChecked:()[Ljava/lang/Object;
astore 3
start local 3 7: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 4
start local 4 8: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
istore 5
start local 5 9: aload 6
monitorexit
10: goto 13
end local 5 end local 4 end local 3 StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object java.util.Iterator top top top java.lang.Object
StackMap stack: java.lang.Throwable
11: aload 6
monitorexit
12: athrow
start local 3 start local 4 start local 5 13: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object java.util.Iterator java.lang.Object[] int int
StackMap stack:
iload 4
istore 6
start local 6 14: iload 4
iload 5
iadd
istore 7
start local 7 15: goto 19
16: StackMap locals: int int
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 17
aload 3
iload 6
aaload
aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
invokestatic java.util.Objects.equals:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 18
17: StackMap locals:
StackMap stack:
iconst_0
ireturn
18: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
19: iload 6
iload 7
if_icmplt 16
end local 7 end local 6 20: aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifeq 21
iconst_0
goto 22
StackMap locals:
StackMap stack:
21: iconst_1
StackMap locals:
StackMap stack: int
22: ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 23 1 o Ljava/lang/Object;
5 23 2 it Ljava/util/Iterator<*>;
7 11 3 es [Ljava/lang/Object;
13 23 3 es [Ljava/lang/Object;
8 11 4 offset I
13 23 4 offset I
9 11 5 size I
13 23 5 size I
14 20 6 i I
15 20 7 end I
Exception table:
from to target type
6 10 11 any
11 12 11 any
MethodParameters:
Name Flags
o
public E set(int, );
descriptor: (ILjava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
iload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.rangeCheck:(I)V
2: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iload 1
iadd
aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 4: aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
5: aload 4
aload 3
monitorexit
6: areturn
end local 4 7: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList int java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
8: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 9 1 index I
0 9 2 element TE;
4 7 4 x TE;
Exception table:
from to target type
1 6 7 any
7 8 7 any
Signature: (ITE;)TE;
MethodParameters:
Name Flags
index
element
public E get();
descriptor: (I)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
iload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.rangeCheck:(I)V
2: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iload 1
iadd
invokevirtual java.util.concurrent.CopyOnWriteArrayList.get:(I)Ljava/lang/Object;
aload 2
monitorexit
4: areturn
5: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList int java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
6: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 7 1 index I
Exception table:
from to target type
1 4 5 any
5 6 5 any
Signature: (I)TE;
MethodParameters:
Name Flags
index
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
aload 1
monitorexit
3: ireturn
4: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
5: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
Exception table:
from to target type
1 3 4 any
4 5 4 any
public boolean add();
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iadd
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(ILjava/lang/Object;)V
3: aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
4: aload 0
dup
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iconst_1
iadd
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
5: aload 2
monitorexit
6: goto 9
StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 10 1 element TE;
Exception table:
from to target type
1 6 7 any
7 8 7 any
Signature: (TE;)Z
MethodParameters:
Name Flags
element
public void add(int, );
descriptor: (ILjava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
2: aload 0
iload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.rangeCheckForAdd:(I)V
3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iload 1
iadd
aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(ILjava/lang/Object;)V
4: aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
5: aload 0
dup
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iconst_1
iadd
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
6: aload 3
monitorexit
7: goto 10
StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList int java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 11 1 index I
0 11 2 element TE;
Exception table:
from to target type
1 7 8 any
8 9 8 any
Signature: (ITE;)V
MethodParameters:
Name Flags
index
element
public boolean addAll(java.util.Collection<? extends E>);
descriptor: (Ljava/util/Collection;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.getArrayChecked:()[Ljava/lang/Object;
astore 3
start local 3 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iadd
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList.addAll:(ILjava/util/Collection;)Z
3: istore 4
start local 4 4: aload 0
dup
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
dup_x1
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
arraylength
aload 3
arraylength
isub
iadd
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
5: iload 4
aload 2
monitorexit
6: ireturn
end local 4 end local 3 7: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.Collection java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
8: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 9 1 c Ljava/util/Collection<+TE;>;
2 7 3 oldArray [Ljava/lang/Object;
4 7 4 modified Z
Exception table:
from to target type
1 6 7 any
7 8 7 any
Signature: (Ljava/util/Collection<+TE;>;)Z
MethodParameters:
Name Flags
c
public boolean addAll(int, java.util.Collection<? extends E>);
descriptor: (ILjava/util/Collection;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
iload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.rangeCheckForAdd:(I)V
2: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.getArrayChecked:()[Ljava/lang/Object;
astore 4
start local 4 3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iload 1
iadd
aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.addAll:(ILjava/util/Collection;)Z
4: istore 5
start local 5 5: aload 0
dup
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
dup_x1
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
arraylength
aload 4
arraylength
isub
iadd
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
6: iload 5
aload 3
monitorexit
7: ireturn
end local 5 end local 4 8: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList int java.util.Collection java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
9: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 10 1 index I
0 10 2 c Ljava/util/Collection<+TE;>;
3 8 4 oldArray [Ljava/lang/Object;
5 8 5 modified Z
Exception table:
from to target type
1 7 8 any
8 9 8 any
Signature: (ILjava/util/Collection<+TE;>;)Z
MethodParameters:
Name Flags
index
c
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iadd
invokevirtual java.util.concurrent.CopyOnWriteArrayList.removeRange:(II)V
3: aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
4: aload 0
iconst_0
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
5: aload 1
monitorexit
6: goto 9
StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
Exception table:
from to target type
1 6 7 any
7 8 7 any
public E remove();
descriptor: (I)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
iload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.rangeCheck:(I)V
2: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iload 1
iadd
invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(I)Ljava/lang/Object;
astore 3
start local 3 4: aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
5: aload 0
dup
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iconst_1
isub
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
6: aload 3
aload 2
monitorexit
7: areturn
end local 3 8: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList int java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
9: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 10 1 index I
4 8 3 result TE;
Exception table:
from to target type
1 7 8 any
8 9 8 any
Signature: (I)TE;
MethodParameters:
Name Flags
index
public boolean remove(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
2: aload 0
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.indexOf:(Ljava/lang/Object;)I
istore 3
start local 3 3: iload 3
iconst_m1
if_icmpne 6
4: aload 2
monitorexit
5: iconst_0
ireturn
6: StackMap locals: java.lang.Object int
StackMap stack:
aload 0
iload 3
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.remove:(I)Ljava/lang/Object;
pop
7: aload 2
monitorexit
8: iconst_1
ireturn
end local 3 9: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
10: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 11 1 o Ljava/lang/Object;
3 9 3 index I
Exception table:
from to target type
1 5 9 any
6 8 9 any
9 10 9 any
MethodParameters:
Name Flags
o
public java.util.Iterator<E> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.listIterator:(I)Ljava/util/ListIterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
Signature: ()Ljava/util/Iterator<TE;>;
public java.util.ListIterator<E> listIterator();
descriptor: ()Ljava/util/ListIterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.listIterator:(I)Ljava/util/ListIterator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
Signature: ()Ljava/util/ListIterator<TE;>;
public java.util.ListIterator<E> listIterator(int);
descriptor: (I)Ljava/util/ListIterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
2: aload 0
iload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.rangeCheckForAdd:(I)V
3: new java.util.concurrent.CopyOnWriteArrayList$COWSubListIterator
dup
4: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
5: invokespecial java.util.concurrent.CopyOnWriteArrayList$COWSubListIterator.<init>:(Ljava/util/List;III)V
aload 2
monitorexit
6: areturn
7: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList int java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
8: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 9 1 index I
Exception table:
from to target type
1 6 7 any
7 8 7 any
Signature: (I)Ljava/util/ListIterator<TE;>;
MethodParameters:
Name Flags
index
public java.util.List<E> subList(int, int);
descriptor: (II)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
2: iload 1
iflt 3
iload 2
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
if_icmpgt 3
iload 1
iload 2
if_icmple 4
3: StackMap locals: java.lang.Object
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
new java.util.concurrent.CopyOnWriteArrayList$COWSubList
dup
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iadd
iload 2
iload 1
isub
invokespecial java.util.concurrent.CopyOnWriteArrayList$COWSubList.<init>:(Ljava/util/concurrent/CopyOnWriteArrayList;[Ljava/lang/Object;II)V
aload 3
monitorexit
5: areturn
6: StackMap locals:
StackMap stack: java.lang.Throwable
aload 3
monitorexit
7: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 8 1 fromIndex I
0 8 2 toIndex I
Exception table:
from to target type
1 5 6 any
6 7 6 any
Signature: (II)Ljava/util/List<TE;>;
MethodParameters:
Name Flags
fromIndex
toIndex
public void forEach(java.util.function.Consumer<? super E>);
descriptor: (Ljava/util/function/Consumer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 5
monitorenter
2: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.getArrayChecked:()[Ljava/lang/Object;
astore 4
start local 4 3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 2
start local 2 4: iload 2
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iadd
istore 3
start local 3 5: aload 5
monitorexit
6: goto 11
end local 4 end local 3 end local 2 StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.function.Consumer top top top java.lang.Object
StackMap stack: java.lang.Throwable
7: aload 5
monitorexit
8: athrow
start local 2 start local 3 start local 4 9: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.function.Consumer int int java.lang.Object[]
StackMap stack:
aload 1
aload 4
iload 2
invokestatic java.util.concurrent.CopyOnWriteArrayList.elementAt:([Ljava/lang/Object;I)Ljava/lang/Object;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
10: iinc 2 1
StackMap locals:
StackMap stack:
11: iload 2
iload 3
if_icmplt 9
12: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 13 1 action Ljava/util/function/Consumer<-TE;>;
4 7 2 i I
9 13 2 i I
5 7 3 end I
9 13 3 end I
3 7 4 es [Ljava/lang/Object;
9 13 4 es [Ljava/lang/Object;
Exception table:
from to target type
2 6 7 any
7 8 7 any
Signature: (Ljava/util/function/Consumer<-TE;>;)V
MethodParameters:
Name Flags
action
public void replaceAll(java.util.function.UnaryOperator<E>);
descriptor: (Ljava/util/function/UnaryOperator;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iadd
invokevirtual java.util.concurrent.CopyOnWriteArrayList.replaceAllRange:(Ljava/util/function/UnaryOperator;II)V
3: aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
4: aload 2
monitorexit
5: goto 8
StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.function.UnaryOperator java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 9 1 operator Ljava/util/function/UnaryOperator<TE;>;
Exception table:
from to target type
1 5 6 any
6 7 6 any
Signature: (Ljava/util/function/UnaryOperator<TE;>;)V
MethodParameters:
Name Flags
operator
public void sort(java.util.Comparator<? super E>);
descriptor: (Ljava/util/Comparator;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iadd
invokevirtual java.util.concurrent.CopyOnWriteArrayList.sortRange:(Ljava/util/Comparator;II)V
3: aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
4: aload 2
monitorexit
5: goto 8
StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.Comparator java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 9 1 c Ljava/util/Comparator<-TE;>;
Exception table:
from to target type
1 5 6 any
6 7 6 any
Signature: (Ljava/util/Comparator<-TE;>;)V
MethodParameters:
Name Flags
c
public boolean removeAll(java.util.Collection<?>);
descriptor: (Ljava/util/Collection;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
invokedynamic test(Ljava/util/Collection;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
java/util/concurrent/CopyOnWriteArrayList$COWSubList.lambda$0(Ljava/util/Collection;Ljava/lang/Object;)Z (6)
(Ljava/lang/Object;)Z
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.bulkRemove:(Ljava/util/function/Predicate;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 2 1 c Ljava/util/Collection<*>;
Signature: (Ljava/util/Collection<*>;)Z
MethodParameters:
Name Flags
c
public boolean retainAll(java.util.Collection<?>);
descriptor: (Ljava/util/Collection;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
invokedynamic test(Ljava/util/Collection;)Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
java/util/concurrent/CopyOnWriteArrayList$COWSubList.lambda$1(Ljava/util/Collection;Ljava/lang/Object;)Z (6)
(Ljava/lang/Object;)Z
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.bulkRemove:(Ljava/util/function/Predicate;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 2 1 c Ljava/util/Collection<*>;
Signature: (Ljava/util/Collection<*>;)Z
MethodParameters:
Name Flags
c
public boolean removeIf(java.util.function.Predicate<? super E>);
descriptor: (Ljava/util/function/Predicate;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.bulkRemove:(Ljava/util/function/Predicate;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 2 1 filter Ljava/util/function/Predicate<-TE;>;
Signature: (Ljava/util/function/Predicate<-TE;>;)Z
MethodParameters:
Name Flags
filter
private boolean bulkRemove(java.util.function.Predicate<? super E>);
descriptor: (Ljava/util/function/Predicate;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.getArrayChecked:()[Ljava/lang/Object;
astore 3
start local 3 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
3: aload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iadd
4: invokevirtual java.util.concurrent.CopyOnWriteArrayList.bulkRemove:(Ljava/util/function/Predicate;II)Z
istore 4
start local 4 5: aload 0
dup
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
dup_x1
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
arraylength
aload 3
arraylength
isub
iadd
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
6: iload 4
aload 2
monitorexit
7: ireturn
end local 4 end local 3 8: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.function.Predicate java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
9: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
0 10 1 filter Ljava/util/function/Predicate<-TE;>;
2 8 3 oldArray [Ljava/lang/Object;
5 8 4 modified Z
Exception table:
from to target type
1 7 8 any
8 9 8 any
Signature: (Ljava/util/function/Predicate<-TE;>;)Z
MethodParameters:
Name Flags
filter
public java.util.Spliterator<E> spliterator();
descriptor: ()Ljava/util/Spliterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.this$0:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.getArrayChecked:()[Ljava/lang/Object;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iadd
2: sipush 1040
3: invokestatic java.util.Spliterators.spliterator:([Ljava/lang/Object;III)Ljava/util/Spliterator;
aload 1
monitorexit
4: areturn
5: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
6: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList;
Exception table:
from to target type
1 4 5 any
5 6 5 any
Signature: ()Ljava/util/Spliterator<TE;>;
private static boolean lambda$0(java.util.Collection, java.lang.Object);
descriptor: (Ljava/util/Collection;Ljava/lang/Object;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 e TE;
private static boolean lambda$1(java.util.Collection, java.lang.Object);
descriptor: (Ljava/util/Collection;Ljava/lang/Object;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aload 1
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 e TE;
}
Signature: Ljava/lang/Object;Ljava/util/List<TE;>;Ljava/util/RandomAccess;
SourceFile: "CopyOnWriteArrayList.java"
NestHost: java.util.concurrent.CopyOnWriteArrayList
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
private COWSubList = java.util.concurrent.CopyOnWriteArrayList$COWSubList of java.util.concurrent.CopyOnWriteArrayList
private COWSubListIterator = java.util.concurrent.CopyOnWriteArrayList$COWSubListIterator of java.util.concurrent.CopyOnWriteArrayList