diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/LuceneQueryBuilder.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/LuceneQueryBuilder.java index e8b1b1c2380156cab2ea484ae55d25dcd4b01dc1..795d9787f7101036c4701b0d20c721732ed5d4e7 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/LuceneQueryBuilder.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/search/LuceneQueryBuilder.java @@ -200,7 +200,8 @@ public class LuceneQueryBuilder { BooleanQuery resultQuery = new BooleanQuery(); - boolean mustNotOcuured = false; + boolean mustNotOccured = false; + boolean shouldOccured = false; for (int i = 0; i < fieldNames.size(); i++) { String fieldName = fieldNames.get(i); @@ -211,11 +212,14 @@ public class LuceneQueryBuilder Occur occur = occurs.get(i); if (Occur.MUST_NOT.equals(occur)) { - mustNotOcuured = true; + mustNotOccured = true; + } else if (Occur.SHOULD.equals(occur)) + { + shouldOccured = true; } resultQuery.add(query, occur); } - if (mustNotOcuured) + if (mustNotOccured && shouldOccured == false) { resultQuery.add(new BooleanClause(new MatchAllDocsQuery(), Occur.SHOULD)); } diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/ProjectSampleTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/ProjectSampleTest.java index 1a5059143f3317e73d55b390a8ee163a4daf8e98..1a9216eaa4656c4d4aa8f3dd08b150e8d4b5fb2c 100644 --- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/ProjectSampleTest.java +++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/api/v3/ProjectSampleTest.java @@ -327,7 +327,7 @@ public class ProjectSampleTest extends AbstractTest } @Test - public void testSearchForSamplesWithProject() + public void testSearchForSamplesWithProject() throws InterruptedException { SampleSearchCriteria searchCriteria = new SampleSearchCriteria(); searchCriteria.withProject(); @@ -338,7 +338,9 @@ public class ProjectSampleTest extends AbstractTest assertEquals(result.getObjects().get(0).getIdentifier().getIdentifier(), "/CISD/3VCP5"); assertEquals(result.getObjects().get(0).getProject().getIdentifier().getIdentifier(), "/CISD/NEMO"); - assertEquals(result.getTotalCount(), 1); + assertEquals(result.getObjects().get(1).getIdentifier().getIdentifier(), "/TEST-SPACE/FV-TEST"); + assertEquals(result.getObjects().get(1).getProject().getIdentifier().getIdentifier(), "/TEST-SPACE/TEST-PROJECT"); + assertEquals(result.getTotalCount(), 2); } @Test @@ -376,7 +378,7 @@ public class ProjectSampleTest extends AbstractTest public void testSearchForSamplesWithProjectWithPermId() { SampleSearchCriteria searchCriteria = new SampleSearchCriteria(); - searchCriteria.withProject().withPermId().thatContains("1738"); + searchCriteria.withProject().withPermId().thatContains("1738-103"); SampleFetchOptions fetchOptions = new SampleFetchOptions(); fetchOptions.withProject(); diff --git a/openbis/sourceTest/sql/postgresql/150/057=samples_all.tsv b/openbis/sourceTest/sql/postgresql/150/057=samples_all.tsv index 780cdd517e097317304eeb6563044038d4da36e2..fc365c95fbcb526974adbce1d35da16d3e52e7e5 100644 --- a/openbis/sourceTest/sql/postgresql/150/057=samples_all.tsv +++ b/openbis/sourceTest/sql/postgresql/150/057=samples_all.tsv @@ -968,7 +968,7 @@ 976 A02 6 2008-11-05 09:21:44.03+01 2 \N 1 974 2009-03-18 10:50:19.475958+01 \N 200811050944030-975 \N A02,974,1 \N 0 \N \N 980 3V-126 2 2008-11-05 09:21:45.092+01 2 \N 1 \N 2009-03-18 10:50:19.475958+01 \N 200811050945092-977 \N 3V-126,-1,1 \N 0 \N \N 981 DP 2 2008-11-05 09:21:45.092+01 2 \N \N \N 2009-03-18 10:50:19.475958+01 \N 200811050945092-978 \N DP,-1,-1 \N 0 \N \N -986 3VCP5 3 2008-11-05 09:21:46.559+01 2 \N 1 \N 2009-03-18 10:50:19.475958+01 3 200811050946559-979 \N 3VCP5,-1,1 \N 0 \N \N +986 3VCP5 3 2008-11-05 09:21:46.559+01 2 \N 1 \N 2009-03-18 10:50:19.475958+01 3 200811050946559-979 \N 3VCP5,-1,1 \N 0 \N 3 987 3VCP6 3 2008-11-05 09:21:46.559+01 2 \N 1 \N 2009-03-18 10:50:19.475958+01 4 200811050946559-980 \N 3VCP6,-1,1 \N 0 \N \N 989 3VCP8 3 2008-11-05 09:21:46.559+01 2 \N 1 \N 2009-03-18 10:50:19.475958+01 \N 200811050946559-982 \N 3VCP8,-1,1 \N 0 \N \N 982 3VCP1 3 2008-11-05 09:21:46.559+01 2 1 1 \N 2009-03-18 10:50:19.475958+01 2 200811050946559-983 \N 3VCP1,-1,1 \N 0 \N \N @@ -1022,7 +1022,7 @@ 1051 WELL-A01 6 2009-02-09 12:09:50.077973+01 2 \N 1 1050 2009-08-18 17:54:36.929+02 21 200902091250077-1051 \N WELL-A01,1050,1 \N 0 \N \N 1052 WELL-A02 6 2009-02-09 12:09:50.077973+01 2 \N 1 1050 2009-08-18 17:54:36.929+02 21 200902091250077-1052 \N WELL-A02,1050,1 \N 0 \N \N 1053 DYNA-TEST-1 7 2009-02-09 12:09:19.327518+01 2 \N 1 \N 2009-08-18 17:54:11.56+02 18 200902091219327-1053 \N DYNA-TEST-1,-1,1 \N 0 \N \N -1054 FV-TEST 3 2009-02-09 12:09:19.327518+01 2 \N 3 \N 2009-08-18 17:54:11.56+02 23 201206191219327-1054 6 FV-TEST,-1,3 \N 0 \N \N +1054 FV-TEST 3 2009-02-09 12:09:19.327518+01 2 \N 3 \N 2009-08-18 17:54:11.56+02 23 201206191219327-1054 6 FV-TEST,-1,3 \N 0 \N 5 1055 EV-TEST 10 2009-02-09 12:09:19.327518+01 2 \N 3 \N 2009-08-18 17:54:11.56+02 23 201206191219327-1055 \N EV-TEST,-1,3 \N 0 \N \N 1056 EV-INVALID 9 2009-02-09 12:09:19.327518+01 2 \N 3 \N 2009-08-18 17:54:11.56+02 23 201206191219327-1056 \N EV-INVALID,-1,3 \N 0 \N \N 1057 EV-NOT_INVALID 6 2009-02-09 12:09:19.327518+01 2 \N 3 \N 2009-08-18 17:54:11.56+02 23 201206191219327-1057 \N EV-NOT_INVALID,-1,3 \N 0 \N \N