https://bz.apache.org/bugzilla/show_bug.cgi?id=68778
--- Comment #10 from Felix König <de.felix.koe...@gmail.com> --- Sure! First off, it's the same error as before. Here's a full reproducer: Given a minimal maven project with POI as a dependency, built as a jar-with-dependencies: ```xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.acme</groupId> <artifactId>poi-font-reproducer</artifactId> <version>1.0.0-SNAPSHOT</version> <properties> <maven.compiler.release>21</maven.compiler.release> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.3.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <id>create-my-bundle</id> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <archive> <manifest> <mainClass>Main</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </execution> </executions> </plugin> </plugins> </build> </project> ``` And a minimal main method that instantiates an SXSSFWorkbook: ```java import org.apache.poi.xssf.streaming.SXSSFWorkbook; public class Main { public static void main(String... args) { SXSSFWorkbook workbook = new SXSSFWorkbook(); workbook.createSheet(); System.out.println("Success!"); } } ``` Building with `mvn clean install` and running the resulting jar on my Windows machine works fine: ``` PS C:\rd\poi-font-reproducer> java -jar ./target/poi-font-reproducer-1.0.0-SNAPSHOT-jar-with-dependencies.jar Success! ``` Now let's put the program into a docker image that does not have any fonts installed using this Dockerfile: ``` FROM registry.access.redhat.com/ubi8/openjdk-21-runtime:1.19 COPY --chown=185 target/*.jar /deployments/ COPY target/poi-font-reproducer-1.0.0-SNAPSHOT-jar-with-dependencies.jar /app.jar ENTRYPOINT ["java","-jar","/app.jar"] ``` Then building with `mvn clean install && docker image build -t poi-font-reproducer:latest .` and running the docker image with `docker run poi-font-reproducer:latest` yields the following results: POI version 5.3.0: ``` $ docker run poi-font-reproducer:latest Exception in thread "main" java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1263) at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:221) at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:105) at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:696) at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:352) at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:309) at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:309) at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35) at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:55) at java.desktop/sun.font.PlatformFontInfo.createFontManager(PlatformFontInfo.java:37) at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:51) at java.desktop/java.awt.Font.getFont2D(Font.java:526) at java.desktop/java.awt.Font.canDisplayUpTo(Font.java:2278) at java.desktop/java.awt.font.TextLayout.singleFont(TextLayout.java:469) at java.desktop/java.awt.font.TextLayout.<init>(TextLayout.java:530) at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidthAsFloat(SheetUtil.java:353) at org.apache.poi.xssf.streaming.AutoSizeColumnTracker.<init>(AutoSizeColumnTracker.java:117) at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:106) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:698) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:692) at Main.main(Main.java:6) ``` POI version 5.2.5: ``` $ docker run poi-font-reproducer:latest Exception in thread "main" java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1263) at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:221) at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:105) at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:696) at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:352) at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:309) at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:309) at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35) at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:55) at java.desktop/sun.font.PlatformFontInfo.createFontManager(PlatformFontInfo.java:37) at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:51) at java.desktop/java.awt.Font.getFont2D(Font.java:526) at java.desktop/java.awt.Font.canDisplayUpTo(Font.java:2278) at java.desktop/java.awt.font.TextLayout.singleFont(TextLayout.java:469) at java.desktop/java.awt.font.TextLayout.<init>(TextLayout.java:530) at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidthAsFloat(SheetUtil.java:352) at org.apache.poi.xssf.streaming.AutoSizeColumnTracker.<init>(AutoSizeColumnTracker.java:117) at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:106) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:694) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:688) at Main.main(Main.java:6) ``` POI version 5.2.4: ``` $ docker run poi-font-reproducer:latest Exception in thread "main" java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1263) at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:221) at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:105) at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:696) at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:352) at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:309) at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:309) at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35) at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:55) at java.desktop/sun.font.PlatformFontInfo.createFontManager(PlatformFontInfo.java:37) at java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:51) at java.desktop/java.awt.Font.getFont2D(Font.java:526) at java.desktop/java.awt.Font.canDisplayUpTo(Font.java:2278) at java.desktop/java.awt.font.TextLayout.singleFont(TextLayout.java:469) at java.desktop/java.awt.font.TextLayout.<init>(TextLayout.java:530) at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:301) at org.apache.poi.xssf.streaming.AutoSizeColumnTracker.<init>(AutoSizeColumnTracker.java:117) at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:98) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:694) at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:688) at Main.main(Main.java:6) ``` POI version 5.2.3: ``` $ docker run poi-font-reproducer:latest Success! ``` -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@poi.apache.org For additional commands, e-mail: dev-h...@poi.apache.org