use of com.alipay.sofa.jraft.test.atomic.KeyNotFoundException in project sofa-jraft by sofastack.
the class AtomicRangeGroup method readFromQuorum.
public void readFromQuorum(final String key, RpcContext asyncContext) {
final byte[] reqContext = new byte[4];
Bits.putInt(reqContext, 0, requestId.incrementAndGet());
this.node.readIndex(reqContext, new ReadIndexClosure() {
@Override
public void run(Status status, long index, byte[] reqCtx) {
if (status.isOk()) {
try {
asyncContext.sendResponse(new ValueCommand(fsm.getValue(key)));
} catch (final KeyNotFoundException e) {
asyncContext.sendResponse(GetCommandProcessor.createKeyNotFoundResponse());
}
} else {
asyncContext.sendResponse(new BooleanCommand(false, status.getErrorMsg()));
}
}
});
}
use of com.alipay.sofa.jraft.test.atomic.KeyNotFoundException in project sofa-jraft by sofastack.
the class AtomicClient method get.
public long get(PeerId peer, String key, boolean readFromQuorum, boolean readByStateMachine) throws KeyNotFoundException, InterruptedException {
try {
final GetCommand request = new GetCommand(key);
request.setReadFromQuorum(readFromQuorum);
request.setReadByStateMachine(readByStateMachine);
final Object response = this.rpcClient.invokeSync(peer.getEndpoint(), request, cliOptions.getRpcDefaultTimeout());
final BooleanCommand cmd = (BooleanCommand) response;
if (cmd.isSuccess()) {
return ((ValueCommand) cmd).getVlaue();
} else {
if (cmd.getErrorMsg().equals("key not found")) {
throw new KeyNotFoundException();
} else {
throw new IllegalStateException("Server error:" + cmd.getErrorMsg());
}
}
} catch (final Throwable t) {
t.printStackTrace();
throw new IllegalStateException("Remoting error:" + t.getMessage());
}
}
Aggregations