class java.util.concurrent.CopyOnWriteArrayList$COWSubList<E> extends java.util.AbstractList<E> implements java.util.RandomAccess
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.util.concurrent.CopyOnWriteArrayList$COWSubList
super_class: java.util.AbstractList
{
private final java.util.concurrent.CopyOnWriteArrayList<E> l;
descriptor: Ljava/util/concurrent/CopyOnWriteArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/CopyOnWriteArrayList<TE;>;
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
void <init>(java.util.concurrent.CopyOnWriteArrayList<E>, int, );
descriptor: (Ljava/util/concurrent/CopyOnWriteArrayList;II)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.util.AbstractList.<init>:()V
1: aload 0
aload 1
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
2: aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
3: aload 0
iload 2
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
4: aload 0
iload 3
iload 2
isub
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
0 6 1 list Ljava/util/concurrent/CopyOnWriteArrayList<TE;>;
0 6 2 fromIndex I
0 6 3 toIndex I
Signature: (Ljava/util/concurrent/CopyOnWriteArrayList<TE;>;II)V
MethodParameters:
Name Flags
list
fromIndex
toIndex
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.l: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<TE;>;
private void rangeCheck(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, 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 4
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
new java.lang.StringBuilder
dup
ldc "Index: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
2: ldc ",Size: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
0 5 1 index I
MethodParameters:
Name Flags
index
public E set(int, );
descriptor: (ILjava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 3
start local 3 1: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
iload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.rangeCheck:(I)V
3: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
4: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iadd
aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 5: aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
6: aload 4
astore 6
7: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: aload 6
areturn
end local 4 9: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList int java.lang.Object java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
astore 5
10: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: aload 5
athrow
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<TE;>;
0 12 1 index I
0 12 2 element TE;
1 12 3 lock Ljava/util/concurrent/locks/ReentrantLock;
5 9 4 x TE;
Exception table:
from to target type
2 7 9 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=5, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 2
start local 2 1: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
iload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.rangeCheck:(I)V
3: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
4: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iadd
invokevirtual java.util.concurrent.CopyOnWriteArrayList.get:(I)Ljava/lang/Object;
astore 4
5: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 4
areturn
7: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList int java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
astore 3
8: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: aload 3
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<TE;>;
0 10 1 index I
1 10 2 lock Ljava/util/concurrent/locks/ReentrantLock;
Exception table:
from to target type
2 5 7 any
Signature: (I)TE;
MethodParameters:
Name Flags
index
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=4, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 1
start local 1 1: aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
istore 3
4: aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
5: iload 3
ireturn
6: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
astore 2
7: aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
1 9 1 lock Ljava/util/concurrent/locks/ReentrantLock;
Exception table:
from to target type
2 4 6 any
public void add(int, );
descriptor: (ILjava/lang/Object;)V
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.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 3
start local 3 1: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
3: iload 1
iflt 4
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
if_icmple 5
4: StackMap locals: java.util.concurrent.locks.ReentrantLock
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iadd
aload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList.add:(ILjava/lang/Object;)V
6: aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
7: aload 0
dup
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iconst_1
iadd
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
8: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
9: astore 4
10: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: aload 4
athrow
12: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
13: return
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<TE;>;
0 14 1 index I
0 14 2 element TE;
1 14 3 lock Ljava/util/concurrent/locks/ReentrantLock;
Exception table:
from to target type
2 9 9 any
Signature: (ITE;)V
MethodParameters:
Name Flags
index
element
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 1
start local 1 1: aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l: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
4: aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l: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
iconst_0
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
6: goto 10
StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
7: astore 2
8: aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: aload 2
athrow
10: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
1 12 1 lock Ljava/util/concurrent/locks/ReentrantLock;
Exception table:
from to target type
2 7 7 any
public E remove();
descriptor: (I)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 2
start local 2 1: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
iload 1
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.rangeCheck:(I)V
3: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
4: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iadd
invokevirtual java.util.concurrent.CopyOnWriteArrayList.remove:(I)Ljava/lang/Object;
astore 3
start local 3 5: aload 0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
6: aload 0
dup
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iconst_1
isub
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
7: aload 3
astore 5
8: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: aload 5
areturn
end local 3 10: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList int java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
astore 4
11: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
12: aload 4
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
0 13 1 index I
1 13 2 lock Ljava/util/concurrent/locks/ReentrantLock;
5 10 3 result TE;
Exception table:
from to target type
2 8 10 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=3, 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
istore 2
start local 2 1: iload 2
iconst_m1
if_icmpne 3
2: iconst_0
ireturn
3: StackMap locals: int
StackMap stack:
aload 0
iload 2
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.remove:(I)Ljava/lang/Object;
pop
4: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
0 5 1 o Ljava/lang/Object;
1 5 2 index I
MethodParameters:
Name Flags
o
public java.util.Iterator<E> iterator();
descriptor: ()Ljava/util/Iterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 1
start local 1 1: aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
3: new java.util.concurrent.CopyOnWriteArrayList$COWSubListIterator
dup
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
iconst_0
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
invokespecial java.util.concurrent.CopyOnWriteArrayList$COWSubListIterator.<init>:(Ljava/util/List;III)V
astore 3
4: aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
5: aload 3
areturn
6: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
astore 2
7: aload 1
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
1 9 1 lock Ljava/util/concurrent/locks/ReentrantLock;
Exception table:
from to target type
2 4 6 any
Signature: ()Ljava/util/Iterator<TE;>;
public java.util.ListIterator<E> listIterator(int);
descriptor: (I)Ljava/util/ListIterator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 2
start local 2 1: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
3: iload 1
iflt 4
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
if_icmple 7
4: StackMap locals: java.util.concurrent.locks.ReentrantLock
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
new java.lang.StringBuilder
dup
ldc "Index: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
5: ldc ", Size: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
new java.util.concurrent.CopyOnWriteArrayList$COWSubListIterator
dup
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l: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
invokespecial java.util.concurrent.CopyOnWriteArrayList$COWSubListIterator.<init>:(Ljava/util/List;III)V
astore 4
8: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: aload 4
areturn
10: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
11: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
12: aload 3
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
0 13 1 index I
1 13 2 lock Ljava/util/concurrent/locks/ReentrantLock;
Exception table:
from to target type
2 8 10 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=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 3
start local 3 1: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: aload 0
invokevirtual java.util.concurrent.CopyOnWriteArrayList$COWSubList.checkForComodification:()V
3: iload 1
iflt 4
iload 2
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
if_icmpgt 4
iload 1
iload 2
if_icmple 5
4: StackMap locals: java.util.concurrent.locks.ReentrantLock
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
5: StackMap locals:
StackMap stack:
new java.util.concurrent.CopyOnWriteArrayList$COWSubList
dup
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
iload 1
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iadd
6: iload 2
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iadd
7: invokespecial java.util.concurrent.CopyOnWriteArrayList$COWSubList.<init>:(Ljava/util/concurrent/CopyOnWriteArrayList;II)V
astore 5
8: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
9: aload 5
areturn
10: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
11: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
12: aload 4
athrow
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<TE;>;
0 13 1 fromIndex I
0 13 2 toIndex I
1 13 3 lock Ljava/util/concurrent/locks/ReentrantLock;
Exception table:
from to target type
2 8 10 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=2, locals=7, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 2
start local 2 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iadd
istore 3
start local 3 3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
astore 4
start local 4 4: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
aload 4
if_acmpeq 6
5: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
6: StackMap locals: int int java.lang.Object[]
StackMap stack:
iload 2
iflt 7
iload 3
aload 4
arraylength
if_icmple 8
7: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
iload 2
istore 5
start local 5 9: goto 13
10: StackMap locals: int
StackMap stack:
aload 4
iload 5
aaload
astore 6
start local 6 11: aload 1
aload 6
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
end local 6 12: iinc 5 1
StackMap locals:
StackMap stack:
13: iload 5
iload 3
if_icmplt 10
end local 5 14: return
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<TE;>;
0 15 1 action Ljava/util/function/Consumer<-TE;>;
2 15 2 lo I
3 15 3 hi I
4 15 4 a [Ljava/lang/Object;
9 14 5 i I
11 12 6 e TE;
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=4, locals=11, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 2
start local 2 2: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 3
start local 3 4: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iadd
istore 4
start local 4 5: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
astore 5
start local 5 6: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
aload 5
if_acmpeq 8
7: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
8: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.function.UnaryOperator java.util.concurrent.locks.ReentrantLock int int java.lang.Object[]
StackMap stack:
aload 5
arraylength
istore 6
start local 6 9: iload 3
iflt 10
iload 4
iload 6
if_icmple 11
10: StackMap locals: int
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
aload 5
iload 6
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
astore 7
start local 7 12: iload 3
istore 8
start local 8 13: goto 17
14: StackMap locals: java.lang.Object[] int
StackMap stack:
aload 5
iload 8
aaload
astore 9
start local 9 15: aload 7
iload 8
aload 1
aload 9
invokeinterface java.util.function.UnaryOperator.apply:(Ljava/lang/Object;)Ljava/lang/Object;
aastore
end local 9 16: iinc 8 1
StackMap locals:
StackMap stack:
17: iload 8
iload 4
if_icmplt 14
end local 8 18: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
aload 7
dup_x1
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.setArray:([Ljava/lang/Object;)V
end local 7 end local 6 end local 5 end local 4 end local 3 19: goto 23
StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.function.UnaryOperator java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
20: astore 10
21: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
22: aload 10
athrow
23: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
24: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
0 25 1 operator Ljava/util/function/UnaryOperator<TE;>;
2 25 2 lock Ljava/util/concurrent/locks/ReentrantLock;
4 19 3 lo I
5 19 4 hi I
6 19 5 elements [Ljava/lang/Object;
9 19 6 len I
12 19 7 newElements [Ljava/lang/Object;
13 18 8 i I
15 16 9 e TE;
Exception table:
from to target type
3 20 20 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=4, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 2
start local 2 1: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
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.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iadd
istore 4
start local 4 4: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
astore 5
start local 5 5: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
aload 5
if_acmpeq 7
6: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
7: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.Comparator java.util.concurrent.locks.ReentrantLock int int java.lang.Object[]
StackMap stack:
aload 5
arraylength
istore 6
start local 6 8: iload 3
iflt 9
iload 4
iload 6
if_icmple 10
9: StackMap locals: int
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 5
iload 6
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
astore 7
start local 7 11: aload 7
astore 8
start local 8 12: aload 8
iload 3
iload 4
aload 1
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;IILjava/util/Comparator;)V
13: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
aload 7
dup_x1
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.setArray:([Ljava/lang/Object;)V
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 14: goto 18
StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.Comparator java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
15: astore 9
16: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
17: aload 9
athrow
18: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
19: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
0 20 1 c Ljava/util/Comparator<-TE;>;
1 20 2 lock Ljava/util/concurrent/locks/ReentrantLock;
3 14 3 lo I
4 14 4 hi I
5 14 5 elements [Ljava/lang/Object;
8 14 6 len I
11 14 7 newElements [Ljava/lang/Object;
12 14 8 es [Ljava/lang/Object;
Exception table:
from to target type
2 15 15 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=6, locals=14, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 3
start local 3 3: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
4: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
istore 4
start local 4 5: iload 4
ifle 37
6: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 5
start local 5 7: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iload 4
iadd
istore 6
start local 6 8: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
astore 7
start local 7 9: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
aload 7
if_acmpeq 11
10: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
11: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.Collection int java.util.concurrent.locks.ReentrantLock int int int java.lang.Object[]
StackMap stack:
aload 7
arraylength
istore 8
start local 8 12: iload 5
iflt 13
iload 6
iload 8
if_icmple 14
13: StackMap locals: int
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 15: iload 4
anewarray java.lang.Object
astore 10
start local 10 16: iload 5
istore 11
start local 11 17: goto 22
18: StackMap locals: int java.lang.Object[] int
StackMap stack:
aload 7
iload 11
aaload
astore 12
start local 12 19: aload 1
aload 12
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifne 21
20: aload 10
iload 9
iinc 9 1
aload 12
aastore
end local 12 21: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
22: iload 11
iload 6
if_icmplt 18
end local 11 23: iload 9
iload 4
if_icmpeq 37
24: iload 8
iload 4
isub
iload 9
iadd
anewarray java.lang.Object
astore 11
start local 11 25: aload 7
iconst_0
aload 11
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
26: aload 10
iconst_0
aload 11
iload 5
iload 9
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
27: aload 7
iload 6
aload 11
28: iload 5
iload 9
iadd
iload 8
iload 6
isub
29: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
30: aload 0
iload 9
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
31: iconst_1
istore 2
32: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
aload 11
dup_x1
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.setArray:([Ljava/lang/Object;)V
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 33: goto 37
StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.Collection int java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
34: astore 13
35: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
36: aload 13
athrow
37: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
38: iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
0 39 1 c Ljava/util/Collection<*>;
2 39 2 removed Z
3 39 3 lock Ljava/util/concurrent/locks/ReentrantLock;
5 33 4 n I
7 33 5 lo I
8 33 6 hi I
9 33 7 elements [Ljava/lang/Object;
12 33 8 len I
15 33 9 newSize I
16 33 10 temp [Ljava/lang/Object;
17 23 11 i I
19 21 12 element Ljava/lang/Object;
25 33 11 newElements [Ljava/lang/Object;
Exception table:
from to target type
4 34 34 any
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=6, locals=14, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 3
start local 3 3: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
4: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
istore 4
start local 4 5: iload 4
ifle 37
6: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 5
start local 5 7: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iload 4
iadd
istore 6
start local 6 8: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
astore 7
start local 7 9: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
aload 7
if_acmpeq 11
10: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
11: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.Collection int java.util.concurrent.locks.ReentrantLock int int int java.lang.Object[]
StackMap stack:
aload 7
arraylength
istore 8
start local 8 12: iload 5
iflt 13
iload 6
iload 8
if_icmple 14
13: StackMap locals: int
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 15: iload 4
anewarray java.lang.Object
astore 10
start local 10 16: iload 5
istore 11
start local 11 17: goto 22
18: StackMap locals: int java.lang.Object[] int
StackMap stack:
aload 7
iload 11
aaload
astore 12
start local 12 19: aload 1
aload 12
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifeq 21
20: aload 10
iload 9
iinc 9 1
aload 12
aastore
end local 12 21: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
22: iload 11
iload 6
if_icmplt 18
end local 11 23: iload 9
iload 4
if_icmpeq 37
24: iload 8
iload 4
isub
iload 9
iadd
anewarray java.lang.Object
astore 11
start local 11 25: aload 7
iconst_0
aload 11
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
26: aload 10
iconst_0
aload 11
iload 5
iload 9
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
27: aload 7
iload 6
aload 11
28: iload 5
iload 9
iadd
iload 8
iload 6
isub
29: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
30: aload 0
iload 9
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
31: iconst_1
istore 2
32: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
aload 11
dup_x1
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.setArray:([Ljava/lang/Object;)V
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 33: goto 37
StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.Collection int java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
34: astore 13
35: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
36: aload 13
athrow
37: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
38: iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
0 39 1 c Ljava/util/Collection<*>;
2 39 2 removed Z
3 39 3 lock Ljava/util/concurrent/locks/ReentrantLock;
5 33 4 n I
7 33 5 lo I
8 33 6 hi I
9 33 7 elements [Ljava/lang/Object;
12 33 8 len I
15 33 9 newSize I
16 33 10 temp [Ljava/lang/Object;
17 23 11 i I
19 21 12 element Ljava/lang/Object;
25 33 11 newElements [Ljava/lang/Object;
Exception table:
from to target type
4 34 34 any
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=6, locals=14, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
getfield java.util.concurrent.CopyOnWriteArrayList.lock:Ljava/util/concurrent/locks/ReentrantLock;
astore 3
start local 3 3: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
4: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
istore 4
start local 4 5: iload 4
ifle 37
6: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 5
start local 5 7: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
iload 4
iadd
istore 6
start local 6 8: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
astore 7
start local 7 9: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
aload 7
if_acmpeq 11
10: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
11: StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.function.Predicate int java.util.concurrent.locks.ReentrantLock int int int java.lang.Object[]
StackMap stack:
aload 7
arraylength
istore 8
start local 8 12: iload 5
iflt 13
iload 6
iload 8
if_icmple 14
13: StackMap locals: int
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 15: iload 4
anewarray java.lang.Object
astore 10
start local 10 16: iload 5
istore 11
start local 11 17: goto 22
18: StackMap locals: int java.lang.Object[] int
StackMap stack:
aload 7
iload 11
aaload
astore 12
start local 12 19: aload 1
aload 12
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifne 21
20: aload 10
iload 9
iinc 9 1
aload 12
aastore
end local 12 21: StackMap locals:
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
22: iload 11
iload 6
if_icmplt 18
end local 11 23: iload 9
iload 4
if_icmpeq 37
24: iload 8
iload 4
isub
iload 9
iadd
anewarray java.lang.Object
astore 11
start local 11 25: aload 7
iconst_0
aload 11
iconst_0
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
26: aload 10
iconst_0
aload 11
iload 5
iload 9
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
27: aload 7
iload 6
aload 11
28: iload 5
iload 9
iadd
iload 8
iload 6
isub
29: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
30: aload 0
iload 9
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
31: iconst_1
istore 2
32: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
aload 0
aload 11
dup_x1
putfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.setArray:([Ljava/lang/Object;)V
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 33: goto 37
StackMap locals: java.util.concurrent.CopyOnWriteArrayList$COWSubList java.util.function.Predicate int java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
34: astore 13
35: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
36: aload 13
athrow
37: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
38: iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Ljava/util/concurrent/CopyOnWriteArrayList$COWSubList<TE;>;
0 39 1 filter Ljava/util/function/Predicate<-TE;>;
2 39 2 removed Z
3 39 3 lock Ljava/util/concurrent/locks/ReentrantLock;
5 33 4 n I
7 33 5 lo I
8 33 6 hi I
9 33 7 elements [Ljava/lang/Object;
12 33 8 len I
15 33 9 newSize I
16 33 10 temp [Ljava/lang/Object;
17 23 11 i I
19 21 12 e TE;
25 33 11 newElements [Ljava/lang/Object;
Exception table:
from to target type
4 34 34 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=4, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
istore 1
start local 1 1: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.offset:I
aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.size:I
iadd
istore 2
start local 2 2: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.expectedArray:[Ljava/lang/Object;
astore 3
start local 3 3: aload 0
getfield java.util.concurrent.CopyOnWriteArrayList$COWSubList.l:Ljava/util/concurrent/CopyOnWriteArrayList;
invokevirtual java.util.concurrent.CopyOnWriteArrayList.getArray:()[Ljava/lang/Object;
aload 3
if_acmpeq 5
4: new java.util.ConcurrentModificationException
dup
invokespecial java.util.ConcurrentModificationException.<init>:()V
athrow
5: StackMap locals: int int java.lang.Object[]
StackMap stack:
iload 1
iflt 6
iload 2
aload 3
arraylength
if_icmple 7
6: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 3
iload 1
iload 2
sipush 1040
8: invokestatic java.util.Spliterators.spliterator:([Ljava/lang/Object;III)Ljava/util/Spliterator;
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<TE;>;
1 9 1 lo I
2 9 2 hi I
3 9 3 a [Ljava/lang/Object;
Signature: ()Ljava/util/Spliterator<TE;>;
}
Signature: <E:Ljava/lang/Object;>Ljava/util/AbstractList<TE;>;Ljava/util/RandomAccess;
SourceFile: "CopyOnWriteArrayList.java"
NestHost: java.util.concurrent.CopyOnWriteArrayList
InnerClasses:
private COWSubList = java.util.concurrent.CopyOnWriteArrayList$COWSubList of java.util.concurrent.CopyOnWriteArrayList
private COWSubListIterator = java.util.concurrent.CopyOnWriteArrayList$COWSubListIterator of java.util.concurrent.CopyOnWriteArrayList