class java.util.Collections$SynchronizedCollection<E> implements java.util.Collection<E>, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: java.util.Collections$SynchronizedCollection
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3053995032091335093

  final java.util.Collection<E> c;
    descriptor: Ljava/util/Collection;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/Collection<TE;>;

  final java.lang.Object mutex;
    descriptor: Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL

  void <init>(java.util.Collection<E>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.Collections$SynchronizedCollection this
        start local 1 // java.util.Collection c
         0: .line 1561
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1562
            aload 1 /* c */
            ifnonnull 3
         2: .line 1563
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         3: .line 1564
      StackMap locals: java.util.Collections$SynchronizedCollection java.util.Collection
      StackMap stack:
            aload 0 /* this */
            aload 1 /* c */
            putfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
         4: .line 1565
            aload 0 /* this */
            aload 0 /* this */
            putfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
         5: .line 1566
            return
        end local 1 // java.util.Collection c
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
            0    6     1     c  Ljava/util/Collection<TE;>;
    Signature: (Ljava/util/Collection<TE;>;)V
    MethodParameters:
      Name  Flags
      c     

  void <init>(java.util.Collection<E>, );
    descriptor: (Ljava/util/Collection;Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // java.util.Collections$SynchronizedCollection this
        start local 1 // java.util.Collection c
        start local 2 // java.lang.Object mutex
         0: .line 1567
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1568
            aload 0 /* this */
            aload 1 /* c */
            putfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
         2: .line 1569
            aload 0 /* this */
            aload 2 /* mutex */
            putfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
         3: .line 1570
            return
        end local 2 // java.lang.Object mutex
        end local 1 // java.util.Collection c
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljava/util/Collections$SynchronizedCollection<TE;>;
            0    4     1      c  Ljava/util/Collection<TE;>;
            0    4     2  mutex  Ljava/lang/Object;
    Signature: (Ljava/util/Collection<TE;>;Ljava/lang/Object;)V
    MethodParameters:
       Name  Flags
      c      
      mutex  

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.Collections$SynchronizedCollection this
         0: .line 1573
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            aload 1
            monitorexit
         2: ireturn
      StackMap locals: java.util.Collections$SynchronizedCollection java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 1
            monitorexit
         4: athrow
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.Collections$SynchronizedCollection this
         0: .line 1576
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            aload 1
            monitorexit
         2: ireturn
      StackMap locals: java.util.Collections$SynchronizedCollection java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 1
            monitorexit
         4: athrow
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public boolean contains(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Collections$SynchronizedCollection this
        start local 1 // java.lang.Object o
         0: .line 1579
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            aload 1 /* o */
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            aload 2
            monitorexit
         2: ireturn
      StackMap locals: java.util.Collections$SynchronizedCollection java.lang.Object java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 2
            monitorexit
         4: athrow
        end local 1 // java.lang.Object o
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
            0    5     1     o  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    MethodParameters:
      Name  Flags
      o     

  public java.lang.Object[] toArray();
    descriptor: ()[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.Collections$SynchronizedCollection this
         0: .line 1582
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            invokeinterface java.util.Collection.toArray:()[Ljava/lang/Object;
            aload 1
            monitorexit
         2: areturn
      StackMap locals: java.util.Collections$SynchronizedCollection java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 1
            monitorexit
         4: athrow
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public <T> T[] toArray();
    descriptor: ([Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Collections$SynchronizedCollection this
        start local 1 // java.lang.Object[] a
         0: .line 1585
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            aload 1 /* a */
            invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            aload 2
            monitorexit
         2: areturn
      StackMap locals: java.util.Collections$SynchronizedCollection java.lang.Object[] java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 2
            monitorexit
         4: athrow
        end local 1 // java.lang.Object[] a
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
            0    5     1     a  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: <T:Ljava/lang/Object;>([TT;)[TT;
    MethodParameters:
      Name  Flags
      a     

  public java.util.Iterator<E> iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.Collections$SynchronizedCollection this
         0: .line 1589
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            areturn
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
    Signature: ()Ljava/util/Iterator<TE;>;

  public boolean add();
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Collections$SynchronizedCollection this
        start local 1 // java.lang.Object e
         0: .line 1593
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            aload 1 /* e */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            aload 2
            monitorexit
         2: ireturn
      StackMap locals: java.util.Collections$SynchronizedCollection java.lang.Object java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 2
            monitorexit
         4: athrow
        end local 1 // java.lang.Object e
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
            0    5     1     e  TE;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: (TE;)Z
    MethodParameters:
      Name  Flags
      e     

  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 // java.util.Collections$SynchronizedCollection this
        start local 1 // java.lang.Object o
         0: .line 1596
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            aload 1 /* o */
            invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
            aload 2
            monitorexit
         2: ireturn
      StackMap locals: java.util.Collections$SynchronizedCollection java.lang.Object java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 2
            monitorexit
         4: athrow
        end local 1 // java.lang.Object o
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
            0    5     1     o  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    MethodParameters:
      Name  Flags
      o     

  public boolean containsAll(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Collections$SynchronizedCollection this
        start local 1 // java.util.Collection coll
         0: .line 1600
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            aload 1 /* coll */
            invokeinterface java.util.Collection.containsAll:(Ljava/util/Collection;)Z
            aload 2
            monitorexit
         2: ireturn
      StackMap locals: java.util.Collections$SynchronizedCollection java.util.Collection java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 2
            monitorexit
         4: athrow
        end local 1 // java.util.Collection coll
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
            0    5     1  coll  Ljava/util/Collection<*>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: (Ljava/util/Collection<*>;)Z
    MethodParameters:
      Name  Flags
      coll  

  public boolean addAll(java.util.Collection<? extends E>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Collections$SynchronizedCollection this
        start local 1 // java.util.Collection coll
         0: .line 1603
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            aload 1 /* coll */
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            aload 2
            monitorexit
         2: ireturn
      StackMap locals: java.util.Collections$SynchronizedCollection java.util.Collection java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 2
            monitorexit
         4: athrow
        end local 1 // java.util.Collection coll
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
            0    5     1  coll  Ljava/util/Collection<+TE;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: (Ljava/util/Collection<+TE;>;)Z
    MethodParameters:
      Name  Flags
      coll  

  public boolean removeAll(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Collections$SynchronizedCollection this
        start local 1 // java.util.Collection coll
         0: .line 1606
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            aload 1 /* coll */
            invokeinterface java.util.Collection.removeAll:(Ljava/util/Collection;)Z
            aload 2
            monitorexit
         2: ireturn
      StackMap locals: java.util.Collections$SynchronizedCollection java.util.Collection java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 2
            monitorexit
         4: athrow
        end local 1 // java.util.Collection coll
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
            0    5     1  coll  Ljava/util/Collection<*>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: (Ljava/util/Collection<*>;)Z
    MethodParameters:
      Name  Flags
      coll  

  public boolean retainAll(java.util.Collection<?>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Collections$SynchronizedCollection this
        start local 1 // java.util.Collection coll
         0: .line 1609
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            aload 1 /* coll */
            invokeinterface java.util.Collection.retainAll:(Ljava/util/Collection;)Z
            aload 2
            monitorexit
         2: ireturn
      StackMap locals: java.util.Collections$SynchronizedCollection java.util.Collection java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 2
            monitorexit
         4: athrow
        end local 1 // java.util.Collection coll
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
            0    5     1  coll  Ljava/util/Collection<*>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: (Ljava/util/Collection<*>;)Z
    MethodParameters:
      Name  Flags
      coll  

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.Collections$SynchronizedCollection this
         0: .line 1612
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            invokeinterface java.util.Collection.clear:()V
            aload 1
            monitorexit
         2: goto 5
      StackMap locals: java.util.Collections$SynchronizedCollection java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 1
            monitorexit
         4: athrow
         5: .line 1613
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.Collections$SynchronizedCollection this
         0: .line 1615
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.c:Ljava/util/Collection;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            aload 1
            monitorexit
         2: areturn
      StackMap locals: java.util.Collections$SynchronizedCollection java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 1
            monitorexit
         4: athrow
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.util.Collections$SynchronizedCollection this
        start local 1 // java.io.ObjectOutputStream s
         0: .line 1618
            aload 0 /* this */
            getfield java.util.Collections$SynchronizedCollection.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
            aload 2
            monitorexit
         2: goto 5
      StackMap locals: java.util.Collections$SynchronizedCollection java.io.ObjectOutputStream java.lang.Object
      StackMap stack: java.lang.Throwable
         3: aload 2
            monitorexit
         4: athrow
         5: .line 1619
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.ObjectOutputStream s
        end local 0 // java.util.Collections$SynchronizedCollection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/util/Collections$SynchronizedCollection<TE;>;
            0    6     1     s  Ljava/io/ObjectOutputStream;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     
}
Signature: <E:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/Collection<TE;>;Ljava/io/Serializable;
SourceFile: "Collections.java"
NestHost: java.util.Collections
InnerClasses:
  SynchronizedCollection = java.util.Collections$SynchronizedCollection of java.util.Collections