From d6ab02edd57bfeda8d65909ec5018aef0206291c Mon Sep 17 00:00:00 2001 From: Adrian Nistor Date: Thu, 12 Jan 2017 12:32:01 +0200 Subject: [PATCH] ISPN-5729 Remote query - org/apache/lucene/uninverting/UninvertingReader missing on "order by" query --- .../as/client/BaseHotRodQueryIT.java | 27 +++++++++++++++++++ .../test/integration/as/client/Person.java | 8 ++++++ .../hibernate/search/engine/main/module.xml | 1 + .../server/test/query/RemoteQueryIT.java | 10 +++++++ 4 files changed, 46 insertions(+) diff --git a/integrationtests/wildfly-modules/src/test/java/org/infinispan/test/integration/as/client/BaseHotRodQueryIT.java b/integrationtests/wildfly-modules/src/test/java/org/infinispan/test/integration/as/client/BaseHotRodQueryIT.java index 5a1e8afe2679..79de5f7b9519 100644 --- a/integrationtests/wildfly-modules/src/test/java/org/infinispan/test/integration/as/client/BaseHotRodQueryIT.java +++ b/integrationtests/wildfly-modules/src/test/java/org/infinispan/test/integration/as/client/BaseHotRodQueryIT.java @@ -68,4 +68,31 @@ public void testRemoteQuery() throws Exception { rcm.stop(); } + + @Test + public void testUninverting() throws Exception { + RemoteCacheManager rcm = createCacheManager(); + + SerializationContext serializationContext = ProtoStreamMarshaller.getSerializationContext(rcm); + ProtoSchemaBuilder protoSchemaBuilder = new ProtoSchemaBuilder(); + String protoFile = protoSchemaBuilder.fileName("test.proto") + .addClass(Person.class) + .build(serializationContext); + + RemoteCache metadataCache = rcm.getCache(ProtobufMetadataManagerConstants.PROTOBUF_METADATA_CACHE_NAME); + metadataCache.put("test.proto", protoFile); + assertFalse(metadataCache.containsKey(ProtobufMetadataManagerConstants.ERRORS_KEY_SUFFIX)); + + RemoteCache cache = rcm.getCache(); + cache.clear(); + + QueryFactory qf = Search.getQueryFactory(cache); + Query query = qf.from(Person.class) + .having("name").eq("John") + .orderBy("id") + .build(); + assertEquals(0, query.list().size()); + + rcm.stop(); + } } diff --git a/integrationtests/wildfly-modules/src/test/java/org/infinispan/test/integration/as/client/Person.java b/integrationtests/wildfly-modules/src/test/java/org/infinispan/test/integration/as/client/Person.java index ea4b73e26954..d3363f02a997 100644 --- a/integrationtests/wildfly-modules/src/test/java/org/infinispan/test/integration/as/client/Person.java +++ b/integrationtests/wildfly-modules/src/test/java/org/infinispan/test/integration/as/client/Person.java @@ -7,10 +7,18 @@ public class Person { @ProtoField(number = 1) public String name; + @ProtoField(number = 2) + public Integer id; + public Person(String name) { this.name = name; } + public Person(String name, Integer id) { + this.name = name; + this.id = id; + } + public Person() { } } diff --git a/server/integration/feature-pack/src/main/resources/modules/system/layers/base/org/hibernate/search/engine/main/module.xml b/server/integration/feature-pack/src/main/resources/modules/system/layers/base/org/hibernate/search/engine/main/module.xml index 19c9fd3f5130..f53eb3337df6 100644 --- a/server/integration/feature-pack/src/main/resources/modules/system/layers/base/org/hibernate/search/engine/main/module.xml +++ b/server/integration/feature-pack/src/main/resources/modules/system/layers/base/org/hibernate/search/engine/main/module.xml @@ -8,6 +8,7 @@ + diff --git a/server/integration/testsuite/src/test/java/org/infinispan/server/test/query/RemoteQueryIT.java b/server/integration/testsuite/src/test/java/org/infinispan/server/test/query/RemoteQueryIT.java index 6813f09e8f55..dad8c11fbc65 100644 --- a/server/integration/testsuite/src/test/java/org/infinispan/server/test/query/RemoteQueryIT.java +++ b/server/integration/testsuite/src/test/java/org/infinispan/server/test/query/RemoteQueryIT.java @@ -110,6 +110,16 @@ public void testProjections() throws Exception { assertEquals("Cat", list.get(0)[1]); } + @Test + public void testUninverting() throws Exception { + remoteCache.put(1, createUser1()); + remoteCache.put(2, createUser2()); + + QueryFactory qf = Search.getQueryFactory(remoteCache); + Query q = qf.create("from sample_bank_account.User u where u.accountIds = 777 order by u.id"); + assertEquals(0, q.list().size()); + } + @Test public void testIteratorWithQuery() throws Exception { remoteCache.put(1, createUser1());