From 979c6ccaba4350eb4562af16d5e9fe2d38a7fd22 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Fri, 27 Jan 2012 11:37:04 +0100
Subject: [PATCH] OO-73: set the status of a SCO without status as not
 attempted

---
 .../java/org/olat/modules/scorm/OLATApiAdapter.java | 13 +++++++++----
 .../modules/scorm/server/beans/LMSDataHandler.java  |  3 +++
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/modules/scorm/OLATApiAdapter.java b/src/main/java/org/olat/modules/scorm/OLATApiAdapter.java
index b54821c86c8..5684eb5cdef 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 a367de0ae48..07086e85837 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
-- 
GitLab