diff --git a/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/exceptions/HotRodClientException.java b/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/exceptions/HotRodClientException.java index 0adc41b91e20..461da7f649c4 100644 --- a/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/exceptions/HotRodClientException.java +++ b/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/exceptions/HotRodClientException.java @@ -7,8 +7,8 @@ * @since 4.1 */ public class HotRodClientException extends RuntimeException { - private long messageId; - private int errorStatusCode; + private long messageId = -1; + private int errorStatusCode = -1; public HotRodClientException() { } @@ -34,9 +34,12 @@ public HotRodClientException(String remoteMessage, long messageId, int errorStat @Override public String toString() { - return "HotRodServerException{" + - "messageId=" + messageId + - ", errorStatusCode=" + errorStatusCode + - "} " + super.toString(); + StringBuilder sb = new StringBuilder(getClass().getName()); + sb.append(":"); + if (messageId != -1) sb.append(" id [").append(messageId).append("]"); + if (errorStatusCode != -1) sb.append(" code [").append(errorStatusCode).append("]"); + String message = getLocalizedMessage(); + if (message != null) sb.append(" ").append(message); + return sb.toString(); } } diff --git a/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/exceptions/HotRodTimeoutException.java b/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/exceptions/HotRodTimeoutException.java index 3bb5ce83a34c..fe00461ee8f3 100644 --- a/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/exceptions/HotRodTimeoutException.java +++ b/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/exceptions/HotRodTimeoutException.java @@ -7,4 +7,22 @@ * @since 4.1 */ public class HotRodTimeoutException extends HotRodClientException { + public HotRodTimeoutException() { + } + + public HotRodTimeoutException(String message) { + super(message); + } + + public HotRodTimeoutException(Throwable cause) { + super(cause); + } + + public HotRodTimeoutException(String message, Throwable cause) { + super(message, cause); + } + + public HotRodTimeoutException(String remoteMessage, long messageId, int errorStatusCode) { + super(remoteMessage, messageId, errorStatusCode); + } } diff --git a/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/impl/operations/HotRodOperation.java b/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/impl/operations/HotRodOperation.java index 50d13aed6252..93e0a810cd7d 100644 --- a/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/impl/operations/HotRodOperation.java +++ b/client/hotrod-client/src/main/java/org/infinispan/client/hotrod/impl/operations/HotRodOperation.java @@ -129,10 +129,11 @@ protected void checkForErrorsInResponseStatus(short status, long messageId, Tran throw new HotRodClientException(msgFromServer, messageId, status); } case HotRodConstants.COMMAND_TIMEOUT_STATUS: { + String msg = transport.readString(); if (log.isTraceEnabled()) { - log.trace("timeout message received from the server"); + log.trace("Server-side timeout performing operation: " + msg); } - throw new HotRodTimeoutException(); + throw new HotRodTimeoutException(msg, messageId, status); } case HotRodConstants.NO_ERROR_STATUS: case HotRodConstants.KEY_DOES_NOT_EXIST_STATUS: