--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/tasks/TaskManager.java 2016/02/04 14:21:30 2917 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/tasks/TaskManager.java 2016/02/04 14:40:36 2918 @@ -8,6 +8,7 @@ import java.util.concurrent.Executors; import dk.daoas.adressevedligehold.tasks.Task.TaskBean; +import dk.daoas.adressevedligehold.tasks.Task.TaskState; public class TaskManager { @@ -54,6 +55,15 @@ executor.shutdownNow(); } + public synchronized void removeTask(Task removeTask) { + if (removeTask.state == TaskState.STATE_ABORTED || removeTask.state == TaskState.STATE_DONE) { + taskIdMap.remove( removeTask.getId() ); + tasks.remove(removeTask); + } else { + throw new RuntimeException("Cant remove task in current state:" + removeTask.state); + } + } + public synchronized void submitTask(Task newTask) { int id = getNextTaskid(); newTask.setId(id);