@Override public boolean run(ClientContext context) { try { // FIXME CPU USAGE Add another API to the segment to avoid re-decoding. SplitFileSegmentKeys keys = segments[blockNo].getSegmentKeys(); if(keys == null) return false; boolean success = segments[blockNo].innerOnGotKey(key.getNodeCHK(), block, keys, blockNumbers[blockNo], data); if(success) { if(logMINOR) Logger.minor(this, "Successfully decoded cross-segment block"); } else { // Not really a big deal, but potentially interesting... Logger.warning(this, "Decoded cross-segment block but not wanted by segment"); } } catch (IOException e) { parent.failOnDiskError(e); return true; } return false; } });
return false; return innerOnGotKey(key, decodedBlock, keys, blockNumber, decodedData);