Index: lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java,v diff -u -r1.7.2.5 -r1.7.2.6 --- lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java 30 Mar 2017 18:29:47 -0000 1.7.2.5 +++ lams_tool_spreadsheet/src/java/org/lamsfoundation/lams/tool/spreadsheet/web/action/LearningAction.java 18 Apr 2017 02:59:49 -0000 1.7.2.6 @@ -176,8 +176,7 @@ } String code; - if (spreadsheet.isLearnerAllowedToSave() && !mode.isTeacher() - && (spreadsheetUser.getUserModifiedSpreadsheet() != null)) { + if (spreadsheet.isLearnerAllowedToSave() && (spreadsheetUser.getUserModifiedSpreadsheet() != null)) { code = spreadsheetUser.getUserModifiedSpreadsheet().getUserModifiedSpreadsheet(); } else { code = spreadsheet.getCode(); @@ -228,7 +227,10 @@ && !(spreadsheet.getLockWhenFinished() && userFinished)) { SpreadsheetUser spreadsheetUser = getCurrentUser(service, sessionId); - UserModifiedSpreadsheet userModifiedSpreadsheet = new UserModifiedSpreadsheet(); + UserModifiedSpreadsheet userModifiedSpreadsheet = spreadsheetUser.getUserModifiedSpreadsheet(); + if ( userModifiedSpreadsheet == null ) { + userModifiedSpreadsheet = new UserModifiedSpreadsheet(); + } String code = WebUtil.readStrParam(request, SpreadsheetConstants.ATTR_CODE); userModifiedSpreadsheet.setUserModifiedSpreadsheet(code); spreadsheetUser.setUserModifiedSpreadsheet(userModifiedSpreadsheet);