MessageDiscarder Class — netty Architecture
Architecture documentation for the MessageDiscarder class in LocalTransportThreadModelTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 4416ca34_8b23_0a00_46de_59cd1da38ed7["MessageDiscarder"] adb139e6_2a46_ab0a_b143_d2609be299b3["LocalTransportThreadModelTest.java"] 4416ca34_8b23_0a00_46de_59cd1da38ed7 -->|defined in| adb139e6_2a46_ab0a_b143_d2609be299b3 6348c4c7_af5b_1906_cb20_8d15cf666108["channelRead()"] 4416ca34_8b23_0a00_46de_59cd1da38ed7 -->|method| 6348c4c7_af5b_1906_cb20_8d15cf666108 8aab9b97_817c_1676_25bc_fb10a37c9473["write()"] 4416ca34_8b23_0a00_46de_59cd1da38ed7 -->|method| 8aab9b97_817c_1676_25bc_fb10a37c9473 3c45ea19_ea81_c89a_3d6f_a0e835621c24["exceptionCaught()"] 4416ca34_8b23_0a00_46de_59cd1da38ed7 -->|method| 3c45ea19_ea81_c89a_3d6f_a0e835621c24
Relationship Graph
Source Code
transport/src/test/java/io/netty/channel/local/LocalTransportThreadModelTest.java lines 572–611
private static class MessageDiscarder 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);
}
@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 MessageDiscarder class?
MessageDiscarder is a class in the netty codebase, defined in transport/src/test/java/io/netty/channel/local/LocalTransportThreadModelTest.java.
Where is MessageDiscarder defined?
MessageDiscarder is defined in transport/src/test/java/io/netty/channel/local/LocalTransportThreadModelTest.java at line 572.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free