We could define a `protected void` method and call it there so we don't need to override `setAutoRead(...)`.  For example, `DefaultChannelConfig` could look like the following:

```java
public ChannelConfig setAutoRead(boolean autoRead) {
    this.autoRead = autoRead;
    if (!autoRead) {
        autoReadCleared();
    }
    return this;
}

protected void autoReadCleared() { }
```

Then all subclasses don't need to have the `if (!autoRead)` but just override `autoReadCleared()`.