From 7a098782bfc8b9215663efdcfeb231d70d0d5609 Mon Sep 17 00:00:00 2001 From: Julian Hochstetter <julian.hochstetter@mni.thm.de> Date: Mon, 3 Dec 2012 10:04:38 +0100 Subject: [PATCH] check if logged_in view has visitedSessions before use them, which caused in past server errors --- .../java/de/thm/arsnova/dao/CouchDBDao.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 5c2652aa..d73b11bb 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -616,9 +616,12 @@ public class CouchDBDao implements IDatabaseDao { if (results.getJSONArray("rows").optJSONObject(0) != null) { JSONObject json = results.getJSONArray("rows").optJSONObject(0).optJSONObject("value"); loggedIn = (LoggedIn) JSONObject.toBean(json, LoggedIn.class); - Collection<VisitedSession> visitedSessions = JSONArray.toCollection( - json.getJSONArray("visitedSessions"), VisitedSession.class); - loggedIn.setVisitedSessions(new ArrayList<VisitedSession>(visitedSessions)); + JSONArray vs = json.optJSONArray("visitedSessions"); + if(vs != null) { + Collection<VisitedSession> visitedSessions = JSONArray.toCollection(vs, + VisitedSession.class); + loggedIn.setVisitedSessions(new ArrayList<VisitedSession>(visitedSessions)); + } } loggedIn.setUser(user.getUsername()); @@ -640,9 +643,12 @@ public class CouchDBDao implements IDatabaseDao { this.getDatabase().saveDocument(doc); LoggedIn l = (LoggedIn) JSONObject.toBean(doc.getJSONObject(), LoggedIn.class); - Collection<VisitedSession> visitedSessions = JSONArray.toCollection( - doc.getJSONObject().getJSONArray("visitedSessions"), VisitedSession.class); - l.setVisitedSessions(new ArrayList<VisitedSession>(visitedSessions)); + JSONArray vs = doc.getJSONObject().optJSONArray("visitedSessions"); + if(vs != null) { + Collection<VisitedSession> visitedSessions = JSONArray.toCollection(vs, + VisitedSession.class); + l.setVisitedSessions(new ArrayList<VisitedSession>(visitedSessions)); + } return l; } catch (UnsupportedEncodingException e) { return null; -- GitLab