docs: protected void afterRead(ByteBuffer buffer, int position, int length) throws IOException {
          try {
              for (ChannelFunction func : functions) {
                  func.afterRead(buffer, position, length);
              }
              if (isComplete()) {
                  checkComplete();
              }
          } catch (UnsupportedEncodingException e) {
              getFramedChannel().markReadsBroken(e);
              throw e;
          }
      }