Expose conflict errors

This commit is contained in:
René Pfeuffer
2019-03-08 08:58:09 +01:00
parent 67431b1e2b
commit b0f95fbcc6
2 changed files with 11 additions and 1 deletions

View File

@@ -52,6 +52,13 @@ export class NotFoundError extends BackendError {
super(content, "NotFoundError", statusCode);
}
}
export class ConflictError extends BackendError {
constructor(content: BackendErrorContent, statusCode: number) {
super(content, "ConflictError", statusCode);
}
}
export function createBackendError(
content: BackendErrorContent,
statusCode: number
@@ -59,6 +66,8 @@ export function createBackendError(
switch (statusCode) {
case 404:
return new NotFoundError(content, statusCode);
case 409:
return new ConflictError(content, statusCode);
default:
return new BackendError(content, "BackendError", statusCode);
}

View File

@@ -4,6 +4,7 @@ import com.webcohesion.enunciate.metadata.rs.ResponseCode;
import com.webcohesion.enunciate.metadata.rs.StatusCodes;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpStatus;
import sonia.scm.ConcurrentModificationException;
import sonia.scm.repository.NamespaceAndName;
import sonia.scm.repository.api.MergeCommandBuilder;
import sonia.scm.repository.api.MergeCommandResult;
@@ -73,7 +74,7 @@ public class MergeResource {
if (mergeCommandResult.isMergeable()) {
return Response.noContent().build();
} else {
return Response.status(HttpStatus.SC_CONFLICT).build();
throw new ConcurrentModificationException("revision", mergeCommand.getTargetRevision());
}
}
}