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 2017/06/22 05:09:17 UTC
[2/2] syncope git commit: [SYNCOPE-1114] Re-reading group in the same
transaction where the PropagationActions class is executed to avoid NULL
collections via LAZY loading
[SYNCOPE-1114] Re-reading group in the same transaction where the PropagationActions class is executed to avoid NULL collections via LAZY loading
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/16096f6d
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/16096f6d
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/16096f6d
Branch: refs/heads/master
Commit: 16096f6d8a84aa55e49f76d91c6e453f84d28fb8
Parents: 6edc1e6
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Thu Jun 22 07:08:46 2017 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Thu Jun 22 07:09:05 2017 +0200
----------------------------------------------------------------------
.../LDAPMembershipPropagationActions.java | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/16096f6d/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
index 29390be..d5f8d3d 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPMembershipPropagationActions.java
@@ -32,6 +32,7 @@ import org.apache.syncope.core.persistence.api.entity.task.PropagationTask;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.provisioning.java.jexl.JexlUtils;
import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
+import org.apache.syncope.core.persistence.api.dao.GroupDAO;
import org.apache.syncope.core.persistence.api.entity.resource.Provision;
import org.identityconnectors.framework.common.objects.Attribute;
import org.identityconnectors.framework.common.objects.AttributeBuilder;
@@ -58,6 +59,9 @@ public class LDAPMembershipPropagationActions extends DefaultPropagationActions
@Autowired
protected UserDAO userDAO;
+ @Autowired
+ protected GroupDAO groupDAO;
+
/**
* Allows easy subclassing for the ConnId AD connector bundle.
*
@@ -73,14 +77,16 @@ public class LDAPMembershipPropagationActions extends DefaultPropagationActions
super.before(task, beforeObj);
Provision provision = task.getResource().getProvision(anyTypeDAO.findGroup());
- if (AnyTypeKind.USER == task.getAnyTypeKind() && provision != null && provision.getMapping() != null) {
+ if (AnyTypeKind.USER == task.getAnyTypeKind()
+ && provision != null && provision.getMapping() != null
+ && StringUtils.isNotBlank(provision.getMapping().getConnObjectLink())) {
+
User user = userDAO.find(task.getEntityKey());
if (user != null) {
List<String> groupConnObjectLinks = new ArrayList<>();
- for (Group group : userDAO.findAllGroups(user)) {
- if (group.getResourceKeys().contains(task.getResource().getKey())
- && StringUtils.isNotBlank(provision.getMapping().getConnObjectLink())) {
-
+ for (String groupKey : userDAO.findAllGroupKeys(user)) {
+ Group group = groupDAO.find(groupKey);
+ if (group != null && group.getResourceKeys().contains(task.getResource().getKey())) {
LOG.debug("Evaluating connObjectLink for {}", group);
JexlContext jexlContext = new MapContext();