MessageForwarder3 Class — netty Architecture
Architecture documentation for the MessageForwarder3 class in LocalTransportThreadModelTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 5d9bf869_26ee_1468_df42_d7b387c194da["MessageForwarder3"] adb139e6_2a46_ab0a_b143_d2609be299b3["LocalTransportThreadModelTest.java"] 5d9bf869_26ee_1468_df42_d7b387c194da -->|defined in| adb139e6_2a46_ab0a_b143_d2609be299b3 85f17597_0918_a0c8_297d_c8f56617c6be["channelRead()"] 5d9bf869_26ee_1468_df42_d7b387c194da -->|method| 85f17597_0918_a0c8_297d_c8f56617c6be bcebdee4_e5fa_bd89_67bf_34873fa50e5b["write()"] 5d9bf869_26ee_1468_df42_d7b387c194da -->|method| bcebdee4_e5fa_bd89_67bf_34873fa50e5b 1a910208_f4ad_b93a_e087_95b71c6a6dea["exceptionCaught()"] 5d9bf869_26ee_1468_df42_d7b387c194da -->|method| 1a910208_f4ad_b93a_e087_95b71c6a6dea
Relationship Graph
Source Code
transport/src/test/java/io/netty/channel/local/LocalTransportThreadModelTest.java lines 526–567
private static class MessageForwarder3 extends ChannelDuplexHandler {
private final AtomicReference<Throwable> exception = new AtomicReference<Throwable>();
private volatile int inCnt;
private volatile int outCnt;
private volatile Thread t;
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
Thread t = this.t;
if (t == null) {
this.t = Thread.currentThread();
} else {
assertSame(t, Thread.currentThread());
}
int actual = (Integer) msg;
int expected = inCnt ++;
assertEquals(expected, actual);
ctx.fireChannelRead(msg);
}
@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {
assertSame(t, Thread.currentThread());
int actual = (Integer) msg;
int expected = outCnt ++;
assertEquals(expected, actual);
ctx.write(msg, promise);
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
exception.compareAndSet(null, cause);
System.err.print('[' + Thread.currentThread().getName() + "] ");
cause.printStackTrace();
super.exceptionCaught(ctx, cause);
}
}
Source
Frequently Asked Questions
What is the MessageForwarder3 class?
MessageForwarder3 is a class in the netty codebase, defined in transport/src/test/java/io/netty/channel/local/LocalTransportThreadModelTest.java.
Where is MessageForwarder3 defined?
MessageForwarder3 is defined in transport/src/test/java/io/netty/channel/local/LocalTransportThreadModelTest.java at line 526.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free