JDK-8209672 : Oracle JDK 8 equivalent fix for JDK-8188030: AIOOBE in font manager init
Type:Bug
Component:client-libs
Sub-Component:2d
Affected Version:7,8
Priority:P3
Status:Resolved
Resolution:Fixed
Submitted:2018-08-20
Updated:2020-04-28
Resolved:2019-10-16
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
While both OpenJDK 8 and Oracle JDK 11 support CFF fonts, Oracle JDK 8 does not support CFF fonts.
Comments
Steps to reproduce:
1. Install minimal CentOS 7.6
2. Add proxy server to /etc/yum.conf to [main] section if required:
proxy=http://proxy:port
3. Run the following command to download the packages:
$ sudo yum install --downloadonly --downloaddir=rpms xorg-x11-fonts-Type1 stix-fonts
* Note: Do not install the packages. There's dependency on dejavu-sans-fonts package, the problem will not reproduce.
4. Install the packages:
$ sudo rpm --install --verbose --nodeps rpms/{fontconfig-2.13.0-4.3.el7.x86_64.rpm,xorg-x11-fonts-Type1-7.5-9.el7.noarch.rpm,stix-fonts-1.1.0-5.el7.noarch.rpm,fontpackages-filesystem-1.44-8.el7.noarch.rpm,xorg-x11-font-utils-7.5-21.el7.x86_64.rpm,ttmkfdir-3.0.9-42.el7.x86_64.rpm,libfontenc-1.1.3-3.el7.x86_64.rpm}
* Note: The versions of rpm files can change.
5. Run the test with a JRE:
$ jre1.8.0_231/bin/java -showversion FontsAIOOBE
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
Bitstream Charter
Courier 10 Pitch
Cursor
Dialog
DialogInput
Lucida Bright
Lucida Sans
Lucida Sans Typewriter
Monospaced
SansSerif
Serif
STIX
Utopia
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at sun.font.CompositeStrike.getStrikeForSlot(CompositeStrike.java:79)
at sun.font.CompositeStrike.getFontMetrics(CompositeStrike.java:97)
at sun.font.Font2D.getFontMetrics(Font2D.java:415)
at java.awt.Font.defaultLineMetrics(Font.java:2180)
at java.awt.Font.getLineMetrics(Font.java:2287)
at java.awt.font.TextLayout.fastInit(TextLayout.java:598)
at java.awt.font.TextLayout.<init>(TextLayout.java:393)
at FontsAIOOBE.main(FontsAIOOBE.java:16)
The JRE with fix does not throw the exception:
$ jre1.8.0_241/bin/java -showversion FontsAIOOBE
java version "1.8.0_241-sustaining"
Java(TM) SE Runtime Environment (build 1.8.0_241-sustaining-20191008-b99)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b99, mixed mode)
...
STIX
Utopia
sun.font.StandardTextSource@1e80bfe8[start:0, len:4, cstart:0, clen:4, chars:"54 65 78 74", level:0, flags:0, font:java.awt.Font[family=SansSerif,name=SansSerif,style=plain,size=12], frc:java.awt.font.FontRenderContext@bef565b2, cm:sun.font.CoreMetrics@41444ee0]