Skip to content

Commit bf226fa

Browse files
author
Vladimir Kotal
authored
More rc6 fixes (#1689)
* the error messages set by prepareExec() should contain list of erroneous projects * fix permissions of /var/share/opengrok fixes #1688
1 parent 3ef7a06 commit bf226fa

File tree

3 files changed

+24
-8
lines changed

3 files changed

+24
-8
lines changed

platform/solaris/ips/create.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,9 @@ done
196196

197197
PKG pkgsend add dir mode=0755 owner=webservd group=webservd path=/var/opengrok
198198

199+
PKG pkgsend add dir mode=0755 owner=webservd group=webservd \
200+
path=/var/.migrate/opengrok
201+
199202
for dirname in data etc log src
200203
do
201204
#

src/org/opensolaris/opengrok/web/SearchHelper.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -262,17 +262,25 @@ public SearchHelper prepareExec(SortedSet<String> projects) {
262262
// Check list of project names first to make sure all of them
263263
// are valid and indexed.
264264
closeOnDestroy = false;
265-
Set <Project> projectSet = projects.stream().
266-
map(x -> Project.getByName(x)).collect(Collectors.toSet());
267-
if (projectSet.contains(null)) {
268-
errorMsg = "Project list contains invalid projects";
265+
Set<String> invalidProjects = projects.stream().
266+
filter(proj -> (Project.getByName(proj) == null)).
267+
collect(Collectors.toSet());
268+
if (invalidProjects.size() > 0) {
269+
errorMsg = "Project list contains invalid projects: " +
270+
String.join(", ", invalidProjects);
269271
return this;
270272
}
271-
if (projectSet.stream().
273+
Set<Project> notIndexedProjects =
274+
projects.stream().
275+
map(x -> Project.getByName(x)).
272276
filter(proj -> !proj.isIndexed()).
273-
collect(Collectors.toSet()).size() > 0) {
274-
errorMsg = "Some of the projects to be searched are not indexed yet.";
275-
return this;
277+
collect(Collectors.toSet());
278+
if (notIndexedProjects.size() > 0) {
279+
errorMsg = "Some of the projects to be searched are not indexed yet: " +
280+
String.join(", ", notIndexedProjects.stream().
281+
map(proj -> proj.getName()).
282+
collect(Collectors.toSet()));
283+
return this;
276284
}
277285

278286
// We use MultiReader even for single project. This should

test/org/opensolaris/opengrok/web/SearchHelperTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,13 +182,18 @@ public void testPrepareExecInvalidInput() {
182182
// Fake project addition to avoid reindex.
183183
Project project = new Project("c", "/c");
184184
env.getProjects().put("c", project);
185+
project = new Project("java", "/java");
186+
project.setIndexed(true);
187+
env.getProjects().put("java", project);
185188

186189
// Try to prepare search for project that is not yet indexed.
187190
projectNames.add("c");
191+
projectNames.add("java");
188192
searchHelper = this.getSearchHelper("foobar")
189193
.prepareExec(projectNames);
190194
Assert.assertNotNull(searchHelper.errorMsg);
191195
Assert.assertTrue(searchHelper.errorMsg.contains("not indexed"));
196+
Assert.assertFalse(searchHelper.errorMsg.contains("java"));
192197

193198
// Try to prepare search for list that contains non-existing project.
194199
projectNames.add("totally_nonexistent_project");

0 commit comments

Comments
 (0)