class javafx.collections.FXCollections$SynchronizedObservableList<T> extends javafx.collections.FXCollections$SynchronizedList<T> implements javafx.collections.ObservableList<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javafx.collections.FXCollections$SynchronizedObservableList
  super_class: javafx.collections.FXCollections$SynchronizedList
{
  private com.sun.javafx.collections.ListListenerHelper helper;
    descriptor: Lcom/sun/javafx/collections/ListListenerHelper;
    flags: (0x0002) ACC_PRIVATE

  private final javafx.collections.ObservableList<T> backingList;
    descriptor: Ljavafx/collections/ObservableList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljavafx/collections/ObservableList<TT;>;

  private final javafx.collections.ListChangeListener<T> listener;
    descriptor: Ljavafx/collections/ListChangeListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljavafx/collections/ListChangeListener<TT;>;

  void <init>(javafx.collections.ObservableList<T>);
    descriptor: (Ljavafx/collections/ObservableList;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
        start local 1 // javafx.collections.ObservableList seq
         0: .line 1206
            aload 0 /* this */
            aload 1 /* seq */
            invokespecial javafx.collections.FXCollections$SynchronizedList.<init>:(Ljava/util/List;)V
         1: .line 1207
            aload 0 /* this */
            aload 1 /* seq */
            putfield javafx.collections.FXCollections$SynchronizedObservableList.backingList:Ljavafx/collections/ObservableList;
         2: .line 1208
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic onChanged(Ljavafx/collections/FXCollections$SynchronizedObservableList;)Ljavafx/collections/ListChangeListener;
              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:
                  (Ljavafx/collections/ListChangeListener$Change;)V
                  javafx/collections/FXCollections$SynchronizedObservableList.lambda$0(Ljavafx/collections/ListChangeListener$Change;)V (7)
                  (Ljavafx/collections/ListChangeListener$Change;)V
            putfield javafx.collections.FXCollections$SynchronizedObservableList.listener:Ljavafx/collections/ListChangeListener;
         3: .line 1211
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.backingList:Ljavafx/collections/ObservableList;
            new javafx.collections.WeakListChangeListener
            dup
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.listener:Ljavafx/collections/ListChangeListener;
            invokespecial javafx.collections.WeakListChangeListener.<init>:(Ljavafx/collections/ListChangeListener;)V
            invokeinterface javafx.collections.ObservableList.addListener:(Ljavafx/collections/ListChangeListener;)V
         4: .line 1212
            return
        end local 1 // javafx.collections.ObservableList seq
        end local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavafx/collections/FXCollections$SynchronizedObservableList<TT;>;
            0    5     1   seq  Ljavafx/collections/ObservableList<TT;>;
    Signature: (Ljavafx/collections/ObservableList<TT;>;)V
    MethodParameters:
      Name  Flags
      seq   

  public boolean addAll();
    descriptor: ([Ljava/lang/Object;)Z
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
        start local 1 // java.lang.Object[] elements
         0: .line 1216
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1217
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.backingList:Ljavafx/collections/ObservableList;
            aload 1 /* elements */
            invokeinterface javafx.collections.ObservableList.addAll:([Ljava/lang/Object;)Z
            aload 2
            monitorexit
         2: ireturn
         3: .line 1216
      StackMap locals: javafx.collections.FXCollections$SynchronizedObservableList java.lang.Object[] java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         4: athrow
        end local 1 // java.lang.Object[] elements
        end local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljavafx/collections/FXCollections$SynchronizedObservableList<TT;>;
            0    5     1  elements  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: ([TT;)Z
    MethodParameters:
          Name  Flags
      elements  

  public boolean setAll();
    descriptor: ([Ljava/lang/Object;)Z
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
        start local 1 // java.lang.Object[] elements
         0: .line 1223
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1224
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.backingList:Ljavafx/collections/ObservableList;
            aload 1 /* elements */
            invokeinterface javafx.collections.ObservableList.setAll:([Ljava/lang/Object;)Z
            aload 2
            monitorexit
         2: ireturn
         3: .line 1223
      StackMap locals: javafx.collections.FXCollections$SynchronizedObservableList java.lang.Object[] java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         4: athrow
        end local 1 // java.lang.Object[] elements
        end local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljavafx/collections/FXCollections$SynchronizedObservableList<TT;>;
            0    5     1  elements  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: ([TT;)Z
    MethodParameters:
          Name  Flags
      elements  

  public boolean removeAll();
    descriptor: ([Ljava/lang/Object;)Z
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
        start local 1 // java.lang.Object[] elements
         0: .line 1230
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1231
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.backingList:Ljavafx/collections/ObservableList;
            aload 1 /* elements */
            invokeinterface javafx.collections.ObservableList.removeAll:([Ljava/lang/Object;)Z
            aload 2
            monitorexit
         2: ireturn
         3: .line 1230
      StackMap locals: javafx.collections.FXCollections$SynchronizedObservableList java.lang.Object[] java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         4: athrow
        end local 1 // java.lang.Object[] elements
        end local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljavafx/collections/FXCollections$SynchronizedObservableList<TT;>;
            0    5     1  elements  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: ([TT;)Z
    MethodParameters:
          Name  Flags
      elements  

  public boolean retainAll();
    descriptor: ([Ljava/lang/Object;)Z
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
        start local 1 // java.lang.Object[] elements
         0: .line 1237
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1238
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.backingList:Ljavafx/collections/ObservableList;
            aload 1 /* elements */
            invokeinterface javafx.collections.ObservableList.retainAll:([Ljava/lang/Object;)Z
            aload 2
            monitorexit
         2: ireturn
         3: .line 1237
      StackMap locals: javafx.collections.FXCollections$SynchronizedObservableList java.lang.Object[] java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         4: athrow
        end local 1 // java.lang.Object[] elements
        end local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Ljavafx/collections/FXCollections$SynchronizedObservableList<TT;>;
            0    5     1  elements  [Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: ([TT;)Z
    MethodParameters:
          Name  Flags
      elements  

  public void remove(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
        start local 1 // int from
        start local 2 // int to
         0: .line 1244
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.mutex:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 1245
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.backingList:Ljavafx/collections/ObservableList;
            iload 1 /* from */
            iload 2 /* to */
            invokeinterface javafx.collections.ObservableList.remove:(II)V
         2: .line 1244
            aload 3
            monitorexit
         3: goto 6
      StackMap locals: javafx.collections.FXCollections$SynchronizedObservableList int int java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 3
            monitorexit
         5: athrow
         6: .line 1247
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int to
        end local 1 // int from
        end local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljavafx/collections/FXCollections$SynchronizedObservableList<TT;>;
            0    7     1  from  I
            0    7     2    to  I
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
      Name  Flags
      from  
      to    

  public boolean setAll(java.util.Collection<? extends T>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
        start local 1 // java.util.Collection col
         0: .line 1251
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1252
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.backingList:Ljavafx/collections/ObservableList;
            aload 1 /* col */
            invokeinterface javafx.collections.ObservableList.setAll:(Ljava/util/Collection;)Z
            aload 2
            monitorexit
         2: ireturn
         3: .line 1251
      StackMap locals: javafx.collections.FXCollections$SynchronizedObservableList java.util.Collection java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         4: athrow
        end local 1 // java.util.Collection col
        end local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavafx/collections/FXCollections$SynchronizedObservableList<TT;>;
            0    5     1   col  Ljava/util/Collection<+TT;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: (Ljava/util/Collection<+TT;>;)Z
    MethodParameters:
      Name  Flags
      col   

  public final void addListener(javafx.beans.InvalidationListener);
    descriptor: (Ljavafx/beans/InvalidationListener;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
        start local 1 // javafx.beans.InvalidationListener listener
         0: .line 1258
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1259
            aload 0 /* this */
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.helper:Lcom/sun/javafx/collections/ListListenerHelper;
            aload 1 /* listener */
            invokestatic com.sun.javafx.collections.ListListenerHelper.addListener:(Lcom/sun/javafx/collections/ListListenerHelper;Ljavafx/beans/InvalidationListener;)Lcom/sun/javafx/collections/ListListenerHelper;
            putfield javafx.collections.FXCollections$SynchronizedObservableList.helper:Lcom/sun/javafx/collections/ListListenerHelper;
         2: .line 1258
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: javafx.collections.FXCollections$SynchronizedObservableList javafx.beans.InvalidationListener java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 1261
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javafx.beans.InvalidationListener listener
        end local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Ljavafx/collections/FXCollections$SynchronizedObservableList<TT;>;
            0    7     1  listener  Ljavafx/beans/InvalidationListener;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      listener  

  public final void removeListener(javafx.beans.InvalidationListener);
    descriptor: (Ljavafx/beans/InvalidationListener;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
        start local 1 // javafx.beans.InvalidationListener listener
         0: .line 1265
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1266
            aload 0 /* this */
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.helper:Lcom/sun/javafx/collections/ListListenerHelper;
            aload 1 /* listener */
            invokestatic com.sun.javafx.collections.ListListenerHelper.removeListener:(Lcom/sun/javafx/collections/ListListenerHelper;Ljavafx/beans/InvalidationListener;)Lcom/sun/javafx/collections/ListListenerHelper;
            putfield javafx.collections.FXCollections$SynchronizedObservableList.helper:Lcom/sun/javafx/collections/ListListenerHelper;
         2: .line 1265
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: javafx.collections.FXCollections$SynchronizedObservableList javafx.beans.InvalidationListener java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 1268
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javafx.beans.InvalidationListener listener
        end local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Ljavafx/collections/FXCollections$SynchronizedObservableList<TT;>;
            0    7     1  listener  Ljavafx/beans/InvalidationListener;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
          Name  Flags
      listener  

  public void addListener(javafx.collections.ListChangeListener<? super T>);
    descriptor: (Ljavafx/collections/ListChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
        start local 1 // javafx.collections.ListChangeListener listener
         0: .line 1272
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1273
            aload 0 /* this */
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.helper:Lcom/sun/javafx/collections/ListListenerHelper;
            aload 1 /* listener */
            invokestatic com.sun.javafx.collections.ListListenerHelper.addListener:(Lcom/sun/javafx/collections/ListListenerHelper;Ljavafx/collections/ListChangeListener;)Lcom/sun/javafx/collections/ListListenerHelper;
            putfield javafx.collections.FXCollections$SynchronizedObservableList.helper:Lcom/sun/javafx/collections/ListListenerHelper;
         2: .line 1272
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: javafx.collections.FXCollections$SynchronizedObservableList javafx.collections.ListChangeListener java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 1275
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javafx.collections.ListChangeListener listener
        end local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Ljavafx/collections/FXCollections$SynchronizedObservableList<TT;>;
            0    7     1  listener  Ljavafx/collections/ListChangeListener<-TT;>;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    Signature: (Ljavafx/collections/ListChangeListener<-TT;>;)V
    MethodParameters:
          Name  Flags
      listener  

  public void removeListener(javafx.collections.ListChangeListener<? super T>);
    descriptor: (Ljavafx/collections/ListChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
        start local 1 // javafx.collections.ListChangeListener listener
         0: .line 1279
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 1280
            aload 0 /* this */
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.helper:Lcom/sun/javafx/collections/ListListenerHelper;
            aload 1 /* listener */
            invokestatic com.sun.javafx.collections.ListListenerHelper.removeListener:(Lcom/sun/javafx/collections/ListListenerHelper;Ljavafx/collections/ListChangeListener;)Lcom/sun/javafx/collections/ListListenerHelper;
            putfield javafx.collections.FXCollections$SynchronizedObservableList.helper:Lcom/sun/javafx/collections/ListListenerHelper;
         2: .line 1279
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: javafx.collections.FXCollections$SynchronizedObservableList javafx.collections.ListChangeListener java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 1282
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javafx.collections.ListChangeListener listener
        end local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Ljavafx/collections/FXCollections$SynchronizedObservableList<TT;>;
            0    7     1  listener  Ljavafx/collections/ListChangeListener<-TT;>;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    Signature: (Ljavafx/collections/ListChangeListener<-TT;>;)V
    MethodParameters:
          Name  Flags
      listener  

  private void lambda$0(javafx.collections.ListChangeListener$Change);
    descriptor: (Ljavafx/collections/ListChangeListener$Change;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
        start local 1 // javafx.collections.ListChangeListener$Change c
         0: .line 1209
            aload 0 /* this */
            getfield javafx.collections.FXCollections$SynchronizedObservableList.helper:Lcom/sun/javafx/collections/ListListenerHelper;
            new com.sun.javafx.collections.SourceAdapterChange
            dup
            aload 0 /* this */
            aload 1 /* c */
            invokespecial com.sun.javafx.collections.SourceAdapterChange.<init>:(Ljavafx/collections/ObservableList;Ljavafx/collections/ListChangeListener$Change;)V
            invokestatic com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent:(Lcom/sun/javafx/collections/ListListenerHelper;Ljavafx/collections/ListChangeListener$Change;)V
         1: .line 1210
            return
        end local 1 // javafx.collections.ListChangeListener$Change c
        end local 0 // javafx.collections.FXCollections$SynchronizedObservableList this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavafx/collections/FXCollections$SynchronizedObservableList<TT;>;
            0    2     1     c  Ljavafx/collections/ListChangeListener$Change<+TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljavafx/collections/FXCollections$SynchronizedList<TT;>;Ljavafx/collections/ObservableList<TT;>;
SourceFile: "FXCollections.java"
NestHost: javafx.collections.FXCollections
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private SynchronizedList = javafx.collections.FXCollections$SynchronizedList of javafx.collections.FXCollections
  private SynchronizedObservableList = javafx.collections.FXCollections$SynchronizedObservableList of javafx.collections.FXCollections
  public abstract Change = javafx.collections.ListChangeListener$Change of javafx.collections.ListChangeListener