You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by sk...@apache.org on 2017/11/14 16:35:05 UTC
syncope git commit: [SYNCOPE-1229] It is now possible to properly
delete all task executions
Repository: syncope
Updated Branches:
refs/heads/2_0_X 1aa7bcaff -> 3a4535d9b
[SYNCOPE-1229] It is now possible to properly delete all task executions
Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/3a4535d9
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/3a4535d9
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/3a4535d9
Branch: refs/heads/2_0_X
Commit: 3a4535d9b1a85157333c028e52316287f77d3932
Parents: 1aa7bca
Author: skylark17 <ma...@tirasa.net>
Authored: Tue Nov 14 17:34:57 2017 +0100
Committer: skylark17 <ma...@tirasa.net>
Committed: Tue Nov 14 17:34:57 2017 +0100
----------------------------------------------------------------------
.../client/console/bulk/BulkContent.java | 42 +++++++++++++++-----
1 file changed, 31 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/syncope/blob/3a4535d9/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java
----------------------------------------------------------------------
diff --git a/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java b/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java
index d40cf37..58c8f57 100644
--- a/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java
+++ b/client/console/src/main/java/org/apache/syncope/client/console/bulk/BulkContent.java
@@ -42,6 +42,7 @@ import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink.Acti
import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
import org.apache.syncope.common.lib.to.BulkAction;
import org.apache.syncope.common.lib.to.BulkActionResult;
+import org.apache.syncope.common.lib.to.ExecTO;
import org.apache.syncope.common.lib.types.StandardEntitlement;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.ajax.markup.html.repeater.data.table.AjaxFallbackDefaultDataTable;
@@ -138,22 +139,41 @@ public class BulkContent<T extends Serializable, S> extends MultilevelPanel.Seco
BulkActionResult res = null;
try {
- if (items.iterator().next() instanceof StatusBean) {
+ T singleItem = items.iterator().next();
+ if (singleItem instanceof StatusBean) {
throw new IllegalArgumentException("Invalid items");
}
- final BulkAction bulkAction = new BulkAction();
- bulkAction.setType(BulkAction.Type.valueOf(actionToBeAddresed.name()));
- for (T item : items) {
- try {
- bulkAction.getTargets().add(getTargetId(item, keyFieldName).toString());
- } catch (IllegalAccessException | InvocationTargetException e) {
- LOG.error("Error retrieving item id {}", keyFieldName, e);
+ if (singleItem instanceof ExecTO) {
+ res = new BulkActionResult();
+ for (T item : items) {
+ ExecTO exec = ExecTO.class.cast(item);
+ String key = exec.getKey();
+
+ try {
+ bulkActionExecutor.getClass().getMethod("deleteExecution",
+ String.class).invoke(bulkActionExecutor, exec.getKey());
+ res.getResults().put(String.valueOf(key), BulkActionResult.Status.SUCCESS);
+ } catch (Exception e) {
+ LOG.error("Error deleting execution {} of task {}", exec.getKey(), key, e);
+ res.getResults().put(String.valueOf(key), BulkActionResult.Status.FAILURE);
+ }
}
+ } else {
+ final BulkAction bulkAction = new BulkAction();
+ bulkAction.setType(BulkAction.Type.valueOf(actionToBeAddresed.name()));
+ for (T item : items) {
+ try {
+ bulkAction.getTargets().add(getTargetId(item, keyFieldName).toString());
+ } catch (IllegalAccessException | InvocationTargetException e) {
+ LOG.error("Error retrieving item id {}", keyFieldName, e);
+ }
+ }
+ res = BulkActionResult.class.cast(
+ bulkActionExecutor.getClass().getMethod("bulkAction",
+ BulkAction.class).invoke(bulkActionExecutor, bulkAction));
}
- res = BulkActionResult.class.cast(
- bulkActionExecutor.getClass().getMethod("bulkAction", BulkAction.class).invoke(
- bulkActionExecutor, bulkAction));
+
} catch (IllegalArgumentException biae) {
if (!(items.iterator().next() instanceof StatusBean)) {
throw new IllegalArgumentException("Invalid items");