TSK-1993 InvalidArgumentException extends TaskanaRuntimeException

This commit is contained in:
arolfes 2023-02-13 16:15:15 +01:00 committed by Mustapha Zorgati
parent 20d389a7d5
commit f9e6b26817
5 changed files with 13 additions and 19 deletions

View File

@ -1,7 +1,7 @@
package pro.taskana.common.api.exceptions; package pro.taskana.common.api.exceptions;
/** This exception is thrown when a method is called with an invalid argument. */ /** This exception is thrown when a method is called with an invalid argument. */
public class InvalidArgumentException extends TaskanaException { public class InvalidArgumentException extends TaskanaRuntimeException {
public static final String ERROR_KEY = "INVALID_ARGUMENT"; public static final String ERROR_KEY = "INVALID_ARGUMENT";

View File

@ -5,7 +5,6 @@ import static java.util.function.Predicate.not;
import java.time.Instant; import java.time.Instant;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
@ -1580,8 +1579,7 @@ public class TaskServiceImpl implements TaskService {
Iterator<String> taskIdIterator) { Iterator<String> taskIdIterator) {
String currentTaskId = taskIdIterator.next(); String currentTaskId = taskIdIterator.next();
if (currentTaskId == null || currentTaskId.equals("")) { if (currentTaskId == null || currentTaskId.equals("")) {
bulkLog.addError( bulkLog.addError("", new TaskNotFoundException(null));
"", new InvalidArgumentException("IDs with EMPTY or NULL value are not allowed."));
taskIdIterator.remove(); taskIdIterator.remove();
} else { } else {
MinimalTaskSummary foundSummary = MinimalTaskSummary foundSummary =
@ -1620,8 +1618,7 @@ public class TaskServiceImpl implements TaskService {
CallbackState desiredCallbackState) { CallbackState desiredCallbackState) {
String currentExternalId = externalIdIterator.next(); String currentExternalId = externalIdIterator.next();
if (currentExternalId == null || currentExternalId.equals("")) { if (currentExternalId == null || currentExternalId.equals("")) {
bulkLog.addError( bulkLog.addError("", new TaskNotFoundException(null));
"", new InvalidArgumentException("IDs with EMPTY or NULL value are not allowed."));
externalIdIterator.remove(); externalIdIterator.remove();
} else { } else {
Optional<MinimalTaskSummary> foundSummary = Optional<MinimalTaskSummary> foundSummary =
@ -1681,15 +1678,12 @@ public class TaskServiceImpl implements TaskService {
break; break;
default: default:
return Optional.of( return Optional.of(
new InvalidArgumentException( new InvalidCallbackStateException(
String.format( foundSummary.getTaskId(),
"desired callbackState has to be in '%s'", currentTaskCallbackState,
Arrays.toString( CallbackState.CALLBACK_PROCESSING_COMPLETED,
new CallbackState[] { CallbackState.CLAIMED,
CallbackState.CALLBACK_PROCESSING_COMPLETED, CallbackState.CALLBACK_PROCESSING_REQUIRED));
CallbackState.CLAIMED,
CallbackState.CALLBACK_PROCESSING_REQUIRED
}))));
} }
return Optional.empty(); return Optional.empty();
} }

View File

@ -206,7 +206,7 @@ final class TaskTransferrer {
Set<String> sourceWorkbasketIds, String taskId, TaskSummary taskSummary) { Set<String> sourceWorkbasketIds, String taskId, TaskSummary taskSummary) {
TaskanaException error = null; TaskanaException error = null;
if (taskId == null || taskId.isEmpty()) { if (taskId == null || taskId.isEmpty()) {
error = new InvalidArgumentException("TaskId should not be null or empty"); error = new TaskNotFoundException(null);
} else if (taskSummary == null) { } else if (taskSummary == null) {
error = new TaskNotFoundException(taskId); error = new TaskNotFoundException(taskId);
} else if (taskSummary.getState().isEndState()) { } else if (taskSummary.getState().isEndState()) {

View File

@ -294,8 +294,8 @@ class TransferTaskAccTest extends AbstractAccTest {
.isEqualTo(TaskNotFoundException.class); .isEqualTo(TaskNotFoundException.class);
assertThat(results.getErrorForId("TKI:100000000000000000000000000000000006").getClass()) assertThat(results.getErrorForId("TKI:100000000000000000000000000000000006").getClass())
.isEqualTo(InvalidTaskStateException.class); .isEqualTo(InvalidTaskStateException.class);
assertThat(results.getErrorForId("").getClass()).isEqualTo(InvalidArgumentException.class); assertThat(results.getErrorForId("").getClass()).isEqualTo(TaskNotFoundException.class);
assertThat(results.getErrorForId(null).getClass()).isEqualTo(InvalidArgumentException.class); assertThat(results.getErrorForId(null).getClass()).isEqualTo(TaskNotFoundException.class);
// verify valid requests // verify valid requests
Task transferredTask = taskService.getTask("TKI:000000000000000000000000000000000006"); Task transferredTask = taskService.getTask("TKI:000000000000000000000000000000000006");

View File

@ -137,7 +137,7 @@ public class TaskanaRestExceptionHandler extends ResponseEntityExceptionHandler
BeanInstantiationException ex, WebRequest req) { BeanInstantiationException ex, WebRequest req) {
if (ex.getCause() instanceof InvalidArgumentException) { if (ex.getCause() instanceof InvalidArgumentException) {
InvalidArgumentException cause = (InvalidArgumentException) ex.getCause(); InvalidArgumentException cause = (InvalidArgumentException) ex.getCause();
return handleTaskanaException(cause, req); return handleTaskanaRuntimeException(cause, req);
} }
return buildResponse(null, ex, req, HttpStatus.INTERNAL_SERVER_ERROR); return buildResponse(null, ex, req, HttpStatus.INTERNAL_SERVER_ERROR);
} }