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 @Transactional
public <T> T runOnTransaction(IOnTransaction<T> onTransaction) { public <T> T runOnTransaction(IOnTransaction<T> onTransaction) {
return onTransaction.execute(); return onTransaction.execute();

View file

@ -589,9 +589,19 @@ public class SaveCommandBuilder {
removeEmptyConsolidation(taskElement); removeEmptyConsolidation(taskElement);
updateLimitingResourceQueueElementDates(taskElement); updateLimitingResourceQueueElementDates(taskElement);
if (taskElement.getTaskSource() != null && taskElement.getTaskSource().isNewObject()) if (taskElement.getTaskSource() != null && taskElement.getTaskSource().isNewObject()) {
saveTaskSources(taskElement); 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); updateLimitingQueueDependencies(taskElement);
} }
saveRootTask(); saveRootTask();

View file

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