diff --git a/src/scratchpad/testcases/org/apache/poi/TestJDK12.java b/src/scratchpad/testcases/org/apache/poi/TestJDK12.java new file mode 100644 index 0000000000..d0d33b2267 --- /dev/null +++ b/src/scratchpad/testcases/org/apache/poi/TestJDK12.java @@ -0,0 +1,53 @@ +/* ==================================================================== + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +==================================================================== */ + +package org.apache.poi; + +import org.junit.Test; + +import java.awt.Graphics2D; +import java.awt.RenderingHints; +import java.awt.font.TextLayout; +import java.awt.image.BufferedImage; +import java.text.AttributedString; + +/** + * Minimal Test-Class found when running the Apache POI regression tests. + * + * This reproduces a crash introduced in JDK 12-ea+28 and JDK 13-ea+4 + * + * This works in recent JDK 8, JDK 11 and at least up to JDK 12-ea+20 + * + * https://bugs.openjdk.java.net/browse/JDK-8217768 + * + * Should be fixed in JDK 12-ea+29 and JDK 13-ea+5 + */ +public class TestJDK12 { + @Test + public void test() throws Exception { + BufferedImage img = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB); + Graphics2D graphics = img.createGraphics(); + graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + graphics.scale(200, 1); + + new TextLayout(new AttributedString("agriculture").getIterator(), graphics.getFontRenderContext()); + + graphics.dispose(); + img.flush(); + } + +}