diff --git a/src/main/java/de/thm/arsnova/entities/Statistics.java b/src/main/java/de/thm/arsnova/entities/Statistics.java index d1faaa10c421ad9fba0e13181a73a365860cea98..c0bb4d71bc704d0cbd1081af287dfafb16054834 100644 --- a/src/main/java/de/thm/arsnova/entities/Statistics.java +++ b/src/main/java/de/thm/arsnova/entities/Statistics.java @@ -7,6 +7,7 @@ public class Statistics { private int openSessions; private int closedSessions; private int activeUsers; + private int loggedinUsers; public int getAnswers() { return answers; @@ -43,6 +44,13 @@ public class Statistics { this.activeUsers = activeUsers; } + public int getLoggedinUsers() { + return loggedinUsers; + } + public void setLoggedinUsers(final int loggedinUsers) { + this.loggedinUsers = loggedinUsers; + } + @Override public int hashCode() { return (this.getClass().getName() @@ -50,7 +58,9 @@ public class Statistics { + answers + closedSessions + openSessions - + questions).hashCode(); + + questions + + loggedinUsers + ).hashCode(); } @Override diff --git a/src/main/java/de/thm/arsnova/services/StatisticsService.java b/src/main/java/de/thm/arsnova/services/StatisticsService.java index 6f96824bf07c33077b802dc9f0a16dce40d0faec..f4727b9d27c96aacdfe320283e9a379f59057937 100644 --- a/src/main/java/de/thm/arsnova/services/StatisticsService.java +++ b/src/main/java/de/thm/arsnova/services/StatisticsService.java @@ -20,25 +20,29 @@ public class StatisticsService implements IStatisticsService { @Override public final int countActiveUsers() { - long since = System.currentTimeMillis() - DURATION_IN_MILLIS; + final long since = System.currentTimeMillis() - DURATION_IN_MILLIS; return databaseDao.countActiveUsers(since); } @Override public int countLoggedInUsers() { + if (sessionRegistry == null) { + return 0; + } return sessionRegistry.getAllPrincipals().size(); } @Override public final Statistics getStatistics() { - long since = System.currentTimeMillis() - DURATION_IN_MILLIS; + final long since = System.currentTimeMillis() - DURATION_IN_MILLIS; - Statistics statistics = new Statistics(); + final Statistics statistics = new Statistics(); statistics.setOpenSessions(databaseDao.countOpenSessions()); statistics.setClosedSessions(databaseDao.countClosedSessions()); statistics.setAnswers(databaseDao.countAnswers()); statistics.setQuestions(databaseDao.countQuestions()); statistics.setActiveUsers(databaseDao.countActiveUsers(since)); + statistics.setLoggedinUsers(countLoggedInUsers()); return statistics; } }