code: public int read() throws IOException 
      {
          if ( total >= limit )
          {
              if (TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE)) {  //306998.15
                  logger.logp(Level.FINE, CLASS_NAME,"read", "Over the limit: -1");
              } 
              return -1;
          }
          if ( pos >= count )
          {
              fill();
              if ( pos >= count )
              {
                  if (TraceComponent.isAnyTracingEnabled()&&logger.isLoggable (Level.FINE)) {  //306998.15
                      logger.logp(Level.FINE, CLASS_NAME,"read", pos+" >= "+count+" : -1");
                  } 
                  return -1;
              }
          }
          total++;
          return buf[pos++] & 0xff;
      }
docs: Reads a byte of data. This method will block if no input is available.
  @return the byte read, or -1 if the end of the stream is reached or
  the content length has been exceeded
  @exception IOException if an I/O error has occurred