This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/master by this push:
     new 470bf62959 Chore: remove duplicated interfaces, useless 
@SuppressWarnings (#1569)
470bf62959 is described below

commit 470bf62959542f991c5a354759ea19b35b24fe48
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Mon Oct 12 12:59:38 2026 +0200

    Chore: remove duplicated interfaces, useless @SuppressWarnings (#1569)
---
 .gitignore                                         |  1 +
 .../AuthProfileItemDirectoryPanel.java             |  1 -
 .../client/console/rest/ClientAppRestClient.java   |  1 -
 .../console/panels/LinkedAccountModalPanel.java    |  1 -
 .../console/topology/TopologyTogglePanel.java      |  1 -
 .../wizards/any/LinkedAccountWizardBuilder.java    | 25 +---------
 .../apache/syncope/client/ui/commons/DateOps.java  |  2 +-
 .../markup/html/form/AjaxDropDownChoicePanel.java  |  2 +-
 .../ui/commons/markup/html/form/AjaxGrid.java      |  1 -
 .../markup/html/form/AjaxGridBottomToolbar.java    |  1 -
 .../markup/html/form/AjaxTextFieldPanel.java       |  2 +-
 .../markup/html/form/EncryptedFieldPanel.java      |  2 +-
 .../ui/commons/markup/html/form/FieldPanel.java    |  1 -
 .../html/form/preview/BinaryPDFPreviewer.java      |  3 +-
 .../ui/commons/panels/SimpleListViewPanel.java     |  6 +--
 .../ui/commons/wizards/AbstractWizardMgtPanel.java |  3 +-
 .../client/console/audit/AuditHistoryDetails.java  |  1 -
 .../client/console/panels/MultilevelPanel.java     |  3 +-
 .../client/console/panels/PlainSchemaDetails.java  |  4 +-
 .../console/panels/search/SearchClausePanel.java   |  2 +-
 .../console/policies/PolicyRuleDirectoryPanel.java |  1 -
 .../client/console/rest/PolicyRestClient.java      |  1 -
 .../tasks/NotificationTaskDirectoryPanel.java      |  4 +-
 .../tasks/PropagationTaskDirectoryPanel.java       |  4 +-
 .../console/tasks/SchedTaskDirectoryPanel.java     |  4 +-
 .../console/wicket/markup/head/MetaHeaderItem.java |  3 +-
 .../markup/html/form/AjaxCharacterFieldPanel.java  |  2 +-
 .../markup/html/form/AjaxSearchFieldPanel.java     |  2 +-
 .../syncope/client/console/widgets/JobWidget.java  |  1 -
 .../client/console/widgets/NumberWidget.java       |  1 -
 .../wizards/any/AbstractAttrsWizardStep.java       |  2 +-
 .../console/wizards/role/RoleWizardBuilder.java    |  2 +-
 .../syncope/client/enduser/pages/SelfResult.java   |  2 +-
 .../client/enduser/panels/AnyFormPanel.java        |  1 -
 .../syncope/client/enduser/panels/ResultPanel.java |  8 +--
 .../client/enduser/panels/any/PlainAttrs.java      |  2 +-
 .../enduser/wicket/markup/head/MetaHeaderItem.java |  3 +-
 .../common/lib/auth/AppleOIDCAuthModuleConf.java   |  2 +-
 .../common/lib/auth/AzureOIDCAuthModuleConf.java   |  2 +-
 .../common/lib/auth/GoogleMfaAuthModuleConf.java   |  3 +-
 .../common/lib/auth/GoogleOIDCAuthModuleConf.java  |  2 +-
 .../lib/auth/KeycloakOIDCAuthModuleConf.java       |  2 +-
 .../common/lib/auth/OAuth20AuthModuleConf.java     |  2 +-
 .../common/lib/auth/OIDCAuthModuleConf.java        |  2 +-
 .../common/lib/auth/SAML2IdPAuthModuleConf.java    |  2 +-
 .../common/lib/auth/SpnegoAuthModuleConf.java      |  3 +-
 .../common/lib/auth/X509AuthModuleConf.java        |  3 +-
 .../lib/policy/AbstractCorrelationRuleConf.java    |  3 +-
 .../apache/syncope/common/lib/LogOutputStream.java |  2 +-
 .../common/lib/policy/AbstractAccountRuleConf.java |  3 +-
 .../lib/policy/AbstractPasswordRuleConf.java       |  3 +-
 .../common/lib/policy/DefaultAccountRuleConf.java  |  2 +-
 .../common/lib/search/SyncopeFiqlParserTest.java   |  3 +-
 .../syncope/core/logic/AbstractAnyLogic.java       |  5 --
 .../syncope/core/logic/LogicInvocationHandler.java |  1 +
 .../core/rest/cxf/service/TaskServiceImpl.java     |  1 -
 .../syncope/core/persistence/api/entity/Any.java   |  2 +-
 .../common/content/MultiParentNode.java            |  1 -
 .../common/dao/AbstractAnyMatchDAO.java            |  7 ++-
 .../jpa/content/XMLContentExporter.java            |  2 +-
 .../jpa/entity/task/JPALiveSyncTaskExec.java       |  3 +-
 .../jpa/entity/task/JPAMacroTaskExec.java          |  3 +-
 .../jpa/entity/task/JPANotificationTaskExec.java   |  3 +-
 .../jpa/entity/task/JPAPropagationTaskExec.java    |  3 +-
 .../jpa/entity/task/JPAPullTaskExec.java           |  3 +-
 .../jpa/entity/task/JPAPushTaskExec.java           |  3 +-
 .../jpa/entity/task/JPASchedTaskExec.java          |  3 +-
 .../core/persistence/neo4j/dao/Neo4jPolicyDAO.java |  1 -
 .../neo4j/entity/task/Neo4jLiveSyncTaskExec.java   |  3 +-
 .../neo4j/entity/task/Neo4jMacroTaskExec.java      |  3 +-
 .../entity/task/Neo4jNotificationTaskExec.java     |  5 +-
 .../entity/task/Neo4jPropagationTaskExec.java      |  3 +-
 .../neo4j/entity/task/Neo4jPullTaskExec.java       |  3 +-
 .../neo4j/entity/task/Neo4jPushTaskExec.java       |  3 +-
 .../neo4j/entity/task/Neo4jSchedTaskExec.java      |  3 +-
 .../persistence/neo4j/inner/AnySearchTest.java     |  4 --
 .../core/provisioning/java/data/AnyDataBinder.java |  1 -
 .../DefaultAnyObjectPullResultHandler.java         |  5 +-
 .../DefaultAnyObjectPushResultHandler.java         |  3 +-
 .../pushpull/DefaultGroupPullResultHandler.java    |  3 +-
 .../pushpull/DefaultGroupPushResultHandler.java    |  3 +-
 .../pushpull/DefaultUserPullResultHandler.java     |  3 +-
 .../java/pushpull/LiveSyncJobDelegate.java         |  5 +-
 .../java/pushpull/PullJobDelegate.java             |  5 +-
 .../java/DefaultMappingManagerTest.java            | 20 --------
 .../implementation/ImplementationManager.java      |  3 +-
 .../spring/task/VirtualThreadPoolTaskExecutor.java |  5 +-
 .../syncope/core/starter/actuate/JobEndpoint.java  |  2 +-
 .../dao/ElasticsearchRealmSearchDAO.java           |  3 +-
 .../client/enduser/rest/BpmnProcessRestClient.java | 10 ----
 .../opensearch/dao/OpenSearchRealmSearchDAO.java   |  3 +-
 .../syncope/fit/core/AbstractTaskITCase.java       | 57 +++++++++++-----------
 .../apache/syncope/fit/core/PullTaskITCase.java    | 53 ++++++++++----------
 .../apache/syncope/fit/core/SyncReplITCase.java    |  4 +-
 .../org/apache/syncope/fit/core/UserITCase.java    |  1 -
 .../java/org/apache/syncope/sra/RouteProvider.java |  1 -
 96 files changed, 133 insertions(+), 270 deletions(-)

diff --git a/.gitignore b/.gitignore
index 984b61bfb8..6087560fb2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,5 +8,6 @@ target
 maven-eclipse.xml
 .externalToolBuilders
 *nb-configuration.xml
+.vscode
 node_modules
 **/checkstyle.cache
diff --git 
a/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileItemDirectoryPanel.java
 
b/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileItemDirectoryPanel.java
index f795d7a483..f8ed0a4e1e 100644
--- 
a/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileItemDirectoryPanel.java
+++ 
b/client/am/console/src/main/java/org/apache/syncope/client/console/authprofiles/AuthProfileItemDirectoryPanel.java
@@ -91,7 +91,6 @@ public abstract class AuthProfileItemDirectoryPanel<I extends 
BaseBean>
     protected abstract String sortProperty();
 
     @Override
-    @SuppressWarnings("unchecked")
     public void onEvent(final IEvent<?> event) {
         if (event.getPayload() instanceof ExitEvent exitEvent) {
             authProfileModal.close(exitEvent.getTarget());
diff --git 
a/client/am/console/src/main/java/org/apache/syncope/client/console/rest/ClientAppRestClient.java
 
b/client/am/console/src/main/java/org/apache/syncope/client/console/rest/ClientAppRestClient.java
index 56d7f72549..23ec2c6c1e 100644
--- 
a/client/am/console/src/main/java/org/apache/syncope/client/console/rest/ClientAppRestClient.java
+++ 
b/client/am/console/src/main/java/org/apache/syncope/client/console/rest/ClientAppRestClient.java
@@ -41,7 +41,6 @@ public class ClientAppRestClient extends BaseRestClient {
         return policy;
     }
 
-    @SuppressWarnings("unchecked")
     public <T extends ClientAppTO> List<T> list(final ClientAppType type) {
         try {
             return getService(ClientAppService.class).<T>list(type).stream().
diff --git 
a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/LinkedAccountModalPanel.java
 
b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/LinkedAccountModalPanel.java
index e2419cc0de..edf9cee0af 100644
--- 
a/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/LinkedAccountModalPanel.java
+++ 
b/client/idm/console/src/main/java/org/apache/syncope/client/console/panels/LinkedAccountModalPanel.java
@@ -160,7 +160,6 @@ public class LinkedAccountModalPanel extends Panel 
implements ModalPanel {
             }
 
             @Override
-            @SuppressWarnings("unchecked")
             protected void customActionOnFinishCallback(final 
AjaxRequestTarget target) {
                 checkAddButton(model.getObject().getRealm());
 
diff --git 
a/client/idm/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
 
b/client/idm/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
index 169e33e858..b12f6ae821 100644
--- 
a/client/idm/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
+++ 
b/client/idm/console/src/main/java/org/apache/syncope/client/console/topology/TopologyTogglePanel.java
@@ -504,7 +504,6 @@ public class TopologyTogglePanel extends 
TogglePanel<Serializable> {
             private static final long serialVersionUID = 3776750333491622263L;
 
             @Override
-            @SuppressWarnings("unchecked")
             public void onClick(final AjaxRequestTarget target) {
                 target.add(propTaskModal.setContent(
                         new PropagationTasks(propTaskModal, node.getKey(), 
pageRef)));
diff --git 
a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountWizardBuilder.java
 
b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountWizardBuilder.java
index ebf2c51c1f..c4a6a5739d 100644
--- 
a/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountWizardBuilder.java
+++ 
b/client/idm/console/src/main/java/org/apache/syncope/client/console/wizards/any/LinkedAccountWizardBuilder.java
@@ -118,36 +118,15 @@ public class LinkedAccountWizardBuilder extends 
BaseAjaxWizardBuilder<LinkedAcco
 
     @Override
     protected Serializable getCreateCustomPayloadEvent(final Serializable 
afterObject, final AjaxRequestTarget target) {
-        return new CreateEvent(
-                
LinkedAccountTO.class.cast(afterObject).getConnObjectKeyValue(),
-                model.getObject(),
-                target);
+        return new CreateEvent(target);
     }
 
     private static class CreateEvent extends ModalEvent {
 
         private static final long serialVersionUID = 6416834092156281986L;
 
-        private final String key;
-
-        private final UserTO userTO;
-
-        CreateEvent(
-                final String key,
-                final UserTO userTO,
-                final AjaxRequestTarget target) {
-
+        CreateEvent(final AjaxRequestTarget target) {
             super(target);
-            this.key = key;
-            this.userTO = userTO;
-        }
-
-        public String getKey() {
-            return key;
-        }
-
-        public UserTO getUserTO() {
-            return userTO;
         }
     }
 }
diff --git 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/DateOps.java
 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/DateOps.java
index 1f23abe89e..3cdcee3798 100644
--- 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/DateOps.java
+++ 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/DateOps.java
@@ -59,7 +59,7 @@ public final class DateOps {
         }
     }
 
-    public static final class WrappedDateModel implements IModel<Date>, 
Serializable {
+    public static final class WrappedDateModel implements IModel<Date> {
 
         private static final long serialVersionUID = 31027882183172L;
 
diff --git 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDropDownChoicePanel.java
 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDropDownChoicePanel.java
index b87f89e4a8..7d8b3fb8ca 100644
--- 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDropDownChoicePanel.java
+++ 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxDropDownChoicePanel.java
@@ -29,7 +29,7 @@ import org.apache.wicket.markup.html.form.IChoiceRenderer;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
 
-public class AjaxDropDownChoicePanel<T extends Serializable> extends 
FieldPanel<T> implements Cloneable {
+public class AjaxDropDownChoicePanel<T extends Serializable> extends 
FieldPanel<T> {
 
     private static final long serialVersionUID = -4716376580659196095L;
 
diff --git 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGrid.java
 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGrid.java
index 3d933145d0..2693507c0b 100644
--- 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGrid.java
+++ 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGrid.java
@@ -196,7 +196,6 @@ public class AjaxGrid<K, V, S> extends Panel {
 
         private final Item<Pair<K, V>> rowItem;
 
-        @SuppressWarnings("unchecked")
         public AjaxGridActionsPanel(final String id, final Item<Pair<K, V>> 
item) {
             super(id, item);
 
diff --git 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGridBottomToolbar.java
 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGridBottomToolbar.java
index 259b38e3d5..d6d706be71 100644
--- 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGridBottomToolbar.java
+++ 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxGridBottomToolbar.java
@@ -123,7 +123,6 @@ public abstract class AjaxGridBottomToolbar<T, S> extends 
AbstractEditableToolba
         };
     }
 
-    @SuppressWarnings("unchecked")
     protected List<AbstractEditablePropertyColumn<T, S>> getEditableColumns() {
         List<AbstractEditablePropertyColumn<T, S>> columns = new ArrayList<>();
         getTable().getColumns().stream().
diff --git 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.java
 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.java
index 521c460707..1a84412ed9 100644
--- 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.java
+++ 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/AjaxTextFieldPanel.java
@@ -36,7 +36,7 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.util.convert.IConverter;
 
-public class AjaxTextFieldPanel extends TextFieldPanel implements Cloneable {
+public class AjaxTextFieldPanel extends TextFieldPanel {
 
     private static final long serialVersionUID = 238940918106696068L;
 
diff --git 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.java
 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.java
index ba72ac7b36..8935d100bc 100644
--- 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.java
+++ 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/EncryptedFieldPanel.java
@@ -25,7 +25,7 @@ import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
 
-public class EncryptedFieldPanel extends TextFieldPanel implements Cloneable {
+public class EncryptedFieldPanel extends TextFieldPanel {
 
     private static final long serialVersionUID = 1882871043451691005L;
 
diff --git 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/FieldPanel.java
 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/FieldPanel.java
index d37da07d5d..efb81d172e 100644
--- 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/FieldPanel.java
+++ 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/FieldPanel.java
@@ -229,7 +229,6 @@ public abstract class FieldPanel<T extends Serializable> 
extends AbstractFieldPa
     }
 
     @Override
-    @SuppressWarnings("unchecked")
     public FieldPanel<T> clone() {
         final FieldPanel<T> panel = SerializationUtils.clone(this);
         panel.setModelObject(null);
diff --git 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/preview/BinaryPDFPreviewer.java
 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/preview/BinaryPDFPreviewer.java
index 1dc1b599d8..5a2163f6f9 100644
--- 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/preview/BinaryPDFPreviewer.java
+++ 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/markup/html/form/preview/BinaryPDFPreviewer.java
@@ -22,7 +22,6 @@ import java.awt.Graphics2D;
 import java.awt.RenderingHints;
 import java.awt.image.BufferedImage;
 import java.io.IOException;
-import java.io.Serializable;
 import java.time.Instant;
 import org.apache.pdfbox.Loader;
 import org.apache.pdfbox.cos.COSObject;
@@ -91,7 +90,7 @@ public class BinaryPDFPreviewer extends BinaryPreviewer {
         return this.addOrReplace(previewContainer);
     }
 
-    protected static class ThumbnailImageResource extends DynamicImageResource 
implements Serializable {
+    protected static class ThumbnailImageResource extends DynamicImageResource 
{
 
         private static final long serialVersionUID = 923201517955737928L;
 
diff --git 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/SimpleListViewPanel.java
 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/SimpleListViewPanel.java
index 0b1f028287..d6a0cd7cb1 100644
--- 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/SimpleListViewPanel.java
+++ 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/panels/SimpleListViewPanel.java
@@ -27,7 +27,6 @@ import java.util.Optional;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.client.ui.commons.Constants;
 import org.apache.wicket.Component;
-import org.apache.wicket.PageReference;
 import org.apache.wicket.core.util.lang.PropertyResolver;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.list.ListItem;
@@ -139,10 +138,7 @@ public abstract class SimpleListViewPanel<T extends 
Serializable> extends Panel
 
         private final Class<T> reference;
 
-        private final PageReference pageReference;
-
-        public Builder(final Class<T> reference, final PageReference pageRef) {
-            this.pageReference = pageRef;
+        public Builder(final Class<T> reference) {
             this.reference = reference;
             this.items = null;
         }
diff --git 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/AbstractWizardMgtPanel.java
 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/AbstractWizardMgtPanel.java
index 4444f49852..16d4e24981 100644
--- 
a/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/AbstractWizardMgtPanel.java
+++ 
b/client/idrepo/common-ui/src/main/java/org/apache/syncope/client/ui/commons/wizards/AbstractWizardMgtPanel.java
@@ -19,10 +19,9 @@
 package org.apache.syncope.client.ui.commons.wizards;
 
 import java.io.Serializable;
-import org.apache.wicket.event.IEventSource;
 import org.apache.wicket.markup.html.panel.Panel;
 
-public abstract class AbstractWizardMgtPanel<T extends Serializable> extends 
Panel implements IEventSource {
+public abstract class AbstractWizardMgtPanel<T extends Serializable> extends 
Panel {
 
     private static final long serialVersionUID = -4152438633429194882L;
 
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDetails.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDetails.java
index 616beb2f01..ee1823b3bf 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDetails.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/audit/AuditHistoryDetails.java
@@ -156,7 +156,6 @@ public abstract class AuditHistoryDetails<T extends 
Serializable> extends Panel
 
     protected final AuditRestClient restClient;
 
-    @SuppressWarnings("unchecked")
     public AuditHistoryDetails(
             final String id,
             final EntityTO currentEntity,
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/MultilevelPanel.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/MultilevelPanel.java
index 8d60be6933..0642f43030 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/MultilevelPanel.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/MultilevelPanel.java
@@ -20,7 +20,6 @@ package org.apache.syncope.client.console.panels;
 
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.markup.html.IHeaderContributor;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.panel.Panel;
@@ -28,7 +27,7 @@ import org.apache.wicket.model.ResourceModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class MultilevelPanel extends Panel implements IHeaderContributor {
+public class MultilevelPanel extends Panel {
 
     private static final long serialVersionUID = -4064294905566247729L;
 
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
index f230c5683e..a81a922740 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/PlainSchemaDetails.java
@@ -151,7 +151,7 @@ public class PlainSchemaDetails extends 
AbstractSchemaDetailsPanel {
         dropdownValueProvider = new 
AjaxDropDownChoicePanel<>("dropdownValueProvider",
                 getString("dropdownValueProvider"), new 
PropertyModel<>(schemaTO, "dropdownValueProvider"));
         dropdownValueProvider.setOutputMarkupId(true);
-        ((DropDownChoice) dropdownValueProvider.getField()).setNullValid(true);
+        ((DropDownChoice<?>) 
dropdownValueProvider.getField()).setNullValid(true);
         dropdownValueProvider.setChoices(dropdownValueProviders.getObject());
         dropdownValueProvider.setRequired(true);
 
@@ -225,7 +225,7 @@ public class PlainSchemaDetails extends 
AbstractSchemaDetailsPanel {
         validator = new AjaxDropDownChoicePanel<>("validator",
                 getString("validator"), new PropertyModel<>(schemaTO, 
"validator"));
         validator.setOutputMarkupId(true);
-        ((DropDownChoice) validator.getField()).setNullValid(true);
+        ((DropDownChoice<?>) validator.getField()).setNullValid(true);
         validator.setChoices(validators.getObject());
         add(validator);
 
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
index b45c4ced15..3f6e2c8bc3 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/panels/search/SearchClausePanel.java
@@ -854,7 +854,7 @@ public class SearchClausePanel extends 
FieldPanel<SearchClause> {
         }
     }
 
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({ "unchecked", "rawtypes" })
     protected FieldPanel<?> buildValue(final SearchClause searchClause, final 
AjaxTextFieldPanel property) {
         PlainSchemaTO plainSchema = 
Optional.ofNullable(anames.getObject().get(property.getModelObject())).
                 orElseGet(() -> {
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java
index eff7a67aa7..1421312b61 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/policies/PolicyRuleDirectoryPanel.java
@@ -239,7 +239,6 @@ public class PolicyRuleDirectoryPanel<T extends PolicyTO> 
extends DirectoryPanel
             comparator = new SortableDataProviderComparator<>(this);
         }
 
-        @SuppressWarnings("unchecked")
         private List<PolicyRuleWrapper> getPolicyRuleWrappers(final 
ComposablePolicy policy) {
             return policy.getRules().stream().map(rule -> {
                 ImplementationTO implementation = 
implementationRestClient.read(implementationType, rule);
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/PolicyRestClient.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/PolicyRestClient.java
index 2586f7d668..798383aaed 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/PolicyRestClient.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/rest/PolicyRestClient.java
@@ -44,7 +44,6 @@ public class PolicyRestClient extends BaseRestClient {
         return policy;
     }
 
-    @SuppressWarnings("unchecked")
     public <T extends PolicyTO> List<T> list(final PolicyType type) {
         try {
             return getService(PolicyService.class).<T>list(type).stream().
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java
index af66bcb319..d0e377ed5d 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/NotificationTaskDirectoryPanel.java
@@ -35,7 +35,6 @@ import 
org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
 import 
org.apache.syncope.client.console.wicket.markup.html.form.ActionLink.ActionType;
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
 import org.apache.syncope.client.ui.commons.Constants;
-import org.apache.syncope.client.ui.commons.panels.ModalPanel;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.NotificationTaskTO;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
@@ -49,8 +48,7 @@ import 
org.apache.wicket.extensions.markup.html.repeater.data.table.PropertyColu
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.StringResourceModel;
 
-public abstract class NotificationTaskDirectoryPanel
-        extends TaskDirectoryPanel<NotificationTaskTO> implements ModalPanel {
+public abstract class NotificationTaskDirectoryPanel extends 
TaskDirectoryPanel<NotificationTaskTO> {
 
     private static final long serialVersionUID = 4984337552918213290L;
 
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java
index d31101eccb..3e28f5eeab 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.java
@@ -35,7 +35,6 @@ import 
org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
 import 
org.apache.syncope.client.console.wicket.markup.html.form.ActionLink.ActionType;
 import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
 import org.apache.syncope.client.ui.commons.Constants;
-import org.apache.syncope.client.ui.commons.panels.ModalPanel;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.syncope.common.lib.to.PropagationTaskTO;
@@ -49,8 +48,7 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.StringResourceModel;
 
-public abstract class PropagationTaskDirectoryPanel
-        extends TaskDirectoryPanel<PropagationTaskTO> implements ModalPanel {
+public abstract class PropagationTaskDirectoryPanel extends 
TaskDirectoryPanel<PropagationTaskTO> {
 
     private static final long serialVersionUID = 4984337552918213290L;
 
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
index 175d360e70..ce71b15dea 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/tasks/SchedTaskDirectoryPanel.java
@@ -43,7 +43,6 @@ import 
org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
 import org.apache.syncope.client.console.wicket.ws.BasePageWebSocketBehavior;
 import org.apache.syncope.client.console.widgets.JobActionPanel;
 import org.apache.syncope.client.ui.commons.Constants;
-import org.apache.syncope.client.ui.commons.panels.ModalPanel;
 import org.apache.syncope.client.ui.commons.wizards.AjaxWizard;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.AnyTO;
@@ -75,8 +74,7 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
  *
  * @param <T> Sched task type.
  */
-public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO>
-        extends TaskDirectoryPanel<T> implements ModalPanel {
+public abstract class SchedTaskDirectoryPanel<T extends SchedTaskTO> extends 
TaskDirectoryPanel<T> {
 
     private static final long serialVersionUID = 4984337552918213290L;
 
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/head/MetaHeaderItem.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/head/MetaHeaderItem.java
index 66910278e8..cf048bbee8 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/head/MetaHeaderItem.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/head/MetaHeaderItem.java
@@ -18,12 +18,11 @@
  */
 package org.apache.syncope.client.console.wicket.markup.head;
 
-import java.io.Serializable;
 import java.util.List;
 import org.apache.wicket.markup.head.HeaderItem;
 import org.apache.wicket.request.Response;
 
-public class MetaHeaderItem extends HeaderItem implements Serializable {
+public class MetaHeaderItem extends HeaderItem {
 
     private static final long serialVersionUID = 7578609827530302053L;
 
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCharacterFieldPanel.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCharacterFieldPanel.java
index 2d5f1f94e5..10d9024656 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCharacterFieldPanel.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxCharacterFieldPanel.java
@@ -35,7 +35,7 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.validation.IValidator;
 
-public class AjaxCharacterFieldPanel extends FieldPanel<Character> implements 
Cloneable {
+public class AjaxCharacterFieldPanel extends FieldPanel<Character> {
 
     private static final long serialVersionUID = 238940918106696068L;
 
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSearchFieldPanel.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSearchFieldPanel.java
index a48e4fd01a..4417e6ade5 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSearchFieldPanel.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wicket/markup/html/form/AjaxSearchFieldPanel.java
@@ -32,7 +32,7 @@ import 
org.apache.wicket.extensions.ajax.markup.html.autocomplete.IAutoCompleteR
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
 
-public abstract class AjaxSearchFieldPanel extends TextFieldPanel implements 
Cloneable {
+public abstract class AjaxSearchFieldPanel extends TextFieldPanel {
 
     private static final long serialVersionUID = 6890905510177974519L;
 
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
index 9deb5e0a61..f1fa6d4334 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/JobWidget.java
@@ -519,7 +519,6 @@ public class JobWidget extends BaseWidget {
         }
 
         @Override
-        @SuppressWarnings("unchecked")
         public void onEvent(final IEvent<?> event) {
             if (event.getPayload() instanceof AjaxWizard.NewItemCancelEvent
                     || event.getPayload() instanceof 
AjaxWizard.NewItemFinishEvent) {
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/NumberWidget.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/NumberWidget.java
index 151b1dd8b5..2138b03ab9 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/NumberWidget.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/widgets/NumberWidget.java
@@ -54,7 +54,6 @@ public class NumberWidget extends BaseWidget {
         WebMarkupContainer box = new WebMarkupContainer("card");
         box.add(new AttributeAppender("class", ' ' + bg));
 
-        @SuppressWarnings("unchecked")
         Class<? extends BasePage> realms = 
SyncopeWebApplication.get().getPageClass("anys");
         if (realms == null) {
             realms = Anys.class;
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrsWizardStep.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrsWizardStep.java
index b663fa0b3a..1f6bd71bbb 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrsWizardStep.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/any/AbstractAttrsWizardStep.java
@@ -425,7 +425,7 @@ public abstract class AbstractAttrsWizardStep<S extends 
SchemaTO> extends Wizard
             super(id);
         }
 
-        @SuppressWarnings({ "unchecked", "rawtypes" })
+        @SuppressWarnings({ "unchecked" })
         protected AbstractFieldPanel<?> setPanel(
                 final Map<String, PlainSchemaTO> schemas,
                 final ListItem<Attr> item,
diff --git 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
index 11818c3251..09bf67a304 100644
--- 
a/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
+++ 
b/client/idrepo/console/src/main/java/org/apache/syncope/client/console/wizards/role/RoleWizardBuilder.java
@@ -168,7 +168,7 @@ public class RoleWizardBuilder extends 
BaseAjaxWizardBuilder<RoleWrapper> {
                     new PropertyModel<>(modelObject, "realms")).build(
                     "realms",
                     "realms",
-                    (FieldPanel) realm).hideLabel());
+                    (FieldPanel<Serializable>) realm).hideLabel());
         }
     }
 }
diff --git 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/SelfResult.java
 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/SelfResult.java
index eb066bb735..a29f2395a3 100644
--- 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/SelfResult.java
+++ 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/pages/SelfResult.java
@@ -87,7 +87,7 @@ public class SelfResult extends BasePage {
                     (Serializable) 
provisioningResult.getPropagationStatuses().stream()
                             .filter(ps -> ExecStatus.SUCCESS != ps.getStatus())
                             .map(ps -> 
StatusUtils.getStatusBean(provisioningResult.getEntity(), ps.getResource(),
-                            ps.getAfterObj(), 
false)).collect(Collectors.toList()), getPageReference())
+                            ps.getAfterObj(), 
false)).collect(Collectors.toList()))
                     .setOutputMarkupId(true)
                     
.setVisible(SyncopeWebApplication.get().isReportPropagationErrorDetails()));
         }
diff --git 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/AnyFormPanel.java
 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/AnyFormPanel.java
index ac40a2439d..4afd2c5b25 100644
--- 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/AnyFormPanel.java
+++ 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/AnyFormPanel.java
@@ -58,7 +58,6 @@ public abstract class AnyFormPanel extends 
AbstractAnyFormPanel<UserWrapper> {
         this.anyTypeClasses = anyTypeClasses;
     }
 
-    @SuppressWarnings("unchecked")
     public AnyFormPanel(final String id,
             final UserWrapper wrapper,
             final List<String> anyTypeClasses,
diff --git 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/ResultPanel.java
 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/ResultPanel.java
index da83052e59..fdc7c871e4 100644
--- 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/ResultPanel.java
+++ 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/ResultPanel.java
@@ -25,7 +25,6 @@ import org.apache.syncope.client.ui.commons.status.StatusBean;
 import org.apache.syncope.client.ui.commons.status.StatusUtils;
 import org.apache.syncope.client.ui.commons.wizards.any.AbstractResultPanel;
 import org.apache.wicket.Component;
-import org.apache.wicket.PageReference;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -36,17 +35,14 @@ public class ResultPanel extends 
AbstractResultPanel<String, Serializable> {
 
     protected static final Logger LOG = 
LoggerFactory.getLogger(ResultPanel.class);
 
-    private final PageReference pageRef;
-
-    public ResultPanel(final String item, final Serializable errors, final 
PageReference pageRef) {
+    public ResultPanel(final String item, final Serializable errors) {
         super(item, errors);
-        this.pageRef = pageRef;
     }
 
     @SuppressWarnings("unchecked")
     @Override
     protected Panel customResultBody(final String panelId, final String item, 
final Serializable errorBeans) {
-        return new SimpleListViewPanel.Builder<>(StatusBean.class, pageRef) {
+        return new SimpleListViewPanel.Builder<>(StatusBean.class) {
 
             private static final long serialVersionUID = -6809736686861678498L;
 
diff --git 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/PlainAttrs.java
 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/PlainAttrs.java
index 85e6c464e5..cecb9fffbe 100644
--- 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/PlainAttrs.java
+++ 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/panels/any/PlainAttrs.java
@@ -410,7 +410,7 @@ public class PlainAttrs extends 
AbstractAttrs<PlainSchemaTO> {
                 private static final long serialVersionUID = 
5306618783986001008L;
 
                 @Override
-                @SuppressWarnings({ "unchecked", "rawtypes" })
+                @SuppressWarnings({ "unchecked" })
                 protected void populateItem(final ListItem<Attr> item) {
                     Attr attr = item.getModelObject();
                     PlainSchemaTO schema = schemas.get(attr.getSchema());
diff --git 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/wicket/markup/head/MetaHeaderItem.java
 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/wicket/markup/head/MetaHeaderItem.java
index 90ccf60ec4..ffa0333ec4 100644
--- 
a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/wicket/markup/head/MetaHeaderItem.java
+++ 
b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/wicket/markup/head/MetaHeaderItem.java
@@ -18,12 +18,11 @@
  */
 package org.apache.syncope.client.enduser.wicket.markup.head;
 
-import java.io.Serializable;
 import java.util.Arrays;
 import org.apache.wicket.markup.head.HeaderItem;
 import org.apache.wicket.request.Response;
 
-public class MetaHeaderItem extends HeaderItem implements Serializable {
+public class MetaHeaderItem extends HeaderItem {
 
     private static final long serialVersionUID = 7578609827530302053L;
 
diff --git 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AppleOIDCAuthModuleConf.java
 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AppleOIDCAuthModuleConf.java
index cc1ce7a80d..2956622461 100644
--- 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AppleOIDCAuthModuleConf.java
+++ 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AppleOIDCAuthModuleConf.java
@@ -21,7 +21,7 @@ package org.apache.syncope.common.lib.auth;
 import java.util.Map;
 import org.apache.syncope.common.lib.to.AuthModuleTO;
 
-public class AppleOIDCAuthModuleConf extends AbstractOIDCAuthModuleConf 
implements AuthModuleConf {
+public class AppleOIDCAuthModuleConf extends AbstractOIDCAuthModuleConf {
 
     private static final long serialVersionUID = -471527731042579522L;
 
diff --git 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AzureOIDCAuthModuleConf.java
 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AzureOIDCAuthModuleConf.java
index f1cd5b73f1..0ffba995a6 100644
--- 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AzureOIDCAuthModuleConf.java
+++ 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/AzureOIDCAuthModuleConf.java
@@ -21,7 +21,7 @@ package org.apache.syncope.common.lib.auth;
 import java.util.Map;
 import org.apache.syncope.common.lib.to.AuthModuleTO;
 
-public class AzureOIDCAuthModuleConf extends AbstractOIDCAuthModuleConf 
implements AuthModuleConf {
+public class AzureOIDCAuthModuleConf extends AbstractOIDCAuthModuleConf {
 
     private static final long serialVersionUID = -471527731042579522L;
 
diff --git 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/GoogleMfaAuthModuleConf.java
 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/GoogleMfaAuthModuleConf.java
index bbd17cd91d..20d17c5d86 100644
--- 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/GoogleMfaAuthModuleConf.java
+++ 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/GoogleMfaAuthModuleConf.java
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.common.lib.auth;
 
-import java.io.Serializable;
 import java.util.Map;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.common.lib.AbstractLDAPConf;
@@ -41,7 +40,7 @@ public class GoogleMfaAuthModuleConf implements 
MFAAuthModuleConf, LDAPDependant
 
     }
 
-    public static class LDAP extends AbstractLDAPConf implements Serializable {
+    public static class LDAP extends AbstractLDAPConf {
 
         private static final long serialVersionUID = -7274446267090678730L;
 
diff --git 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/GoogleOIDCAuthModuleConf.java
 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/GoogleOIDCAuthModuleConf.java
index f848f450a7..fe8e11a9c3 100644
--- 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/GoogleOIDCAuthModuleConf.java
+++ 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/GoogleOIDCAuthModuleConf.java
@@ -21,7 +21,7 @@ package org.apache.syncope.common.lib.auth;
 import java.util.Map;
 import org.apache.syncope.common.lib.to.AuthModuleTO;
 
-public class GoogleOIDCAuthModuleConf extends AbstractOIDCAuthModuleConf 
implements AuthModuleConf {
+public class GoogleOIDCAuthModuleConf extends AbstractOIDCAuthModuleConf {
 
     private static final long serialVersionUID = -471527731042579522L;
 
diff --git 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/KeycloakOIDCAuthModuleConf.java
 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/KeycloakOIDCAuthModuleConf.java
index a4f464c157..398ba2426e 100644
--- 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/KeycloakOIDCAuthModuleConf.java
+++ 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/KeycloakOIDCAuthModuleConf.java
@@ -21,7 +21,7 @@ package org.apache.syncope.common.lib.auth;
 import java.util.Map;
 import org.apache.syncope.common.lib.to.AuthModuleTO;
 
-public class KeycloakOIDCAuthModuleConf extends AbstractOIDCAuthModuleConf 
implements AuthModuleConf {
+public class KeycloakOIDCAuthModuleConf extends AbstractOIDCAuthModuleConf {
 
     private static final long serialVersionUID = -471527731042579522L;
 
diff --git 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/OAuth20AuthModuleConf.java
 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/OAuth20AuthModuleConf.java
index 8d7b97eb8d..c04b837ab5 100644
--- 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/OAuth20AuthModuleConf.java
+++ 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/OAuth20AuthModuleConf.java
@@ -22,7 +22,7 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 import org.apache.syncope.common.lib.to.AuthModuleTO;
 
-public class OAuth20AuthModuleConf extends AbstractOAuth20AuthModuleConf 
implements AuthModuleConf {
+public class OAuth20AuthModuleConf extends AbstractOAuth20AuthModuleConf {
 
     private static final long serialVersionUID = 299820485764241682L;
 
diff --git 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/OIDCAuthModuleConf.java
 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/OIDCAuthModuleConf.java
index 0ea9339c3b..bdb8fd127a 100644
--- 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/OIDCAuthModuleConf.java
+++ 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/OIDCAuthModuleConf.java
@@ -21,7 +21,7 @@ package org.apache.syncope.common.lib.auth;
 import java.util.Map;
 import org.apache.syncope.common.lib.to.AuthModuleTO;
 
-public class OIDCAuthModuleConf extends AbstractOIDCAuthModuleConf implements 
AuthModuleConf {
+public class OIDCAuthModuleConf extends AbstractOIDCAuthModuleConf {
 
     private static final long serialVersionUID = -471527711042579422L;
 
diff --git 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/SAML2IdPAuthModuleConf.java
 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/SAML2IdPAuthModuleConf.java
index 35e4e0c839..58d087f45c 100644
--- 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/SAML2IdPAuthModuleConf.java
+++ 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/SAML2IdPAuthModuleConf.java
@@ -25,7 +25,7 @@ import org.apache.syncope.common.lib.to.AuthModuleTO;
 import org.apache.syncope.common.lib.types.SAML2BindingType;
 import org.apache.syncope.common.lib.types.TriStateBoolean;
 
-public class SAML2IdPAuthModuleConf extends Pac4jAuthModuleConf implements 
AuthModuleConf {
+public class SAML2IdPAuthModuleConf extends Pac4jAuthModuleConf {
 
     private static final long serialVersionUID = -471527731042579422L;
 
diff --git 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/SpnegoAuthModuleConf.java
 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/SpnegoAuthModuleConf.java
index 9d80778ea1..2e0938f122 100644
--- 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/SpnegoAuthModuleConf.java
+++ 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/SpnegoAuthModuleConf.java
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.common.lib.auth;
 
-import java.io.Serializable;
 import java.util.Map;
 import org.apache.syncope.common.lib.AbstractLDAPConf;
 import org.apache.syncope.common.lib.to.AuthModuleTO;
@@ -32,7 +31,7 @@ public class SpnegoAuthModuleConf implements 
LDAPDependantAuthModuleConf {
 
     private static final long serialVersionUID = -7775771400312303131L;
 
-    public static class LDAP extends AbstractLDAPConf implements Serializable {
+    public static class LDAP extends AbstractLDAPConf {
 
         private static final long serialVersionUID = -7274446267090678730L;
 
diff --git 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/X509AuthModuleConf.java
 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/X509AuthModuleConf.java
index 227bb0bbb8..80bcc9e421 100644
--- 
a/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/X509AuthModuleConf.java
+++ 
b/common/am/lib/src/main/java/org/apache/syncope/common/lib/auth/X509AuthModuleConf.java
@@ -18,7 +18,6 @@
  */
 package org.apache.syncope.common.lib.auth;
 
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -34,7 +33,7 @@ public class X509AuthModuleConf implements 
LDAPDependantAuthModuleConf {
 
     private static final long serialVersionUID = 1915254775199296906L;
 
-    public static class LDAP extends AbstractLDAPConf implements Serializable {
+    public static class LDAP extends AbstractLDAPConf {
 
         private static final long serialVersionUID = -7274446267090678730L;
 
diff --git 
a/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractCorrelationRuleConf.java
 
b/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractCorrelationRuleConf.java
index e88c840315..537cb93b1b 100644
--- 
a/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractCorrelationRuleConf.java
+++ 
b/common/idm/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractCorrelationRuleConf.java
@@ -19,9 +19,8 @@
 package org.apache.syncope.common.lib.policy;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.common.lib.BaseBean;
 
-public abstract class AbstractCorrelationRuleConf implements BaseBean, 
RuleConf {
+public abstract class AbstractCorrelationRuleConf implements RuleConf {
 
     private static final long serialVersionUID = -4080475005967851092L;
 
diff --git 
a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/LogOutputStream.java
 
b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/LogOutputStream.java
index 594560aa62..9e1ce8ce47 100644
--- 
a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/LogOutputStream.java
+++ 
b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/LogOutputStream.java
@@ -27,7 +27,7 @@ import org.slf4j.Logger;
  * Delegates output stream writing onto an SLF4J logger.
  * Inspired by {@code org.apache.commons.exec.LogOutputStream}
  */
-public class LogOutputStream extends OutputStream implements AutoCloseable {
+public class LogOutputStream extends OutputStream {
 
     /** Initial buffer size. */
     private static final int INTIAL_SIZE = 132;
diff --git 
a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractAccountRuleConf.java
 
b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractAccountRuleConf.java
index 881423af6a..7e15f4ad71 100644
--- 
a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractAccountRuleConf.java
+++ 
b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractAccountRuleConf.java
@@ -19,9 +19,8 @@
 package org.apache.syncope.common.lib.policy;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.common.lib.BaseBean;
 
-public abstract class AbstractAccountRuleConf implements BaseBean, 
AccountRuleConf {
+public abstract class AbstractAccountRuleConf implements AccountRuleConf {
 
     private static final long serialVersionUID = -4080475005967851092L;
 
diff --git 
a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPasswordRuleConf.java
 
b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPasswordRuleConf.java
index 83e2f20da0..8d3f7e246a 100644
--- 
a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPasswordRuleConf.java
+++ 
b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/AbstractPasswordRuleConf.java
@@ -19,9 +19,8 @@
 package org.apache.syncope.common.lib.policy;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.syncope.common.lib.BaseBean;
 
-public abstract class AbstractPasswordRuleConf implements BaseBean, 
PasswordRuleConf {
+public abstract class AbstractPasswordRuleConf implements PasswordRuleConf {
 
     private static final long serialVersionUID = -5814018872387142339L;
 
diff --git 
a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultAccountRuleConf.java
 
b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultAccountRuleConf.java
index 9f653ab4f8..37540176c7 100644
--- 
a/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultAccountRuleConf.java
+++ 
b/common/idrepo/lib/src/main/java/org/apache/syncope/common/lib/policy/DefaultAccountRuleConf.java
@@ -24,7 +24,7 @@ import org.apache.syncope.common.lib.Schema;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.SchemaType;
 
-public class DefaultAccountRuleConf extends AbstractAccountRuleConf implements 
AccountRuleConf {
+public class DefaultAccountRuleConf extends AbstractAccountRuleConf {
 
     private static final long serialVersionUID = 3259256974414758406L;
 
diff --git 
a/common/idrepo/lib/src/test/java/org/apache/syncope/common/lib/search/SyncopeFiqlParserTest.java
 
b/common/idrepo/lib/src/test/java/org/apache/syncope/common/lib/search/SyncopeFiqlParserTest.java
index 422cde3b87..e8fb655c13 100644
--- 
a/common/idrepo/lib/src/test/java/org/apache/syncope/common/lib/search/SyncopeFiqlParserTest.java
+++ 
b/common/idrepo/lib/src/test/java/org/apache/syncope/common/lib/search/SyncopeFiqlParserTest.java
@@ -32,11 +32,10 @@ public class SyncopeFiqlParserTest {
     private static final SyncopeFiqlParser<SearchBean> FIQL_PARSER = new 
SyncopeFiqlParser<>(
             SearchBean.class, 
AbstractFiqlSearchConditionBuilder.CONTEXTUAL_PROPERTIES);
 
-    @SuppressWarnings("unchecked")
     private static SyncopeFiqlSearchCondition<SearchBean> parse(final String 
fiql) {
         SearchCondition<SearchBean> parsed = FIQL_PARSER.parse(fiql);
         assertTrue(parsed instanceof SyncopeFiqlSearchCondition);
-        return (SyncopeFiqlSearchCondition) parsed;
+        return (SyncopeFiqlSearchCondition<SearchBean>) parsed;
     }
 
     @Test
diff --git 
a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
 
b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
index 00bc9e77c3..610dfe78f8 100644
--- 
a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
+++ 
b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/AbstractAnyLogic.java
@@ -84,7 +84,6 @@ abstract class AbstractAnyLogic<TO extends AnyTO, C extends 
AnyCR, U extends Any
         return result;
     }
 
-    @SuppressWarnings("unchecked")
     protected BeforeResult<C> beforeCreate(final C input) {
         Realm realm = 
realmSearchDAO.findByFullPath(input.getRealm()).orElseThrow(() -> {
             SyncopeClientException sce = 
SyncopeClientException.build(ClientExceptionType.InvalidRealm);
@@ -121,7 +120,6 @@ abstract class AbstractAnyLogic<TO extends AnyTO, C extends 
AnyCR, U extends Any
         return new BeforeResult<>(actionedCR, actions);
     }
 
-    @SuppressWarnings("unchecked")
     protected BeforeResult<U> beforeUpdate(final U input, final String 
realmPath) {
         Realm realm = realmSearchDAO.findByFullPath(realmPath).orElseThrow(() 
-> {
             SyncopeClientException sce = 
SyncopeClientException.build(ClientExceptionType.InvalidRealm);
@@ -141,7 +139,6 @@ abstract class AbstractAnyLogic<TO extends AnyTO, C extends 
AnyCR, U extends Any
         return new BeforeResult<>(update, actions);
     }
 
-    @SuppressWarnings("unchecked")
     protected BeforeResult<TO> beforeDelete(final TO input) {
         Realm realm = 
realmSearchDAO.findByFullPath(input.getRealm()).orElseThrow(() -> {
             SyncopeClientException sce = 
SyncopeClientException.build(ClientExceptionType.InvalidRealm);
@@ -161,7 +158,6 @@ abstract class AbstractAnyLogic<TO extends AnyTO, C extends 
AnyCR, U extends Any
         return new BeforeResult<>(any, actions);
     }
 
-    @SuppressWarnings("unchecked")
     protected ProvisioningResult<TO> afterCreate(
             final TO input, final List<PropagationStatus> statuses, final 
List<LogicActions> actions) {
 
@@ -196,7 +192,6 @@ abstract class AbstractAnyLogic<TO extends AnyTO, C extends 
AnyCR, U extends Any
         return result;
     }
 
-    @SuppressWarnings("unchecked")
     protected ProvisioningResult<TO> afterDelete(
             final TO input, final List<PropagationStatus> statuses, final 
List<LogicActions> actions) {
 
diff --git 
a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/LogicInvocationHandler.java
 
b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/LogicInvocationHandler.java
index 3774adaf47..23448b7eb0 100644
--- 
a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/LogicInvocationHandler.java
+++ 
b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/LogicInvocationHandler.java
@@ -46,6 +46,7 @@ public class LogicInvocationHandler {
         this.auditManager = auditManager;
     }
 
+    @SuppressWarnings("rawtypes")
     @Around("execution(* org.apache.syncope.core.logic.AbstractLogic+.*(..))")
     public Object around(final ProceedingJoinPoint joinPoint) throws Throwable 
{
         Class<?> clazz = joinPoint.getTarget().getClass();
diff --git 
a/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/TaskServiceImpl.java
 
b/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/TaskServiceImpl.java
index 79e8b50542..7e0a716651 100644
--- 
a/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/TaskServiceImpl.java
+++ 
b/core/idrepo/rest-cxf/src/main/java/org/apache/syncope/core/rest/cxf/service/TaskServiceImpl.java
@@ -76,7 +76,6 @@ public class TaskServiceImpl extends 
AbstractExecutableService implements TaskSe
         logic.delete(type, key);
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public <T extends TaskTO> PagedResult<T> search(final TaskQuery query) {
         Page<T> result = logic.search(
diff --git 
a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
 
b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
index a6e6fa828b..6bfac4c9b3 100644
--- 
a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
+++ 
b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/entity/Any.java
@@ -23,7 +23,7 @@ import java.util.List;
 import org.apache.syncope.core.persistence.api.entity.group.Group;
 import org.apache.syncope.core.persistence.api.entity.user.User;
 
-public interface Any extends Attributable, Entity {
+public interface Any extends Attributable {
 
     OffsetDateTime getCreationDate();
 
diff --git 
a/core/persistence-common/src/main/java/org/apache/syncope/core/persistence/common/content/MultiParentNode.java
 
b/core/persistence-common/src/main/java/org/apache/syncope/core/persistence/common/content/MultiParentNode.java
index a6c8df0778..d92ee50fb8 100644
--- 
a/core/persistence-common/src/main/java/org/apache/syncope/core/persistence/common/content/MultiParentNode.java
+++ 
b/core/persistence-common/src/main/java/org/apache/syncope/core/persistence/common/content/MultiParentNode.java
@@ -102,7 +102,6 @@ public class MultiParentNode {
         if (getClass() != obj.getClass()) {
             return false;
         }
-        @SuppressWarnings("unchecked")
         final MultiParentNode other = (MultiParentNode) obj;
         return new EqualsBuilder().
                 append(object, other.object).
diff --git 
a/core/persistence-common/src/main/java/org/apache/syncope/core/persistence/common/dao/AbstractAnyMatchDAO.java
 
b/core/persistence-common/src/main/java/org/apache/syncope/core/persistence/common/dao/AbstractAnyMatchDAO.java
index aaa235f371..fb656bb532 100644
--- 
a/core/persistence-common/src/main/java/org/apache/syncope/core/persistence/common/dao/AbstractAnyMatchDAO.java
+++ 
b/core/persistence-common/src/main/java/org/apache/syncope/core/persistence/common/dao/AbstractAnyMatchDAO.java
@@ -135,21 +135,21 @@ public abstract class AbstractAnyMatchDAO implements 
AnyMatchDAO {
                 if (match == null) {
                     match = cond.asLeaf(RelationshipTypeCond.class).
                             filter(leaf -> any instanceof Groupable).
-                            map(leaf -> matches((Relatable) any, leaf, not)).
+                            map(leaf -> matches((Relatable<?, ?>) any, leaf, 
not)).
                             orElse(null);
                 }
 
                 if (match == null) {
                     match = cond.asLeaf(RelationshipCond.class).
                             filter(leaf -> any instanceof Groupable).
-                            map(leaf -> matches((Relatable) any, leaf, not)).
+                            map(leaf -> matches((Relatable<?, ?>) any, leaf, 
not)).
                             orElse(null);
                 }
 
                 if (match == null) {
                     match = cond.asLeaf(MembershipCond.class).
                             filter(leaf -> any instanceof Groupable).
-                            map(leaf -> matches((Groupable) any, leaf, not)).
+                            map(leaf -> matches((Groupable<?, ?, ?>) any, 
leaf, not)).
                             orElse(null);
                 }
 
@@ -350,7 +350,6 @@ public abstract class AbstractAnyMatchDAO implements 
AnyMatchDAO {
             return false;
         }
 
-        @SuppressWarnings("unchecked")
         Optional<PlainAttr> attr = (Optional<PlainAttr>) 
any.getPlainAttr(cond.getSchema());
 
         boolean found;
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 dbb7b5d69a..7419fd8019 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
@@ -196,7 +196,7 @@ public class XMLContentExporter extends 
AbstractXMLContentExporter {
                         String tableName = joinTable.name();
                         if (StringUtils.isBlank(tableName)) {
                             tableName = GET_KEY.apply(entities, e) + "_"
-                                    + GET_KEY.apply(entities, 
((PluralAttribute) a).getElementType());
+                                    + GET_KEY.apply(entities, 
((PluralAttribute<?, ?, ?>) a).getElementType());
                         }
 
                         relationTables.put(
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPALiveSyncTaskExec.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPALiveSyncTaskExec.java
index 4b4278dcda..4b2632889b 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPALiveSyncTaskExec.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPALiveSyncTaskExec.java
@@ -23,11 +23,10 @@ import jakarta.persistence.ManyToOne;
 import jakarta.persistence.Table;
 import org.apache.syncope.core.persistence.api.entity.task.LiveSyncTask;
 import org.apache.syncope.core.persistence.api.entity.task.SchedTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 
 @Entity
 @Table(name = JPALiveSyncTaskExec.TABLE)
-public class JPALiveSyncTaskExec extends AbstractTaskExec<SchedTask> 
implements TaskExec<SchedTask> {
+public class JPALiveSyncTaskExec extends AbstractTaskExec<SchedTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAMacroTaskExec.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAMacroTaskExec.java
index 18f96686ad..4b991f8fcf 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAMacroTaskExec.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAMacroTaskExec.java
@@ -23,11 +23,10 @@ import jakarta.persistence.ManyToOne;
 import jakarta.persistence.Table;
 import org.apache.syncope.core.persistence.api.entity.task.MacroTask;
 import org.apache.syncope.core.persistence.api.entity.task.SchedTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 
 @Entity
 @Table(name = JPAMacroTaskExec.TABLE)
-public class JPAMacroTaskExec extends AbstractTaskExec<SchedTask> implements 
TaskExec<SchedTask> {
+public class JPAMacroTaskExec extends AbstractTaskExec<SchedTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPANotificationTaskExec.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPANotificationTaskExec.java
index e37a947dcc..8e566cc507 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPANotificationTaskExec.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPANotificationTaskExec.java
@@ -22,11 +22,10 @@ import jakarta.persistence.Entity;
 import jakarta.persistence.ManyToOne;
 import jakarta.persistence.Table;
 import org.apache.syncope.core.persistence.api.entity.task.NotificationTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 
 @Entity
 @Table(name = JPANotificationTaskExec.TABLE)
-public class JPANotificationTaskExec extends 
AbstractTaskExec<NotificationTask> implements TaskExec<NotificationTask> {
+public class JPANotificationTaskExec extends 
AbstractTaskExec<NotificationTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTaskExec.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTaskExec.java
index 010fe8d14d..3366b471d0 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTaskExec.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPropagationTaskExec.java
@@ -22,11 +22,10 @@ import jakarta.persistence.Entity;
 import jakarta.persistence.ManyToOne;
 import jakarta.persistence.Table;
 import org.apache.syncope.core.persistence.api.entity.task.PropagationTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 
 @Entity
 @Table(name = JPAPropagationTaskExec.TABLE)
-public class JPAPropagationTaskExec extends AbstractTaskExec<PropagationTask> 
implements TaskExec<PropagationTask> {
+public class JPAPropagationTaskExec extends AbstractTaskExec<PropagationTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPullTaskExec.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPullTaskExec.java
index 7e1f1d9814..6eff92a4c4 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPullTaskExec.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPullTaskExec.java
@@ -23,11 +23,10 @@ import jakarta.persistence.ManyToOne;
 import jakarta.persistence.Table;
 import org.apache.syncope.core.persistence.api.entity.task.PullTask;
 import org.apache.syncope.core.persistence.api.entity.task.SchedTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 
 @Entity
 @Table(name = JPAPullTaskExec.TABLE)
-public class JPAPullTaskExec extends AbstractTaskExec<SchedTask> implements 
TaskExec<SchedTask> {
+public class JPAPullTaskExec extends AbstractTaskExec<SchedTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTaskExec.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTaskExec.java
index 2aaa02c966..00015020e6 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTaskExec.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPAPushTaskExec.java
@@ -23,11 +23,10 @@ import jakarta.persistence.ManyToOne;
 import jakarta.persistence.Table;
 import org.apache.syncope.core.persistence.api.entity.task.PushTask;
 import org.apache.syncope.core.persistence.api.entity.task.SchedTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 
 @Entity
 @Table(name = JPAPushTaskExec.TABLE)
-public class JPAPushTaskExec extends AbstractTaskExec<SchedTask> implements 
TaskExec<SchedTask> {
+public class JPAPushTaskExec extends AbstractTaskExec<SchedTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPASchedTaskExec.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPASchedTaskExec.java
index 655e7a9e44..3f008c0632 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPASchedTaskExec.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/task/JPASchedTaskExec.java
@@ -22,11 +22,10 @@ import jakarta.persistence.Entity;
 import jakarta.persistence.ManyToOne;
 import jakarta.persistence.Table;
 import org.apache.syncope.core.persistence.api.entity.task.SchedTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 
 @Entity
 @Table(name = JPASchedTaskExec.TABLE)
-public class JPASchedTaskExec extends AbstractTaskExec<SchedTask> implements 
TaskExec<SchedTask> {
+public class JPASchedTaskExec extends AbstractTaskExec<SchedTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/dao/Neo4jPolicyDAO.java
 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/dao/Neo4jPolicyDAO.java
index 93f913a1de..260a78fc6a 100644
--- 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/dao/Neo4jPolicyDAO.java
+++ 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/dao/Neo4jPolicyDAO.java
@@ -135,7 +135,6 @@ public class Neo4jPolicyDAO extends AbstractDAO implements 
PolicyDAO {
                 flatMap(toOptional("n.id", Neo4jPolicy.class, null));
     }
 
-    @SuppressWarnings("unchecked")
     @Override
     public <T extends Policy> Optional<T> findById(final String key, final 
Class<T> reference) {
         return neo4jTemplate.findById(key, 
getNodeReference(reference)).map(reference::cast);
diff --git 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jLiveSyncTaskExec.java
 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jLiveSyncTaskExec.java
index cfe2e34b7f..930ba330e6 100644
--- 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jLiveSyncTaskExec.java
+++ 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jLiveSyncTaskExec.java
@@ -20,12 +20,11 @@ package 
org.apache.syncope.core.persistence.neo4j.entity.task;
 
 import org.apache.syncope.core.persistence.api.entity.task.LiveSyncTask;
 import org.apache.syncope.core.persistence.api.entity.task.SchedTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 import org.springframework.data.neo4j.core.schema.Node;
 import org.springframework.data.neo4j.core.schema.Relationship;
 
 @Node(Neo4jLiveSyncTaskExec.NODE)
-public class Neo4jLiveSyncTaskExec extends AbstractTaskExec<SchedTask> 
implements TaskExec<SchedTask> {
+public class Neo4jLiveSyncTaskExec extends AbstractTaskExec<SchedTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jMacroTaskExec.java
 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jMacroTaskExec.java
index 2dde2fb9e5..71e54a2b80 100644
--- 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jMacroTaskExec.java
+++ 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jMacroTaskExec.java
@@ -21,12 +21,11 @@ package 
org.apache.syncope.core.persistence.neo4j.entity.task;
 import jakarta.validation.constraints.NotNull;
 import org.apache.syncope.core.persistence.api.entity.task.MacroTask;
 import org.apache.syncope.core.persistence.api.entity.task.SchedTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 import org.springframework.data.neo4j.core.schema.Node;
 import org.springframework.data.neo4j.core.schema.Relationship;
 
 @Node(Neo4jMacroTaskExec.NODE)
-public class Neo4jMacroTaskExec extends AbstractTaskExec<SchedTask> implements 
TaskExec<SchedTask> {
+public class Neo4jMacroTaskExec extends AbstractTaskExec<SchedTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jNotificationTaskExec.java
 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jNotificationTaskExec.java
index 13d96935e6..aa0c6c6c7f 100644
--- 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jNotificationTaskExec.java
+++ 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jNotificationTaskExec.java
@@ -20,14 +20,11 @@ package 
org.apache.syncope.core.persistence.neo4j.entity.task;
 
 import jakarta.validation.constraints.NotNull;
 import org.apache.syncope.core.persistence.api.entity.task.NotificationTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 import org.springframework.data.neo4j.core.schema.Node;
 import org.springframework.data.neo4j.core.schema.Relationship;
 
 @Node(Neo4jNotificationTaskExec.NODE)
-public class Neo4jNotificationTaskExec
-        extends AbstractTaskExec<NotificationTask>
-        implements TaskExec<NotificationTask> {
+public class Neo4jNotificationTaskExec extends 
AbstractTaskExec<NotificationTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jPropagationTaskExec.java
 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jPropagationTaskExec.java
index 4efcc63c91..dda78c28de 100644
--- 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jPropagationTaskExec.java
+++ 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jPropagationTaskExec.java
@@ -20,12 +20,11 @@ package 
org.apache.syncope.core.persistence.neo4j.entity.task;
 
 import jakarta.validation.constraints.NotNull;
 import org.apache.syncope.core.persistence.api.entity.task.PropagationTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 import org.springframework.data.neo4j.core.schema.Node;
 import org.springframework.data.neo4j.core.schema.Relationship;
 
 @Node(Neo4jPropagationTaskExec.NODE)
-public class Neo4jPropagationTaskExec extends 
AbstractTaskExec<PropagationTask> implements TaskExec<PropagationTask> {
+public class Neo4jPropagationTaskExec extends 
AbstractTaskExec<PropagationTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jPullTaskExec.java
 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jPullTaskExec.java
index 993484b02d..b0f406f7a6 100644
--- 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jPullTaskExec.java
+++ 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jPullTaskExec.java
@@ -20,12 +20,11 @@ package 
org.apache.syncope.core.persistence.neo4j.entity.task;
 
 import org.apache.syncope.core.persistence.api.entity.task.PullTask;
 import org.apache.syncope.core.persistence.api.entity.task.SchedTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 import org.springframework.data.neo4j.core.schema.Node;
 import org.springframework.data.neo4j.core.schema.Relationship;
 
 @Node(Neo4jPullTaskExec.NODE)
-public class Neo4jPullTaskExec extends AbstractTaskExec<SchedTask> implements 
TaskExec<SchedTask> {
+public class Neo4jPullTaskExec extends AbstractTaskExec<SchedTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jPushTaskExec.java
 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jPushTaskExec.java
index 526d9a0e33..89ddb361d0 100644
--- 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jPushTaskExec.java
+++ 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jPushTaskExec.java
@@ -21,12 +21,11 @@ package 
org.apache.syncope.core.persistence.neo4j.entity.task;
 import jakarta.validation.constraints.NotNull;
 import org.apache.syncope.core.persistence.api.entity.task.PushTask;
 import org.apache.syncope.core.persistence.api.entity.task.SchedTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 import org.springframework.data.neo4j.core.schema.Node;
 import org.springframework.data.neo4j.core.schema.Relationship;
 
 @Node(Neo4jPushTaskExec.NODE)
-public class Neo4jPushTaskExec extends AbstractTaskExec<SchedTask> implements 
TaskExec<SchedTask> {
+public class Neo4jPushTaskExec extends AbstractTaskExec<SchedTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jSchedTaskExec.java
 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jSchedTaskExec.java
index c389543927..560bc1c410 100644
--- 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jSchedTaskExec.java
+++ 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/entity/task/Neo4jSchedTaskExec.java
@@ -20,12 +20,11 @@ package 
org.apache.syncope.core.persistence.neo4j.entity.task;
 
 import jakarta.validation.constraints.NotNull;
 import org.apache.syncope.core.persistence.api.entity.task.SchedTask;
-import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 import org.springframework.data.neo4j.core.schema.Node;
 import org.springframework.data.neo4j.core.schema.Relationship;
 
 @Node(Neo4jSchedTaskExec.NODE)
-public class Neo4jSchedTaskExec extends AbstractTaskExec<SchedTask> implements 
TaskExec<SchedTask> {
+public class Neo4jSchedTaskExec extends AbstractTaskExec<SchedTask> {
 
     private static final long serialVersionUID = 1909033231464074554L;
 
diff --git 
a/core/persistence-neo4j/src/test/java/org/apache/syncope/core/persistence/neo4j/inner/AnySearchTest.java
 
b/core/persistence-neo4j/src/test/java/org/apache/syncope/core/persistence/neo4j/inner/AnySearchTest.java
index 693ff9a01a..8e3c5ed5c6 100644
--- 
a/core/persistence-neo4j/src/test/java/org/apache/syncope/core/persistence/neo4j/inner/AnySearchTest.java
+++ 
b/core/persistence-neo4j/src/test/java/org/apache/syncope/core/persistence/neo4j/inner/AnySearchTest.java
@@ -44,7 +44,6 @@ import org.apache.syncope.core.persistence.api.dao.GroupDAO;
 import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO;
 import org.apache.syncope.core.persistence.api.dao.RealmDAO;
 import org.apache.syncope.core.persistence.api.dao.RealmSearchDAO;
-import org.apache.syncope.core.persistence.api.dao.RoleDAO;
 import org.apache.syncope.core.persistence.api.dao.UserDAO;
 import org.apache.syncope.core.persistence.api.dao.search.AnyCond;
 import org.apache.syncope.core.persistence.api.dao.search.AnyTypeCond;
@@ -106,9 +105,6 @@ public class AnySearchTest extends AbstractTest {
     @Autowired
     private RealmSearchDAO realmSearchDAO;
 
-    @Autowired
-    private RoleDAO roleDAO;
-
     @Autowired
     private PlainSchemaDAO plainSchemaDAO;
 
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyDataBinder.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyDataBinder.java
index 719aac7d59..3785493127 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyDataBinder.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyDataBinder.java
@@ -350,7 +350,6 @@ abstract class AnyDataBinder extends AttributableDataBinder 
{
         return reqValMissing;
     }
 
-    @SuppressWarnings({ "unchecked", "rawtypes" })
     protected void processAttrPatch(
             final AnyTO anyTO,
             final Any any,
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultAnyObjectPullResultHandler.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultAnyObjectPullResultHandler.java
index 1904b985e1..2f04bd86f7 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultAnyObjectPullResultHandler.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultAnyObjectPullResultHandler.java
@@ -33,13 +33,10 @@ import 
org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
 import org.apache.syncope.core.provisioning.api.AnyObjectProvisioningManager;
 import org.apache.syncope.core.provisioning.api.ProvisioningManager;
 import org.apache.syncope.core.provisioning.api.WorkflowResult;
-import org.apache.syncope.core.provisioning.api.pushpull.AnyPullResultHandler;
 import org.identityconnectors.framework.common.objects.SyncDelta;
 import org.springframework.beans.factory.annotation.Autowired;
 
-public class DefaultAnyObjectPullResultHandler
-        extends AbstractPullResultHandler
-        implements AnyPullResultHandler {
+public class DefaultAnyObjectPullResultHandler extends 
AbstractPullResultHandler {
 
     @Autowired
     private AnyObjectProvisioningManager anyObjectProvisioningManager;
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultAnyObjectPushResultHandler.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultAnyObjectPushResultHandler.java
index e43751a0b2..e9313844d5 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultAnyObjectPushResultHandler.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultAnyObjectPushResultHandler.java
@@ -26,9 +26,8 @@ import org.apache.syncope.core.persistence.api.entity.Any;
 import org.apache.syncope.core.persistence.api.entity.AnyUtils;
 import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
 import org.apache.syncope.core.provisioning.api.WorkflowResult;
-import org.apache.syncope.core.provisioning.api.pushpull.AnyPushResultHandler;
 
-public class DefaultAnyObjectPushResultHandler extends 
AbstractPushResultHandler implements AnyPushResultHandler {
+public class DefaultAnyObjectPushResultHandler extends 
AbstractPushResultHandler {
 
     @Override
     protected AnyUtils anyUtils() {
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultGroupPullResultHandler.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultGroupPullResultHandler.java
index c763e04c31..9125478edb 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultGroupPullResultHandler.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultGroupPullResultHandler.java
@@ -33,11 +33,10 @@ import 
org.apache.syncope.core.persistence.api.entity.group.Group;
 import org.apache.syncope.core.provisioning.api.GroupProvisioningManager;
 import org.apache.syncope.core.provisioning.api.ProvisioningManager;
 import org.apache.syncope.core.provisioning.api.WorkflowResult;
-import org.apache.syncope.core.provisioning.api.pushpull.AnyPullResultHandler;
 import org.identityconnectors.framework.common.objects.SyncDelta;
 import org.springframework.beans.factory.annotation.Autowired;
 
-public class DefaultGroupPullResultHandler extends AbstractPullResultHandler 
implements AnyPullResultHandler {
+public class DefaultGroupPullResultHandler extends AbstractPullResultHandler {
 
     @Autowired
     private GroupProvisioningManager groupProvisioningManager;
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultGroupPushResultHandler.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultGroupPushResultHandler.java
index 4adcc73a0f..cfb2239fa5 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultGroupPushResultHandler.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultGroupPushResultHandler.java
@@ -26,9 +26,8 @@ import org.apache.syncope.core.persistence.api.entity.Any;
 import org.apache.syncope.core.persistence.api.entity.AnyUtils;
 import org.apache.syncope.core.persistence.api.entity.group.Group;
 import org.apache.syncope.core.provisioning.api.WorkflowResult;
-import org.apache.syncope.core.provisioning.api.pushpull.AnyPushResultHandler;
 
-public class DefaultGroupPushResultHandler extends AbstractPushResultHandler 
implements AnyPushResultHandler {
+public class DefaultGroupPushResultHandler extends AbstractPushResultHandler {
 
     @Override
     protected AnyUtils anyUtils() {
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultUserPullResultHandler.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultUserPullResultHandler.java
index 1e5f0dce6d..9b952f567d 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultUserPullResultHandler.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultUserPullResultHandler.java
@@ -53,14 +53,13 @@ import 
org.apache.syncope.core.provisioning.api.UserProvisioningManager;
 import org.apache.syncope.core.provisioning.api.WorkflowResult;
 import org.apache.syncope.core.provisioning.api.job.JobExecutionException;
 import 
org.apache.syncope.core.provisioning.api.propagation.PropagationException;
-import org.apache.syncope.core.provisioning.api.pushpull.AnyPullResultHandler;
 import org.apache.syncope.core.provisioning.api.pushpull.InboundActions;
 import org.apache.syncope.core.provisioning.api.rules.InboundMatch;
 import org.identityconnectors.framework.common.objects.AttributeUtil;
 import org.identityconnectors.framework.common.objects.SyncDelta;
 import org.springframework.beans.factory.annotation.Autowired;
 
-public class DefaultUserPullResultHandler extends AbstractPullResultHandler 
implements AnyPullResultHandler {
+public class DefaultUserPullResultHandler extends AbstractPullResultHandler {
 
     @Autowired
     protected UserProvisioningManager userProvisioningManager;
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LiveSyncJobDelegate.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LiveSyncJobDelegate.java
index 77f5394afc..daf1acac15 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LiveSyncJobDelegate.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LiveSyncJobDelegate.java
@@ -53,7 +53,6 @@ import 
org.apache.syncope.core.provisioning.api.pushpull.InboundActions;
 import org.apache.syncope.core.provisioning.api.pushpull.LiveSyncDeltaMapper;
 import org.apache.syncope.core.provisioning.api.pushpull.ProvisioningProfile;
 import 
org.apache.syncope.core.provisioning.api.pushpull.RealmPullResultHandler;
-import org.apache.syncope.core.provisioning.api.pushpull.SyncopePullExecutor;
 import 
org.apache.syncope.core.provisioning.api.pushpull.SyncopePullResultHandler;
 import org.apache.syncope.core.provisioning.java.job.TaskJob;
 import org.apache.syncope.core.provisioning.java.utils.ConnObjectUtils;
@@ -67,9 +66,7 @@ import 
org.identityconnectors.framework.common.objects.SyncDelta;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
-public class LiveSyncJobDelegate
-        extends AbstractPullExecutor<LiveSyncTask>
-        implements SyncopePullExecutor, StoppableJobDelegate {
+public class LiveSyncJobDelegate extends AbstractPullExecutor<LiveSyncTask> 
implements StoppableJobDelegate {
 
     protected record LiveSyncInfo(
             Provision provision,
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
index 19fc2ba225..ec8f48a8f9 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/PullJobDelegate.java
@@ -39,7 +39,6 @@ import 
org.apache.syncope.core.provisioning.api.pushpull.InboundActions;
 import org.apache.syncope.core.provisioning.api.pushpull.ProvisioningProfile;
 import 
org.apache.syncope.core.provisioning.api.pushpull.RealmPullResultHandler;
 import org.apache.syncope.core.provisioning.api.pushpull.ReconFilterBuilder;
-import org.apache.syncope.core.provisioning.api.pushpull.SyncopePullExecutor;
 import 
org.apache.syncope.core.provisioning.api.pushpull.SyncopePullResultHandler;
 import org.apache.syncope.core.provisioning.java.utils.ConnObjectUtils;
 import org.apache.syncope.core.provisioning.java.utils.MappingUtils;
@@ -48,9 +47,7 @@ import 
org.apache.syncope.core.spring.security.AuthContextUtils;
 import org.identityconnectors.framework.common.objects.ObjectClass;
 import org.identityconnectors.framework.common.objects.OperationOptions;
 
-public class PullJobDelegate
-        extends AbstractPullExecutor<PullTask>
-        implements SyncopePullExecutor, StoppableJobDelegate {
+public class PullJobDelegate extends AbstractPullExecutor<PullTask> implements 
StoppableJobDelegate {
 
     protected Optional<ReconFilterBuilder> perContextReconFilterBuilder = 
Optional.empty();
 
diff --git 
a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/DefaultMappingManagerTest.java
 
b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/DefaultMappingManagerTest.java
index b80d14b9f0..e9f99bce55 100644
--- 
a/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/DefaultMappingManagerTest.java
+++ 
b/core/provisioning-java/src/test/java/org/apache/syncope/core/provisioning/java/DefaultMappingManagerTest.java
@@ -27,12 +27,7 @@ import java.util.Set;
 import org.apache.syncope.common.lib.to.Provision;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.CipherAlgorithm;
-import 
org.apache.syncope.core.persistence.api.attrvalue.PlainAttrValidationManager;
-import org.apache.syncope.core.persistence.api.dao.AnyTypeClassDAO;
-import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
 import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
-import org.apache.syncope.core.persistence.api.dao.GroupDAO;
-import org.apache.syncope.core.persistence.api.dao.RealmSearchDAO;
 import org.apache.syncope.core.persistence.api.dao.UserDAO;
 import org.apache.syncope.core.persistence.api.entity.EntityFactory;
 import org.apache.syncope.core.persistence.api.entity.ExternalResource;
@@ -54,30 +49,15 @@ public class DefaultMappingManagerTest extends AbstractTest 
{
     @Autowired
     private MappingManager mappingManager;
 
-    @Autowired
-    private AnyTypeDAO anyTypeDAO;
-
     @Autowired
     private UserDAO userDAO;
 
     @Autowired
     private ExternalResourceDAO resourceDAO;
 
-    @Autowired
-    private RealmSearchDAO realmSearchDAO;
-
-    @Autowired
-    private GroupDAO groupDAO;
-
-    @Autowired
-    private AnyTypeClassDAO anyTypeClassDAO;
-
     @Autowired
     private EntityFactory entityFactory;
 
-    @Autowired
-    private PlainAttrValidationManager validator;
-
     @Test
     public void prepareAttrsForUser() {
         User bellini = userDAO.findByUsername("bellini").orElseThrow();
diff --git 
a/core/spring/src/main/java/org/apache/syncope/core/spring/implementation/ImplementationManager.java
 
b/core/spring/src/main/java/org/apache/syncope/core/spring/implementation/ImplementationManager.java
index 2f9c890be2..646bae0ad9 100644
--- 
a/core/spring/src/main/java/org/apache/syncope/core/spring/implementation/ImplementationManager.java
+++ 
b/core/spring/src/main/java/org/apache/syncope/core/spring/implementation/ImplementationManager.java
@@ -215,7 +215,7 @@ public final class ImplementationManager {
         }
     }
 
-    @SuppressWarnings({ "unchecked", "rawtypes" })
+    @SuppressWarnings("unchecked")
     private static Class<? extends CommandArgs> findCommandArgsClass(final 
Type type) {
         if (type.getTypeName().startsWith(
                 
ImplementationTypesHolder.getInstance().getValues().get(IdRepoImplementationType.COMMAND)
 + "<")) {
@@ -321,7 +321,6 @@ public final class ImplementationManager {
         return createBean((Class<T>) getClass(domain, impl).getLeft(), 
impl.getEngine());
     }
 
-    @SuppressWarnings("unchecked")
     private static <T> T build(
             final Class<T> clazz,
             final boolean classCached,
diff --git 
a/core/spring/src/main/java/org/apache/syncope/core/spring/task/VirtualThreadPoolTaskExecutor.java
 
b/core/spring/src/main/java/org/apache/syncope/core/spring/task/VirtualThreadPoolTaskExecutor.java
index c8a73aa422..da57a9d185 100644
--- 
a/core/spring/src/main/java/org/apache/syncope/core/spring/task/VirtualThreadPoolTaskExecutor.java
+++ 
b/core/spring/src/main/java/org/apache/syncope/core/spring/task/VirtualThreadPoolTaskExecutor.java
@@ -27,15 +27,12 @@ import java.util.concurrent.Future;
 import java.util.concurrent.RejectedExecutionHandler;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.TimeUnit;
-import org.springframework.core.task.AsyncTaskExecutor;
 import org.springframework.core.task.SimpleAsyncTaskExecutor;
 import org.springframework.core.task.TaskDecorator;
 import org.springframework.scheduling.SchedulingTaskExecutor;
 import org.springframework.scheduling.concurrent.ExecutorConfigurationSupport;
 
-public class VirtualThreadPoolTaskExecutor
-        extends ExecutorConfigurationSupport
-        implements AsyncTaskExecutor, SchedulingTaskExecutor {
+public class VirtualThreadPoolTaskExecutor extends 
ExecutorConfigurationSupport implements SchedulingTaskExecutor {
 
     private static final long serialVersionUID = 4747270938984213408L;
 
diff --git 
a/core/starter/src/main/java/org/apache/syncope/core/starter/actuate/JobEndpoint.java
 
b/core/starter/src/main/java/org/apache/syncope/core/starter/actuate/JobEndpoint.java
index dd67aad896..5d93455753 100644
--- 
a/core/starter/src/main/java/org/apache/syncope/core/starter/actuate/JobEndpoint.java
+++ 
b/core/starter/src/main/java/org/apache/syncope/core/starter/actuate/JobEndpoint.java
@@ -79,7 +79,7 @@ public class JobEndpoint {
         status.keySet().forEach(domain -> {
             Set<JobStatus> jobStatuses = new HashSet<>(
                     AuthContextUtils.callAsAdmin(domain, () -> 
jobStatusDAO.findAll()));
-            
jobStatuses.removeIf(syncopeTaskScheduler.getJobNames(domain)::contains);
+            jobStatuses.removeIf(s -> 
syncopeTaskScheduler.getJobNames(domain).contains(s.getKey()));
 
             if (!jobStatuses.isEmpty()) {
                 @SuppressWarnings("unchecked")
diff --git 
a/ext/elasticsearch/persistence/src/main/java/org/apache/syncope/core/persistence/elasticsearch/dao/ElasticsearchRealmSearchDAO.java
 
b/ext/elasticsearch/persistence/src/main/java/org/apache/syncope/core/persistence/elasticsearch/dao/ElasticsearchRealmSearchDAO.java
index 6b1b411121..8d24aa5e68 100644
--- 
a/ext/elasticsearch/persistence/src/main/java/org/apache/syncope/core/persistence/elasticsearch/dao/ElasticsearchRealmSearchDAO.java
+++ 
b/ext/elasticsearch/persistence/src/main/java/org/apache/syncope/core/persistence/elasticsearch/dao/ElasticsearchRealmSearchDAO.java
@@ -50,7 +50,6 @@ import org.apache.syncope.core.persistence.api.dao.GroupDAO;
 import org.apache.syncope.core.persistence.api.dao.MalformedPathException;
 import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO;
 import org.apache.syncope.core.persistence.api.dao.RealmDAO;
-import org.apache.syncope.core.persistence.api.dao.RealmSearchDAO;
 import org.apache.syncope.core.persistence.api.dao.UserDAO;
 import org.apache.syncope.core.persistence.api.dao.search.AnyCond;
 import org.apache.syncope.core.persistence.api.dao.search.AttrCond;
@@ -70,7 +69,7 @@ import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
 import org.springframework.transaction.annotation.Transactional;
 
-public class ElasticsearchRealmSearchDAO extends AbstractRealmSearchDAO 
implements RealmSearchDAO {
+public class ElasticsearchRealmSearchDAO extends AbstractRealmSearchDAO {
 
     protected static final Set<String> ID_PROPS = Set.of("key", "id", "_id");
 
diff --git 
a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/BpmnProcessRestClient.java
 
b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/BpmnProcessRestClient.java
index 82c886955d..3214f380c3 100644
--- 
a/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/BpmnProcessRestClient.java
+++ 
b/ext/flowable/client-enduser/src/main/java/org/apache/syncope/client/enduser/rest/BpmnProcessRestClient.java
@@ -18,10 +18,7 @@
  */
 package org.apache.syncope.client.enduser.rest;
 
-import jakarta.ws.rs.core.MediaType;
 import java.util.List;
-import org.apache.cxf.jaxrs.client.Client;
-import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.syncope.common.lib.to.BpmnProcess;
 import org.apache.syncope.common.rest.api.service.BpmnProcessService;
 
@@ -29,13 +26,6 @@ public class BpmnProcessRestClient extends BaseRestClient {
 
     private static final long serialVersionUID = 5049285686167071017L;
 
-    private BpmnProcessService getService(final MediaType mediaType) {
-        BpmnProcessService service = getService(BpmnProcessService.class);
-        Client client = WebClient.client(service);
-        client.type(mediaType);
-        return service;
-    }
-
     public List<BpmnProcess> getDefinitions() {
         return getService(BpmnProcessService.class).list();
     }
diff --git 
a/ext/opensearch/persistence/src/main/java/org/apache/syncope/core/persistence/opensearch/dao/OpenSearchRealmSearchDAO.java
 
b/ext/opensearch/persistence/src/main/java/org/apache/syncope/core/persistence/opensearch/dao/OpenSearchRealmSearchDAO.java
index b510c034cd..44d7ce48f6 100644
--- 
a/ext/opensearch/persistence/src/main/java/org/apache/syncope/core/persistence/opensearch/dao/OpenSearchRealmSearchDAO.java
+++ 
b/ext/opensearch/persistence/src/main/java/org/apache/syncope/core/persistence/opensearch/dao/OpenSearchRealmSearchDAO.java
@@ -32,7 +32,6 @@ import org.apache.syncope.core.persistence.api.dao.GroupDAO;
 import org.apache.syncope.core.persistence.api.dao.MalformedPathException;
 import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO;
 import org.apache.syncope.core.persistence.api.dao.RealmDAO;
-import org.apache.syncope.core.persistence.api.dao.RealmSearchDAO;
 import org.apache.syncope.core.persistence.api.dao.UserDAO;
 import org.apache.syncope.core.persistence.api.dao.search.AnyCond;
 import org.apache.syncope.core.persistence.api.dao.search.AttrCond;
@@ -69,7 +68,7 @@ import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
 import org.springframework.transaction.annotation.Transactional;
 
-public class OpenSearchRealmSearchDAO extends AbstractRealmSearchDAO 
implements RealmSearchDAO {
+public class OpenSearchRealmSearchDAO extends AbstractRealmSearchDAO {
     protected static final Set<String> ID_PROPS = Set.of("key", "id", "_id");
 
     protected static final List<SortOptions> FULLPATH_SORT_OPTIONS = List.of(
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AbstractTaskITCase.java
 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AbstractTaskITCase.java
index bd6b83e179..3c849b127d 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AbstractTaskITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AbstractTaskITCase.java
@@ -120,38 +120,39 @@ public abstract class AbstractTaskITCase extends 
AbstractITCase {
             final int maxWaitSeconds,
             final boolean dryRun) throws Exception {
 
-        SimpleAsyncTaskExecutor executor = new SimpleAsyncTaskExecutor();
-        executor.setVirtualThreads(true);
-        List<Future<ExecTO>> futures = new ArrayList<>();
+        try (SimpleAsyncTaskExecutor executor = new SimpleAsyncTaskExecutor()) 
{
+            executor.setVirtualThreads(true);
+            List<Future<ExecTO>> futures = new ArrayList<>();
+
+            taskKeys.forEach(taskKey -> {
+                futures.add(executor.submit(() -> {
+                    try {
+                        return execSchedTask(taskService, type, taskKey, 
maxWaitSeconds, dryRun);
+                    } catch (Exception e) {
+                        ExecTO failure = new ExecTO();
+                        failure.setRefKey(taskKey);
+                        failure.setStatus(ExecStatus.FAILURE.name());
+                        failure.setMessage(e.getMessage());
+                        return failure;
+                    }
+                }));
+
+                // avoid flooding the test server
+                try {
+                    Thread.sleep(2000);
+                } catch (InterruptedException e) {
+                    // ignore
+                }
+            });
 
-        taskKeys.forEach(taskKey -> {
-            futures.add(executor.submit(() -> {
+            futures.forEach(future -> {
                 try {
-                    return execSchedTask(taskService, type, taskKey, 
maxWaitSeconds, dryRun);
+                    future.get(maxWaitSeconds, TimeUnit.SECONDS);
                 } catch (Exception e) {
-                    ExecTO failure = new ExecTO();
-                    failure.setRefKey(taskKey);
-                    failure.setStatus(ExecStatus.FAILURE.name());
-                    failure.setMessage(e.getMessage());
-                    return failure;
+                    LOG.error("While getting futures", e);
                 }
-            }));
-
-            // avoid flooding the test server
-            try {
-                Thread.sleep(2000);
-            } catch (InterruptedException e) {
-                // ignore
-            }
-        });
-
-        futures.forEach(future -> {
-            try {
-                future.get(maxWaitSeconds, TimeUnit.SECONDS);
-            } catch (Exception e) {
-                LOG.error("While getting futures", e);
-            }
-        });
+            });
+        }
     }
 
     protected NotificationTaskTO findNotificationTask(final String 
notification, final int maxWaitSeconds) {
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
index 959d015e5d..2630e4a305 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/PullTaskITCase.java
@@ -938,33 +938,34 @@ public class PullTaskITCase extends AbstractTaskITCase {
         // 0. first cleanup then create 20 users on LDAP
         ldapCleanup();
 
-        SimpleAsyncTaskExecutor tp = new SimpleAsyncTaskExecutor();
-        tp.setVirtualThreads(true);
-        List<Future<?>> futures = new ArrayList<>();
-
-        for (int i = 0; i < 20; i++) {
-            String idx = StringUtils.leftPad(String.valueOf(i), 2, "0");
-            futures.add(tp.submit(() -> createLdapRemoteObject(
-                    "uid=pullFromLDAP_" + idx + ",ou=People,o=isp",
-                    Map.of(
-                            "objectClass", "inetOrgPerson",
-                            "uid", "pullFromLDAP_" + idx,
-                            "cn", "pullFromLDAP_" + idx,
-                            "mail", "pullFromLDAP_" + idx + 
"@syncope.apache.org",
-                            "description", "Active",
-                            "givenName", "pullFromLDAP_" + idx,
-                            "sn", "Surname",
-                            "registeredAddress", 
"5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8",
-                            "title", "odd",
-                            "userpassword", "password"))));
-        }
-        futures.forEach(future -> {
-            try {
-                future.get(MAX_WAIT_SECONDS, TimeUnit.SECONDS);
-            } catch (Exception e) {
-                LOG.error("While getting futures", e);
+        try (SimpleAsyncTaskExecutor tp = new SimpleAsyncTaskExecutor()) {
+            tp.setVirtualThreads(true);
+            List<Future<?>> futures = new ArrayList<>();
+
+            for (int i = 0; i < 20; i++) {
+                String idx = StringUtils.leftPad(String.valueOf(i), 2, "0");
+                futures.add(tp.submit(() -> createLdapRemoteObject(
+                        "uid=pullFromLDAP_" + idx + ",ou=People,o=isp",
+                        Map.of(
+                                "objectClass", "inetOrgPerson",
+                                "uid", "pullFromLDAP_" + idx,
+                                "cn", "pullFromLDAP_" + idx,
+                                "mail", "pullFromLDAP_" + idx + 
"@syncope.apache.org",
+                                "description", "Active",
+                                "givenName", "pullFromLDAP_" + idx,
+                                "sn", "Surname",
+                                "registeredAddress", 
"5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8",
+                                "title", "odd",
+                                "userpassword", "password"))));
             }
-        });
+            futures.forEach(future -> {
+                try {
+                    future.get(MAX_WAIT_SECONDS, TimeUnit.SECONDS);
+                } catch (Exception e) {
+                    LOG.error("While getting futures", e);
+                }
+            });
+        }
 
         // 1. create new concurrent pull task
         PullTaskTO pullTask = TASK_SERVICE.read(TaskType.PULL, LDAP_PULL_TASK, 
false);
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SyncReplITCase.java
 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SyncReplITCase.java
index c2e2b750f9..3310410b8e 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SyncReplITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SyncReplITCase.java
@@ -366,7 +366,7 @@ class SyncReplITCase extends AbstractITCase {
                     atMost(MAX_WAIT_SECONDS, TimeUnit.SECONDS).pollInterval(1, 
TimeUnit.SECONDS).until(() -> {
 
                 try {
-                    return GROUP_SERVICE.<GroupTO>search(
+                    return GROUP_SERVICE.search(
                             new 
AnyQuery.Builder().fiql("name==readers").build()).getResult();
                 } catch (SyncopeClientException e) {
                     return List.of();
@@ -378,7 +378,7 @@ class SyncReplITCase extends AbstractITCase {
                     atMost(MAX_WAIT_SECONDS, TimeUnit.SECONDS).pollInterval(1, 
TimeUnit.SECONDS).until(() -> {
 
                 try {
-                    return USER_SERVICE.<UserTO>search(
+                    return USER_SERVICE.search(
                             new 
AnyQuery.Builder().fiql("username==user0*").build()).getResult();
                 } catch (SyncopeClientException e) {
                     return List.of();
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
index 1dfe9a61ca..92148820cd 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
@@ -640,7 +640,6 @@ public class UserITCase extends AbstractITCase {
         assertTrue(beforeTasks < afterTasks);
     }
 
-    @SuppressWarnings("unchecked")
     @Test
     public void verifyTaskRegistration() {
         // get task list
diff --git a/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java 
b/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java
index 6443b015bc..24a5a8c1f6 100644
--- a/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java
+++ b/sra/src/main/java/org/apache/syncope/sra/RouteProvider.java
@@ -132,7 +132,6 @@ public class RouteProvider {
         this.useGZIPCompression = useGZIPCompression;
     }
 
-    @SuppressWarnings("unchecked")
     protected GatewayFilter translate(final SRARouteTO route, final 
SRARouteFilter gwfilter)
             throws ClassNotFoundException, NumberFormatException {
 

Reply via email to