https://bz.apache.org/bugzilla/show_bug.cgi?id=69571
Bug ID: 69571
Summary: InvocationTargetException error when trying to create
100th row in SXSSFSheet with
trackAllColumnsForAutoSizing.
Product: POI
Version: unspecified
Hardware: Other
OS: other
Status: NEW
Severity: critical
Priority: P2
Component: SXSSF
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
I have an InvocationTargetException happening under a quite specific situation.
It happens when trying to create the 100th row on an SXSSFSheet with
trackAllColumnsForAutoSizing() applied and running in the IBM iSeries (OS
version 7.4) running java 11 64 bits. I tried it running it in Windows and it
works fine. I tried removing the trackAllColumnsForAutoSizing() call and it
works fine too. Also, it works fine in java 8 32 bits.
I'm using POI version 5.4.0, but the drop down version selection doesn't have
that option yet so I chose unspecified.
Here's my code and respective error. The iSeries is a bit limited in java error
reporting so apologies in advance.
================
package test;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xssf.streaming.SXSSFCell;
import org.apache.poi.xssf.streaming.SXSSFRow;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
public class TestExcel {
private static final String filepath = "test/TestExcel.xlsx";
public static void main(String[] args) {
try {
SXSSFWorkbook wb = new SXSSFWorkbook();
SXSSFSheet sheet1 = wb.createSheet("Sheet1");
sheet1.trackAllColumnsForAutoSizing();
for (int i = 0; i < 200; i++) {
System.out.println(i);
SXSSFRow row = sheet1.createRow(i);
SXSSFCell cell = row.createCell(0);
cell.setCellValue("Test!");
}
wb.write(new FileOutputStream(filepath));
wb.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
================
Exception in thread "main" java.lang.InternalError:
java.lang.reflect.InvocationTargetException
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:86)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:690)
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:2250)
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.getCellWidth(SheetUtil.java:262)
at org.apache.poi.ss.util.SheetUtil.getCellWidth(SheetUtil.java:223)
at org.apache.poi.ss.util.SheetUtil.getCellWidth(SheetUtil.java:140)
at
org.apache.poi.xssf.streaming.AutoSizeColumnTracker.updateColumnWidth(AutoSizeColumnTracker.java:395)
at
org.apache.poi.xssf.streaming.AutoSizeColumnTracker.updateColumnWidths(AutoSizeColumnTracker.java:360)
at org.apache.poi.xssf.streaming.SXSSFSheet.flushOneRow(SXSSFSheet.java:1959)
at org.apache.poi.xssf.streaming.SXSSFSheet.flushRows(SXSSFSheet.java:1927)
at org.apache.poi.xssf.streaming.SXSSFSheet.createRow(SXSSFSheet.java:182)
at test.TestExcel.main(TestExcel.java:23)
Caused by: java.lang.reflect.InvocationTargetException
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)
... 15 more
Caused by: java.lang.NoClassDefFoundError: java.awt.GraphicsEnvironment$LocalGE
(initialization failure)
at
java.base/java.lang.J9VMInternals.initializationAlreadyFailed(J9VMInternals.java:156)
at
java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:129)
at java.desktop/sun.awt.X11FontManager.isHeadless(X11FontManager.java:464)
at
java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(X11FontManager.java:177)
at
java.desktop/sun.font.SunFontManager.initCompositeFonts(SunFontManager.java:3389)
at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:508)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:690)
at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:324)
at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
... 20 more
Caused by: java.awt.AWTError: Can't connect to X11 window server using ':0.0'
as the value of the DISPLAY variable.
at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at
java.desktop/sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:102)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:690)
at
java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:61)
at java.base/java.lang.Class.forNameImpl(Native Method)
at java.base/java.lang.Class.forName(Class.java:347)
at
java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(GraphicsEnvironment.java:101)
at
java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(GraphicsEnvironment.java:83)
at
java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:129)
at java.desktop/sun.awt.X11FontManager.isHeadless(X11FontManager.java:464)
at
java.desktop/sun.awt.X11FontManager.getFileNameFromPlatformName(X11FontManager.java:177)
at
java.desktop/sun.font.SunFontManager.initCompositeFonts(SunFontManager.java:3389)
at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:508)
at
java.base/java.security.AccessController.doPrivileged(AccessController.java:690)
at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:324)
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(AccessController.java:690)
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:2250)
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:119)
at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:106)
at
org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:697)
at
org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:715)
at test.TestExcel.main(TestExcel.java:19)
--
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]