示例#1
0
  protected boolean putInternal(int index, byte[] key, byte[] value) throws Exception {
    byte[] existingData = _dataArray.get(index);
    if (existingData == null || existingData.length == 0) {
      _dataArray.set(index, _dataHandler.assemble(key, value), nextScn());
      _loadCount++;
    } else {
      try {
        _dataArray.set(index, _dataHandler.assemble(key, value, existingData), nextScn());
      } catch (Exception e) {
        _log.warn("Value reset at index=" + index + " key=\"" + new String(key) + "\"");
        _dataArray.set(index, _dataHandler.assemble(key, value), nextScn());
      }
    }

    return true;
  }
示例#2
0
  private boolean deleteInternal(int index, byte[] key) throws Exception {
    try {
      byte[] existingData = _dataArray.get(index);
      if (existingData != null) {
        int newLength = _dataHandler.removeByKey(key, existingData);
        if (newLength == 0) {
          // entire data is removed
          _dataArray.set(index, null, nextScn());
          _loadCount--;
          return true;
        } else if (newLength < existingData.length) {
          // partial data is removed
          _dataArray.set(index, existingData, 0, newLength, nextScn());
          return true;
        }
      }
    } catch (Exception e) {
      _log.warn("Failed to delete key=\"" + new String(key) + "\" : " + e.getMessage());
      _dataArray.set(index, null, nextScn());
    }

    // no data is removed
    return false;
  }
示例#3
0
 private boolean putReplace(int index, byte[] key, byte[] value) throws Exception {
   _dataArray.set(index, _dataHandler.assemble(key, value), nextScn());
   return true;
 }
示例#4
0
 private boolean setInternal(int index, byte[] key, byte[] value) throws Exception {
   _dataArray.set(index, _dataHandler.assemble(key, value), nextScn());
   _loadCount++;
   return true;
 }