class io.vertx.sqlclient.impl.TransactionImpl implements io.vertx.sqlclient.Transaction
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.vertx.sqlclient.impl.TransactionImpl
super_class: java.lang.Object
{
private static final int ST_BEGIN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int ST_PENDING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int ST_PROCESSING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int ST_COMPLETED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private final io.vertx.core.impl.ContextInternal context;
descriptor: Lio/vertx/core/impl/ContextInternal;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.vertx.sqlclient.impl.Connection connection;
descriptor: Lio/vertx/sqlclient/impl/Connection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Deque<io.vertx.sqlclient.impl.command.CommandBase<?>> pending;
descriptor: Ljava/util/Deque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Deque<Lio/vertx/sqlclient/impl/command/CommandBase<*>;>;
private int status;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final io.vertx.core.Promise<java.lang.Void> completion;
descriptor: Lio/vertx/core/Promise;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lio/vertx/core/Promise<Ljava/lang/Void;>;
private static volatile int[] $SWITCH_TABLE$io$vertx$sqlclient$impl$command$TxCommand$Kind;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
void <init>(io.vertx.core.impl.ContextInternal, io.vertx.sqlclient.impl.Connection);
descriptor: (Lio/vertx/core/impl/ContextInternal;Lio/vertx/sqlclient/impl/Connection;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield io.vertx.sqlclient.impl.TransactionImpl.pending:Ljava/util/Deque;
2: aload 0
iconst_0
putfield io.vertx.sqlclient.impl.TransactionImpl.status:I
3: aload 0
aload 1
putfield io.vertx.sqlclient.impl.TransactionImpl.context:Lio/vertx/core/impl/ContextInternal;
4: aload 0
aload 2
putfield io.vertx.sqlclient.impl.TransactionImpl.connection:Lio/vertx/sqlclient/impl/Connection;
5: aload 0
aload 1
invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
putfield io.vertx.sqlclient.impl.TransactionImpl.completion:Lio/vertx/core/Promise;
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 7 1 context Lio/vertx/core/impl/ContextInternal;
0 7 2 connection Lio/vertx/sqlclient/impl/Connection;
MethodParameters:
Name Flags
context
connection
io.vertx.core.Future<io.vertx.sqlclient.Transaction> begin();
descriptor: ()Lio/vertx/core/Future;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.context:Lio/vertx/core/impl/ContextInternal;
aload 0
invokedynamic handle(Lio/vertx/sqlclient/impl/TransactionImpl;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/sqlclient/impl/TransactionImpl.afterBegin(Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.core.impl.ContextInternal.promise:(Lio/vertx/core/Handler;)Lio/vertx/core/impl/future/PromiseInternal;
astore 1
start local 1 1: new io.vertx.sqlclient.impl.command.TxCommand
dup
getstatic io.vertx.sqlclient.impl.command.TxCommand$Kind.BEGIN:Lio/vertx/sqlclient/impl/command/TxCommand$Kind;
aload 0
invokespecial io.vertx.sqlclient.impl.command.TxCommand.<init>:(Lio/vertx/sqlclient/impl/command/TxCommand$Kind;Ljava/lang/Object;)V
astore 3
start local 3 2: aload 3
aload 0
aload 1
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.wrap:(Lio/vertx/core/Promise;)Lio/vertx/core/Handler;
putfield io.vertx.sqlclient.impl.command.TxCommand.handler:Lio/vertx/core/Handler;
3: aload 0
aload 3
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.execute:(Lio/vertx/sqlclient/impl/command/CommandBase;)V
4: aload 1
invokeinterface io.vertx.core.impl.future.PromiseInternal.future:()Lio/vertx/core/Future;
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
1 5 1 promise Lio/vertx/core/impl/future/PromiseInternal<Lio/vertx/sqlclient/Transaction;>;
2 5 3 begin Lio/vertx/sqlclient/impl/command/TxCommand<Lio/vertx/sqlclient/Transaction;>;
Signature: ()Lio/vertx/core/Future<Lio/vertx/sqlclient/Transaction;>;
private <R> void execute(io.vertx.sqlclient.impl.command.CommandBase<R>);
descriptor: (Lio/vertx/sqlclient/impl/command/CommandBase;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.connection:Lio/vertx/sqlclient/impl/Connection;
aload 1
aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.context:Lio/vertx/core/impl/ContextInternal;
aload 1
getfield io.vertx.sqlclient.impl.command.CommandBase.handler:Lio/vertx/core/Handler;
invokeinterface io.vertx.core.impl.ContextInternal.promise:(Lio/vertx/core/Handler;)Lio/vertx/core/impl/future/PromiseInternal;
invokeinterface io.vertx.sqlclient.impl.Connection.schedule:(Lio/vertx/sqlclient/impl/command/CommandBase;Lio/vertx/core/Promise;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 2 1 cmd Lio/vertx/sqlclient/impl/command/CommandBase<TR;>;
Signature: <R:Ljava/lang/Object;>(Lio/vertx/sqlclient/impl/command/CommandBase<TR;>;)V
MethodParameters:
Name Flags
cmd
private <T> io.vertx.core.Handler<io.vertx.core.AsyncResult<T>> wrap(io.vertx.core.Promise<T>);
descriptor: (Lio/vertx/core/Promise;)Lio/vertx/core/Handler;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokedynamic handle(Lio/vertx/sqlclient/impl/TransactionImpl;Lio/vertx/core/Promise;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/sqlclient/impl/TransactionImpl.lambda$1(Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 1 1 handler Lio/vertx/core/Promise<TT;>;
Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Promise<TT;>;)Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;
MethodParameters:
Name Flags
handler
private synchronized void afterBegin(io.vertx.core.AsyncResult<io.vertx.sqlclient.Transaction>);
descriptor: (Lio/vertx/core/AsyncResult;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
ifeq 3
1: aload 0
iconst_1
putfield io.vertx.sqlclient.impl.TransactionImpl.status:I
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
iconst_3
putfield io.vertx.sqlclient.impl.TransactionImpl.status:I
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.checkPending:()V
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 6 1 ar Lio/vertx/core/AsyncResult<Lio/vertx/sqlclient/Transaction;>;
Signature: (Lio/vertx/core/AsyncResult<Lio/vertx/sqlclient/Transaction;>;)V
MethodParameters:
Name Flags
ar
private void checkPending();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
1: aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.status:I
tableswitch { // 1 - 3
1: 2
2: 12
3: 8
default: 12
}
2: StackMap locals: io.vertx.sqlclient.impl.TransactionImpl top io.vertx.sqlclient.impl.TransactionImpl
StackMap stack:
aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.pending:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
checkcast io.vertx.sqlclient.impl.command.CommandBase
astore 1
start local 1 3: aload 1
ifnull 6
4: aload 0
iconst_2
putfield io.vertx.sqlclient.impl.TransactionImpl.status:I
5: aload 0
aload 1
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.execute:(Lio/vertx/sqlclient/impl/command/CommandBase;)V
6: StackMap locals: io.vertx.sqlclient.impl.TransactionImpl io.vertx.sqlclient.impl.command.CommandBase io.vertx.sqlclient.impl.TransactionImpl
StackMap stack:
aload 2
monitorexit
7: return
end local 1 8: StackMap locals: io.vertx.sqlclient.impl.TransactionImpl top io.vertx.sqlclient.impl.TransactionImpl
StackMap stack:
aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.pending:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
checkcast io.vertx.sqlclient.impl.command.CommandBase
astore 1
start local 1 9: aload 1
ifnonnull 14
10: aload 2
monitorexit
11: return
end local 1 12: StackMap locals:
StackMap stack:
aload 2
monitorexit
13: return
start local 1 14: StackMap locals: io.vertx.sqlclient.impl.TransactionImpl io.vertx.sqlclient.impl.command.CommandBase io.vertx.sqlclient.impl.TransactionImpl
StackMap stack:
aload 2
monitorexit
15: goto 18
end local 1 StackMap locals: io.vertx.sqlclient.impl.TransactionImpl top io.vertx.sqlclient.impl.TransactionImpl
StackMap stack: java.lang.Throwable
16: aload 2
monitorexit
17: athrow
start local 1 18: StackMap locals: io.vertx.sqlclient.impl.TransactionImpl io.vertx.sqlclient.impl.command.CommandBase
StackMap stack:
new io.vertx.core.VertxException
dup
ldc "Transaction already completed"
iconst_0
invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;Z)V
astore 2
start local 2 19: aload 1
aload 2
invokevirtual io.vertx.sqlclient.impl.command.CommandBase.fail:(Ljava/lang/Throwable;)V
end local 2 end local 1 20: goto 0
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
3 8 1 cmd Lio/vertx/sqlclient/impl/command/CommandBase<*>;
9 12 1 cmd Lio/vertx/sqlclient/impl/command/CommandBase<*>;
14 16 1 cmd Lio/vertx/sqlclient/impl/command/CommandBase<*>;
18 20 1 cmd Lio/vertx/sqlclient/impl/command/CommandBase<*>;
19 20 2 err Lio/vertx/core/VertxException;
Exception table:
from to target type
1 7 16 any
8 11 16 any
12 13 16 any
14 15 16 any
16 17 16 any
public <R> void schedule(io.vertx.sqlclient.impl.command.CommandBase<R>, io.vertx.core.Promise<R>);
descriptor: (Lio/vertx/sqlclient/impl/command/CommandBase;Lio/vertx/core/Promise;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
aload 2
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.wrap:(Lio/vertx/core/Promise;)Lio/vertx/core/Handler;
putfield io.vertx.sqlclient.impl.command.CommandBase.handler:Lio/vertx/core/Handler;
1: aload 0
aload 1
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.schedule:(Lio/vertx/sqlclient/impl/command/CommandBase;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 3 1 cmd Lio/vertx/sqlclient/impl/command/CommandBase<TR;>;
0 3 2 handler Lio/vertx/core/Promise<TR;>;
Signature: <R:Ljava/lang/Object;>(Lio/vertx/sqlclient/impl/command/CommandBase<TR;>;Lio/vertx/core/Promise<TR;>;)V
MethodParameters:
Name Flags
cmd
handler
public <R> void schedule(io.vertx.sqlclient.impl.command.CommandBase<R>);
descriptor: (Lio/vertx/sqlclient/impl/command/CommandBase;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.pending:Ljava/util/Deque;
aload 1
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
2: aload 2
monitorexit
3: goto 6
StackMap locals: io.vertx.sqlclient.impl.TransactionImpl io.vertx.sqlclient.impl.command.CommandBase io.vertx.sqlclient.impl.TransactionImpl
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.checkPending:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 8 1 b Lio/vertx/sqlclient/impl/command/CommandBase<TR;>;
Exception table:
from to target type
1 3 4 any
4 5 4 any
Signature: <R:Ljava/lang/Object;>(Lio/vertx/sqlclient/impl/command/CommandBase<TR;>;)V
MethodParameters:
Name Flags
b
public io.vertx.core.Future<java.lang.Void> commit();
descriptor: ()Lio/vertx/core/Future;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.context:Lio/vertx/core/impl/ContextInternal;
invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
astore 1
start local 1 1: aload 0
getstatic io.vertx.sqlclient.impl.command.TxCommand$Kind.COMMIT:Lio/vertx/sqlclient/impl/command/TxCommand$Kind;
aload 1
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.txCommand:(Lio/vertx/sqlclient/impl/command/TxCommand$Kind;Lio/vertx/core/Promise;)Lio/vertx/sqlclient/impl/command/TxCommand;
astore 2
start local 2 2: aload 0
aload 2
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.schedule:(Lio/vertx/sqlclient/impl/command/CommandBase;)V
3: aload 1
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
1 4 1 promise Lio/vertx/core/Promise<Ljava/lang/Void;>;
2 4 2 commit Lio/vertx/sqlclient/impl/command/CommandBase<Ljava/lang/Void;>;
Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;
public void commit(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
descriptor: (Lio/vertx/core/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.commit:()Lio/vertx/core/Future;
astore 2
start local 2 1: aload 1
ifnull 3
2: aload 2
aload 1
invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
pop
3: StackMap locals: io.vertx.core.Future
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 4 1 handler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
1 4 2 fut Lio/vertx/core/Future<Ljava/lang/Void;>;
Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
MethodParameters:
Name Flags
handler
public io.vertx.core.Future<java.lang.Void> rollback();
descriptor: ()Lio/vertx/core/Future;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.context:Lio/vertx/core/impl/ContextInternal;
invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
astore 1
start local 1 1: aload 0
getstatic io.vertx.sqlclient.impl.command.TxCommand$Kind.ROLLBACK:Lio/vertx/sqlclient/impl/command/TxCommand$Kind;
aload 1
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.txCommand:(Lio/vertx/sqlclient/impl/command/TxCommand$Kind;Lio/vertx/core/Promise;)Lio/vertx/sqlclient/impl/command/TxCommand;
astore 2
start local 2 2: aload 0
dup
astore 3
monitorenter
3: aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.pending:Ljava/util/Deque;
aload 2
invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
4: aload 3
monitorexit
5: goto 8
StackMap locals: io.vertx.sqlclient.impl.TransactionImpl io.vertx.core.Promise io.vertx.sqlclient.impl.command.TxCommand io.vertx.sqlclient.impl.TransactionImpl
StackMap stack: java.lang.Throwable
6: aload 3
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.checkPending:()V
9: aload 1
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
1 10 1 promise Lio/vertx/core/Promise<Ljava/lang/Void;>;
2 10 2 rollback Lio/vertx/sqlclient/impl/command/TxCommand<Ljava/lang/Void;>;
Exception table:
from to target type
3 5 6 any
6 7 6 any
Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;
public void rollback(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
descriptor: (Lio/vertx/core/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.rollback:()Lio/vertx/core/Future;
astore 2
start local 2 1: aload 1
ifnull 3
2: aload 2
aload 1
invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
pop
3: StackMap locals: io.vertx.core.Future
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 4 1 handler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
1 4 2 fut Lio/vertx/core/Future<Ljava/lang/Void;>;
Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
MethodParameters:
Name Flags
handler
private io.vertx.sqlclient.impl.command.TxCommand<java.lang.Void> txCommand(io.vertx.sqlclient.impl.command.TxCommand$Kind, io.vertx.core.Promise<java.lang.Void>);
descriptor: (Lio/vertx/sqlclient/impl/command/TxCommand$Kind;Lio/vertx/core/Promise;)Lio/vertx/sqlclient/impl/command/TxCommand;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new io.vertx.sqlclient.impl.command.TxCommand
dup
aload 1
aconst_null
invokespecial io.vertx.sqlclient.impl.command.TxCommand.<init>:(Lio/vertx/sqlclient/impl/command/TxCommand$Kind;Ljava/lang/Object;)V
astore 3
start local 3 1: aload 3
aload 0
aload 1
aload 2
invokedynamic handle(Lio/vertx/sqlclient/impl/TransactionImpl;Lio/vertx/sqlclient/impl/command/TxCommand$Kind;Lio/vertx/core/Promise;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/sqlclient/impl/TransactionImpl.lambda$3(Lio/vertx/sqlclient/impl/command/TxCommand$Kind;Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
putfield io.vertx.sqlclient.impl.command.TxCommand.handler:Lio/vertx/core/Handler;
2: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 3 1 kind Lio/vertx/sqlclient/impl/command/TxCommand$Kind;
0 3 2 promise Lio/vertx/core/Promise<Ljava/lang/Void;>;
1 3 3 cmd Lio/vertx/sqlclient/impl/command/TxCommand<Ljava/lang/Void;>;
Signature: (Lio/vertx/sqlclient/impl/command/TxCommand$Kind;Lio/vertx/core/Promise<Ljava/lang/Void;>;)Lio/vertx/sqlclient/impl/command/TxCommand<Ljava/lang/Void;>;
MethodParameters:
Name Flags
kind
promise
private void tryComplete(io.vertx.sqlclient.impl.command.TxCommand$Kind);
descriptor: (Lio/vertx/sqlclient/impl/command/TxCommand$Kind;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.status:I
iconst_3
if_icmpne 4
2: aload 2
monitorexit
3: return
4: StackMap locals: io.vertx.sqlclient.impl.TransactionImpl
StackMap stack:
aload 0
iconst_3
putfield io.vertx.sqlclient.impl.TransactionImpl.status:I
5: aload 2
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
invokestatic io.vertx.sqlclient.impl.TransactionImpl.$SWITCH_TABLE$io$vertx$sqlclient$impl$command$TxCommand$Kind:()[I
aload 1
invokevirtual io.vertx.sqlclient.impl.command.TxCommand$Kind.ordinal:()I
iaload
tableswitch { // 2 - 3
2: 12
3: 10
default: 13
}
10: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.completion:Lio/vertx/core/Promise;
invokeinterface io.vertx.core.Promise.complete:()V
11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.completion:Lio/vertx/core/Promise;
getstatic io.vertx.sqlclient.TransactionRollbackException.INSTANCE:Lio/vertx/sqlclient/TransactionRollbackException;
invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
13: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.checkPending:()V
14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 15 1 kind Lio/vertx/sqlclient/impl/command/TxCommand$Kind;
Exception table:
from to target type
1 3 7 any
4 6 7 any
7 8 7 any
Signature: (Lio/vertx/sqlclient/impl/command/TxCommand$Kind;)V
MethodParameters:
Name Flags
kind
public void completion(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
descriptor: (Lio/vertx/core/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.completion:Lio/vertx/core/Promise;
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
aload 1
invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 2 1 handler Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
MethodParameters:
Name Flags
handler
public io.vertx.core.Future<java.lang.Void> completion();
descriptor: ()Lio/vertx/core/Future;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.completion:Lio/vertx/core/Promise;
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;
static int[] $SWITCH_TABLE$io$vertx$sqlclient$impl$command$TxCommand$Kind();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic io.vertx.sqlclient.impl.TransactionImpl.$SWITCH_TABLE$io$vertx$sqlclient$impl$command$TxCommand$Kind:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic io.vertx.sqlclient.impl.command.TxCommand$Kind.values:()[Lio/vertx/sqlclient/impl/command/TxCommand$Kind;
arraylength
newarray 10
astore 0
2: aload 0
getstatic io.vertx.sqlclient.impl.command.TxCommand$Kind.BEGIN:Lio/vertx/sqlclient/impl/command/TxCommand$Kind;
invokevirtual io.vertx.sqlclient.impl.command.TxCommand$Kind.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic io.vertx.sqlclient.impl.command.TxCommand$Kind.COMMIT:Lio/vertx/sqlclient/impl/command/TxCommand$Kind;
invokevirtual io.vertx.sqlclient.impl.command.TxCommand$Kind.ordinal:()I
iconst_3
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic io.vertx.sqlclient.impl.command.TxCommand$Kind.ROLLBACK:Lio/vertx/sqlclient/impl/command/TxCommand$Kind;
invokevirtual io.vertx.sqlclient.impl.command.TxCommand$Kind.ordinal:()I
iconst_2
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
dup
putstatic io.vertx.sqlclient.impl.TransactionImpl.$SWITCH_TABLE$io$vertx$sqlclient$impl$command$TxCommand$Kind:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
private void lambda$1(io.vertx.core.Promise, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 2 0: aload 0
dup
astore 3
monitorenter
1: aload 0
getfield io.vertx.sqlclient.impl.TransactionImpl.status:I
iconst_2
if_icmpne 3
2: aload 0
iconst_1
putfield io.vertx.sqlclient.impl.TransactionImpl.status:I
3: StackMap locals: io.vertx.sqlclient.impl.TransactionImpl
StackMap stack:
aload 3
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 3
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
aload 2
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 10
8: aload 0
aload 1
aload 2
invokedynamic handle(Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/sqlclient/impl/TransactionImpl.lambda$2(Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;Lio/vertx/core/AsyncResult;)V (6)
(Lio/vertx/core/AsyncResult;)V
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.rollback:(Lio/vertx/core/Handler;)V
9: goto 12
10: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface io.vertx.core.Promise.handle:(Lio/vertx/core/AsyncResult;)V
11: aload 0
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.checkPending:()V
12: StackMap locals:
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 13 2 ar Lio/vertx/core/AsyncResult<TT;>;
Exception table:
from to target type
1 4 5 any
5 6 5 any
private void lambda$3(io.vertx.sqlclient.impl.command.TxCommand$Kind, io.vertx.core.Promise, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/sqlclient/impl/command/TxCommand$Kind;Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 3 0: aload 0
aload 1
invokevirtual io.vertx.sqlclient.impl.TransactionImpl.tryComplete:(Lio/vertx/sqlclient/impl/command/TxCommand$Kind;)V
1: aload 2
aload 3
invokeinterface io.vertx.core.Promise.handle:(Lio/vertx/core/AsyncResult;)V
2: return
end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/sqlclient/impl/TransactionImpl;
0 3 3 ar Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;
private static void lambda$2(io.vertx.core.Promise, io.vertx.core.AsyncResult, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;Lio/vertx/core/AsyncResult;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 2 0: aload 0
aload 1
invokeinterface io.vertx.core.Promise.handle:(Lio/vertx/core/AsyncResult;)V
1: return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 2 2 a Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;
}
SourceFile: "TransactionImpl.java"
InnerClasses:
public final Kind = io.vertx.sqlclient.impl.command.TxCommand$Kind of io.vertx.sqlclient.impl.command.TxCommand
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles