From 3ef2c4510165052e319a5bccf0e4475e51ddb68f Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Mon, 26 Dec 2022 16:15:44 +0000 Subject: Bug 65260: Fix how we ignore errors when fonts are not installed The implementation via bug 66230 was not fully working due to the caught exception. Also add this to the 2nd constructor as well. git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1906218 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/org/apache/poi/xssf/streaming/SXSSFSheet.java | 8 ++++++-- .../org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java | 3 +-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFSheet.java b/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFSheet.java index 5eb5a4be49..2384d7f93a 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFSheet.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/streaming/SXSSFSheet.java @@ -62,7 +62,11 @@ public class SXSSFSheet implements Sheet, OoxmlSheetExtensions { _sh = xSheet; calculateLeftAndRightMostColumns(xSheet); setRandomAccessWindowSize(randomAccessWindowSize); - _autoSizeColumnTracker = new AutoSizeColumnTracker(this); + try { + _autoSizeColumnTracker = new AutoSizeColumnTracker(this); + } catch (InternalError e) { + LOG.atWarn().log("Failed to create AutoSizeColumnTracker, possibly due to fonts not being installed in your OS", e); + } } private void calculateLeftAndRightMostColumns(XSSFSheet xssfSheet) { @@ -93,7 +97,7 @@ public class SXSSFSheet implements Sheet, OoxmlSheetExtensions { setRandomAccessWindowSize(_workbook.getRandomAccessWindowSize()); try { _autoSizeColumnTracker = new AutoSizeColumnTracker(this); - } catch (Exception e) { + } catch (InternalError e) { LOG.atWarn().log("Failed to create AutoSizeColumnTracker, possibly due to fonts not being installed in your OS", e); } } diff --git a/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java b/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java index f7161fd0e9..2cc356d422 100644 --- a/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java +++ b/poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestAutoSizeColumnTracker.java @@ -43,11 +43,10 @@ import org.junit.jupiter.api.Test; /** * Tests the auto-sizing behaviour of {@link SXSSFSheet} when not all * rows fit into the memory window size etc. - * + *

* see Bug #57450 which reported the original misbehaviour */ class TestAutoSizeColumnTracker { - private SXSSFSheet sheet; private SXSSFWorkbook workbook; private AutoSizeColumnTracker tracker; -- cgit v1.2.3