diff --git a/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/helper/SqlConnectionRunner.java b/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/helper/SqlConnectionRunner.java index acf93e564..a2080142d 100644 --- a/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/helper/SqlConnectionRunner.java +++ b/lib/taskana-core/src/main/java/pro/taskana/task/internal/jobs/helper/SqlConnectionRunner.java @@ -2,6 +2,7 @@ package pro.taskana.task.internal.jobs.helper; import java.sql.Connection; import java.sql.SQLException; +import java.util.Objects; import pro.taskana.common.api.TaskanaEngine; import pro.taskana.common.api.exceptions.SystemException; @@ -13,7 +14,7 @@ public class SqlConnectionRunner { private final TaskanaEngine taskanaEngine; public SqlConnectionRunner(TaskanaEngine taskanaEngine) { - this.taskanaEngine = taskanaEngine; + this.taskanaEngine = Objects.requireNonNull(taskanaEngine, "TaskanaEngine may not be null"); } /** diff --git a/lib/taskana-core/src/test/java/acceptance/jobs/helper/SqlConnectionRunnerAccTest.java b/lib/taskana-core/src/test/java/acceptance/jobs/helper/SqlConnectionRunnerAccTest.java index 152ceb876..769dcd1c6 100644 --- a/lib/taskana-core/src/test/java/acceptance/jobs/helper/SqlConnectionRunnerAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/jobs/helper/SqlConnectionRunnerAccTest.java @@ -12,7 +12,9 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import pro.taskana.common.api.exceptions.SystemException; +import pro.taskana.common.api.exceptions.TaskanaRuntimeException; import pro.taskana.common.test.security.JaasExtension; +import pro.taskana.common.test.security.WithAccessId; import pro.taskana.task.internal.jobs.helper.SqlConnectionRunner; /** Acceptance test for all "jobs tasks runner" scenarios. */ @@ -59,4 +61,30 @@ class SqlConnectionRunnerAccTest extends AbstractAccTest { })) .isInstanceOf(SystemException.class); } + + @Test + @WithAccessId(user = "admin") + void should_SetOriginalSchema_When_ExceptionThrown() throws Exception { + + taskanaEngine.getConfiguration().setSchemaName("NotExisting"); + SqlConnectionRunner runner = new SqlConnectionRunner(taskanaEngine); + + // TSK-1749 + assertThat(runner.getConnection().getSchema()).matches("TASKANA\\s|TASKANA|taskana"); + String taskId = "TKI:000000000000000000000000000000000000"; + + assertThatThrownBy( + () -> + runner.runWithConnection( + connection -> { + PreparedStatement preparedStatement = + connection.prepareStatement("select * from TASK where ID = ?"); + preparedStatement.setString(1, taskId); + preparedStatement.executeQuery(); + })) + .isInstanceOf(TaskanaRuntimeException.class); + + // TSK-1749 + assertThat(runner.getConnection().getSchema()).matches("TASKANA\\s|TASKANA|taskana"); + } } diff --git a/lib/taskana-core/src/test/java/acceptance/jobs/helper/TaskUpdatePriorityBatchStatementAccTest.java b/lib/taskana-core/src/test/java/acceptance/jobs/helper/TaskUpdatePriorityBatchStatementAccTest.java index 1e17addff..558a987c0 100644 --- a/lib/taskana-core/src/test/java/acceptance/jobs/helper/TaskUpdatePriorityBatchStatementAccTest.java +++ b/lib/taskana-core/src/test/java/acceptance/jobs/helper/TaskUpdatePriorityBatchStatementAccTest.java @@ -1,14 +1,12 @@ package acceptance.jobs.helper; import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; import acceptance.AbstractAccTest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; -import pro.taskana.common.api.exceptions.TaskanaRuntimeException; import pro.taskana.common.test.security.JaasExtension; import pro.taskana.common.test.security.WithAccessId; import pro.taskana.task.api.models.Task; @@ -26,37 +24,6 @@ class TaskUpdatePriorityBatchStatementAccTest extends AbstractAccTest { resetDb(true); } - @Test - @WithAccessId(user = "admin") - void should_SetOriginalSchema_When_ExceptionThrown() throws Exception { - - taskanaEngine.getConfiguration().setSchemaName("NotExisting"); - SqlConnectionRunner runner = new SqlConnectionRunner(taskanaEngine); - - // TSK-1749 - assertThat(runner.getConnection().getSchema()).matches("TASKANA\\s|TASKANA|taskana"); - - String taskId = "TKI:000000000000000000000000000000000050"; - final int priorityUpdate = 25; - - assertThatThrownBy( - () -> - runner.runWithConnection( - connection -> { - final TaskUpdatePriorityBatchStatement batchStatement = - new TaskUpdatePriorityBatchStatement(connection); - batchStatement.addPriorityUpdate(taskId, priorityUpdate); - batchStatement.executeBatch(); - if (!connection.getAutoCommit()) { - connection.commit(); - } - })) - .isInstanceOf(TaskanaRuntimeException.class); - - // TSK-1749 - assertThat(runner.getConnection().getSchema()).matches("TASKANA\\s|TASKANA|taskana"); - } - @Test @WithAccessId(user = "admin") void should_updatePriority() throws Exception {