Revert "Allow and skip null handlers when adding a vararg list of handlers (#10751)" (#10770)

This reverts commit 3b90b536bb26b6b7e1123e3237807b8c3ff49b6e.
This commit is contained in:
Norman Maurer 2020-11-03 21:12:29 +01:00 committed by GitHub
parent 3b90b536bb
commit c6e2934357
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 45 deletions

View File

@ -342,14 +342,22 @@ public class DefaultChannelPipeline implements ChannelPipeline {
@Override
public final ChannelPipeline addFirst(EventExecutorGroup executor, ChannelHandler... handlers) {
ObjectUtil.checkNotNull(handlers, "handlers");
if (handlers.length == 0 || handlers[0] == null) {
return this;
}
for (int i = handlers.length - 1; i >= 0; i--) {
ChannelHandler h = handlers[i];
if (h != null) {
addFirst(executor, null, h);
int size;
for (size = 1; size < handlers.length; size ++) {
if (handlers[size] == null) {
break;
}
}
for (int i = size - 1; i >= 0; i --) {
ChannelHandler h = handlers[i];
addFirst(executor, null, h);
}
return this;
}
@ -366,10 +374,11 @@ public class DefaultChannelPipeline implements ChannelPipeline {
public final ChannelPipeline addLast(EventExecutorGroup executor, ChannelHandler... handlers) {
ObjectUtil.checkNotNull(handlers, "handlers");
for (ChannelHandler h : handlers) {
if (h != null) {
addLast(executor, null, h);
for (ChannelHandler h: handlers) {
if (h == null) {
break;
}
addLast(executor, null, h);
}
return this;

View File

@ -171,44 +171,6 @@ public class DefaultChannelPipelineTest {
}
}
@Test
public void testAddLastVarArgsSkipsNull() {
ChannelPipeline pipeline = new LocalChannel().pipeline();
assertEquals(1, pipeline.names().size());
pipeline.addLast((ChannelHandler) null, newHandler(), null);
assertEquals(2, pipeline.names().size());
assertEquals("DefaultChannelPipelineTest$TestHandler#0", pipeline.names().get(0));
pipeline.addLast(newHandler(), null, newHandler());
assertEquals(4, pipeline.names().size());
assertEquals("DefaultChannelPipelineTest$TestHandler#0", pipeline.names().get(0));
assertEquals("DefaultChannelPipelineTest$TestHandler#1", pipeline.names().get(1));
assertEquals("DefaultChannelPipelineTest$TestHandler#2", pipeline.names().get(2));
pipeline.addLast((ChannelHandler) null);
assertEquals(4, pipeline.names().size());
}
@Test
public void testAddFirstVarArgsSkipsNull() {
ChannelPipeline pipeline = new LocalChannel().pipeline();
assertEquals(1, pipeline.names().size());
pipeline.addFirst((ChannelHandler) null, newHandler(), null);
assertEquals(2, pipeline.names().size());
assertEquals("DefaultChannelPipelineTest$TestHandler#0", pipeline.names().get(0));
pipeline.addFirst(newHandler(), null, newHandler());
assertEquals(4, pipeline.names().size());
assertEquals("DefaultChannelPipelineTest$TestHandler#2", pipeline.names().get(0));
assertEquals("DefaultChannelPipelineTest$TestHandler#1", pipeline.names().get(1));
assertEquals("DefaultChannelPipelineTest$TestHandler#0", pipeline.names().get(2));
pipeline.addFirst((ChannelHandler) null);
assertEquals(4, pipeline.names().size());
}
@Test
public void testRemoveChannelHandler() {
ChannelPipeline pipeline = new LocalChannel().pipeline();