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