This is an automated email from the ASF dual-hosted git repository.
tballison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/main by this push:
new 17a9014060 TIKA-4920: temporarily skip some system default locale
testing (#3305)
17a9014060 is described below
commit 17a9014060f0ddbc60857e32f300448f25bc8411
Author: Tim Allison <[email protected]>
AuthorDate: Wed Oct 7 12:02:51 2026 -0400
TIKA-4920: temporarily skip some system default locale testing (#3305)
---
.../java/org/apache/tika/bundle/FelixBundleIT.java | 10 ++++++++
.../tika/parser/microsoft/ExcelParserTest.java | 27 +++++++++++++++++++++
.../parser/microsoft/PowerPointParserTest.java | 28 ++++++++++++++++++++++
.../parser/microsoft/ooxml/OOXMLParserTest.java | 3 +++
4 files changed, 68 insertions(+)
diff --git
a/tika-bundles/tika-bundle-standard/src/test/java/org/apache/tika/bundle/FelixBundleIT.java
b/tika-bundles/tika-bundle-standard/src/test/java/org/apache/tika/bundle/FelixBundleIT.java
index 87755178bb..0cefe8aa7a 100644
---
a/tika-bundles/tika-bundle-standard/src/test/java/org/apache/tika/bundle/FelixBundleIT.java
+++
b/tika-bundles/tika-bundle-standard/src/test/java/org/apache/tika/bundle/FelixBundleIT.java
@@ -16,12 +16,22 @@
*/
package org.apache.tika.bundle;
+import static org.junit.jupiter.api.Assumptions.assumeTrue;
+
+import java.text.DecimalFormatSymbols;
+import java.util.Locale;
+
import org.osgi.framework.launch.FrameworkFactory;
public class FelixBundleIT extends BundleIT {
@Override
protected FrameworkFactory frameworkFactory() {
+ // TODO: drop once Felix formats its JavaSE version with Locale.ROOT
(Util.java:168 in
+ // 7.0.5 builds "0.0.0.JavaSE_%03d" in the default locale;
Arabic-Indic digits make an
+ // invalid qualifier, the system bundle exports no java.* and nothing
resolves)
+
assumeTrue(DecimalFormatSymbols.getInstance(Locale.getDefault()).getZeroDigit()
== '0',
+ "Felix cannot start under a locale with non-ASCII digits");
return new org.apache.felix.framework.FrameworkFactory();
}
}
diff --git
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java
index eb4efec0f4..900b1f6397 100644
---
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java
+++
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ExcelParserTest.java
@@ -33,7 +33,11 @@ import org.apache.poi.hpsf.DocumentSummaryInformation;
import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.util.LocaleUtil;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
import org.xml.sax.ContentHandler;
import org.apache.tika.TikaTest;
@@ -55,7 +59,30 @@ import org.apache.tika.parser.PasswordProvider;
import org.apache.tika.parser.microsoft.ooxml.OOXMLParser;
import org.apache.tika.sax.BodyContentHandler;
+//pins the JVM default locale, which is global: no other class may run
alongside
+@Isolated
public class ExcelParserTest extends TikaTest {
+
+ //POI formats dates with the JVM default locale's digits whatever locale
it is given;
+ //pin the default until that is fixed upstream (see TIKA-4920)
+ private static Locale USER_LOCALE = null;
+
+ @BeforeAll
+ public static void setUpLocale() {
+ USER_LOCALE = LocaleUtil.getUserLocale();
+ }
+
+ @AfterAll
+ public static void tearDownLocale() {
+ LocaleUtil.setUserLocale(USER_LOCALE);
+ Locale.setDefault(USER_LOCALE);
+ }
+
+ @BeforeEach
+ public void pinLocale() {
+ LocaleUtil.setUserLocale(Locale.US);
+ Locale.setDefault(Locale.US);
+ }
@Test
@SuppressWarnings("deprecation") // Checks legacy Tika-1.0 style metadata
keys
public void testExcelParser() throws Exception {
diff --git
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/PowerPointParserTest.java
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/PowerPointParserTest.java
index 87e6c4b205..a6efbdc0a0 100644
---
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/PowerPointParserTest.java
+++
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/PowerPointParserTest.java
@@ -26,8 +26,13 @@ import java.util.Arrays;
import java.util.List;
import java.util.Locale;
+import org.apache.poi.util.LocaleUtil;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
import org.xml.sax.ContentHandler;
import org.apache.tika.TikaTest;
@@ -41,8 +46,31 @@ import org.apache.tika.metadata.TikaPagedText;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.sax.BodyContentHandler;
+//pins the JVM default locale, which is global: no other class may run
alongside
+@Isolated
public class PowerPointParserTest extends TikaTest {
+ //POI formats dates with the JVM default locale's digits whatever locale
it is given;
+ //pin the default until that is fixed upstream (see TIKA-4920)
+ private static Locale USER_LOCALE = null;
+
+ @BeforeAll
+ public static void setUpLocale() {
+ USER_LOCALE = LocaleUtil.getUserLocale();
+ }
+
+ @AfterAll
+ public static void tearDownLocale() {
+ LocaleUtil.setUserLocale(USER_LOCALE);
+ Locale.setDefault(USER_LOCALE);
+ }
+
+ @BeforeEach
+ public void pinLocale() {
+ LocaleUtil.setUserLocale(Locale.US);
+ Locale.setDefault(Locale.US);
+ }
+
@Test
public void testPowerPointParser() throws Exception {
try (TikaInputStream tis =
getResourceAsStream("/test-documents/testPPT.ppt")) {
diff --git
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java
index da80390b92..49fe5462bb 100644
---
a/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java
+++
b/tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/test/java/org/apache/tika/parser/microsoft/ooxml/OOXMLParserTest.java
@@ -36,6 +36,7 @@ import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.parallel.Isolated;
import org.apache.tika.MultiThreadedTikaTest;
import org.apache.tika.config.loader.TikaLoader;
@@ -57,6 +58,8 @@ import org.apache.tika.parser.microsoft.OfficeParser;
import org.apache.tika.parser.microsoft.OfficeParserConfig;
import org.apache.tika.parser.microsoft.OfficeParserTest;
+//pins the JVM default locale, which is global: no other class may run
alongside
+@Isolated
public class OOXMLParserTest extends MultiThreadedTikaTest {
private static Locale USER_LOCALE = null;