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(); } }