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: dev@poi.apache.org
          Reporter: oct...@gmail.com
  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: dev-unsubscr...@poi.apache.org
For additional commands, e-mail: dev-h...@poi.apache.org

Reply via email to