Skip to content
Snippets Groups Projects
Commit b212263c authored by srosse's avatar srosse
Browse files

OO-2609: show the error message after catching the exceptions

parent b8bbb99b
No related branches found
No related tags found
No related merge requests found
...@@ -96,10 +96,12 @@ public interface QTI21Service { ...@@ -96,10 +96,12 @@ public interface QTI21Service {
/** /**
* Load the assessmentTest based on the imsmanifest.xml found in the resource * Load the assessmentTest based on the imsmanifest.xml found in the resource
* directory. * directory. Return null if the imsmanifest.xml is not found.
* *
* @param resourceDirectory * @param resourceDirectory The directory where is the package
* @return * @param replace If true updates the cache
* @param debugInfo If true writes more infos
* @return The resolved assessment test or null if the imsmanifest.xml was not found.
*/ */
public ResolvedAssessmentTest loadAndResolveAssessmentTest(File resourceDirectory, boolean replace, boolean debugInfo); public ResolvedAssessmentTest loadAndResolveAssessmentTest(File resourceDirectory, boolean replace, boolean debugInfo);
......
...@@ -293,6 +293,9 @@ public class QTI21ServiceImpl implements QTI21Service, UserDataDeletable, Initia ...@@ -293,6 +293,9 @@ public class QTI21ServiceImpl implements QTI21Service, UserDataDeletable, Initia
@Override @Override
public ResolvedAssessmentTest loadAndResolveAssessmentTest(File resourceDirectory, boolean replace, boolean debugInfo) { public ResolvedAssessmentTest loadAndResolveAssessmentTest(File resourceDirectory, boolean replace, boolean debugInfo) {
URI assessmentObjectSystemId = createAssessmentObjectUri(resourceDirectory); URI assessmentObjectSystemId = createAssessmentObjectUri(resourceDirectory);
if(assessmentObjectSystemId == null) {
return null;
}
File resourceFile = new File(assessmentObjectSystemId); File resourceFile = new File(assessmentObjectSystemId);
if(replace) { if(replace) {
ResolvedAssessmentTest resolvedAssessmentTest = internalLoadAndResolveAssessmentTest(resourceDirectory, assessmentObjectSystemId); ResolvedAssessmentTest resolvedAssessmentTest = internalLoadAndResolveAssessmentTest(resourceDirectory, assessmentObjectSystemId);
...@@ -367,17 +370,22 @@ public class QTI21ServiceImpl implements QTI21Service, UserDataDeletable, Initia ...@@ -367,17 +370,22 @@ public class QTI21ServiceImpl implements QTI21Service, UserDataDeletable, Initia
@Override @Override
public URI createAssessmentObjectUri(final File resourceDirectory) { public URI createAssessmentObjectUri(final File resourceDirectory) {
final String key = resourceDirectory.getAbsolutePath(); final String key = resourceDirectory.getAbsolutePath();
return resourceToTestURI.computeIfAbsent(key, (directoryAbsolutPath) -> { try {
File manifestPath = new File(resourceDirectory, "imsmanifest.xml"); return resourceToTestURI.computeIfAbsent(key, (directoryAbsolutPath) -> {
QTI21ContentPackage cp = new QTI21ContentPackage(manifestPath.toPath()); File manifestPath = new File(resourceDirectory, "imsmanifest.xml");
try { QTI21ContentPackage cp = new QTI21ContentPackage(manifestPath.toPath());
Path testPath = cp.getTest(); try {
return testPath.toUri(); Path testPath = cp.getTest();
} catch (IOException e) { return testPath.toUri();
log.error("", e); } catch (IOException e) {
return null; log.error("", e);
} return null;
}); }
});
} catch (RuntimeException e) {
log.error("", e);
return null;
}
} }
@Override @Override
......
...@@ -241,7 +241,7 @@ public class AssessmentTestDisplayController extends BasicController implements ...@@ -241,7 +241,7 @@ public class AssessmentTestDisplayController extends BasicController implements
FileResourceManager frm = FileResourceManager.getInstance(); FileResourceManager frm = FileResourceManager.getInstance();
fUnzippedDirRoot = frm.unzipFileResource(testEntry.getOlatResource()); fUnzippedDirRoot = frm.unzipFileResource(testEntry.getOlatResource());
resolvedAssessmentTest = qtiService.loadAndResolveAssessmentTest(fUnzippedDirRoot, false, false); resolvedAssessmentTest = qtiService.loadAndResolveAssessmentTest(fUnzippedDirRoot, false, false);
if(resolvedAssessmentTest.getRootNodeLookup().extractIfSuccessful() == null) { if(resolvedAssessmentTest == null || resolvedAssessmentTest.getRootNodeLookup().extractIfSuccessful() == null) {
mainVC = createVelocityContainer("error"); mainVC = createVelocityContainer("error");
} else { } else {
currentRequestTimestamp = ureq.getRequestTimestamp(); currentRequestTimestamp = ureq.getRequestTimestamp();
...@@ -269,10 +269,6 @@ public class AssessmentTestDisplayController extends BasicController implements ...@@ -269,10 +269,6 @@ public class AssessmentTestDisplayController extends BasicController implements
} }
mainPanel = putInitialPanel(mainVC); mainPanel = putInitialPanel(mainVC);
OLATResourceable sessionOres = OresHelper
.createOLATResourceableInstance(AssessmentTestSession.class, candidateSession.getKey());
CoordinatorManager.getInstance().getCoordinator().getEventBus().registerFor(this, getIdentity(), sessionOres);
} }
private void immediateEndTestSession(UserRequest ureq) { private void immediateEndTestSession(UserRequest ureq) {
......
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