Fixes NPE in HgConfigPackageResource for non-existing packages.

This commit is contained in:
Johannes Schnatterer
2018-08-07 10:44:18 +02:00
parent 869821f6db
commit adde70f090
2 changed files with 13 additions and 9 deletions

View File

@@ -80,13 +80,16 @@ public class HgConfigPackageResource {
HgPackage pkg = pkgReader.getPackage(pkgId);
// First path param cannot be null (leaving it results in 405)
if (pkg != null) {
if (HgInstallerFactory.createInstaller()
.installPackage(client, handler, SCMContext.getContext().getBaseDirectory(), pkg)) {
response = Response.noContent().build();
} else {
response = Response.status(Response.Status.INTERNAL_SERVER_ERROR).build();
}
} else {
response = Response.status(Response.Status.NOT_FOUND).build();
}
return response;
}

View File

@@ -152,10 +152,11 @@ public class HgConfigPackageResourceTest {
@Test
@SubjectAware(username = "writeOnly")
public void shouldHandleMissingPackageId() throws Exception {
MockHttpResponse response = put(null);
assertEquals(HttpServletResponse.SC_METHOD_NOT_ALLOWED, response.getStatus());
public void shouldHandlePackagesThatAreNotFound() throws Exception {
String packageId = "this-package-does-not-ex";
when(hgPackageReader.getPackage(packageId)).thenReturn(null);
MockHttpResponse response = put(packageId);
assertEquals(HttpServletResponse.SC_NOT_FOUND, response.getStatus());
}
@Test