public class org.eclipse.jdt.internal.core.UserLibraryManager
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.UserLibraryManager
  super_class: java.lang.Object
{
  public static final java.lang.String CP_USERLIBRARY_PREFERENCES_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.eclipse.jdt.core.userLibrary."

  private java.util.Map userLibraries;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 45
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.UserLibraryManager.initialize:()V
         2: .line 46
            return
        end local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jdt/internal/core/UserLibraryManager;

  public synchronized org.eclipse.jdt.internal.core.UserLibrary getUserLibrary(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/eclipse/jdt/internal/core/UserLibrary;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
        start local 1 // java.lang.String libName
         0: .line 52
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.UserLibraryManager.userLibraries:Ljava/util/Map;
            aload 1 /* libName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.eclipse.jdt.internal.core.UserLibrary
            areturn
        end local 1 // java.lang.String libName
        end local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/eclipse/jdt/internal/core/UserLibraryManager;
            0    1     1  libName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      libName  

  public synchronized java.lang.String[] getUserLibraryNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
         0: .line 60
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.UserLibraryManager.userLibraries:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            astore 1 /* set */
        start local 1 // java.util.Set set
         1: .line 61
            aload 1 /* set */
            aload 1 /* set */
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            areturn
        end local 1 // java.util.Set set
        end local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/core/UserLibraryManager;
            1    2     1   set  Ljava/util/Set;

  private void initialize();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=12, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
         0: .line 65
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.eclipse.jdt.internal.core.UserLibraryManager.userLibraries:Ljava/util/Map;
         1: .line 66
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.getInstancePreferences:()Lorg/eclipse/core/runtime/preferences/IEclipsePreferences;
            astore 1 /* instancePreferences */
        start local 1 // org.eclipse.core.runtime.preferences.IEclipsePreferences instancePreferences
         2: .line 69
            aload 1 /* instancePreferences */
            invokeinterface org.eclipse.core.runtime.preferences.IEclipsePreferences.keys:()[Ljava/lang/String;
            astore 2 /* propertyNames */
        start local 2 // java.lang.String[] propertyNames
         3: .line 70
            goto 7
        end local 2 // java.lang.String[] propertyNames
      StackMap locals: org.eclipse.jdt.internal.core.UserLibraryManager org.eclipse.core.runtime.preferences.IEclipsePreferences
      StackMap stack: org.osgi.service.prefs.BackingStoreException
         4: astore 3 /* e */
        start local 3 // org.osgi.service.prefs.BackingStoreException e
         5: .line 71
            aload 3 /* e */
            ldc "Exception while initializing user libraries"
            invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;Ljava/lang/String;)V
         6: .line 72
            return
        end local 3 // org.osgi.service.prefs.BackingStoreException e
        start local 2 // java.lang.String[] propertyNames
         7: .line 75
      StackMap locals: java.lang.String[]
      StackMap stack:
            iconst_0
            istore 3 /* preferencesNeedFlush */
        start local 3 // boolean preferencesNeedFlush
         8: .line 76
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         9: aload 2 /* propertyNames */
            arraylength
            istore 5 /* length */
        start local 5 // int length
        10: goto 26
        11: .line 77
      StackMap locals: int int int
      StackMap stack:
            aload 2 /* propertyNames */
            iload 4 /* i */
            aaload
            astore 6 /* propertyName */
        start local 6 // java.lang.String propertyName
        12: .line 78
            aload 6 /* propertyName */
            ldc "org.eclipse.jdt.core.userLibrary."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 25
        13: .line 79
            aload 1 /* instancePreferences */
            aload 6 /* propertyName */
            aconst_null
            invokeinterface org.eclipse.core.runtime.preferences.IEclipsePreferences.get:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 7 /* propertyValue */
        start local 7 // java.lang.String propertyValue
        14: .line 80
            aload 7 /* propertyValue */
            ifnull 25
        15: .line 81
            aload 6 /* propertyName */
            ldc "org.eclipse.jdt.core.userLibrary."
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* libName */
        start local 8 // java.lang.String libName
        16: .line 82
            new java.io.StringReader
            dup
            aload 7 /* propertyValue */
            invokespecial java.io.StringReader.<init>:(Ljava/lang/String;)V
            astore 9 /* reader */
        start local 9 // java.io.StringReader reader
        17: .line 85
            aload 9 /* reader */
            invokestatic org.eclipse.jdt.internal.core.UserLibrary.createFromString:(Ljava/io/Reader;)Lorg/eclipse/jdt/internal/core/UserLibrary;
            astore 10 /* library */
        start local 10 // org.eclipse.jdt.internal.core.UserLibrary library
        18: .line 86
            goto 24
        end local 10 // org.eclipse.jdt.internal.core.UserLibrary library
      StackMap locals: org.eclipse.jdt.internal.core.UserLibraryManager org.eclipse.core.runtime.preferences.IEclipsePreferences java.lang.String[] int int int java.lang.String java.lang.String java.lang.String java.io.StringReader
      StackMap stack: java.lang.Exception
        19: astore 11 /* e */
        start local 11 // java.lang.Exception e
        20: .line 87
            aload 11 /* e */
            new java.lang.StringBuilder
            dup
            ldc "Exception while initializing user library "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* libName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;Ljava/lang/String;)V
        21: .line 88
            aload 1 /* instancePreferences */
            aload 6 /* propertyName */
            invokeinterface org.eclipse.core.runtime.preferences.IEclipsePreferences.remove:(Ljava/lang/String;)V
        22: .line 89
            iconst_1
            istore 3 /* preferencesNeedFlush */
        23: .line 90
            goto 25
        end local 11 // java.lang.Exception e
        start local 10 // org.eclipse.jdt.internal.core.UserLibrary library
        24: .line 92
      StackMap locals: org.eclipse.jdt.internal.core.UserLibrary
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.UserLibraryManager.userLibraries:Ljava/util/Map;
            aload 8 /* libName */
            aload 10 /* library */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 10 // org.eclipse.jdt.internal.core.UserLibrary library
        end local 9 // java.io.StringReader reader
        end local 8 // java.lang.String libName
        end local 7 // java.lang.String propertyValue
        end local 6 // java.lang.String propertyName
        25: .line 76
      StackMap locals: org.eclipse.jdt.internal.core.UserLibraryManager org.eclipse.core.runtime.preferences.IEclipsePreferences java.lang.String[] int int int
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        26: iload 4 /* i */
            iload 5 /* length */
            if_icmplt 11
        end local 5 // int length
        end local 4 // int i
        27: .line 96
            iload 3 /* preferencesNeedFlush */
            ifeq 32
        28: .line 98
            aload 1 /* instancePreferences */
            invokeinterface org.eclipse.core.runtime.preferences.IEclipsePreferences.flush:()V
        29: .line 99
            goto 32
      StackMap locals: org.eclipse.jdt.internal.core.UserLibraryManager org.eclipse.core.runtime.preferences.IEclipsePreferences java.lang.String[] int
      StackMap stack: org.osgi.service.prefs.BackingStoreException
        30: astore 4 /* e */
        start local 4 // org.osgi.service.prefs.BackingStoreException e
        31: .line 100
            aload 4 /* e */
            ldc "Exception while flusing instance preferences"
            invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 4 // org.osgi.service.prefs.BackingStoreException e
        32: .line 103
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean preferencesNeedFlush
        end local 2 // java.lang.String[] propertyNames
        end local 1 // org.eclipse.core.runtime.preferences.IEclipsePreferences instancePreferences
        end local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   33     0                  this  Lorg/eclipse/jdt/internal/core/UserLibraryManager;
            2   33     1   instancePreferences  Lorg/eclipse/core/runtime/preferences/IEclipsePreferences;
            3    4     2         propertyNames  [Ljava/lang/String;
            7   33     2         propertyNames  [Ljava/lang/String;
            5    7     3                     e  Lorg/osgi/service/prefs/BackingStoreException;
            8   33     3  preferencesNeedFlush  Z
            9   27     4                     i  I
           10   27     5                length  I
           12   25     6          propertyName  Ljava/lang/String;
           14   25     7         propertyValue  Ljava/lang/String;
           16   25     8               libName  Ljava/lang/String;
           17   25     9                reader  Ljava/io/StringReader;
           18   19    10               library  Lorg/eclipse/jdt/internal/core/UserLibrary;
           24   25    10               library  Lorg/eclipse/jdt/internal/core/UserLibrary;
           20   24    11                     e  Ljava/lang/Exception;
           31   32     4                     e  Lorg/osgi/service/prefs/BackingStoreException;
      Exception table:
        from    to  target  type
           2     3       4  Class org.osgi.service.prefs.BackingStoreException
          17    18      19  Class java.io.IOException
          17    18      19  Class org.eclipse.jdt.internal.core.ClasspathEntry$AssertionFailedException
          28    29      30  Class org.osgi.service.prefs.BackingStoreException

  public void updateUserLibrary(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=12, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
        start local 1 // java.lang.String libName
        start local 2 // java.lang.String encodedUserLibrary
         0: .line 108
            new org.eclipse.core.runtime.Path
            dup
            ldc "org.eclipse.jdt.USER_LIBRARY"
            invokespecial org.eclipse.core.runtime.Path.<init>:(Ljava/lang/String;)V
            aload 1 /* libName */
            invokevirtual org.eclipse.core.runtime.Path.append:(Ljava/lang/String;)Lorg/eclipse/core/runtime/IPath;
            astore 3 /* containerPath */
        start local 3 // org.eclipse.core.runtime.IPath containerPath
         1: .line 109
            invokestatic org.eclipse.core.resources.ResourcesPlugin.getWorkspace:()Lorg/eclipse/core/resources/IWorkspace;
            invokeinterface org.eclipse.core.resources.IWorkspace.getRoot:()Lorg/eclipse/core/resources/IWorkspaceRoot;
            invokestatic org.eclipse.jdt.core.JavaCore.create:(Lorg/eclipse/core/resources/IWorkspaceRoot;)Lorg/eclipse/jdt/core/IJavaModel;
            invokeinterface org.eclipse.jdt.core.IJavaModel.getJavaProjects:()[Lorg/eclipse/jdt/core/IJavaProject;
            astore 4 /* allJavaProjects */
        start local 4 // org.eclipse.jdt.core.IJavaProject[] allJavaProjects
         2: .line 110
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* affectedProjects */
        start local 5 // java.util.ArrayList affectedProjects
         3: .line 111
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         4: goto 17
         5: .line 112
      StackMap locals: org.eclipse.jdt.internal.core.UserLibraryManager java.lang.String java.lang.String org.eclipse.core.runtime.IPath org.eclipse.jdt.core.IJavaProject[] java.util.ArrayList int
      StackMap stack:
            aload 4 /* allJavaProjects */
            iload 6 /* i */
            aaload
            astore 7 /* javaProject */
        start local 7 // org.eclipse.jdt.core.IJavaProject javaProject
         6: .line 113
            aload 7 /* javaProject */
            invokeinterface org.eclipse.jdt.core.IJavaProject.getRawClasspath:()[Lorg/eclipse/jdt/core/IClasspathEntry;
            astore 8 /* entries */
        start local 8 // org.eclipse.jdt.core.IClasspathEntry[] entries
         7: .line 114
            iconst_0
            istore 9 /* j */
        start local 9 // int j
         8: goto 15
         9: .line 115
      StackMap locals: org.eclipse.jdt.core.IJavaProject org.eclipse.jdt.core.IClasspathEntry[] int
      StackMap stack:
            aload 8 /* entries */
            iload 9 /* j */
            aaload
            astore 10 /* entry */
        start local 10 // org.eclipse.jdt.core.IClasspathEntry entry
        10: .line 116
            aload 10 /* entry */
            invokeinterface org.eclipse.jdt.core.IClasspathEntry.getEntryKind:()I
            iconst_5
            if_icmpne 14
        11: .line 117
            aload 3 /* containerPath */
            aload 10 /* entry */
            invokeinterface org.eclipse.jdt.core.IClasspathEntry.getPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 118
            aload 5 /* affectedProjects */
            aload 7 /* javaProject */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        13: .line 119
            goto 16
        end local 10 // org.eclipse.jdt.core.IClasspathEntry entry
        14: .line 114
      StackMap locals:
      StackMap stack:
            iinc 9 /* j */ 1
      StackMap locals:
      StackMap stack:
        15: iload 9 /* j */
            aload 8 /* entries */
            arraylength
            if_icmplt 9
        end local 9 // int j
        end local 8 // org.eclipse.jdt.core.IClasspathEntry[] entries
        end local 7 // org.eclipse.jdt.core.IJavaProject javaProject
        16: .line 111
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 6 /* i */
            aload 4 /* allJavaProjects */
            arraylength
            if_icmplt 5
        end local 6 // int i
        18: .line 126
            aload 2 /* encodedUserLibrary */
            ifnonnull 19
            aconst_null
            goto 20
      StackMap locals:
      StackMap stack:
        19: new java.io.StringReader
            dup
            aload 2 /* encodedUserLibrary */
            invokespecial java.io.StringReader.<init>:(Ljava/lang/String;)V
            invokestatic org.eclipse.jdt.internal.core.UserLibrary.createFromString:(Ljava/io/Reader;)Lorg/eclipse/jdt/internal/core/UserLibrary;
      StackMap locals:
      StackMap stack: org.eclipse.jdt.internal.core.UserLibrary
        20: astore 6 /* userLibrary */
        start local 6 // org.eclipse.jdt.internal.core.UserLibrary userLibrary
        21: .line 128
            aload 0 /* this */
            dup
            astore 7
            monitorenter
        22: .line 130
            aload 6 /* userLibrary */
            ifnull 25
        23: .line 131
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.UserLibraryManager.userLibraries:Ljava/util/Map;
            aload 1 /* libName */
            aload 6 /* userLibrary */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 132
            goto 26
        25: .line 133
      StackMap locals: org.eclipse.jdt.internal.core.UserLibrary org.eclipse.jdt.internal.core.UserLibraryManager
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.UserLibraryManager.userLibraries:Ljava/util/Map;
            aload 1 /* libName */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 128
      StackMap locals:
      StackMap stack:
            aload 7
            monitorexit
        27: goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        28: aload 7
            monitorexit
        29: athrow
        30: .line 138
      StackMap locals:
      StackMap stack:
            aload 5 /* affectedProjects */
            invokevirtual java.util.ArrayList.size:()I
            istore 7 /* length */
        start local 7 // int length
        31: .line 139
            iload 7 /* length */
            ifne 33
        32: .line 140
            return
        33: .line 141
      StackMap locals: int
      StackMap stack:
            iload 7 /* length */
            anewarray org.eclipse.jdt.core.IJavaProject
            astore 8 /* projects */
        start local 8 // org.eclipse.jdt.core.IJavaProject[] projects
        34: .line 142
            aload 5 /* affectedProjects */
            aload 8 /* projects */
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
        35: .line 143
            iload 7 /* length */
            anewarray org.eclipse.jdt.core.IClasspathContainer
            astore 9 /* containers */
        start local 9 // org.eclipse.jdt.core.IClasspathContainer[] containers
        36: .line 144
            aload 6 /* userLibrary */
            ifnull 43
        37: .line 145
            new org.eclipse.jdt.internal.core.UserLibraryClasspathContainer
            dup
            aload 1 /* libName */
            invokespecial org.eclipse.jdt.internal.core.UserLibraryClasspathContainer.<init>:(Ljava/lang/String;)V
            astore 10 /* container */
        start local 10 // org.eclipse.jdt.internal.core.UserLibraryClasspathContainer container
        38: .line 146
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        39: goto 42
        40: .line 147
      StackMap locals: org.eclipse.jdt.internal.core.UserLibraryManager java.lang.String java.lang.String org.eclipse.core.runtime.IPath org.eclipse.jdt.core.IJavaProject[] java.util.ArrayList org.eclipse.jdt.internal.core.UserLibrary int org.eclipse.jdt.core.IJavaProject[] org.eclipse.jdt.core.IClasspathContainer[] org.eclipse.jdt.internal.core.UserLibraryClasspathContainer int
      StackMap stack:
            aload 9 /* containers */
            iload 11 /* i */
            aload 10 /* container */
            aastore
        41: .line 146
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        42: iload 11 /* i */
            iload 7 /* length */
            if_icmplt 40
        end local 11 // int i
        end local 10 // org.eclipse.jdt.internal.core.UserLibraryClasspathContainer container
        43: .line 150
      StackMap locals:
      StackMap stack:
            aload 3 /* containerPath */
            aload 8 /* projects */
            aload 9 /* containers */
            aconst_null
            invokestatic org.eclipse.jdt.core.JavaCore.setClasspathContainer:(Lorg/eclipse/core/runtime/IPath;[Lorg/eclipse/jdt/core/IJavaProject;[Lorg/eclipse/jdt/core/IClasspathContainer;Lorg/eclipse/core/runtime/IProgressMonitor;)V
        end local 9 // org.eclipse.jdt.core.IClasspathContainer[] containers
        end local 8 // org.eclipse.jdt.core.IJavaProject[] projects
        end local 7 // int length
        end local 6 // org.eclipse.jdt.internal.core.UserLibrary userLibrary
        end local 5 // java.util.ArrayList affectedProjects
        end local 4 // org.eclipse.jdt.core.IJavaProject[] allJavaProjects
        end local 3 // org.eclipse.core.runtime.IPath containerPath
        44: .line 151
            goto 50
      StackMap locals: org.eclipse.jdt.internal.core.UserLibraryManager java.lang.String java.lang.String
      StackMap stack: org.eclipse.jdt.core.JavaModelException
        45: astore 3 /* e */
        start local 3 // org.eclipse.jdt.core.JavaModelException e
        46: .line 152
            aload 3 /* e */
            new java.lang.StringBuilder
            dup
            ldc "Exception while setting user library '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* libName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 3 // org.eclipse.jdt.core.JavaModelException e
        47: goto 50
        48: .line 153
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* ase */
        start local 3 // java.lang.Exception ase
        49: .line 154
            aload 3 /* ase */
            new java.lang.StringBuilder
            dup
            ldc "Exception while decoding user library '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* libName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 3 // java.lang.Exception ase
        50: .line 157
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String encodedUserLibrary
        end local 1 // java.lang.String libName
        end local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   51     0                this  Lorg/eclipse/jdt/internal/core/UserLibraryManager;
            0   51     1             libName  Ljava/lang/String;
            0   51     2  encodedUserLibrary  Ljava/lang/String;
            1   44     3       containerPath  Lorg/eclipse/core/runtime/IPath;
            2   44     4     allJavaProjects  [Lorg/eclipse/jdt/core/IJavaProject;
            3   44     5    affectedProjects  Ljava/util/ArrayList;
            4   18     6                   i  I
            6   16     7         javaProject  Lorg/eclipse/jdt/core/IJavaProject;
            7   16     8             entries  [Lorg/eclipse/jdt/core/IClasspathEntry;
            8   16     9                   j  I
           10   14    10               entry  Lorg/eclipse/jdt/core/IClasspathEntry;
           21   44     6         userLibrary  Lorg/eclipse/jdt/internal/core/UserLibrary;
           31   44     7              length  I
           34   44     8            projects  [Lorg/eclipse/jdt/core/IJavaProject;
           36   44     9          containers  [Lorg/eclipse/jdt/core/IClasspathContainer;
           38   43    10           container  Lorg/eclipse/jdt/internal/core/UserLibraryClasspathContainer;
           39   43    11                   i  I
           46   47     3                   e  Lorg/eclipse/jdt/core/JavaModelException;
           49   50     3                 ase  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          22    27      28  any
          28    29      28  any
           0    32      45  Class org.eclipse.jdt.core.JavaModelException
          33    44      45  Class org.eclipse.jdt.core.JavaModelException
           0    32      48  Class java.io.IOException
          33    44      48  Class java.io.IOException
           0    32      48  Class org.eclipse.jdt.internal.core.ClasspathEntry$AssertionFailedException
          33    44      48  Class org.eclipse.jdt.internal.core.ClasspathEntry$AssertionFailedException
    MethodParameters:
                    Name  Flags
      libName             
      encodedUserLibrary  

  public void removeUserLibrary(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
        start local 1 // java.lang.String libName
         0: .line 160
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.UserLibraryManager.userLibraries:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         1: .line 161
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.getInstancePreferences:()Lorg/eclipse/core/runtime/preferences/IEclipsePreferences;
            astore 3 /* instancePreferences */
        start local 3 // org.eclipse.core.runtime.preferences.IEclipsePreferences instancePreferences
         2: .line 162
            new java.lang.StringBuilder
            dup
            ldc "org.eclipse.jdt.core.userLibrary."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* libName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* propertyName */
        start local 4 // java.lang.String propertyName
         3: .line 163
            aload 3 /* instancePreferences */
            aload 4 /* propertyName */
            invokeinterface org.eclipse.core.runtime.preferences.IEclipsePreferences.remove:(Ljava/lang/String;)V
         4: .line 165
            aload 3 /* instancePreferences */
            invokeinterface org.eclipse.core.runtime.preferences.IEclipsePreferences.flush:()V
         5: .line 166
            goto 8
      StackMap locals: org.eclipse.jdt.internal.core.UserLibraryManager java.lang.String java.util.Map org.eclipse.core.runtime.preferences.IEclipsePreferences java.lang.String
      StackMap stack: org.osgi.service.prefs.BackingStoreException
         6: astore 5 /* e */
        start local 5 // org.osgi.service.prefs.BackingStoreException e
         7: .line 167
            aload 5 /* e */
            new java.lang.StringBuilder
            dup
            ldc "Exception while removing user library "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* libName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 5 // org.osgi.service.prefs.BackingStoreException e
        end local 4 // java.lang.String propertyName
        end local 3 // org.eclipse.core.runtime.preferences.IEclipsePreferences instancePreferences
         8: .line 160
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 2
            monitorexit
        11: athrow
        12: .line 171
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String libName
        end local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   13     0                 this  Lorg/eclipse/jdt/internal/core/UserLibraryManager;
            0   13     1              libName  Ljava/lang/String;
            2    8     3  instancePreferences  Lorg/eclipse/core/runtime/preferences/IEclipsePreferences;
            3    8     4         propertyName  Ljava/lang/String;
            7    8     5                    e  Lorg/osgi/service/prefs/BackingStoreException;
      Exception table:
        from    to  target  type
           4     5       6  Class org.osgi.service.prefs.BackingStoreException
           1     9      10  any
          10    11      10  any
    MethodParameters:
         Name  Flags
      libName  

  public void setUserLibrary(java.lang.String, org.eclipse.jdt.core.IClasspathEntry[], boolean);
    descriptor: (Ljava/lang/String;[Lorg/eclipse/jdt/core/IClasspathEntry;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
        start local 1 // java.lang.String libName
        start local 2 // org.eclipse.jdt.core.IClasspathEntry[] entries
        start local 3 // boolean isSystemLibrary
         0: .line 174
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.UserLibraryManager.userLibraries:Ljava/util/Map;
            dup
            astore 4
            monitorenter
         1: .line 175
            invokestatic org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager:()Lorg/eclipse/jdt/internal/core/JavaModelManager;
            invokevirtual org.eclipse.jdt.internal.core.JavaModelManager.getInstancePreferences:()Lorg/eclipse/core/runtime/preferences/IEclipsePreferences;
            astore 5 /* instancePreferences */
        start local 5 // org.eclipse.core.runtime.preferences.IEclipsePreferences instancePreferences
         2: .line 176
            new java.lang.StringBuilder
            dup
            ldc "org.eclipse.jdt.core.userLibrary."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* libName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 6 /* propertyName */
        start local 6 // java.lang.String propertyName
         3: .line 178
            aload 2 /* entries */
            iload 3 /* isSystemLibrary */
            invokestatic org.eclipse.jdt.internal.core.UserLibrary.serialize:([Lorg/eclipse/jdt/core/IClasspathEntry;Z)Ljava/lang/String;
            astore 7 /* propertyValue */
        start local 7 // java.lang.String propertyValue
         4: .line 179
            aload 5 /* instancePreferences */
            aload 6 /* propertyName */
            aload 7 /* propertyValue */
            invokeinterface org.eclipse.core.runtime.preferences.IEclipsePreferences.put:(Ljava/lang/String;Ljava/lang/String;)V
        end local 7 // java.lang.String propertyValue
         5: .line 180
            goto 10
      StackMap locals: org.eclipse.jdt.internal.core.UserLibraryManager java.lang.String org.eclipse.jdt.core.IClasspathEntry[] int java.util.Map org.eclipse.core.runtime.preferences.IEclipsePreferences java.lang.String
      StackMap stack: java.io.IOException
         6: astore 7 /* e */
        start local 7 // java.io.IOException e
         7: .line 181
            aload 7 /* e */
            new java.lang.StringBuilder
            dup
            ldc "Exception while serializing user library "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* libName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;Ljava/lang/String;)V
         8: .line 182
            aload 4
            monitorexit
         9: return
        end local 7 // java.io.IOException e
        10: .line 185
      StackMap locals:
      StackMap stack:
            aload 5 /* instancePreferences */
            invokeinterface org.eclipse.core.runtime.preferences.IEclipsePreferences.flush:()V
        11: .line 186
            goto 14
      StackMap locals:
      StackMap stack: org.osgi.service.prefs.BackingStoreException
        12: astore 7 /* e */
        start local 7 // org.osgi.service.prefs.BackingStoreException e
        13: .line 187
            aload 7 /* e */
            new java.lang.StringBuilder
            dup
            ldc "Exception while saving user library "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* libName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.eclipse.jdt.internal.core.util.Util.log:(Ljava/lang/Throwable;Ljava/lang/String;)V
        end local 7 // org.osgi.service.prefs.BackingStoreException e
        end local 6 // java.lang.String propertyName
        end local 5 // org.eclipse.core.runtime.preferences.IEclipsePreferences instancePreferences
        14: .line 174
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        15: goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
        16: aload 4
            monitorexit
        17: athrow
        18: .line 191
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean isSystemLibrary
        end local 2 // org.eclipse.jdt.core.IClasspathEntry[] entries
        end local 1 // java.lang.String libName
        end local 0 // org.eclipse.jdt.internal.core.UserLibraryManager this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   19     0                 this  Lorg/eclipse/jdt/internal/core/UserLibraryManager;
            0   19     1              libName  Ljava/lang/String;
            0   19     2              entries  [Lorg/eclipse/jdt/core/IClasspathEntry;
            0   19     3      isSystemLibrary  Z
            2   14     5  instancePreferences  Lorg/eclipse/core/runtime/preferences/IEclipsePreferences;
            3   14     6         propertyName  Ljava/lang/String;
            4    5     7        propertyValue  Ljava/lang/String;
            7   10     7                    e  Ljava/io/IOException;
           13   14     7                    e  Lorg/osgi/service/prefs/BackingStoreException;
      Exception table:
        from    to  target  type
           3     5       6  Class java.io.IOException
          10    11      12  Class org.osgi.service.prefs.BackingStoreException
           1     9      16  any
          10    15      16  any
          16    17      16  any
    MethodParameters:
                 Name  Flags
      libName          
      entries          
      isSystemLibrary  
}
SourceFile: "UserLibraryManager.java"
InnerClasses:
  public AssertionFailedException = org.eclipse.jdt.internal.core.ClasspathEntry$AssertionFailedException of org.eclipse.jdt.internal.core.ClasspathEntry