Repository: syncope
Updated Branches:
  refs/heads/1_2_X fc421a5ec -> b4812b218


Fixed SYNCOPE-741


Project: http://git-wip-us.apache.org/repos/asf/syncope/repo
Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b4812b21
Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b4812b21
Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b4812b21

Branch: refs/heads/1_2_X
Commit: b4812b218b60c821fa00309674018045b5bcc1de
Parents: fc421a5
Author: Massimiliano Perrone <massimiliano.perr...@tirasa.net>
Authored: Thu Dec 10 15:14:07 2015 +0100
Committer: Massimiliano Perrone <massimiliano.perr...@tirasa.net>
Committed: Thu Dec 10 15:14:07 2015 +0100

----------------------------------------------------------------------
 .../syncope/common/services/TaskService.java    | 24 +++++++-
 .../syncope/common/to/AbstractSyncTaskTO.java   |  2 +-
 .../syncope/common/to/AbstractTaskTO.java       |  2 +-
 .../syncope/console/pages/TaskModalPage.java    | 50 +++++++++-------
 .../org/apache/syncope/console/pages/Tasks.java | 20 ++++---
 .../pages/panels/AbstractSyncTasksPanel.java    |  2 +-
 .../console/pages/panels/PropagationTasks.java  |  2 +-
 .../syncope/console/rest/TaskRestClient.java    | 30 ++++++----
 .../core/rest/controller/TaskController.java    | 28 +++++----
 .../syncope/core/rest/data/TaskDataBinder.java  | 14 +++--
 .../syncope/core/services/TaskServiceImpl.java  | 20 ++++---
 .../core/notification/NotificationTest.java     |  2 +-
 .../syncope/core/rest/TaskTestITCase.java       | 63 ++++++++++++--------
 .../syncope/core/rest/UserTestITCase.java       | 60 +++++++++----------
 14 files changed, 191 insertions(+), 128 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/common/src/main/java/org/apache/syncope/common/services/TaskService.java
----------------------------------------------------------------------
diff --git 
a/common/src/main/java/org/apache/syncope/common/services/TaskService.java 
b/common/src/main/java/org/apache/syncope/common/services/TaskService.java
index 5b197c6..0deba68 100644
--- a/common/src/main/java/org/apache/syncope/common/services/TaskService.java
+++ b/common/src/main/java/org/apache/syncope/common/services/TaskService.java
@@ -91,13 +91,15 @@ public interface TaskService extends JAXRSService {
      * Returns the task matching the given id.
      *
      * @param taskId id of task to be read
+     * @param details whether include executions or not, defaults to true
      * @param <T> type of taskTO
      * @return task with matching id
      */
     @GET
     @Path("{taskId}")
     @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
-    <T extends AbstractTaskTO> T read(@NotNull @PathParam("taskId") Long 
taskId);
+    <T extends AbstractTaskTO> T read(@NotNull @PathParam("taskId") Long 
taskId,
+            @QueryParam(PARAM_DETAILS) @DefaultValue("true") boolean details);
 
     /**
      * Returns the task execution with the given id.
@@ -141,6 +143,7 @@ public interface TaskService extends JAXRSService {
      * @param page page number of tasks in relation to page size
      * @param size number of tasks listed per page
      * @param orderBy list of ordering clauses, separated by comma
+     * @param details whether include executions or not, defaults to true
      * @param <T> type of taskTO
      * @return paged list of existing tasks matching type and page/size 
conditions
      */
@@ -149,7 +152,8 @@ public interface TaskService extends JAXRSService {
     <T extends AbstractTaskTO> PagedResult<T> list(@NotNull 
@MatrixParam("type") TaskType taskType,
             @NotNull @Min(1) @QueryParam(PARAM_PAGE) 
@DefaultValue(DEFAULT_PARAM_PAGE) Integer page,
             @NotNull @Min(1) @QueryParam(PARAM_SIZE) 
@DefaultValue(DEFAULT_PARAM_SIZE) Integer size,
-            @QueryParam(PARAM_ORDERBY) String orderBy);
+            @QueryParam(PARAM_ORDERBY) String orderBy,
+            @QueryParam(PARAM_DETAILS) @DefaultValue("true") boolean details);
 
     /**
      * Returns a paged list of existing tasks matching type and page/size 
conditions.
@@ -167,6 +171,22 @@ public interface TaskService extends JAXRSService {
             @NotNull @Min(1) @QueryParam(PARAM_SIZE) 
@DefaultValue(DEFAULT_PARAM_SIZE) Integer size);
 
     /**
+     * Returns the task matching the given id.
+     *
+     * @param taskId id of task where to list the executions
+     * @param page page number of executions in relation to page size
+     * @param size number of executions listed per page
+     * @return list of executions with matching id
+     */
+    @GET
+    @Path("{taskId}/executions")
+    @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
+    PagedResult<TaskExecTO> listEexecutions(
+            @NotNull @Min(1) @QueryParam(PARAM_PAGE) 
@DefaultValue(DEFAULT_PARAM_PAGE) Integer page,
+            @NotNull @Min(1) @QueryParam(PARAM_SIZE) 
@DefaultValue(DEFAULT_PARAM_SIZE) Integer size,
+            @NotNull @PathParam("taskId") Long taskId);
+
+    /**
      * Creates a new task.
      *
      * @param taskTO task to be created

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/common/src/main/java/org/apache/syncope/common/to/AbstractSyncTaskTO.java
----------------------------------------------------------------------
diff --git 
a/common/src/main/java/org/apache/syncope/common/to/AbstractSyncTaskTO.java 
b/common/src/main/java/org/apache/syncope/common/to/AbstractSyncTaskTO.java
index 8d6c129..751ab04 100644
--- a/common/src/main/java/org/apache/syncope/common/to/AbstractSyncTaskTO.java
+++ b/common/src/main/java/org/apache/syncope/common/to/AbstractSyncTaskTO.java
@@ -50,7 +50,7 @@ public class AbstractSyncTaskTO extends SchedTaskTO {
 
     private MatchingRule matchingRule;
 
-    private List<String> actionsClassNames = new ArrayList<String>();
+    private final List<String> actionsClassNames = new ArrayList<String>();
 
     public String getResource() {
         return resource;

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/common/src/main/java/org/apache/syncope/common/to/AbstractTaskTO.java
----------------------------------------------------------------------
diff --git 
a/common/src/main/java/org/apache/syncope/common/to/AbstractTaskTO.java 
b/common/src/main/java/org/apache/syncope/common/to/AbstractTaskTO.java
index 518f985..c8a6ba7 100644
--- a/common/src/main/java/org/apache/syncope/common/to/AbstractTaskTO.java
+++ b/common/src/main/java/org/apache/syncope/common/to/AbstractTaskTO.java
@@ -45,7 +45,7 @@ public abstract class AbstractTaskTO extends AbstractBaseBean 
{
 
     private String latestExecStatus;
 
-    private List<TaskExecTO> executions = new ArrayList<TaskExecTO>();
+    private final List<TaskExecTO> executions = new ArrayList<TaskExecTO>();
 
     private Date startDate;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java
----------------------------------------------------------------------
diff --git 
a/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java 
b/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java
index bbb6ee7..aa4326e 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/TaskModalPage.java
@@ -90,8 +90,8 @@ public abstract class TaskModalPage extends BaseModalPage {
         final Label idLabel = new Label("idLabel", new ResourceModel("id"));
         profile.add(idLabel);
 
-        final AjaxTextFieldPanel id =
-                new AjaxTextFieldPanel("id", getString("id"), new 
PropertyModel<String>(taskTO, "id"));
+        final AjaxTextFieldPanel id = new AjaxTextFieldPanel("id", 
getString("id"), new PropertyModel<String>(taskTO,
+                "id"));
 
         id.setEnabled(false);
         profile.add(id);
@@ -173,9 +173,10 @@ public abstract class TaskModalPage extends BaseModalPage {
                     @Override
                     public void onClick(final AjaxRequestTarget target) {
                         if (target != null) {
-                            final AjaxFallbackDefaultDataTable<TaskExecTO, 
String> currentTable =
-                                    new 
AjaxFallbackDefaultDataTable<TaskExecTO, String>("executionsTable", columns,
-                                            new 
TaskExecutionsProvider(getCurrentTaskExecution(taskTO)), paginatorRows);
+                            final AjaxFallbackDefaultDataTable<TaskExecTO, 
String> currentTable
+                                    = new 
AjaxFallbackDefaultDataTable<TaskExecTO, String>("executionsTable", columns,
+                                            new 
TaskExecutionsProvider(taskTO.getId(), paginatorRows),
+                                            paginatorRows);
                             currentTable.setOutputMarkupId(true);
                             target.add(currentTable);
                             executions.addOrReplace(currentTable);
@@ -187,41 +188,46 @@ public abstract class TaskModalPage extends BaseModalPage 
{
             }
         });
 
-        final AjaxFallbackDefaultDataTable<TaskExecTO, String> table =
-                new AjaxFallbackDefaultDataTable<TaskExecTO, 
String>("executionsTable", columns,
-                        new 
TaskExecutionsProvider(getCurrentTaskExecution(taskTO)), paginatorRows);
+        final AjaxFallbackDefaultDataTable<TaskExecTO, String> table
+                = new AjaxFallbackDefaultDataTable<TaskExecTO, 
String>("executionsTable", columns,
+                        new TaskExecutionsProvider(taskTO.getId(), 
paginatorRows), paginatorRows);
 
         executions.add(table);
     }
 
-    protected static class TaskExecutionsProvider extends 
SortableDataProvider<TaskExecTO, String> {
+    protected class TaskExecutionsProvider extends 
SortableDataProvider<TaskExecTO, String> {
 
         private static final long serialVersionUID = 8943636537120648961L;
 
-        private SortableDataProviderComparator<TaskExecTO> comparator;
+        private final SortableDataProviderComparator<TaskExecTO> comparator;
 
-        private AbstractTaskTO taskTO;
+        private final Long taskId;
 
-        public TaskExecutionsProvider(final AbstractTaskTO taskTO) {
+        private final int paginatorRows;
+
+        public TaskExecutionsProvider(final Long taskId, final int 
paginatorRows) {
             //Default sorting
-            this.taskTO = taskTO;
+            this.taskId = taskId;
+            this.paginatorRows = paginatorRows;
             setSort("startDate", SortOrder.DESCENDING);
             comparator = new SortableDataProviderComparator<TaskExecTO>(this);
         }
 
         @Override
         public Iterator<TaskExecTO> iterator(final long first, final long 
count) {
+            final int page = ((int) first / paginatorRows);
 
-            List<TaskExecTO> list = taskTO.getExecutions();
+            final List<TaskExecTO> list = taskRestClient.listExecutions(
+                    (page < 0 ? 0 : page) + 1, paginatorRows, taskId);
 
             Collections.sort(list, comparator);
 
-            return list.subList((int) first, (int) first + (int) 
count).iterator();
+            return list.iterator();
         }
 
         @Override
         public long size() {
-            return taskTO.getExecutions().size();
+            return taskRestClient.countExecutions(taskId);
         }
 
         @Override
@@ -243,12 +249,12 @@ public abstract class TaskModalPage extends BaseModalPage 
{
         final AbstractTaskTO currentTask = taskTO.getId() == 0
                 ? taskTO
                 : taskTO instanceof PropagationTaskTO
-                ? taskRestClient.readPropagationTask(taskTO.getId())
-                : taskTO instanceof NotificationTaskTO
-                ? taskRestClient.readNotificationTask(taskTO.getId())
-                : taskTO instanceof SyncTaskTO
-                ? taskRestClient.readSchedTask(SyncTaskTO.class, 
taskTO.getId())
-                : taskRestClient.readSchedTask(SchedTaskTO.class, 
taskTO.getId());
+                        ? taskRestClient.readPropagationTask(taskTO.getId())
+                        : taskTO instanceof NotificationTaskTO
+                                ? 
taskRestClient.readNotificationTask(taskTO.getId())
+                                : taskTO instanceof SyncTaskTO
+                                        ? 
taskRestClient.readSchedTask(SyncTaskTO.class, taskTO.getId())
+                                        : 
taskRestClient.readSchedTask(SchedTaskTO.class, taskTO.getId());
 
         taskTO.getExecutions().clear();
         taskTO.getExecutions().addAll(currentTask.getExecutions());

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/console/src/main/java/org/apache/syncope/console/pages/Tasks.java
----------------------------------------------------------------------
diff --git a/console/src/main/java/org/apache/syncope/console/pages/Tasks.java 
b/console/src/main/java/org/apache/syncope/console/pages/Tasks.java
index 11819c6..b49f218 100644
--- a/console/src/main/java/org/apache/syncope/console/pages/Tasks.java
+++ b/console/src/main/java/org/apache/syncope/console/pages/Tasks.java
@@ -74,9 +74,9 @@ public class Tasks extends BasePage {
 
         private static final long serialVersionUID = -5401263348984206145L;
 
-        private SortableDataProviderComparator<TaskExecTO> comparator;
+        private final SortableDataProviderComparator<TaskExecTO> comparator;
 
-        private AbstractTaskTO taskTO;
+        private final AbstractTaskTO taskTO;
 
         public TaskExecutionsProvider(final AbstractTaskTO taskTO) {
             super();
@@ -125,15 +125,15 @@ public class Tasks extends BasePage {
 
         private static final long serialVersionUID = -20112718133295756L;
 
-        private SortableDataProviderComparator<T> comparator;
+        private final SortableDataProviderComparator<T> comparator;
 
-        private TaskRestClient restClient;
+        private final TaskRestClient restClient;
 
-        private int paginatorRows;
+        private final int paginatorRows;
 
-        private String id;
+        private final String id;
 
-        private Class<T> reference;
+        private final Class<T> reference;
 
         public TasksProvider(
                 final TaskRestClient restClient, final int paginatorRows, 
final String id, final Class<T> reference) {
@@ -213,8 +213,8 @@ public class Tasks extends BasePage {
                 columns,
                 (ISortableDataProvider<AbstractTaskTO, String>) dataProvider,
                 dataProvider.paginatorRows,
-                Arrays.asList(new ActionLink.ActionType[] {
-                    ActionLink.ActionType.DELETE, 
ActionLink.ActionType.DRYRUN, ActionLink.ActionType.EXECUTE }),
+                Arrays.asList(new ActionLink.ActionType[]{
+            ActionLink.ActionType.DELETE, ActionLink.ActionType.DRYRUN, 
ActionLink.ActionType.EXECUTE}),
                 restClient,
                 "id",
                 TASKS,
@@ -230,6 +230,8 @@ public class Tasks extends BasePage {
 
     /**
      * IndicatorMarkupId behaviour is embedded in Tasks.html
+     *
+     * @return
      */
     @Override
     public String getAjaxIndicatorMarkupId() {

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSyncTasksPanel.java
----------------------------------------------------------------------
diff --git 
a/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSyncTasksPanel.java
 
b/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSyncTasksPanel.java
index e422305..9b24b38 100644
--- 
a/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSyncTasksPanel.java
+++ 
b/console/src/main/java/org/apache/syncope/console/pages/panels/AbstractSyncTasksPanel.java
@@ -48,7 +48,7 @@ public abstract class AbstractSyncTasksPanel<T extends 
AbstractSyncTaskTO> exten
 
     private static final long serialVersionUID = -8674781241465369244L;
 
-    private int paginatorRows;
+    private final int paginatorRows;
 
     protected WebMarkupContainer container;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java
----------------------------------------------------------------------
diff --git 
a/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java
 
b/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java
index 7923c99..551266c 100644
--- 
a/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java
+++ 
b/console/src/main/java/org/apache/syncope/console/pages/panels/PropagationTasks.java
@@ -63,7 +63,7 @@ public class PropagationTasks extends AbstractTasks {
 
     private boolean operationResult = false;
 
-    private ModalWindow window;
+    private final ModalWindow window;
 
     private AjaxDataTablePanel<AbstractTaskTO, String> table;
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/console/src/main/java/org/apache/syncope/console/rest/TaskRestClient.java
----------------------------------------------------------------------
diff --git 
a/console/src/main/java/org/apache/syncope/console/rest/TaskRestClient.java 
b/console/src/main/java/org/apache/syncope/console/rest/TaskRestClient.java
index c83ce88..b34cc95 100644
--- a/console/src/main/java/org/apache/syncope/console/rest/TaskRestClient.java
+++ b/console/src/main/java/org/apache/syncope/console/rest/TaskRestClient.java
@@ -96,12 +96,16 @@ public class TaskRestClient extends JobRestClient 
implements ExecutionRestClient
     public int count(final String kind) {
         return getService(TaskService.class).list(TaskType.fromString(kind), 
1, 1).getTotalCount();
     }
+    
+    public int countExecutions(final Long taskId) {
+        return getService(TaskService.class).listEexecutions(1, 1, 
taskId).getTotalCount();
+    }
 
     @SuppressWarnings("unchecked")
     public <T extends AbstractTaskTO> List<T> list(final Class<T> reference,
             final int page, final int size, final SortParam<String> sort) {
 
-        return (List<T>) 
getService(TaskService.class).list(getTaskType(reference), page, size, 
toOrderBy(sort)).
+        return (List<T>) 
getService(TaskService.class).list(getTaskType(reference), page, size, 
toOrderBy(sort), false).
                 getResult();
     }
 
@@ -121,16 +125,20 @@ public class TaskRestClient extends JobRestClient 
implements ExecutionRestClient
         return result;
     }
 
+    public List<TaskExecTO> listExecutions(final int page, final int size, 
final Long taskId) {
+        return getService(TaskService.class).listEexecutions(page, size, 
taskId).getResult();
+    }
+
     public PropagationTaskTO readPropagationTask(final Long taskId) {
-        return getService(TaskService.class).read(taskId);
+        return getService(TaskService.class).read(taskId, false);
     }
 
     public NotificationTaskTO readNotificationTask(final Long taskId) {
-        return getService(TaskService.class).read(taskId);
+        return getService(TaskService.class).read(taskId, false);
     }
 
     public <T extends SchedTaskTO> T readSchedTask(final Class<T> reference, 
final Long taskId) {
-        return getService(TaskService.class).read(taskId);
+        return getService(TaskService.class).read(taskId, false);
     }
 
     public void delete(final Long taskId, final Class<? extends 
AbstractTaskTO> taskToClass) {
@@ -170,17 +178,19 @@ public class TaskRestClient extends JobRestClient 
implements ExecutionRestClient
     public BulkActionResult bulkAction(final BulkAction action) {
         return getService(TaskService.class).bulk(action);
     }
-    
+
     @Override
-    public boolean isJobRunning(final long taskId){
-        for(TaskExecTO taskExecTO : 
getService(TaskService.class).listJobs(JobStatusType.RUNNING)){
-            if(taskExecTO.getTask()== taskId) return true;
+    public boolean isJobRunning(final long taskId) {
+        for (TaskExecTO taskExecTO : 
getService(TaskService.class).listJobs(JobStatusType.RUNNING)) {
+            if (taskExecTO.getTask() == taskId) {
+                return true;
+            }
         }
         return false;
     }
-    
+
     @Override
-    public void startJob(final long taskId){
+    public void startJob(final long taskId) {
         getService(TaskService.class).actionJob(taskId, JobAction.START);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/core/src/main/java/org/apache/syncope/core/rest/controller/TaskController.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/syncope/core/rest/controller/TaskController.java
 
b/core/src/main/java/org/apache/syncope/core/rest/controller/TaskController.java
index aca40e2..c3e8f4f 100644
--- 
a/core/src/main/java/org/apache/syncope/core/rest/controller/TaskController.java
+++ 
b/core/src/main/java/org/apache/syncope/core/rest/controller/TaskController.java
@@ -84,9 +84,6 @@ public class TaskController extends 
AbstractJobController<AbstractTaskTO> {
     private JobInstanceLoader jobInstanceLoader;
 
     @Autowired
-    private SchedulerFactoryBean scheduler;
-
-    @Autowired
     private ImplementationClassNamesLoader classNamesLoader;
 
     @PreAuthorize("hasRole('TASK_CREATE')")
@@ -106,7 +103,7 @@ public class TaskController extends 
AbstractJobController<AbstractTaskTO> {
             throw sce;
         }
 
-        return binder.getTaskTO(task, taskUtil);
+        return binder.getTaskTO(task, taskUtil, true);
     }
 
     @PreAuthorize("hasRole('TASK_UPDATE')")
@@ -136,7 +133,7 @@ public class TaskController extends 
AbstractJobController<AbstractTaskTO> {
             throw sce;
         }
 
-        return binder.getTaskTO(task, taskUtil);
+        return binder.getTaskTO(task, taskUtil, true);
     }
 
     @PreAuthorize("hasRole('TASK_LIST')")
@@ -147,14 +144,14 @@ public class TaskController extends 
AbstractJobController<AbstractTaskTO> {
     @PreAuthorize("hasRole('TASK_LIST')")
     @SuppressWarnings("unchecked")
     public <T extends AbstractTaskTO> List<T> list(final TaskType taskType,
-            final int page, final int size, final List<OrderByClause> 
orderByClauses) {
+            final int page, final int size, final List<OrderByClause> 
orderByClauses, final boolean details) {
 
         TaskUtil taskUtil = TaskUtil.getInstance(taskType);
 
         List<Task> tasks = taskDAO.findAll(page, size, orderByClauses, 
taskUtil.taskClass());
         List<T> taskTOs = new ArrayList<T>(tasks.size());
         for (Task task : tasks) {
-            taskTOs.add((T) binder.getTaskTO(task, taskUtil));
+            taskTOs.add((T) binder.getTaskTO(task, taskUtil, details));
         }
 
         return taskTOs;
@@ -176,12 +173,12 @@ public class TaskController extends 
AbstractJobController<AbstractTaskTO> {
     }
 
     @PreAuthorize("hasRole('TASK_READ')")
-    public <T extends AbstractTaskTO> T read(final Long taskId) {
+    public <T extends AbstractTaskTO> T read(final Long taskId, final boolean 
details) {
         Task task = taskDAO.find(taskId);
         if (task == null) {
             throw new NotFoundException("Task " + taskId);
         }
-        return binder.getTaskTO(task, TaskUtil.getInstance(task));
+        return binder.getTaskTO(task, TaskUtil.getInstance(task), details);
     }
 
     @PreAuthorize("hasRole('TASK_READ')")
@@ -193,6 +190,15 @@ public class TaskController extends 
AbstractJobController<AbstractTaskTO> {
         return binder.getTaskExecTO(taskExec);
     }
 
+    @PreAuthorize("hasRole('TASK_READ')")
+    public List<TaskExecTO> listExecution(final Long taskId) {
+        final List<TaskExecTO> execsExecTOs = new ArrayList<TaskExecTO>();
+        for (final TaskExec exec : taskDAO.find(taskId).getExecs()) {
+            execsExecTOs.add(binder.getTaskExecTO(exec));
+        }
+        return execsExecTOs;
+    }
+
     @PreAuthorize("hasRole('TASK_EXECUTE')")
     public TaskExecTO execute(final Long taskId, final boolean dryRun) {
         Task task = taskDAO.find(taskId);
@@ -298,7 +304,7 @@ public class TaskController extends 
AbstractJobController<AbstractTaskTO> {
         }
         TaskUtil taskUtil = TaskUtil.getInstance(task);
 
-        T taskToDelete = binder.getTaskTO(task, taskUtil);
+        T taskToDelete = binder.getTaskTO(task, taskUtil, true);
 
         if (TaskType.SCHEDULED == taskUtil.getType()
                 || TaskType.SYNCHRONIZATION == taskUtil.getType()
@@ -395,7 +401,7 @@ public class TaskController extends 
AbstractJobController<AbstractTaskTO> {
         if ((id != null) && !id.equals(0l)) {
             try {
                 final Task task = taskDAO.find(id);
-                return binder.getTaskTO(task, TaskUtil.getInstance(task));
+                return binder.getTaskTO(task, TaskUtil.getInstance(task), 
true);
             } catch (Throwable ignore) {
                 LOG.debug("Unresolved reference", ignore);
                 throw new UnresolvedReferenceException(ignore);

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/core/src/main/java/org/apache/syncope/core/rest/data/TaskDataBinder.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/syncope/core/rest/data/TaskDataBinder.java 
b/core/src/main/java/org/apache/syncope/core/rest/data/TaskDataBinder.java
index 965546f..b2eea8b 100644
--- a/core/src/main/java/org/apache/syncope/core/rest/data/TaskDataBinder.java
+++ b/core/src/main/java/org/apache/syncope/core/rest/data/TaskDataBinder.java
@@ -71,9 +71,9 @@ public class TaskDataBinder {
     private static final Logger LOG = 
LoggerFactory.getLogger(TaskDataBinder.class);
 
     private static final String[] IGNORE_TASK_PROPERTIES = {
-        "executions", "resource", "matchingRule", "unmatchingRule" };
+        "executions", "resource", "matchingRule", "unmatchingRule"};
 
-    private static final String[] IGNORE_TASK_EXECUTION_PROPERTIES = { "id", 
"task" };
+    private static final String[] IGNORE_TASK_EXECUTION_PROPERTIES = {"id", 
"task"};
 
     @Autowired
     private ResourceDAO resourceDAO;
@@ -262,7 +262,7 @@ public class TaskDataBinder {
         }
     }
 
-    public <T extends AbstractTaskTO> T getTaskTO(final Task task, final 
TaskUtil taskUtil) {
+    public <T extends AbstractTaskTO> T getTaskTO(final Task task, final 
TaskUtil taskUtil, final boolean details) {
         T taskTO = taskUtil.newTaskTO();
         BeanUtils.copyProperties(task, taskTO, IGNORE_TASK_PROPERTIES);
 
@@ -270,9 +270,11 @@ public class TaskDataBinder {
         taskTO.setLatestExecStatus(latestExec == null ? "" : 
latestExec.getStatus());
         taskTO.setStartDate(latestExec == null ? null : 
latestExec.getStartDate());
         taskTO.setEndDate(latestExec == null ? null : latestExec.getEndDate());
-
-        for (TaskExec execution : task.getExecs()) {
-            taskTO.getExecutions().add(getTaskExecTO(execution));
+        
+        if (details) {
+            for (TaskExec execution : task.getExecs()) {
+                taskTO.getExecutions().add(getTaskExecTO(execution));
+            }
         }
 
         switch (taskUtil.getType()) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java 
b/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java
index 16a6741..28c3eb9 100644
--- a/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java
+++ b/core/src/main/java/org/apache/syncope/core/services/TaskServiceImpl.java
@@ -99,34 +99,34 @@ public class TaskServiceImpl extends AbstractServiceImpl 
implements TaskService
 
     @Override
     public <T extends AbstractTaskTO> PagedResult<T> list(final TaskType 
taskType) {
-        return list(taskType, DEFAULT_PARAM_PAGE_VALUE, 
DEFAULT_PARAM_SIZE_VALUE, null);
+        return list(taskType, DEFAULT_PARAM_PAGE_VALUE, 
DEFAULT_PARAM_SIZE_VALUE, null, true);
     }
 
     @Override
     public <T extends AbstractTaskTO> PagedResult<T> list(final TaskType 
taskType, final String orderBy) {
-        return list(taskType, DEFAULT_PARAM_PAGE_VALUE, 
DEFAULT_PARAM_SIZE_VALUE, orderBy);
+        return list(taskType, DEFAULT_PARAM_PAGE_VALUE, 
DEFAULT_PARAM_SIZE_VALUE, orderBy, true);
     }
 
     @Override
     public <T extends AbstractTaskTO> PagedResult<T> list(
             final TaskType taskType, final Integer page, final Integer size) {
 
-        return list(taskType, page, size, null);
+        return list(taskType, page, size, null, true);
     }
 
     @Override
     @SuppressWarnings("unchecked")
     public <T extends AbstractTaskTO> PagedResult<T> list(final TaskType 
taskType,
-            final Integer page, final Integer size, final String orderBy) {
+            final Integer page, final Integer size, final String orderBy, 
final boolean details) {
 
         List<OrderByClause> orderByClauses = getOrderByClauses(orderBy);
         return (PagedResult<T>) buildPagedResult(
-                controller.list(taskType, page, size, orderByClauses), page, 
size, controller.count(taskType));
+                controller.list(taskType, page, size, orderByClauses, 
details), page, size, controller.count(taskType));
     }
 
     @Override
-    public <T extends AbstractTaskTO> T read(final Long taskId) {
-        return controller.read(taskId);
+    public <T extends AbstractTaskTO> T read(final Long taskId, final boolean 
details) {
+        return controller.read(taskId, details);
     }
 
     @Override
@@ -135,6 +135,12 @@ public class TaskServiceImpl extends AbstractServiceImpl 
implements TaskService
     }
 
     @Override
+    public PagedResult<TaskExecTO> listEexecutions(final Integer page, final 
Integer size, final Long taskId) {
+        final List<TaskExecTO> execTOs = controller.listExecution(taskId);
+        return buildPagedResult(execTOs, page, size, execTOs.size());
+    }
+
+    @Override
     public void report(final Long executionId, final ReportExecTO reportExec) {
         reportExec.setId(executionId);
         controller.report(

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/core/src/test/java/org/apache/syncope/core/notification/NotificationTest.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/syncope/core/notification/NotificationTest.java 
b/core/src/test/java/org/apache/syncope/core/notification/NotificationTest.java
index 3af0e2f..1838652 100644
--- 
a/core/src/test/java/org/apache/syncope/core/notification/NotificationTest.java
+++ 
b/core/src/test/java/org/apache/syncope/core/notification/NotificationTest.java
@@ -315,7 +315,7 @@ public class NotificationTest {
         assertNotNull(taskId);
 
         // 5. verify that last exec status was updated
-        NotificationTaskTO task = (NotificationTaskTO) 
taskController.read(taskId);
+        NotificationTaskTO task = (NotificationTaskTO) 
taskController.read(taskId, true);
         assertNotNull(task);
         assertTrue(task.getExecutions().isEmpty());
         assertTrue(task.isExecuted());

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/core/src/test/java/org/apache/syncope/core/rest/TaskTestITCase.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/syncope/core/rest/TaskTestITCase.java 
b/core/src/test/java/org/apache/syncope/core/rest/TaskTestITCase.java
index c8e34c6..89ec7ba 100644
--- a/core/src/test/java/org/apache/syncope/core/rest/TaskTestITCase.java
+++ b/core/src/test/java/org/apache/syncope/core/rest/TaskTestITCase.java
@@ -112,7 +112,7 @@ public class TaskTestITCase extends AbstractTest {
 
     @BeforeClass
     public static void testSyncActionsSetup() {
-        SyncTaskTO syncTask = taskService.read(SYNC_TASK_ID);
+        SyncTaskTO syncTask = taskService.read(SYNC_TASK_ID, true);
         syncTask.getActionsClassNames().add(TestSyncActions.class.getName());
         taskService.update(SYNC_TASK_ID, syncTask);
     }
@@ -174,7 +174,7 @@ public class TaskTestITCase extends AbstractTest {
         SyncTaskTO actual = getObject(response.getLocation(), 
TaskService.class, SyncTaskTO.class);
         assertNotNull(actual);
 
-        task = taskService.read(actual.getId());
+        task = taskService.read(actual.getId(), true);
         assertNotNull(task);
         assertEquals(actual.getId(), task.getId());
         assertEquals(actual.getJobClassName(), task.getJobClassName());
@@ -197,7 +197,7 @@ public class TaskTestITCase extends AbstractTest {
         final PushTaskTO actual = getObject(response.getLocation(), 
TaskService.class, PushTaskTO.class);
         assertNotNull(actual);
 
-        task = taskService.read(actual.getId());
+        task = taskService.read(actual.getId(), true);
         assertNotNull(task);
         assertEquals(task.getId(), actual.getId());
         assertEquals(task.getJobClassName(), actual.getJobClassName());
@@ -209,7 +209,7 @@ public class TaskTestITCase extends AbstractTest {
 
     @Test
     public void update() {
-        SchedTaskTO task = taskService.read(SCHED_TASK_ID);
+        SchedTaskTO task = taskService.read(SCHED_TASK_ID, true);
         assertNotNull(task);
 
         final SchedTaskTO taskMod = new SchedTaskTO();
@@ -217,7 +217,7 @@ public class TaskTestITCase extends AbstractTest {
         taskMod.setCronExpression(null);
 
         taskService.update(taskMod.getId(), taskMod);
-        SchedTaskTO actual = taskService.read(taskMod.getId());
+        SchedTaskTO actual = taskService.read(taskMod.getId(), true);
         assertNotNull(actual);
         assertEquals(task.getId(), actual.getId());
         assertNull(actual.getCronExpression());
@@ -285,13 +285,13 @@ public class TaskTestITCase extends AbstractTest {
 
     @Test
     public void read() {
-        final PropagationTaskTO taskTO = taskService.read(3L);
+        final PropagationTaskTO taskTO = taskService.read(3L, true);
 
         assertNotNull(taskTO);
         assertNotNull(taskTO.getExecutions());
         assertTrue(taskTO.getExecutions().isEmpty());
 
-        final PushTaskTO pushTaskTO = taskService.<PushTaskTO>read(17L);
+        final PushTaskTO pushTaskTO = taskService.<PushTaskTO>read(17L, true);
         assertEquals(UnmatchingRule.ASSIGN, pushTaskTO.getUnmatchingRule());
         assertEquals(MatchingRule.UPDATE, pushTaskTO.getMatchingRule());
     }
@@ -577,7 +577,7 @@ public class TaskTestITCase extends AbstractTest {
             } catch (InterruptedException e) {
             }
 
-            taskTO = taskService.read(taskTO.getId());
+            taskTO = taskService.read(taskTO.getId(), true);
 
             assertNotNull(taskTO);
             assertNotNull(taskTO.getExecutions());
@@ -607,7 +607,7 @@ public class TaskTestITCase extends AbstractTest {
             assertNotNull(execution);
 
             // 4. verify
-            taskTO = taskService.read(taskTO.getId());
+            taskTO = taskService.read(taskTO.getId(), true);
             assertNotNull(taskTO);
             assertEquals(1, taskTO.getExecutions().size());
         } finally {
@@ -709,13 +709,13 @@ public class TaskTestITCase extends AbstractTest {
             //-----------------------------
 
             // Update sync task
-            SyncTaskTO task = taskService.read(9L);
+            SyncTaskTO task = taskService.read(9L, true);
             assertNotNull(task);
 
             task.setUserTemplate(template);
 
             taskService.update(task.getId(), task);
-            SyncTaskTO actual = taskService.read(task.getId());
+            SyncTaskTO actual = taskService.read(task.getId(), true);
             assertNotNull(actual);
             assertEquals(task.getId(), actual.getId());
             assertFalse(actual.getUserTemplate().getResources().isEmpty());
@@ -750,7 +750,7 @@ public class TaskTestITCase extends AbstractTest {
         assertEquals("issueSYNCOPE144", actual.getName());
         assertEquals("issueSYNCOPE144 Description", actual.getDescription());
 
-        task = taskService.read(actual.getId());
+        task = taskService.read(actual.getId(), true);
         assertNotNull(task);
         assertEquals("issueSYNCOPE144", task.getName());
         assertEquals("issueSYNCOPE144 Description", task.getDescription());
@@ -792,7 +792,7 @@ public class TaskTestITCase extends AbstractTest {
     }
 
     private TaskExecTO execSyncTask(final Long taskId, final int 
maxWaitSeconds, final boolean dryRun) {
-        AbstractTaskTO taskTO = taskService.read(taskId);
+        AbstractTaskTO taskTO = taskService.read(taskId, true);
         assertNotNull(taskTO);
         assertNotNull(taskTO.getExecutions());
 
@@ -810,7 +810,7 @@ public class TaskTestITCase extends AbstractTest {
             } catch (InterruptedException e) {
             }
 
-            taskTO = taskService.read(taskTO.getId());
+            taskTO = taskService.read(taskTO.getId(), true);
 
             assertNotNull(taskTO);
             assertNotNull(taskTO.getExecutions());
@@ -917,7 +917,7 @@ public class TaskTestITCase extends AbstractTest {
 
         execSyncTask(actual.getId(), 50, false);
 
-        SyncTaskTO executed = taskService.read(actual.getId());
+        SyncTaskTO executed = taskService.read(actual.getId(), true);
         assertEquals(1, executed.getExecutions().size());
 
         // asser for just one match
@@ -944,7 +944,7 @@ public class TaskTestITCase extends AbstractTest {
         assertEquals("virtualvalue", 
userTO.getVirAttrMap().get("virtualdata").getValues().get(0));
 
         // Update sync task
-        SyncTaskTO task = taskService.read(12L);
+        SyncTaskTO task = taskService.read(12L, true);
         assertNotNull(task);
 
         //  add user template
@@ -1195,7 +1195,7 @@ public class TaskTestITCase extends AbstractTest {
         SyncTaskTO actual = getObject(taskResponse.getLocation(), 
TaskService.class, SyncTaskTO.class);
         assertNotNull(actual);
 
-        syncTask = taskService.read(actual.getId());
+        syncTask = taskService.read(actual.getId(), true);
         assertNotNull(syncTask);
         assertEquals(actual.getId(), syncTask.getId());
         assertEquals(actual.getJobClassName(), syncTask.getJobClassName());
@@ -1243,8 +1243,7 @@ public class TaskTestITCase extends AbstractTest {
         assertEquals(encodedNewPassword, updatedUser.getPassword());
 
         // 4. Check that the LDAP resource has the old password
-        ConnObjectTO connObject =
-                resourceService.getConnectorObject(RESOURCE_NAME_LDAP, 
SubjectType.USER, user.getId());
+        ConnObjectTO connObject = 
resourceService.getConnectorObject(RESOURCE_NAME_LDAP, SubjectType.USER, 
user.getId());
         assertNotNull(getLdapRemoteObject(
                 connObject.getAttrMap().get(Name.NAME).getValues().get(0),
                 "security",
@@ -1271,7 +1270,7 @@ public class TaskTestITCase extends AbstractTest {
         SyncTaskTO actual = getObject(taskResponse.getLocation(), 
TaskService.class, SyncTaskTO.class);
         assertNotNull(actual);
 
-        syncTask = taskService.read(actual.getId());
+        syncTask = taskService.read(actual.getId(), true);
         assertNotNull(syncTask);
         assertEquals(actual.getId(), syncTask.getId());
         assertEquals(actual.getJobClassName(), syncTask.getJobClassName());
@@ -1507,7 +1506,7 @@ public class TaskTestITCase extends AbstractTest {
         // First of all, clear any potential conflict with existing user / role
         ldapCleanup();
 
-        SyncTaskTO task = taskService.read(11L);
+        SyncTaskTO task = taskService.read(11L, true);
         assertNotNull(task);
         assertEquals(11L, task.getId());
 
@@ -1522,7 +1521,7 @@ public class TaskTestITCase extends AbstractTest {
         SyncTaskTO actual = getObject(response.getLocation(), 
TaskService.class, SyncTaskTO.class);
         assertNotNull(actual);
 
-        task = taskService.read(actual.getId());
+        task = taskService.read(actual.getId(), true);
         assertNotNull(task);
         assertEquals(actual.getId(), task.getId());
         assertEquals(actual.getJobClassName(), task.getJobClassName());
@@ -1540,8 +1539,8 @@ public class TaskTestITCase extends AbstractTest {
         assertEquals("syncFromLDAP",
                 
userTO.getVirAttrMap().get("virtualPropagation").getValues().get(0));
 
-        ConnObjectTO connObj =
-                resourceService.getConnectorObject(RESOURCE_NAME_DBVIRATTR, 
SubjectType.USER, userTO.getId());
+        ConnObjectTO connObj = 
resourceService.getConnectorObject(RESOURCE_NAME_DBVIRATTR, SubjectType.USER, 
userTO.
+                getId());
         assertNotNull(connObj);
         assertEquals("syncFromLDAP", 
connObj.getAttrMap().get("SURNAME").getValues().get(0));
 
@@ -1575,4 +1574,20 @@ public class TaskTestITCase extends AbstractTest {
         taskService.delete(task.getId());
 
     }
+
+    @Test
+    public void issueSYNCOPE741() {
+        ldapCleanup();
+
+        SyncTaskTO task = taskService.read(11L, false);
+        assertNotNull(task);
+        assertEquals(11L, task.getId());
+        assertTrue(task.getExecutions().isEmpty());
+
+        task = taskService.read(11L, true);
+        assertNotNull(task);
+        assertEquals(11L, task.getId());
+        assertFalse(task.getExecutions().isEmpty());
+        assertEquals(1, task.getExecutions().size());
+    }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/b4812b21/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
----------------------------------------------------------------------
diff --git 
a/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java 
b/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
index 3c9b0f2..0d60d33 100644
--- a/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
+++ b/core/src/test/java/org/apache/syncope/core/rest/UserTestITCase.java
@@ -168,7 +168,7 @@ public class UserTestITCase extends AbstractTest {
         assertTrue(newMaxId > maxId);
 
         // get last task
-        PropagationTaskTO taskTO = taskService.read(newMaxId);
+        PropagationTaskTO taskTO = taskService.read(newMaxId, true);
 
         assertNotNull(taskTO);
         assertTrue(taskTO.getExecutions().isEmpty());
@@ -370,7 +370,7 @@ public class UserTestITCase extends AbstractTest {
         assertFalse(tasks.getResult().isEmpty());
 
         long maxId = getMaxTaskId(tasks.getResult());
-        PropagationTaskTO taskTO = taskService.read(maxId);
+        PropagationTaskTO taskTO = taskService.read(maxId, true);
 
         assertNotNull(taskTO);
         int maxTaskExecutions = taskTO.getExecutions().size();
@@ -432,7 +432,7 @@ public class UserTestITCase extends AbstractTest {
         assertEquals(newMaxId, maxId);
 
         // get last task
-        taskTO = taskService.read(newMaxId);
+        taskTO = taskService.read(newMaxId, true);
 
         assertNotNull(taskTO);
         assertEquals(maxTaskExecutions, taskTO.getExecutions().size());
@@ -807,7 +807,7 @@ public class UserTestITCase extends AbstractTest {
         // all update executions have to be registered
         assertTrue(newMaxId > maxId);
 
-        final PropagationTaskTO taskTO = taskService.read(newMaxId);
+        final PropagationTaskTO taskTO = taskService.read(newMaxId, true);
 
         assertNotNull(taskTO);
         assertEquals(1, taskTO.getExecutions().size());
@@ -1149,8 +1149,8 @@ public class UserTestITCase extends AbstractTest {
         assertNotNull(actual);
         assertNotNull(actual.getDerAttrMap().get("csvuserid"));
 
-        ConnObjectTO connObjectTO =
-                resourceService.getConnectorObject(RESOURCE_NAME_CSV, 
SubjectType.USER, actual.getId());
+        ConnObjectTO connObjectTO = 
resourceService.getConnectorObject(RESOURCE_NAME_CSV, SubjectType.USER, actual.
+                getId());
         assertNotNull(connObjectTO);
         assertEquals("sx-dx", 
connObjectTO.getAttrMap().get("ROLE").getValues().get(0));
     }
@@ -1177,8 +1177,8 @@ public class UserTestITCase extends AbstractTest {
         assertNotNull(actual);
         assertNotNull(actual.getDerAttrMap().get("csvuserid"));
 
-        ConnObjectTO connObjectTO =
-                resourceService.getConnectorObject(RESOURCE_NAME_CSV, 
SubjectType.USER, actual.getId());
+        ConnObjectTO connObjectTO = 
resourceService.getConnectorObject(RESOURCE_NAME_CSV, SubjectType.USER, actual.
+                getId());
         assertNotNull(connObjectTO);
         assertEquals("sx-dx", 
connObjectTO.getAttrMap().get("MEMBERSHIP").getValues().get(0));
     }
@@ -1238,8 +1238,8 @@ public class UserTestITCase extends AbstractTest {
         assertEquals(2, actual.getMemberships().size());
         assertEquals(1, actual.getResources().size());
 
-        ConnObjectTO connObjectTO =
-                resourceService.getConnectorObject(RESOURCE_NAME_CSV, 
SubjectType.USER, actual.getId());
+        ConnObjectTO connObjectTO = 
resourceService.getConnectorObject(RESOURCE_NAME_CSV, SubjectType.USER, actual.
+                getId());
         assertNotNull(connObjectTO);
 
         // -----------------------------------
@@ -1320,8 +1320,8 @@ public class UserTestITCase extends AbstractTest {
         assertNotNull(actual);
         assertEquals(2, actual.getMemberships().size());
 
-        ConnObjectTO connObjectTO =
-                resourceService.getConnectorObject(RESOURCE_NAME_LDAP, 
SubjectType.USER, actual.getId());
+        ConnObjectTO connObjectTO = 
resourceService.getConnectorObject(RESOURCE_NAME_LDAP, SubjectType.USER, actual.
+                getId());
         assertNotNull(connObjectTO);
 
         AttributeTO postalAddress = 
connObjectTO.getAttrMap().get("postalAddress");
@@ -1432,8 +1432,8 @@ public class UserTestITCase extends AbstractTest {
         assertEquals(RESOURCE_NAME_DBVIRATTR, 
userTO.getPropagationStatusTOs().get(0).getResource());
         assertEquals(PropagationTaskExecStatus.SUBMITTED, 
userTO.getPropagationStatusTOs().get(0).getStatus());
 
-        ConnObjectTO connObjectTO =
-                resourceService.getConnectorObject(RESOURCE_NAME_DBVIRATTR, 
SubjectType.USER, userTO.getId());
+        ConnObjectTO connObjectTO = 
resourceService.getConnectorObject(RESOURCE_NAME_DBVIRATTR, SubjectType.USER,
+                userTO.getId());
         assertNotNull(connObjectTO);
         assertEquals("virtualvalue", 
connObjectTO.getAttrMap().get("USERNAME").getValues().get(0));
         // ----------------------------------
@@ -1633,8 +1633,8 @@ public class UserTestITCase extends AbstractTest {
         UserTO actual = createUser(userTO);
         assertNotNull(actual);
 
-        ConnObjectTO connObjectTO =
-                resourceService.getConnectorObject(RESOURCE_NAME_CSV, 
SubjectType.USER, actual.getId());
+        ConnObjectTO connObjectTO = resourceService.getConnectorObject(
+                RESOURCE_NAME_CSV, SubjectType.USER, actual.getId());
         assertNull(connObjectTO.getAttrMap().get("email"));
     }
 
@@ -1675,14 +1675,14 @@ public class UserTestITCase extends AbstractTest {
         assertEquals(10, res.getResultByStatus(Status.SUCCESS).size());
         assertEquals(1, res.getResultByStatus(Status.FAILURE).size());
         assertEquals("suspended", userService.read(
-                
Long.parseLong(res.getResultByStatus(Status.SUCCESS).get(3).toString())).getStatus());
+                
Long.parseLong(res.getResultByStatus(Status.SUCCESS).get(3))).getStatus());
 
         bulkAction.setOperation(BulkAction.Type.REACTIVATE);
         res = userService.bulk(bulkAction);
         assertEquals(10, res.getResultByStatus(Status.SUCCESS).size());
         assertEquals(1, res.getResultByStatus(Status.FAILURE).size());
         assertEquals("active", userService.read(
-                
Long.parseLong(res.getResultByStatus(Status.SUCCESS).get(3).toString())).getStatus());
+                
Long.parseLong(res.getResultByStatus(Status.SUCCESS).get(3))).getStatus());
 
         bulkAction.setOperation(BulkAction.Type.DELETE);
         res = userService.bulk(bulkAction);
@@ -2205,8 +2205,8 @@ public class UserTestITCase extends AbstractTest {
         assertNotNull(userTO);
 
         // 2. read resource configuration for LDAP binding
-        ConnObjectTO connObject =
-                resourceService.getConnectorObject(RESOURCE_NAME_LDAP, 
SubjectType.USER, userTO.getId());
+        ConnObjectTO connObject = 
resourceService.getConnectorObject(RESOURCE_NAME_LDAP, SubjectType.USER, userTO.
+                getId());
 
         // 3. try (and succeed) to perform simple LDAP binding with provided 
password ('password123')
         assertNotNull(getLdapRemoteObject(
@@ -2374,8 +2374,7 @@ public class UserTestITCase extends AbstractTest {
         assertEquals(1, user.getResources().size());
 
         // 4. Check that the LDAP resource has the correct password
-        ConnObjectTO connObject =
-                resourceService.getConnectorObject(RESOURCE_NAME_LDAP, 
SubjectType.USER, user.getId());
+        ConnObjectTO connObject = 
resourceService.getConnectorObject(RESOURCE_NAME_LDAP, SubjectType.USER, 
user.getId());
 
         assertNotNull(getLdapRemoteObject(
                 connObject.getAttrMap().get(Name.NAME).getValues().get(0),
@@ -2416,8 +2415,8 @@ public class UserTestITCase extends AbstractTest {
         userTO = createUser(userTO, false);
         assertNotNull(userTO);
 
-        ConnObjectTO connObjectTO =
-                resourceService.getConnectorObject(RESOURCE_NAME_CSV, 
SubjectType.USER, userTO.getId());
+        ConnObjectTO connObjectTO = 
resourceService.getConnectorObject(RESOURCE_NAME_CSV, SubjectType.USER, userTO.
+                getId());
         assertNotNull(connObjectTO);
 
         // check if password has not changed
@@ -2437,8 +2436,7 @@ public class UserTestITCase extends AbstractTest {
         userTO = createUser(userTO, false);
         assertNotNull(userTO);
 
-        connObjectTO =
-                resourceService.getConnectorObject(RESOURCE_NAME_CSV, 
SubjectType.USER, userTO.getId());
+        connObjectTO = resourceService.getConnectorObject(RESOURCE_NAME_CSV, 
SubjectType.USER, userTO.getId());
         assertNotNull(connObjectTO);
 
         // check if password has been propagated and that saved userTO's 
password is null
@@ -2458,8 +2456,7 @@ public class UserTestITCase extends AbstractTest {
         userTO = createUser(userTO);
         assertNotNull(userTO);
 
-        connObjectTO =
-                resourceService.getConnectorObject(RESOURCE_NAME_CSV, 
SubjectType.USER, userTO.getId());
+        connObjectTO = resourceService.getConnectorObject(RESOURCE_NAME_CSV, 
SubjectType.USER, userTO.getId());
         assertNotNull(connObjectTO);
 
         // check if password has been correctly propagated on Syncope and 
resource-csv as usual
@@ -2514,8 +2511,8 @@ public class UserTestITCase extends AbstractTest {
         assertNotNull(actual);
         assertNotNull(actual.getDerAttrMap().get("csvuserid"));
 
-        ConnObjectTO connObjectTO =
-                resourceService.getConnectorObject(RESOURCE_NAME_LDAP, 
SubjectType.USER, actual.getId());
+        ConnObjectTO connObjectTO = 
resourceService.getConnectorObject(RESOURCE_NAME_LDAP, SubjectType.USER, actual.
+                getId());
         assertNotNull(connObjectTO);
         assertEquals("postalAddress", 
connObjectTO.getAttrMap().get("postalAddress").getValues().get(0));
 
@@ -2530,8 +2527,7 @@ public class UserTestITCase extends AbstractTest {
 
         actual = updateUser(userMod);
 
-        connObjectTO =
-                resourceService.getConnectorObject(RESOURCE_NAME_LDAP, 
SubjectType.USER, actual.getId());
+        connObjectTO = resourceService.getConnectorObject(RESOURCE_NAME_LDAP, 
SubjectType.USER, actual.getId());
         assertNotNull(connObjectTO);
         assertEquals("newPostalAddress", 
connObjectTO.getAttrMap().get("postalAddress").getValues().get(0));
     }

Reply via email to