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/10/10 07:00:58 UTC
[3/3] syncope git commit: [SYNCOPE-1380] Raise
IgnoreProvisionException, more appropriate
[SYNCOPE-1380] Raise IgnoreProvisionException, more appropriate
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/dd09c8a2
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/dd09c8a2
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/dd09c8a2
Branch: refs/heads/2_0_X
Commit: dd09c8a20bc8c4091b6cf635899c8e7fcd49e9f7
Parents: 350f650
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Wed Oct 10 08:52:07 2018 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Wed Oct 10 09:00:45 2018 +0200
----------------------------------------------------------------------
.../api/pushpull/IgnoreProvisionException.java | 10 ++++--
.../pushpull/AbstractPullResultHandler.java | 34 +++++++++++---------
.../pushpull/AbstractPushResultHandler.java | 1 +
.../pushpull/DefaultRealmPullResultHandler.java | 3 +-
4 files changed, 29 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/dd09c8a2/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/IgnoreProvisionException.java
----------------------------------------------------------------------
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/IgnoreProvisionException.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/IgnoreProvisionException.java
index bf56246..95d37e8 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/IgnoreProvisionException.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/IgnoreProvisionException.java
@@ -19,11 +19,17 @@
package org.apache.syncope.core.provisioning.api.pushpull;
/**
- * Raised by {@link PullActions} or {@link PushActions} methods when the given any object is to be ignored for
- * pull / push.
+ * Raised when the given any object is to be ignored for pull / push.
*/
public class IgnoreProvisionException extends RuntimeException {
private static final long serialVersionUID = -8803817097998786364L;
+ public IgnoreProvisionException() {
+ super();
+ }
+
+ public IgnoreProvisionException(final String message) {
+ super(message);
+ }
}
http://git-wip-us.apache.org/repos/asf/syncope/blob/dd09c8a2/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
index 0521990..6324199 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
@@ -144,6 +144,7 @@ public abstract class AbstractPullResultHandler extends AbstractSyncopeResultHan
ignoreResult.setAnyType(provision == null
? getAnyUtils().anyTypeKind().name() : provision.getAnyType().getKey());
ignoreResult.setStatus(ProvisioningReport.Status.IGNORE);
+ ignoreResult.setMessage(e.getMessage());
ignoreResult.setKey(null);
ignoreResult.setName(delta.getObject().getName().getNameValue());
profile.getResults().add(ignoreResult);
@@ -728,21 +729,22 @@ public abstract class AbstractPullResultHandler extends AbstractSyncopeResultHan
processed.getDeltaType(), processed.getUid().getUidValue(), processed.getObject().getObjectClass());
try {
- List<String> anyKeys = pullUtils.match(processed.getObject(), provision, anyUtils);
+ List<String> keys = pullUtils.match(processed.getObject(), provision, anyUtils);
LOG.debug("Match(es) found for {} as {}: {}",
- processed.getUid().getUidValue(), processed.getObject().getObjectClass(), anyKeys);
+ processed.getUid().getUidValue(), processed.getObject().getObjectClass(), keys);
- if (anyKeys.size() > 1) {
+ if (keys.size() > 1) {
switch (profile.getResAct()) {
case IGNORE:
- throw new IllegalStateException("More than one match " + anyKeys);
+ throw new IgnoreProvisionException("More than one match found for "
+ + processed.getObject().getUid().getUidValue() + ": " + keys);
case FIRSTMATCH:
- anyKeys = anyKeys.subList(0, 1);
+ keys = keys.subList(0, 1);
break;
case LASTMATCH:
- anyKeys = anyKeys.subList(anyKeys.size() - 1, anyKeys.size());
+ keys = keys.subList(keys.size() - 1, keys.size());
break;
default:
@@ -751,7 +753,7 @@ public abstract class AbstractPullResultHandler extends AbstractSyncopeResultHan
}
if (SyncDeltaType.CREATE_OR_UPDATE == processed.getDeltaType()) {
- if (anyKeys.isEmpty()) {
+ if (keys.isEmpty()) {
switch (profile.getTask().getUnmatchingRule()) {
case ASSIGN:
profile.getResults().addAll(assign(processed, provision, anyUtils));
@@ -772,7 +774,7 @@ public abstract class AbstractPullResultHandler extends AbstractSyncopeResultHan
// update VirAttrCache
for (VirSchema virSchema : virSchemaDAO.findByProvision(provision)) {
Attribute attr = processed.getObject().getAttributeByName(virSchema.getExtAttrName());
- for (String anyKey : anyKeys) {
+ for (String anyKey : keys) {
if (attr == null) {
virAttrCache.expire(
provision.getAnyType().getKey(),
@@ -792,27 +794,27 @@ public abstract class AbstractPullResultHandler extends AbstractSyncopeResultHan
switch (profile.getTask().getMatchingRule()) {
case UPDATE:
- profile.getResults().addAll(update(processed, anyKeys, provision));
+ profile.getResults().addAll(update(processed, keys, provision));
break;
case DEPROVISION:
- profile.getResults().addAll(deprovision(processed, anyKeys, provision, false));
+ profile.getResults().addAll(deprovision(processed, keys, provision, false));
break;
case UNASSIGN:
- profile.getResults().addAll(deprovision(processed, anyKeys, provision, true));
+ profile.getResults().addAll(deprovision(processed, keys, provision, true));
break;
case LINK:
- profile.getResults().addAll(link(processed, anyKeys, provision, false));
+ profile.getResults().addAll(link(processed, keys, provision, false));
break;
case UNLINK:
- profile.getResults().addAll(link(processed, anyKeys, provision, true));
+ profile.getResults().addAll(link(processed, keys, provision, true));
break;
case IGNORE:
- profile.getResults().addAll(ignore(processed, anyKeys, provision, true));
+ profile.getResults().addAll(ignore(processed, keys, provision, true));
break;
default:
@@ -820,11 +822,11 @@ public abstract class AbstractPullResultHandler extends AbstractSyncopeResultHan
}
}
} else if (SyncDeltaType.DELETE == processed.getDeltaType()) {
- if (anyKeys.isEmpty()) {
+ if (keys.isEmpty()) {
finalize(ResourceOperation.DELETE.name().toLowerCase(), Result.SUCCESS, null, null, processed);
LOG.debug("No match found for deletion");
} else {
- profile.getResults().addAll(delete(processed, anyKeys, provision));
+ profile.getResults().addAll(delete(processed, keys, provision));
}
}
} catch (IllegalStateException | IllegalArgumentException e) {
http://git-wip-us.apache.org/repos/asf/syncope/blob/dd09c8a2/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
index 076f7bd..298760a 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
@@ -242,6 +242,7 @@ public abstract class AbstractPushResultHandler extends AbstractSyncopeResultHan
result.setOperation(ResourceOperation.NONE);
result.setStatus(ProvisioningReport.Status.IGNORE);
+ result.setMessage(e.getMessage());
LOG.warn("Ignoring during push", e);
return true;
http://git-wip-us.apache.org/repos/asf/syncope/blob/dd09c8a2/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPullResultHandler.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPullResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPullResultHandler.java
index 95cb3d5..ad45010 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPullResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPullResultHandler.java
@@ -687,7 +687,8 @@ public class DefaultRealmPullResultHandler
if (keys.size() > 1) {
switch (profile.getResAct()) {
case IGNORE:
- throw new IllegalStateException("More than one match " + keys);
+ throw new IgnoreProvisionException("More than one match found for "
+ + processed.getObject().getUid().getUidValue() + ": " + keys);
case FIRSTMATCH:
keys = keys.subList(0, 1);