Index: lams_common/src/java/org/lamsfoundation/lams/util/excel/ExcelRow.java =================================================================== diff -u -rf13b8a48b9a1cfaee56a654ba751a9736616b726 -r746369b4989a3ccae7c71d6a07bbb79ab4f47689 --- lams_common/src/java/org/lamsfoundation/lams/util/excel/ExcelRow.java (.../ExcelRow.java) (revision f13b8a48b9a1cfaee56a654ba751a9736616b726) +++ lams_common/src/java/org/lamsfoundation/lams/util/excel/ExcelRow.java (.../ExcelRow.java) (revision 746369b4989a3ccae7c71d6a07bbb79ab4f47689) @@ -30,11 +30,11 @@ return cell; } - public ExcelCell addPercentageCell(Object cellValue) { + public ExcelCell addPercentageCell(Double cellValue) { return addPercentageCell(cellValue, false, 0); } - public ExcelCell addPercentageCell(Object cellValue, Boolean isBold, int borderStyle) { + public ExcelCell addPercentageCell(Double cellValue, Boolean isBold, int borderStyle) { ExcelCell cell = new ExcelCell(cellValue); cell.setDataFormat(ExcelCell.CELL_FORMAT_PERCENTAGE); cells.add(cell); Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java =================================================================== diff -u -r9c45f8415c6c06df681a4e94205aa71d123b0bfa -r746369b4989a3ccae7c71d6a07bbb79ab4f47689 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 9c45f8415c6c06df681a4e94205aa71d123b0bfa) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 746369b4989a3ccae7c71d6a07bbb79ab4f47689) @@ -1131,7 +1131,7 @@ ExcelRow lessonAverageMark = summarySheet.initRow(); lessonAverageMark.addCell(getMessage("gradebook.export.average.lesson.mark"), true); if (isWeighted) { - lessonAverageMark.addPercentageCell(lessonAverageMarkValue / 100.0); + lessonAverageMark.addPercentageCell(lessonAverageMarkValue == null ? null : lessonAverageMarkValue / 100.0); } else { lessonAverageMark.addCell(lessonAverageMarkValue); } @@ -1193,11 +1193,11 @@ userDataRow.addCell(userRow.getLogin()); userDataRow.addCell(getProgressMessage(userRow)); userDataRow.addCell(userRow.getTimeTakenSeconds()); - Double mark = userRow.getMark(); + Double userMark = userRow.getMark(); if (isWeighted) { - userDataRow.addPercentageCell(mark == null ? 0 : mark / 100.0); + userDataRow.addPercentageCell(userMark == null ? null : userMark / 100.0); } else { - userDataRow.addCell(mark); + userDataRow.addCell(userMark); } } summarySheet.addEmptyRow(); @@ -1255,8 +1255,9 @@ } userDataRow.addCell(userActivityMark); } + Double userMark = userRow.getMark(); if (isWeighted) { - userDataRow.addPercentageCell(userRow.getMark() / 100.0); + userDataRow.addPercentageCell(userMark == null ? null : userMark / 100.0); } else { userDataRow.addCell(userRow.getMark()); } @@ -1569,7 +1570,7 @@ userDataRow.addCell(timeTakenSeconds); userDataRow.addCell(feedback); if (isWeightedLessonMap.get(lesson.getLessonId())) { - userDataRow.addPercentageCell(mark / 100.0); + userDataRow.addPercentageCell(mark == null ? null : mark / 100.0); } else { userDataRow.addCell(mark); } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r20aa6cbca9fc96d341080e6ad39f82593443f792 -r746369b4989a3ccae7c71d6a07bbb79ab4f47689 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 20aa6cbca9fc96d341080e6ad39f82593443f792) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 746369b4989a3ccae7c71d6a07bbb79ab4f47689) @@ -2011,18 +2011,21 @@ || question.getType() == AssessmentConstants.QUESTION_TYPE_SHORT_ANSWER || question.getType() == AssessmentConstants.QUESTION_TYPE_NUMERICAL) { for (AssessmentQuestionOption option : question.getOptions()) { - Double optionPercentage = (double) summaryOfAnswers.get(option.getUid()) / total; + Double optionPercentage = total == 0 || summaryOfAnswers.get(option.getUid()) == null ? 0 + : (double) summaryOfAnswers.get(option.getUid()) / total; ExcelCell optionCell = summaryTableRow.addPercentageCell(optionPercentage); if (option.getGrade() > 0) { optionCell.setColor(IndexedColors.GREEN); } } } else { - Double correctPercentage = (double) summaryOfAnswers.get(trueKey) / total; + Double correctPercentage = total == 0 || summaryOfAnswers.get(trueKey) == null ? 0 + : (double) summaryOfAnswers.get(trueKey) / total; ExcelCell correctCell = summaryTableRow.addPercentageCell(correctPercentage); - Double wrongPercentage = (double) summaryOfAnswers.get(falseKey) / total; + Double wrongPercentage = total == 0 || summaryOfAnswers.get(falseKey) == null ? 0 + : (double) summaryOfAnswers.get(falseKey) / total; ExcelCell wrongCell = summaryTableRow.addPercentageCell(wrongPercentage); if (question.getCorrectAnswer()) { @@ -2032,7 +2035,7 @@ } } - Double summaryNAPercentage = (double) summaryNACount / total; + Double summaryNAPercentage = total == 0 ? 0 : (double) summaryNACount / total; summaryTableRow.addPercentageCell(summaryNAPercentage); return summaryTableRow;