diff --git a/src/main/java/org/olat/modules/scorm/OLATApiAdapter.java b/src/main/java/org/olat/modules/scorm/OLATApiAdapter.java index b54821c86c88201ec0e5a53b4a0fb2a8a57e0a26..5684eb5cdef71e827312020f9cfc05ecc45939fc 100644 --- a/src/main/java/org/olat/modules/scorm/OLATApiAdapter.java +++ b/src/main/java/org/olat/modules/scorm/OLATApiAdapter.java @@ -308,10 +308,15 @@ public class OLATApiAdapter extends LogDelegator implements ch.ethz.pfplms.scorm // </OLATCE-289> } - lmsDataBean.setDataAsMap(cmiData); - odatahandler = new LMSDataHandler(scormManager, lmsDataBean, scormSettingsHandler); - odatahandler.updateCMIData(olatScoId); - return "true"; + try { + lmsDataBean.setDataAsMap(cmiData); + odatahandler = new LMSDataHandler(scormManager, lmsDataBean, scormSettingsHandler); + odatahandler.updateCMIData(olatScoId); + return "true"; + } catch (Exception e) { + logError("Error during commit", e); + return "false"; + } } /** diff --git a/src/main/java/org/olat/modules/scorm/server/beans/LMSDataHandler.java b/src/main/java/org/olat/modules/scorm/server/beans/LMSDataHandler.java index a367de0ae4857964c67fac43d51d08b50b734f00..07086e85837bfadded488976e0e2405540e44084 100644 --- a/src/main/java/org/olat/modules/scorm/server/beans/LMSDataHandler.java +++ b/src/main/java/org/olat/modules/scorm/server/beans/LMSDataHandler.java @@ -118,6 +118,9 @@ public class LMSDataHandler { // next update the model with the results from browser. // updateClientModel(itemId, cmiStrings); // update prerequisite table + if(status == null) { + status = SequencerModel.ITEM_NOT_ATTEMPTED; + } addtoPrereqTable(itemId, status, true); // If an LMSFinish() was made by the sco then we do not need to update // anything client side