You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2018/10/15 14:22:10 UTC
syncope git commit: [SYNCOPE-1385] makes
PriorityPropagationTaskExecutor timeout closer to the maximum connector
connection request timeout
Repository: syncope
Updated Branches:
refs/heads/2_0_X 59b806731 -> 28812f7d1
[SYNCOPE-1385] makes PriorityPropagationTaskExecutor timeout closer to the maximum connector connection request timeout
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/28812f7d
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/28812f7d
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/28812f7d
Branch: refs/heads/2_0_X
Commit: 28812f7d168b054eae78909092fa42840dd97ef2
Parents: 59b8067
Author: fmartelli <fa...@gmail.com>
Authored: Mon Oct 15 16:21:59 2018 +0200
Committer: fmartelli <fa...@gmail.com>
Committed: Mon Oct 15 16:21:59 2018 +0200
----------------------------------------------------------------------
.../PriorityPropagationTaskExecutor.java | 23 ++++++++++++--------
1 file changed, 14 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/28812f7d/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
index 4535802..9fc95ca 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
@@ -34,7 +34,6 @@ import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import javax.annotation.Resource;
import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.collections4.Predicate;
import org.apache.syncope.common.lib.to.PropagationTaskTO;
import org.apache.syncope.common.lib.types.PropagationTaskExecStatus;
import org.apache.syncope.core.persistence.api.entity.resource.ExternalResource;
@@ -85,17 +84,23 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
final boolean nullPriorityAsync) {
final Map<PropagationTaskTO, ExternalResource> taskToResource = new HashMap<>(tasks.size());
+ List<PropagationTaskTO> prioritizedTasks = new ArrayList<>();
+ int connRequestTimeout = 60;
for (PropagationTaskTO task : tasks) {
- taskToResource.put(task, resourceDAO.find(task.getResource()));
- }
+ ExternalResource resource = resourceDAO.find(task.getResource());
+ taskToResource.put(task, resource);
- List<PropagationTaskTO> prioritizedTasks = CollectionUtils.select(tasks, new Predicate<PropagationTaskTO>() {
+ if (resource.getPropagationPriority() != null) {
+ prioritizedTasks.add(task);
- @Override
- public boolean evaluate(final PropagationTaskTO task) {
- return taskToResource.get(task).getPropagationPriority() != null;
+ if (resource.getConnector().getConnRequestTimeout() != null
+ && connRequestTimeout < resource.getConnector().getConnRequestTimeout()) {
+ connRequestTimeout = resource.getConnector().getConnRequestTimeout();
+ LOG.debug("Upgrade request connection timeout to {}", connRequestTimeout);
+ }
}
- }, new ArrayList<PropagationTaskTO>());
+ }
+
Collections.sort(prioritizedTasks, new PriorityComparator(taskToResource));
LOG.debug("Propagation tasks sorted by priority, for serial execution: {}", prioritizedTasks);
@@ -152,7 +157,7 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
}
}
}
- }).get(60, TimeUnit.SECONDS);
+ }).get(connRequestTimeout, TimeUnit.SECONDS);
} catch (Exception e) {
LOG.error("Unexpected exception", e);
} finally {