public class javax.sql.rowset.spi.SyncFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.sql.rowset.spi.SyncFactory
  super_class: java.lang.Object
{
  private static javax.sql.rowset.spi.SyncFactory syncFactory;
    descriptor: Ljavax/sql/rowset/spi/SyncFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  public static java.lang.String ROWSET_SYNC_PROVIDER;
    descriptor: Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static java.lang.String ROWSET_SYNC_VENDOR;
    descriptor: Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static java.lang.String ROWSET_SYNC_PROVIDER_VERSION;
    descriptor: Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  private static java.lang.String ROWSET_PROPERTIES;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.String default_provider;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static javax.naming.Context ic;
    descriptor: Ljavax/naming/Context;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.util.logging.Logger rsLogger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.util.logging.Level rsLevel;
    descriptor: Ljava/util/logging/Level;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.util.Hashtable implementations;
    descriptor: Ljava/util/Hashtable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.Object logSync;
    descriptor: Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.io.PrintWriter logWriter;
    descriptor: Ljava/io/PrintWriter;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.String colon;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.String strFileSep;
    descriptor: Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean jndiCtxEstablished;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean debug;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static int providerImplIndex;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean lazyJNDICtxRefresh;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 218
            aconst_null
            putstatic javax.sql.rowset.spi.SyncFactory.syncFactory:Ljavax/sql/rowset/spi/SyncFactory;
         1: .line 233
            ldc "rowset.provider.classname"
         2: .line 232
            putstatic javax.sql.rowset.spi.SyncFactory.ROWSET_SYNC_PROVIDER:Ljava/lang/String;
         3: .line 240
            ldc "rowset.provider.vendor"
         4: .line 239
            putstatic javax.sql.rowset.spi.SyncFactory.ROWSET_SYNC_VENDOR:Ljava/lang/String;
         5: .line 247
            ldc "rowset.provider.version"
         6: .line 246
            putstatic javax.sql.rowset.spi.SyncFactory.ROWSET_SYNC_PROVIDER_VERSION:Ljava/lang/String;
         7: .line 252
            ldc "rowset.properties"
            putstatic javax.sql.rowset.spi.SyncFactory.ROWSET_PROPERTIES:Ljava/lang/String;
         8: .line 258
            ldc "com.sun.rowset.providers.RIOptimisticProvider"
         9: .line 257
            putstatic javax.sql.rowset.spi.SyncFactory.default_provider:Ljava/lang/String;
        10: .line 286
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic javax.sql.rowset.spi.SyncFactory.logSync:Ljava/lang/Object;
        11: .line 291
            aconst_null
            putstatic javax.sql.rowset.spi.SyncFactory.logWriter:Ljava/io/PrintWriter;
        12: .line 375
            ldc ":"
            putstatic javax.sql.rowset.spi.SyncFactory.colon:Ljava/lang/String;
        13: .line 376
            ldc "/"
            putstatic javax.sql.rowset.spi.SyncFactory.strFileSep:Ljava/lang/String;
        14: .line 508
            iconst_0
            putstatic javax.sql.rowset.spi.SyncFactory.jndiCtxEstablished:Z
        15: .line 513
            iconst_0
            putstatic javax.sql.rowset.spi.SyncFactory.debug:Z
        16: .line 519
            iconst_0
            putstatic javax.sql.rowset.spi.SyncFactory.providerImplIndex:I
        17: .line 759
            iconst_0
            putstatic javax.sql.rowset.spi.SyncFactory.lazyJNDICtxRefresh:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.sql.rowset.spi.SyncFactory this
         0: .line 226
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // javax.sql.rowset.spi.SyncFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/sql/rowset/spi/SyncFactory;

  public static synchronized void registerProvider(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String providerID
         0: .line 323
            new javax.sql.rowset.spi.ProviderImpl
            dup
            invokespecial javax.sql.rowset.spi.ProviderImpl.<init>:()V
            astore 1 /* impl */
        start local 1 // javax.sql.rowset.spi.ProviderImpl impl
         1: .line 324
            aload 1 /* impl */
            aload 0 /* providerID */
            invokevirtual javax.sql.rowset.spi.ProviderImpl.setClassname:(Ljava/lang/String;)V
         2: .line 325
            invokestatic javax.sql.rowset.spi.SyncFactory.initMapIfNecessary:()V
         3: .line 326
            getstatic javax.sql.rowset.spi.SyncFactory.implementations:Ljava/util/Hashtable;
            aload 0 /* providerID */
            aload 1 /* impl */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 328
            return
        end local 1 // javax.sql.rowset.spi.ProviderImpl impl
        end local 0 // java.lang.String providerID
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0  providerID  Ljava/lang/String;
            1    5     1        impl  Ljavax/sql/rowset/spi/ProviderImpl;
    Exceptions:
      throws javax.sql.rowset.spi.SyncFactoryException
    MethodParameters:
            Name  Flags
      providerID  

  public static javax.sql.rowset.spi.SyncFactory getSyncFactory();
    descriptor: ()Ljavax/sql/rowset/spi/SyncFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 349
            getstatic javax.sql.rowset.spi.SyncFactory.syncFactory:Ljavax/sql/rowset/spi/SyncFactory;
            ifnonnull 8
         1: .line 350
            ldc Ljavax/sql/rowset/spi/SyncFactory;
            dup
            astore 0
            monitorenter
         2: .line 351
            getstatic javax.sql.rowset.spi.SyncFactory.syncFactory:Ljavax/sql/rowset/spi/SyncFactory;
            ifnonnull 4
         3: .line 352
            new javax.sql.rowset.spi.SyncFactory
            dup
            invokespecial javax.sql.rowset.spi.SyncFactory.<init>:()V
            putstatic javax.sql.rowset.spi.SyncFactory.syncFactory:Ljavax/sql/rowset/spi/SyncFactory;
         4: .line 350
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 0
            monitorexit
         7: athrow
         8: .line 356
      StackMap locals:
      StackMap stack:
            getstatic javax.sql.rowset.spi.SyncFactory.syncFactory:Ljavax/sql/rowset/spi/SyncFactory;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any

  public static synchronized void unregisterProvider(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String providerID
         0: .line 369
            invokestatic javax.sql.rowset.spi.SyncFactory.initMapIfNecessary:()V
         1: .line 370
            getstatic javax.sql.rowset.spi.SyncFactory.implementations:Ljava/util/Hashtable;
            aload 0 /* providerID */
            invokevirtual java.util.Hashtable.containsKey:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 371
            getstatic javax.sql.rowset.spi.SyncFactory.implementations:Ljava/util/Hashtable;
            aload 0 /* providerID */
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 373
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.String providerID
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0  providerID  Ljava/lang/String;
    Exceptions:
      throws javax.sql.rowset.spi.SyncFactoryException
    MethodParameters:
            Name  Flags
      providerID  

  private static synchronized void initMapIfNecessary();
    descriptor: ()V
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=6, args_size=0
         0: .line 383
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 0 /* properties */
        start local 0 // java.util.Properties properties
         1: .line 385
            getstatic javax.sql.rowset.spi.SyncFactory.implementations:Ljava/util/Hashtable;
            ifnonnull 48
         2: .line 386
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putstatic javax.sql.rowset.spi.SyncFactory.implementations:Ljava/util/Hashtable;
         3: .line 406
            new javax.sql.rowset.spi.SyncFactory$1
            dup
            invokespecial javax.sql.rowset.spi.SyncFactory$1.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* strRowsetProperties */
        start local 1 // java.lang.String strRowsetProperties
         4: .line 411
            goto 8
        end local 1 // java.lang.String strRowsetProperties
      StackMap locals: java.util.Properties
      StackMap stack: java.lang.Exception
         5: astore 2 /* ex */
        start local 2 // java.lang.Exception ex
         6: .line 412
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "errorget rowset.properties: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         7: .line 413
            aconst_null
            astore 1 /* strRowsetProperties */
        end local 2 // java.lang.Exception ex
        start local 1 // java.lang.String strRowsetProperties
         8: .line 415
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* strRowsetProperties */
            ifnull 12
         9: .line 418
            aload 1 /* strRowsetProperties */
            putstatic javax.sql.rowset.spi.SyncFactory.ROWSET_PROPERTIES:Ljava/lang/String;
        10: .line 419
            aload 0 /* properties */
            new java.io.FileInputStream
            dup
            getstatic javax.sql.rowset.spi.SyncFactory.ROWSET_PROPERTIES:Ljava/lang/String;
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            invokevirtual java.util.Properties.load:(Ljava/io/InputStream;)V
        11: .line 420
            aload 0 /* properties */
            invokestatic javax.sql.rowset.spi.SyncFactory.parseProperties:(Ljava/util/Properties;)V
        12: .line 426
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "javax"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic javax.sql.rowset.spi.SyncFactory.strFileSep:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "sql"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        13: .line 427
            getstatic javax.sql.rowset.spi.SyncFactory.strFileSep:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "rowset"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic javax.sql.rowset.spi.SyncFactory.strFileSep:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 428
            ldc "rowset.properties"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 426
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putstatic javax.sql.rowset.spi.SyncFactory.ROWSET_PROPERTIES:Ljava/lang/String;
        16: .line 430
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* cl */
        start local 2 // java.lang.ClassLoader cl
        17: .line 433
            new javax.sql.rowset.spi.SyncFactory$2
            dup
            aload 2 /* cl */
            aload 0 /* properties */
            invokespecial javax.sql.rowset.spi.SyncFactory$2.<init>:(Ljava/lang/ClassLoader;Ljava/util/Properties;)V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
            pop
        18: .line 452
            goto 26
      StackMap locals: java.util.Properties java.lang.String java.lang.ClassLoader
      StackMap stack: java.security.PrivilegedActionException
        19: astore 3 /* ex */
        start local 3 // java.security.PrivilegedActionException ex
        20: .line 453
            aload 3 /* ex */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            astore 4 /* e */
        start local 4 // java.lang.Throwable e
        21: .line 454
            aload 4 /* e */
            instanceof javax.sql.rowset.spi.SyncFactoryException
            ifeq 23
        22: .line 455
            aload 4 /* e */
            checkcast javax.sql.rowset.spi.SyncFactoryException
            athrow
        23: .line 457
      StackMap locals: java.security.PrivilegedActionException java.lang.Throwable
      StackMap stack:
            new javax.sql.rowset.spi.SyncFactoryException
            dup
            invokespecial javax.sql.rowset.spi.SyncFactoryException.<init>:()V
            astore 5 /* sfe */
        start local 5 // javax.sql.rowset.spi.SyncFactoryException sfe
        24: .line 458
            aload 5 /* sfe */
            aload 3 /* ex */
            invokevirtual java.security.PrivilegedActionException.getException:()Ljava/lang/Exception;
            invokevirtual javax.sql.rowset.spi.SyncFactoryException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        25: .line 459
            aload 5 /* sfe */
            athrow
        end local 5 // javax.sql.rowset.spi.SyncFactoryException sfe
        end local 4 // java.lang.Throwable e
        end local 3 // java.security.PrivilegedActionException ex
        26: .line 462
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            invokestatic javax.sql.rowset.spi.SyncFactory.parseProperties:(Ljava/util/Properties;)V
        end local 2 // java.lang.ClassLoader cl
        end local 1 // java.lang.String strRowsetProperties
        27: .line 466
            goto 32
      StackMap locals: java.util.Properties
      StackMap stack: java.io.FileNotFoundException
        28: astore 1 /* e */
        start local 1 // java.io.FileNotFoundException e
        29: .line 467
            new javax.sql.rowset.spi.SyncFactoryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot locate properties file: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.sql.rowset.spi.SyncFactoryException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.FileNotFoundException e
        30: .line 468
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
        31: .line 469
            new javax.sql.rowset.spi.SyncFactoryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "IOException: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.sql.rowset.spi.SyncFactoryException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.io.IOException e
        32: .line 476
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            invokevirtual java.util.Properties.clear:()V
        33: .line 479
            new javax.sql.rowset.spi.SyncFactory$3
            dup
            invokespecial javax.sql.rowset.spi.SyncFactory$3.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* providerImpls */
        start local 1 // java.lang.String providerImpls
        34: .line 484
            goto 37
        end local 1 // java.lang.String providerImpls
      StackMap locals:
      StackMap stack: java.lang.Exception
        35: pop
        36: .line 485
            aconst_null
            astore 1 /* providerImpls */
        start local 1 // java.lang.String providerImpls
        37: .line 488
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* providerImpls */
            ifnull 48
        38: .line 489
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        39: .line 490
            aload 1 /* providerImpls */
            getstatic javax.sql.rowset.spi.SyncFactory.colon:Ljava/lang/String;
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            ifle 46
        40: .line 491
            new java.util.StringTokenizer
            dup
            aload 1 /* providerImpls */
            getstatic javax.sql.rowset.spi.SyncFactory.colon:Ljava/lang/String;
            invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 3 /* tokenizer */
        start local 3 // java.util.StringTokenizer tokenizer
        41: .line 492
            goto 44
        42: .line 493
      StackMap locals: int java.util.StringTokenizer
      StackMap stack:
            aload 0 /* properties */
            new java.lang.StringBuilder
            dup
            getstatic javax.sql.rowset.spi.SyncFactory.ROWSET_SYNC_PROVIDER:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* tokenizer */
            invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
            invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        43: .line 494
            iinc 2 /* i */ 1
        44: .line 492
      StackMap locals:
      StackMap stack:
            aload 3 /* tokenizer */
            invokevirtual java.util.StringTokenizer.hasMoreElements:()Z
            ifne 42
        end local 3 // java.util.StringTokenizer tokenizer
        45: .line 496
            goto 47
        46: .line 497
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            getstatic javax.sql.rowset.spi.SyncFactory.ROWSET_SYNC_PROVIDER:Ljava/lang/String;
            aload 1 /* providerImpls */
            invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        47: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* properties */
            invokestatic javax.sql.rowset.spi.SyncFactory.parseProperties:(Ljava/util/Properties;)V
        end local 2 // int i
        end local 1 // java.lang.String providerImpls
        48: .line 502
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.util.Properties properties
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            1   49     0           properties  Ljava/util/Properties;
            4    5     1  strRowsetProperties  Ljava/lang/String;
            8   27     1  strRowsetProperties  Ljava/lang/String;
            6    8     2                   ex  Ljava/lang/Exception;
           17   27     2                   cl  Ljava/lang/ClassLoader;
           20   26     3                   ex  Ljava/security/PrivilegedActionException;
           21   26     4                    e  Ljava/lang/Throwable;
           24   26     5                  sfe  Ljavax/sql/rowset/spi/SyncFactoryException;
           29   30     1                    e  Ljava/io/FileNotFoundException;
           31   32     1                    e  Ljava/io/IOException;
           34   35     1        providerImpls  Ljava/lang/String;
           37   48     1        providerImpls  Ljava/lang/String;
           39   48     2                    i  I
           41   45     3            tokenizer  Ljava/util/StringTokenizer;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception
          17    18      19  Class java.security.PrivilegedActionException
           3    27      28  Class java.io.FileNotFoundException
           3    27      30  Class java.io.IOException
          33    34      35  Class java.lang.Exception
    Exceptions:
      throws javax.sql.rowset.spi.SyncFactoryException

  private static void parseProperties(java.util.Properties);
    descriptor: (Ljava/util/Properties;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // java.util.Properties p
         0: .line 527
            aconst_null
            astore 1 /* impl */
        start local 1 // javax.sql.rowset.spi.ProviderImpl impl
         1: .line 528
            aconst_null
            astore 2 /* key */
        start local 2 // java.lang.String key
         2: .line 529
            aconst_null
            astore 3 /* propertyNames */
        start local 3 // java.lang.String[] propertyNames
         3: .line 531
            aload 0 /* p */
            invokevirtual java.util.Properties.propertyNames:()Ljava/util/Enumeration;
            astore 4 /* e */
        start local 4 // java.util.Enumeration e
         4: goto 19
         5: .line 533
      StackMap locals: java.util.Properties javax.sql.rowset.spi.ProviderImpl java.lang.String java.lang.String[] java.util.Enumeration
      StackMap stack:
            aload 4 /* e */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* str */
        start local 5 // java.lang.String str
         6: .line 535
            aload 5 /* str */
            invokevirtual java.lang.String.length:()I
            istore 6 /* w */
        start local 6 // int w
         7: .line 537
            aload 5 /* str */
            getstatic javax.sql.rowset.spi.SyncFactory.ROWSET_SYNC_PROVIDER:Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 19
         8: .line 539
            new javax.sql.rowset.spi.ProviderImpl
            dup
            invokespecial javax.sql.rowset.spi.ProviderImpl.<init>:()V
            astore 1 /* impl */
         9: .line 540
            aload 1 /* impl */
            getstatic javax.sql.rowset.spi.SyncFactory.providerImplIndex:I
            dup
            iconst_1
            iadd
            putstatic javax.sql.rowset.spi.SyncFactory.providerImplIndex:I
            invokevirtual javax.sql.rowset.spi.ProviderImpl.setIndex:(I)V
        10: .line 542
            iload 6 /* w */
            getstatic javax.sql.rowset.spi.SyncFactory.ROWSET_SYNC_PROVIDER:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            if_icmpne 13
        11: .line 544
            iconst_0
            invokestatic javax.sql.rowset.spi.SyncFactory.getPropertyNames:(Z)[Ljava/lang/String;
            astore 3 /* propertyNames */
        12: .line 545
            goto 14
        13: .line 547
      StackMap locals: java.lang.String int
      StackMap stack:
            iconst_1
            aload 5 /* str */
            iload 6 /* w */
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokestatic javax.sql.rowset.spi.SyncFactory.getPropertyNames:(ZLjava/lang/String;)[Ljava/lang/String;
            astore 3 /* propertyNames */
        14: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* p */
            aload 3 /* propertyNames */
            iconst_0
            aaload
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* key */
        15: .line 551
            aload 1 /* impl */
            aload 2 /* key */
            invokevirtual javax.sql.rowset.spi.ProviderImpl.setClassname:(Ljava/lang/String;)V
        16: .line 552
            aload 1 /* impl */
            aload 0 /* p */
            aload 3 /* propertyNames */
            iconst_1
            aaload
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual javax.sql.rowset.spi.ProviderImpl.setVendor:(Ljava/lang/String;)V
        17: .line 553
            aload 1 /* impl */
            aload 0 /* p */
            aload 3 /* propertyNames */
            iconst_2
            aaload
            invokevirtual java.util.Properties.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual javax.sql.rowset.spi.ProviderImpl.setVersion:(Ljava/lang/String;)V
        18: .line 554
            getstatic javax.sql.rowset.spi.SyncFactory.implementations:Ljava/util/Hashtable;
            aload 2 /* key */
            aload 1 /* impl */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // int w
        end local 5 // java.lang.String str
        19: .line 531
      StackMap locals:
      StackMap stack:
            aload 4 /* e */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 5
        end local 4 // java.util.Enumeration e
        20: .line 557
            return
        end local 3 // java.lang.String[] propertyNames
        end local 2 // java.lang.String key
        end local 1 // javax.sql.rowset.spi.ProviderImpl impl
        end local 0 // java.util.Properties p
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   21     0              p  Ljava/util/Properties;
            1   21     1           impl  Ljavax/sql/rowset/spi/ProviderImpl;
            2   21     2            key  Ljava/lang/String;
            3   21     3  propertyNames  [Ljava/lang/String;
            4   20     4              e  Ljava/util/Enumeration;
            6   19     5            str  Ljava/lang/String;
            7   19     6              w  I
    MethodParameters:
      Name  Flags
      p     

  private static java.lang.String[] getPropertyNames(boolean);
    descriptor: (Z)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // boolean append
         0: .line 563
            iload 0 /* append */
            aconst_null
            invokestatic javax.sql.rowset.spi.SyncFactory.getPropertyNames:(ZLjava/lang/String;)[Ljava/lang/String;
            areturn
        end local 0 // boolean append
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  append  Z
    MethodParameters:
        Name  Flags
      append  

  private static java.lang.String[] getPropertyNames(boolean, java.lang.String);
    descriptor: (ZLjava/lang/String;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // boolean append
        start local 1 // java.lang.String propertyIndex
         0: .line 572
            ldc "."
            astore 2 /* dot */
        start local 2 // java.lang.String dot
         1: .line 574
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            getstatic javax.sql.rowset.spi.SyncFactory.ROWSET_SYNC_PROVIDER:Ljava/lang/String;
            aastore
            dup
            iconst_1
         2: .line 575
            getstatic javax.sql.rowset.spi.SyncFactory.ROWSET_SYNC_VENDOR:Ljava/lang/String;
            aastore
            dup
            iconst_2
         3: .line 576
            getstatic javax.sql.rowset.spi.SyncFactory.ROWSET_SYNC_PROVIDER_VERSION:Ljava/lang/String;
            aastore
         4: .line 573
            astore 3 /* propertyNames */
        start local 3 // java.lang.String[] propertyNames
         5: .line 577
            iload 0 /* append */
            ifeq 15
         6: .line 578
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         7: goto 13
         8: .line 579
      StackMap locals: java.lang.String java.lang.String[] int
      StackMap stack:
            aload 3 /* propertyNames */
            iload 4 /* i */
            new java.lang.StringBuilder
            dup
            aload 3 /* propertyNames */
            iload 4 /* i */
            aaload
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 580
            aload 2 /* dot */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 581
            aload 1 /* propertyIndex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 579
            aastore
        12: .line 578
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 4 /* i */
            aload 3 /* propertyNames */
            arraylength
            if_icmplt 8
        end local 4 // int i
        14: .line 583
            aload 3 /* propertyNames */
            areturn
        15: .line 585
      StackMap locals:
      StackMap stack:
            aload 3 /* propertyNames */
            areturn
        end local 3 // java.lang.String[] propertyNames
        end local 2 // java.lang.String dot
        end local 1 // java.lang.String propertyIndex
        end local 0 // boolean append
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0         append  Z
            0   16     1  propertyIndex  Ljava/lang/String;
            1   16     2            dot  Ljava/lang/String;
            5   16     3  propertyNames  [Ljava/lang/String;
            7   14     4              i  I
    MethodParameters:
               Name  Flags
      append         
      propertyIndex  

  private static void showImpl(javax.sql.rowset.spi.ProviderImpl);
    descriptor: (Ljavax/sql/rowset/spi/ProviderImpl;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // javax.sql.rowset.spi.ProviderImpl impl
         0: .line 593
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Provider implementation:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 594
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Classname: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* impl */
            invokevirtual javax.sql.rowset.spi.ProviderImpl.getClassname:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         2: .line 595
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Vendor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* impl */
            invokevirtual javax.sql.rowset.spi.ProviderImpl.getVendor:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 596
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Version: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* impl */
            invokevirtual javax.sql.rowset.spi.ProviderImpl.getVersion:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 597
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Impl index: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* impl */
            invokevirtual javax.sql.rowset.spi.ProviderImpl.getIndex:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         5: .line 598
            return
        end local 0 // javax.sql.rowset.spi.ProviderImpl impl
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  impl  Ljavax/sql/rowset/spi/ProviderImpl;
    MethodParameters:
      Name  Flags
      impl  

  public static javax.sql.rowset.spi.SyncProvider getInstance(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljavax/sql/rowset/spi/SyncProvider;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // java.lang.String providerID
         0: .line 610
            invokestatic javax.sql.rowset.spi.SyncFactory.initMapIfNecessary:()V
         1: .line 611
            invokestatic javax.sql.rowset.spi.SyncFactory.initJNDIContext:()V
         2: .line 613
            getstatic javax.sql.rowset.spi.SyncFactory.implementations:Ljava/util/Hashtable;
            aload 0 /* providerID */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.sql.rowset.spi.ProviderImpl
            astore 1 /* impl */
        start local 1 // javax.sql.rowset.spi.ProviderImpl impl
         3: .line 615
            aload 1 /* impl */
            ifnonnull 5
         4: .line 617
            new com.sun.rowset.providers.RIOptimisticProvider
            dup
            invokespecial com.sun.rowset.providers.RIOptimisticProvider.<init>:()V
            areturn
         5: .line 621
      StackMap locals: javax.sql.rowset.spi.ProviderImpl
      StackMap stack:
            aload 0 /* providerID */
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/String;)V
         6: .line 622
            goto 11
      StackMap locals:
      StackMap stack: java.security.AccessControlException
         7: astore 2 /* e */
        start local 2 // java.security.AccessControlException e
         8: .line 623
            new javax.sql.rowset.spi.SyncFactoryException
            dup
            invokespecial javax.sql.rowset.spi.SyncFactoryException.<init>:()V
            astore 3 /* sfe */
        start local 3 // javax.sql.rowset.spi.SyncFactoryException sfe
         9: .line 624
            aload 3 /* sfe */
            aload 2 /* e */
            invokevirtual javax.sql.rowset.spi.SyncFactoryException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        10: .line 625
            aload 3 /* sfe */
            athrow
        end local 3 // javax.sql.rowset.spi.SyncFactoryException sfe
        end local 2 // java.security.AccessControlException e
        11: .line 628
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* c */
        start local 2 // java.lang.Class c
        12: .line 630
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* cl */
        start local 3 // java.lang.ClassLoader cl
        13: .line 639
            aload 0 /* providerID */
            iconst_1
            aload 3 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 2 /* c */
        14: .line 641
            aload 2 /* c */
            ifnull 17
        15: .line 642
            aload 2 /* c */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast javax.sql.rowset.spi.SyncProvider
        16: areturn
        17: .line 644
      StackMap locals: java.lang.Class java.lang.ClassLoader
      StackMap stack:
            new com.sun.rowset.providers.RIOptimisticProvider
            dup
            invokespecial com.sun.rowset.providers.RIOptimisticProvider.<init>:()V
        18: areturn
        end local 3 // java.lang.ClassLoader cl
        19: .line 647
      StackMap locals: java.lang.String javax.sql.rowset.spi.ProviderImpl java.lang.Class
      StackMap stack: java.lang.IllegalAccessException
            astore 3 /* e */
        start local 3 // java.lang.IllegalAccessException e
        20: .line 648
            new javax.sql.rowset.spi.SyncFactoryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "IllegalAccessException: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.IllegalAccessException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.sql.rowset.spi.SyncFactoryException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.IllegalAccessException e
        21: .line 649
      StackMap locals:
      StackMap stack: java.lang.InstantiationException
            astore 3 /* e */
        start local 3 // java.lang.InstantiationException e
        22: .line 650
            new javax.sql.rowset.spi.SyncFactoryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "InstantiationException: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.InstantiationException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.sql.rowset.spi.SyncFactoryException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.InstantiationException e
        23: .line 651
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 3 /* e */
        start local 3 // java.lang.ClassNotFoundException e
        24: .line 652
            new javax.sql.rowset.spi.SyncFactoryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "ClassNotFoundException: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.ClassNotFoundException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.sql.rowset.spi.SyncFactoryException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.lang.ClassNotFoundException e
        end local 2 // java.lang.Class c
        end local 1 // javax.sql.rowset.spi.ProviderImpl impl
        end local 0 // java.lang.String providerID
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   25     0  providerID  Ljava/lang/String;
            3   25     1        impl  Ljavax/sql/rowset/spi/ProviderImpl;
            8   11     2           e  Ljava/security/AccessControlException;
            9   11     3         sfe  Ljavax/sql/rowset/spi/SyncFactoryException;
           12   25     2           c  Ljava/lang/Class;
           13   19     3          cl  Ljava/lang/ClassLoader;
           20   21     3           e  Ljava/lang/IllegalAccessException;
           22   23     3           e  Ljava/lang/InstantiationException;
           24   25     3           e  Ljava/lang/ClassNotFoundException;
      Exception table:
        from    to  target  type
           5     6       7  Class java.security.AccessControlException
          12    16      19  Class java.lang.IllegalAccessException
          17    18      19  Class java.lang.IllegalAccessException
          12    16      21  Class java.lang.InstantiationException
          17    18      21  Class java.lang.InstantiationException
          12    16      23  Class java.lang.ClassNotFoundException
          17    18      23  Class java.lang.ClassNotFoundException
    Exceptions:
      throws javax.sql.rowset.spi.SyncFactoryException
    MethodParameters:
            Name  Flags
      providerID  

  public static java.util.Enumeration<javax.sql.rowset.spi.SyncProvider> getRegisteredProviders();
    descriptor: ()Ljava/util/Enumeration;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 669
            invokestatic javax.sql.rowset.spi.SyncFactory.initMapIfNecessary:()V
         1: .line 672
            getstatic javax.sql.rowset.spi.SyncFactory.implementations:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.elements:()Ljava/util/Enumeration;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws javax.sql.rowset.spi.SyncFactoryException
    Signature: ()Ljava/util/Enumeration<Ljavax/sql/rowset/spi/SyncProvider;>;

  public static void setLogger(java.util.logging.Logger);
    descriptor: (Ljava/util/logging/Logger;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.logging.Logger logger
         0: .line 685
            aload 0 /* logger */
            putstatic javax.sql.rowset.spi.SyncFactory.rsLogger:Ljava/util/logging/Logger;
         1: .line 686
            return
        end local 0 // java.util.logging.Logger logger
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  logger  Ljava/util/logging/Logger;
    MethodParameters:
        Name  Flags
      logger  

  public static void setLogger(java.util.logging.Logger, java.util.logging.Level);
    descriptor: (Ljava/util/logging/Logger;Ljava/util/logging/Level;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.util.logging.Logger logger
        start local 1 // java.util.logging.Level level
         0: .line 702
            aload 0 /* logger */
            putstatic javax.sql.rowset.spi.SyncFactory.rsLogger:Ljava/util/logging/Logger;
         1: .line 703
            getstatic javax.sql.rowset.spi.SyncFactory.rsLogger:Ljava/util/logging/Logger;
            aload 1 /* level */
            invokevirtual java.util.logging.Logger.setLevel:(Ljava/util/logging/Level;)V
         2: .line 704
            return
        end local 1 // java.util.logging.Level level
        end local 0 // java.util.logging.Logger logger
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  logger  Ljava/util/logging/Logger;
            0    3     1   level  Ljava/util/logging/Level;
    MethodParameters:
        Name  Flags
      logger  
      level   

  public static java.util.logging.Logger getLogger();
    descriptor: ()Ljava/util/logging/Logger;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 714
            getstatic javax.sql.rowset.spi.SyncFactory.rsLogger:Ljava/util/logging/Logger;
            ifnonnull 2
         1: .line 715
            new javax.sql.rowset.spi.SyncFactoryException
            dup
            ldc "(SyncFactory) : No logger has been set"
            invokespecial javax.sql.rowset.spi.SyncFactoryException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 717
      StackMap locals:
      StackMap stack:
            getstatic javax.sql.rowset.spi.SyncFactory.rsLogger:Ljava/util/logging/Logger;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws javax.sql.rowset.spi.SyncFactoryException

  public static void setJNDIContext(javax.naming.Context);
    descriptor: (Ljavax/naming/Context;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.naming.Context ctx
         0: .line 729
            aload 0 /* ctx */
            ifnonnull 2
         1: .line 730
            new javax.sql.rowset.spi.SyncFactoryException
            dup
            ldc "Invalid JNDI context supplied"
            invokespecial javax.sql.rowset.spi.SyncFactoryException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 732
      StackMap locals:
      StackMap stack:
            aload 0 /* ctx */
            putstatic javax.sql.rowset.spi.SyncFactory.ic:Ljavax/naming/Context;
         3: .line 733
            iconst_1
            putstatic javax.sql.rowset.spi.SyncFactory.jndiCtxEstablished:Z
         4: .line 734
            return
        end local 0 // javax.naming.Context ctx
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   ctx  Ljavax/naming/Context;
    Exceptions:
      throws javax.sql.rowset.spi.SyncFactoryException
    MethodParameters:
      Name  Flags
      ctx   

  private static void initJNDIContext();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=0
         0: .line 743
            getstatic javax.sql.rowset.spi.SyncFactory.jndiCtxEstablished:Z
            ifeq 10
            getstatic javax.sql.rowset.spi.SyncFactory.ic:Ljavax/naming/Context;
            ifnull 10
            getstatic javax.sql.rowset.spi.SyncFactory.lazyJNDICtxRefresh:Z
            ifne 10
         1: .line 745
            invokestatic javax.sql.rowset.spi.SyncFactory.parseJNDIContext:()Ljava/util/Properties;
            invokestatic javax.sql.rowset.spi.SyncFactory.parseProperties:(Ljava/util/Properties;)V
         2: .line 746
            iconst_1
            putstatic javax.sql.rowset.spi.SyncFactory.lazyJNDICtxRefresh:Z
         3: .line 747
            goto 10
      StackMap locals:
      StackMap stack: javax.naming.NamingException
         4: astore 0 /* e */
        start local 0 // javax.naming.NamingException e
         5: .line 748
            aload 0 /* e */
            invokevirtual javax.naming.NamingException.printStackTrace:()V
         6: .line 749
            new javax.sql.rowset.spi.SyncFactoryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "SPI: NamingException: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* e */
            invokevirtual javax.naming.NamingException.getExplanation:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.sql.rowset.spi.SyncFactoryException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // javax.naming.NamingException e
         7: .line 750
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 0 /* e */
        start local 0 // java.lang.Exception e
         8: .line 751
            aload 0 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
         9: .line 752
            new javax.sql.rowset.spi.SyncFactoryException
            dup
            new java.lang.StringBuilder
            dup
            ldc "SPI: Exception: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.sql.rowset.spi.SyncFactoryException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // java.lang.Exception e
        10: .line 755
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            5    7     0     e  Ljavax/naming/NamingException;
            8   10     0     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     3       4  Class javax.naming.NamingException
           1     3       7  Class java.lang.Exception
    Exceptions:
      throws javax.sql.rowset.spi.SyncFactoryException

  private static java.util.Properties parseJNDIContext();
    descriptor: ()Ljava/util/Properties;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 767
            getstatic javax.sql.rowset.spi.SyncFactory.ic:Ljavax/naming/Context;
            ldc ""
            invokeinterface javax.naming.Context.listBindings:(Ljava/lang/String;)Ljavax/naming/NamingEnumeration;
            astore 0 /* bindings */
        start local 0 // javax.naming.NamingEnumeration bindings
         1: .line 768
            new java.util.Properties
            dup
            invokespecial java.util.Properties.<init>:()V
            astore 1 /* properties */
        start local 1 // java.util.Properties properties
         2: .line 771
            aload 0 /* bindings */
            aload 1 /* properties */
            invokestatic javax.sql.rowset.spi.SyncFactory.enumerateBindings:(Ljavax/naming/NamingEnumeration;Ljava/util/Properties;)V
         3: .line 773
            aload 1 /* properties */
            areturn
        end local 1 // java.util.Properties properties
        end local 0 // javax.naming.NamingEnumeration bindings
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            1    4     0    bindings  Ljavax/naming/NamingEnumeration;
            2    4     1  properties  Ljava/util/Properties;
    Exceptions:
      throws javax.naming.NamingException

  private static void enumerateBindings(javax.naming.NamingEnumeration, java.util.Properties);
    descriptor: (Ljavax/naming/NamingEnumeration;Ljava/util/Properties;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // javax.naming.NamingEnumeration bindings
        start local 1 // java.util.Properties properties
         0: .line 785
            iconst_0
            istore 2 /* syncProviderObj */
        start local 2 // boolean syncProviderObj
         1: .line 788
            aconst_null
            astore 3 /* bd */
        start local 3 // javax.naming.Binding bd
         2: .line 789
            aconst_null
            astore 4 /* elementObj */
        start local 4 // java.lang.Object elementObj
         3: .line 790
            aconst_null
            astore 5 /* element */
        start local 5 // java.lang.String element
         4: .line 791
            goto 17
         5: .line 792
      StackMap locals: javax.naming.NamingEnumeration java.util.Properties int javax.naming.Binding java.lang.Object java.lang.String
      StackMap stack:
            aload 0 /* bindings */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            checkcast javax.naming.Binding
            astore 3 /* bd */
         6: .line 793
            aload 3 /* bd */
            invokevirtual javax.naming.Binding.getName:()Ljava/lang/String;
            astore 5 /* element */
         7: .line 794
            aload 3 /* bd */
            invokevirtual javax.naming.Binding.getObject:()Ljava/lang/Object;
            astore 4 /* elementObj */
         8: .line 796
            getstatic javax.sql.rowset.spi.SyncFactory.ic:Ljavax/naming/Context;
            aload 5 /* element */
            invokeinterface javax.naming.Context.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            instanceof javax.naming.Context
            ifne 11
         9: .line 798
            getstatic javax.sql.rowset.spi.SyncFactory.ic:Ljavax/naming/Context;
            aload 5 /* element */
            invokeinterface javax.naming.Context.lookup:(Ljava/lang/String;)Ljava/lang/Object;
            instanceof javax.sql.rowset.spi.SyncProvider
            ifeq 11
        10: .line 799
            iconst_1
            istore 2 /* syncProviderObj */
        11: .line 803
      StackMap locals:
      StackMap stack:
            iload 2 /* syncProviderObj */
            ifeq 17
        12: .line 804
            aload 4 /* elementObj */
            checkcast javax.sql.rowset.spi.SyncProvider
            astore 6 /* sync */
        start local 6 // javax.sql.rowset.spi.SyncProvider sync
        13: .line 805
            aload 1 /* properties */
            getstatic javax.sql.rowset.spi.SyncFactory.ROWSET_SYNC_PROVIDER:Ljava/lang/String;
        14: .line 806
            aload 6 /* sync */
            invokevirtual javax.sql.rowset.spi.SyncProvider.getProviderID:()Ljava/lang/String;
        15: .line 805
            invokevirtual java.util.Properties.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 807
            iconst_0
            istore 2 /* syncProviderObj */
        end local 6 // javax.sql.rowset.spi.SyncProvider sync
        17: .line 791
      StackMap locals:
      StackMap stack:
            aload 0 /* bindings */
            invokeinterface javax.naming.NamingEnumeration.hasMore:()Z
            ifne 5
        end local 5 // java.lang.String element
        end local 4 // java.lang.Object elementObj
        end local 3 // javax.naming.Binding bd
        18: .line 811
            goto 22
      StackMap locals: javax.naming.NamingEnumeration java.util.Properties int
      StackMap stack: javax.naming.NotContextException
        19: pop
        20: .line 812
            aload 0 /* bindings */
            invokeinterface javax.naming.NamingEnumeration.next:()Ljava/lang/Object;
            pop
        21: .line 814
            aload 0 /* bindings */
            aload 1 /* properties */
            invokestatic javax.sql.rowset.spi.SyncFactory.enumerateBindings:(Ljavax/naming/NamingEnumeration;Ljava/util/Properties;)V
        22: .line 816
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean syncProviderObj
        end local 1 // java.util.Properties properties
        end local 0 // javax.naming.NamingEnumeration bindings
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   23     0         bindings  Ljavax/naming/NamingEnumeration;
            0   23     1       properties  Ljava/util/Properties;
            1   23     2  syncProviderObj  Z
            2   18     3               bd  Ljavax/naming/Binding;
            3   18     4       elementObj  Ljava/lang/Object;
            4   18     5          element  Ljava/lang/String;
           13   17     6             sync  Ljavax/sql/rowset/spi/SyncProvider;
      Exception table:
        from    to  target  type
           1    18      19  Class javax.naming.NotContextException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
            Name  Flags
      bindings    
      properties  
}
SourceFile: "SyncFactory.java"
NestMembers:
  javax.sql.rowset.spi.SyncFactory$1  javax.sql.rowset.spi.SyncFactory$2  javax.sql.rowset.spi.SyncFactory$3
InnerClasses:
  javax.sql.rowset.spi.SyncFactory$1
  javax.sql.rowset.spi.SyncFactory$2
  javax.sql.rowset.spi.SyncFactory$3