class org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier implements reactor.core.CoreSubscriber<T>, org.reactivestreams.Subscription, org.reactivestreams.Publisher<T>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier
super_class: java.lang.Object
{
private final org.springframework.http.server.reactive.ChannelSendOperator<T>.WriteCompletionBarrier writeCompletionBarrier;
descriptor: Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteCompletionBarrier;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/springframework/http/server/reactive/ChannelSendOperator<TT;>.WriteCompletionBarrier;
private org.reactivestreams.Subscription subscription;
descriptor: Lorg/reactivestreams/Subscription;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private T item;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Signature: TT;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private java.lang.Throwable error;
descriptor: Ljava/lang/Throwable;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
private boolean completed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private long demandBeforeReadyToWrite;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private org.springframework.http.server.reactive.ChannelSendOperator$State state;
descriptor: Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
private org.reactivestreams.Subscriber<? super T> writeSubscriber;
descriptor: Lorg/reactivestreams/Subscriber;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/reactivestreams/Subscriber<-TT;>;
RuntimeVisibleAnnotations:
org.springframework.lang.Nullable()
final org.springframework.http.server.reactive.ChannelSendOperator this$0;
descriptor: Lorg/springframework/http/server/reactive/ChannelSendOperator;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(reactor.core.CoreSubscriber<? super java.lang.Void>);
descriptor: (Lorg/springframework/http/server/reactive/ChannelSendOperator;Lreactor/core/CoreSubscriber;)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.this$0:Lorg/springframework/http/server/reactive/ChannelSendOperator;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.completed:Z
2: aload 0
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.NEW:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
3: aload 0
new org.springframework.http.server.reactive.ChannelSendOperator$WriteCompletionBarrier
dup
aload 1
aload 2
aload 0
invokespecial org.springframework.http.server.reactive.ChannelSendOperator$WriteCompletionBarrier.<init>:(Lorg/springframework/http/server/reactive/ChannelSendOperator;Lreactor/core/CoreSubscriber;Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteBarrier;)V
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeCompletionBarrier:Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteCompletionBarrier;
4: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteBarrier;
0 5 2 completionSubscriber Lreactor/core/CoreSubscriber<-Ljava/lang/Void;>;
Signature: (Lreactor/core/CoreSubscriber<-Ljava/lang/Void;>;)V
MethodParameters:
Name Flags
this$0 final
completionSubscriber
public final void onSubscribe(org.reactivestreams.Subscription);
descriptor: (Lorg/reactivestreams/Subscription;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.subscription:Lorg/reactivestreams/Subscription;
aload 1
invokestatic reactor.core.publisher.Operators.validate:(Lorg/reactivestreams/Subscription;Lorg/reactivestreams/Subscription;)Z
ifeq 4
1: aload 0
aload 1
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.subscription:Lorg/reactivestreams/Subscription;
2: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeCompletionBarrier:Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteCompletionBarrier;
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteCompletionBarrier.connect:()V
3: aload 1
lconst_1
invokeinterface org.reactivestreams.Subscription.request:(J)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteBarrier;
0 5 1 s Lorg/reactivestreams/Subscription;
MethodParameters:
Name Flags
s
public final void onNext();
descriptor: (Ljava/lang/Object;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.READY_TO_WRITE:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
if_acmpne 3
1: aload 0
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.requiredWriteSubscriber:()Lorg/reactivestreams/Subscriber;
aload 1
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
4: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.READY_TO_WRITE:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
if_acmpne 7
5: aload 0
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.requiredWriteSubscriber:()Lorg/reactivestreams/Subscriber;
aload 1
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
6: goto 15
7: StackMap locals: org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier
StackMap stack:
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.NEW:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
if_acmpne 12
8: aload 0
aload 1
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.item:Ljava/lang/Object;
9: aload 0
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.FIRST_SIGNAL_RECEIVED:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
10: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.this$0:Lorg/springframework/http/server/reactive/ChannelSendOperator;
getfield org.springframework.http.server.reactive.ChannelSendOperator.writeFunction:Ljava/util/function/Function;
aload 0
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.reactivestreams.Publisher
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeCompletionBarrier:Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteCompletionBarrier;
invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
11: goto 15
12: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.subscription:Lorg/reactivestreams/Subscription;
ifnull 14
13: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.subscription:Lorg/reactivestreams/Subscription;
invokeinterface org.reactivestreams.Subscription.cancel:()V
14: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeCompletionBarrier:Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteCompletionBarrier;
new java.lang.IllegalStateException
dup
ldc "Unexpected item."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteCompletionBarrier.onError:(Ljava/lang/Throwable;)V
15: StackMap locals:
StackMap stack:
aload 2
monitorexit
16: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
17: aload 2
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteBarrier;
0 20 1 item TT;
Exception table:
from to target type
4 16 17 any
17 18 17 any
Signature: (TT;)V
MethodParameters:
Name Flags
item
private org.reactivestreams.Subscriber<? super T> requiredWriteSubscriber();
descriptor: ()Lorg/reactivestreams/Subscriber;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeSubscriber:Lorg/reactivestreams/Subscriber;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "No write subscriber"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
3: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeSubscriber:Lorg/reactivestreams/Subscriber;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteBarrier;
Signature: ()Lorg/reactivestreams/Subscriber<-TT;>;
public final void onError(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.READY_TO_WRITE:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
if_acmpne 3
1: aload 0
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.requiredWriteSubscriber:()Lorg/reactivestreams/Subscriber;
aload 1
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
4: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.READY_TO_WRITE:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
if_acmpne 7
5: aload 0
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.requiredWriteSubscriber:()Lorg/reactivestreams/Subscriber;
aload 1
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
6: goto 12
7: StackMap locals: org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier
StackMap stack:
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.NEW:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
if_acmpne 11
8: aload 0
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.FIRST_SIGNAL_RECEIVED:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
9: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeCompletionBarrier:Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteCompletionBarrier;
aload 1
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteCompletionBarrier.onError:(Ljava/lang/Throwable;)V
10: goto 12
11: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.error:Ljava/lang/Throwable;
12: StackMap locals:
StackMap stack:
aload 2
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteBarrier;
0 17 1 ex Ljava/lang/Throwable;
Exception table:
from to target type
4 13 14 any
14 15 14 any
MethodParameters:
Name Flags
ex
public final void onComplete();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.READY_TO_WRITE:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
if_acmpne 3
1: aload 0
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.requiredWriteSubscriber:()Lorg/reactivestreams/Subscriber;
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
2: return
3: StackMap locals:
StackMap stack:
aload 0
dup
astore 1
monitorenter
4: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.READY_TO_WRITE:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
if_acmpne 7
5: aload 0
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.requiredWriteSubscriber:()Lorg/reactivestreams/Subscriber;
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
6: goto 13
7: StackMap locals: org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier
StackMap stack:
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.NEW:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
if_acmpne 12
8: aload 0
iconst_1
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.completed:Z
9: aload 0
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.FIRST_SIGNAL_RECEIVED:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
10: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.this$0:Lorg/springframework/http/server/reactive/ChannelSendOperator;
getfield org.springframework.http.server.reactive.ChannelSendOperator.writeFunction:Ljava/util/function/Function;
aload 0
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.reactivestreams.Publisher
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeCompletionBarrier:Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteCompletionBarrier;
invokeinterface org.reactivestreams.Publisher.subscribe:(Lorg/reactivestreams/Subscriber;)V
11: goto 13
12: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.completed:Z
13: StackMap locals:
StackMap stack:
aload 1
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 1
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteBarrier;
Exception table:
from to target type
4 14 15 any
15 16 15 any
public reactor.util.context.Context currentContext();
descriptor: ()Lreactor/util/context/Context;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeCompletionBarrier:Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteCompletionBarrier;
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteCompletionBarrier.currentContext:()Lreactor/util/context/Context;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteBarrier;
public void request(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.subscription:Lorg/reactivestreams/Subscription;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: return
3: StackMap locals: org.reactivestreams.Subscription
StackMap stack:
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.READY_TO_WRITE:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
if_acmpne 6
4: aload 3
lload 1
invokeinterface org.reactivestreams.Subscription.request:(J)V
5: return
6: StackMap locals:
StackMap stack:
aload 0
dup
astore 4
monitorenter
7: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeSubscriber:Lorg/reactivestreams/Subscriber;
ifnull 26
8: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.EMITTING_CACHED_SIGNALS:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
if_acmpne 12
9: aload 0
lload 1
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.demandBeforeReadyToWrite:J
10: aload 4
monitorexit
11: return
12: StackMap locals: org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier
StackMap stack:
aload 0
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.EMITTING_CACHED_SIGNALS:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
13: aload 0
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.emitCachedSignals:()Z
ifeq 17
14: aload 0
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.READY_TO_WRITE:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
15: aload 4
monitorexit
16: return
17: StackMap locals:
StackMap stack:
lload 1
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.demandBeforeReadyToWrite:J
ladd
lconst_1
lsub
lstore 1
18: lload 1
lconst_0
lcmp
ifne 25
19: aload 0
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.READY_TO_WRITE:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
20: aload 4
monitorexit
21: return
22: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
23: aload 0
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.READY_TO_WRITE:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
24: aload 5
athrow
25: StackMap locals:
StackMap stack:
aload 0
getstatic org.springframework.http.server.reactive.ChannelSendOperator$State.READY_TO_WRITE:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.state:Lorg/springframework/http/server/reactive/ChannelSendOperator$State;
26: StackMap locals:
StackMap stack:
aload 4
monitorexit
27: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
28: aload 4
monitorexit
29: athrow
30: StackMap locals:
StackMap stack:
aload 3
lload 1
invokeinterface org.reactivestreams.Subscription.request:(J)V
31: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteBarrier;
0 32 1 n J
1 32 3 s Lorg/reactivestreams/Subscription;
Exception table:
from to target type
12 14 22 any
17 19 22 any
7 11 28 any
12 16 28 any
17 21 28 any
22 27 28 any
28 29 28 any
MethodParameters:
Name Flags
n
private boolean emitCachedSignals();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.item:Ljava/lang/Object;
ifnull 2
1: aload 0
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.requiredWriteSubscriber:()Lorg/reactivestreams/Subscriber;
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.item:Ljava/lang/Object;
invokeinterface org.reactivestreams.Subscriber.onNext:(Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.error:Ljava/lang/Throwable;
ifnull 5
3: aload 0
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.requiredWriteSubscriber:()Lorg/reactivestreams/Subscriber;
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.error:Ljava/lang/Throwable;
invokeinterface org.reactivestreams.Subscriber.onError:(Ljava/lang/Throwable;)V
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.completed:Z
ifeq 8
6: aload 0
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.requiredWriteSubscriber:()Lorg/reactivestreams/Subscriber;
invokeinterface org.reactivestreams.Subscriber.onComplete:()V
7: iconst_1
ireturn
8: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteBarrier;
public void cancel();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.subscription:Lorg/reactivestreams/Subscription;
astore 1
start local 1 1: aload 1
ifnull 4
2: aload 0
aconst_null
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.subscription:Lorg/reactivestreams/Subscription;
3: aload 1
invokeinterface org.reactivestreams.Subscription.cancel:()V
4: StackMap locals: org.reactivestreams.Subscription
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteBarrier;
1 5 1 s Lorg/reactivestreams/Subscription;
public void subscribe(org.reactivestreams.Subscriber<? super T>);
descriptor: (Lorg/reactivestreams/Subscriber;)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 org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeSubscriber:Lorg/reactivestreams/Subscriber;
ifnonnull 2
iconst_1
goto 3
StackMap locals: org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "Only one write subscriber supported"
invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
4: aload 0
aload 1
putfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeSubscriber:Lorg/reactivestreams/Subscriber;
5: aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.error:Ljava/lang/Throwable;
ifnonnull 6
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.completed:Z
ifeq 9
6: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeSubscriber:Lorg/reactivestreams/Subscriber;
invokestatic reactor.core.publisher.Operators.emptySubscription:()Lorg/reactivestreams/Subscription;
invokeinterface org.reactivestreams.Subscriber.onSubscribe:(Lorg/reactivestreams/Subscription;)V
7: aload 0
invokevirtual org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.emitCachedSignals:()Z
pop
8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
getfield org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier.writeSubscriber:Lorg/reactivestreams/Subscriber;
aload 0
invokeinterface org.reactivestreams.Subscriber.onSubscribe:(Lorg/reactivestreams/Subscription;)V
10: StackMap locals:
StackMap stack:
aload 2
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 2
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/springframework/http/server/reactive/ChannelSendOperator$WriteBarrier;
0 15 1 writeSubscriber Lorg/reactivestreams/Subscriber<-TT;>;
Exception table:
from to target type
1 11 12 any
12 13 12 any
Signature: (Lorg/reactivestreams/Subscriber<-TT;>;)V
MethodParameters:
Name Flags
writeSubscriber
}
Signature: Ljava/lang/Object;Lreactor/core/CoreSubscriber<TT;>;Lorg/reactivestreams/Subscription;Lorg/reactivestreams/Publisher<TT;>;
SourceFile: "ChannelSendOperator.java"
NestHost: org.springframework.http.server.reactive.ChannelSendOperator
InnerClasses:
private final State = org.springframework.http.server.reactive.ChannelSendOperator$State of org.springframework.http.server.reactive.ChannelSendOperator
private WriteBarrier = org.springframework.http.server.reactive.ChannelSendOperator$WriteBarrier of org.springframework.http.server.reactive.ChannelSendOperator
private WriteCompletionBarrier = org.springframework.http.server.reactive.ChannelSendOperator$WriteCompletionBarrier of org.springframework.http.server.reactive.ChannelSendOperator