public class org.h2.value.ValueJavaObject extends org.h2.value.ValueBytes
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.h2.value.ValueJavaObject
  super_class: org.h2.value.ValueBytes
{
  private static final org.h2.value.ValueJavaObject EMPTY;
    descriptor: Lorg/h2/value/ValueJavaObject;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.h2.store.DataHandler dataHandler;
    descriptor: Lorg/h2/store/DataHandler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 24
            new org.h2.value.ValueJavaObject
            dup
            getstatic org.h2.util.Utils.EMPTY_BYTES:[B
            aconst_null
            invokespecial org.h2.value.ValueJavaObject.<init>:([BLorg/h2/store/DataHandler;)V
         1: .line 23
            putstatic org.h2.value.ValueJavaObject.EMPTY:Lorg/h2/value/ValueJavaObject;
         2: .line 24
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(byte[], org.h2.store.DataHandler);
    descriptor: ([BLorg/h2/store/DataHandler;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.h2.value.ValueJavaObject this
        start local 1 // byte[] v
        start local 2 // org.h2.store.DataHandler dataHandler
         0: .line 28
            aload 0 /* this */
            aload 1 /* v */
            invokespecial org.h2.value.ValueBytes.<init>:([B)V
         1: .line 29
            aload 0 /* this */
            aload 2 /* dataHandler */
            putfield org.h2.value.ValueJavaObject.dataHandler:Lorg/h2/store/DataHandler;
         2: .line 30
            return
        end local 2 // org.h2.store.DataHandler dataHandler
        end local 1 // byte[] v
        end local 0 // org.h2.value.ValueJavaObject this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/h2/value/ValueJavaObject;
            0    3     1            v  [B
            0    3     2  dataHandler  Lorg/h2/store/DataHandler;
    MethodParameters:
             Name  Flags
      v            
      dataHandler  

  public static org.h2.value.ValueJavaObject getNoCopy(java.lang.Object, byte[], org.h2.store.DataHandler);
    descriptor: (Ljava/lang/Object;[BLorg/h2/store/DataHandler;)Lorg/h2/value/ValueJavaObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.lang.Object javaObject
        start local 1 // byte[] b
        start local 2 // org.h2.store.DataHandler dataHandler
         0: .line 43
            aload 1 /* b */
            ifnull 2
            aload 1 /* b */
            arraylength
            ifne 2
         1: .line 44
            getstatic org.h2.value.ValueJavaObject.EMPTY:Lorg/h2/value/ValueJavaObject;
            areturn
         2: .line 47
      StackMap locals:
      StackMap stack:
            getstatic org.h2.engine.SysProperties.serializeJavaObject:Z
            ifeq 7
         3: .line 48
            aload 1 /* b */
            ifnonnull 5
         4: .line 49
            aload 0 /* javaObject */
            aload 2 /* dataHandler */
            invokestatic org.h2.util.JdbcUtils.serialize:(Ljava/lang/Object;Lorg/h2/store/DataHandler;)[B
            astore 1 /* b */
         5: .line 51
      StackMap locals:
      StackMap stack:
            new org.h2.value.ValueJavaObject
            dup
            aload 1 /* b */
            aload 2 /* dataHandler */
            invokespecial org.h2.value.ValueJavaObject.<init>:([BLorg/h2/store/DataHandler;)V
            astore 3 /* obj */
        start local 3 // org.h2.value.ValueJavaObject obj
         6: .line 52
            goto 8
        end local 3 // org.h2.value.ValueJavaObject obj
         7: .line 53
      StackMap locals:
      StackMap stack:
            new org.h2.value.ValueJavaObject$NotSerialized
            dup
            aload 0 /* javaObject */
            aload 1 /* b */
            aload 2 /* dataHandler */
            invokespecial org.h2.value.ValueJavaObject$NotSerialized.<init>:(Ljava/lang/Object;[BLorg/h2/store/DataHandler;)V
            astore 3 /* obj */
        start local 3 // org.h2.value.ValueJavaObject obj
         8: .line 55
      StackMap locals: org.h2.value.ValueJavaObject
      StackMap stack:
            aload 1 /* b */
            ifnull 9
            aload 1 /* b */
            arraylength
            getstatic org.h2.engine.SysProperties.OBJECT_CACHE_MAX_PER_ELEMENT_SIZE:I
            if_icmple 10
         9: .line 56
      StackMap locals:
      StackMap stack:
            aload 3 /* obj */
            areturn
        10: .line 58
      StackMap locals:
      StackMap stack:
            aload 3 /* obj */
            invokestatic org.h2.value.Value.cache:(Lorg/h2/value/Value;)Lorg/h2/value/Value;
            checkcast org.h2.value.ValueJavaObject
            areturn
        end local 3 // org.h2.value.ValueJavaObject obj
        end local 2 // org.h2.store.DataHandler dataHandler
        end local 1 // byte[] b
        end local 0 // java.lang.Object javaObject
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0   javaObject  Ljava/lang/Object;
            0   11     1            b  [B
            0   11     2  dataHandler  Lorg/h2/store/DataHandler;
            6    7     3          obj  Lorg/h2/value/ValueJavaObject;
            8   11     3          obj  Lorg/h2/value/ValueJavaObject;
    MethodParameters:
             Name  Flags
      javaObject   
      b            
      dataHandler  

  public org.h2.value.TypeInfo getType();
    descriptor: ()Lorg/h2/value/TypeInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.value.ValueJavaObject this
         0: .line 63
            getstatic org.h2.value.TypeInfo.TYPE_JAVA_OBJECT:Lorg/h2/value/TypeInfo;
            areturn
        end local 0 // org.h2.value.ValueJavaObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/value/ValueJavaObject;

  public int getValueType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.value.ValueJavaObject this
         0: .line 68
            bipush 19
            ireturn
        end local 0 // org.h2.value.ValueJavaObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/value/ValueJavaObject;

  public void set(java.sql.PreparedStatement, int);
    descriptor: (Ljava/sql/PreparedStatement;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.h2.value.ValueJavaObject this
        start local 1 // java.sql.PreparedStatement prep
        start local 2 // int parameterIndex
         0: .line 74
            aload 0 /* this */
            invokevirtual org.h2.value.ValueJavaObject.getBytesNoCopy:()[B
            aload 0 /* this */
            invokevirtual org.h2.value.ValueJavaObject.getDataHandler:()Lorg/h2/store/DataHandler;
            invokestatic org.h2.util.JdbcUtils.deserialize:([BLorg/h2/store/DataHandler;)Ljava/lang/Object;
            astore 3 /* obj */
        start local 3 // java.lang.Object obj
         1: .line 75
            aload 1 /* prep */
            iload 2 /* parameterIndex */
            aload 3 /* obj */
            sipush 2000
            invokeinterface java.sql.PreparedStatement.setObject:(ILjava/lang/Object;I)V
         2: .line 76
            return
        end local 3 // java.lang.Object obj
        end local 2 // int parameterIndex
        end local 1 // java.sql.PreparedStatement prep
        end local 0 // org.h2.value.ValueJavaObject this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lorg/h2/value/ValueJavaObject;
            0    3     1            prep  Ljava/sql/PreparedStatement;
            0    3     2  parameterIndex  I
            1    3     3             obj  Ljava/lang/Object;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
                Name  Flags
      prep            
      parameterIndex  

  protected org.h2.store.DataHandler getDataHandler();
    descriptor: ()Lorg/h2/store/DataHandler;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.h2.value.ValueJavaObject this
         0: .line 211
            aload 0 /* this */
            getfield org.h2.value.ValueJavaObject.dataHandler:Lorg/h2/store/DataHandler;
            areturn
        end local 0 // org.h2.value.ValueJavaObject this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/h2/value/ValueJavaObject;
}
SourceFile: "ValueJavaObject.java"
NestMembers:
  org.h2.value.ValueJavaObject$NotSerialized
InnerClasses:
  private NotSerialized = org.h2.value.ValueJavaObject$NotSerialized of org.h2.value.ValueJavaObject