public class android.media.MiniThumbFile
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.media.MiniThumbFile
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "MiniThumbFile"

  private static final int MINI_THUMB_DATA_FILE_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int BYTES_PER_MINTHUMB;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 10000

  private static final int HEADER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 13

  private android.net.Uri mUri;
    descriptor: Landroid/net/Uri;
    flags: (0x0002) ACC_PRIVATE

  private java.io.RandomAccessFile mMiniThumbFile;
    descriptor: Ljava/io/RandomAccessFile;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.channels.FileChannel mChannel;
    descriptor: Ljava/nio/channels/FileChannel;
    flags: (0x0002) ACC_PRIVATE

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

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

  private static final java.util.Hashtable<java.lang.String, android.media.MiniThumbFile> sThumbFiles;
    descriptor: Ljava/util/Hashtable;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Hashtable<Ljava/lang/String;Landroid/media/MiniThumbFile;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 56
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
         1: .line 55
            putstatic android.media.MiniThumbFile.sThumbFiles:Ljava/util/Hashtable;
         2: .line 56
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static synchronized void reset();
    descriptor: ()V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=2, args_size=0
         0: .line 63
            getstatic android.media.MiniThumbFile.sThumbFiles:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 1
            goto 3
      StackMap locals: top java.util.Iterator
      StackMap stack:
         1: aload 1
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.media.MiniThumbFile
            astore 0 /* file */
        start local 0 // android.media.MiniThumbFile file
         2: .line 64
            aload 0 /* file */
            invokevirtual android.media.MiniThumbFile.deactivate:()V
        end local 0 // android.media.MiniThumbFile file
         3: .line 63
      StackMap locals:
      StackMap stack:
            aload 1
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 66
            getstatic android.media.MiniThumbFile.sThumbFiles:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clear:()V
         5: .line 67
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2    3     0  file  Landroid/media/MiniThumbFile;

  public static synchronized android.media.MiniThumbFile instance(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Landroid/media/MiniThumbFile;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // android.net.Uri uri
         0: .line 70
            aload 0 /* uri */
            invokevirtual android.net.Uri.getPathSegments:()Ljava/util/List;
            iconst_1
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* type */
        start local 1 // java.lang.String type
         1: .line 71
            getstatic android.media.MiniThumbFile.sThumbFiles:Ljava/util/Hashtable;
            aload 1 /* type */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.media.MiniThumbFile
            astore 2 /* file */
        start local 2 // android.media.MiniThumbFile file
         2: .line 73
            aload 2 /* file */
            ifnonnull 7
         3: .line 74
            new android.media.MiniThumbFile
            dup
         4: .line 75
            new java.lang.StringBuilder
            dup
            ldc "content://media/external/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "/media"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.net.Uri.parse:(Ljava/lang/String;)Landroid/net/Uri;
         5: .line 74
            invokespecial android.media.MiniThumbFile.<init>:(Landroid/net/Uri;)V
            astore 2 /* file */
         6: .line 76
            getstatic android.media.MiniThumbFile.sThumbFiles:Ljava/util/Hashtable;
            aload 1 /* type */
            aload 2 /* file */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 79
      StackMap locals: java.lang.String android.media.MiniThumbFile
      StackMap stack:
            aload 2 /* file */
            areturn
        end local 2 // android.media.MiniThumbFile file
        end local 1 // java.lang.String type
        end local 0 // android.net.Uri uri
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0   uri  Landroid/net/Uri;
            1    8     1  type  Ljava/lang/String;
            2    8     2  file  Landroid/media/MiniThumbFile;
    MethodParameters:
      Name  Flags
      uri   

  private java.lang.String randomAccessFilePath(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.media.MiniThumbFile this
        start local 1 // int version
         0: .line 84
            new java.lang.StringBuilder
            dup
            invokestatic android.os.Environment.getExternalStorageDirectory:()Ljava/io/File;
            invokevirtual java.io.File.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 85
            ldc "/DCIM/.thumbnails"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 84
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 83
            astore 2 /* directoryName */
        start local 2 // java.lang.String directoryName
         4: .line 86
            new java.lang.StringBuilder
            dup
            aload 2 /* directoryName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/.thumbdata"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* version */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mUri:Landroid/net/Uri;
            invokevirtual android.net.Uri.hashCode:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String directoryName
        end local 1 // int version
        end local 0 // android.media.MiniThumbFile this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Landroid/media/MiniThumbFile;
            0    5     1        version  I
            4    5     2  directoryName  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      version  

  private void removeOldFile();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.media.MiniThumbFile this
         0: .line 90
            aload 0 /* this */
            iconst_3
            invokevirtual android.media.MiniThumbFile.randomAccessFilePath:(I)Ljava/lang/String;
            astore 1 /* oldPath */
        start local 1 // java.lang.String oldPath
         1: .line 91
            new java.io.File
            dup
            aload 1 /* oldPath */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 2 /* oldFile */
        start local 2 // java.io.File oldFile
         2: .line 92
            aload 2 /* oldFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 6
         3: .line 94
            aload 2 /* oldFile */
            invokevirtual java.io.File.delete:()Z
            pop
         4: .line 95
            goto 6
      StackMap locals: android.media.MiniThumbFile java.lang.String java.io.File
      StackMap stack: java.lang.SecurityException
         5: pop
         6: .line 99
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.File oldFile
        end local 1 // java.lang.String oldPath
        end local 0 // android.media.MiniThumbFile this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/media/MiniThumbFile;
            1    7     1  oldPath  Ljava/lang/String;
            2    7     2  oldFile  Ljava/io/File;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.SecurityException

  private java.io.RandomAccessFile miniThumbDataFile();
    descriptor: ()Ljava/io/RandomAccessFile;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // android.media.MiniThumbFile this
         0: .line 102
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
            ifnonnull 18
         1: .line 103
            aload 0 /* this */
            invokevirtual android.media.MiniThumbFile.removeOldFile:()V
         2: .line 104
            aload 0 /* this */
            iconst_4
            invokevirtual android.media.MiniThumbFile.randomAccessFilePath:(I)Ljava/lang/String;
            astore 1 /* path */
        start local 1 // java.lang.String path
         3: .line 105
            new java.io.File
            dup
            aload 1 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 2 /* directory */
        start local 2 // java.io.File directory
         4: .line 106
            aload 2 /* directory */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 9
         5: .line 107
            aload 2 /* directory */
            invokevirtual java.io.File.mkdirs:()Z
            ifne 9
         6: .line 108
            ldc "MiniThumbFile"
            new java.lang.StringBuilder
            dup
            ldc "Unable to create .thumbnails directory "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 109
            aload 2 /* directory */
            invokevirtual java.io.File.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 108
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         9: .line 112
      StackMap locals: java.lang.String java.io.File
      StackMap stack:
            new java.io.File
            dup
            aload 1 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 3 /* f */
        start local 3 // java.io.File f
        10: .line 114
            aload 0 /* this */
            new java.io.RandomAccessFile
            dup
            aload 3 /* f */
            ldc "rw"
            invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
            putfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
        11: .line 115
            goto 16
      StackMap locals: android.media.MiniThumbFile java.lang.String java.io.File java.io.File
      StackMap stack: java.io.IOException
        12: pop
        13: .line 119
            aload 0 /* this */
            new java.io.RandomAccessFile
            dup
            aload 3 /* f */
            ldc "r"
            invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
            putfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
        14: .line 120
            goto 16
      StackMap locals:
      StackMap stack: java.io.IOException
        15: pop
        16: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
            ifnull 18
        17: .line 125
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
            invokevirtual java.io.RandomAccessFile.getChannel:()Ljava/nio/channels/FileChannel;
            putfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
        end local 3 // java.io.File f
        end local 2 // java.io.File directory
        end local 1 // java.lang.String path
        18: .line 128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
            areturn
        end local 0 // android.media.MiniThumbFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   19     0       this  Landroid/media/MiniThumbFile;
            3   18     1       path  Ljava/lang/String;
            4   18     2  directory  Ljava/io/File;
           10   18     3          f  Ljava/io/File;
      Exception table:
        from    to  target  type
          10    11      12  Class java.io.IOException
          13    14      15  Class java.io.IOException

  private void <init>(android.net.Uri);
    descriptor: (Landroid/net/Uri;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MiniThumbFile this
        start local 1 // android.net.Uri uri
         0: .line 131
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 132
            aload 0 /* this */
            aload 1 /* uri */
            putfield android.media.MiniThumbFile.mUri:Landroid/net/Uri;
         2: .line 133
            aload 0 /* this */
            sipush 10000
            invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
            putfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
         3: .line 134
            aload 0 /* this */
            sipush 10000
            invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
            putfield android.media.MiniThumbFile.mEmptyBuffer:Ljava/nio/ByteBuffer;
         4: .line 135
            return
        end local 1 // android.net.Uri uri
        end local 0 // android.media.MiniThumbFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/media/MiniThumbFile;
            0    5     1   uri  Landroid/net/Uri;
    MethodParameters:
      Name  Flags
      uri   

  public synchronized void deactivate();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.MiniThumbFile this
         0: .line 138
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
            ifnull 5
         1: .line 140
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
            invokevirtual java.io.RandomAccessFile.close:()V
         2: .line 141
            aload 0 /* this */
            aconst_null
            putfield android.media.MiniThumbFile.mMiniThumbFile:Ljava/io/RandomAccessFile;
         3: .line 142
            goto 5
      StackMap locals:
      StackMap stack: java.io.IOException
         4: pop
         5: .line 146
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.MiniThumbFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/media/MiniThumbFile;
      Exception table:
        from    to  target  type
           1     3       4  Class java.io.IOException

  public synchronized long getMagic(long);
    descriptor: (J)J
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=11, args_size=2
        start local 0 // android.media.MiniThumbFile this
        start local 1 // long id
         0: .line 154
            aload 0 /* this */
            invokevirtual android.media.MiniThumbFile.miniThumbDataFile:()Ljava/io/RandomAccessFile;
            astore 3 /* r */
        start local 3 // java.io.RandomAccessFile r
         1: .line 155
            aload 3 /* r */
            ifnull 35
         2: .line 156
            lload 1 /* id */
            ldc 10000
            lmul
            lstore 4 /* pos */
        start local 4 // long pos
         3: .line 157
            aconst_null
            astore 6 /* lock */
        start local 6 // java.nio.channels.FileLock lock
         4: .line 159
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
         5: .line 160
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            bipush 9
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
         6: .line 162
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
            lload 4 /* pos */
            ldc 9
            iconst_1
            invokevirtual java.nio.channels.FileChannel.lock:(JJZ)Ljava/nio/channels/FileLock;
            astore 6 /* lock */
         7: .line 165
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            lload 4 /* pos */
            invokevirtual java.nio.channels.FileChannel.read:(Ljava/nio/ByteBuffer;J)I
            bipush 9
            if_icmpne 32
         8: .line 166
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
         9: .line 167
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.get:()B
            iconst_1
            if_icmpne 32
        10: .line 168
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getLong:()J
            lstore 9
        11: .line 179
            aload 6 /* lock */
            ifnull 14
            aload 6 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        12: .line 180
            goto 14
        13: .line 181
      StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock top top long
      StackMap stack: java.io.IOException
            pop
        14: .line 168
      StackMap locals:
      StackMap stack:
            lload 9
            lreturn
        15: .line 171
      StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock
      StackMap stack: java.io.IOException
            astore 7 /* ex */
        start local 7 // java.io.IOException ex
        16: .line 172
            ldc "MiniThumbFile"
            ldc "Got exception checking file magic: "
            aload 7 /* ex */
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 7 // java.io.IOException ex
        17: .line 179
            aload 6 /* lock */
            ifnull 35
            aload 6 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        18: .line 180
            goto 35
        19: .line 181
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
            goto 35
        20: .line 173
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 7 /* ex */
        start local 7 // java.lang.RuntimeException ex
        21: .line 175
            ldc "MiniThumbFile"
            new java.lang.StringBuilder
            dup
            ldc "Got exception when reading magic, id = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* id */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        22: .line 176
            ldc ", disk full or mount read-only? "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* ex */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 175
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 7 // java.lang.RuntimeException ex
        24: .line 179
            aload 6 /* lock */
            ifnull 35
            aload 6 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        25: .line 180
            goto 35
        26: .line 181
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
            goto 35
        27: .line 177
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        28: .line 179
            aload 6 /* lock */
            ifnull 31
            aload 6 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        29: .line 180
            goto 31
        30: .line 181
      StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock top java.lang.Throwable
      StackMap stack: java.io.IOException
            pop
        31: .line 184
      StackMap locals:
      StackMap stack:
            aload 8
            athrow
        32: .line 179
      StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock
      StackMap stack:
            aload 6 /* lock */
            ifnull 35
            aload 6 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        33: .line 180
            goto 35
        34: .line 181
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        end local 6 // java.nio.channels.FileLock lock
        end local 4 // long pos
        35: .line 186
      StackMap locals:
      StackMap stack:
            lconst_0
            lreturn
        end local 3 // java.io.RandomAccessFile r
        end local 1 // long id
        end local 0 // android.media.MiniThumbFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   36     0  this  Landroid/media/MiniThumbFile;
            0   36     1    id  J
            1   36     3     r  Ljava/io/RandomAccessFile;
            3   35     4   pos  J
            4   35     6  lock  Ljava/nio/channels/FileLock;
           16   17     7    ex  Ljava/io/IOException;
           21   24     7    ex  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          11    12      13  Class java.io.IOException
           4    11      15  Class java.io.IOException
          17    18      19  Class java.io.IOException
           4    11      20  Class java.lang.RuntimeException
          24    25      26  Class java.io.IOException
           4    11      27  any
          15    17      27  any
          20    24      27  any
          28    29      30  Class java.io.IOException
          32    33      34  Class java.io.IOException
    MethodParameters:
      Name  Flags
      id    

  public synchronized void eraseMiniThumb(long);
    descriptor: (J)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // android.media.MiniThumbFile this
        start local 1 // long id
         0: .line 190
            aload 0 /* this */
            invokevirtual android.media.MiniThumbFile.miniThumbDataFile:()Ljava/io/RandomAccessFile;
            astore 3 /* r */
        start local 3 // java.io.RandomAccessFile r
         1: .line 191
            aload 3 /* r */
            ifnull 39
         2: .line 192
            lload 1 /* id */
            ldc 10000
            lmul
            lstore 4 /* pos */
        start local 4 // long pos
         3: .line 193
            aconst_null
            astore 6 /* lock */
        start local 6 // java.nio.channels.FileLock lock
         4: .line 195
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
         5: .line 196
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            bipush 9
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
         6: .line 198
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
            lload 4 /* pos */
            ldc 10000
            iconst_0
            invokevirtual java.nio.channels.FileChannel.lock:(JJZ)Ljava/nio/channels/FileLock;
            astore 6 /* lock */
         7: .line 201
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            lload 4 /* pos */
            invokevirtual java.nio.channels.FileChannel.read:(Ljava/nio/ByteBuffer;J)I
            bipush 9
            if_icmpne 36
         8: .line 202
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
         9: .line 203
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.get:()B
            iconst_1
            if_icmpne 36
        10: .line 204
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getLong:()J
            lstore 7 /* currentMagic */
        start local 7 // long currentMagic
        11: .line 205
            lload 7 /* currentMagic */
            lconst_0
            lcmp
            ifne 17
        12: .line 207
            ldc "MiniThumbFile"
            new java.lang.StringBuilder
            dup
            ldc "no thumbnail for id "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* id */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        13: .line 226
            aload 6 /* lock */
            ifnull 16
            aload 6 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        14: .line 227
            goto 16
        15: .line 228
      StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock long
      StackMap stack: java.io.IOException
            pop
        16: .line 208
      StackMap locals:
      StackMap stack:
            return
        17: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mEmptyBuffer:Ljava/nio/ByteBuffer;
            lload 4 /* pos */
            invokevirtual java.nio.channels.FileChannel.write:(Ljava/nio/ByteBuffer;J)I
            pop
        end local 7 // long currentMagic
        18: .line 218
            goto 36
      StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock
      StackMap stack: java.io.IOException
        19: astore 7 /* ex */
        start local 7 // java.io.IOException ex
        20: .line 219
            ldc "MiniThumbFile"
            ldc "Got exception checking file magic: "
            aload 7 /* ex */
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 7 // java.io.IOException ex
        21: .line 226
            aload 6 /* lock */
            ifnull 39
            aload 6 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        22: .line 227
            goto 39
        23: .line 228
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
            goto 39
        24: .line 220
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 7 /* ex */
        start local 7 // java.lang.RuntimeException ex
        25: .line 222
            ldc "MiniThumbFile"
            new java.lang.StringBuilder
            dup
            ldc "Got exception when reading magic, id = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* id */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        26: .line 223
            ldc ", disk full or mount read-only? "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* ex */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        27: .line 222
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 7 // java.lang.RuntimeException ex
        28: .line 226
            aload 6 /* lock */
            ifnull 39
            aload 6 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        29: .line 227
            goto 39
        30: .line 228
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
            goto 39
        31: .line 224
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        32: .line 226
            aload 6 /* lock */
            ifnull 35
            aload 6 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        33: .line 227
            goto 35
        34: .line 228
      StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock top top java.lang.Throwable
      StackMap stack: java.io.IOException
            pop
        35: .line 231
      StackMap locals:
      StackMap stack:
            aload 9
            athrow
        36: .line 226
      StackMap locals: android.media.MiniThumbFile long java.io.RandomAccessFile long java.nio.channels.FileLock
      StackMap stack:
            aload 6 /* lock */
            ifnull 39
            aload 6 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        37: .line 227
            goto 39
        38: .line 228
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        end local 6 // java.nio.channels.FileLock lock
        end local 4 // long pos
        39: .line 235
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.io.RandomAccessFile r
        end local 1 // long id
        end local 0 // android.media.MiniThumbFile this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   40     0          this  Landroid/media/MiniThumbFile;
            0   40     1            id  J
            1   40     3             r  Ljava/io/RandomAccessFile;
            3   39     4           pos  J
            4   39     6          lock  Ljava/nio/channels/FileLock;
           11   18     7  currentMagic  J
           20   21     7            ex  Ljava/io/IOException;
           25   28     7            ex  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          13    14      15  Class java.io.IOException
           4    13      19  Class java.io.IOException
          17    18      19  Class java.io.IOException
          21    22      23  Class java.io.IOException
           4    13      24  Class java.lang.RuntimeException
          17    18      24  Class java.lang.RuntimeException
          28    29      30  Class java.io.IOException
           4    13      31  any
          17    21      31  any
          24    28      31  any
          32    33      34  Class java.io.IOException
          36    37      38  Class java.io.IOException
    MethodParameters:
      Name  Flags
      id    

  public synchronized void saveMiniThumbToFile(byte[], long, long);
    descriptor: ([BJJ)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=12, args_size=4
        start local 0 // android.media.MiniThumbFile this
        start local 1 // byte[] data
        start local 2 // long id
        start local 4 // long magic
         0: .line 239
            aload 0 /* this */
            invokevirtual android.media.MiniThumbFile.miniThumbDataFile:()Ljava/io/RandomAccessFile;
            astore 6 /* r */
        start local 6 // java.io.RandomAccessFile r
         1: .line 240
            aload 6 /* r */
            ifnonnull 2
            return
         2: .line 242
      StackMap locals: java.io.RandomAccessFile
      StackMap stack:
            lload 2 /* id */
            ldc 10000
            lmul
            lstore 7 /* pos */
        start local 7 // long pos
         3: .line 243
            aconst_null
            astore 9 /* lock */
        start local 9 // java.nio.channels.FileLock lock
         4: .line 245
            aload 1 /* data */
            ifnull 36
         5: .line 246
            aload 1 /* data */
            arraylength
            sipush 9987
            if_icmple 10
         6: .line 270
            aload 9 /* lock */
            ifnull 9
            aload 9 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
         7: .line 271
            goto 9
         8: .line 272
      StackMap locals: android.media.MiniThumbFile byte[] long long java.io.RandomAccessFile long java.nio.channels.FileLock
      StackMap stack: java.io.IOException
            pop
         9: .line 248
      StackMap locals:
      StackMap stack:
            return
        10: .line 250
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        11: .line 251
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            iconst_1
            invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
            pop
        12: .line 252
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            lload 4 /* magic */
            invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
            pop
        13: .line 253
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            aload 1 /* data */
            arraylength
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
        14: .line 254
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            aload 1 /* data */
            invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
            pop
        15: .line 255
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        16: .line 257
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
            lload 7 /* pos */
            ldc 10000
            iconst_0
            invokevirtual java.nio.channels.FileChannel.lock:(JJZ)Ljava/nio/channels/FileLock;
            astore 9 /* lock */
        17: .line 258
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            lload 7 /* pos */
            invokevirtual java.nio.channels.FileChannel.write:(Ljava/nio/ByteBuffer;J)I
            pop
        18: .line 260
            goto 36
      StackMap locals:
      StackMap stack: java.io.IOException
        19: astore 10 /* ex */
        start local 10 // java.io.IOException ex
        20: .line 261
            ldc "MiniThumbFile"
            new java.lang.StringBuilder
            dup
            ldc "couldn't save mini thumbnail data for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        21: .line 262
            lload 2 /* id */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "; "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 10 /* ex */
        22: .line 261
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        23: .line 263
            aload 10 /* ex */
            athrow
        end local 10 // java.io.IOException ex
        24: .line 264
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 10 /* ex */
        start local 10 // java.lang.RuntimeException ex
        25: .line 266
            ldc "MiniThumbFile"
            new java.lang.StringBuilder
            dup
            ldc "couldn't save mini thumbnail data for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        26: .line 267
            lload 2 /* id */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "; disk full or mount read-only? "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* ex */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        27: .line 266
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 10 // java.lang.RuntimeException ex
        28: .line 270
            aload 9 /* lock */
            ifnull 39
            aload 9 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        29: .line 271
            goto 39
        30: .line 272
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
            goto 39
        31: .line 268
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        32: .line 270
            aload 9 /* lock */
            ifnull 35
            aload 9 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        33: .line 271
            goto 35
        34: .line 272
      StackMap locals: android.media.MiniThumbFile byte[] long long java.io.RandomAccessFile long java.nio.channels.FileLock top java.lang.Throwable
      StackMap stack: java.io.IOException
            pop
        35: .line 275
      StackMap locals:
      StackMap stack:
            aload 11
            athrow
        36: .line 270
      StackMap locals: android.media.MiniThumbFile byte[] long long java.io.RandomAccessFile long java.nio.channels.FileLock
      StackMap stack:
            aload 9 /* lock */
            ifnull 39
            aload 9 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        37: .line 271
            goto 39
        38: .line 272
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        39: .line 276
      StackMap locals:
      StackMap stack:
            return
        end local 9 // java.nio.channels.FileLock lock
        end local 7 // long pos
        end local 6 // java.io.RandomAccessFile r
        end local 4 // long magic
        end local 2 // long id
        end local 1 // byte[] data
        end local 0 // android.media.MiniThumbFile this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   40     0   this  Landroid/media/MiniThumbFile;
            0   40     1   data  [B
            0   40     2     id  J
            0   40     4  magic  J
            1   40     6      r  Ljava/io/RandomAccessFile;
            3   40     7    pos  J
            4   40     9   lock  Ljava/nio/channels/FileLock;
           20   24    10     ex  Ljava/io/IOException;
           25   28    10     ex  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           6     7       8  Class java.io.IOException
           4     6      19  Class java.io.IOException
          10    18      19  Class java.io.IOException
           4     6      24  Class java.lang.RuntimeException
          10    18      24  Class java.lang.RuntimeException
          28    29      30  Class java.io.IOException
           4     6      31  any
          10    28      31  any
          32    33      34  Class java.io.IOException
          36    37      38  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      data   
      id     
      magic  

  public synchronized byte[] getMiniThumbFromFile(long, byte[]);
    descriptor: (J[B)[B
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=15, args_size=3
        start local 0 // android.media.MiniThumbFile this
        start local 1 // long id
        start local 3 // byte[] data
         0: .line 286
            aload 0 /* this */
            invokevirtual android.media.MiniThumbFile.miniThumbDataFile:()Ljava/io/RandomAccessFile;
            astore 4 /* r */
        start local 4 // java.io.RandomAccessFile r
         1: .line 287
            aload 4 /* r */
            ifnonnull 2
            aconst_null
            areturn
         2: .line 289
      StackMap locals: java.io.RandomAccessFile
      StackMap stack:
            lload 1 /* id */
            ldc 10000
            lmul
            lstore 5 /* pos */
        start local 5 // long pos
         3: .line 290
            aconst_null
            astore 7 /* lock */
        start local 7 // java.nio.channels.FileLock lock
         4: .line 292
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
         5: .line 293
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
            lload 5 /* pos */
            ldc 10000
            iconst_1
            invokevirtual java.nio.channels.FileChannel.lock:(JJZ)Ljava/nio/channels/FileLock;
            astore 7 /* lock */
         6: .line 294
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mChannel:Ljava/nio/channels/FileChannel;
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            lload 5 /* pos */
            invokevirtual java.nio.channels.FileChannel.read:(Ljava/nio/ByteBuffer;J)I
            istore 8 /* size */
        start local 8 // int size
         7: .line 295
            iload 8 /* size */
            bipush 13
            if_icmple 37
         8: .line 296
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
         9: .line 297
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.get:()B
            istore 9 /* flag */
        start local 9 // byte flag
        10: .line 298
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getLong:()J
            lstore 10 /* magic */
        start local 10 // long magic
        11: .line 299
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 12 /* length */
        start local 12 // int length
        12: .line 301
            iload 8 /* size */
            bipush 13
            iload 12 /* length */
            iadd
            if_icmplt 37
            iload 12 /* length */
            ifeq 37
            lload 10 /* magic */
            lconst_0
            lcmp
            ifeq 37
            iload 9 /* flag */
            iconst_1
            if_icmpne 37
        13: .line 302
            aload 3 /* data */
            arraylength
            iload 12 /* length */
            if_icmplt 37
        14: .line 303
            aload 0 /* this */
            getfield android.media.MiniThumbFile.mBuffer:Ljava/nio/ByteBuffer;
            aload 3 /* data */
            iconst_0
            iload 12 /* length */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        15: .line 304
            aload 3 /* data */
            astore 14
        16: .line 315
            aload 7 /* lock */
            ifnull 19
            aload 7 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        17: .line 316
            goto 19
        18: .line 317
      StackMap locals: android.media.MiniThumbFile long byte[] java.io.RandomAccessFile long java.nio.channels.FileLock int int long int top byte[]
      StackMap stack: java.io.IOException
            pop
        19: .line 304
      StackMap locals:
      StackMap stack:
            aload 14
            areturn
        end local 12 // int length
        end local 10 // long magic
        end local 9 // byte flag
        end local 8 // int size
        20: .line 307
      StackMap locals: android.media.MiniThumbFile long byte[] java.io.RandomAccessFile long java.nio.channels.FileLock
      StackMap stack: java.io.IOException
            astore 8 /* ex */
        start local 8 // java.io.IOException ex
        21: .line 308
            ldc "MiniThumbFile"
            new java.lang.StringBuilder
            dup
            ldc "got exception when reading thumbnail id="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* id */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", exception: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 8 // java.io.IOException ex
        22: .line 315
            aload 7 /* lock */
            ifnull 40
            aload 7 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        23: .line 316
            goto 40
        24: .line 317
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
            goto 40
        25: .line 309
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
            astore 8 /* ex */
        start local 8 // java.lang.RuntimeException ex
        26: .line 311
            ldc "MiniThumbFile"
            new java.lang.StringBuilder
            dup
            ldc "Got exception when reading thumbnail, id = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* id */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        27: .line 312
            ldc ", disk full or mount read-only? "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* ex */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        28: .line 311
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 8 // java.lang.RuntimeException ex
        29: .line 315
            aload 7 /* lock */
            ifnull 40
            aload 7 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        30: .line 316
            goto 40
        31: .line 317
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
            goto 40
        32: .line 313
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 13
        33: .line 315
            aload 7 /* lock */
            ifnull 36
            aload 7 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        34: .line 316
            goto 36
        35: .line 317
      StackMap locals: android.media.MiniThumbFile long byte[] java.io.RandomAccessFile long java.nio.channels.FileLock top top top top top java.lang.Throwable
      StackMap stack: java.io.IOException
            pop
        36: .line 320
      StackMap locals:
      StackMap stack:
            aload 13
            athrow
        37: .line 315
      StackMap locals: android.media.MiniThumbFile long byte[] java.io.RandomAccessFile long java.nio.channels.FileLock
      StackMap stack:
            aload 7 /* lock */
            ifnull 40
            aload 7 /* lock */
            invokevirtual java.nio.channels.FileLock.release:()V
        38: .line 316
            goto 40
        39: .line 317
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        40: .line 321
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 7 // java.nio.channels.FileLock lock
        end local 5 // long pos
        end local 4 // java.io.RandomAccessFile r
        end local 3 // byte[] data
        end local 1 // long id
        end local 0 // android.media.MiniThumbFile this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   41     0    this  Landroid/media/MiniThumbFile;
            0   41     1      id  J
            0   41     3    data  [B
            1   41     4       r  Ljava/io/RandomAccessFile;
            3   41     5     pos  J
            4   41     7    lock  Ljava/nio/channels/FileLock;
            7   20     8    size  I
           10   20     9    flag  B
           11   20    10   magic  J
           12   20    12  length  I
           21   22     8      ex  Ljava/io/IOException;
           26   29     8      ex  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
          16    17      18  Class java.io.IOException
           4    16      20  Class java.io.IOException
          22    23      24  Class java.io.IOException
           4    16      25  Class java.lang.RuntimeException
          29    30      31  Class java.io.IOException
           4    16      32  any
          20    22      32  any
          25    29      32  any
          33    34      35  Class java.io.IOException
          37    38      39  Class java.io.IOException
    MethodParameters:
      Name  Flags
      id    
      data  
}
SourceFile: "MiniThumbFile.java"