summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/source/ws/HashAction.java10
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java10
2 files changed, 17 insertions, 3 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/source/ws/HashAction.java b/server/sonar-server/src/main/java/org/sonar/server/source/ws/HashAction.java
index c78e8ed7ca5..7a780ecbad6 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/source/ws/HashAction.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/source/ws/HashAction.java
@@ -68,9 +68,13 @@ public class HashAction implements RequestHandler {
throw new NotFoundException("Unable to find component with key " + componentKey);
}
String lineHashes = fileSourceDao.selectLineHashes(component.uuid(), session);
- OutputStream output = response.stream().setMediaType("text/plain").output();
- output.write(lineHashes.getBytes(Charsets.UTF_8));
- output.close();
+ if (lineHashes == null) {
+ response.noContent();
+ } else {
+ OutputStream output = response.stream().setMediaType("text/plain").output();
+ output.write(lineHashes.getBytes(Charsets.UTF_8));
+ output.close();
+ }
} finally {
session.close();
}
diff --git a/server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java
index 879893d3706..20be6fbedda 100644
--- a/server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java
+++ b/server/sonar-server/src/test/java/org/sonar/server/source/ws/HashActionTest.java
@@ -83,6 +83,16 @@ public class HashActionTest {
}
@Test
+ public void hashes_empty_if_no_source() throws Exception {
+ String componentKey = "project:src/File.xoo";
+ String uuid = "polop";
+ ComponentDto component = new ComponentDto().setUuid(uuid);
+ when(componentDao.getByKey(any(DbSession.class), eq(componentKey))).thenReturn(component);
+ WsTester.TestRequest request = tester.newGetRequest("api/sources", "hash").setParam("key", componentKey);
+ request.execute().assertNoContent();
+ }
+
+ @Test
public void fail_to_show_hashes_if_file_does_not_exist() throws Exception {
String componentKey = "project:src/File.xoo";
try {