This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-validator.git
The following commit(s) were added to refs/heads/master by this push: new dc618fb systemPropertyVariables set too late in Surefire dc618fb is described below commit dc618fb1d11f1b14a1ccd249ce599be0dc98618b Author: Sebb <s...@apache.org> AuthorDate: Mon Aug 3 12:23:34 2020 +0100 systemPropertyVariables set too late in Surefire --- pom.xml | 9 ++++++--- .../commons/validator/routines/DateValidatorTest.java | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 381303e..9b2d233 100644 --- a/pom.xml +++ b/pom.xml @@ -314,9 +314,12 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> - <systemPropertyVariables> - <java.locale.providers>COMPAT,CLDR</java.locale.providers> - </systemPropertyVariables> + <!-- + systemPropertyVariables are set too late in Surefire + versions after 2.21.0 and before 3.0-M4 (but only on Windows!) + Use the command-line instead to ensure the property is set early enough + --> + <argLine>-Djava.locale.providers=COMPAT,SPI</argLine> </configuration> </plugin> </plugins> diff --git a/src/test/java/org/apache/commons/validator/routines/DateValidatorTest.java b/src/test/java/org/apache/commons/validator/routines/DateValidatorTest.java index a17f6b0..43de6b2 100644 --- a/src/test/java/org/apache/commons/validator/routines/DateValidatorTest.java +++ b/src/test/java/org/apache/commons/validator/routines/DateValidatorTest.java @@ -16,6 +16,7 @@ */ package org.apache.commons.validator.routines; +import java.text.DateFormat; import java.util.Date; import java.util.Locale; import java.util.TimeZone; @@ -49,6 +50,21 @@ public class DateValidatorTest extends AbstractCalendarValidatorTest { } /** + * Check that locale providers are set up correctly + * If not, the parse will fail + */ + public void testLocaleProviders() throws Exception { + String localeProviders = System.getProperty("java.locale.providers"); + if (localeProviders != null) { // may be null before Java 9 + assertTrue("java.locale.providers must start with COMPAT", localeProviders.startsWith("COMPAT")); + } + String txt = "3/20/15 10:59:00 PM"; // This relies on the locale format prior to Java 9 to parse correctly + DateFormat dateformat= DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM, Locale.US); + dateformat.setTimeZone(TimeZone.getTimeZone("GMT")); + Date date = dateformat.parse(txt); + assertNotNull(date); + } + /** * Test DateValidator validate Methods */ public void testDateValidatorMethods() {