public final class org.hibernate.internal.util.SerializationHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.hibernate.internal.util.SerializationHelper
  super_class: java.lang.Object
{
  private static final org.hibernate.internal.CoreMessageLogger LOG;
    descriptor: Lorg/hibernate/internal/CoreMessageLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 67
            ldc Lorg/hibernate/internal/CoreMessageLogger;
            ldc Lorg/hibernate/internal/util/SerializationHelper;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic org.jboss.logging.Logger.getMessageLogger:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.hibernate.internal.CoreMessageLogger
            putstatic org.hibernate.internal.util.SerializationHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.internal.util.SerializationHelper this
         0: .line 69
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 70
            return
        end local 0 // org.hibernate.internal.util.SerializationHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hibernate/internal/util/SerializationHelper;

  public static java.lang.Object clone(java.io.Serializable);
    descriptor: (Ljava/io/Serializable;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.Serializable object
         0: .line 91
            getstatic org.hibernate.internal.util.SerializationHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Starting clone through serialization"
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
         1: .line 92
            aload 0 /* object */
            ifnonnull 3
         2: .line 93
            aconst_null
            areturn
         3: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* object */
            invokestatic org.hibernate.internal.util.SerializationHelper.serialize:(Ljava/io/Serializable;)[B
            aload 0 /* object */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic org.hibernate.internal.util.SerializationHelper.deserialize:([BLjava/lang/ClassLoader;)Ljava/lang/Object;
            areturn
        end local 0 // java.io.Serializable object
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  object  Ljava/io/Serializable;
    Exceptions:
      throws org.hibernate.type.SerializationException
    MethodParameters:
        Name  Flags
      object  

  public static void serialize(java.io.Serializable, java.io.OutputStream);
    descriptor: (Ljava/io/Serializable;Ljava/io/OutputStream;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.io.Serializable obj
        start local 1 // java.io.OutputStream outputStream
         0: .line 118
            aload 1 /* outputStream */
            ifnonnull 2
         1: .line 119
            new java.lang.IllegalArgumentException
            dup
            ldc "The OutputStream must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 122
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.internal.util.SerializationHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            invokeinterface org.hibernate.internal.CoreMessageLogger.isTraceEnabled:()Z
            ifeq 7
         3: .line 123
            aload 0 /* obj */
            invokestatic org.hibernate.Hibernate.isInitialized:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 124
            getstatic org.hibernate.internal.util.SerializationHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Starting serialization of object [{0}]"
            aload 0 /* obj */
            invokeinterface org.hibernate.internal.CoreMessageLogger.tracev:(Ljava/lang/String;Ljava/lang/Object;)V
         5: .line 125
            goto 7
         6: .line 127
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.internal.util.SerializationHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Starting serialization of [uninitialized proxy]"
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
         7: .line 131
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* out */
        start local 2 // java.io.ObjectOutputStream out
         8: .line 134
            new java.io.ObjectOutputStream
            dup
            aload 1 /* outputStream */
            invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
            astore 2 /* out */
         9: .line 135
            aload 2 /* out */
            aload 0 /* obj */
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
        10: .line 137
            goto 19
        11: .line 138
      StackMap locals: java.io.Serializable java.io.OutputStream java.io.ObjectOutputStream
      StackMap stack: java.io.IOException
            astore 3 /* ex */
        start local 3 // java.io.IOException ex
        12: .line 139
            new org.hibernate.type.SerializationException
            dup
            ldc "could not serialize"
            aload 3 /* ex */
            invokespecial org.hibernate.type.SerializationException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 3 // java.io.IOException ex
        13: .line 141
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        14: .line 143
            aload 2 /* out */
            ifnull 18
        15: .line 144
            aload 2 /* out */
            invokevirtual java.io.ObjectOutputStream.close:()V
        16: .line 146
            goto 18
        17: .line 147
      StackMap locals: java.io.Serializable java.io.OutputStream java.io.ObjectOutputStream top java.lang.Throwable
      StackMap stack: java.io.IOException
            pop
        18: .line 149
      StackMap locals:
      StackMap stack:
            aload 4
            athrow
        19: .line 143
      StackMap locals: java.io.Serializable java.io.OutputStream java.io.ObjectOutputStream
      StackMap stack:
            aload 2 /* out */
            ifnull 23
        20: .line 144
            aload 2 /* out */
            invokevirtual java.io.ObjectOutputStream.close:()V
        21: .line 146
            goto 23
        22: .line 147
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        23: .line 150
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.io.ObjectOutputStream out
        end local 1 // java.io.OutputStream outputStream
        end local 0 // java.io.Serializable obj
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   24     0           obj  Ljava/io/Serializable;
            0   24     1  outputStream  Ljava/io/OutputStream;
            8   24     2           out  Ljava/io/ObjectOutputStream;
           12   13     3            ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           8    10      11  Class java.io.IOException
           8    13      13  any
          14    16      17  Class java.io.IOException
          19    21      22  Class java.io.IOException
    Exceptions:
      throws org.hibernate.type.SerializationException
    MethodParameters:
              Name  Flags
      obj           
      outputStream  

  public static byte[] serialize(java.io.Serializable);
    descriptor: (Ljava/io/Serializable;)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.io.Serializable obj
         0: .line 163
            new java.io.ByteArrayOutputStream
            dup
            sipush 512
            invokespecial java.io.ByteArrayOutputStream.<init>:(I)V
            astore 1 /* byteArrayOutputStream */
        start local 1 // java.io.ByteArrayOutputStream byteArrayOutputStream
         1: .line 164
            aload 0 /* obj */
            aload 1 /* byteArrayOutputStream */
            invokestatic org.hibernate.internal.util.SerializationHelper.serialize:(Ljava/io/Serializable;Ljava/io/OutputStream;)V
         2: .line 165
            aload 1 /* byteArrayOutputStream */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            areturn
        end local 1 // java.io.ByteArrayOutputStream byteArrayOutputStream
        end local 0 // java.io.Serializable obj
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    3     0                    obj  Ljava/io/Serializable;
            1    3     1  byteArrayOutputStream  Ljava/io/ByteArrayOutputStream;
    Exceptions:
      throws org.hibernate.type.SerializationException
    MethodParameters:
      Name  Flags
      obj   

  public static java.lang.Object deserialize(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.io.InputStream inputStream
         0: .line 185
            aload 0 /* inputStream */
            invokestatic org.hibernate.internal.util.SerializationHelper.defaultClassLoader:()Ljava/lang/ClassLoader;
            invokestatic org.hibernate.internal.util.SerializationHelper.hibernateClassLoader:()Ljava/lang/ClassLoader;
            aconst_null
            invokestatic org.hibernate.internal.util.SerializationHelper.doDeserialize:(Ljava/io/InputStream;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Ljava/lang/Object;
            areturn
        end local 0 // java.io.InputStream inputStream
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  inputStream  Ljava/io/InputStream;
    Exceptions:
      throws org.hibernate.type.SerializationException
    MethodParameters:
             Name  Flags
      inputStream  

  public static java.lang.ClassLoader defaultClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 194
            invokestatic org.hibernate.internal.util.ClassLoaderHelper.getContextClassLoader:()Ljava/lang/ClassLoader;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.ClassLoader hibernateClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 198
            ldc Lorg/hibernate/internal/util/SerializationHelper;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.Object deserialize(java.io.InputStream, java.lang.ClassLoader);
    descriptor: (Ljava/io/InputStream;Ljava/lang/ClassLoader;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.io.InputStream inputStream
        start local 1 // java.lang.ClassLoader loader
         0: .line 222
            aload 0 /* inputStream */
            aload 1 /* loader */
            invokestatic org.hibernate.internal.util.SerializationHelper.defaultClassLoader:()Ljava/lang/ClassLoader;
            invokestatic org.hibernate.internal.util.SerializationHelper.hibernateClassLoader:()Ljava/lang/ClassLoader;
            invokestatic org.hibernate.internal.util.SerializationHelper.doDeserialize:(Ljava/io/InputStream;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.ClassLoader loader
        end local 0 // java.io.InputStream inputStream
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0  inputStream  Ljava/io/InputStream;
            0    1     1       loader  Ljava/lang/ClassLoader;
    Exceptions:
      throws org.hibernate.type.SerializationException
    MethodParameters:
             Name  Flags
      inputStream  
      loader       

  public static java.lang.Object doDeserialize(java.io.InputStream, java.lang.ClassLoader, java.lang.ClassLoader, java.lang.ClassLoader);
    descriptor: (Ljava/io/InputStream;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // java.io.InputStream inputStream
        start local 1 // java.lang.ClassLoader loader
        start local 2 // java.lang.ClassLoader fallbackLoader1
        start local 3 // java.lang.ClassLoader fallbackLoader2
         0: .line 230
            aload 0 /* inputStream */
            ifnonnull 2
         1: .line 231
            new java.lang.IllegalArgumentException
            dup
            ldc "The InputStream must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 234
      StackMap locals:
      StackMap stack:
            getstatic org.hibernate.internal.util.SerializationHelper.LOG:Lorg/hibernate/internal/CoreMessageLogger;
            ldc "Starting deserialization of object"
            invokeinterface org.hibernate.internal.CoreMessageLogger.trace:(Ljava/lang/Object;)V
         3: .line 237
            new org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream
            dup
         4: .line 238
            aload 0 /* inputStream */
         5: .line 239
            aload 1 /* loader */
         6: .line 240
            aload 2 /* fallbackLoader1 */
         7: .line 241
            aload 3 /* fallbackLoader2 */
         8: .line 237
            invokespecial org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>:(Ljava/io/InputStream;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)V
            astore 4 /* in */
        start local 4 // org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream in
         9: .line 244
            aload 4 /* in */
            invokevirtual org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.readObject:()Ljava/lang/Object;
            astore 7
        10: .line 254
            aload 4 /* in */
            invokevirtual org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.close:()V
        11: .line 255
            goto 13
        12: .line 256
      StackMap locals: java.io.InputStream java.lang.ClassLoader java.lang.ClassLoader java.lang.ClassLoader org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream top top java.lang.Object
      StackMap stack: java.io.IOException
            pop
        13: .line 244
      StackMap locals:
      StackMap stack:
            aload 7
            areturn
        14: .line 246
      StackMap locals: java.io.InputStream java.lang.ClassLoader java.lang.ClassLoader java.lang.ClassLoader org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream
      StackMap stack: java.lang.ClassNotFoundException
            astore 5 /* e */
        start local 5 // java.lang.ClassNotFoundException e
        15: .line 247
            new org.hibernate.type.SerializationException
            dup
            ldc "could not deserialize"
            aload 5 /* e */
            invokespecial org.hibernate.type.SerializationException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 5 // java.lang.ClassNotFoundException e
        16: .line 249
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        17: .line 250
            new org.hibernate.type.SerializationException
            dup
            ldc "could not deserialize"
            aload 5 /* e */
            invokespecial org.hibernate.type.SerializationException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 5 // java.io.IOException e
        18: .line 252
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        19: .line 254
            aload 4 /* in */
            invokevirtual org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.close:()V
        20: .line 255
            goto 22
        21: .line 256
      StackMap locals: java.io.InputStream java.lang.ClassLoader java.lang.ClassLoader java.lang.ClassLoader org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream top java.lang.Throwable
      StackMap stack: java.io.IOException
            pop
        22: .line 259
      StackMap locals:
      StackMap stack:
            aload 6
            athrow
        end local 4 // org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream in
        23: .line 261
      StackMap locals: java.io.InputStream java.lang.ClassLoader java.lang.ClassLoader java.lang.ClassLoader
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        24: .line 262
            new org.hibernate.type.SerializationException
            dup
            ldc "could not deserialize"
            aload 4 /* e */
            invokespecial org.hibernate.type.SerializationException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
            athrow
        end local 4 // java.io.IOException e
        end local 3 // java.lang.ClassLoader fallbackLoader2
        end local 2 // java.lang.ClassLoader fallbackLoader1
        end local 1 // java.lang.ClassLoader loader
        end local 0 // java.io.InputStream inputStream
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   25     0      inputStream  Ljava/io/InputStream;
            0   25     1           loader  Ljava/lang/ClassLoader;
            0   25     2  fallbackLoader1  Ljava/lang/ClassLoader;
            0   25     3  fallbackLoader2  Ljava/lang/ClassLoader;
            9   23     4               in  Lorg/hibernate/internal/util/SerializationHelper$CustomObjectInputStream;
           15   16     5                e  Ljava/lang/ClassNotFoundException;
           17   18     5                e  Ljava/io/IOException;
           24   25     4                e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          10    11      12  Class java.io.IOException
           9    10      14  Class java.lang.ClassNotFoundException
           9    10      16  Class java.io.IOException
           9    10      18  any
          14    18      18  any
          19    20      21  Class java.io.IOException
           3    13      23  Class java.io.IOException
          14    23      23  Class java.io.IOException
    Exceptions:
      throws org.hibernate.type.SerializationException
    MethodParameters:
                 Name  Flags
      inputStream      
      loader           
      fallbackLoader1  
      fallbackLoader2  

  public static java.lang.Object deserialize(byte[]);
    descriptor: ([B)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // byte[] objectData
         0: .line 281
            aload 0 /* objectData */
            invokestatic org.hibernate.internal.util.SerializationHelper.wrap:([B)Ljava/io/InputStream;
            invokestatic org.hibernate.internal.util.SerializationHelper.defaultClassLoader:()Ljava/lang/ClassLoader;
            invokestatic org.hibernate.internal.util.SerializationHelper.hibernateClassLoader:()Ljava/lang/ClassLoader;
            aconst_null
            invokestatic org.hibernate.internal.util.SerializationHelper.doDeserialize:(Ljava/io/InputStream;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Ljava/lang/Object;
            areturn
        end local 0 // byte[] objectData
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  objectData  [B
    Exceptions:
      throws org.hibernate.type.SerializationException
    MethodParameters:
            Name  Flags
      objectData  

  private static java.io.InputStream wrap(byte[]);
    descriptor: ([B)Ljava/io/InputStream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // byte[] objectData
         0: .line 285
            aload 0 /* objectData */
            ifnonnull 2
         1: .line 286
            new java.lang.IllegalArgumentException
            dup
            ldc "The byte[] must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 288
      StackMap locals:
      StackMap stack:
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* objectData */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            areturn
        end local 0 // byte[] objectData
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  objectData  [B
    MethodParameters:
            Name  Flags
      objectData  

  public static java.lang.Object deserialize(byte[], java.lang.ClassLoader);
    descriptor: ([BLjava/lang/ClassLoader;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // byte[] objectData
        start local 1 // java.lang.ClassLoader loader
         0: .line 306
            aload 0 /* objectData */
            invokestatic org.hibernate.internal.util.SerializationHelper.wrap:([B)Ljava/io/InputStream;
            aload 1 /* loader */
            invokestatic org.hibernate.internal.util.SerializationHelper.defaultClassLoader:()Ljava/lang/ClassLoader;
            invokestatic org.hibernate.internal.util.SerializationHelper.hibernateClassLoader:()Ljava/lang/ClassLoader;
            invokestatic org.hibernate.internal.util.SerializationHelper.doDeserialize:(Ljava/io/InputStream;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.ClassLoader loader
        end local 0 // byte[] objectData
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  objectData  [B
            0    1     1      loader  Ljava/lang/ClassLoader;
    Exceptions:
      throws org.hibernate.type.SerializationException
    MethodParameters:
            Name  Flags
      objectData  
      loader      
}
SourceFile: "SerializationHelper.java"
NestMembers:
  org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream
InnerClasses:
  private final CustomObjectInputStream = org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream of org.hibernate.internal.util.SerializationHelper