From 187875ca810ec4086b3f475704d7d69add829285 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Wed, 28 Sep 2016 09:37:09 +0200
Subject: [PATCH] OO-2214: catch NumberFormatException and show the error

---
 .../ims/qti/questionimport/TextInputController.java  | 12 +++++++++---
 .../questionimport/_i18n/LocalStrings_de.properties  |  2 +-
 .../questionimport/_i18n/LocalStrings_en.properties  |  3 ++-
 .../questionimport/_i18n/LocalStrings_fr.properties  |  1 +
 4 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/olat/ims/qti/questionimport/TextInputController.java b/src/main/java/org/olat/ims/qti/questionimport/TextInputController.java
index 1e81d7349e4..dd9afd87801 100644
--- a/src/main/java/org/olat/ims/qti/questionimport/TextInputController.java
+++ b/src/main/java/org/olat/ims/qti/questionimport/TextInputController.java
@@ -103,9 +103,15 @@ public class TextInputController extends StepFormBasicController {
 	private boolean convertInputField() {
 		boolean importDataError = false;
 
-		CSVToQuestionConverter converter = new CSVToQuestionConverter(getTranslator(), options);
-		converter.parse(inputElement.getValue());
-		parsedItems = converter.getItems();
+		try {
+			CSVToQuestionConverter converter = new CSVToQuestionConverter(getTranslator(), options);
+			converter.parse(inputElement.getValue());
+			parsedItems = converter.getItems();
+		} catch (NumberFormatException e) {
+			logError("", e);
+			inputElement.setErrorKey("error.format.number", new String[] { e.getMessage() } );
+			importDataError = true;
+		}
 
 		return importDataError;
 	}
diff --git a/src/main/java/org/olat/ims/qti/questionimport/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti/questionimport/_i18n/LocalStrings_de.properties
index 49c4bab0a35..61571acd8d7 100644
--- a/src/main/java/org/olat/ims/qti/questionimport/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/ims/qti/questionimport/_i18n/LocalStrings_de.properties
@@ -53,4 +53,4 @@ table.header.points=Punkte
 item.type.fib=$org.olat.ims.qti.editor\:item.type.fib
 item.type.mc=$org.olat.ims.qti.editor\:item.type.mc
 item.type.sc=$org.olat.ims.qti.editor\:item.type.sc
-
+error.format.number=Ung\u00FCltige Zahl. Es muss eine Zahl eingegeben werden. {0}
diff --git a/src/main/java/org/olat/ims/qti/questionimport/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/ims/qti/questionimport/_i18n/LocalStrings_en.properties
index 7d2919fe46d..9bb34185d27 100644
--- a/src/main/java/org/olat/ims/qti/questionimport/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/ims/qti/questionimport/_i18n/LocalStrings_en.properties
@@ -55,4 +55,5 @@ table.header.points=Points
 
 item.type.fib=$org.olat.ims.qti.editor\:item.type.fib
 item.type.mc=$org.olat.ims.qti.editor\:item.type.mc
-item.type.sc=$org.olat.ims.qti.editor\:item.type.sc
\ No newline at end of file
+item.type.sc=$org.olat.ims.qti.editor\:item.type.sc
+error.format.number=Illegal number. Please enter a number. {0}
\ No newline at end of file
diff --git a/src/main/java/org/olat/ims/qti/questionimport/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/ims/qti/questionimport/_i18n/LocalStrings_fr.properties
index cfe4a4996c4..217163575c4 100644
--- a/src/main/java/org/olat/ims/qti/questionimport/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/ims/qti/questionimport/_i18n/LocalStrings_fr.properties
@@ -51,3 +51,4 @@ table.header.type=Type de question
 wizard.import.input.description=Importer par copier-coller des questions que vous avez cr\u00E9\u00E9 sur la base du mod\u00E8le ci-dessous. S\u00E9lectionnez dans le fichier Excel les trois premi\u00E8res colonnes et copiez les dans le masque d'entr\u00E9e.
 wizard.import.input.title=Donn\u00E9es
 wizard.import.overview.title=Aper\u00E7u
+error.format.number=Nombre invalide. Il faut utiliser un nombre. {0}
\ No newline at end of file
-- 
GitLab