private static final long serialVersionUID = 1L;
private final String applicationTag;
- private final String tag;
+ private final ErrorTag tag;
private final String info;
private final ErrorSeverity severity;
private final String message;
private final ErrorType errorType;
private final Throwable cause;
- RpcErrorImpl(final ErrorSeverity severity, final ErrorType errorType,
- final String tag, final String message, final String applicationTag, final String info,
- final Throwable cause) {
+ RpcErrorImpl(final ErrorSeverity severity, final ErrorType errorType, final ErrorTag tag, final String message,
+ final String applicationTag, final String info, final Throwable cause) {
this.severity = severity;
this.errorType = errorType;
this.tag = tag;
}
@Override
- public String getTag() {
+ public ErrorTag getTag() {
return tag;
}
*
* @return an RpcError
*/
- public static @NonNull RpcError newError(final ErrorType errorType, final String tag, final String message) {
- return new RpcErrorImpl(ErrorSeverity.ERROR, errorType,
- tag != null ? tag : "operation-failed", message, null, null, null);
+ public static @NonNull RpcError newError(final ErrorType errorType, final ErrorTag tag, final String message) {
+ return new RpcErrorImpl(ErrorSeverity.ERROR, errorType, tag != null ? tag : ErrorTag.OPERATION_FAILED, message,
+ null, null, null);
}
/**
*
* @return an RpcError
*/
- public static @NonNull RpcError newError(final ErrorType errorType, final String tag, final String message,
+ public static @NonNull RpcError newError(final ErrorType errorType, final ErrorTag tag, final String message,
final String applicationTag, final String info, final Throwable cause) {
- return new RpcErrorImpl(ErrorSeverity.ERROR, errorType,
- tag != null ? tag : "operation-failed", message, applicationTag, info, cause);
+ return new RpcErrorImpl(ErrorSeverity.ERROR, errorType, tag != null ? tag : ErrorTag.OPERATION_FAILED, message,
+ applicationTag, info, cause);
}
/**
*
* @return an RpcError
*/
- public static @NonNull RpcError newWarning(final ErrorType errorType, final String tag, final String message) {
+ public static @NonNull RpcError newWarning(final ErrorType errorType, final ErrorTag tag, final String message) {
return new RpcErrorImpl(ErrorSeverity.WARNING, errorType, tag, message, null, null, null);
}
*
* @return an RpcError
*/
- public static @NonNull RpcError newWarning(final ErrorType errorType, final String tag, final String message,
+ public static @NonNull RpcError newWarning(final ErrorType errorType, final ErrorTag tag, final String message,
final String applicationTag, final String info, final Throwable cause) {
- return new RpcErrorImpl(ErrorSeverity.WARNING, errorType, tag, message,
- applicationTag, info, cause);
+ return new RpcErrorImpl(ErrorSeverity.WARNING, errorType, tag, message, applicationTag, info, cause);
}
/**
return withResult(builder.build());
}
- private void addError(final ErrorSeverity severity, final ErrorType errorType,
- final String tag, final String message, final String applicationTag, final String info,
- final Throwable cause) {
-
- addError(new RpcErrorImpl(severity, errorType,
- tag != null ? tag : "operation-failed", message,
- applicationTag, info, cause));
+ private void addError(final ErrorSeverity severity, final ErrorType errorType, final ErrorTag tag,
+ final String message, final String applicationTag, final String info, final Throwable cause) {
+ addError(new RpcErrorImpl(severity, errorType, tag != null ? tag : ErrorTag.OPERATION_FAILED, message,
+ applicationTag, info, cause));
}
private void addError(final RpcError error) {
* {@link RpcError#getTag} for a list of suggested values.
* @param message a string suitable for human display that describes the warning condition.
*/
- public @NonNull RpcResultBuilder<T> withWarning(final ErrorType errorType, final String tag, final String message) {
+ public @NonNull RpcResultBuilder<T> withWarning(final ErrorType errorType, final ErrorTag tag,
+ final String message) {
addError(ErrorSeverity.WARNING, errorType, tag, message, null, null, null);
return this;
}
* and/or implementation-specific debugging information.
* @param cause the exception that triggered the warning.
*/
- public @NonNull RpcResultBuilder<T> withWarning(final ErrorType errorType, final String tag, final String message,
+ public @NonNull RpcResultBuilder<T> withWarning(final ErrorType errorType, final ErrorTag tag, final String message,
final String applicationTag, final String info, final Throwable cause) {
addError(ErrorSeverity.WARNING, errorType, tag, message, applicationTag, info, cause);
return this;
* {@link RpcError#getTag} for a list of suggested values.
* @param message a string suitable for human display that describes the error condition.
*/
- public @NonNull RpcResultBuilder<T> withError(final ErrorType errorType, final String tag, final String message) {
+ public @NonNull RpcResultBuilder<T> withError(final ErrorType errorType, final ErrorTag tag, final String message) {
addError(ErrorSeverity.ERROR, errorType, tag, message, null, null, null);
return this;
}
* and/or implementation-specific debugging information.
* @param cause the exception that triggered the error.
*/
- public @NonNull RpcResultBuilder<T> withError(final ErrorType errorType, final String tag, final String message,
+ public @NonNull RpcResultBuilder<T> withError(final ErrorType errorType, final ErrorTag tag, final String message,
final String applicationTag, final String info, final Throwable cause) {
addError(ErrorSeverity.ERROR, errorType, tag, message, applicationTag, info, cause);
return this;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
* @author Thomas Pantelis
*/
public class RpcResultBuilderTest {
+ private static final ErrorTag TAG = new ErrorTag("tag");
@Test
public void testSuccess() {
Throwable cause2 = new Throwable("mock cause2");
RpcResult<String> result = RpcResultBuilder.<String>failed()
.withError(ErrorType.PROTOCOL, "error message 1")
- .withError(ErrorType.APPLICATION, "lock_denied", "error message 2")
- .withError(ErrorType.RPC, "in-use", "error message 3", "my-app-tag", "my-info", cause)
+ .withError(ErrorType.APPLICATION, ErrorTag.LOCK_DENIED, "error message 2")
+ .withError(ErrorType.RPC, ErrorTag.IN_USE, "error message 3", "my-app-tag", "my-info", cause)
.withError(ErrorType.TRANSPORT, "error message 4", cause2)
.build();
verifyRpcResult(result, false, null);
- verifyRpcError(result, 0, ErrorSeverity.ERROR, ErrorType.PROTOCOL, "operation-failed",
- "error message 1", null, null, null);
- verifyRpcError(result, 1, ErrorSeverity.ERROR, ErrorType.APPLICATION, "lock_denied",
- "error message 2", null, null, null);
- verifyRpcError(result, 2, ErrorSeverity.ERROR, ErrorType.RPC, "in-use",
- "error message 3", "my-app-tag", "my-info", cause);
- verifyRpcError(result, 3, ErrorSeverity.ERROR, ErrorType.TRANSPORT, "operation-failed",
+ verifyRpcError(result, 0, ErrorSeverity.ERROR, ErrorType.PROTOCOL, ErrorTag.OPERATION_FAILED, "error message 1",
+ null, null, null);
+ verifyRpcError(result, 1, ErrorSeverity.ERROR, ErrorType.APPLICATION, ErrorTag.LOCK_DENIED, "error message 2",
+ null, null, null);
+ verifyRpcError(result, 2, ErrorSeverity.ERROR, ErrorType.RPC, ErrorTag.IN_USE, "error message 3", "my-app-tag",
+ "my-info", cause);
+ verifyRpcError(result, 3, ErrorSeverity.ERROR, ErrorType.TRANSPORT, ErrorTag.OPERATION_FAILED,
"error message 4", null, null, cause2);
assertEquals("getErrors size", 4, result.getErrors().size());
}
public void testWithWarnings() {
Throwable cause = new Throwable("mock cause");
RpcResult<String> result = RpcResultBuilder.<String>success()
- .withWarning(ErrorType.APPLICATION, "lock_denied", "message 1")
- .withWarning(ErrorType.RPC, "in-use", "message 2", "my-app-tag", "my-info", cause)
+ .withWarning(ErrorType.APPLICATION, ErrorTag.LOCK_DENIED, "message 1")
+ .withWarning(ErrorType.RPC, ErrorTag.IN_USE, "message 2", "my-app-tag", "my-info", cause)
.build();
verifyRpcResult(result, true, null);
- verifyRpcError(result, 0, ErrorSeverity.WARNING, ErrorType.APPLICATION, "lock_denied",
- "message 1", null, null, null);
- verifyRpcError(result, 1, ErrorSeverity.WARNING, ErrorType.RPC, "in-use",
- "message 2", "my-app-tag", "my-info", cause);
+ verifyRpcError(result, 0, ErrorSeverity.WARNING, ErrorType.APPLICATION, ErrorTag.LOCK_DENIED, "message 1", null,
+ null, null);
+ verifyRpcError(result, 1, ErrorSeverity.WARNING, ErrorType.RPC, ErrorTag.IN_USE, "message 2", "my-app-tag",
+ "my-info", cause);
assertEquals("getErrors size", 2, result.getErrors().size());
}
Throwable cause = new Throwable("mock cause");
RpcResult<String> result = RpcResultBuilder.<String>success()
.withResult("foo")
- .withWarning(ErrorType.RPC, "in-use", "message", "my-app-tag", "my-info", cause)
+ .withWarning(ErrorType.RPC, ErrorTag.IN_USE, "message", "my-app-tag", "my-info", cause)
.build();
RpcResult<String> copy = RpcResultBuilder.from(result)
.withError(ErrorType.PROTOCOL, "error message")
.build();
verifyRpcResult(copy, true, "foo");
- verifyRpcError(copy, 0, ErrorSeverity.WARNING, ErrorType.RPC, "in-use",
- "message", "my-app-tag", "my-info", cause);
- verifyRpcError(copy, 1, ErrorSeverity.ERROR, ErrorType.PROTOCOL, "operation-failed",
- "error message", null, null, null);
+ verifyRpcError(copy, 0, ErrorSeverity.WARNING, ErrorType.RPC, ErrorTag.IN_USE, "message", "my-app-tag",
+ "my-info", cause);
+ verifyRpcError(copy, 1, ErrorSeverity.ERROR, ErrorType.PROTOCOL, ErrorTag.OPERATION_FAILED, "error message",
+ null, null, null);
}
@Test
public void testWithRpcErrors() {
Throwable cause = new Throwable("mock cause");
RpcResult<String> result = RpcResultBuilder.<String>failed()
- .withWarning(ErrorType.RPC, "in-use", "message", "my-app-tag", "my-info", cause)
+ .withWarning(ErrorType.RPC, ErrorTag.IN_USE, "message", "my-app-tag", "my-info", cause)
.withError(ErrorType.PROTOCOL, "error message")
.build();
RpcResult<String> result2 = RpcResultBuilder.<String>failed()
.withRpcErrors(result.getErrors())
.build();
- verifyRpcError(result2, 0, ErrorSeverity.WARNING, ErrorType.RPC, "in-use",
- "message", "my-app-tag", "my-info", cause);
- verifyRpcError(result2, 1, ErrorSeverity.ERROR, ErrorType.PROTOCOL, "operation-failed",
- "error message", null, null, null);
+ verifyRpcError(result2, 0, ErrorSeverity.WARNING, ErrorType.RPC, ErrorTag.IN_USE, "message", "my-app-tag",
+ "my-info", cause);
+ verifyRpcError(result2, 1, ErrorSeverity.ERROR, ErrorType.PROTOCOL, ErrorTag.OPERATION_FAILED, "error message",
+ null, null, null);
}
@Test
public void testErrors() {
final RpcResultBuilder<Object> rpcResultBuilder = RpcResultBuilder.status(true);
- final RpcError rpcErrorShort = RpcResultBuilder.newError(ErrorType.RPC, "tag", "msg");
- final RpcError rpcErrorLong = RpcResultBuilder.newError(ErrorType.RPC, "tag", "msg", "applicationTag",
- "info", null);
- final RpcError rpcErrorShortWarn = RpcResultBuilder.newWarning(ErrorType.RPC, "tag", "msg");
- final RpcError rpcErrorLongWarn = RpcResultBuilder.newWarning(ErrorType.RPC, "tag", "msg", "applicationTag",
- "info", null);
+ final RpcError rpcErrorShort = RpcResultBuilder.newError(ErrorType.RPC, TAG, "msg");
+ final RpcError rpcErrorLong = RpcResultBuilder.newError(ErrorType.RPC, TAG, "msg", "applicationTag", "info",
+ null);
+ final RpcError rpcErrorShortWarn = RpcResultBuilder.newWarning(ErrorType.RPC, TAG, "msg");
+ final RpcError rpcErrorLongWarn = RpcResultBuilder.newWarning(ErrorType.RPC, TAG, "msg", "applicationTag",
+ "info", null);
rpcResultBuilder.withRpcError(rpcErrorShort);
final RpcResult<Object> rpcResult = rpcResultBuilder.build();
final RpcResultBuilder<RpcResult<Object>> rpcResultRpcResultBuilder1 = RpcResultBuilder.success(
Throwable cause = new Throwable("mock cause");
result = RpcResultBuilder.<String>failed()
- .withError(ErrorType.RPC, "in-use", "error message", "my-app-tag", "my-info", cause)
+ .withError(ErrorType.RPC, ErrorTag.IN_USE, "error message", "my-app-tag", "my-info", cause)
.build();
bos = new ByteArrayOutputStream();
clone = (RpcResult<String>) in.readObject();
verifyRpcResult(clone, false, null);
- verifyRpcError(result, 0, ErrorSeverity.ERROR, ErrorType.RPC, "in-use",
- "error message", "my-app-tag", "my-info", cause);
+ verifyRpcError(result, 0, ErrorSeverity.ERROR, ErrorType.RPC, ErrorTag.IN_USE, "error message", "my-app-tag",
+ "my-info", cause);
}
void verifyRpcError(final RpcResult<?> result, final int errorIndex, final ErrorSeverity expSeverity,
- final ErrorType expErrorType, final String expTag, final String expMessage, final String expAppTag,
+ final ErrorType expErrorType, final ErrorTag expTag, final String expMessage, final String expAppTag,
final String expInfo, final Throwable expCause) {
- List<RpcError> errors = new ArrayList<>(result.getErrors());
- assertTrue("Expected error at index " + errorIndex + " not found",
- errorIndex < errors.size());
+ List<RpcError> errors = result.getErrors();
+ assertTrue("Expected error at index " + errorIndex + " not found", errorIndex < errors.size());
RpcError error = errors.get(errorIndex);
assertEquals("getSeverity", expSeverity, error.getSeverity());
assertEquals("getErrorType", expErrorType, error.getErrorType());