From 9e43621ef9ed4876b42dc86a168649a2d095fd71 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Mon, 11 Jan 2021 18:16:51 +0100
Subject: [PATCH] OO-5201: prevent concurrently ending a test by user and time
 limit

---
 .../olat/ims/qti21/ui/AssessmentTestDisplayController.java | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
index fb1293c7ae8..e0d36e83ee5 100644
--- a/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentTestDisplayController.java
@@ -1468,7 +1468,12 @@ public class AssessmentTestDisplayController extends BasicController implements
 
 	//public CandidateSession endCurrentTestPart(final CandidateSessionContext candidateSessionContext)
 	private void processEndTestPart(UserRequest ureq) {
-		 /* Update state */
+		if(testSessionController.getCurrentTestPart() == null && testSessionController.getTestSessionState().isEnded()) {
+        	// try to end an already ended test
+			return;
+        }
+		
+		/* Update state */
         final Date requestTimestamp = ureq.getRequestTimestamp();
         testSessionController.endCurrentTestPart(requestTimestamp);
         
-- 
GitLab