class org.hibernate.internal.SessionImpl$3 implements org.hibernate.jdbc.WorkExecutorVisitable<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.hibernate.internal.SessionImpl$3
  super_class: java.lang.Object
{
  final org.hibernate.internal.SessionImpl this$0;
    descriptor: Lorg/hibernate/internal/SessionImpl;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private final org.hibernate.jdbc.ReturningWork val$work;
    descriptor: Lorg/hibernate/jdbc/ReturningWork;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  void <init>(org.hibernate.internal.SessionImpl, org.hibernate.jdbc.ReturningWork);
    descriptor: (Lorg/hibernate/internal/SessionImpl;Lorg/hibernate/jdbc/ReturningWork;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl$3 this
         0: .line 2393
            aload 0 /* this */
            aload 1
            putfield org.hibernate.internal.SessionImpl$3.this$0:Lorg/hibernate/internal/SessionImpl;
            aload 0 /* this */
            aload 2
            putfield org.hibernate.internal.SessionImpl$3.val$work:Lorg/hibernate/jdbc/ReturningWork;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.hibernate.internal.SessionImpl$3 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/internal/SessionImpl$3;
    MethodParameters:
          Name  Flags
      this$0    final
      val$work  final

  public T accept(org.hibernate.jdbc.WorkExecutor<T>, java.sql.Connection);
    descriptor: (Lorg/hibernate/jdbc/WorkExecutor;Ljava/sql/Connection;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.internal.SessionImpl$3 this
        start local 1 // org.hibernate.jdbc.WorkExecutor workExecutor
        start local 2 // java.sql.Connection connection
         0: .line 2396
            aload 1 /* workExecutor */
            aload 0 /* this */
            getfield org.hibernate.internal.SessionImpl$3.val$work:Lorg/hibernate/jdbc/ReturningWork;
            aload 2 /* connection */
            invokevirtual org.hibernate.jdbc.WorkExecutor.executeReturningWork:(Lorg/hibernate/jdbc/ReturningWork;Ljava/sql/Connection;)Ljava/lang/Object;
            areturn
        end local 2 // java.sql.Connection connection
        end local 1 // org.hibernate.jdbc.WorkExecutor workExecutor
        end local 0 // org.hibernate.internal.SessionImpl$3 this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/hibernate/internal/SessionImpl$3;
            0    1     1  workExecutor  Lorg/hibernate/jdbc/WorkExecutor<TT;>;
            0    1     2    connection  Ljava/sql/Connection;
    Exceptions:
      throws java.sql.SQLException
    Signature: (Lorg/hibernate/jdbc/WorkExecutor<TT;>;Ljava/sql/Connection;)TT;
    MethodParameters:
              Name  Flags
      workExecutor  
      connection    
}
Signature: Ljava/lang/Object;Lorg/hibernate/jdbc/WorkExecutorVisitable<TT;>;
SourceFile: "SessionImpl.java"
EnclosingMethod: org.hibernate.internal.SessionImpl.doReturningWork:(Lorg/hibernate/jdbc/ReturningWork;)Ljava/lang/Object;
NestHost: org.hibernate.internal.SessionImpl
InnerClasses:
  org.hibernate.internal.SessionImpl$3