Repository: syncope
Updated Branches:
  refs/heads/2_0_X da7fe0dc7 -> 1c8962719
  refs/heads/master d11be0df6 -> 9e9002f4b


[SYNCOPE-1304] Correct referece to userOwner_id / groupOwner_id in ORDER BY 
statements


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

Branch: refs/heads/2_0_X
Commit: 1c896271996a9626ce1e451dfd9b13a3272e95da
Parents: da7fe0d
Author: Francesco Chicchiriccò <[email protected]>
Authored: Mon Apr 23 16:26:11 2018 +0200
Committer: Francesco Chicchiriccò <[email protected]>
Committed: Mon Apr 23 16:26:11 2018 +0200

----------------------------------------------------------------------
 .../syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java    | 7 ++++++-
 .../test/java/org/apache/syncope/fit/core/SearchITCase.java  | 8 ++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/1c896271/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
----------------------------------------------------------------------
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
index f33295d..3dbca69 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnySearchDAO.java
@@ -27,6 +27,7 @@ import java.util.Set;
 import javax.persistence.Query;
 import javax.persistence.TemporalType;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.commons.lang3.tuple.Triple;
@@ -64,6 +65,8 @@ public class JPAAnySearchDAO extends AbstractAnySearchDAO {
 
     private static final String EMPTY_QUERY = "SELECT any_id FROM 
user_search_attr WHERE 1=2";
 
+    private static final String[] RELATIONSHIP_FIELDS = new String[] { 
"realm", "userOwner", "groupOwner" };
+
     private Pair<String, Set<String>> getAdminRealmsFilter(
             final Set<String> adminRealms,
             final SearchSupport svs,
@@ -318,7 +321,9 @@ public class JPAAnySearchDAO extends AbstractAnySearchDAO {
                 }
             } else {
                 // Adjust field name to column name
-                fieldName = "realm".equals(fieldName) ? "realm_id" : fieldName;
+                if (ArrayUtils.contains(RELATIONSHIP_FIELDS, fieldName)) {
+                    fieldName += "_id";
+                }
 
                 obs.views.add(svs.field());
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/1c896271/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
index 4af22aa..a03abe5 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/SearchITCase.java
@@ -598,4 +598,12 @@ public class SearchITCase extends AbstractITCase {
             userService.update(patch);
         }
     }
+
+    @Test
+    public void issueSYNCOPE1304() {
+        PagedResult<GroupTO> groups = groupService.search(new 
AnyQuery.Builder().realm(SyncopeConstants.ROOT_REALM).
+                orderBy("userOwner DESC").build());
+        assertNotNull(groups);
+        assertFalse(groups.getResult().isEmpty());
+    }
 }

Reply via email to