https://bz.apache.org/bugzilla/show_bug.cgi?id=66230
Bug ID: 66230
Summary: SheetUtil.getDefaultCharWidth() should handle AWT NPE
instead of failing
Product: POI
Version: unspecified
Hardware: PC
OS: Linux
Status: NEW
Severity: major
Priority: P2
Component: SS Common
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Apache POI (e.g. SheetUtil.getDefaultCharWidth()) fails with a NPE when using
auto-sized columns and some system packages (e.g. fontconfig) are not installed
on the system.
Instead of failing, POI should rather catch the NPE and disable column
auto-sizing like it is doing in other scenarios/exception types.
Stacktrace (from poi 3.17):
java.lang.NullPointerException
at
java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
at
java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
at
java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
at
java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)
at
java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:367)
at java.base/java.security.AccessController.doPrivileged(Native
Method)
at
java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:312)
at
java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at
java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at
java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:84)
at java.base/java.security.AccessController.doPrivileged(Native
Method)
at
java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
at java.desktop/java.awt.Font.getFont2D(Font.java:497)
at java.desktop/java.awt.Font.canDisplayUpTo(Font.java:2246)
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:275)
at
org.apache.poi.xssf.streaming.AutoSizeColumnTracker.<init>(AutoSizeColumnTracker.java:117)
at
org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:82)
at
org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:658)
at
org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:679)
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]