code: @Override
      public int read() throws IOException {
          try {
              int value = super.read();
              eofReached = value == -1;
              if (!eofReached) {
                  bytesRead++;
              }
              return value;
          } catch (Exception e) {
              return onException(e);
          }
      }
docs: {@inheritDoc}