Skip to content
Snippets Groups Projects
Commit c29988bb authored by uhensler's avatar uhensler
Browse files

OO-4582: Fix LazyInitializationException

parent 2f493298
No related branches found
No related tags found
No related merge requests found
...@@ -21,6 +21,10 @@ package org.olat.course.nodes.st.assessment; ...@@ -21,6 +21,10 @@ package org.olat.course.nodes.st.assessment;
import java.util.Date; import java.util.Date;
import org.apache.logging.log4j.Logger;
import org.hibernate.LazyInitializationException;
import org.olat.core.CoreSpringFactory;
import org.olat.core.logging.Tracing;
import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNode;
import org.olat.course.nodes.STCourseNode; import org.olat.course.nodes.STCourseNode;
import org.olat.course.nodes.st.assessment.PassCounter.Counts; import org.olat.course.nodes.st.assessment.PassCounter.Counts;
...@@ -28,7 +32,10 @@ import org.olat.course.run.scoring.AssessmentEvaluation; ...@@ -28,7 +32,10 @@ import org.olat.course.run.scoring.AssessmentEvaluation;
import org.olat.course.run.scoring.RootPassedEvaluator; import org.olat.course.run.scoring.RootPassedEvaluator;
import org.olat.course.run.scoring.ScoreAccounting; import org.olat.course.run.scoring.ScoreAccounting;
import org.olat.modules.ModuleConfiguration; import org.olat.modules.ModuleConfiguration;
import org.olat.modules.card2brain.manager.Card2BrainManagerImpl;
import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryEntry;
import org.olat.repository.RepositoryService;
import org.olat.repository.model.RepositoryEntryLifecycle;
/** /**
* *
...@@ -37,6 +44,8 @@ import org.olat.repository.RepositoryEntry; ...@@ -37,6 +44,8 @@ import org.olat.repository.RepositoryEntry;
* *
*/ */
public class STRootPassedEvaluator implements RootPassedEvaluator { public class STRootPassedEvaluator implements RootPassedEvaluator {
private static final Logger log = Tracing.createLoggerFor(Card2BrainManagerImpl.class);
private final PassCounter passCounter; private final PassCounter passCounter;
...@@ -111,8 +120,9 @@ public class STRootPassedEvaluator implements RootPassedEvaluator { ...@@ -111,8 +120,9 @@ public class STRootPassedEvaluator implements RootPassedEvaluator {
} }
// Failed if course end date is over // Failed if course end date is over
if (courseEntry != null && courseEntry.getLifecycle() != null && courseEntry.getLifecycle().getValidTo() != null) { RepositoryEntryLifecycle lifecycle = getLifecycle(courseEntry);
Date validTo = courseEntry.getLifecycle().getValidTo(); if (lifecycle != null && lifecycle.getValidTo() != null) {
Date validTo = lifecycle.getValidTo();
if (validTo.before(new Date())) { if (validTo.before(new Date())) {
return Boolean.FALSE; return Boolean.FALSE;
} }
...@@ -139,5 +149,23 @@ public class STRootPassedEvaluator implements RootPassedEvaluator { ...@@ -139,5 +149,23 @@ public class STRootPassedEvaluator implements RootPassedEvaluator {
} }
return active; return active;
} }
private RepositoryEntryLifecycle getLifecycle(RepositoryEntry courseEntry) {
RepositoryEntryLifecycle lifecycle = null;
if (courseEntry != null) {
try {
lifecycle = courseEntry.getLifecycle();
} catch (LazyInitializationException lie) {
RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
RepositoryEntry repositoryEntry = repositoryService.loadByKey(courseEntry.getKey());
lifecycle = repositoryEntry.getLifecycle();
} catch (Exception e) {
log.error("", e);
}
}
return lifecycle;
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment