sublen = _in.read(buffer, 0, buffer.length);
sublen = _in.read(buffer, 0, Math.min(length, buffer.length)); if (sublen <= 0) break;
  public Value zip_entry_read(Env env,                                @Optional("1024") int length)  {    if (_in == null)      return BooleanValue.FALSE;    BinaryBuilderValue bbv = new BinaryBuilderValue();    TempBuffer tb = TempBuffer.allocate();    byte[] buffer = tb.getBuffer();    int sublen;    try {      while (length > 0) {        sublen = _in.read(buffer, 0, buffer.length);        bbv.append(buffer, 0, sublen);        length -= sublen;      }      if (bbv.length() < 0)        return BooleanValue.FALSE;      return bbv;    } catch (IOException e) {      env.warning(L.l(e.toString()));      log.log(Level.FINE,  e.toString(),  e);      return BooleanValue.FALSE;    } finally {      TempBuffer.free(tb);    }  }