public class javax.mail.util.ByteArrayDataSource implements javax.activation.DataSource
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.mail.util.ByteArrayDataSource
  super_class: java.lang.Object
{
  private byte[] data;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private int len;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String type;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.io.InputStream, java.lang.String);
    descriptor: (Ljava/io/InputStream;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // javax.mail.util.ByteArrayDataSource this
        start local 1 // java.io.InputStream is
        start local 2 // java.lang.String type
         0: .line 83
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            iconst_m1
            putfield javax.mail.util.ByteArrayDataSource.len:I
         2: .line 61
            aload 0 /* this */
            ldc ""
            putfield javax.mail.util.ByteArrayDataSource.name:Ljava/lang/String;
         3: .line 84
            new javax.mail.util.ByteArrayDataSource$DSByteArrayOutputStream
            dup
            invokespecial javax.mail.util.ByteArrayDataSource$DSByteArrayOutputStream.<init>:()V
            astore 3 /* os */
        start local 3 // javax.mail.util.ByteArrayDataSource$DSByteArrayOutputStream os
         4: .line 85
            sipush 8192
            newarray 8
            astore 4 /* buf */
        start local 4 // byte[] buf
         5: .line 87
            goto 7
        start local 5 // int len
         6: .line 88
      StackMap locals: javax.mail.util.ByteArrayDataSource java.io.InputStream java.lang.String javax.mail.util.ByteArrayDataSource$DSByteArrayOutputStream byte[] int
      StackMap stack:
            aload 3 /* os */
            aload 4 /* buf */
            iconst_0
            iload 5 /* len */
            invokevirtual javax.mail.util.ByteArrayDataSource$DSByteArrayOutputStream.write:([BII)V
        end local 5 // int len
         7: .line 87
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            aload 4 /* buf */
            invokevirtual java.io.InputStream.read:([B)I
            dup
            istore 5 /* len */
        start local 5 // int len
         8: ifgt 6
         9: .line 89
            aload 0 /* this */
            aload 3 /* os */
            invokevirtual javax.mail.util.ByteArrayDataSource$DSByteArrayOutputStream.getBuf:()[B
            putfield javax.mail.util.ByteArrayDataSource.data:[B
        10: .line 90
            aload 0 /* this */
            aload 3 /* os */
            invokevirtual javax.mail.util.ByteArrayDataSource$DSByteArrayOutputStream.getCount:()I
            putfield javax.mail.util.ByteArrayDataSource.len:I
        11: .line 99
            aload 0 /* this */
            getfield javax.mail.util.ByteArrayDataSource.data:[B
            arraylength
            aload 0 /* this */
            getfield javax.mail.util.ByteArrayDataSource.len:I
            isub
            ldc 262144
            if_icmple 14
        12: .line 100
            aload 0 /* this */
            aload 3 /* os */
            invokevirtual javax.mail.util.ByteArrayDataSource$DSByteArrayOutputStream.toByteArray:()[B
            putfield javax.mail.util.ByteArrayDataSource.data:[B
        13: .line 101
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.mail.util.ByteArrayDataSource.data:[B
            arraylength
            putfield javax.mail.util.ByteArrayDataSource.len:I
        14: .line 103
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* type */
            putfield javax.mail.util.ByteArrayDataSource.type:Ljava/lang/String;
        15: .line 104
            return
        end local 5 // int len
        end local 4 // byte[] buf
        end local 3 // javax.mail.util.ByteArrayDataSource$DSByteArrayOutputStream os
        end local 2 // java.lang.String type
        end local 1 // java.io.InputStream is
        end local 0 // javax.mail.util.ByteArrayDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Ljavax/mail/util/ByteArrayDataSource;
            0   16     1    is  Ljava/io/InputStream;
            0   16     2  type  Ljava/lang/String;
            4   16     3    os  Ljavax/mail/util/ByteArrayDataSource$DSByteArrayOutputStream;
            5   16     4   buf  [B
            6    7     5   len  I
            8   16     5   len  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      is    
      type  

  public void <init>(byte[], java.lang.String);
    descriptor: ([BLjava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // javax.mail.util.ByteArrayDataSource this
        start local 1 // byte[] data
        start local 2 // java.lang.String type
         0: .line 113
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            iconst_m1
            putfield javax.mail.util.ByteArrayDataSource.len:I
         2: .line 61
            aload 0 /* this */
            ldc ""
            putfield javax.mail.util.ByteArrayDataSource.name:Ljava/lang/String;
         3: .line 114
            aload 0 /* this */
            aload 1 /* data */
            putfield javax.mail.util.ByteArrayDataSource.data:[B
         4: .line 115
            aload 0 /* this */
            aload 2 /* type */
            putfield javax.mail.util.ByteArrayDataSource.type:Ljava/lang/String;
         5: .line 116
            return
        end local 2 // java.lang.String type
        end local 1 // byte[] data
        end local 0 // javax.mail.util.ByteArrayDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljavax/mail/util/ByteArrayDataSource;
            0    6     1  data  [B
            0    6     2  type  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      data  
      type  

  public void <init>(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // javax.mail.util.ByteArrayDataSource this
        start local 1 // java.lang.String data
        start local 2 // java.lang.String type
         0: .line 130
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            iconst_m1
            putfield javax.mail.util.ByteArrayDataSource.len:I
         2: .line 61
            aload 0 /* this */
            ldc ""
            putfield javax.mail.util.ByteArrayDataSource.name:Ljava/lang/String;
         3: .line 131
            aconst_null
            astore 3 /* charset */
        start local 3 // java.lang.String charset
         4: .line 133
            new javax.mail.internet.ContentType
            dup
            aload 2 /* type */
            invokespecial javax.mail.internet.ContentType.<init>:(Ljava/lang/String;)V
            astore 4 /* ct */
        start local 4 // javax.mail.internet.ContentType ct
         5: .line 134
            aload 4 /* ct */
            ldc "charset"
            invokevirtual javax.mail.internet.ContentType.getParameter:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* charset */
        end local 4 // javax.mail.internet.ContentType ct
         6: .line 135
            goto 8
      StackMap locals: javax.mail.util.ByteArrayDataSource java.lang.String java.lang.String java.lang.String
      StackMap stack: javax.mail.internet.ParseException
         7: pop
         8: .line 138
      StackMap locals:
      StackMap stack:
            aload 3 /* charset */
            invokestatic javax.mail.internet.MimeUtility.javaCharset:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* charset */
         9: .line 139
            aload 3 /* charset */
            ifnonnull 11
        10: .line 140
            invokestatic javax.mail.internet.MimeUtility.getDefaultJavaCharset:()Ljava/lang/String;
            astore 3 /* charset */
        11: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            aload 3 /* charset */
            invokevirtual java.lang.String.getBytes:(Ljava/lang/String;)[B
            putfield javax.mail.util.ByteArrayDataSource.data:[B
        12: .line 143
            aload 0 /* this */
            aload 2 /* type */
            putfield javax.mail.util.ByteArrayDataSource.type:Ljava/lang/String;
        13: .line 144
            return
        end local 3 // java.lang.String charset
        end local 2 // java.lang.String type
        end local 1 // java.lang.String data
        end local 0 // javax.mail.util.ByteArrayDataSource this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Ljavax/mail/util/ByteArrayDataSource;
            0   14     1     data  Ljava/lang/String;
            0   14     2     type  Ljava/lang/String;
            4   14     3  charset  Ljava/lang/String;
            5    6     4       ct  Ljavax/mail/internet/ContentType;
      Exception table:
        from    to  target  type
           4     6       7  Class javax.mail.internet.ParseException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      data  
      type  

  public java.io.InputStream getInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // javax.mail.util.ByteArrayDataSource this
         0: .line 156
            aload 0 /* this */
            getfield javax.mail.util.ByteArrayDataSource.data:[B
            ifnonnull 2
         1: .line 157
            new java.io.IOException
            dup
            ldc "no data"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.mail.util.ByteArrayDataSource.len:I
            ifge 4
         3: .line 159
            aload 0 /* this */
            aload 0 /* this */
            getfield javax.mail.util.ByteArrayDataSource.data:[B
            arraylength
            putfield javax.mail.util.ByteArrayDataSource.len:I
         4: .line 160
      StackMap locals:
      StackMap stack:
            new javax.mail.util.SharedByteArrayInputStream
            dup
            aload 0 /* this */
            getfield javax.mail.util.ByteArrayDataSource.data:[B
            iconst_0
            aload 0 /* this */
            getfield javax.mail.util.ByteArrayDataSource.len:I
            invokespecial javax.mail.util.SharedByteArrayInputStream.<init>:([BII)V
            areturn
        end local 0 // javax.mail.util.ByteArrayDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljavax/mail/util/ByteArrayDataSource;
    Exceptions:
      throws java.io.IOException

  public java.io.OutputStream getOutputStream();
    descriptor: ()Ljava/io/OutputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.mail.util.ByteArrayDataSource this
         0: .line 172
            new java.io.IOException
            dup
            ldc "cannot do this"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // javax.mail.util.ByteArrayDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/mail/util/ByteArrayDataSource;
    Exceptions:
      throws java.io.IOException

  public java.lang.String getContentType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.mail.util.ByteArrayDataSource this
         0: .line 182
            aload 0 /* this */
            getfield javax.mail.util.ByteArrayDataSource.type:Ljava/lang/String;
            areturn
        end local 0 // javax.mail.util.ByteArrayDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/mail/util/ByteArrayDataSource;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.mail.util.ByteArrayDataSource this
         0: .line 193
            aload 0 /* this */
            getfield javax.mail.util.ByteArrayDataSource.name:Ljava/lang/String;
            areturn
        end local 0 // javax.mail.util.ByteArrayDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/mail/util/ByteArrayDataSource;

  public void setName(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.mail.util.ByteArrayDataSource this
        start local 1 // java.lang.String name
         0: .line 202
            aload 0 /* this */
            aload 1 /* name */
            putfield javax.mail.util.ByteArrayDataSource.name:Ljava/lang/String;
         1: .line 203
            return
        end local 1 // java.lang.String name
        end local 0 // javax.mail.util.ByteArrayDataSource this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/mail/util/ByteArrayDataSource;
            0    2     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  
}
SourceFile: "ByteArrayDataSource.java"
NestMembers:
  javax.mail.util.ByteArrayDataSource$DSByteArrayOutputStream
InnerClasses:
  DSByteArrayOutputStream = javax.mail.util.ByteArrayDataSource$DSByteArrayOutputStream of javax.mail.util.ByteArrayDataSource