]> source.dussan.org Git - poi.git/commitdiff
Ignore Font-issue with JDK 8 on Windows in another test
authorDominik Stadler <centic@apache.org>
Sun, 3 Jan 2021 17:02:18 +0000 (17:02 +0000)
committerDominik Stadler <centic@apache.org>
Sun, 3 Jan 2021 17:02:18 +0000 (17:02 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885069 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/testcases/org/apache/poi/ooxml/TestTriggerCoverage.java

index f01d3dcc90804e89a633362b310981641a2bbfd8..d7c9a8ae6b7dc9054aa9eba49c938f4e2b14b640 100644 (file)
@@ -33,6 +33,7 @@ import org.junit.jupiter.api.Assumptions;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.MethodSource;
+import org.junit.platform.commons.util.ExceptionUtils;
 
 import java.awt.Dimension;
 import java.awt.Graphics2D;
@@ -145,8 +146,19 @@ public class TestTriggerCoverage {
             graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
             graphics.setRenderingHint(Drawable.BUFFERED_IMAGE, new WeakReference<>(img));
 
-            // draw stuff
-            s.draw(graphics);
+            try {
+                // draw stuff
+                s.draw(graphics);
+            } catch (ArrayIndexOutOfBoundsException e) {
+                // We saw exceptions with JDK 8 on Windows in the Jenkins CI which
+                // seem to only be triggered by some font (maybe Calibri?!)
+                // We cannot avoid this, so let's try to not make the tests fail in this case
+                Assumptions.assumeTrue(
+                        e.getMessage().equals("-1") &&
+                                ExceptionUtils.readStackTrace(e).contains("ExtendedTextSourceLabel.getJustificationInfos"),
+                        "JDK sometimes fails at this point on some fonts on Windows machines, but we" +
+                                "should not fail the build because of this");
+            }
 
             graphics.dispose();
             img.flush();