Example #1
0
  private byte[] processBulkReply(final RedisInputStream is) {
    int len = Integer.parseInt(is.readLine());
    if (len == -1) {
      return null;
    }
    byte[] read = new byte[len];
    int offset = 0;
    try {
      while (offset < len) {
        offset += is.read(read, offset, (len - offset));
      }
      // read 2 more bytes for the command delimiter
      is.readByte();
      is.readByte();
    } catch (IOException e) {
      throw new JedisConnectionException("protocol -> processBulkReply IOException");
    }

    return read;
  }
Example #2
0
 private Object process(final RedisInputStream is) {
   try {
     byte b = is.readByte();
     if (b == MINUS_BYTE) {
       processError(is);
     } else if (b == ASTERISK_BYTE) {
       return processMultiBulkReply(is);
     } else if (b == COLON_BYTE) {
       return processInteger(is);
     } else if (b == DOLLAR_BYTE) {
       return processBulkReply(is);
     } else if (b == PLUS_BYTE) {
       return processStatusCodeReply(is);
     } else {
       throw new JedisConnectionException("Unknown reply: " + (char) b);
     }
   } catch (IOException e) {
     throw new JedisConnectionException("process IOException " + e.getMessage());
   }
   return null;
 }