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

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


The following commit(s) were added to refs/heads/4_0_X by this push:
     new de5b8ac908 Fixing Neo4j
de5b8ac908 is described below

commit de5b8ac908b969de691f1421f48b2c75868b1715
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Fri Aug 28 17:02:43 2026 +0200

    Fixing Neo4j
---
 .../core/persistence/neo4j/dao/Neo4jTaskDAO.java        | 17 ++++++++++++++---
 .../core/provisioning/api/rules/InboundMatch.java       |  4 ++--
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/dao/Neo4jTaskDAO.java
 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/dao/Neo4jTaskDAO.java
index 9c4c0dce25..f647f5e3fb 100644
--- 
a/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/dao/Neo4jTaskDAO.java
+++ 
b/core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/dao/Neo4jTaskDAO.java
@@ -18,6 +18,7 @@
  */
 package org.apache.syncope.core.persistence.neo4j.dao;
 
+import java.lang.reflect.Field;
 import java.time.OffsetDateTime;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -76,6 +77,7 @@ import org.springframework.data.neo4j.core.Neo4jClient;
 import org.springframework.data.neo4j.core.Neo4jTemplate;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.ReflectionUtils;
 
 public class Neo4jTaskDAO extends AbstractDAO implements TaskDAO {
 
@@ -245,7 +247,10 @@ public class Neo4jTaskDAO extends AbstractDAO implements 
TaskDAO {
         return neo4jTemplate.count(query.toString());
     }
 
-    protected String toOrderByStatement(final Stream<Sort.Order> 
orderByClauses) {
+    protected String toOrderByStatement(
+            final Class<? extends Task<?>> beanClass,
+            final Stream<Sort.Order> orderByClauses) {
+
         StringBuilder subStatement = new StringBuilder();
         orderByClauses.forEach(clause -> {
             String field = null;
@@ -263,6 +268,10 @@ public class Neo4jTaskDAO extends AbstractDAO implements 
TaskDAO {
                     break;
 
                 default:
+                    Field beanField = ReflectionUtils.findField(beanClass, 
clause.getProperty().trim());
+                    if (beanField != null) {
+                        field = beanField.getName();
+                    }
             }
 
             if (field == null) {
@@ -295,7 +304,8 @@ public class Neo4jTaskDAO extends AbstractDAO implements 
TaskDAO {
             query.append("(n)-[:").append(execRelationship(type)).append("]-() 
");
         }
 
-        query.append("RETURN n.id 
").append(toOrderByStatement(pageable.getSort().stream()));
+        query.append("RETURN n.id ").append(toOrderByStatement(
+                taskUtilsFactory.getInstance(type).getTaskEntity(), 
pageable.getSort().stream()));
 
         if (pageable.isPaged()) {
             query.append(" SKIP ").append(pageable.getPageSize() * 
pageable.getPageNumber()).
@@ -467,7 +477,8 @@ public class Neo4jTaskDAO extends AbstractDAO implements 
TaskDAO {
 
         query.append(" WITH n ");
 
-        query.append(toOrderByStatement(pageable.getSort().stream()));
+        query.append(toOrderByStatement(
+                taskUtilsFactory.getInstance(type).getTaskEntity(), 
pageable.getSort().stream()));
 
         if (pageable.isPaged()) {
             query.append(" SKIP ").append(pageable.getPageSize() * 
pageable.getPageNumber()).
diff --git 
a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/rules/InboundMatch.java
 
b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/rules/InboundMatch.java
index 7bdead2eff..e9b27765be 100644
--- 
a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/rules/InboundMatch.java
+++ 
b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/rules/InboundMatch.java
@@ -41,8 +41,8 @@ public final class InboundMatch implements Serializable {
 
         if (entity instanceof final Any any) {
             this.any = any;
-        } else if (entity instanceof LinkedAccount linkedAccount1) {
-            linkedAccount = linkedAccount1;
+        } else if (entity instanceof LinkedAccount linkedAccount) {
+            this.linkedAccount = linkedAccount;
         }
     }
 

Reply via email to