Committed by
Pavlin Radoslavov
DatabaseClient: check CopyCat response for errors
Change-Id: I49e46bd78293a4ca0f363a6b97e0995e46c05027
Showing
1 changed file
with
6 additions
and
1 deletions
| ... | @@ -16,6 +16,7 @@ import java.util.concurrent.TimeoutException; | ... | @@ -16,6 +16,7 @@ import java.util.concurrent.TimeoutException; |
| 16 | import net.kuujo.copycat.cluster.Member; | 16 | import net.kuujo.copycat.cluster.Member; |
| 17 | import net.kuujo.copycat.cluster.TcpMember; | 17 | import net.kuujo.copycat.cluster.TcpMember; |
| 18 | import net.kuujo.copycat.event.LeaderElectEvent; | 18 | import net.kuujo.copycat.event.LeaderElectEvent; |
| 19 | +import net.kuujo.copycat.protocol.Response.Status; | ||
| 19 | import net.kuujo.copycat.protocol.SubmitRequest; | 20 | import net.kuujo.copycat.protocol.SubmitRequest; |
| 20 | import net.kuujo.copycat.protocol.SubmitResponse; | 21 | import net.kuujo.copycat.protocol.SubmitResponse; |
| 21 | import net.kuujo.copycat.spi.protocol.ProtocolClient; | 22 | import net.kuujo.copycat.spi.protocol.ProtocolClient; |
| ... | @@ -107,7 +108,11 @@ public class DatabaseClient implements ClusterMessageHandler { | ... | @@ -107,7 +108,11 @@ public class DatabaseClient implements ClusterMessageHandler { |
| 107 | log.debug("Sent {} to {}", request, currentLeader); | 108 | log.debug("Sent {} to {}", request, currentLeader); |
| 108 | 109 | ||
| 109 | try { | 110 | try { |
| 110 | - return (T) submitResponse.get(TIMEOUT_MS, TimeUnit.MILLISECONDS).result(); | 111 | + final SubmitResponse response = submitResponse.get(TIMEOUT_MS, TimeUnit.MILLISECONDS); |
| 112 | + if (response.status() != Status.OK) { | ||
| 113 | + throw new DatabaseException(response.error()); | ||
| 114 | + } | ||
| 115 | + return (T) response.result(); | ||
| 111 | } catch (ExecutionException | InterruptedException e) { | 116 | } catch (ExecutionException | InterruptedException e) { |
| 112 | throw new DatabaseException(e); | 117 | throw new DatabaseException(e); |
| 113 | } catch (TimeoutException e) { | 118 | } catch (TimeoutException e) { | ... | ... |
-
Please register or login to post a comment