You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2018/07/27 07:40:21 UTC
[2/3] syncope git commit: [SYNCOPE-1346] Ensure PropagationTask is
not already in the JPA context before creating new one
[SYNCOPE-1346] Ensure PropagationTask is not already in the JPA context before creating new one
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/ae058846
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/ae058846
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/ae058846
Branch: refs/heads/master
Commit: ae058846238567128f1ff4969e5f8709750c35ae
Parents: 0895017
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Fri Jul 27 09:39:43 2018 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Fri Jul 27 09:39:55 2018 +0200
----------------------------------------------------------------------
.../apache/syncope/core/logic/TaskLogic.java | 2 +-
.../AbstractPropagationTaskExecutor.java | 23 ++++++++++++--------
2 files changed, 15 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/ae058846/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
index 2da812e..526fb63 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
@@ -228,7 +228,7 @@ public class TaskLogic extends AbstractExecutableLogic<TaskTO> {
ExecTO result = null;
switch (taskUtil.getType()) {
case PROPAGATION:
- TaskExec propExec = taskExecutor.execute((PropagationTaskTO) binder.getTaskTO(task, taskUtil, false));
+ TaskExec propExec = taskExecutor.execute(binder.<PropagationTaskTO>getTaskTO(task, taskUtil, false));
result = binder.getExecTO(propExec);
break;
http://git-wip-us.apache.org/repos/asf/syncope/blob/ae058846/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
index b55eacc..4d7f00d 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/AbstractPropagationTaskExecutor.java
@@ -350,15 +350,20 @@ public abstract class AbstractPropagationTaskExecutor implements PropagationTask
}
protected TaskExec execute(final PropagationTaskTO taskTO, final PropagationReporter reporter) {
- PropagationTask task = entityFactory.newEntity(PropagationTask.class);
- task.setResource(resourceDAO.find(taskTO.getResource()));
- task.setObjectClassName(taskTO.getObjectClassName());
- task.setAnyTypeKind(taskTO.getAnyTypeKind());
- task.setAnyType(taskTO.getAnyType());
- task.setEntityKey(taskTO.getEntityKey());
- task.setOperation(taskTO.getOperation());
- task.setConnObjectKey(taskTO.getConnObjectKey());
- task.setOldConnObjectKey(taskTO.getOldConnObjectKey());
+ PropagationTask task;
+ if (taskTO.getKey() == null) {
+ task = entityFactory.newEntity(PropagationTask.class);
+ task.setResource(resourceDAO.find(taskTO.getResource()));
+ task.setObjectClassName(taskTO.getObjectClassName());
+ task.setAnyTypeKind(taskTO.getAnyTypeKind());
+ task.setAnyType(taskTO.getAnyType());
+ task.setEntityKey(taskTO.getEntityKey());
+ task.setOperation(taskTO.getOperation());
+ task.setConnObjectKey(taskTO.getConnObjectKey());
+ task.setOldConnObjectKey(taskTO.getOldConnObjectKey());
+ } else {
+ task = taskDAO.find(taskTO.getKey());
+ }
Set<Attribute> attributes = new HashSet<>();
if (StringUtils.isNotBlank(taskTO.getAttributes())) {
attributes.addAll(Arrays.asList(POJOHelper.deserialize(taskTO.getAttributes(), Attribute[].class)));