Fix TransientObjectException when allocating a resource to a previously saved schedule

Fixes #3
This commit is contained in:
lmann99 2017-01-22 11:51:02 -05:00
parent f95977c986
commit 4b952866a0
3 changed files with 20 additions and 1 deletions

View file

@ -103,6 +103,7 @@ public class AdHocTransactionService implements IAdHocTransactionService {
};
}
@Override
@Transactional
public <T> T runOnTransaction(IOnTransaction<T> onTransaction) {
return onTransaction.execute();

View file

@ -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();

View file

@ -826,4 +826,12 @@ public class TaskPropertiesController extends GenericForwardComposer<Component>
return this;
}
public TaskElement getCurrentTaskElement() {
return currentTaskElement;
}
public void setCurrentTaskElement(TaskElement taskElement) {
currentTaskElement = taskElement;
}
}