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 2015/05/06 10:37:56 UTC

[3/4] syncope git commit: [SYNCOPE-657] Checkstyle enabled in all profiles but skipTests

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/misc/src/main/java/org/apache/syncope/core/misc/spring/DefaultRolesPrefixPostProcessor.java
----------------------------------------------------------------------
diff --git a/core/misc/src/main/java/org/apache/syncope/core/misc/spring/DefaultRolesPrefixPostProcessor.java b/core/misc/src/main/java/org/apache/syncope/core/misc/spring/DefaultRolesPrefixPostProcessor.java
index 15c6259..d91a60f 100644
--- a/core/misc/src/main/java/org/apache/syncope/core/misc/spring/DefaultRolesPrefixPostProcessor.java
+++ b/core/misc/src/main/java/org/apache/syncope/core/misc/spring/DefaultRolesPrefixPostProcessor.java
@@ -20,7 +20,6 @@ package org.apache.syncope.core.misc.spring;
 
 import javax.servlet.ServletException;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.BeansException;
 import org.springframework.beans.FatalBeanException;
 import org.springframework.beans.factory.config.BeanPostProcessor;
 import org.springframework.core.PriorityOrdered;
@@ -34,7 +33,7 @@ import org.springframework.security.web.servletapi.SecurityContextHolderAwareReq
 public class DefaultRolesPrefixPostProcessor implements BeanPostProcessor, PriorityOrdered {
 
     @Override
-    public Object postProcessAfterInitialization(final Object bean, final String beanName) throws BeansException {
+    public Object postProcessAfterInitialization(final Object bean, final String beanName) {
         if (bean instanceof DefaultMethodSecurityExpressionHandler) {
             ((DefaultMethodSecurityExpressionHandler) bean).setDefaultRolePrefix(null);
         }
@@ -55,7 +54,7 @@ public class DefaultRolesPrefixPostProcessor implements BeanPostProcessor, Prior
     }
 
     @Override
-    public Object postProcessBeforeInitialization(final Object bean, final String beanName) throws BeansException {
+    public Object postProcessBeforeInitialization(final Object bean, final String beanName) {
         return bean;
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-api/pom.xml
----------------------------------------------------------------------
diff --git a/core/persistence-api/pom.xml b/core/persistence-api/pom.xml
index 48ceb63..10745e7 100644
--- a/core/persistence-api/pom.xml
+++ b/core/persistence-api/pom.xml
@@ -69,10 +69,6 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
       </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-pmd-plugin</artifactId>
-      </plugin>
     </plugins>
   </build>
 </project>

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/pom.xml
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/pom.xml b/core/persistence-jpa/pom.xml
index 26422f6..d48ef77 100644
--- a/core/persistence-jpa/pom.xml
+++ b/core/persistence-jpa/pom.xml
@@ -172,10 +172,6 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
       </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-pmd-plugin</artifactId>
-      </plugin>
     </plugins>
 
     <resources>

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/AbstractValidator.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/AbstractValidator.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/AbstractValidator.java
index 27e2dc8..af1c9b8 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/AbstractValidator.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/AbstractValidator.java
@@ -19,8 +19,6 @@
 package org.apache.syncope.core.persistence.jpa.attrvalue.validation;
 
 import java.io.Serializable;
-import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidPlainAttrValueException;
-import org.apache.syncope.core.persistence.api.attrvalue.validation.ParsingValidationException;
 import org.apache.syncope.core.persistence.api.attrvalue.validation.Validator;
 import org.apache.syncope.core.persistence.api.entity.PlainAttrValue;
 import org.apache.syncope.core.persistence.api.entity.PlainSchema;
@@ -31,9 +29,6 @@ public abstract class AbstractValidator implements Validator, Serializable {
 
     private static final long serialVersionUID = -5439345166669502493L;
 
-    /*
-     * Logger
-     */
     protected static final Logger LOG = LoggerFactory.getLogger(AbstractValidator.class);
 
     protected final PlainSchema schema;
@@ -43,12 +38,10 @@ public abstract class AbstractValidator implements Validator, Serializable {
     }
 
     @Override
-    public void validate(String value, PlainAttrValue attrValue)
-            throws ParsingValidationException, InvalidPlainAttrValueException {
-
+    public void validate(final String value, final PlainAttrValue attrValue) {
         attrValue.parseValue(schema, value);
         doValidate(attrValue);
     }
 
-    protected abstract void doValidate(PlainAttrValue attrValue) throws InvalidPlainAttrValueException;
+    protected abstract void doValidate(PlainAttrValue attrValue);
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/AlwaysTrueValidator.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/AlwaysTrueValidator.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/AlwaysTrueValidator.java
index 25bc68e..1d93c5b 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/AlwaysTrueValidator.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/AlwaysTrueValidator.java
@@ -31,7 +31,7 @@ public class AlwaysTrueValidator extends AbstractValidator {
     }
 
     @Override
-    protected void doValidate(final PlainAttrValue attrValue) throws InvalidPlainAttrValueException {
+    protected void doValidate(final PlainAttrValue attrValue) {
         Boolean value = attrValue.getValue();
         if (!value) {
             throw new InvalidPlainAttrValueException("This attribute must be set to \"true\"");

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/BasicValidator.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/BasicValidator.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/BasicValidator.java
index 0676461..4d99372 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/BasicValidator.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/BasicValidator.java
@@ -33,7 +33,7 @@ public class BasicValidator extends AbstractValidator {
     }
 
     @Override
-    protected void doValidate(final PlainAttrValue attrValue) throws InvalidPlainAttrValueException {
+    protected void doValidate(final PlainAttrValue attrValue) {
         if (AttrSchemaType.Enum == schema.getType()) {
             final String[] enumeration = schema.getEnumerationValues().split(SyncopeConstants.ENUM_VALUES_SEPARATOR);
             final String value = attrValue.getStringValue();

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/EmailAddressValidator.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/EmailAddressValidator.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/EmailAddressValidator.java
index b78e86c..b16c0b7 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/EmailAddressValidator.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/attrvalue/validation/EmailAddressValidator.java
@@ -33,7 +33,7 @@ public class EmailAddressValidator extends AbstractValidator {
     }
 
     @Override
-    protected void doValidate(final PlainAttrValue attrValue) throws InvalidPlainAttrValueException {
+    protected void doValidate(final PlainAttrValue attrValue) {
         Matcher matcher = SyncopeConstants.EMAIL_PATTERN.matcher(attrValue.<CharSequence>getValue());
         if (!matcher.matches()) {
             throw new InvalidPlainAttrValueException("\"" + attrValue.getValue() + "\" is not a valid email address");

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java
index 49b573a..ddeb0e2 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/ContentLoaderHandler.java
@@ -60,9 +60,7 @@ class ContentLoaderHandler extends DefaultHandler {
                 new ResultSetExtractor<Map<String, Integer>>() {
 
                     @Override
-                    public Map<String, Integer> extractData(final ResultSet rs)
-                    throws SQLException, DataAccessException {
-
+                    public Map<String, Integer> extractData(final ResultSet rs) throws SQLException {
                         Map<String, Integer> colTypes = new HashMap<>();
                         for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
                             colTypes.put(

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/MultiParentNodeOp.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/MultiParentNodeOp.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/MultiParentNodeOp.java
index 68568ae..46c6f53 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/MultiParentNodeOp.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/MultiParentNodeOp.java
@@ -21,7 +21,7 @@ package org.apache.syncope.core.persistence.jpa.content;
 import java.util.Collection;
 import java.util.Set;
 
-class MultiParentNodeOp {
+final class MultiParentNodeOp {
 
     private MultiParentNodeOp() {
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
index 4a3f975..bc5f6e3 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/content/XMLContentExporter.java
@@ -77,7 +77,7 @@ import org.xml.sax.helpers.AttributesImpl;
 @Component
 public class XMLContentExporter extends AbstractContentDealer implements ContentExporter {
 
-    protected final static Set<String> TABLE_PREFIXES_TO_BE_EXCLUDED =
+    protected static final Set<String> TABLE_PREFIXES_TO_BE_EXCLUDED =
             new HashSet<>(Arrays.asList(new String[] {
                 "QRTZ_", "LOGGING", JPAReportExec.TABLE, JPATaskExec.TABLE,
                 JPAUser.TABLE, JPAUPlainAttr.TABLE, JPAUPlainAttrValue.TABLE, JPAUPlainAttrUniqueValue.TABLE,
@@ -86,7 +86,7 @@ public class XMLContentExporter extends AbstractContentDealer implements Content
                 JPAMDerAttr.TABLE, JPAMVirAttr.TABLE
             }));
 
-    protected final static Set<String> TABLE_SUFFIXES_TO_BE_INCLUDED =
+    protected static final Set<String> TABLE_SUFFIXES_TO_BE_INCLUDED =
             new HashSet<>(Arrays.asList(new String[] { "TEMPLATE" }));
 
     protected static final Map<String, String> TABLES_TO_BE_FILTERED =
@@ -320,7 +320,7 @@ public class XMLContentExporter extends AbstractContentDealer implements Content
     }
 
     @Override
-    public void export(final OutputStream os, final String uwfPrefix, String rwfPrefix)
+    public void export(final OutputStream os, final String uwfPrefix, final String rwfPrefix)
             throws SAXException, TransformerConfigurationException {
 
         if (StringUtils.isNotBlank(uwfPrefix)) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractSubjectDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractSubjectDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractSubjectDAO.java
index 247da9e..954651a 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractSubjectDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractSubjectDAO.java
@@ -108,8 +108,9 @@ abstract class AbstractSubjectDAO<P extends PlainAttr, D extends DerAttr, V exte
         final List<String> literals = new ArrayList<>();
 
         // Get schema names and literals
-        Token token;
-        while ((token = parser.getNextToken()) != null && StringUtils.isNotBlank(token.toString())) {
+        for (Token token = parser.getNextToken(); token != null && StringUtils.isNotBlank(token.toString());
+                token = parser.getNextToken()) {
+
             if (token.kind == ParserConstants.STRING_LITERAL) {
                 literals.add(token.toString().substring(1, token.toString().length() - 1));
             }

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java
index 54ae649..b3b4b01 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPANotificationDAO.java
@@ -21,7 +21,6 @@ package org.apache.syncope.core.persistence.jpa.dao;
 import java.util.List;
 import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.api.dao.NotificationDAO;
-import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
 import org.apache.syncope.core.persistence.api.entity.Notification;
 import org.apache.syncope.core.persistence.jpa.entity.JPANotification;
 import org.springframework.stereotype.Repository;
@@ -42,7 +41,7 @@ public class JPANotificationDAO extends AbstractDAO<Notification, Long> implemen
     }
 
     @Override
-    public Notification save(final Notification notification) throws InvalidEntityException {
+    public Notification save(final Notification notification) {
         return entityManager.merge(notification);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportDAO.java
index c60ff38..793411d 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportDAO.java
@@ -24,7 +24,6 @@ import javax.persistence.Query;
 import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.api.dao.ReportDAO;
 import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
-import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
 import org.apache.syncope.core.persistence.api.entity.Report;
 import org.apache.syncope.core.persistence.jpa.entity.JPAReport;
 import org.springframework.stereotype.Repository;
@@ -69,7 +68,7 @@ public class JPAReportDAO extends AbstractDAO<Report, Long> implements ReportDAO
 
     @Override
     @Transactional(rollbackFor = Throwable.class)
-    public Report save(final Report report) throws InvalidEntityException {
+    public Report save(final Report report) {
         return entityManager.merge(report);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportExecDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportExecDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportExecDAO.java
index d6c1f97..95f57df 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportExecDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAReportExecDAO.java
@@ -21,7 +21,6 @@ package org.apache.syncope.core.persistence.jpa.dao;
 import java.util.List;
 import javax.persistence.TypedQuery;
 import org.apache.syncope.core.persistence.api.dao.ReportExecDAO;
-import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
 import org.apache.syncope.core.persistence.api.entity.Report;
 import org.apache.syncope.core.persistence.api.entity.ReportExec;
 import org.apache.syncope.core.persistence.jpa.entity.JPAReportExec;
@@ -72,11 +71,10 @@ public class JPAReportExecDAO extends AbstractDAO<ReportExec, Long> implements R
      * @see org.apache.syncope.core.report.ReportJob
      * @param execution to be merged
      * @return merged execution
-     * @throws InvalidEntityException if any validation error occurs
      */
     @Override
     @Transactional(rollbackFor = Throwable.class)
-    public ReportExec save(final ReportExec execution) throws InvalidEntityException {
+    public ReportExec save(final ReportExec execution) {
         return entityManager.merge(execution);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASecurityQuestionDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASecurityQuestionDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASecurityQuestionDAO.java
index b002798..5c242d6 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASecurityQuestionDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPASecurityQuestionDAO.java
@@ -20,7 +20,6 @@ package org.apache.syncope.core.persistence.jpa.dao;
 
 import java.util.List;
 import javax.persistence.TypedQuery;
-import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
 import org.apache.syncope.core.persistence.api.dao.SecurityQuestionDAO;
 import org.apache.syncope.core.persistence.api.dao.UserDAO;
 import org.apache.syncope.core.persistence.api.entity.user.SecurityQuestion;
@@ -48,7 +47,7 @@ public class JPASecurityQuestionDAO extends AbstractDAO<SecurityQuestion, Long>
     }
 
     @Override
-    public SecurityQuestion save(final SecurityQuestion securityQuestion) throws InvalidEntityException {
+    public SecurityQuestion save(final SecurityQuestion securityQuestion) {
         return entityManager.merge(securityQuestion);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskExecDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskExecDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskExecDAO.java
index d3cfcd2..5d840da 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskExecDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskExecDAO.java
@@ -23,7 +23,6 @@ import javax.persistence.TypedQuery;
 import org.apache.syncope.common.lib.types.TaskType;
 import org.apache.syncope.core.persistence.api.dao.TaskDAO;
 import org.apache.syncope.core.persistence.api.dao.TaskExecDAO;
-import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidEntityException;
 import org.apache.syncope.core.persistence.api.entity.task.Task;
 import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 import org.apache.syncope.core.persistence.jpa.entity.task.JPATaskExec;
@@ -83,15 +82,14 @@ public class JPATaskExecDAO extends AbstractDAO<TaskExec, Long> implements TaskE
 
     /**
      * This method has an explicit Transactional annotation because it is called by
-     * {@link org.apache.syncope.core.quartz.AbstractTaskJob#execute(org.quartz.JobExecutionContext) }.
+     * {@link org.apache.syncope.core.provisioning.java.job.AbstractTaskJob#execute(org.quartz.JobExecutionContext)}.
      *
      * @param taskId task id
      * @param execution task execution
-     * @throws InvalidEntityException if any bean validation fails
      */
     @Override
     @Transactional(rollbackFor = { Throwable.class })
-    public void saveAndAdd(final Long taskId, final TaskExec execution) throws InvalidEntityException {
+    public void saveAndAdd(final Long taskId, final TaskExec execution) {
         Task task = taskDAO.find(taskId);
         task.addExec(execution);
         taskDAO.save(task);

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/SearchSupport.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/SearchSupport.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/SearchSupport.java
index 77d133b..9e80ff7 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/SearchSupport.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/SearchSupport.java
@@ -47,16 +47,16 @@ class SearchSupport {
         }
     }
 
-    private final SubjectType type;
+    private final SubjectType subjectType;
 
-    public SearchSupport(final SubjectType type) {
-        this.type = type;
+    public SearchSupport(final SubjectType subjectType) {
+        this.subjectType = subjectType;
     }
 
-    public String fieldName(final AttrSchemaType type) {
+    public String fieldName(final AttrSchemaType attrSchemaType) {
         String result;
 
-        switch (type) {
+        switch (attrSchemaType) {
             case Boolean:
                 result = "booleanvalue";
                 break;
@@ -88,7 +88,7 @@ class SearchSupport {
     public SearchView field() {
         String result = "";
 
-        switch (type) {
+        switch (subjectType) {
             case USER:
             default:
                 result = "user_search";

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractExec.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractExec.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractExec.java
index 7e52010..5c009d4 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractExec.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractExec.java
@@ -68,17 +68,9 @@ public abstract class AbstractExec extends AbstractEntity<Long> implements Exec
         return message;
     }
 
-    /**
-     * Set a message for this execution, taking care of replacing every null character with newline.
-     *
-     * @param message the message to set for this execution
-     */
     @Override
-    public void setMessage(String message) {
-        if (message != null) {
-            message = message.replace('\0', '\n');
-        }
-        this.message = message;
+    public void setMessage(final String message) {
+        this.message = message == null ? null : message.replace('\0', '\n');
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
index 56a37cc..ff1efee 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttr.java
@@ -21,11 +21,9 @@ package org.apache.syncope.core.persistence.jpa.entity;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
-
 import javax.persistence.MappedSuperclass;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.Transformer;
-import org.apache.syncope.core.persistence.api.attrvalue.validation.InvalidPlainAttrValueException;
 import org.apache.syncope.core.persistence.api.entity.AttributableUtils;
 import org.apache.syncope.core.persistence.api.entity.PlainAttr;
 import org.apache.syncope.core.persistence.api.entity.PlainAttrUniqueValue;
@@ -41,9 +39,7 @@ public abstract class AbstractPlainAttr extends AbstractEntity<Long> implements
     protected abstract boolean addValue(PlainAttrValue attrValue);
 
     @Override
-    public void addValue(final String value, final AttributableUtils attributableUtil)
-            throws InvalidPlainAttrValueException {
-
+    public void addValue(final String value, final AttributableUtils attributableUtil) {
         PlainAttrValue attrValue;
         if (getSchema().isUniqueConstraint()) {
             attrValue = attributableUtil.newPlainAttrUniqueValue();

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
index c6a3bd7..424e6a2 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/AbstractPlainAttrValue.java
@@ -140,7 +140,7 @@ public abstract class AbstractPlainAttrValue extends AbstractEntity<Long> implem
     }
 
     @Override
-    public void parseValue(final PlainSchema schema, final String value) throws ParsingValidationException {
+    public void parseValue(final PlainSchema schema, final String value) {
         Exception exception = null;
 
         switch (schema.getType()) {

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAExternalResource.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAExternalResource.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAExternalResource.java
index 5836dec..2fa54c3 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAExternalResource.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/JPAExternalResource.java
@@ -209,7 +209,7 @@ public class JPAExternalResource extends AbstractAnnotatedEntity<String> impleme
     }
 
     @Override
-    public void setEnforceMandatoryCondition(boolean enforceMandatoryCondition) {
+    public void setEnforceMandatoryCondition(final boolean enforceMandatoryCondition) {
         this.enforceMandatoryCondition = getBooleanAsInteger(enforceMandatoryCondition);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/AbstractProvisioningTask.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/AbstractProvisioningTask.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/AbstractProvisioningTask.java
index 9f837f7..821bbe4 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/AbstractProvisioningTask.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/AbstractProvisioningTask.java
@@ -132,7 +132,7 @@ public abstract class AbstractProvisioningTask extends JPASchedTask implements P
     }
 
     @Override
-    public void setPerformDelete(boolean performDelete) {
+    public void setPerformDelete(final boolean performDelete) {
         this.performDelete = getBooleanAsInteger(performDelete);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
index d12f46f..3170c14 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/user/JPAUser.java
@@ -310,7 +310,6 @@ public class JPAUser extends AbstractSubject<UPlainAttr, UDerAttr, UVirAttr> imp
 
     @Override
     public void setEncodedPassword(final String password, final CipherAlgorithm cipherAlgoritm) {
-        // clear password
         this.clearPassword = null;
 
         this.password = password;
@@ -319,7 +318,6 @@ public class JPAUser extends AbstractSubject<UPlainAttr, UDerAttr, UVirAttr> imp
 
     @Override
     public void setPassword(final String password, final CipherAlgorithm cipherAlgoritm) {
-        // clear password
         this.clearPassword = password;
 
         try {

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PlainAttrCheck.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PlainAttrCheck.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PlainAttrCheck.java
index ed1bc5e..d5d546b 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PlainAttrCheck.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/PlainAttrCheck.java
@@ -27,7 +27,7 @@ import java.lang.annotation.Target;
 import javax.validation.Constraint;
 import javax.validation.Payload;
 
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
 @Retention(RetentionPolicy.RUNTIME)
 @Constraint(validatedBy = PlainAttrValidator.class)
 @Documented

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/UserCheck.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/UserCheck.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/UserCheck.java
index 0df3b86..2d9fec6 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/UserCheck.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/validation/entity/UserCheck.java
@@ -27,8 +27,7 @@ import java.lang.annotation.Target;
 import javax.validation.Constraint;
 import javax.validation.Payload;
 
-
-@Target( { ElementType.TYPE })
+@Target({ ElementType.TYPE })
 @Retention(RetentionPolicy.RUNTIME)
 @Constraint(validatedBy = UserValidator.class)
 @Documented

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/persistence-jpa/src/test/resources/simplelogger.properties
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/test/resources/simplelogger.properties b/core/persistence-jpa/src/test/resources/simplelogger.properties
index 736706a..929ded2 100644
--- a/core/persistence-jpa/src/test/resources/simplelogger.properties
+++ b/core/persistence-jpa/src/test/resources/simplelogger.properties
@@ -18,4 +18,5 @@
 # See http://www.slf4j.org/api/org/slf4j/impl/SimpleLogger.html
 # Possible values: "trace", "debug", "info", "warn", or "error"
 org.slf4j.simpleLogger.defaultLogLevel=debug
-org.slf4j.simpleLogger.log.org.springframework.jdbc.core.JdbcTemplate=error
\ No newline at end of file
+org.slf4j.simpleLogger.log.org.springframework.jdbc.core.JdbcTemplate=error
+

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-api/pom.xml
----------------------------------------------------------------------
diff --git a/core/provisioning-api/pom.xml b/core/provisioning-api/pom.xml
index a634406..8bc9432 100644
--- a/core/provisioning-api/pom.xml
+++ b/core/provisioning-api/pom.xml
@@ -56,10 +56,6 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
       </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-pmd-plugin</artifactId>
-      </plugin>
     </plugins>
   </build>
 </project>

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/pom.xml
----------------------------------------------------------------------
diff --git a/core/provisioning-java/pom.xml b/core/provisioning-java/pom.xml
index f4966d6..200ae0a 100644
--- a/core/provisioning-java/pom.xml
+++ b/core/provisioning-java/pom.xml
@@ -130,10 +130,6 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
       </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-pmd-plugin</artifactId>
-      </plugin>
     </plugins>
     
     <resources>

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAttributableDataBinder.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAttributableDataBinder.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAttributableDataBinder.java
index 643da62..6264379 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAttributableDataBinder.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AbstractAttributableDataBinder.java
@@ -253,12 +253,13 @@ abstract class AbstractAttributableDataBinder {
         boolean result = false;
 
         if (attributable instanceof Subject) {
-            for (Iterator<? extends ExternalResource> itor = ((Subject<?, ?, ?>) attributable).getResources().iterator();
-                    itor.hasNext() && !result;) {
+            for (Iterator<? extends ExternalResource> itor =
+                    ((Subject<?, ?, ?>) attributable).getResources().iterator(); itor.hasNext() && !result;) {
 
                 final ExternalResource resource = itor.next();
                 if (resource.isEnforceMandatoryCondition()) {
-                    result |= evaluateMandatoryCondition(attrUtils, resource, attributable, intAttrName, intMappingType);
+                    result |= evaluateMandatoryCondition(
+                            attrUtils, resource, attributable, intAttrName, intMappingType);
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
index 3800adb..3fe382c 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/PolicyDataBinderImpl.java
@@ -106,23 +106,24 @@ public class PolicyDataBinderImpl implements PolicyDataBinder {
 
     @SuppressWarnings("unchecked")
     @Override
-    public <T extends Policy> T getPolicy(T policy, final AbstractPolicyTO policyTO) {
+    public <T extends Policy> T getPolicy(final T policy, final AbstractPolicyTO policyTO) {
         if (policy != null && policy.getType() != policyTO.getType()) {
             SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.InvalidPolicy);
             sce.getElements().add(String.format("Cannot update %s from %s", policy.getType(), policyTO.getType()));
             throw sce;
         }
 
+        T result = policy;
         switch (policyTO.getType()) {
             case PASSWORD:
                 if (!(policyTO instanceof PasswordPolicyTO)) {
                     throw new ClassCastException("Expected " + PasswordPolicyTO.class.getName()
                             + ", found " + policyTO.getClass().getName());
                 }
-                if (policy == null) {
-                    policy = (T) entityFactory.newEntity(PasswordPolicy.class);
+                if (result == null) {
+                    result = (T) entityFactory.newEntity(PasswordPolicy.class);
                 }
-                policy.setSpecification(((PasswordPolicyTO) policyTO).getSpecification());
+                result.setSpecification(((PasswordPolicyTO) policyTO).getSpecification());
                 break;
 
             case ACCOUNT:
@@ -130,20 +131,20 @@ public class PolicyDataBinderImpl implements PolicyDataBinder {
                     throw new ClassCastException("Expected " + AccountPolicyTO.class.getName()
                             + ", found " + policyTO.getClass().getName());
                 }
-                if (policy == null) {
-                    policy = (T) entityFactory.newEntity(AccountPolicy.class);
+                if (result == null) {
+                    result = (T) entityFactory.newEntity(AccountPolicy.class);
                 }
-                policy.setSpecification(((AccountPolicyTO) policyTO).getSpecification());
+                result.setSpecification(((AccountPolicyTO) policyTO).getSpecification());
 
-                if (((AccountPolicy) policy).getResources() != null
-                        && !((AccountPolicy) policy).getResources().isEmpty()) {
-                    ((AccountPolicy) policy).getResources().clear();
+                if (((AccountPolicy) result).getResources() != null
+                        && !((AccountPolicy) result).getResources().isEmpty()) {
+                    ((AccountPolicy) result).getResources().clear();
                 }
                 for (String resourceName : ((AccountPolicyTO) policyTO).getResources()) {
                     ExternalResource resource = getResource(resourceName);
 
                     if (resource != null) {
-                        ((AccountPolicy) policy).addResource(resource);
+                        ((AccountPolicy) result).addResource(resource);
                     }
                 }
                 break;
@@ -154,14 +155,14 @@ public class PolicyDataBinderImpl implements PolicyDataBinder {
                     throw new ClassCastException("Expected " + SyncPolicyTO.class.getName()
                             + ", found " + policyTO.getClass().getName());
                 }
-                if (policy == null) {
-                    policy = (T) entityFactory.newEntity(SyncPolicy.class);
+                if (result == null) {
+                    result = (T) entityFactory.newEntity(SyncPolicy.class);
                 }
-                policy.setSpecification(((SyncPolicyTO) policyTO).getSpecification());
+                result.setSpecification(((SyncPolicyTO) policyTO).getSpecification());
         }
 
-        policy.setDescription(policyTO.getDescription());
+        result.setDescription(policyTO.getDescription());
 
-        return policy;
+        return result;
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
index d9df85f..1b1508d 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/UserDataBinderImpl.java
@@ -438,7 +438,8 @@ public class UserDataBinderImpl extends AbstractAttributableDataBinder implement
             membershipTO.setGroupName(membership.getGroup().getName());
 
             // SYNCOPE-458 retrieve also membership virtual attributes
-            connObjectUtils.retrieveVirAttrValues(membership, attrUtilsFactory.getInstance(AttributableType.MEMBERSHIP));
+            connObjectUtils.retrieveVirAttrValues(
+                    membership, attrUtilsFactory.getInstance(AttributableType.MEMBERSHIP));
             fillTO(membershipTO, null,
                     membership.getPlainAttrs(), membership.getDerAttrs(), membership.getVirAttrs(),
                     Collections.<ExternalResource>emptyList());

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AbstractTaskJob.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AbstractTaskJob.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AbstractTaskJob.java
index cf4d54f..6659d7d 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AbstractTaskJob.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AbstractTaskJob.java
@@ -48,8 +48,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 @DisallowConcurrentExecution
 public abstract class AbstractTaskJob implements TaskJob {
 
-    public static final String DRY_RUN_JOBDETAIL_KEY = "dryRun";
-
     /**
      * Task execution status.
      */

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
index a6341c0..c052971 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/NotificationManagerImpl.java
@@ -250,7 +250,7 @@ public class NotificationManagerImpl implements NotificationManager {
      * @param model Velocity model
      * @return Velocity context
      */
-    protected Context createVelocityContext(Map<String, Object> model) {
+    protected Context createVelocityContext(final Map<String, Object> model) {
         Context toolContext = velocityToolManager.createContext();
         return new VelocityContext(model, toolContext);
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/SpringVelocityResourceLoader.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/SpringVelocityResourceLoader.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/SpringVelocityResourceLoader.java
index f1b072b..feafc34 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/SpringVelocityResourceLoader.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/SpringVelocityResourceLoader.java
@@ -47,7 +47,7 @@ public class SpringVelocityResourceLoader extends ResourceLoader {
     private org.springframework.core.io.ResourceLoader resourceLoader;
 
     @Override
-    public void init(ExtendedProperties configuration) {
+    public void init(final ExtendedProperties configuration) {
         this.resourceLoader =
                 (org.springframework.core.io.ResourceLoader) this.rsvc.getApplicationAttribute(SPRING_RESOURCE_LOADER);
         if (this.resourceLoader == null) {
@@ -59,7 +59,7 @@ public class SpringVelocityResourceLoader extends ResourceLoader {
     }
 
     @Override
-    public InputStream getResourceStream(final String source) throws ResourceNotFoundException {
+    public InputStream getResourceStream(final String source) {
         LOG.debug("Looking for Velocity resource with name [{}]", source);
 
         org.springframework.core.io.Resource resource = this.resourceLoader.getResource(source);

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/VelocityEngineFactoryBean.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/VelocityEngineFactoryBean.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/VelocityEngineFactoryBean.java
index fae1504..6e2b9d3 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/VelocityEngineFactoryBean.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/notification/VelocityEngineFactoryBean.java
@@ -21,7 +21,6 @@ package org.apache.syncope.core.provisioning.java.notification;
 import java.io.IOException;
 
 import org.apache.velocity.app.VelocityEngine;
-import org.apache.velocity.exception.VelocityException;
 import org.apache.velocity.runtime.RuntimeConstants;
 import org.apache.velocity.runtime.log.CommonsLogLogChute;
 import org.springframework.beans.factory.FactoryBean;
@@ -62,7 +61,7 @@ public class VelocityEngineFactoryBean implements FactoryBean<VelocityEngine>, I
         this.overrideLogging = overrideLogging;
     }
 
-    private void createVelocityEngine() throws IOException, VelocityException {
+    private void createVelocityEngine() throws IOException {
         velocityEngine = new VelocityEngine();
 
         velocityEngine.setProperty(
@@ -83,7 +82,7 @@ public class VelocityEngineFactoryBean implements FactoryBean<VelocityEngine>, I
     }
 
     @Override
-    public void afterPropertiesSet() throws IOException, VelocityException {
+    public void afterPropertiesSet() throws IOException {
         createVelocityEngine();
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java
index 37ce2fa..35358af 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/LDAPPasswordPropagationActions.java
@@ -108,7 +108,7 @@ public class LDAPPasswordPropagationActions extends DefaultPropagationActions {
                 : (String) cipherAlgorithm.getValues().get(0);
     }
 
-    private boolean cipherAlgorithmMatches(String connectorAlgorithm, CipherAlgorithm userAlgorithm) {
+    private boolean cipherAlgorithmMatches(final String connectorAlgorithm, final CipherAlgorithm userAlgorithm) {
         if (userAlgorithm == null) {
             return false;
         }

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
index c9e8f5b..d7c59a4 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PropagationManagerImpl.java
@@ -39,7 +39,6 @@ import org.apache.syncope.common.lib.types.MappingPurpose;
 import org.apache.syncope.common.lib.types.PropagationByResource;
 import org.apache.syncope.common.lib.types.ResourceOperation;
 import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
-import org.apache.syncope.core.persistence.api.dao.NotFoundException;
 import org.apache.syncope.core.persistence.api.dao.GroupDAO;
 import org.apache.syncope.core.persistence.api.dao.UserDAO;
 import org.apache.syncope.core.persistence.api.entity.AttributableUtils;
@@ -57,7 +56,6 @@ import org.apache.syncope.core.provisioning.api.WorkflowResult;
 import org.apache.syncope.core.provisioning.api.propagation.PropagationManager;
 import org.apache.syncope.core.provisioning.api.propagation.PropagationTaskExecutor;
 import org.apache.syncope.core.provisioning.java.VirAttrHandler;
-import org.apache.syncope.core.misc.security.UnauthorizedException;
 import org.apache.syncope.core.misc.ConnObjectUtils;
 import org.apache.syncope.core.misc.MappingUtils;
 import org.apache.syncope.core.misc.jexl.JexlUtils;
@@ -121,8 +119,7 @@ public class PropagationManagerImpl implements PropagationManager {
             final String password,
             final Collection<AttrTO> vAttrs,
             final Collection<MembershipTO> membershipTOs,
-            final Collection<String> noPropResourceNames)
-            throws NotFoundException, UnauthorizedException {
+            final Collection<String> noPropResourceNames) {
 
         User user = userDAO.authFetch(key);
         if (vAttrs != null && !vAttrs.isEmpty()) {
@@ -153,15 +150,12 @@ public class PropagationManagerImpl implements PropagationManager {
      * @param vAttrs virtual attributes to be set
      * @param noPropResourceNames external resources performing not to be considered for propagation
      * @return list of propagation tasks
-     * @throws NotFoundException if group is not found
-     * @throws UnauthorizedException if caller doesn't own enough entitlements to administer the given group
      */
     @Override
     public List<PropagationTask> getGroupCreateTasks(
             final WorkflowResult<Long> wfResult,
             final Collection<AttrTO> vAttrs,
-            final Collection<String> noPropResourceNames)
-            throws NotFoundException, UnauthorizedException {
+            final Collection<String> noPropResourceNames) {
 
         return getGroupCreateTasks(wfResult.getResult(), vAttrs, wfResult.getPropByRes(), noPropResourceNames);
     }
@@ -174,16 +168,13 @@ public class PropagationManagerImpl implements PropagationManager {
      * @param propByRes operation to be performed per resource
      * @param noPropResourceNames external resources performing not to be considered for propagation
      * @return list of propagation tasks
-     * @throws NotFoundException if group is not found
-     * @throws UnauthorizedException if caller doesn't own enough entitlements to administer the given group
      */
     @Override
     public List<PropagationTask> getGroupCreateTasks(
             final Long key,
             final Collection<AttrTO> vAttrs,
             final PropagationByResource propByRes,
-            final Collection<String> noPropResourceNames)
-            throws NotFoundException, UnauthorizedException {
+            final Collection<String> noPropResourceNames) {
 
         Group group = groupDAO.authFetch(key);
         if (vAttrs != null && !vAttrs.isEmpty()) {
@@ -216,11 +207,10 @@ public class PropagationManagerImpl implements PropagationManager {
      * @param enable whether user must be enabled or not
      * @param noPropResourceNames external resource names not to be considered for propagation
      * @return list of propagation tasks
-     * @throws NotFoundException if user is not found
      */
     @Override
     public List<PropagationTask> getUserUpdateTasks(final User user, final Boolean enable,
-            final Collection<String> noPropResourceNames) throws NotFoundException {
+            final Collection<String> noPropResourceNames) {
 
         return getUpdateTasks(
                 user, // user to be updated on external resources
@@ -241,13 +231,10 @@ public class PropagationManagerImpl implements PropagationManager {
      * @param changePwd whether password should be included for propagation attributes or not
      * @param noPropResourceNames external resources not to be considered for propagation
      * @return list of propagation tasks
-     * @throws NotFoundException if user is not found
-     * @throws UnauthorizedException if caller doesn't own enough entitlements to administer the given user
      */
     @Override
     public List<PropagationTask> getUserUpdateTasks(final WorkflowResult<Pair<UserMod, Boolean>> wfResult,
-            final boolean changePwd, final Collection<String> noPropResourceNames)
-            throws NotFoundException, UnauthorizedException {
+            final boolean changePwd, final Collection<String> noPropResourceNames) {
 
         User user = userDAO.authFetch(wfResult.getResult().getKey().getKey());
         return getUpdateTasks(user,
@@ -303,8 +290,7 @@ public class PropagationManagerImpl implements PropagationManager {
     @Override
     public List<PropagationTask> getGroupUpdateTasks(final WorkflowResult<Long> wfResult,
             final Set<String> vAttrsToBeRemoved, final Set<AttrMod> vAttrsToBeUpdated,
-            final Set<String> noPropResourceNames)
-            throws NotFoundException, UnauthorizedException {
+            final Set<String> noPropResourceNames) {
 
         Group group = groupDAO.authFetch(wfResult.getResult());
         return getUpdateTasks(group, null, false, null,
@@ -317,8 +303,7 @@ public class PropagationManagerImpl implements PropagationManager {
             final String password, final boolean changePwd, final Boolean enable,
             final Set<String> vAttrsToBeRemoved, final Set<AttrMod> vAttrsToBeUpdated,
             final PropagationByResource propByRes, final Collection<String> noPropResourceNames,
-            final Set<MembershipMod> membershipsToAdd)
-            throws NotFoundException {
+            final Set<MembershipMod> membershipsToAdd) {
 
         PropagationByResource localPropByRes = virAttrHandler.fillVirtual(subject, vAttrsToBeRemoved == null
                 ? Collections.<String>emptySet()
@@ -389,8 +374,7 @@ public class PropagationManagerImpl implements PropagationManager {
     }
 
     @Override
-    public List<PropagationTask> getUserDeleteTasks(final Long userKey, final Collection<String> noPropResourceNames)
-            throws NotFoundException, UnauthorizedException {
+    public List<PropagationTask> getUserDeleteTasks(final Long userKey, final Collection<String> noPropResourceNames) {
 
         User user = userDAO.authFetch(userKey);
         return getDeleteTaskIds(user, user.getResourceNames(), noPropResourceNames);
@@ -398,8 +382,7 @@ public class PropagationManagerImpl implements PropagationManager {
 
     @Override
     public List<PropagationTask> getUserDeleteTasks(
-            final Long userKey, final Set<String> resourceNames, final Collection<String> noPropResourceNames)
-            throws NotFoundException, UnauthorizedException {
+            final Long userKey, final Set<String> resourceNames, final Collection<String> noPropResourceNames) {
 
         User user = userDAO.authFetch(userKey);
         return getDeleteTaskIds(user, resourceNames, noPropResourceNames);
@@ -412,23 +395,20 @@ public class PropagationManagerImpl implements PropagationManager {
     }
 
     @Override
-    public List<PropagationTask> getGroupDeleteTasks(final Long groupKey)
-            throws NotFoundException, UnauthorizedException {
+    public List<PropagationTask> getGroupDeleteTasks(final Long groupKey) {
 
         return getGroupDeleteTasks(groupKey, Collections.<String>emptySet());
     }
 
     @Override
-    public List<PropagationTask> getGroupDeleteTasks(final Long groupKey, final String noPropResourceName)
-            throws NotFoundException, UnauthorizedException {
+    public List<PropagationTask> getGroupDeleteTasks(final Long groupKey, final String noPropResourceName) {
 
         return getGroupDeleteTasks(groupKey, Collections.<String>singleton(noPropResourceName));
     }
 
     @Override
     public List<PropagationTask> getGroupDeleteTasks(
-            final Long groupKey, final Collection<String> noPropResourceNames)
-            throws NotFoundException, UnauthorizedException {
+            final Long groupKey, final Collection<String> noPropResourceNames) {
 
         Group group = groupDAO.authFetch(groupKey);
         return getDeleteTaskIds(group, group.getResourceNames(), noPropResourceNames);
@@ -436,8 +416,7 @@ public class PropagationManagerImpl implements PropagationManager {
 
     @Override
     public List<PropagationTask> getGroupDeleteTasks(
-            final Long groupKey, final Set<String> resourceNames, final Collection<String> noPropResourceNames)
-            throws NotFoundException, UnauthorizedException {
+            final Long groupKey, final Set<String> resourceNames, final Collection<String> noPropResourceNames) {
 
         Group group = groupDAO.authFetch(groupKey);
         return getDeleteTaskIds(group, resourceNames, noPropResourceNames);

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractProvisioningJob.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractProvisioningJob.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractProvisioningJob.java
index 9ad01ff..9373249 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractProvisioningJob.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractProvisioningJob.java
@@ -32,8 +32,6 @@ import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
 import org.apache.syncope.core.persistence.api.dao.PolicyDAO;
 import org.apache.syncope.core.persistence.api.entity.group.GMapping;
 import org.apache.syncope.core.persistence.api.entity.task.ProvisioningTask;
-import org.apache.syncope.core.persistence.api.entity.task.PushTask;
-import org.apache.syncope.core.persistence.api.entity.task.SyncTask;
 import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 import org.apache.syncope.core.persistence.api.entity.user.UMapping;
 import org.apache.syncope.core.provisioning.api.Connector;
@@ -53,8 +51,8 @@ import org.springframework.security.core.userdetails.UserDetails;
  * Job for executing synchronization tasks.
  *
  * @see AbstractTaskJob
- * @see SyncTask
- * @see PushTask
+ * @see org.apache.syncope.core.persistence.api.entity.task.SyncTask
+ * @see org.apache.syncope.core.persistence.api.entity.task.PushTask
  */
 public abstract class AbstractProvisioningJob<T extends ProvisioningTask, A extends ProvisioningActions>
         extends AbstractTaskJob {

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractPushResultHandler.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractPushResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractPushResultHandler.java
index 520240c..226cedf 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractPushResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractPushResultHandler.java
@@ -25,7 +25,6 @@ import java.util.Set;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.syncope.common.lib.mod.AttrMod;
 import org.apache.syncope.common.lib.mod.MembershipMod;
-import org.apache.syncope.common.lib.to.AbstractSubjectTO;
 import org.apache.syncope.common.lib.types.AuditElements;
 import org.apache.syncope.common.lib.types.AuditElements.Result;
 import org.apache.syncope.common.lib.types.IntMappingType;

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java
index b571423..d57f9ac 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/AbstractSyncResultHandler.java
@@ -58,7 +58,7 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
     protected abstract AbstractSubjectMod getSubjectMod(AbstractSubjectTO subjectTO, SyncDelta delta);
 
     protected abstract AbstractSubjectTO doCreate(
-            AbstractSubjectTO subjectTO, SyncDelta _delta, ProvisioningResult result);
+            AbstractSubjectTO subjectTO, SyncDelta delta, ProvisioningResult result);
 
     protected abstract AbstractSubjectTO doLink(AbstractSubjectTO before, ProvisioningResult result, boolean unlink);
 
@@ -118,12 +118,12 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
         if (profile.isDryRun()) {
             result.setKey(0L);
         } else {
-            SyncDelta _delta = delta;
+            SyncDelta actionedDelta = delta;
             for (SyncActions action : profile.getActions()) {
-                _delta = action.beforeAssign(this.getProfile(), _delta, transformed);
+                actionedDelta = action.beforeAssign(this.getProfile(), actionedDelta, transformed);
             }
 
-            create(transformed, _delta, attrUtils, UnmatchingRule.toEventName(UnmatchingRule.ASSIGN), result);
+            create(transformed, actionedDelta, attrUtils, UnmatchingRule.toEventName(UnmatchingRule.ASSIGN), result);
         }
 
         return Collections.singletonList(result);
@@ -154,12 +154,12 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
         if (profile.isDryRun()) {
             result.setKey(0L);
         } else {
-            SyncDelta _delta = delta;
+            SyncDelta actionedDelta = delta;
             for (SyncActions action : profile.getActions()) {
-                _delta = action.beforeProvision(this.getProfile(), _delta, transformed);
+                actionedDelta = action.beforeProvision(this.getProfile(), actionedDelta, transformed);
             }
 
-            create(transformed, _delta, attrUtils, UnmatchingRule.toEventName(UnmatchingRule.PROVISION), result);
+            create(transformed, actionedDelta, attrUtils, UnmatchingRule.toEventName(UnmatchingRule.PROVISION), result);
         }
 
         return Collections.<ProvisioningResult>singletonList(result);
@@ -204,9 +204,8 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
         audit(operation, resultStatus, null, output, delta);
     }
 
-    protected List<ProvisioningResult> update(SyncDelta delta, final List<Long> subjects,
-            final AttributableUtils attrUtils)
-            throws JobExecutionException {
+    protected List<ProvisioningResult> update(final SyncDelta delta, final List<Long> subjects,
+            final AttributableUtils attrUtils) throws JobExecutionException {
 
         if (!profile.getTask().isPerformUpdate()) {
             LOG.debug("SyncTask not configured for update");
@@ -217,6 +216,7 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
 
         List<ProvisioningResult> results = new ArrayList<>();
 
+        SyncDelta workingDelta = delta;
         for (Long key : subjects) {
             LOG.debug("About to update {}", key);
 
@@ -242,20 +242,20 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
                     output = null;
                 } else {
                     try {
-                        final AbstractSubjectMod attributableMod = getSubjectMod(before, delta);
+                        AbstractSubjectMod subjectMod = getSubjectMod(before, workingDelta);
 
                         // Attribute value transformation (if configured)
-                        final AbstractSubjectMod actual = attrTransformer.transform(attributableMod);
+                        AbstractSubjectMod actual = attrTransformer.transform(subjectMod);
                         LOG.debug("Transformed: {}", actual);
 
                         for (SyncActions action : profile.getActions()) {
-                            delta = action.beforeUpdate(this.getProfile(), delta, before, attributableMod);
+                            workingDelta = action.beforeUpdate(this.getProfile(), workingDelta, before, subjectMod);
                         }
 
-                        final AbstractSubjectTO updated = doUpdate(before, attributableMod, delta, result);
+                        final AbstractSubjectTO updated = doUpdate(before, subjectMod, workingDelta, result);
 
                         for (SyncActions action : profile.getActions()) {
-                            action.after(this.getProfile(), delta, updated, result);
+                            action.after(this.getProfile(), workingDelta, updated, result);
                         }
 
                         output = updated;
@@ -265,7 +265,8 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
                     } catch (PropagationException e) {
                         // A propagation failure doesn't imply a synchronization failure.
                         // The propagation exception status will be reported into the propagation task execution.
-                        LOG.error("Could not propagate {} {}", attrUtils.getType(), delta.getUid().getUidValue(), e);
+                        LOG.error("Could not propagate {} {}", 
+                                attrUtils.getType(), workingDelta.getUid().getUidValue(), e);
                         output = e;
                         resultStatus = Result.FAILURE;
                     } catch (IgnoreProvisionException e) {
@@ -273,12 +274,13 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
                     } catch (Exception e) {
                         result.setStatus(ProvisioningResult.Status.FAILURE);
                         result.setMessage(ExceptionUtils.getRootCauseMessage(e));
-                        LOG.error("Could not update {} {}", attrUtils.getType(), delta.getUid().getUidValue(), e);
+                        LOG.error("Could not update {} {}", 
+                                attrUtils.getType(), workingDelta.getUid().getUidValue(), e);
                         output = e;
                         resultStatus = Result.FAILURE;
                     }
                 }
-                audit(MatchingRule.toEventName(MatchingRule.UPDATE), resultStatus, before, output, delta);
+                audit(MatchingRule.toEventName(MatchingRule.UPDATE), resultStatus, before, output, workingDelta);
             }
             results.add(result);
         }
@@ -286,7 +288,7 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
     }
 
     protected List<ProvisioningResult> deprovision(
-            SyncDelta delta,
+            final SyncDelta delta,
             final List<Long> subjects,
             final AttributableUtils attrUtils,
             final boolean unlink)
@@ -374,7 +376,7 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
     }
 
     protected List<ProvisioningResult> link(
-            SyncDelta delta,
+            final SyncDelta delta,
             final List<Long> subjects,
             final AttributableUtils attrUtils,
             final boolean unlink)
@@ -460,7 +462,7 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
     }
 
     protected List<ProvisioningResult> delete(
-            SyncDelta delta, final List<Long> subjects, final AttributableUtils attrUtils)
+            final SyncDelta delta, final List<Long> subjects, final AttributableUtils attrUtils)
             throws JobExecutionException {
 
         if (!profile.getTask().isPerformDelete()) {
@@ -472,6 +474,7 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
 
         List<ProvisioningResult> delResults = new ArrayList<>();
 
+        SyncDelta workingDelta = delta;
         for (Long id : subjects) {
             Object output;
             Result resultStatus = Result.FAILURE;
@@ -490,7 +493,7 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
 
                 if (!profile.isDryRun()) {
                     for (SyncActions action : profile.getActions()) {
-                        delta = action.beforeDelete(this.getProfile(), delta, before);
+                        workingDelta = action.beforeDelete(this.getProfile(), workingDelta, before);
                     }
 
                     try {
@@ -507,10 +510,10 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
                     }
 
                     for (SyncActions action : profile.getActions()) {
-                        action.after(this.getProfile(), delta, before, result);
+                        action.after(this.getProfile(), workingDelta, before, result);
                     }
 
-                    audit(ResourceOperation.DELETE.name().toLowerCase(), resultStatus, before, output, delta);
+                    audit(ResourceOperation.DELETE.name().toLowerCase(), resultStatus, before, output, workingDelta);
                 }
 
                 delResults.add(result);
@@ -527,8 +530,8 @@ public abstract class AbstractSyncResultHandler extends AbstractSyncopeResultHan
         return delResults;
     }
 
-    private List<ProvisioningResult> ignore(SyncDelta delta, final AttributableUtils attrUtils, final boolean matching)
-            throws JobExecutionException {
+    private List<ProvisioningResult> ignore(final SyncDelta delta, final AttributableUtils attrUtils,
+            final boolean matching) throws JobExecutionException {
 
         LOG.debug("Subject to ignore {}", delta.getObject().getUid().getUidValue());
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
index b9fa5ca..1ce0357 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/GroupSyncResultHandlerImpl.java
@@ -65,9 +65,7 @@ public class GroupSyncResultHandlerImpl extends AbstractSyncResultHandler implem
     }
 
     @Override
-    protected AbstractSubjectMod getSubjectMod(
-            final AbstractSubjectTO subjectTO, final SyncDelta delta) {
-
+    protected AbstractSubjectMod getSubjectMod(final AbstractSubjectTO subjectTO, final SyncDelta delta) {
         return connObjectUtils.getAttributableMod(
                 subjectTO.getKey(),
                 delta.getObject(),
@@ -78,7 +76,7 @@ public class GroupSyncResultHandlerImpl extends AbstractSyncResultHandler implem
 
     @Override
     protected AbstractSubjectTO doCreate(
-            final AbstractSubjectTO subjectTO, final SyncDelta _delta, final ProvisioningResult result) {
+            final AbstractSubjectTO subjectTO, final SyncDelta delta, final ProvisioningResult result) {
 
         GroupTO groupTO = GroupTO.class.cast(subjectTO);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/PushJobImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/PushJobImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/PushJobImpl.java
index 7bec3af..7acc2ae 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/PushJobImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/PushJobImpl.java
@@ -53,6 +53,8 @@ import org.springframework.beans.factory.support.AbstractBeanDefinition;
  */
 public class PushJobImpl extends AbstractProvisioningJob<PushTask, PushActions> implements PushJob {
 
+    private static final int PAGE_SIZE = 1000;
+
     /**
      * User DAO.
      */
@@ -71,8 +73,6 @@ public class PushJobImpl extends AbstractProvisioningJob<PushTask, PushActions>
     @Autowired
     private GroupDAO groupDAO;
 
-    private final int PAGE_SIZE = 1000;
-
     @Override
     protected String executeWithSecurityContext(
             final PushTask pushTask,

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncJobImpl.java
----------------------------------------------------------------------
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncJobImpl.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncJobImpl.java
index 1d47bfb..54e5115 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncJobImpl.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/sync/SyncJobImpl.java
@@ -23,7 +23,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.lib.mod.ReferenceMod;
 import org.apache.syncope.common.lib.mod.GroupMod;
 import org.apache.syncope.common.lib.types.SyncPolicySpec;
-import org.apache.syncope.core.persistence.api.dao.NotFoundException;
 import org.apache.syncope.core.persistence.api.entity.ExternalResource;
 import org.apache.syncope.core.persistence.api.entity.group.GMapping;
 import org.apache.syncope.core.persistence.api.entity.task.ProvisioningTask;
@@ -32,7 +31,6 @@ import org.apache.syncope.core.persistence.api.entity.user.UMapping;
 import org.apache.syncope.core.provisioning.api.Connector;
 import org.apache.syncope.core.provisioning.api.sync.ProvisioningProfile;
 import org.apache.syncope.core.provisioning.api.sync.SyncActions;
-import org.apache.syncope.core.misc.security.UnauthorizedException;
 import org.apache.syncope.core.misc.spring.ApplicationContextProvider;
 import org.apache.syncope.core.provisioning.api.job.SyncJob;
 import org.apache.syncope.core.provisioning.api.sync.GroupSyncResultHandler;
@@ -61,9 +59,7 @@ public class SyncJobImpl extends AbstractProvisioningJob<SyncTask, SyncActions>
     @Autowired
     protected SyncUtils syncUtilities;
 
-    protected void setGroupOwners(final GroupSyncResultHandler rhandler)
-            throws UnauthorizedException, NotFoundException {
-
+    protected void setGroupOwners(final GroupSyncResultHandler rhandler) {
         for (Map.Entry<Long, String> entry : rhandler.getGroupOwnerMap().entrySet()) {
             GroupMod groupMod = new GroupMod();
             groupMod.setKey(entry.getKey());

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/rest-cxf/pom.xml
----------------------------------------------------------------------
diff --git a/core/rest-cxf/pom.xml b/core/rest-cxf/pom.xml
index 2bbefa0..1651193 100644
--- a/core/rest-cxf/pom.xml
+++ b/core/rest-cxf/pom.xml
@@ -141,10 +141,6 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
       </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-pmd-plugin</artifactId>
-      </plugin>
     </plugins>
     
     <resources>

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java
index 3bccdba..f031c92 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/RestServiceExceptionMapper.java
@@ -328,8 +328,7 @@ public class RestServiceExceptionMapper implements ExceptionMapper<Exception>, R
         Throwable throwable = ExceptionUtils.getRootCause(ex);
         String message = null;
         if (throwable instanceof SQLException) {
-            String SQLState = ((SQLException) throwable).getSQLState();
-            String messageKey = EXCEPTION_CODE_MAP.get(SQLState);
+            String messageKey = EXCEPTION_CODE_MAP.get(((SQLException) throwable).getSQLState());
             if (messageKey != null) {
                 message = env.getProperty("errMessage." + messageKey);
             }

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractServiceImpl.java
----------------------------------------------------------------------
diff --git a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractServiceImpl.java b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractServiceImpl.java
index dc3a1ec..c65a409 100644
--- a/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractServiceImpl.java
+++ b/core/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/AbstractServiceImpl.java
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.core.rest.cxf.service;
 
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;

http://git-wip-us.apache.org/repos/asf/syncope/blob/62193429/core/workflow-activiti/pom.xml
----------------------------------------------------------------------
diff --git a/core/workflow-activiti/pom.xml b/core/workflow-activiti/pom.xml
index 78dacd6..07395ef 100644
--- a/core/workflow-activiti/pom.xml
+++ b/core/workflow-activiti/pom.xml
@@ -79,10 +79,6 @@ under the License.
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
       </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-pmd-plugin</artifactId>
-      </plugin>
     </plugins>
   </build>
 </project>