Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/QueryTest.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/QueryTest.java	(revision 713eb536e7cc92ef35a1990340e7a54142d4b692)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/QueryTest.java	(revision d29062d455de159071cc6afd4f0c090d3e0deeec)
@@ -64,4 +64,5 @@
 import org.slf4j.Logger;
 
+import dblearnstar.model.entities.Person;
 import dblearnstar.model.entities.Student;
 import dblearnstar.model.entities.StudentStartedTest;
@@ -76,4 +77,5 @@
 import dblearnstar.webapp.annotations.StudentPage;
 import dblearnstar.webapp.components.ModalBox;
+import dblearnstar.webapp.services.ActivityManager;
 import dblearnstar.webapp.services.EvaluationService;
 import dblearnstar.webapp.services.GenericService;
@@ -119,4 +121,6 @@
 	@Inject
 	private TestManager testManager;
+	@Inject
+	private ActivityManager activityManager;
 	@Inject
 	private EvaluationService evaluationService;
@@ -135,4 +139,6 @@
 	private Zone currentTimeZone;
 
+	private Student activeStudent;
+
 	@Property
 //	@Persist
@@ -202,5 +208,5 @@
 		toUpload = false;
 		toSubmitText = false;
-		recordActivity(ModelConstants.ActivityStillViewing, payload, issuer);
+		recordActivity(activeStudent.getPerson(), ModelConstants.ActivityStillViewing, payload, issuer);
 		if (request.isXHR()) {
 			ajaxResponseRenderer.addRender(currentTimeZone);
@@ -214,5 +220,5 @@
 		toUpload = false;
 		toSubmitText = false;
-		recordActivity(ModelConstants.ActivityExecSelection, query, issuer);
+		recordActivity(activeStudent.getPerson(), ModelConstants.ActivityExecSelection, query, issuer);
 		runQueryAndEval(true, query); // field is NotForEvaluation
 		if (request.isXHR()) {
@@ -227,5 +233,5 @@
 		toUpload = false;
 		toSubmitText = false;
-		recordActivity(ModelConstants.ActivityExecAll, query, issuer);
+		recordActivity(activeStudent.getPerson(), ModelConstants.ActivityExecAll, query, issuer);
 		runQueryAndEval(true, query); // field is NotForEvaluation
 		if (request.isXHR()) {
@@ -238,5 +244,5 @@
 	public void execEvalAll(@RequestParameter(value = "query") String query,
 			@RequestParameter(value = "issuer") String issuer) {
-		recordActivity(ModelConstants.ActivityEval, query, issuer);
+		recordActivity(activeStudent.getPerson(), ModelConstants.ActivityEval, query, issuer);
 	}
 
@@ -247,5 +253,5 @@
 		toUpload = false;
 		toSubmitText = false;
-		recordActivity(ModelConstants.ActivityPlan, query, issuer);
+		recordActivity(activeStudent.getPerson(), ModelConstants.ActivityPlan, query, issuer);
 		runQueryAndEval(true, "explain " + query); // field is
 													// NotForEvaluation
@@ -289,5 +295,4 @@
 				return ExamsAndTasksOverviewPage.class;
 			} else {
-				logger.debug("onActivate: {}", tti.getTaskInTestInstanceId());
 				taskInTestInstance = genericService.getByPK(TaskInTestInstance.class, tti.getTaskInTestInstanceId());
 				Student student = pm.getStudentsByPersonId(userInfo.getPersonId()).get(0);
@@ -308,5 +313,5 @@
 						filterNotForEvalution = false;
 					}
-					recordActivity(ModelConstants.ActivityViewTask, "", "onActivity");
+					recordActivity(activeStudent.getPerson(), ModelConstants.ActivityViewTask, "", "onActivity");
 					toUpload = false;
 					logger.debug("access allowed");
@@ -340,8 +345,7 @@
 
 	@CommitAfter
-	public void recordActivity(String type, String payload, String issuer) {
+	public void recordActivity(Person p, String type, String payload, String issuer) {
 		logger.debug("recordActivity RECEIVED: {},{},{}", type, issuer, payload);
-		Student student = pm.getStudentsByPersonId(userInfo.getPersonId()).get(0);
-		testManager.recordActivityInTask(student.getPerson(), taskInTestInstance, type, payload);
+		activityManager.recordActivityInTask(p, taskInTestInstance, type, payload);
 	}
 
@@ -458,5 +462,5 @@
 		toUpload = false;
 		toSubmitText = false;
-		recordActivity(ModelConstants.ActivityEval, queryString, "onSelectedFromEvaluate");
+		recordActivity(activeStudent.getPerson(), ModelConstants.ActivityEval, queryString, "onSelectedFromEvaluate");
 		runQueryAndEval(false, queryString); // field is NotForEvaluation
 	}
@@ -466,5 +470,5 @@
 		toUpload = true;
 		toSubmitText = false;
-		recordActivity(ModelConstants.ActivityTryUpload, "", "onSelectedFromUpload");
+		recordActivity(activeStudent.getPerson(), ModelConstants.ActivityTryUpload, "", "onSelectedFromUpload");
 		// doTheUpload();
 	}
@@ -474,5 +478,6 @@
 		toUpload = false;
 		toSubmitText = true;
-		recordActivity(ModelConstants.ActivitySubmitText, "", "onSelectedFromSubmitTextSolution");
+		recordActivity(activeStudent.getPerson(), ModelConstants.ActivitySubmitText, "",
+				"onSelectedFromSubmitTextSolution");
 	}
 
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/ActivityDao.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/ActivityDao.java	(revision 713eb536e7cc92ef35a1990340e7a54142d4b692)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/ActivityDao.java	(revision d29062d455de159071cc6afd4f0c090d3e0deeec)
@@ -34,3 +34,5 @@
 			TaskInTestInstance selectedTaskInTestInstance);
 
+	void recordActivityInTask(Person person, TaskInTestInstance taskInTestInstance, String type, String payload);
+
 }
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/ActivityDaoImpl.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/ActivityDaoImpl.java	(revision 713eb536e7cc92ef35a1990340e7a54142d4b692)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/ActivityDaoImpl.java	(revision d29062d455de159071cc6afd4f0c090d3e0deeec)
@@ -75,3 +75,15 @@
 	}
 
+	@Override
+	public void recordActivityInTask(Person person, TaskInTestInstance taskInTestInstance, String type,
+			String payload) {
+		ActivityInTask activityInTask = new ActivityInTask();
+		activityInTask.setPerson(person);
+		activityInTask.setTaskInTestInstance(taskInTestInstance);
+		activityInTask.setType(type);
+		activityInTask.setWhenOccured(new Date());
+		activityInTask.setPayload(payload);
+		getEntityManager().save(activityInTask);
+	}
+
 }
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/ActivityManager.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/ActivityManager.java	(revision 713eb536e7cc92ef35a1990340e7a54142d4b692)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/ActivityManager.java	(revision d29062d455de159071cc6afd4f0c090d3e0deeec)
@@ -34,3 +34,5 @@
 			TaskInTestInstance selectedTaskInTestInstance);
 
+	public void recordActivityInTask(Person person, TaskInTestInstance taskInTestInstance, String type, String payload);
+
 }
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/ActivityManagerImpl.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/ActivityManagerImpl.java	(revision 713eb536e7cc92ef35a1990340e7a54142d4b692)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/ActivityManagerImpl.java	(revision d29062d455de159071cc6afd4f0c090d3e0deeec)
@@ -21,4 +21,5 @@
 package dblearnstar.webapp.services;
 
+import java.util.Date;
 import java.util.List;
 
@@ -45,3 +46,9 @@
 	}
 
+	@Override
+	public void recordActivityInTask(Person person, TaskInTestInstance taskInTestInstance, String type,
+			String payload) {
+		activityDao.recordActivityInTask(person, taskInTestInstance, type, payload);
+	}
+
 }
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/TestManager.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/TestManager.java	(revision 713eb536e7cc92ef35a1990340e7a54142d4b692)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/TestManager.java	(revision d29062d455de159071cc6afd4f0c090d3e0deeec)
@@ -23,5 +23,4 @@
 import java.util.List;
 
-import dblearnstar.model.entities.Person;
 import dblearnstar.model.entities.SolutionAssessment;
 import dblearnstar.model.entities.Student;
@@ -82,6 +81,4 @@
 	public List<TaskInTestInstance> getTaskInTestInstancesByTestInstance(long testInstanceId);
 
-	public void recordActivityInTask(Person person, TaskInTestInstance taskInTestInstance, String type, String payload);
-
 	public List<Student> getStudentsWhoStartedTestInstance(TestInstance testInstance);
 
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/TestManagerImpl.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/TestManagerImpl.java	(revision 713eb536e7cc92ef35a1990340e7a54142d4b692)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/TestManagerImpl.java	(revision d29062d455de159071cc6afd4f0c090d3e0deeec)
@@ -401,16 +401,4 @@
 
 	@Override
-	public void recordActivityInTask(Person person, TaskInTestInstance taskInTestInstance, String type,
-			String payload) {
-		ActivityInTask activityInTask = new ActivityInTask();
-		activityInTask.setPerson(person);
-		activityInTask.setTaskInTestInstance(taskInTestInstance);
-		activityInTask.setType(type);
-		activityInTask.setWhenOccured(new Date());
-		activityInTask.setPayload(payload);
-		session.save(activityInTask);
-	}
-
-	@Override
 	public List<Student> getStudentsWhoStartedTestInstance(TestInstance testInstance) {
 		try {
