Skip to content

Commit b43b157

Browse files
committed
use Optional to handle non-existent project
1 parent 17c51b0 commit b43b157

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

opengrok-web/src/main/java/org/opengrok/web/api/v1/controller/ProjectsController.java

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,8 @@ private List<RepositoryInfo> getRepositoriesInDir(final File projDir) {
162162
}
163163

164164
private Project disableProject(String projectName) {
165-
Project project = env.getProjects().get(projectName);
166-
if (project == null) {
167-
throw new IllegalStateException("cannot get project \"" + projectName + "\"");
168-
}
165+
Project project = Optional.ofNullable(env.getProjects().get(projectName)).
166+
orElseThrow(() -> new NotFoundException("cannot get project \"" + projectName + "\""));
169167

170168
// Remove the project from searches so no one can trip over incomplete index data.
171169
project.setIndexed(false);
@@ -287,12 +285,9 @@ public Response deleteAnnotationCache(@Context HttpServletRequest request,
287285
private Project getProjectFromName(String projectNameParam) {
288286
// Avoid classification as a taint bug.
289287
final String projectName = Laundromat.launderInput(projectNameParam);
290-
Project project = env.getProjects().get(projectName);
291-
if (project == null) {
292-
throw new IllegalStateException("cannot get project \"" + projectName + "\"");
293-
}
294288

295-
return project;
289+
return Optional.ofNullable(env.getProjects().get(projectName)).
290+
orElseThrow(() -> new NotFoundException("cannot get project \"" + projectName + "\""));
296291
}
297292

298293
@DELETE
@@ -339,11 +334,8 @@ public Response markIndexed(@Context HttpServletRequest request, @PathParam("pro
339334
// Avoid classification as a taint bug.
340335
final String projectName = Laundromat.launderInput(projectNameParam);
341336

342-
Project project = env.getProjects().get(projectName);
343-
if (project == null) {
344-
LOGGER.log(Level.WARNING, "cannot find project ''{0}'' to mark as indexed", projectName);
345-
throw new NotFoundException(String.format("project '%s' does not exist", projectName));
346-
}
337+
Project project = Optional.ofNullable(env.getProjects().get(projectName)).
338+
orElseThrow(() -> new NotFoundException("cannot get project \"" + projectName + "\""));
347339

348340
project.setIndexed(true);
349341

@@ -411,16 +403,14 @@ public void set(
411403
@GET
412404
@Path("/{project}/property/{field}")
413405
@Produces(MediaType.APPLICATION_JSON)
414-
public Object get(@PathParam("project") String projectName, @PathParam("field") String field)
406+
public Object get(@PathParam("project") String projectNameParam, @PathParam("field") String field)
415407
throws IOException {
416408
// Avoid classification as a taint bug.
417-
projectName = Laundromat.launderInput(projectName);
409+
final String projectName = Laundromat.launderInput(projectNameParam);
418410
field = Laundromat.launderInput(field);
419411

420-
Project project = env.getProjects().get(projectName);
421-
if (project == null) {
422-
throw new NotFoundException(String.format("cannot find project '%s' to get a property", projectName));
423-
}
412+
Project project = Optional.ofNullable(env.getProjects().get(projectName)).
413+
orElseThrow(() -> new NotFoundException("cannot get project \"" + projectName + "\""));
424414
return ClassUtil.getFieldValue(project, field);
425415
}
426416

0 commit comments

Comments
 (0)