diff --git a/src/main/java/org/olat/modules/scorm/server/servermodels/ScoDocument.java b/src/main/java/org/olat/modules/scorm/server/servermodels/ScoDocument.java index 4a3c88d2d96fe2b01211f9b273d440fda0388564..005866f83adce291ab2ede71147fd9659485718e 100644 --- a/src/main/java/org/olat/modules/scorm/server/servermodels/ScoDocument.java +++ b/src/main/java/org/olat/modules/scorm/server/servermodels/ScoDocument.java @@ -34,6 +34,8 @@ import java.util.Vector; import org.jdom.Document; import org.jdom.Element; import org.olat.core.logging.OLATRuntimeException; +import org.olat.core.logging.OLog; +import org.olat.core.logging.Tracing; import org.olat.modules.scorm.ISettingsHandler; import uk.ac.reload.jdom.XMLDocument; @@ -47,6 +49,8 @@ import uk.ac.reload.jdom.XMLDocument; * @author Paul Sharples */ public class ScoDocument extends XMLDocument { + private OLog log = Tracing.createLoggerFor(ScoDocument.class); + // var used to flag if the sco was "failed" private boolean isFailed = false; @@ -120,8 +124,10 @@ public class ScoDocument extends XMLDocument { // Make sure its there if (pathToNavFile.exists()) { try { - super.loadDocument(pathToNavFile); - + synchronized(ScoDocument.class) { + super.loadDocument(pathToNavFile); + } + Element root = getDocument().getRootElement(); // set these now, so they are easy to get to when we need them later. @@ -146,12 +152,29 @@ public class ScoDocument extends XMLDocument { isFailed = false; } } catch (Exception ex) { + log.info("Error loading: " + pathToNavFile + " :: " + this); throw new OLATRuntimeException(this.getClass(), "error: could not load sco model for " + scoID, ex); } } else { throw new OLATRuntimeException(this.getClass(), "error: could not find sco model for " + scoID, null); } } + + + + @Override + public void saveAsDocument(File file) throws IOException { + synchronized(ScoDocument.class) { + super.saveAsDocument(file); + } + } + + @Override + public void saveDocument() throws IOException { + synchronized(ScoDocument.class) { + super.saveDocument(); + } + } /** * getScoModel() - This method searches the CMI xml file that was created when