From 2bd59cb56e124f9bf2540de672435de7dad33ea3 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 11 Apr 2017 08:46:41 +0200
Subject: [PATCH] OO-2684: enhance the match method of the FIB builder to allow
 ,

---
 .../FIBAssessmentItemBuilder.java             | 26 ++++++++++++++-----
 1 file changed, 20 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/olat/ims/qti21/model/xml/interactions/FIBAssessmentItemBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/interactions/FIBAssessmentItemBuilder.java
index ecb586d18e9..2ebed1ecf27 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/interactions/FIBAssessmentItemBuilder.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/interactions/FIBAssessmentItemBuilder.java
@@ -955,18 +955,32 @@ public class FIBAssessmentItemBuilder extends AssessmentItemBuilder {
 			if(StringHelper.containsNonWhitespace(response)) {
 				try {
 					double firstNumber = Double.parseDouble(response);
-					double lTolerance = lowerTolerance == null ? 0.0d : lowerTolerance.doubleValue();
-					double uTolerance = upperTolerance == null ? 0.0d : upperTolerance.doubleValue();
-					return toleranceMode.isEqual(firstNumber, solution,
-							lTolerance, uTolerance,
-							true, true);
+					return match(firstNumber);
+				} catch(NumberFormatException nfe) {
+					if(response.indexOf(',') >= 0) {//allow , instead of .
+	                    try {
+							double firstNumber = Double.parseDouble(response.replace(',', '.'));
+							return match(firstNumber);
+						} catch (final NumberFormatException e1) {
+							//format can happen
+						} catch (Exception e) {
+							log.error("", e);
+						}
+	            	}
 				} catch (Exception e) {
 					log.error("", e);
-					return false;
 				}
 			}
 			return false;
 		}
+		
+		private boolean match(double firstNumber) {
+			double lTolerance = lowerTolerance == null ? 0.0d : lowerTolerance.doubleValue();
+			double uTolerance = upperTolerance == null ? 0.0d : upperTolerance.doubleValue();
+			return toleranceMode.isEqual(firstNumber, solution,
+					lTolerance, uTolerance,
+					true, true);
+		}
 	}
 	
 	public static class TextEntry extends AbstractEntry {
-- 
GitLab