private boolean validateResponse(Request request) { if (request.isError()) { return false; } else if (request.returnValues().size() == 0) { return false; } else if (!request.checkReturnTypes("is")) { // TODO: Do not hard-code return type log.log(LogLevel.WARNING, "Invalid return types for response: " + request.errorMessage()); return false; } return true; }
public void returnRequest() { if (!conn.completeRequest(done)) { throw new IllegalStateException("Request already returned"); } if (noReply) { return; } if (!request.isError() && !method.checkReturnValues(request)) { request.setError(ErrorCode.WRONG_RETURN, "Return values in " + request + " does not match " + method); } if (request.isError()) { conn.postPacket(new ErrorPacket(0, replyKey, request.errorCode(), request.errorMessage())); } else { conn.postPacket(new ReplyPacket(0, replyKey, request.returnValues())); } } }
} else { final Boolean lastSucceeded = lastRegisterSucceeded.get(name); if (lastSucceeded == null || lastSucceeded != !req.isError()) { logOnSuccess = true; lastRegisterSucceeded.put(name, !req.isError()); if (req.isError()) { if (req.errorCode() != ErrorCode.METHOD_FAILED) { log.log(Level.INFO, logMessagePrefix() + " failed, will disconnect: " + req.errorMessage() + " (code " + req.errorCode() + ")");
} else if (!request.isError()) { throw new RuntimeException("Invalid response: " + request.returnValues()); } else if (temporaryError(request.errorCode())) {
Request request=createRequest(method,arguments); target.invokeSync(request,10.0); if (request.isError()) { System.err.println("error(" + request.errorCode() + "): " + request.errorMessage()); return;
@Override public void handleRequestDone(Request requestWithResponse) { if (requestWithResponse.isError()) { handler.receive(GetDocsumsResponseOrError.fromError("Error response from " + node + ": " + requestWithResponse.errorMessage())); return; } Values returnValues = requestWithResponse.returnValues(); if (returnValues.size() < 3) { handler.receive(GetDocsumsResponseOrError.fromError("Invalid getDocsums response from " + node + ": Expected 3 return arguments, got " + returnValues.size())); return; } byte compression = returnValues.get(0).asInt8(); int uncompressedSize = returnValues.get(1).asInt32(); byte[] compressedSlimeBytes = returnValues.get(2).asData(); List<FastHit> hits = (List<FastHit>) requestWithResponse.getContext(); handler.receive(GetDocsumsResponseOrError.fromResponse(new GetDocsumsResponse(compression, uncompressedSize, compressedSlimeBytes, hits))); }