public class io.vertx.ext.cluster.infinispan.impl.DataConverter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.cluster.infinispan.impl.DataConverter
  super_class: java.lang.Object
{
  public static byte[] toCachedObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.Object o
         0: .line 31
            aload 0 /* o */
            ifnonnull 2
         1: .line 32
            aconst_null
            areturn
         2: .line 34
      StackMap locals:
      StackMap stack:
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 1 /* baos */
        start local 1 // java.io.ByteArrayOutputStream baos
         3: .line 35
            aload 0 /* o */
            instanceof java.io.Serializable
            ifeq 7
         4: .line 36
            aload 1 /* baos */
            iconst_0
            invokevirtual java.io.ByteArrayOutputStream.write:(I)V
         5: .line 37
            aload 1 /* baos */
            aload 0 /* o */
            checkcast java.io.Serializable
            invokestatic io.vertx.ext.cluster.infinispan.impl.DataConverter.writeSerializable:(Ljava/io/ByteArrayOutputStream;Ljava/io/Serializable;)V
         6: .line 38
            goto 12
      StackMap locals: java.io.ByteArrayOutputStream
      StackMap stack:
         7: aload 0 /* o */
            instanceof io.vertx.core.shareddata.impl.ClusterSerializable
            ifeq 11
         8: .line 39
            aload 1 /* baos */
            iconst_1
            invokevirtual java.io.ByteArrayOutputStream.write:(I)V
         9: .line 40
            aload 1 /* baos */
            aload 0 /* o */
            checkcast io.vertx.core.shareddata.impl.ClusterSerializable
            invokestatic io.vertx.ext.cluster.infinispan.impl.DataConverter.writeClusterSerializable:(Ljava/io/ByteArrayOutputStream;Lio/vertx/core/shareddata/impl/ClusterSerializable;)V
        10: .line 41
            goto 12
        11: .line 42
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot convert object of type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* o */
            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;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 44
      StackMap locals:
      StackMap stack:
            aload 1 /* baos */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            areturn
        end local 1 // java.io.ByteArrayOutputStream baos
        end local 0 // java.lang.Object o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0     o  Ljava/lang/Object;
            3   13     1  baos  Ljava/io/ByteArrayOutputStream;
    MethodParameters:
      Name  Flags
      o     

  private static void writeSerializable(java.io.ByteArrayOutputStream, java.io.Serializable);
    descriptor: (Ljava/io/ByteArrayOutputStream;Ljava/io/Serializable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.io.ByteArrayOutputStream baos
        start local 1 // java.io.Serializable o
         0: .line 48
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: new java.io.ObjectOutputStream
            dup
            aload 0 /* baos */
            invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 4 /* out */
        start local 4 // java.io.ObjectOutputStream out
         2: .line 49
            aload 4 /* out */
            aload 1 /* o */
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
         3: .line 50
            aload 4 /* out */
            ifnull 11
            aload 4 /* out */
            invokevirtual java.io.ObjectOutputStream.close:()V
            goto 11
      StackMap locals: java.io.ByteArrayOutputStream java.io.Serializable java.lang.Throwable java.lang.Throwable java.io.ObjectOutputStream
      StackMap stack: java.lang.Throwable
         4: astore 2
            aload 4 /* out */
            ifnull 5
            aload 4 /* out */
            invokevirtual java.io.ObjectOutputStream.close:()V
        end local 4 // java.io.ObjectOutputStream out
      StackMap locals:
      StackMap stack:
         5: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 3
            aload 2
            ifnonnull 7
            aload 3
            astore 2
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 2
            aload 3
            if_acmpeq 8
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
      StackMap locals: java.io.ByteArrayOutputStream java.io.Serializable
      StackMap stack: java.io.IOException
         9: astore 2 /* e */
        start local 2 // java.io.IOException e
        10: .line 51
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        11: .line 53
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.Serializable o
        end local 0 // java.io.ByteArrayOutputStream baos
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  baos  Ljava/io/ByteArrayOutputStream;
            0   12     1     o  Ljava/io/Serializable;
            2    5     4   out  Ljava/io/ObjectOutputStream;
           10   11     2     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     3       4  any
           1     6       6  any
           0     9       9  Class java.io.IOException
    MethodParameters:
      Name  Flags
      baos  
      o     

  private static void writeClusterSerializable(java.io.ByteArrayOutputStream, io.vertx.core.shareddata.impl.ClusterSerializable);
    descriptor: (Ljava/io/ByteArrayOutputStream;Lio/vertx/core/shareddata/impl/ClusterSerializable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.io.ByteArrayOutputStream baos
        start local 1 // io.vertx.core.shareddata.impl.ClusterSerializable o
         0: .line 56
            invokestatic io.vertx.core.buffer.Buffer.buffer:()Lio/vertx/core/buffer/Buffer;
            astore 2 /* buffer */
        start local 2 // io.vertx.core.buffer.Buffer buffer
         1: .line 57
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 3 /* classNameBytes */
        start local 3 // byte[] classNameBytes
         2: .line 58
            aload 2 /* buffer */
            aload 3 /* classNameBytes */
            arraylength
            invokeinterface io.vertx.core.buffer.Buffer.appendInt:(I)Lio/vertx/core/buffer/Buffer;
            aload 3 /* classNameBytes */
            invokeinterface io.vertx.core.buffer.Buffer.appendBytes:([B)Lio/vertx/core/buffer/Buffer;
            pop
         3: .line 59
            aload 1 /* o */
            aload 2 /* buffer */
            invokeinterface io.vertx.core.shareddata.impl.ClusterSerializable.writeToBuffer:(Lio/vertx/core/buffer/Buffer;)V
         4: .line 60
            aload 0 /* baos */
            aload 2 /* buffer */
            invokeinterface io.vertx.core.buffer.Buffer.getBytes:()[B
            iconst_0
            aload 2 /* buffer */
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            invokevirtual java.io.ByteArrayOutputStream.write:([BII)V
         5: .line 61
            return
        end local 3 // byte[] classNameBytes
        end local 2 // io.vertx.core.buffer.Buffer buffer
        end local 1 // io.vertx.core.shareddata.impl.ClusterSerializable o
        end local 0 // java.io.ByteArrayOutputStream baos
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            baos  Ljava/io/ByteArrayOutputStream;
            0    6     1               o  Lio/vertx/core/shareddata/impl/ClusterSerializable;
            1    6     2          buffer  Lio/vertx/core/buffer/Buffer;
            2    6     3  classNameBytes  [B
    MethodParameters:
      Name  Flags
      baos  
      o     

  public static <T> T fromCachedObject();
    descriptor: ([B)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // byte[] value
         0: .line 65
            aload 0 /* value */
            ifnonnull 2
         1: .line 66
            aconst_null
            areturn
         2: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            iconst_0
            baload
            istore 1 /* type */
        start local 1 // byte type
         3: .line 69
            iload 1 /* type */
            ifne 5
         4: .line 70
            aload 0 /* value */
            invokestatic io.vertx.ext.cluster.infinispan.impl.DataConverter.readSerializable:([B)Ljava/lang/Object;
            areturn
         5: .line 71
      StackMap locals: int
      StackMap stack:
            iload 1 /* type */
            iconst_1
            if_icmpne 7
         6: .line 72
            aload 0 /* value */
            invokestatic io.vertx.ext.cluster.infinispan.impl.DataConverter.readClusterSerializable:([B)Lio/vertx/core/shareddata/impl/ClusterSerializable;
            areturn
         7: .line 74
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot convert object of type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // byte type
        end local 0 // byte[] value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0  value  [B
            3    8     1   type  B
    Signature: <T:Ljava/lang/Object;>([B)TT;
    MethodParameters:
       Name  Flags
      value  

  private static java.lang.Object readSerializable(byte[]);
    descriptor: ([B)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // byte[] value
         0: .line 78
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* value */
            iconst_1
            aload 0 /* value */
            arraylength
            iconst_1
            isub
            invokespecial java.io.ByteArrayInputStream.<init>:([BII)V
            astore 1 /* bais */
        start local 1 // java.io.ByteArrayInputStream bais
         1: .line 79
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: new java.io.ObjectInputStream
            dup
            aload 1 /* bais */
            invokespecial java.io.ObjectInputStream.<init>:(Ljava/io/InputStream;)V
            astore 4 /* in */
        start local 4 // java.io.ObjectInputStream in
         3: .line 80
            aload 4 /* in */
            invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
         4: .line 81
            aload 4 /* in */
            ifnull 5
            aload 4 /* in */
            invokevirtual java.io.ObjectInputStream.close:()V
         5: .line 80
      StackMap locals: byte[] java.io.ByteArrayInputStream java.lang.Throwable java.lang.Throwable java.io.ObjectInputStream
      StackMap stack: java.lang.Object
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 81
            aload 4 /* in */
            ifnull 8
            aload 4 /* in */
            invokevirtual java.io.ObjectInputStream.close:()V
        end local 4 // java.io.ObjectInputStream in
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
            aload 2
            ifnonnull 10
            aload 3
            astore 2
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 2
            aload 3
            if_acmpeq 11
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
      StackMap locals: byte[] java.io.ByteArrayInputStream
      StackMap stack: java.lang.Exception
        12: astore 2 /* e */
        start local 2 // java.lang.Exception e
        13: .line 82
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e
        end local 1 // java.io.ByteArrayInputStream bais
        end local 0 // byte[] value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0  value  [B
            1   14     1   bais  Ljava/io/ByteArrayInputStream;
            3    8     4     in  Ljava/io/ObjectInputStream;
           13   14     2      e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     4       6  any
           2     5       9  any
           6     9       9  any
           1     5      12  Class java.io.IOException
           6    12      12  Class java.io.IOException
           1     5      12  Class java.lang.ClassNotFoundException
           6    12      12  Class java.lang.ClassNotFoundException
    MethodParameters:
       Name  Flags
      value  

  private static io.vertx.core.shareddata.impl.ClusterSerializable readClusterSerializable(byte[]);
    descriptor: ([B)Lio/vertx/core/shareddata/impl/ClusterSerializable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // byte[] value
         0: .line 87
            aload 0 /* value */
            invokestatic io.vertx.core.buffer.Buffer.buffer:([B)Lio/vertx/core/buffer/Buffer;
            astore 1 /* buffer */
        start local 1 // io.vertx.core.buffer.Buffer buffer
         1: .line 88
            iconst_1
            istore 2 /* pos */
        start local 2 // int pos
         2: .line 89
            aload 1 /* buffer */
            iload 2 /* pos */
            invokeinterface io.vertx.core.buffer.Buffer.getInt:(I)I
            istore 3 /* len */
        start local 3 // int len
         3: .line 90
            iinc 2 /* pos */ 4
         4: .line 91
            aload 1 /* buffer */
            iload 2 /* pos */
            iload 2 /* pos */
            iload 3 /* len */
            iadd
            invokeinterface io.vertx.core.buffer.Buffer.getBytes:(II)[B
            astore 4 /* classNameBytes */
        start local 4 // byte[] classNameBytes
         5: .line 92
            iload 2 /* pos */
            iload 3 /* len */
            iadd
            istore 2 /* pos */
         6: .line 95
            invokestatic io.vertx.ext.cluster.infinispan.impl.DataConverter.getClassLoader:()Ljava/lang/ClassLoader;
            new java.lang.String
            dup
            aload 4 /* classNameBytes */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            invokevirtual java.lang.ClassLoader.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 6 /* clazz */
        start local 6 // java.lang.Class clazz
         7: .line 96
            aload 6 /* clazz */
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast io.vertx.core.shareddata.impl.ClusterSerializable
            astore 5 /* clusterSerializable */
        end local 6 // java.lang.Class clazz
        start local 5 // io.vertx.core.shareddata.impl.ClusterSerializable clusterSerializable
         8: .line 97
            goto 11
        end local 5 // io.vertx.core.shareddata.impl.ClusterSerializable clusterSerializable
      StackMap locals: byte[] io.vertx.core.buffer.Buffer int int byte[]
      StackMap stack: java.lang.Exception
         9: astore 6 /* e */
        start local 6 // java.lang.Exception e
        10: .line 98
            new java.lang.RuntimeException
            dup
            aload 6 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.Exception e
        start local 5 // io.vertx.core.shareddata.impl.ClusterSerializable clusterSerializable
        11: .line 100
      StackMap locals: io.vertx.core.shareddata.impl.ClusterSerializable
      StackMap stack:
            aload 5 /* clusterSerializable */
            iload 2 /* pos */
            aload 1 /* buffer */
            invokeinterface io.vertx.core.shareddata.impl.ClusterSerializable.readFromBuffer:(ILio/vertx/core/buffer/Buffer;)I
            pop
        12: .line 101
            aload 5 /* clusterSerializable */
            areturn
        end local 5 // io.vertx.core.shareddata.impl.ClusterSerializable clusterSerializable
        end local 4 // byte[] classNameBytes
        end local 3 // int len
        end local 2 // int pos
        end local 1 // io.vertx.core.buffer.Buffer buffer
        end local 0 // byte[] value
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   13     0                value  [B
            1   13     1               buffer  Lio/vertx/core/buffer/Buffer;
            2   13     2                  pos  I
            3   13     3                  len  I
            5   13     4       classNameBytes  [B
            8    9     5  clusterSerializable  Lio/vertx/core/shareddata/impl/ClusterSerializable;
           11   13     5  clusterSerializable  Lio/vertx/core/shareddata/impl/ClusterSerializable;
            7    8     6                clazz  Ljava/lang/Class<*>;
           10   11     6                    e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           6     8       9  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      value  

  private static java.lang.ClassLoader getClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 105
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 0 /* tccl */
        start local 0 // java.lang.ClassLoader tccl
         1: .line 106
            aload 0 /* tccl */
            ifnull 2
            aload 0 /* tccl */
            goto 3
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
         2: ldc Lio/vertx/ext/cluster/infinispan/impl/DataConverter;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
      StackMap locals:
      StackMap stack: java.lang.ClassLoader
         3: areturn
        end local 0 // java.lang.ClassLoader tccl
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    4     0  tccl  Ljava/lang/ClassLoader;

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.cluster.infinispan.impl.DataConverter this
         0: .line 109
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 111
            return
        end local 0 // io.vertx.ext.cluster.infinispan.impl.DataConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/ext/cluster/infinispan/impl/DataConverter;
}
SourceFile: "DataConverter.java"