https://bz.apache.org/bugzilla/show_bug.cgi?id=65260

            Bug ID: 65260
           Summary: Issue
           Product: POI
           Version: 4.1.2-FINAL
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: SXSSF
          Assignee: dev@poi.apache.org
          Reporter: kurets.a...@gmail.com
  Target Milestone: ---

Good day.
We use Apache POI 4.1.2 for creation .xlsx file.
Our application starts inside Docker container.
We use open-jdk(11th version) without predefined fonts. We needs that for
security reason.
At firts time we used XSSFWorkbook/XSSFSheet. All worked correctly.
For reducing of memory usege we replaced XSSFWorkbook by SXSSFWorkbook.
After that we have next exception.

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(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: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.getDefaultCharWidth(SheetUtil.java:273)
    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:684)
    at
org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:705)
    at

How we understand that relates with missing fonts and AutoSizeColumnTracker in
SXSSFSheet.

public SXSSFSheet(SXSSFWorkbook workbook, XSSFSheet xSheet) throws IOException
{
        this._workbook = workbook;
        this._sh = xSheet;
        this._writer = workbook.createSheetDataWriter();
       
this.setRandomAccessWindowSize(this._workbook.getRandomAccessWindowSize());
        this._autoSizeColumnTracker = new AutoSizeColumnTracker(this);
    }

This constructor has initialization of AutoSizeColumnTracker.
AutoSizeColumnTracker calculates defaultCharWidth.

Why does SXSSFWorkbook need in AutoSizeColumnTracker by default?
How can we disable that or maybe set custom defaultCharWidth without
calculation?

-- 
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