Repository: syncope
Updated Branches:
  refs/heads/2_0_X 17fd3a998 -> 708c83161


Important improvement of the method to check if an ANY matches a specific 
search condition


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

Branch: refs/heads/2_0_X
Commit: 708c8316194329e63bd3c92a0537c6a9476a29d4
Parents: 17fd3a9
Author: fmartelli <fabio.marte...@gmail.com>
Authored: Tue Dec 19 12:25:35 2017 +0100
Committer: fmartelli <fabio.marte...@gmail.com>
Committed: Tue Dec 19 12:25:35 2017 +0100

----------------------------------------------------------------------
 .../syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java  | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/syncope/blob/708c8316/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
----------------------------------------------------------------------
diff --git 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
index f433429..c526a3c 100644
--- 
a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
+++ 
b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractAnySearchDAO.java
@@ -360,6 +360,9 @@ public abstract class AbstractAnySearchDAO extends 
AbstractDAO<Any<?>> implement
 
     @Override
     public <T extends Any<?>> boolean matches(final T any, final SearchCond 
cond) {
-        return search(cond, any.getType().getKind()).contains(any);
+        AnyCond keycond = new AnyCond(AttributeCond.Type.EQ);
+        keycond.setSchema("key");
+        keycond.setExpression(any.getKey());
+        return !search(SearchCond.getAndCond(SearchCond.getLeafCond(keycond), 
cond), any.getType().getKind()).isEmpty();
     }
 }

Reply via email to