final class com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk extends com.microsoft.sqlserver.jdbc.TDSCommand
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk
  super_class: com.microsoft.sqlserver.jdbc.TDSCommand
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 6714118105257791547

  final com.microsoft.sqlserver.jdbc.SQLServerBulkCopy this$0;
    descriptor: Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.microsoft.sqlserver.jdbc.SQLServerBulkCopy);
    descriptor: (Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk this
         0: .line 647
            aload 0 /* this */
            aload 1
            putfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
         1: .line 648
            aload 0 /* this */
            ldc "InsertBulk"
            iconst_0
            iconst_0
            invokespecial com.microsoft.sqlserver.jdbc.TDSCommand.<init>:(Ljava/lang/String;II)V
         2: .line 649
            return
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy$1InsertBulk;
    MethodParameters:
        Name  Flags
      this$0  final

  final boolean doExecute();
    descriptor: ()Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk this
         0: .line 652
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.copyOptions:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopyOptions;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerBulkCopyOptions.getBulkCopyTimeout:()I
            istore 1 /* timeoutSeconds */
        start local 1 // int timeoutSeconds
         1: .line 653
            iload 1 /* timeoutSeconds */
            ifle 6
         2: .line 654
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.checkClosed:()V
         3: .line 655
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.getSharedTimer:()Lcom/microsoft/sqlserver/jdbc/SharedTimer;
            new com.microsoft.sqlserver.jdbc.TDSTimeoutTask
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokespecial com.microsoft.sqlserver.jdbc.TDSTimeoutTask.<init>:(Lcom/microsoft/sqlserver/jdbc/TDSCommand;Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;)V
         4: .line 656
            iload 1 /* timeoutSeconds */
            i2l
         5: .line 655
            invokevirtual com.microsoft.sqlserver.jdbc.SharedTimer.schedule:(Lcom/microsoft/sqlserver/jdbc/TDSTimeoutTask;J)Ljava/util/concurrent/ScheduledFuture;
            putfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.timeout:Ljava/util/concurrent/ScheduledFuture;
         6: .line 663
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            aload 0 /* this */
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.doInsertBulk:(Lcom/microsoft/sqlserver/jdbc/TDSCommand;)Z
            ifne 6
         7: .line 664
            goto 23
      StackMap locals:
      StackMap stack: com.microsoft.sqlserver.jdbc.SQLServerException
         8: astore 2 /* topLevelException */
        start local 2 // com.microsoft.sqlserver.jdbc.SQLServerException topLevelException
         9: .line 666
            aload 2 /* topLevelException */
            astore 3 /* rootCause */
        start local 3 // java.lang.Throwable rootCause
        10: .line 667
            goto 12
        11: .line 668
      StackMap locals: com.microsoft.sqlserver.jdbc.SQLServerException java.lang.Throwable
      StackMap stack:
            aload 3 /* rootCause */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            astore 3 /* rootCause */
        12: .line 667
      StackMap locals:
      StackMap stack:
            aload 3 /* rootCause */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            ifnonnull 11
        13: .line 672
            aload 3 /* rootCause */
            instanceof java.sql.SQLException
            ifeq 22
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.timeout:Ljava/util/concurrent/ScheduledFuture;
            ifnull 22
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.timeout:Ljava/util/concurrent/ScheduledFuture;
            invokeinterface java.util.concurrent.ScheduledFuture.isDone:()Z
            ifeq 22
        14: .line 673
            aload 3 /* rootCause */
            checkcast java.sql.SQLException
            astore 4 /* sqlEx */
        start local 4 // java.sql.SQLException sqlEx
        15: .line 674
            aload 4 /* sqlEx */
            invokevirtual java.sql.SQLException.getSQLState:()Ljava/lang/String;
            ifnull 22
        16: .line 675
            aload 4 /* sqlEx */
            invokevirtual java.sql.SQLException.getSQLState:()Ljava/lang/String;
            getstatic com.microsoft.sqlserver.jdbc.SQLState.STATEMENT_CANCELED:Lcom/microsoft/sqlserver/jdbc/SQLState;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLState.getSQLStateCode:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        17: .line 677
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.copyOptions:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopyOptions;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerBulkCopyOptions.isUseInternalTransaction:()Z
            ifeq 19
        18: .line 678
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.connection:Lcom/microsoft/sqlserver/jdbc/SQLServerConnection;
            invokevirtual com.microsoft.sqlserver.jdbc.SQLServerConnection.rollback:()V
        19: .line 680
      StackMap locals: java.sql.SQLException
      StackMap stack:
            new com.microsoft.sqlserver.jdbc.SQLServerException
            dup
            ldc "R_queryTimedOut"
            invokestatic com.microsoft.sqlserver.jdbc.SQLServerException.getErrString:(Ljava/lang/String;)Ljava/lang/String;
        20: .line 681
            getstatic com.microsoft.sqlserver.jdbc.SQLState.STATEMENT_CANCELED:Lcom/microsoft/sqlserver/jdbc/SQLState;
            getstatic com.microsoft.sqlserver.jdbc.DriverError.NOT_SET:Lcom/microsoft/sqlserver/jdbc/DriverError;
            aload 4 /* sqlEx */
        21: .line 680
            invokespecial com.microsoft.sqlserver.jdbc.SQLServerException.<init>:(Ljava/lang/String;Lcom/microsoft/sqlserver/jdbc/SQLState;Lcom/microsoft/sqlserver/jdbc/DriverError;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.sql.SQLException sqlEx
        22: .line 686
      StackMap locals:
      StackMap stack:
            aload 2 /* topLevelException */
            athrow
        end local 3 // java.lang.Throwable rootCause
        end local 2 // com.microsoft.sqlserver.jdbc.SQLServerException topLevelException
        23: .line 689
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.timeout:Ljava/util/concurrent/ScheduledFuture;
            ifnull 26
        24: .line 690
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.timeout:Ljava/util/concurrent/ScheduledFuture;
            iconst_1
            invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
            pop
        25: .line 691
            aload 0 /* this */
            getfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk.this$0:Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy;
            aconst_null
            putfield com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.timeout:Ljava/util/concurrent/ScheduledFuture;
        26: .line 693
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // int timeoutSeconds
        end local 0 // com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lcom/microsoft/sqlserver/jdbc/SQLServerBulkCopy$1InsertBulk;
            1   27     1     timeoutSeconds  I
            9   23     2  topLevelException  Lcom/microsoft/sqlserver/jdbc/SQLServerException;
           10   23     3          rootCause  Ljava/lang/Throwable;
           15   22     4              sqlEx  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           6     7       8  Class com.microsoft.sqlserver.jdbc.SQLServerException
    Exceptions:
      throws com.microsoft.sqlserver.jdbc.SQLServerException
}
SourceFile: "SQLServerBulkCopy.java"
EnclosingMethod: com.microsoft.sqlserver.jdbc.SQLServerBulkCopy.sendBulkLoadBCP:()V
NestHost: com.microsoft.sqlserver.jdbc.SQLServerBulkCopy
InnerClasses:
  final InsertBulk = com.microsoft.sqlserver.jdbc.SQLServerBulkCopy$1InsertBulk