dtclReg = null;
if (!idIntsListener.hasTriggered()) {
- final RpcError error = RpcResultBuilder.newError(
- ErrorType.APPLICATION, "No notification received.", "id-ints listener has not received"
- + "any notifications.");
+ final RpcError error = RpcResultBuilder.newError(ErrorType.APPLICATION, "operation-failed",
+ "id-ints listener has not received any notifications.");
return Futures.immediateFuture(RpcResultBuilder.<UnsubscribeDtclOutput>failed()
.withRpcError(error).build());
}
if (!readResult.isPresent()) {
final RpcError error = RpcResultBuilder.newError(
- ErrorType.APPLICATION, "Final read empty.", "No data read from id-ints list.");
+ ErrorType.APPLICATION, "data-missing", "No data read from id-ints list.");
return Futures.immediateFuture(RpcResultBuilder.<UnsubscribeDtclOutput>failed()
.withRpcError(error).build());
}
+ final boolean nodesEqual = idIntsListener.checkEqual(readResult.get());
+ if (!nodesEqual) {
+ LOG.error("Final read of id-int does not match IdIntsListener's copy. {}",
+ idIntsListener.diffWithLocalCopy(readResult.get()));
+ }
+
return Futures.immediateFuture(
- RpcResultBuilder.success(new UnsubscribeDtclOutputBuilder()
- .setCopyMatches(idIntsListener.checkEqual(readResult.get()))).build());
+ RpcResultBuilder.success(new UnsubscribeDtclOutputBuilder().setCopyMatches(nodesEqual)).build());
} catch (final InterruptedException | ExecutionException e) {
final RpcError error = RpcResultBuilder.newError(
- ErrorType.APPLICATION, "Read failed.", "Final read from id-ints failed.");
+ ErrorType.APPLICATION, "operation-failed", "Final read from id-ints failed.", null, null, e);
return Futures.immediateFuture(RpcResultBuilder.<UnsubscribeDtclOutput>failed()
.withRpcError(error).build());