From 62fa5edc1939d9fef8e7c315921b256b9e6cf515 Mon Sep 17 00:00:00 2001
From: Christoph Thelen <christoph.thelen@mni.thm.de>
Date: Tue, 16 Jul 2013 13:41:07 +0200
Subject: [PATCH] Handle empty responses properly

---
 src/main/java/de/thm/arsnova/dao/CouchDBDao.java           | 4 ++--
 src/main/java/de/thm/arsnova/services/QuestionService.java | 6 +++++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index 2008b27eb..ef39d4e71 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -1007,13 +1007,13 @@ public class CouchDBDao implements IDatabaseDao {
 	@Override
 	public List<Answer> getFreetextAnswers(String questionId) {
 		try {
+			List<Answer> answers = new ArrayList<Answer>();
 			View view = new View("skill_question/freetext_answers_full");
 			view.setKey(URLEncoder.encode("\"" + questionId + "\"", "UTF-8"));
 			ViewResults results = this.getDatabase().view(view);
 			if (results.getResults().isEmpty()) {
-				throw new NotFoundException();
+				return answers;
 			}
-			List<Answer> answers = new ArrayList<Answer>();
 			for (Document d : results.getResults()) {
 				Answer a = (Answer) JSONObject.toBean(d.getJSONObject().getJSONObject("value"), Answer.class);
 				a.setQuestionId(questionId);
diff --git a/src/main/java/de/thm/arsnova/services/QuestionService.java b/src/main/java/de/thm/arsnova/services/QuestionService.java
index d41a9173f..89601b04f 100644
--- a/src/main/java/de/thm/arsnova/services/QuestionService.java
+++ b/src/main/java/de/thm/arsnova/services/QuestionService.java
@@ -229,7 +229,11 @@ public class QuestionService implements IQuestionService {
 	@Override
 	@Authenticated
 	public List<Answer> getFreetextAnswers(String questionId) {
-		return databaseDao.getFreetextAnswers(questionId);
+		List<Answer> answers = databaseDao.getFreetextAnswers(questionId);
+		if (answers == null) {
+			throw new NotFoundException();
+		}
+		return answers;
 	}
 
 	@Override
-- 
GitLab