Esempio n. 1
0
 @Override
 public synchronized int readLob(
     long lobId, byte[] hmac, long offset, byte[] buff, int off, int length) {
   for (int i = 0, count = 0; i < transferList.size(); i++) {
     Transfer transfer = transferList.get(i);
     try {
       traceOperation("LOB_READ", (int) lobId);
       transfer.writeInt(SessionRemote.LOB_READ);
       transfer.writeLong(lobId);
       if (clientVersion >= Constants.TCP_PROTOCOL_VERSION_12) {
         transfer.writeBytes(hmac);
       }
       transfer.writeLong(offset);
       transfer.writeInt(length);
       done(transfer);
       length = transfer.readInt();
       if (length <= 0) {
         return length;
       }
       transfer.readBytes(buff, off, length);
       return length;
     } catch (IOException e) {
       removeServer(e, i--, ++count);
     }
   }
   return 1;
 }