diff --git a/libreplan-business/src/main/java/org/libreplan/business/common/AdHocTransactionService.java b/libreplan-business/src/main/java/org/libreplan/business/common/AdHocTransactionService.java index d33a40507..f4cee5e70 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/common/AdHocTransactionService.java +++ b/libreplan-business/src/main/java/org/libreplan/business/common/AdHocTransactionService.java @@ -103,6 +103,7 @@ public class AdHocTransactionService implements IAdHocTransactionService { }; } + @Override @Transactional public T runOnTransaction(IOnTransaction onTransaction) { return onTransaction.execute(); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java index 7f8f603be..3f5261e65 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java @@ -589,9 +589,19 @@ public class SaveCommandBuilder { removeEmptyConsolidation(taskElement); updateLimitingResourceQueueElementDates(taskElement); - if (taskElement.getTaskSource() != null && taskElement.getTaskSource().isNewObject()) + if (taskElement.getTaskSource() != null && taskElement.getTaskSource().isNewObject()) { saveTaskSources(taskElement); + // hack to update taskPropertiesController reference to current currentTaskElement + if (SaveCommandBuilder.taskPropertiesController != null) { + TaskElement taskControllerTaskElement = SaveCommandBuilder.taskPropertiesController.getCurrentTaskElement(); + if ( taskControllerTaskElement != null && taskControllerTaskElement.getOrderElement() == taskElement.getOrderElement() && + taskControllerTaskElement.isNewObject()) { + SaveCommandBuilder.taskPropertiesController.setCurrentTaskElement(taskElement); + } + } + } + updateLimitingQueueDependencies(taskElement); } saveRootTask(); diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/TaskPropertiesController.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/TaskPropertiesController.java index ca54f7311..0554c4248 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/TaskPropertiesController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/taskedition/TaskPropertiesController.java @@ -826,4 +826,12 @@ public class TaskPropertiesController extends GenericForwardComposer return this; } + public TaskElement getCurrentTaskElement() { + return currentTaskElement; + } + + public void setCurrentTaskElement(TaskElement taskElement) { + currentTaskElement = taskElement; + } + }