public class org.hibernate.internal.ExceptionConverterImpl implements org.hibernate.engine.spi.ExceptionConverter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.internal.ExceptionConverterImpl
  super_class: java.lang.Object
{
  private static final org.hibernate.internal.EntityManagerMessageLogger log;
    descriptor: Lorg/hibernate/internal/EntityManagerMessageLogger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.hibernate.engine.spi.SharedSessionContractImplementor sharedSessionContract;
    descriptor: Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 43
            ldc Lorg/hibernate/internal/ExceptionConverterImpl;
            invokestatic org.hibernate.internal.HEMLogging.messageLogger:(Ljava/lang/Class;)Lorg/hibernate/internal/EntityManagerMessageLogger;
            putstatic org.hibernate.internal.ExceptionConverterImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.hibernate.engine.spi.SharedSessionContractImplementor);
    descriptor: (Lorg/hibernate/engine/spi/SharedSessionContractImplementor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.internal.ExceptionConverterImpl this
        start local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor sharedSessionContract
         0: .line 47
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 48
            aload 0 /* this */
            aload 1 /* sharedSessionContract */
            putfield org.hibernate.internal.ExceptionConverterImpl.sharedSessionContract:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
         2: .line 49
            return
        end local 1 // org.hibernate.engine.spi.SharedSessionContractImplementor sharedSessionContract
        end local 0 // org.hibernate.internal.ExceptionConverterImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    3     0                   this  Lorg/hibernate/internal/ExceptionConverterImpl;
            0    3     1  sharedSessionContract  Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
    MethodParameters:
                       Name  Flags
      sharedSessionContract  

  public java.lang.RuntimeException convertCommitException(java.lang.RuntimeException);
    descriptor: (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.hibernate.internal.ExceptionConverterImpl this
        start local 1 // java.lang.RuntimeException e
         0: .line 53
            aload 0 /* this */
            getfield org.hibernate.internal.ExceptionConverterImpl.sharedSessionContract:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getFactory:()Lorg/hibernate/engine/spi/SessionFactoryImplementor;
            invokeinterface org.hibernate.engine.spi.SessionFactoryImplementor.getSessionFactoryOptions:()Lorg/hibernate/boot/spi/SessionFactoryOptions;
            invokeinterface org.hibernate.boot.spi.SessionFactoryOptions.isJpaBootstrap:()Z
            ifeq 18
         1: .line 55
            aload 1 /* e */
            instanceof org.hibernate.HibernateException
            ifeq 4
         2: .line 56
            aload 0 /* this */
            aload 1 /* e */
            checkcast org.hibernate.HibernateException
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.convert:(Lorg/hibernate/HibernateException;)Ljava/lang/RuntimeException;
            astore 2 /* wrappedException */
        start local 2 // java.lang.Throwable wrappedException
         3: .line 57
            goto 14
        end local 2 // java.lang.Throwable wrappedException
         4: .line 58
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof javax.persistence.PersistenceException
            ifeq 13
         5: .line 59
            aload 1 /* e */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
            ifnonnull 6
            aload 1 /* e */
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 1 /* e */
            invokevirtual java.lang.RuntimeException.getCause:()Ljava/lang/Throwable;
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 3 /* cause */
        start local 3 // java.lang.Throwable cause
         8: .line 60
            aload 3 /* cause */
            instanceof org.hibernate.HibernateException
            ifeq 11
         9: .line 61
            aload 0 /* this */
            aload 3 /* cause */
            checkcast org.hibernate.HibernateException
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.convert:(Lorg/hibernate/HibernateException;)Ljava/lang/RuntimeException;
            astore 2 /* wrappedException */
        start local 2 // java.lang.Throwable wrappedException
        10: .line 62
            goto 14
        end local 2 // java.lang.Throwable wrappedException
        11: .line 64
      StackMap locals: org.hibernate.internal.ExceptionConverterImpl java.lang.RuntimeException top java.lang.Throwable
      StackMap stack:
            aload 3 /* cause */
            astore 2 /* wrappedException */
        end local 3 // java.lang.Throwable cause
        start local 2 // java.lang.Throwable wrappedException
        12: .line 66
            goto 14
        end local 2 // java.lang.Throwable wrappedException
        13: .line 68
      StackMap locals: org.hibernate.internal.ExceptionConverterImpl java.lang.RuntimeException
      StackMap stack:
            aload 1 /* e */
            astore 2 /* wrappedException */
        start local 2 // java.lang.Throwable wrappedException
        14: .line 72
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.ExceptionConverterImpl.sharedSessionContract:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getTransaction:()Lorg/hibernate/Transaction;
            invokeinterface org.hibernate.Transaction.rollback:()V
        15: .line 73
            goto 17
        16: .line 74
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
        17: .line 77
      StackMap locals:
      StackMap stack:
            new javax.persistence.RollbackException
            dup
            ldc "Error while committing the transaction"
            aload 2 /* wrappedException */
            invokespecial javax.persistence.RollbackException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            areturn
        end local 2 // java.lang.Throwable wrappedException
        18: .line 80
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            areturn
        end local 1 // java.lang.RuntimeException e
        end local 0 // org.hibernate.internal.ExceptionConverterImpl this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   19     0              this  Lorg/hibernate/internal/ExceptionConverterImpl;
            0   19     1                 e  Ljava/lang/RuntimeException;
            3    4     2  wrappedException  Ljava/lang/Throwable;
           10   11     2  wrappedException  Ljava/lang/Throwable;
           12   13     2  wrappedException  Ljava/lang/Throwable;
           14   18     2  wrappedException  Ljava/lang/Throwable;
            8   12     3             cause  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          14    15      16  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      e     

  public java.lang.RuntimeException convert(org.hibernate.HibernateException, org.hibernate.LockOptions);
    descriptor: (Lorg/hibernate/HibernateException;Lorg/hibernate/LockOptions;)Ljava/lang/RuntimeException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.hibernate.internal.ExceptionConverterImpl this
        start local 1 // org.hibernate.HibernateException e
        start local 2 // org.hibernate.LockOptions lockOptions
         0: .line 86
            aload 1 /* e */
            astore 3 /* cause */
        start local 3 // java.lang.Throwable cause
         1: .line 87
            aload 3 /* cause */
            instanceof org.hibernate.StaleStateException
            ifeq 5
         2: .line 88
            aload 0 /* this */
            aload 3 /* cause */
            checkcast org.hibernate.StaleStateException
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.wrapStaleStateException:(Lorg/hibernate/StaleStateException;)Ljavax/persistence/PersistenceException;
            astore 4 /* converted */
        start local 4 // javax.persistence.PersistenceException converted
         3: .line 89
            aload 0 /* this */
            aload 4 /* converted */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.handlePersistenceException:(Ljavax/persistence/PersistenceException;)V
         4: .line 90
            aload 4 /* converted */
            areturn
        end local 4 // javax.persistence.PersistenceException converted
         5: .line 92
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3 /* cause */
            instanceof org.hibernate.exception.LockAcquisitionException
            ifeq 9
         6: .line 93
            aload 0 /* this */
            aload 3 /* cause */
            checkcast org.hibernate.HibernateException
            aload 2 /* lockOptions */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.wrapLockException:(Lorg/hibernate/HibernateException;Lorg/hibernate/LockOptions;)Ljavax/persistence/PersistenceException;
            astore 4 /* converted */
        start local 4 // javax.persistence.PersistenceException converted
         7: .line 94
            aload 0 /* this */
            aload 4 /* converted */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.handlePersistenceException:(Ljavax/persistence/PersistenceException;)V
         8: .line 95
            aload 4 /* converted */
            areturn
        end local 4 // javax.persistence.PersistenceException converted
         9: .line 97
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof org.hibernate.dialect.lock.LockingStrategyException
            ifeq 13
        10: .line 98
            aload 0 /* this */
            aload 3 /* cause */
            checkcast org.hibernate.HibernateException
            aload 2 /* lockOptions */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.wrapLockException:(Lorg/hibernate/HibernateException;Lorg/hibernate/LockOptions;)Ljavax/persistence/PersistenceException;
            astore 4 /* converted */
        start local 4 // javax.persistence.PersistenceException converted
        11: .line 99
            aload 0 /* this */
            aload 4 /* converted */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.handlePersistenceException:(Ljavax/persistence/PersistenceException;)V
        12: .line 100
            aload 4 /* converted */
            areturn
        end local 4 // javax.persistence.PersistenceException converted
        13: .line 102
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof org.hibernate.PessimisticLockException
            ifeq 17
        14: .line 103
            aload 0 /* this */
            aload 3 /* cause */
            checkcast org.hibernate.HibernateException
            aload 2 /* lockOptions */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.wrapLockException:(Lorg/hibernate/HibernateException;Lorg/hibernate/LockOptions;)Ljavax/persistence/PersistenceException;
            astore 4 /* converted */
        start local 4 // javax.persistence.PersistenceException converted
        15: .line 104
            aload 0 /* this */
            aload 4 /* converted */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.handlePersistenceException:(Ljavax/persistence/PersistenceException;)V
        16: .line 105
            aload 4 /* converted */
            areturn
        end local 4 // javax.persistence.PersistenceException converted
        17: .line 107
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof org.hibernate.QueryTimeoutException
            ifeq 21
        18: .line 108
            new javax.persistence.QueryTimeoutException
            dup
            aload 3 /* cause */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            aload 3 /* cause */
            invokespecial javax.persistence.QueryTimeoutException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 4 /* converted */
        start local 4 // javax.persistence.QueryTimeoutException converted
        19: .line 109
            aload 0 /* this */
            aload 4 /* converted */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.handlePersistenceException:(Ljavax/persistence/PersistenceException;)V
        20: .line 110
            aload 4 /* converted */
            areturn
        end local 4 // javax.persistence.QueryTimeoutException converted
        21: .line 112
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof org.hibernate.ObjectNotFoundException
            ifeq 25
        22: .line 113
            new javax.persistence.EntityNotFoundException
            dup
            aload 3 /* cause */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokespecial javax.persistence.EntityNotFoundException.<init>:(Ljava/lang/String;)V
            astore 4 /* converted */
        start local 4 // javax.persistence.EntityNotFoundException converted
        23: .line 114
            aload 0 /* this */
            aload 4 /* converted */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.handlePersistenceException:(Ljavax/persistence/PersistenceException;)V
        24: .line 115
            aload 4 /* converted */
            areturn
        end local 4 // javax.persistence.EntityNotFoundException converted
        25: .line 117
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof org.hibernate.NonUniqueObjectException
            ifeq 29
        26: .line 118
            new javax.persistence.EntityExistsException
            dup
            aload 3 /* cause */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokespecial javax.persistence.EntityExistsException.<init>:(Ljava/lang/String;)V
            astore 4 /* converted */
        start local 4 // javax.persistence.EntityExistsException converted
        27: .line 119
            aload 0 /* this */
            aload 4 /* converted */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.handlePersistenceException:(Ljavax/persistence/PersistenceException;)V
        28: .line 120
            aload 4 /* converted */
            areturn
        end local 4 // javax.persistence.EntityExistsException converted
        29: .line 122
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof org.hibernate.NonUniqueResultException
            ifeq 33
        30: .line 123
            new javax.persistence.NonUniqueResultException
            dup
            aload 3 /* cause */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokespecial javax.persistence.NonUniqueResultException.<init>:(Ljava/lang/String;)V
            astore 4 /* converted */
        start local 4 // javax.persistence.NonUniqueResultException converted
        31: .line 124
            aload 0 /* this */
            aload 4 /* converted */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.handlePersistenceException:(Ljavax/persistence/PersistenceException;)V
        32: .line 125
            aload 4 /* converted */
            areturn
        end local 4 // javax.persistence.NonUniqueResultException converted
        33: .line 127
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof org.hibernate.UnresolvableObjectException
            ifeq 37
        34: .line 128
            new javax.persistence.EntityNotFoundException
            dup
            aload 3 /* cause */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokespecial javax.persistence.EntityNotFoundException.<init>:(Ljava/lang/String;)V
            astore 4 /* converted */
        start local 4 // javax.persistence.EntityNotFoundException converted
        35: .line 129
            aload 0 /* this */
            aload 4 /* converted */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.handlePersistenceException:(Ljavax/persistence/PersistenceException;)V
        36: .line 130
            aload 4 /* converted */
            areturn
        end local 4 // javax.persistence.EntityNotFoundException converted
        37: .line 132
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof org.hibernate.QueryException
            ifeq 39
        38: .line 133
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* cause */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            areturn
        39: .line 135
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof org.hibernate.loader.MultipleBagFetchException
            ifeq 41
        40: .line 136
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* cause */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            areturn
        41: .line 138
      StackMap locals:
      StackMap stack:
            aload 3 /* cause */
            instanceof org.hibernate.TransientObjectException
            ifeq 47
        42: .line 140
            aload 0 /* this */
            getfield org.hibernate.internal.ExceptionConverterImpl.sharedSessionContract:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.markForRollbackOnly:()V
        43: .line 141
            goto 46
        44: .line 142
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* ne */
        start local 4 // java.lang.Exception ne
        45: .line 144
            getstatic org.hibernate.internal.ExceptionConverterImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            aload 4 /* ne */
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.unableToMarkForRollbackOnTransientObjectException:(Ljava/lang/Exception;)V
        end local 4 // java.lang.Exception ne
        46: .line 146
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            aload 1 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            areturn
        47: .line 149
      StackMap locals:
      StackMap stack:
            new javax.persistence.PersistenceException
            dup
            aload 3 /* cause */
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/Throwable;)V
            astore 4 /* converted */
        start local 4 // javax.persistence.PersistenceException converted
        48: .line 150
            aload 0 /* this */
            aload 4 /* converted */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.handlePersistenceException:(Ljavax/persistence/PersistenceException;)V
        49: .line 151
            aload 4 /* converted */
            areturn
        end local 4 // javax.persistence.PersistenceException converted
        end local 3 // java.lang.Throwable cause
        end local 2 // org.hibernate.LockOptions lockOptions
        end local 1 // org.hibernate.HibernateException e
        end local 0 // org.hibernate.internal.ExceptionConverterImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   50     0         this  Lorg/hibernate/internal/ExceptionConverterImpl;
            0   50     1            e  Lorg/hibernate/HibernateException;
            0   50     2  lockOptions  Lorg/hibernate/LockOptions;
            1   50     3        cause  Ljava/lang/Throwable;
            3    5     4    converted  Ljavax/persistence/PersistenceException;
            7    9     4    converted  Ljavax/persistence/PersistenceException;
           11   13     4    converted  Ljavax/persistence/PersistenceException;
           15   17     4    converted  Ljavax/persistence/PersistenceException;
           19   21     4    converted  Ljavax/persistence/QueryTimeoutException;
           23   25     4    converted  Ljavax/persistence/EntityNotFoundException;
           27   29     4    converted  Ljavax/persistence/EntityExistsException;
           31   33     4    converted  Ljavax/persistence/NonUniqueResultException;
           35   37     4    converted  Ljavax/persistence/EntityNotFoundException;
           45   46     4           ne  Ljava/lang/Exception;
           48   50     4    converted  Ljavax/persistence/PersistenceException;
      Exception table:
        from    to  target  type
          42    43      44  Class java.lang.Exception
    MethodParameters:
             Name  Flags
      e            
      lockOptions  

  public java.lang.RuntimeException convert(org.hibernate.HibernateException);
    descriptor: (Lorg/hibernate/HibernateException;)Ljava/lang/RuntimeException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.internal.ExceptionConverterImpl this
        start local 1 // org.hibernate.HibernateException e
         0: .line 157
            aload 0 /* this */
            aload 1 /* e */
            aconst_null
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.convert:(Lorg/hibernate/HibernateException;Lorg/hibernate/LockOptions;)Ljava/lang/RuntimeException;
            areturn
        end local 1 // org.hibernate.HibernateException e
        end local 0 // org.hibernate.internal.ExceptionConverterImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/ExceptionConverterImpl;
            0    1     1     e  Lorg/hibernate/HibernateException;
    MethodParameters:
      Name  Flags
      e     

  public java.lang.RuntimeException convert(java.lang.RuntimeException);
    descriptor: (Ljava/lang/RuntimeException;)Ljava/lang/RuntimeException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.internal.ExceptionConverterImpl this
        start local 1 // java.lang.RuntimeException e
         0: .line 162
            aload 1 /* e */
            astore 2 /* result */
        start local 2 // java.lang.RuntimeException result
         1: .line 163
            aload 1 /* e */
            instanceof org.hibernate.HibernateException
            ifeq 4
         2: .line 164
            aload 0 /* this */
            aload 1 /* e */
            checkcast org.hibernate.HibernateException
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.convert:(Lorg/hibernate/HibernateException;)Ljava/lang/RuntimeException;
            astore 2 /* result */
         3: .line 165
            goto 5
         4: .line 167
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.ExceptionConverterImpl.sharedSessionContract:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.markForRollbackOnly:()V
         5: .line 169
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.lang.RuntimeException result
        end local 1 // java.lang.RuntimeException e
        end local 0 // org.hibernate.internal.ExceptionConverterImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/hibernate/internal/ExceptionConverterImpl;
            0    6     1       e  Ljava/lang/RuntimeException;
            1    6     2  result  Ljava/lang/RuntimeException;
    MethodParameters:
      Name  Flags
      e     

  public java.lang.RuntimeException convert(java.lang.RuntimeException, org.hibernate.LockOptions);
    descriptor: (Ljava/lang/RuntimeException;Lorg/hibernate/LockOptions;)Ljava/lang/RuntimeException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.hibernate.internal.ExceptionConverterImpl this
        start local 1 // java.lang.RuntimeException e
        start local 2 // org.hibernate.LockOptions lockOptions
         0: .line 174
            aload 1 /* e */
            astore 3 /* result */
        start local 3 // java.lang.RuntimeException result
         1: .line 175
            aload 1 /* e */
            instanceof org.hibernate.HibernateException
            ifeq 4
         2: .line 176
            aload 0 /* this */
            aload 1 /* e */
            checkcast org.hibernate.HibernateException
            aload 2 /* lockOptions */
            invokevirtual org.hibernate.internal.ExceptionConverterImpl.convert:(Lorg/hibernate/HibernateException;Lorg/hibernate/LockOptions;)Ljava/lang/RuntimeException;
            astore 3 /* result */
         3: .line 177
            goto 5
         4: .line 179
      StackMap locals: java.lang.RuntimeException
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.ExceptionConverterImpl.sharedSessionContract:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.markForRollbackOnly:()V
         5: .line 181
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.lang.RuntimeException result
        end local 2 // org.hibernate.LockOptions lockOptions
        end local 1 // java.lang.RuntimeException e
        end local 0 // org.hibernate.internal.ExceptionConverterImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/hibernate/internal/ExceptionConverterImpl;
            0    6     1            e  Ljava/lang/RuntimeException;
            0    6     2  lockOptions  Lorg/hibernate/LockOptions;
            1    6     3       result  Ljava/lang/RuntimeException;
    MethodParameters:
             Name  Flags
      e            
      lockOptions  

  public org.hibernate.JDBCException convert(java.sql.SQLException, java.lang.String);
    descriptor: (Ljava/sql/SQLException;Ljava/lang/String;)Lorg/hibernate/JDBCException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.internal.ExceptionConverterImpl this
        start local 1 // java.sql.SQLException e
        start local 2 // java.lang.String message
         0: .line 186
            aload 0 /* this */
            getfield org.hibernate.internal.ExceptionConverterImpl.sharedSessionContract:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.getJdbcServices:()Lorg/hibernate/engine/jdbc/spi/JdbcServices;
            invokeinterface org.hibernate.engine.jdbc.spi.JdbcServices.getSqlExceptionHelper:()Lorg/hibernate/engine/jdbc/spi/SqlExceptionHelper;
            aload 1 /* e */
            aload 2 /* message */
            invokevirtual org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert:(Ljava/sql/SQLException;Ljava/lang/String;)Lorg/hibernate/JDBCException;
            areturn
        end local 2 // java.lang.String message
        end local 1 // java.sql.SQLException e
        end local 0 // org.hibernate.internal.ExceptionConverterImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/hibernate/internal/ExceptionConverterImpl;
            0    1     1        e  Ljava/sql/SQLException;
            0    1     2  message  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      e        
      message  

  protected javax.persistence.PersistenceException wrapStaleStateException(org.hibernate.StaleStateException);
    descriptor: (Lorg/hibernate/StaleStateException;)Ljavax/persistence/PersistenceException;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.hibernate.internal.ExceptionConverterImpl this
        start local 1 // org.hibernate.StaleStateException e
         0: .line 191
            aload 1 /* e */
            instanceof org.hibernate.StaleObjectStateException
            ifeq 15
         1: .line 192
            aload 1 /* e */
            checkcast org.hibernate.StaleObjectStateException
            astore 3 /* sose */
        start local 3 // org.hibernate.StaleObjectStateException sose
         2: .line 193
            aload 3 /* sose */
            invokevirtual org.hibernate.StaleObjectStateException.getIdentifier:()Ljava/io/Serializable;
            astore 4 /* identifier */
        start local 4 // java.io.Serializable identifier
         3: .line 194
            aload 4 /* identifier */
            ifnull 13
         4: .line 196
            aload 0 /* this */
            getfield org.hibernate.internal.ExceptionConverterImpl.sharedSessionContract:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            aload 3 /* sose */
            invokevirtual org.hibernate.StaleObjectStateException.getEntityName:()Ljava/lang/String;
            aload 4 /* identifier */
            iconst_0
            iconst_1
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.internalLoad:(Ljava/lang/String;Ljava/io/Serializable;ZZ)Ljava/lang/Object;
            astore 5 /* entity */
        start local 5 // java.lang.Object entity
         5: .line 197
            aload 5 /* entity */
            instanceof java.io.Serializable
            ifeq 8
         6: .line 199
            new javax.persistence.OptimisticLockException
            dup
            aload 1 /* e */
            invokevirtual org.hibernate.StaleStateException.getMessage:()Ljava/lang/String;
            aload 1 /* e */
            aload 5 /* entity */
            invokespecial javax.persistence.OptimisticLockException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/lang/Object;)V
            astore 2 /* pe */
        start local 2 // javax.persistence.PersistenceException pe
         7: .line 200
            goto 16
        end local 2 // javax.persistence.PersistenceException pe
         8: .line 202
      StackMap locals: org.hibernate.internal.ExceptionConverterImpl org.hibernate.StaleStateException top org.hibernate.StaleObjectStateException java.io.Serializable java.lang.Object
      StackMap stack:
            new javax.persistence.OptimisticLockException
            dup
            aload 1 /* e */
            invokevirtual org.hibernate.StaleStateException.getMessage:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial javax.persistence.OptimisticLockException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 2 /* pe */
        end local 5 // java.lang.Object entity
        start local 2 // javax.persistence.PersistenceException pe
         9: .line 204
            goto 16
        end local 2 // javax.persistence.PersistenceException pe
        10: .line 205
      StackMap locals: org.hibernate.internal.ExceptionConverterImpl org.hibernate.StaleStateException top org.hibernate.StaleObjectStateException java.io.Serializable
      StackMap stack: javax.persistence.EntityNotFoundException
            pop
        11: .line 206
            new javax.persistence.OptimisticLockException
            dup
            aload 1 /* e */
            invokevirtual org.hibernate.StaleStateException.getMessage:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial javax.persistence.OptimisticLockException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 2 /* pe */
        start local 2 // javax.persistence.PersistenceException pe
        12: .line 208
            goto 16
        end local 2 // javax.persistence.PersistenceException pe
        13: .line 210
      StackMap locals:
      StackMap stack:
            new javax.persistence.OptimisticLockException
            dup
            aload 1 /* e */
            invokevirtual org.hibernate.StaleStateException.getMessage:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial javax.persistence.OptimisticLockException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 2 /* pe */
        end local 4 // java.io.Serializable identifier
        end local 3 // org.hibernate.StaleObjectStateException sose
        start local 2 // javax.persistence.PersistenceException pe
        14: .line 212
            goto 16
        end local 2 // javax.persistence.PersistenceException pe
        15: .line 214
      StackMap locals: org.hibernate.internal.ExceptionConverterImpl org.hibernate.StaleStateException
      StackMap stack:
            new javax.persistence.OptimisticLockException
            dup
            aload 1 /* e */
            invokevirtual org.hibernate.StaleStateException.getMessage:()Ljava/lang/String;
            aload 1 /* e */
            invokespecial javax.persistence.OptimisticLockException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 2 /* pe */
        start local 2 // javax.persistence.PersistenceException pe
        16: .line 216
      StackMap locals: javax.persistence.PersistenceException
      StackMap stack:
            aload 2 /* pe */
            areturn
        end local 2 // javax.persistence.PersistenceException pe
        end local 1 // org.hibernate.StaleStateException e
        end local 0 // org.hibernate.internal.ExceptionConverterImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lorg/hibernate/internal/ExceptionConverterImpl;
            0   17     1           e  Lorg/hibernate/StaleStateException;
            7    8     2          pe  Ljavax/persistence/PersistenceException;
            9   10     2          pe  Ljavax/persistence/PersistenceException;
           12   13     2          pe  Ljavax/persistence/PersistenceException;
           14   15     2          pe  Ljavax/persistence/PersistenceException;
           16   17     2          pe  Ljavax/persistence/PersistenceException;
            2   14     3        sose  Lorg/hibernate/StaleObjectStateException;
            3   14     4  identifier  Ljava/io/Serializable;
            5    9     5      entity  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           4     9      10  Class javax.persistence.EntityNotFoundException
    MethodParameters:
      Name  Flags
      e     

  protected javax.persistence.PersistenceException wrapLockException(org.hibernate.HibernateException, org.hibernate.LockOptions);
    descriptor: (Lorg/hibernate/HibernateException;Lorg/hibernate/LockOptions;)Ljavax/persistence/PersistenceException;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.hibernate.internal.ExceptionConverterImpl this
        start local 1 // org.hibernate.HibernateException e
        start local 2 // org.hibernate.LockOptions lockOptions
         0: .line 221
            aload 1 /* e */
            instanceof org.hibernate.dialect.lock.OptimisticEntityLockException
            ifeq 4
         1: .line 222
            aload 1 /* e */
            checkcast org.hibernate.dialect.lock.OptimisticEntityLockException
            astore 4 /* lockException */
        start local 4 // org.hibernate.dialect.lock.OptimisticEntityLockException lockException
         2: .line 223
            new javax.persistence.OptimisticLockException
            dup
            aload 4 /* lockException */
            invokevirtual org.hibernate.dialect.lock.OptimisticEntityLockException.getMessage:()Ljava/lang/String;
            aload 4 /* lockException */
            aload 4 /* lockException */
            invokevirtual org.hibernate.dialect.lock.OptimisticEntityLockException.getEntity:()Ljava/lang/Object;
            invokespecial javax.persistence.OptimisticLockException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/lang/Object;)V
            astore 3 /* pe */
        end local 4 // org.hibernate.dialect.lock.OptimisticEntityLockException lockException
        start local 3 // javax.persistence.PersistenceException pe
         3: .line 224
            goto 26
        end local 3 // javax.persistence.PersistenceException pe
         4: .line 225
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof org.hibernate.exception.LockTimeoutException
            ifeq 7
         5: .line 226
            new javax.persistence.LockTimeoutException
            dup
            aload 1 /* e */
            invokevirtual org.hibernate.HibernateException.getMessage:()Ljava/lang/String;
            aload 1 /* e */
            aconst_null
            invokespecial javax.persistence.LockTimeoutException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/lang/Object;)V
            astore 3 /* pe */
        start local 3 // javax.persistence.PersistenceException pe
         6: .line 227
            goto 26
        end local 3 // javax.persistence.PersistenceException pe
         7: .line 228
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof org.hibernate.dialect.lock.PessimisticEntityLockException
            ifeq 18
         8: .line 229
            aload 1 /* e */
            checkcast org.hibernate.dialect.lock.PessimisticEntityLockException
            astore 4 /* lockException */
        start local 4 // org.hibernate.dialect.lock.PessimisticEntityLockException lockException
         9: .line 230
            aload 2 /* lockOptions */
            ifnull 12
            aload 2 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getTimeOut:()I
            iconst_m1
            if_icmple 12
        10: .line 232
            new javax.persistence.LockTimeoutException
            dup
            aload 4 /* lockException */
            invokevirtual org.hibernate.dialect.lock.PessimisticEntityLockException.getMessage:()Ljava/lang/String;
            aload 4 /* lockException */
            aload 4 /* lockException */
            invokevirtual org.hibernate.dialect.lock.PessimisticEntityLockException.getEntity:()Ljava/lang/Object;
            invokespecial javax.persistence.LockTimeoutException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/lang/Object;)V
            astore 3 /* pe */
        start local 3 // javax.persistence.PersistenceException pe
        11: .line 233
            goto 26
        end local 3 // javax.persistence.PersistenceException pe
        12: .line 235
      StackMap locals: org.hibernate.internal.ExceptionConverterImpl org.hibernate.HibernateException org.hibernate.LockOptions top org.hibernate.dialect.lock.PessimisticEntityLockException
      StackMap stack:
            new javax.persistence.PessimisticLockException
            dup
        13: .line 236
            aload 4 /* lockException */
            invokevirtual org.hibernate.dialect.lock.PessimisticEntityLockException.getMessage:()Ljava/lang/String;
        14: .line 237
            aload 4 /* lockException */
        15: .line 238
            aload 4 /* lockException */
            invokevirtual org.hibernate.dialect.lock.PessimisticEntityLockException.getEntity:()Ljava/lang/Object;
        16: .line 235
            invokespecial javax.persistence.PessimisticLockException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/lang/Object;)V
            astore 3 /* pe */
        end local 4 // org.hibernate.dialect.lock.PessimisticEntityLockException lockException
        start local 3 // javax.persistence.PersistenceException pe
        17: .line 241
            goto 26
        end local 3 // javax.persistence.PersistenceException pe
        18: .line 242
      StackMap locals: org.hibernate.internal.ExceptionConverterImpl org.hibernate.HibernateException org.hibernate.LockOptions
      StackMap stack:
            aload 1 /* e */
            instanceof org.hibernate.PessimisticLockException
            ifeq 25
        19: .line 243
            aload 1 /* e */
            checkcast org.hibernate.PessimisticLockException
            astore 4 /* jdbcLockException */
        start local 4 // org.hibernate.PessimisticLockException jdbcLockException
        20: .line 244
            aload 2 /* lockOptions */
            ifnull 23
            aload 2 /* lockOptions */
            invokevirtual org.hibernate.LockOptions.getTimeOut:()I
            iconst_m1
            if_icmple 23
        21: .line 246
            new javax.persistence.LockTimeoutException
            dup
            aload 4 /* jdbcLockException */
            invokevirtual org.hibernate.PessimisticLockException.getMessage:()Ljava/lang/String;
            aload 4 /* jdbcLockException */
            aconst_null
            invokespecial javax.persistence.LockTimeoutException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/lang/Object;)V
            astore 3 /* pe */
        start local 3 // javax.persistence.PersistenceException pe
        22: .line 247
            goto 26
        end local 3 // javax.persistence.PersistenceException pe
        23: .line 249
      StackMap locals: org.hibernate.internal.ExceptionConverterImpl org.hibernate.HibernateException org.hibernate.LockOptions top org.hibernate.PessimisticLockException
      StackMap stack:
            new javax.persistence.PessimisticLockException
            dup
            aload 4 /* jdbcLockException */
            invokevirtual org.hibernate.PessimisticLockException.getMessage:()Ljava/lang/String;
            aload 4 /* jdbcLockException */
            aconst_null
            invokespecial javax.persistence.PessimisticLockException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;Ljava/lang/Object;)V
            astore 3 /* pe */
        end local 4 // org.hibernate.PessimisticLockException jdbcLockException
        start local 3 // javax.persistence.PersistenceException pe
        24: .line 251
            goto 26
        end local 3 // javax.persistence.PersistenceException pe
        25: .line 253
      StackMap locals: org.hibernate.internal.ExceptionConverterImpl org.hibernate.HibernateException org.hibernate.LockOptions
      StackMap stack:
            new javax.persistence.OptimisticLockException
            dup
            aload 1 /* e */
            invokespecial javax.persistence.OptimisticLockException.<init>:(Ljava/lang/Throwable;)V
            astore 3 /* pe */
        start local 3 // javax.persistence.PersistenceException pe
        26: .line 255
      StackMap locals: javax.persistence.PersistenceException
      StackMap stack:
            aload 3 /* pe */
            areturn
        end local 3 // javax.persistence.PersistenceException pe
        end local 2 // org.hibernate.LockOptions lockOptions
        end local 1 // org.hibernate.HibernateException e
        end local 0 // org.hibernate.internal.ExceptionConverterImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lorg/hibernate/internal/ExceptionConverterImpl;
            0   27     1                  e  Lorg/hibernate/HibernateException;
            0   27     2        lockOptions  Lorg/hibernate/LockOptions;
            3    4     3                 pe  Ljavax/persistence/PersistenceException;
            6    7     3                 pe  Ljavax/persistence/PersistenceException;
           11   12     3                 pe  Ljavax/persistence/PersistenceException;
           17   18     3                 pe  Ljavax/persistence/PersistenceException;
           22   23     3                 pe  Ljavax/persistence/PersistenceException;
           24   25     3                 pe  Ljavax/persistence/PersistenceException;
           26   27     3                 pe  Ljavax/persistence/PersistenceException;
            2    3     4      lockException  Lorg/hibernate/dialect/lock/OptimisticEntityLockException;
            9   17     4      lockException  Lorg/hibernate/dialect/lock/PessimisticEntityLockException;
           20   24     4  jdbcLockException  Lorg/hibernate/PessimisticLockException;
    MethodParameters:
             Name  Flags
      e            
      lockOptions  

  private void handlePersistenceException(javax.persistence.PersistenceException);
    descriptor: (Ljavax/persistence/PersistenceException;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.hibernate.internal.ExceptionConverterImpl this
        start local 1 // javax.persistence.PersistenceException e
         0: .line 259
            aload 1 /* e */
            instanceof javax.persistence.NoResultException
            ifeq 2
         1: .line 260
            return
         2: .line 262
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof javax.persistence.NonUniqueResultException
            ifeq 4
         3: .line 263
            return
         4: .line 265
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof javax.persistence.LockTimeoutException
            ifeq 6
         5: .line 266
            return
         6: .line 268
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            instanceof javax.persistence.QueryTimeoutException
            ifeq 8
         7: .line 269
            return
         8: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.internal.ExceptionConverterImpl.sharedSessionContract:Lorg/hibernate/engine/spi/SharedSessionContractImplementor;
            invokeinterface org.hibernate.engine.spi.SharedSessionContractImplementor.markForRollbackOnly:()V
         9: .line 274
            goto 12
        10: .line 275
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* ne */
        start local 2 // java.lang.Exception ne
        11: .line 277
            getstatic org.hibernate.internal.ExceptionConverterImpl.log:Lorg/hibernate/internal/EntityManagerMessageLogger;
            aload 2 /* ne */
            invokeinterface org.hibernate.internal.EntityManagerMessageLogger.unableToMarkForRollbackOnPersistenceException:(Ljava/lang/Exception;)V
        end local 2 // java.lang.Exception ne
        12: .line 279
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.persistence.PersistenceException e
        end local 0 // org.hibernate.internal.ExceptionConverterImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lorg/hibernate/internal/ExceptionConverterImpl;
            0   13     1     e  Ljavax/persistence/PersistenceException;
           11   12     2    ne  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           8     9      10  Class java.lang.Exception
    MethodParameters:
      Name  Flags
      e     
}
SourceFile: "ExceptionConverterImpl.java"