public class org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter extends java.io.Reader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter
  super_class: java.io.Reader
{
  private static final int CHARBUFFER_CAPACTIY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  private final java.io.Reader m_reader;
    descriptor: Ljava/io/Reader;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long m_remaining;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long m_filePointer;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.nio.ByteBuffer m_byteBuffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.CharBuffer m_charBuffer;
    descriptor: Ljava/nio/CharBuffer;
    flags: (0x0002) ACC_PRIVATE

  final org.hsqldb.jdbc.JDBCClobFile this$0;
    descriptor: Lorg/hsqldb/jdbc/JDBCClobFile;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  protected void <init>(org.hsqldb.jdbc.JDBCClobFile, java.io.File, long, long);
    descriptor: (Lorg/hsqldb/jdbc/JDBCClobFile;Ljava/io/File;JJ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=14, args_size=5
        start local 0 // org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter this
        start local 2 // java.io.File file
        start local 3 // long pos
        start local 5 // long length
         0: .line 1327
            aload 0 /* this */
            aload 1
            putfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.this$0:Lorg/hsqldb/jdbc/JDBCClobFile;
         1: .line 1322
            aload 0 /* this */
            invokespecial java.io.Reader.<init>:()V
         2: .line 1317
            aload 0 /* this */
            ldc 9223372036854775807
            putfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_remaining:J
         3: .line 1329
            aload 2 /* file */
            ifnonnull 5
         4: .line 1330
            new java.lang.NullPointerException
            dup
            ldc "file"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1333
      StackMap locals: org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter org.hsqldb.jdbc.JDBCClobFile java.io.File long long
      StackMap stack:
            lload 3 /* pos */
            lconst_0
            lcmp
            ifge 7
         6: .line 1334
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "pos: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* pos */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1337
      StackMap locals:
      StackMap stack:
            lload 5 /* length */
            lconst_0
            lcmp
            ifge 9
         8: .line 1338
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "length: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 5 /* length */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1341
      StackMap locals:
      StackMap stack:
            aload 2 /* file */
            invokevirtual java.io.File.length:()J
            lstore 7 /* fileLength */
        start local 7 // long fileLength
        10: .line 1342
            aload 1
            getfield org.hsqldb.jdbc.JDBCClobFile.m_fixedWidthCharset:Z
            ifeq 15
        11: .line 1343
            lload 7 /* fileLength */
            l2d
        12: .line 1344
            aload 1
            getfield org.hsqldb.jdbc.JDBCClobFile.m_maxCharWidth:I
            i2d
        13: .line 1343
            ddiv
            invokestatic java.lang.Math.round:(D)J
        14: .line 1344
            goto 16
        15: .line 1345
      StackMap locals: long
      StackMap stack:
            lload 7 /* fileLength */
        16: .line 1342
      StackMap locals:
      StackMap stack: long
            lstore 9 /* maxCharsLength */
        start local 9 // long maxCharsLength
        17: .line 1347
            lload 9 /* maxCharsLength */
            lload 3 /* pos */
            lsub
            lconst_0
            lcmp
            ifge 19
        18: .line 1348
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "pos: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* pos */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 1352
      StackMap locals: long
      StackMap stack:
            aload 1
            getfield org.hsqldb.jdbc.JDBCClobFile.m_fixedWidthCharset:Z
            ifne 23
        20: .line 1354
            sipush 128
            aload 1
            getfield org.hsqldb.jdbc.JDBCClobFile.m_maxCharWidth:I
            imul
            istore 11 /* byteCapacity */
        start local 11 // int byteCapacity
        21: .line 1356
            aload 0 /* this */
            sipush 128
            invokestatic java.nio.CharBuffer.allocate:(I)Ljava/nio/CharBuffer;
            putfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_charBuffer:Ljava/nio/CharBuffer;
        22: .line 1357
            aload 0 /* this */
            iload 11 /* byteCapacity */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_byteBuffer:Ljava/nio/ByteBuffer;
        end local 11 // int byteCapacity
        23: .line 1360
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 11 /* fis */
        start local 11 // java.io.FileInputStream fis
        24: .line 1363
            new java.io.FileInputStream
            dup
            aload 2 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 11 /* fis */
        25: .line 1365
            new java.io.BufferedInputStream
            dup
            aload 11 /* fis */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 12 /* bis */
        start local 12 // java.io.BufferedInputStream bis
        26: .line 1366
            new java.io.InputStreamReader
            dup
            aload 12 /* bis */
        27: .line 1367
            aload 1
            getfield org.hsqldb.jdbc.JDBCClobFile.m_charset:Ljava/nio/charset/Charset;
        28: .line 1366
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
            astore 13 /* isr */
        start local 13 // java.io.InputStreamReader isr
        29: .line 1369
            aload 0 /* this */
            aload 13 /* isr */
            putfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_reader:Ljava/io/Reader;
        end local 13 // java.io.InputStreamReader isr
        end local 12 // java.io.BufferedInputStream bis
        30: .line 1370
            goto 43
      StackMap locals: org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter org.hsqldb.jdbc.JDBCClobFile java.io.File long long long long java.io.FileInputStream
      StackMap stack: java.io.FileNotFoundException
        31: astore 12 /* ex */
        start local 12 // java.io.FileNotFoundException ex
        32: .line 1371
            aload 11 /* fis */
            invokestatic org.hsqldb.jdbc.JDBCClobFile.closeSafely:(Ljava/io/InputStream;)V
        33: .line 1373
            aload 12 /* ex */
            athrow
        end local 12 // java.io.FileNotFoundException ex
        34: .line 1374
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            astore 12 /* ex */
        start local 12 // java.lang.SecurityException ex
        35: .line 1375
            aload 11 /* fis */
            invokestatic org.hsqldb.jdbc.JDBCClobFile.closeSafely:(Ljava/io/InputStream;)V
        36: .line 1377
            aload 12 /* ex */
            athrow
        end local 12 // java.lang.SecurityException ex
        37: .line 1378
      StackMap locals:
      StackMap stack: java.lang.NullPointerException
            astore 12 /* ex */
        start local 12 // java.lang.NullPointerException ex
        38: .line 1379
            aload 11 /* fis */
            invokestatic org.hsqldb.jdbc.JDBCClobFile.closeSafely:(Ljava/io/InputStream;)V
        39: .line 1381
            aload 12 /* ex */
            athrow
        end local 12 // java.lang.NullPointerException ex
        40: .line 1382
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 12 /* ex */
        start local 12 // java.lang.RuntimeException ex
        41: .line 1383
            aload 11 /* fis */
            invokestatic org.hsqldb.jdbc.JDBCClobFile.closeSafely:(Ljava/io/InputStream;)V
        42: .line 1385
            aload 12 /* ex */
            athrow
        end local 12 // java.lang.RuntimeException ex
        43: .line 1388
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 3 /* pos */
            invokevirtual org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.skip:(J)J
            lstore 12 /* skipped */
        start local 12 // long skipped
        44: .line 1390
            lload 12 /* skipped */
            lload 3 /* pos */
            lcmp
            ifge 46
        45: .line 1391
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "pos: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* pos */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        46: .line 1395
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            lload 5 /* length */
            putfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_remaining:J
        47: .line 1396
            return
        end local 12 // long skipped
        end local 11 // java.io.FileInputStream fis
        end local 9 // long maxCharsLength
        end local 7 // long fileLength
        end local 5 // long length
        end local 3 // long pos
        end local 2 // java.io.File file
        end local 0 // org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   48     0            this  Lorg/hsqldb/jdbc/JDBCClobFile$ReaderAdapter;
            0   48     2            file  Ljava/io/File;
            0   48     3             pos  J
            0   48     5          length  J
           10   48     7      fileLength  J
           17   48     9  maxCharsLength  J
           21   23    11    byteCapacity  I
           24   48    11             fis  Ljava/io/FileInputStream;
           26   30    12             bis  Ljava/io/BufferedInputStream;
           29   30    13             isr  Ljava/io/InputStreamReader;
           32   34    12              ex  Ljava/io/FileNotFoundException;
           35   37    12              ex  Ljava/lang/SecurityException;
           38   40    12              ex  Ljava/lang/NullPointerException;
           41   43    12              ex  Ljava/lang/RuntimeException;
           44   48    12         skipped  J
      Exception table:
        from    to  target  type
          24    30      31  Class java.io.FileNotFoundException
          24    30      34  Class java.lang.SecurityException
          24    30      37  Class java.lang.NullPointerException
          24    30      40  Class java.lang.RuntimeException
    Exceptions:
      throws java.io.FileNotFoundException, java.io.IOException, java.lang.NullPointerException, java.lang.IllegalArgumentException, java.lang.SecurityException
    MethodParameters:
        Name  Flags
      this$0  final
      file    final
      pos     final
      length  final

  public int read(char[], int, int);
    descriptor: ([CII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=11, args_size=4
        start local 0 // org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter this
        start local 1 // char[] cbuf
        start local 2 // int off
        start local 3 // int len
         0: .line 1401
            aload 0 /* this */
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_remaining:J
            lstore 4 /* l_remaining */
        start local 4 // long l_remaining
         1: .line 1403
            lload 4 /* l_remaining */
            lconst_0
            lcmp
            ifgt 3
         2: .line 1404
            iconst_m1
            ireturn
         3: .line 1405
      StackMap locals: long
      StackMap stack:
            lload 4 /* l_remaining */
            iload 3 /* len */
            i2l
            lcmp
            ifge 5
         4: .line 1406
            lload 4 /* l_remaining */
            l2i
            istore 3 /* len */
         5: .line 1409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_reader:Ljava/io/Reader;
            aload 1 /* cbuf */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual java.io.Reader.read:([CII)I
            istore 6 /* charsRead */
        start local 6 // int charsRead
         6: .line 1411
            iload 6 /* charsRead */
            iconst_m1
            if_icmpne 8
         7: .line 1412
            iconst_m1
            ireturn
         8: .line 1413
      StackMap locals: int
      StackMap stack:
            iload 6 /* charsRead */
            i2l
            lload 4 /* l_remaining */
            lcmp
            ifle 12
         9: .line 1414
            lload 4 /* l_remaining */
            l2i
            istore 6 /* charsRead */
        10: .line 1415
            aload 0 /* this */
            lconst_0
            putfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_remaining:J
        11: .line 1416
            goto 13
        12: .line 1417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_remaining:J
            iload 6 /* charsRead */
            i2l
            lsub
            putfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_remaining:J
        13: .line 1422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.this$0:Lorg/hsqldb/jdbc/JDBCClobFile;
            getfield org.hsqldb.jdbc.JDBCClobFile.m_fixedWidthCharset:Z
            ifeq 16
        14: .line 1423
            aload 0 /* this */
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.this$0:Lorg/hsqldb/jdbc/JDBCClobFile;
            getfield org.hsqldb.jdbc.JDBCClobFile.m_maxCharWidth:I
            iload 6 /* charsRead */
            imul
            istore 7 /* bytesRead */
        start local 7 // int bytesRead
        15: .line 1424
            goto 42
        end local 7 // int bytesRead
        16: .line 1425
      StackMap locals:
      StackMap stack:
            iload 6 /* charsRead */
        17: .line 1426
            aload 0 /* this */
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_charBuffer:Ljava/nio/CharBuffer;
            invokevirtual java.nio.CharBuffer.capacity:()I
        18: .line 1425
            if_icmple 19
            iconst_1
            goto 20
      StackMap locals:
      StackMap stack:
        19: iconst_0
      StackMap locals:
      StackMap stack: int
        20: istore 8 /* reallocate */
        start local 8 // boolean reallocate
        21: .line 1427
            iload 8 /* reallocate */
            ifeq 23
        22: .line 1428
            iload 6 /* charsRead */
            invokestatic java.nio.CharBuffer.allocate:(I)Ljava/nio/CharBuffer;
            goto 24
        23: .line 1429
      StackMap locals: org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter char[] int int long int top int
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_charBuffer:Ljava/nio/CharBuffer;
        24: .line 1427
      StackMap locals:
      StackMap stack: java.nio.CharBuffer
            astore 9 /* cb */
        start local 9 // java.nio.CharBuffer cb
        25: .line 1430
            iload 8 /* reallocate */
            ifeq 30
        26: .line 1431
            iload 6 /* charsRead */
        27: .line 1432
            aload 0 /* this */
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.this$0:Lorg/hsqldb/jdbc/JDBCClobFile;
            getfield org.hsqldb.jdbc.JDBCClobFile.m_maxCharWidth:I
        28: .line 1431
            imul
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
        29: .line 1432
            goto 31
        30: .line 1433
      StackMap locals: java.nio.CharBuffer
      StackMap stack:
            aload 0 /* this */
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_byteBuffer:Ljava/nio/ByteBuffer;
        31: .line 1430
      StackMap locals:
      StackMap stack: java.nio.ByteBuffer
            astore 10 /* bb */
        start local 10 // java.nio.ByteBuffer bb
        32: .line 1436
            aload 9 /* cb */
            invokevirtual java.nio.CharBuffer.clear:()Ljava/nio/Buffer;
            pop
        33: .line 1437
            aload 10 /* bb */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        34: .line 1438
            aload 9 /* cb */
            aload 1 /* cbuf */
            iload 2 /* off */
            iload 6 /* charsRead */
            invokevirtual java.nio.CharBuffer.put:([CII)Ljava/nio/CharBuffer;
            pop
        35: .line 1439
            aload 9 /* cb */
            invokevirtual java.nio.CharBuffer.flip:()Ljava/nio/Buffer;
            pop
        36: .line 1440
            aload 0 /* this */
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.this$0:Lorg/hsqldb/jdbc/JDBCClobFile;
            getfield org.hsqldb.jdbc.JDBCClobFile.m_encoder:Ljava/nio/charset/CharsetEncoder;
            aload 9 /* cb */
            aload 10 /* bb */
            iconst_1
            invokevirtual java.nio.charset.CharsetEncoder.encode:(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;
            pop
        37: .line 1441
            aload 10 /* bb */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        38: .line 1443
            aload 10 /* bb */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 7 /* bytesRead */
        start local 7 // int bytesRead
        39: .line 1445
            iload 8 /* reallocate */
            ifeq 42
        40: .line 1446
            aload 0 /* this */
            aload 10 /* bb */
            putfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_byteBuffer:Ljava/nio/ByteBuffer;
        41: .line 1447
            aload 0 /* this */
            aload 9 /* cb */
            putfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_charBuffer:Ljava/nio/CharBuffer;
        end local 10 // java.nio.ByteBuffer bb
        end local 9 // java.nio.CharBuffer cb
        end local 8 // boolean reallocate
        42: .line 1451
      StackMap locals: org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter char[] int int long int int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_filePointer:J
            iload 7 /* bytesRead */
            i2l
            ladd
            putfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_filePointer:J
        43: .line 1453
            iload 6 /* charsRead */
            ireturn
        end local 7 // int bytesRead
        end local 6 // int charsRead
        end local 4 // long l_remaining
        end local 3 // int len
        end local 2 // int off
        end local 1 // char[] cbuf
        end local 0 // org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   44     0         this  Lorg/hsqldb/jdbc/JDBCClobFile$ReaderAdapter;
            0   44     1         cbuf  [C
            0   44     2          off  I
            0   44     3          len  I
            1   44     4  l_remaining  J
            6   44     6    charsRead  I
           15   16     7    bytesRead  I
           39   44     7    bytesRead  I
           21   42     8   reallocate  Z
           25   42     9           cb  Ljava/nio/CharBuffer;
           32   42    10           bb  Ljava/nio/ByteBuffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      cbuf  final
      off   final
      len   

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter this
         0: .line 1457
            aload 0 /* this */
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_reader:Ljava/io/Reader;
            invokevirtual java.io.Reader.close:()V
         1: .line 1458
            return
        end local 0 // org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hsqldb/jdbc/JDBCClobFile$ReaderAdapter;
    Exceptions:
      throws java.io.IOException

  public long getFilePointer();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter this
         0: .line 1461
            aload 0 /* this */
            getfield org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter.m_filePointer:J
            lreturn
        end local 0 // org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hsqldb/jdbc/JDBCClobFile$ReaderAdapter;
}
SourceFile: "JDBCClobFile.java"
NestHost: org.hsqldb.jdbc.JDBCClobFile
InnerClasses:
  protected ReaderAdapter = org.hsqldb.jdbc.JDBCClobFile$ReaderAdapter of org.hsqldb.jdbc.JDBCClobFile