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");