+1
+1 -----Original Message----- From: tamsler@gmail.com [mailto:tamsler@gmail.com] Sent: Thursday, November 08, 2012 4:23 PM To: constance.i.fuller@gmail.com; Jon Gorrono Cc: reply@codereview-hr.appspotmail.com Subject: GRBK-1322 (issue 6810101) Reviewers: constance.i.fuller, jpgorrono, Message: +1 Please review this at https://codereview.appspot.com/6810101/ Affected files: M server/src/java/org/sakaiproject/gradebook/gwt/server/ImportExportUtilityImpl.java Index: server/src/java/org/sakaiproject/gradebook/gwt/server/ImportExportUtilityImpl.java diff --git a/server/src/java/org/sakaiproject/gradebook/gwt/server/ImportExportUtilityImpl.java b/server/src/java/org/sakaiproject/gradebook/gwt/server/ImportExportUtilityImpl.java index f86d4dae99c5e77728fa008aff485ec38ff26251..8e9daf5d29069242da61e8e3922a7d84de91b33d 100644 --- a/server/src/java/org/sakaiproject/gradebook/gwt/server/ImportExportUtilityImpl.java +++ b/server/src/java/org/sakaiproject/gradebook/gwt/server/ImportExportUtilityImpl.java @@ -2117,19 +2117,21 @@ public class ImportExportUtilityImpl implements ImportExportUtility { boolean isFailure = false; // GRBK-668 : For a letter grade type gradebook, we convert all numeric grades into letter grades - String grade = rowData[colIdx]; - if(GradeType.LETTERS == gradeType && Util.isNumeric(grade)) { - BigDecimal numericGrade = new BigDecimal(grade); + // GRBK-1322 : spaces around letter grades cause failures ... should never be null, but just in case, null-check + rowData[colIdx] = null == rowData[colIdx] ? null : rowData[colIdx].trim(); + String originalGrade = rowData[colIdx]; + if(GradeType.LETTERS == gradeType && Util.isNumeric(originalGrade)) { + BigDecimal numericGrade = new BigDecimal(originalGrade); String letterGrade = gradeCalculations.convertPercentageToLetterGrade(numericGrade); rowData[colIdx] = letterGrade; learnerRow.set(id, rowData[colIdx]); - learnerRow.set(id + AppConstants.ACTUAL_SCORE_SUFFIX, grade); + learnerRow.set(id + AppConstants.ACTUAL_SCORE_SUFFIX, +originalGrade); learnerRow.set(Util.buildConvertedMessageKey(id), "Converted numeric to letter grade"); - learnerRow.set(Util.buildConvertedGradeKey(id), grade); - log.debug("#####: Converting numberic grade [" + grade + "] to a letter grade [" + letterGrade + "]"); + learnerRow.set(Util.buildConvertedGradeKey(id), originalGrade); + log.debug("#####: Converting numberic grade [" + originalGrade + "] +to a letter grade [" + letterGrade + "]"); return; } - else if(GradeType.LETTERS == gradeType && !Util.isNumeric(grade)) { + else if(GradeType.LETTERS == gradeType && !Util.isNumeric(originalGrade)) { if(!service.isValidLetterGrade(rowData[colIdx])) { ieInfo.setInvalidScore(true);