You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2020/10/25 07:21:34 UTC
svn commit: r1882825 - in /poi/trunk/src:
java/org/apache/poi/ss/util/DateParser.java
testcases/org/apache/poi/hssf/usermodel/TestBugs.java
testcases/org/apache/poi/ss/formula/functions/TestDateValue.java
Author: centic
Date: Sun Oct 25 07:21:34 2020
New Revision: 1882825
URL: http://svn.apache.org/viewvc?rev=1882825&view=rev
Log:
Prevent some unit-tests from failing when non-English local is used in Maven run
Also improve the error message when parsing the date fails.
Modified:
poi/trunk/src/java/org/apache/poi/ss/util/DateParser.java
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestDateValue.java
Modified: poi/trunk/src/java/org/apache/poi/ss/util/DateParser.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/util/DateParser.java?rev=1882825&r1=1882824&r2=1882825&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/util/DateParser.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/util/DateParser.java Sun Oct 25 07:21:34 2020
@@ -18,6 +18,7 @@
package org.apache.poi.ss.util;
import java.text.DateFormatSymbols;
+import java.time.DateTimeException;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Calendar;
@@ -83,7 +84,7 @@ public class DateParser {
/**
* Parses a date from a string.
- *
+ *
* @param strVal a string with a date pattern.
* @return a date parsed from argument.
* @throws EvaluationException exception upon parsing.
@@ -102,7 +103,11 @@ public class DateParser {
: LocalDate.now(LocaleUtil.getUserTimeZone().toZoneId()).getYear();
int month = parseMonth(groups.get(format.monthIndex));
int day = Integer.parseInt(groups.get(format.dayIndex));
- return LocalDate.of(year, month, day);
+ try {
+ return LocalDate.of(year, month, day);
+ } catch (DateTimeException e) {
+ throw new DateTimeException("Failed to parse date-string " + strVal);
+ }
}
}
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java?rev=1882825&r1=1882824&r2=1882825&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java Sun Oct 25 07:21:34 2020
@@ -2902,7 +2902,12 @@ public final class TestBugs extends Base
}
@Test
public void test63819() throws IOException {
- simpleTest("63819.xls");
+ LocaleUtil.setUserLocale(Locale.UK);
+ try {
+ simpleTest("63819.xls");
+ } finally {
+ LocaleUtil.resetUserLocale();
+ }
}
/**
@@ -2961,8 +2966,12 @@ public final class TestBugs extends Base
evals.add(wb.getCreationHelper().createFormulaEvaluator());
evals.addAll(SIMPLE_REFS.values());
- HSSFFormulaEvaluator.setupEnvironment( files.toArray(new String[0]), evals.toArray(new HSSFFormulaEvaluator[0]) );
- evals.get(0).evaluateAll();
+ try {
+ HSSFFormulaEvaluator.setupEnvironment(files.toArray(new String[0]), evals.toArray(new HSSFFormulaEvaluator[0]));
+ evals.get(0).evaluateAll();
+ } catch (RuntimeException e) {
+ throw new RuntimeException("While handling files " + files + " and evals " + evals, e);
+ }
}
Modified: poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestDateValue.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestDateValue.java?rev=1882825&r1=1882824&r2=1882825&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestDateValue.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestDateValue.java Sun Oct 25 07:21:34 2020
@@ -50,31 +50,36 @@ public final class TestDateValue {
@Test
public void testDateValue() {
- confirmDateValue(new StringEval("2020-02-01"), 43862);
- confirmDateValue(new StringEval("01-02-2020"), 43862);
- confirmDateValue(new StringEval("2020-FEB-01"), 43862);
- confirmDateValue(new StringEval("2020-Feb-01"), 43862);
- confirmDateValue(new StringEval("2020-FEBRUARY-01"), 43862);
- confirmDateValue(new StringEval("FEB-01"), 43862);
- confirmDateValue(new StringEval("2/1/2020"), 43862);
- confirmDateValue(new StringEval("2/1"), 43862);
- confirmDateValue(new StringEval("2020/2/1"), 43862);
- confirmDateValue(new StringEval("2020/FEB/1"), 43862);
- confirmDateValue(new StringEval("FEB/1/2020"), 43862);
- confirmDateValue(new StringEval("2020/02/01"), 43862);
-
- confirmDateValue(new StringEval(""));
- confirmDateValue(BlankEval.instance);
-
- confirmDateValueError(new StringEval("non-date text"));
-
- // // EXCEL
- confirmDateValue(new StringEval("8/22/2011"), 40777); // Serial number of a date entered as text.
- confirmDateValue(new StringEval("22-MAY-2011"), 40685); // Serial number of a date entered as text.
- confirmDateValue(new StringEval("2011/02/23"), 40597); // Serial number of a date entered as text.
-
- // LibreOffice compatibility
- confirmDateValue(new StringEval("1954-07-20"), 19925);
+ LocaleUtil.setUserLocale(Locale.ENGLISH);
+ try {
+ confirmDateValue(new StringEval("2020-02-01"), 43862);
+ confirmDateValue(new StringEval("01-02-2020"), 43862);
+ confirmDateValue(new StringEval("2020-FEB-01"), 43862);
+ confirmDateValue(new StringEval("2020-Feb-01"), 43862);
+ confirmDateValue(new StringEval("2020-FEBRUARY-01"), 43862);
+ confirmDateValue(new StringEval("FEB-01"), 43862);
+ confirmDateValue(new StringEval("2/1/2020"), 43862);
+ confirmDateValue(new StringEval("2/1"), 43862);
+ confirmDateValue(new StringEval("2020/2/1"), 43862);
+ confirmDateValue(new StringEval("2020/FEB/1"), 43862);
+ confirmDateValue(new StringEval("FEB/1/2020"), 43862);
+ confirmDateValue(new StringEval("2020/02/01"), 43862);
+
+ confirmDateValue(new StringEval(""));
+ confirmDateValue(BlankEval.instance);
+
+ confirmDateValueError(new StringEval("non-date text"));
+
+ // // EXCEL
+ confirmDateValue(new StringEval("8/22/2011"), 40777); // Serial number of a date entered as text.
+ confirmDateValue(new StringEval("22-MAY-2011"), 40685); // Serial number of a date entered as text.
+ confirmDateValue(new StringEval("2011/02/23"), 40597); // Serial number of a date entered as text.
+
+ // LibreOffice compatibility
+ confirmDateValue(new StringEval("1954-07-20"), 19925);
+ } finally {
+ LocaleUtil.setUserLocale(null);
+ }
}
private ValueEval invokeDateValue(ValueEval text) {
@@ -97,4 +102,4 @@ public final class TestDateValue {
assertEquals(ErrorEval.class, result.getClass());
assertEquals(ErrorEval.VALUE_INVALID.getErrorCode(), ((ErrorEval) result).getErrorCode());
}
-}
\ No newline at end of file
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org