anyone can unsubscribe or ban me ? spam Le mar. 31 janv. 2023 à 10:21, Alexander Scherbatiy <alex...@openjdk.org> a écrit :
> On Fri, 27 Jan 2023 17:00:48 GMT, Alexander Scherbatiy < > alex...@openjdk.org> wrote: > > >> [JDK-8278549](https://bugs.openjdk.org/browse/JDK-8278549)` > <https://bugs.openjdk.org/browse/JDK-8278549)> UNIX sun/font coding > misses SUSE distro detection on recent distro SUSE 15` adds SuSE detection > by checking SLES os name property in `/etc/os-release` file. > >> > >> `opensuse/leap:15.4` docker defines os name property as `"openSUSE > Leap"` in `/etc/os-release` file which is not recognized as SuSE. > >> > >> The issue is reproduced with Oracle jdk-19.0.2 with custom > fontconfig.SuSE.properties file copied to jdk-19.0.2/lib directory. > >> > >> The fix checks if os name property from `/etc/os-release` contains > `SUSE` substring. > >> > >> Steps to reproduce. > >> - Download Oracle jdk-19.0.2 > >> - Copy custom [fontconfig.SuSE.properties]( > https://bugs.openjdk.org/secure/attachment/102435/fontconfig.SuSE.properties) > file to jdk-19.0.2/lib directory. > >> - Run the `opensuse/leap:15.4` docker and install freetype and dejavu > fonts (do not install fontconfig) > >> > >> docker run --rm --security-opt seccomp=unconfined -it > opensuse/leap:15.4 bash > >> zypper install -y dejavu-fonts > >> zypper install -y freetype2 > >> > >> - Run HelloImage java sample in the docker > >> > >> import javax.imageio.ImageIO; > >> import java.awt.*; > >> import java.awt.image.BufferedImage; > >> import java.io.File; > >> > >> public class HelloImage { > >> > >> public static void main(String[] args) throws Exception { > >> > >> BufferedImage buff = new BufferedImage(300, 200, > BufferedImage.TYPE_INT_RGB); > >> Graphics2D g = buff.createGraphics(); > >> g.setColor(Color.WHITE); > >> g.fillRect(0, 0, buff.getWidth(), buff.getHeight()); > >> > >> g.setColor(Color.BLUE); > >> g.setFont(g.getFont().deriveFont(32f)); > >> g.drawString("Hello, Image!", 50, 50); > >> g.dispose(); > >> > >> File file = new File("hello-image.png"); > >> ImageIO.write(buff, "png", file); > >> } > >> } > >> > >> > >> > >> ./jdk-19.0.2/bin/javac HelloImage.java > >> ./jdk-19.0.2/bin/java HelloImage > >> Exception in thread "main" java.lang.NullPointerException: Cannot load > from short array because "sun.awt.FontConfiguration.head" is null > >> at > java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1261) > >> at > java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:221) > >> at > java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:105) > >> at > java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:706) > >> at > java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:352) > >> at > java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:309) > >> at > java.base/java.security.AccessController.doPrivileged(AccessController.java:318) > >> at > java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:309) > >> at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35) > >> at > java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56) > >> at > java.desktop/sun.font.PlatformFontInfo.createFontManager(PlatformFontInfo.java:37) > >> at > java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:51) > >> at java.desktop/java.awt.Font.getFont2D(Font.java:526) > >> at > java.desktop/java.awt.Font$FontAccessImpl.getFont2D(Font.java:265) > >> at > java.desktop/sun.font.FontUtilities.getFont2D(FontUtilities.java:151) > >> at > java.desktop/sun.java2d.SunGraphics2D.checkFontInfo(SunGraphics2D.java:671) > >> at > java.desktop/sun.java2d.SunGraphics2D.getFontInfo(SunGraphics2D.java:837) > >> at > java.desktop/sun.java2d.pipe.GlyphListPipe.drawString(GlyphListPipe.java:46) > >> at > java.desktop/sun.java2d.SunGraphics2D.drawString(SunGraphics2D.java:2931) > >> at HelloImage.main(HelloImage.java:17) > > > > Alexander Scherbatiy has updated the pull request incrementally with one > additional commit since the last revision: > > > > Revert back empty line removing > > May be it has sense to add a property file which maps OS name used in > fontconfig files to OS names from 'os-release` file. > Something like this: > > SuSE=SLES,opensuse-leap,opensuse-tumbleweed > > ------------- > > PR: https://git.openjdk.org/jdk/pull/12260 >