Compare commits

...

4 Commits

Author SHA1 Message Date
Vitaly Provodin
7d842cd56c update exclude list on results of 17.0.7_b1023.3 test runs 2023-07-03 20:32:25 +07:00
Vitaly Provodin
1965ab0496 Revert "JBR-1775: improved logic for choosing newer font between system and bundled ones"
This reverts commit 5ef38ed8fa.
2023-07-03 05:41:49 +07:00
Vitaly Provodin
845dc9612f Revert "fixup! JBR-1775: improved logic for choosing newer font between system and bundled ones"
This reverts commit e4e9a016e0.
2023-07-03 05:41:43 +07:00
Vitaly Provodin
52816d7406 Revert "8294160: misc crash dump improvements"
This reverts commit 8dd1056831.
2023-07-02 13:42:43 +07:00
15 changed files with 301 additions and 349 deletions

View File

@@ -128,12 +128,6 @@ frame os::fetch_frame_from_context(const void* ucVoid) {
intptr_t* sp;
intptr_t* fp;
address epc = fetch_frame_from_context(ucVoid, &sp, &fp);
if (!is_readable_pointer(epc)) {
// Try to recover from calling into bad memory
// Assume new frame has not been set up, the same as
// compiled frame stack bang
return fetch_compiled_frame_from_context(ucVoid);
}
return frame(sp, fp, epc);
}
@@ -348,7 +342,7 @@ void os::print_context(outputStream *st, const void *context) {
// Note: it may be unsafe to inspect memory near pc. For example, pc may
// point to garbage if entry point in an nmethod is corrupted. Leave
// this at the end, and hope for the best.
address pc = os::fetch_frame_from_context(uc).pc();
address pc = os::Posix::ucontext_get_pc(uc);
print_instructions(st, pc, 4/*native instruction size*/);
st->cr();
}

View File

@@ -142,12 +142,6 @@ frame os::fetch_frame_from_context(const void* ucVoid) {
intptr_t* sp;
intptr_t* fp;
address epc = fetch_frame_from_context(ucVoid, &sp, &fp);
if (!is_readable_pointer(epc)) {
// Try to recover from calling into bad memory
// Assume new frame has not been set up, the same as
// compiled frame stack bang
return fetch_compiled_frame_from_context(ucVoid);
}
return frame(sp, fp, epc);
}
@@ -585,7 +579,7 @@ void os::print_context(outputStream *st, const void *context) {
// Note: it may be unsafe to inspect memory near pc. For example, pc may
// point to garbage if entry point in an nmethod is corrupted. Leave
// this at the end, and hope for the best.
address pc = os::fetch_frame_from_context(uc).pc();
address pc = os::Posix::ucontext_get_pc(uc);
print_instructions(st, pc, sizeof(char));
st->cr();
}

View File

@@ -319,12 +319,6 @@ frame os::fetch_frame_from_context(const void* ucVoid) {
intptr_t* sp;
intptr_t* fp;
address epc = fetch_frame_from_context(ucVoid, &sp, &fp);
if (!is_readable_pointer(epc)) {
// Try to recover from calling into bad memory
// Assume new frame has not been set up, the same as
// compiled frame stack bang
return frame(sp + 1, fp, (address)*sp);
}
return frame(sp, fp, epc);
}
@@ -456,7 +450,7 @@ void os::print_context(outputStream *st, const void *context) {
// Note: it may be unsafe to inspect memory near pc. For example, pc may
// point to garbage if entry point in an nmethod is corrupted. Leave
// this at the end, and hope for the best.
address pc = os::fetch_frame_from_context(uc).pc();
address pc = (address)uc->REG_PC;
print_instructions(st, pc, sizeof(char));
st->cr();
}

View File

@@ -2283,8 +2283,6 @@ bool Method::is_valid_method(const Method* m) {
} else if ((intptr_t(m) & (wordSize-1)) != 0) {
// Quick sanity check on pointer.
return false;
} else if (!os::is_readable_range(m, m + 1)) {
return false;
} else if (m->is_shared()) {
return CppVtables::is_valid_shared_method(m);
} else if (Metaspace::contains_non_shared(m)) {

View File

@@ -40,6 +40,7 @@ import javax.swing.plaf.FontUIResource;
import sun.awt.FontConfiguration;
import sun.awt.HeadlessToolkit;
import sun.lwawt.macosx.*;
import sun.util.logging.PlatformLogger;
public final class CFontManager extends SunFontManager {
private static Hashtable<String, Font2D> genericFonts = new Hashtable<String, Font2D>();
@@ -140,15 +141,45 @@ public final class CFontManager extends SunFontManager {
}
@Override
protected String getSystemFontVersion(TrueTypeFont bundledFont) {
String version = getNativeFontVersion(bundledFont.getPostscriptName());
return version != null ? TrueTypeFont.parseVersion(version) : "0";
}
@Override
protected void loadJREFonts(String[] fonts) {
for (String name : fonts) {
loadNativeDirFonts(name);
protected void registerJREFonts() {
@SuppressWarnings("removal")
String[] files = AccessController.doPrivileged((PrivilegedAction<String[]>) () ->
new File(jreFontDirName).list(getTrueTypeFilter()));
if (files != null) {
PlatformLogger logger = FontUtilities.getLogger();
boolean versionCheckEnabled = !("true".equals(System.getProperty("java2d.font.noVersionCheck")));
int [] ver = new int[3];
for (String f : files) {
boolean loadFont = true;
BundledFontInfo fi = getBundledFontInfo(f);
if (versionCheckEnabled) {
if (fi != null) {
String verStr = getNativeFontVersion(fi.getPsName());
if (logger != null) {
logger.info("Checking bundled " + fi.getPsName());
}
if (verStr != null && parseFontVersion(verStr, ver) && !fi.isNewerThan(ver)) {
if (logger != null) {
logger.info("Skip loading. Newer or same version platform font detected " +
fi.getPsName() + " " + verStr);
}
loadFont = false;
}
} else {
if (logger != null) {
FontUtilities.getLogger().warning("JREFonts: No BundledFontInfo for : " + f);
}
}
}
if (loadFont) {
String fontPath = jreFontDirName + File.separator + f;
loadNativeDirFonts(fontPath);
if (logger != null && fi != null) {
String verStr = getNativeFontVersion(fi.getPsName());
logger.info("Loaded " + fi.getPsName() + " (" + verStr + ")");
}
}
}
}
}
@@ -176,7 +207,12 @@ public final class CFontManager extends SunFontManager {
void registerFont(String fontName, String fontFamilyName, String faceName) {
// Use different family for specific font faces
final CFont font = new CFont(fontName, jreFamilyMap.getOrDefault(fontName, fontFamilyName), faceName);
String newFontFamily = jreFamilyMap.get(fontName);
if (newFontFamily != null) {
fontFamilyName = newFontFamily;
}
final CFont font = new CFont(fontName, fontFamilyName, faceName);
registerGenericFont(font);
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2008, 2022, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2008, 2021, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,13 +33,9 @@ import java.io.FileInputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
@@ -58,7 +54,6 @@ import sun.awt.FontConfiguration;
import sun.awt.SunToolkit;
import sun.awt.util.ThreadGroupUtils;
import sun.java2d.FontSupport;
import sun.security.action.GetPropertyAction;
import sun.util.logging.PlatformLogger;
/**
@@ -68,6 +63,39 @@ import sun.util.logging.PlatformLogger;
* methods that have to be implemented by specific implementations.
*/
public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
protected static class BundledFontInfo {
private String psName;
private int [] version;
public BundledFontInfo(String psName, int major, int minor, int bugfix) {
this.psName = psName;
version = new int[3];
version[0] = major;
version[1] = minor;
version[2] = bugfix;
}
public String getPsName() {
return psName;
}
public boolean isNewerThan(int[] version) {
for (int i = 0; i < 3; i++) {
if (this.version[i] < version[i]) {
return false;
} else if (this.version[i] > version[i]) {
return true;
}
}
return false;
}
@Override
public String toString() {
return psName + " v" + version[0] + "." + version[1] + "." + version[2];
}
}
private static class TTFilter implements FilenameFilter {
public boolean accept(File dir,String name) {
/* all conveniently have the same suffix length */
@@ -192,8 +220,9 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
private boolean loaded1dot0Fonts = false;
boolean loadedAllFonts = false;
boolean loadedAllFontFiles = false;
private HashSet<String> jreBundledFontFiles = new HashSet<>();
HashMap<String,String> jreFamilyMap = new HashMap<>();
private HashMap<String,BundledFontInfo> jreFontMap;
private HashSet<String> jreBundledFontFiles;
HashMap<String,String> jreFamilyMap;
String[] jreOtherFontFiles;
boolean noOtherJREFontFiles = false; // initial assumption.
@@ -203,7 +232,6 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
private String defaultFontName;
private String defaultFontFileName;
protected HashSet<String> registeredFontFiles = new HashSet<>();
protected static boolean versionCheckEnabled = false;
private ArrayList<String> badFonts;
/* fontPath is the location of all fonts on the system, excluding the
@@ -284,19 +312,70 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
* are rarely used. Consider removing the other mappings if there's
* no evidence they are useful in practice.
*/
@SuppressWarnings("removal")
String[] files = AccessController.doPrivileged((PrivilegedAction<String[]>) () ->
new File(jreFontDirName).list(getTrueTypeFilter()));
Collections.addAll(jreBundledFontFiles, files);
jreFontMap = new HashMap<>();
jreBundledFontFiles = new HashSet<String>();
jreFamilyMap = new HashMap<>();
/* Droid Sans Mono Family */
jreFontMap.put("DroidSans.ttf", new BundledFontInfo("DroidSans", 1, 0, 0));
jreFontMap.put("DroidSans-Bold.ttf", new BundledFontInfo("DroidSans-Bold", 1, 0, 0));
/* Droid Sans Mono Family */
jreFontMap.put("DroidSansMono.ttf", new BundledFontInfo("DroidSansMono", 1, 0, 0));
jreFontMap.put("DroidSansMonoSlashed.ttf", new BundledFontInfo("DroidSansMonoSlashed", 1, 0, 0));
jreFontMap.put("DroidSansMonoDotted.ttf", new BundledFontInfo("DroidSansMonoDotted", 1, 0, 0));
/* Droid Serif Family */
jreFontMap.put("DroidSerif-Regular.ttf", new BundledFontInfo("DroidSerif", 1, 0, 0));
jreFontMap.put("DroidSerif-Bold.ttf", new BundledFontInfo("DroidSerif-Bold", 1, 0, 0));
jreFontMap.put("DroidSerif-Italic.ttf", new BundledFontInfo("DroidSerif-Italic", 1, 0, 0));
jreFontMap.put("DroidSerif-BoldItalic.ttf", new BundledFontInfo("DroidSerif-BoldItalic", 1, 0, 0));
/* Idea bundled fonts */
jreFontMap.put("FiraCode-Bold.ttf", new BundledFontInfo("FiraCode-Bold", 1, 206, 0));
jreFontMap.put("FiraCode-Light.ttf", new BundledFontInfo("FiraCode-Light", 1, 206, 0));
jreFontMap.put("FiraCode-Medium.ttf", new BundledFontInfo("FiraCode-Medium", 1, 206, 0));
jreFontMap.put("FiraCode-Retina.ttf", new BundledFontInfo("FiraCode-Retina", 1, 206, 0));
jreFontMap.put("FiraCode-Regular.ttf", new BundledFontInfo("FiraCode-Regular", 1, 206, 0));
jreFontMap.put("SourceCodePro-BoldIt.ttf", new BundledFontInfo("SourceCodePro-BoldIt", 1, 30, 0));
jreFontMap.put("SourceCodePro-Regular.ttf", new BundledFontInfo("SourceCodePro-Regular", 2, 10, 0));
jreFontMap.put("SourceCodePro-Bold.ttf", new BundledFontInfo("SourceCodePro-Bold", 2, 10, 0));
jreFontMap.put("SourceCodePro-It.ttf", new BundledFontInfo("SourceCodePro-It", 1, 30, 0));
jreFontMap.put("Inconsolata.ttf", new BundledFontInfo("Inconsolata", 1, 10, 0));
jreFontMap.put("Roboto-Light.ttf", new BundledFontInfo("Roboto-Light", 1, 100141, 0));
jreFontMap.put("Roboto-Thin.ttf", new BundledFontInfo("Roboto-Thin", 1, 100141, 0));
jreFamilyMap.put("Roboto-Light", "Roboto Light");
jreFamilyMap.put("Roboto-Thin", "Roboto Thin");
jreFontMap.put("JetBrainsMono-Bold.ttf", new BundledFontInfo("JetBrainsMono-Bold", 2, 242, 0));
jreFontMap.put("JetBrainsMono-BoldItalic.ttf", new BundledFontInfo("JetBrainsMono-BoldItalic", 2, 242, 0));
jreFontMap.put("JetBrainsMono-ExtraBold.ttf", new BundledFontInfo("JetBrainsMono-ExtraBold", 2, 242, 0));
jreFontMap.put("JetBrainsMono-ExtraBoldItalic.ttf", new BundledFontInfo("JetBrainsMono-ExtraBoldItalic", 2, 242, 0));
jreFontMap.put("JetBrainsMono-ExtraLight.ttf", new BundledFontInfo("JetBrainsMono-ExtraLight", 2, 242, 0));
jreFontMap.put("JetBrainsMono-ExtraLightItalic.ttf", new BundledFontInfo("JetBrainsMono-ExtraLightItalic", 2, 242, 0));
jreFontMap.put("JetBrainsMono-Italic.ttf", new BundledFontInfo("JetBrainsMono-Italic", 2, 242, 0));
jreFontMap.put("JetBrainsMono-Light.ttf", new BundledFontInfo("JetBrainsMono-Light", 2, 242, 0));
jreFontMap.put("JetBrainsMono-LightItalic.ttf", new BundledFontInfo("JetBrainsMono-LightItalic", 2, 242, 0));
jreFontMap.put("JetBrainsMono-Medium.ttf", new BundledFontInfo("JetBrainsMono-Medium", 2, 242, 0));
jreFontMap.put("JetBrainsMono-MediumItalic.ttf", new BundledFontInfo("JetBrainsMono-MediumItalic", 2, 242, 0));
jreFontMap.put("JetBrainsMono-Regular.ttf", new BundledFontInfo("JetBrainsMono-Regular", 2, 242, 0));
jreFontMap.put("JetBrainsMono-Thin.ttf", new BundledFontInfo("JetBrainsMono-Thin", 2, 242, 0));
jreFontMap.put("JetBrainsMono-ThinItalic.ttf", new BundledFontInfo("JetBrainsMono-ThinItalic", 2, 242, 0));
jreFontMap.put("Inter-SemiBold.otf", new BundledFontInfo("Inter-SemiBold", 3, 19, 0));
jreFontMap.put("Inter-Regular.otf", new BundledFontInfo("Inter-Regular", 3, 19, 0));
jreFontMap.put("Inter-Italic.otf", new BundledFontInfo("Inter-Italic", 3, 19, 0));
jreFontMap.put("Inter-SemiBoldItalic.otf", new BundledFontInfo("Inter-SemiBoldItalic", 3, 19, 0));
jreBundledFontFiles.addAll(jreFontMap.keySet());
}
static {
initStatic();
versionCheckEnabled = !Boolean.parseBoolean(
GetPropertyAction.privilegedGetProperty("java2d.font.noVersionCheck", "false"));
}
@SuppressWarnings("removal")
@@ -368,17 +447,21 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
}
}
/* Here we get the fonts in jre/lib/fonts and register
* them so they are always available and preferred over
* other fonts. This needs to be registered before the
* composite fonts as otherwise some native font that
* corresponds may be found as we don't have a way to
* handle two fonts of the same name, so the JRE one
* must be the first one registered. Pass "true" to
* registerFonts method as on-screen these JRE fonts
* always go through the JDK rasteriser.
*/
registerJREFonts();
/* Here we get the fonts in jre/lib/fonts and register
* them so they are always available and preferred over
* other fonts. This needs to be registered before the
* composite fonts as otherwise some native font that
* corresponds may be found as we don't have a way to
* handle two fonts of the same name, so the JRE one
* must be the first one registered. Pass "true" to
* registerFonts method as on-screen these JRE fonts
* always go through the JDK rasteriser.
*/
if (FontUtilities.isLinux) {
/* Linux font configuration uses these fonts */
registerFontDir(jreFontDirName);
}
registerJREFonts();
/* Create the font configuration and get any font path
* that might be specified.
@@ -713,7 +796,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
newFont instanceof TrueTypeFont) {
TrueTypeFont oldTTFont = (TrueTypeFont)oldFont;
TrueTypeFont newTTFont = (TrueTypeFont)newFont;
if (isFontNewer(oldTTFont.getVersion(), newTTFont.getVersion())) {
if (oldTTFont.fileSize >= newTTFont.fileSize) {
return oldFont;
}
} else {
@@ -1386,7 +1469,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
*/
HashMap<String,String> fontToFileMap2 = null;
HashMap<String,String> fontToFamilyNameMap2 = null;
HashMap<String,ArrayList<String>> familyToFontListMap2 = null;
HashMap<String,ArrayList<String>> familyToFontListMap2 = null;;
for (String pathFile : getFontFilesFromPath(false)) {
if (!registryFiles.contains(pathFile)) {
@@ -2906,8 +2989,12 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
/*
* helper function for registerFonts
*/
private void addDirFonts(String[] ls, int fontFormat, boolean useJavaRasterizer,
int fontRank, boolean defer, boolean resolveSymLinks) {
private void addDirFonts(String dirName, File dirFile,
FilenameFilter filter,
int fontFormat, boolean useJavaRasterizer,
int fontRank,
boolean defer, boolean resolveSymLinks) {
String[] ls = dirFile.list(filter);
if (ls == null || ls.length == 0) {
return;
}
@@ -2915,8 +3002,8 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
String[][] nativeNames = new String[ls.length][];
int fontCount = 0;
for (String file : ls) {
File theFile = new File(file);
for (int i=0; i < ls.length; i++ ) {
File theFile = new File(dirFile, ls[i]);
String fullName = null;
if (resolveSymLinks) {
try {
@@ -2925,7 +3012,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
}
}
if (fullName == null) {
fullName = file;
fullName = dirName + File.separator + ls[i];
}
// REMIND: case compare depends on platform
@@ -3059,101 +3146,30 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
registerFontsInDir(dirName, true, Font2D.JRE_RANK, true, false);
}
private String[] addPathToFiles(FilenameFilter filter, String path) {
String[] filteredFiles = (new File(path)).list(filter);
if (filteredFiles == null) {
return new String[0];
}
return Arrays.stream(filteredFiles).map((name) -> (path + File.separator + name)).toArray(String[]::new);
}
// MACOSX begin -- need to access this in subclass
protected void registerFontsInDir(String dirName, boolean useJavaRasterizer,
// MACOSX end
int fontRank,
boolean defer, boolean resolveSymLinks) {
addDirFonts(addPathToFiles(ttFilter, dirName),
File pathFile = new File(dirName);
addDirFonts(dirName, pathFile, ttFilter,
FONTFORMAT_TRUETYPE, useJavaRasterizer,
fontRank==Font2D.UNKNOWN_RANK ?
Font2D.TTF_RANK : fontRank,
defer, resolveSymLinks);
addDirFonts(addPathToFiles(t1Filter, dirName),
addDirFonts(dirName, pathFile, t1Filter,
FONTFORMAT_TYPE1, useJavaRasterizer,
fontRank==Font2D.UNKNOWN_RANK ?
Font2D.TYPE1_RANK : fontRank,
defer, resolveSymLinks);
}
protected String getTrueTypeVersion(String path) {
try {
return (new TrueTypeFont(path, null, 0, false, false)).getVersion();
} catch (FontFormatException e) {
return "0";
}
}
// SunFontManager could be extended outside JBR scope (e.g. IdeFontManager) therefore default implementation of this
// method needed for compatibility. Returning of "0" repeats the logic of setting field versionCheckEnabled to false
protected String getSystemFontVersion(TrueTypeFont bundledFont) {
return "0";
}
protected void loadJREFonts(String[] fonts) {
addDirFonts(fonts, FONTFORMAT_TRUETYPE, true,
Font2D.JRE_RANK, true, false);
}
protected static int fontVersionComparator(String versionFirst, String versionSecond) {
return Arrays.compare(versionFirst.split("\\."), versionSecond.split("\\."),
Comparator.comparing(BigInteger::new));
}
private boolean isFontNewer(String versionFirst, String versionSecond) {
return fontVersionComparator(versionFirst, versionSecond) > 0;
}
protected void registerJREFonts() {
List<String> fontsToLoad = new ArrayList<>();
PlatformLogger logger = FontUtilities.getLogger();
boolean isLogging = logger != null && FontUtilities.isLogging();
registerFontsInDir(jreFontDirName, true, Font2D.JRE_RANK,
true, false);
}
if (!versionCheckEnabled && isLogging) {
logger.info("Skip version checking in font loading");
}
for (String fontName : jreBundledFontFiles) {
boolean loadFont = true;
String bundledVersion = "unknown";
String systemVersion = "0";
String path = jreFontDirName + File.separator + fontName;
if (versionCheckEnabled) {
try {
TrueTypeFont bundledFont = new TrueTypeFont(path, null, 0, false, false);
bundledVersion = bundledFont.getVersion();
systemVersion = getSystemFontVersion(bundledFont);
if (isFontNewer(systemVersion, bundledVersion)) {
if (isLogging) {
logger.info("Skip loading " + fontName + ", newer version font on platform were detected. " +
"System version = " + systemVersion + ", Bundled version = " + bundledVersion + ".");
}
loadFont = false;
}
} catch (FontFormatException e) {
if (isLogging) {
logger.warning("Internal error have appeared while reading bundled font " + fontName + ".");
}
}
}
if (loadFont) {
fontsToLoad.add(path);
if (isLogging) {
logger.info("Loaded " + fontName + " (" + bundledVersion + ")");
}
}
}
loadJREFonts(fontsToLoad.toArray(new String[0]));
protected void registerFontDir(String path) {
}
/**
@@ -3680,4 +3696,78 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
{
return new FontUIResource(family, style, size);
}
protected BundledFontInfo getBundledFontInfo(String fileName) {
return jreFontMap.get(fileName);
}
protected boolean parseFontVersion(String versionString, int[] version) {
int i = 0;
boolean foundDigit = false;
version[0] = version[1] = version[2] = 0;
// Skip prefix letters
while (i < versionString.length() &&
!(foundDigit = Character.isDigit(versionString.charAt(i)))) {
i++;
}
if (!foundDigit) {
return false;
}
StringBuilder buf = new StringBuilder();
boolean foundDot = false;
// Read major version
while (i < versionString.length() &&
!(foundDot = (versionString.charAt(i) == '.')) &&
Character.isDigit(versionString.charAt(i))) {
buf.append(versionString.charAt(i));
i++;
}
version[0] = Integer.parseInt(buf.toString());
if (!foundDot) {
return true;
}
buf.setLength(0);
i++;
foundDigit = false;
// Read minor version
while (i < versionString.length() &&
!(foundDot = (versionString.charAt(i) == '.')) &&
Character.isDigit(versionString.charAt(i))) {
buf.append(versionString.charAt(i));
foundDigit = true;
i++;
}
if (!foundDigit) {
return true;
}
version[1] = Integer.parseInt(buf.toString());
if (!foundDot) {
return true;
}
buf.setLength(0);
i++;
foundDigit = false;
// Read bugfix version
while (i < versionString.length() &&
!(versionString.charAt(i) == '.') &&
Character.isDigit(versionString.charAt(i))) {
buf.append(versionString.charAt(i));
foundDigit = true;
i++;
}
if (!foundDigit) {
return true;
}
version[2] = Integer.parseInt(buf.toString());
return true;
}
}

View File

@@ -42,14 +42,10 @@ import java.nio.channels.FileChannel;
import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Locale;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import sun.java2d.Disposer;
import sun.java2d.DisposerRecord;
@@ -116,7 +112,6 @@ public class TrueTypeFont extends FileFont {
public static final int SUBFAMILY_NAME_ID = 2;
// public static final int STYLE_WEIGHT_ID = 2; // currently unused.
public static final int FULL_NAME_ID = 4;
public static final int VERSION_NAME_ID = 5;
public static final int POSTSCRIPT_NAME_ID = 6;
public static final int TYPOGRAPHIC_FAMILY_NAME_ID = 16;
public static final int TYPOGRAPHIC_SUBFAMILY_NAME_ID = 17;
@@ -191,8 +186,6 @@ public class TrueTypeFont extends FileFont {
private String localeFullName;
private String typographicFamilyName;
private String typographicSubfamilyName;
private String version;
private String postScriptName;
private Byte supportedCharset;
@@ -1123,22 +1116,6 @@ public class TrueTypeFont extends FileFont {
}
}
public static String parseVersion(String str) {
// get first part sequence of digits and dots
Matcher matcher = Pattern.compile("\\d(\\p{XDigit}|\\.)*").matcher(str);
if (!matcher.find()) {
return "0";
}
// removing leading zeros and hex parts from version e.g. 00010.002.0ab12.300.040 -> 10.2.300.40
String res = Arrays.stream(matcher.group().split("\\.")).filter(s -> s.matches("\\d+")).
map(s -> (s.replaceFirst("^0*", ""))).map(s -> s.isEmpty() ? "0" : s).collect(Collectors.joining("."));
return !res.isEmpty() ? res : "0";
}
public String getVersion() {
return version;
}
protected void initNames() {
byte[] name = new byte[256];
@@ -1248,22 +1225,6 @@ public class TrueTypeFont extends FileFont {
}
break;
case VERSION_NAME_ID:
if (version == null || langID == ENGLISH_LOCALE_ID) {
buffer.position(namePtr);
buffer.get(name, 0, nameLen);
version = parseVersion(makeString(name, nameLen, platformID, encodingID));
}
break;
case POSTSCRIPT_NAME_ID:
if (postScriptName == null || langID == ENGLISH_LOCALE_ID) {
buffer.position(namePtr);
buffer.get(name, 0, nameLen);
postScriptName = makeString(name, nameLen, platformID, encodingID);
}
break;
case TYPOGRAPHIC_FAMILY_NAME_ID:
if (typographicFamilyName == null || langID == ENGLISH_LOCALE_ID) {
buffer.position(namePtr);
@@ -1290,12 +1251,6 @@ public class TrueTypeFont extends FileFont {
if (typographicSubfamilyName == null) {
typographicSubfamilyName = subfamilyName;
}
if (version == null) {
version = "0";
}
if (postScriptName == null) {
postScriptName = fullName;
}
}
}
@@ -1368,7 +1323,12 @@ public class TrueTypeFont extends FileFont {
*/
@Override
public String getPostscriptName() {
return postScriptName;
String name = lookupName(ENGLISH_LOCALE_ID, POSTSCRIPT_NAME_ID);
if (name == null) {
return fullName;
} else {
return name;
}
}
@Override

View File

@@ -25,7 +25,9 @@
package sun.awt;
import sun.font.*;
import sun.font.FcFontConfiguration;
import sun.font.FontConfigManager;
import sun.font.SunFontManager;
/**
* A {@link sun.font.FontManager} that uses fontconfig to find system fonts.
@@ -43,13 +45,6 @@ public class FcFontManager extends SunFontManager {
return fcManager;
}
@Override
protected String getSystemFontVersion(TrueTypeFont bundledFont) {
String query = bundledFont.getTypographicFamilyName() + ":style=" + bundledFont.getTypographicSubfamilyName();
String systemFont = FontConfigManager.getFontProperty(query, "%{file}");
return systemFont != null ? getTrueTypeVersion(systemFont) : "0";
}
@Override
protected FontConfiguration createFontConfiguration() {
FcFontConfiguration fcFontConfig = new FcFontConfiguration(this);

View File

@@ -38,7 +38,6 @@ import java.util.Map;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;
import java.util.Vector;
import java.util.stream.Stream;
import javax.swing.plaf.FontUIResource;
import sun.font.MFontConfiguration;
@@ -51,8 +50,6 @@ import sun.font.FontUtilities;
import sun.font.NativeFont;
import sun.util.logging.PlatformLogger;
import static sun.font.SunFontManager.jreFontDirName;
/**
* The X11 implementation of {@link FontManager}.
*/
@@ -281,7 +278,8 @@ public final class X11FontManager extends FcFontManager {
* the loadFonts() method does too. So all should be well.
*/
private void registerFontDir(String path) {
@Override
protected void registerFontDir(String path) {
/* fonts.dir file format looks like :-
* 47
* Arial.ttf -monotype-arial-regular-r-normal--0-0-0-0-p-0-iso8859-1
@@ -430,12 +428,6 @@ public final class X11FontManager extends FcFontManager {
}
}
@Override
protected void registerJREFonts() {
registerFontDir(jreFontDirName);
super.registerJREFonts();
}
@Override
public void loadFonts() {
super.loadFonts();

View File

@@ -454,7 +454,6 @@ public class FontConfigManager {
return fcInfo;
}
private static native int getFontConfigAASettings(String locale, String fcFamily);
public static native String getFontProperty(String name, String pattern);
private static native int
getFontConfigAASettings(String locale, String fcFamily);
}

View File

@@ -511,7 +511,6 @@ typedef FcPattern* (*FcFontMatchFuncType)(FcConfig *config,
FcResult *result);
typedef FcFontSet* (*FcFontSetCreateFuncType)();
typedef FcBool (*FcFontSetAddFuncType)(FcFontSet *s, FcPattern *font);
typedef void (*FcStrFreeFuncType)(FcChar8 *str);
typedef FcResult (*FcPatternGetCharSetFuncType)(FcPattern *p,
const char *object,
@@ -534,11 +533,6 @@ typedef FcStrList* (*FcConfigGetCacheDirsFuncType)(FcConfig *config);
typedef FcChar8* (*FcStrListNextFuncType)(FcStrList *list);
typedef FcChar8* (*FcStrListDoneFuncType)(FcStrList *list);
typedef unsigned int (*FcFreeTypeQueryAllFuncType)(const FcChar8 *file, unsigned int id, FcBlanks *blanks,
int *count, FcFontSet *set);
typedef FcChar8* (*FcPatternFormatFuncType)(FcPattern *pat, const FcChar8 *format);
static char **getFontConfigLocations() {
char **fontdirs;
@@ -776,7 +770,7 @@ Java_sun_font_FontConfigManager_getFontConfigAASettings
JNIEXPORT jint JNICALL
Java_sun_font_FontConfigManager_getFontConfigVersion
(JNIEnv *env, jclass obj) {
(JNIEnv *env, jclass obj) {
void* libfontconfig;
FcGetVersionFuncType FcGetVersion;
@@ -798,90 +792,6 @@ Java_sun_font_FontConfigManager_getFontConfigVersion
return version;
}
JNIEXPORT jstring JNICALL
Java_sun_font_FontConfigManager_getFontProperty
(JNIEnv *env, jclass obj, jstring query, jstring property) {
void* libfontconfig = NULL;
FcNameParseFuncType FcNameParse;
FcPatternFormatFuncType FcPatternFormat;
FcConfigSubstituteFuncType FcConfigSubstitute;
FcDefaultSubstituteFuncType FcDefaultSubstitute;
FcFontMatchFuncType FcFontMatch;
FcStrFreeFuncType FcStrFree;
const char *queryPtr = NULL;
const char *propertyPtr = NULL;
FcChar8 *fontFamily = NULL;
FcChar8 *fontPath = NULL;
jstring res = NULL;
if ((libfontconfig = openFontConfig()) == NULL) {
goto cleanup;
}
FcPatternFormat = (FcPatternFormatFuncType)dlsym(libfontconfig, "FcPatternFormat");
FcNameParse = (FcNameParseFuncType)dlsym(libfontconfig, "FcNameParse");
FcConfigSubstitute = (FcConfigSubstituteFuncType)dlsym(libfontconfig, "FcConfigSubstitute");
FcDefaultSubstitute = (FcDefaultSubstituteFuncType)dlsym(libfontconfig, "FcDefaultSubstitute");
FcFontMatch = (FcFontMatchFuncType)dlsym(libfontconfig, "FcFontMatch");
FcStrFree = (FcStrFreeFuncType)dlsym(libfontconfig, "FcStrFree");
queryPtr = (*env)->GetStringUTFChars(env, query, 0);
propertyPtr = (*env)->GetStringUTFChars(env, property, 0);
if (queryPtr == NULL || propertyPtr == NULL) {
goto cleanup;
}
FcPattern *pattern = (*FcNameParse)((FcChar8 *) queryPtr);
if (pattern == NULL) {
goto cleanup;
}
(*FcConfigSubstitute)(NULL, pattern, FcMatchScan);
(*FcDefaultSubstitute)(pattern);
FcResult fcResult;
FcPattern *match = (*FcFontMatch)(0, pattern, &fcResult);
if (match == NULL || fcResult != FcResultMatch) {
goto cleanup;
}
fontFamily = (FcPatternFormat)(match, (FcChar8*) "%{family}");
if (fontFamily == NULL) {
goto cleanup;
}
// result of foundFontName could be set of families, so we left only first family
char *commaPos = strchr((char *) fontFamily, ',');
if (commaPos != NULL) {
*commaPos = '\0';
}
if (strstr(queryPtr, (char *) fontFamily) == NULL) {
goto cleanup;
}
fontPath = (FcPatternFormat)(match, (FcChar8*) propertyPtr);
if (fontPath == NULL) {
goto cleanup;
}
res = (*env)->NewStringUTF(env, (char *) fontPath);
cleanup:
if (fontPath) {
(FcStrFree)(fontPath);
}
if (fontFamily) {
(FcStrFree)(fontFamily);
}
if (propertyPtr) {
(*env)->ReleaseStringUTFChars(env, property, (const char*)propertyPtr);
}
if (queryPtr) {
(*env)->ReleaseStringUTFChars(env, query, (const char*)queryPtr);
}
if (libfontconfig) {
closeFontConfig(libfontconfig, JNI_FALSE);
}
return res;
}
JNIEXPORT void JNICALL
Java_sun_font_FontConfigManager_getFontConfig

View File

@@ -31,18 +31,14 @@ import java.awt.GraphicsEnvironment;
import java.io.File;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Locale;
import java.util.Optional;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;
import java.util.stream.Stream;
import sun.awt.windows.WFontConfiguration;
import sun.font.FontManager;
import sun.font.FontUtilities;
import sun.font.SunFontManager;
import sun.font.TrueTypeFont;
@@ -51,7 +47,6 @@ import sun.font.TrueTypeFont;
*/
@SuppressWarnings("removal")
public final class Win32FontManager extends SunFontManager {
private HashMap<String, String> windowsSystemVersion = null;
private static TrueTypeFont eudcFont;
@@ -195,28 +190,6 @@ public final class Win32FontManager extends SunFontManager {
preferLocaleFonts,preferPropFonts);
}
@Override
protected void registerJREFonts() {
if (versionCheckEnabled) {
windowsSystemVersion = new HashMap<>();
HashMap<String, String> fontToFileMap = new HashMap<>(100);
populateFontFileNameMap(fontToFileMap, new HashMap<>(), new HashMap<>(), Locale.ENGLISH);
for (String key : fontToFileMap.keySet()) {
// find maximum observable platform font's version
Optional<String> version = Stream.concat(Arrays.stream(getPlatformFontDirs(true)), Stream.of("")).
map((path) -> (getTrueTypeVersion(path + File.separator + fontToFileMap.get(key)))).
max(SunFontManager::fontVersionComparator);
windowsSystemVersion.put(key, version.isPresent() ? version.get() : "0");
}
}
super.registerJREFonts();
}
@Override
protected String getSystemFontVersion(TrueTypeFont bundledFont) {
return windowsSystemVersion.getOrDefault(bundledFont.getFullName().toLowerCase(), "0");
}
protected void
populateFontFileNameMap(HashMap<String,String> fontToFileMap,
HashMap<String,String> fontToFamilyNameMap,

View File

@@ -50,7 +50,9 @@ gtest/MetaspaceGtests.java#balanced-no-ccs initial_run generic-all
gtest/MetaspaceGtests.java#reclaim-aggressive-ndebug initial_run generic-all
gtest/LargePageGtests.java#use-large-pages initial_run linux-all,windows-all
gtest/NMTGtests.java JBR-5718 generic-all
gtest/NMTGtests.java#nmt-detail JBR-5718 generic-all
gtest/NMTGtests.java#nmt-off JBR-5718 generic-all
gtest/NMTGtests.java#nmt-summary JBR-5718 generic-all
gc/stress/TestReclaimStringsLeaksMemory.java initial_run windows-all

View File

@@ -117,6 +117,7 @@ java/awt/Desktop/8064934/bug8064934.java JBR-5764 windows-all
java/awt/event/MouseEvent/MouseClickTest/MouseClickTest.java 8168389 windows-all,macosx-all
java/awt/Focus/FocusOwnerFrameOnClick/FocusOwnerFrameOnClick.java 8081489 generic-all
java/awt/Focus/FocusSubRequestTest/FocusSubRequestTest.java JBR-5178 windows-all
java/awt/Focus/FocusTransitionTest/FocusTransitionTest.java JBR-5809 linux-all
java/awt/Focus/FocusTraversalPolicy/ButtonGroupLayoutTraversal/ButtonGroupLayoutTraversalTest.java JBR-5210 windows-all
java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java 8016266 linux-all
java/awt/Focus/IconifiedFrameFocusChangeTest/IconifiedFrameFocusChangeTest.java 6849364 generic-all
@@ -133,6 +134,7 @@ java/awt/FileDialog/FileDialogIconTest/FileDialogIconTest.java 8160558 windows-a
java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java 8204200 windows-all,macosx-all,linux-all
java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.java 8204200 windows-all,macosx-all,linux-all
java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java 8204200 windows-all,macosx-all,linux-all
java/awt/dnd/Button2DragTest/Button2DragTest.java 8310490 linux-all
java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java 8029680 generic-all
java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java JBR-5730 linux-all
java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java JBR-5727 linux-all
@@ -208,6 +210,7 @@ java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java JB
java/awt/datatransfer/DragImage/MultiResolutionDragImageTest.java 8080982 generic-all
java/awt/datatransfer/SystemFlavorMap/AddFlavorTest.java 8079268 linux-all
java/awt/datatransfer/UnicodeTransferTest/UnicodeTransferTest.java 8300704 linux-all
java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java JBR-5812 linux-all
java/awt/Toolkit/SunDisplayChangerLeakTest/SunDisplayChangerLeakTest.java JBR-5051 windows-all
java/awt/Toolkit/RealSync/Test.java 8072110 linux-all,windows-all
java/awt/LightweightComponent/LightweightEventTest/LightweightEventTest.java 8159252,JBR-5050 windows-all,macosx-all
@@ -286,10 +289,12 @@ java/awt/image/multiresolution/MultiResolutionJOptionPaneIconTest.java 8253184,J
java/awt/print/Headless/HeadlessPrinterJob.java 8196088 windows-all
sun/awt/datatransfer/SuplementaryCharactersTransferTest.java 8011371 generic-all
sun/awt/shell/ShellFolderMemoryLeak.java 8197794 windows-all
sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java 8301177 generic-all
sun/java2d/DirectX/OpaqueImageToSurfaceBlitTest/OpaqueImageToSurfaceBlitTest.java JBR-5393 windows-aarch64
sun/java2d/DirectX/OverriddenInsetsTest/OverriddenInsetsTest.java 8196102 generic-all
sun/java2d/DirectX/RenderingToCachedGraphicsTest/RenderingToCachedGraphicsTest.java 8196180,8252812 windows-all,macosx-all,linux-all
sun/java2d/Disposer/TestDisposerLeak.java 8310877 generic-all
sun/java2d/SunGraphics2D/DrawImageBilinear.java 8297175 linux-all
java/awt/Graphics2D/CopyAreaOOB.java JBR-5354 macosx-all,windows-all
java/awt/Graphics2D/DrawString/DisposerTest.java JBR-5010,JBR-5510 linux-aarch64,linux-5.18.2-arch1-1
@@ -305,7 +310,7 @@ sun/java2d/SunGraphics2D/SourceClippingBlitTest/SourceClippingBlitTest.java 8196
sun/java2d/pipe/InterpolationQualityTest.java JBR-5328 windows-all
sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh 8221451,JBR-5359 linux-all,macosx-all,windows-aarch64
sun/java2d/X11SurfaceData/SharedMemoryPixmapsTest/SharedMemoryPixmapsTest.sh 8221451,7184899,JBR-5359 linux-all,macosx-all,windows-aarch64,windows-x64
java/awt/hidpi/ClientAreaOriginWindowsTest.java 8303491 windows-all
java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java 8169469 windows-all
java/awt/print/PrinterJob/PSQuestionMark.java 7003378 generic-all
@@ -316,6 +321,9 @@ java/awt/Component/GetScreenLocTest/GetScreenLocTest.java 4753654 generic-all
java/awt/Component/SetComponentsBounds/SetComponentsBounds.java JBR-4275 linux-all
java/awt/Component/SetEnabledPerformance/SetEnabledPerformance.java 8165863 macosx-all
java/awt/Clipboard/HTMLTransferTest/HTMLTransferTest.java 8017454 macosx-all
java/awt/Frame/MiscUndecorated/ActiveAWTWindowTest.java JBR-5210 windows-all
java/awt/Frame/MiscUndecorated/ActiveSwingWindowTest.java JBR-5210 windows-all
java/awt/Frame/MiscUndecorated/FrameCloseTest.java JBR-5210 windows-all
java/awt/Frame/MiscUndecorated/RepaintTest.java 8266244,JBR-5786 macosx-aarch64,linux-all
java/awt/Robot/HiDPIMouseClick/HiDPIRobotMouseClick.java 8253184 windows-all
java/awt/Robot/ModifierRobotKey/ModifierRobotKeyTest.java 8157173 generic-all
@@ -471,7 +479,7 @@ java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java 8198665,8253184,JBR-551
java/awt/Modal/MultipleDialogs/MultipleDialogs5Test.java 8198665,8253184 macosx-all,windows-all
java/awt/Mouse/EnterExitEvents/DragWindowOutOfFrameTest.java 8177326,8253184 macosx-all,windows-all
java/awt/Mouse/EnterExitEvents/DragWindowTest.java 8023562,8253184,JBR-5710 macosx-all,windows-all,linux-all
java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java 8253184 windows-all
java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java 8253184,JBR-5811 windows-all,linux-all
java/awt/Mouse/EnterExitEvents/ResizingFrameTest.java 8005021,8253184 macosx-all,windows-all
java/awt/Mouse/EnterExitEvents/FullscreenEnterEventTest.java 8051455 macosx-all
java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.java 8253184,JBR-5709 windows-all,linux-all
@@ -575,7 +583,7 @@ java/awt/Modal/OnTop/OnTopTKModal4Test.java 8198666,8253184 macosx-all,windows-a
java/awt/Modal/OnTop/OnTopTKModal5Test.java 8198666,8253184 macosx-all,windows-all
java/awt/Modal/OnTop/OnTopTKModal6Test.java 8198666,8253184 macosx-all,windows-all
java/awt/List/EmptyListEventTest/EmptyListEventTest.java JBR-5387 linux-all
java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.java JBR-86 windows-x64
java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.java JBR-86 windows-all
java/awt/List/ItemEventTest/ItemEventTest.java JBR-5711 linux-all
java/awt/List/KeyEventsTest/KeyEventsTest.java JBR-5210 windows-all
java/awt/List/ListMultipleSelectTest/ListMultipleSelectTest.java JBR-5555 windows-all
@@ -585,6 +593,7 @@ javax/print/PrintSEUmlauts/PrintSEUmlauts.java 8135174 generic-all
java/awt/image/VolatileImage/CustomCompositeTest.java 8199002 windows-all,linux-all
java/awt/image/VolatileImage/GradientPaints.java 8199003 linux-all
java/awt/JAWT/JAWT.sh 8197798 windows-all,linux-all
java/awt/Desktop/8064934/bug8064934.java JBR-5799 windows-all
java/awt/datatransfer/ConstructFlavoredObjectTest/ConstructFlavoredObjectTest.java 8202860 linux-all
java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java 8202790 macosx-all,linux-all
java/awt/Choice/ChoicePopupLocation/ChoicePopupLocation.java 8202931 macosx-all,linux-all
@@ -833,7 +842,7 @@ javax/swing/plaf/basic/BasicComboPopup/JComboBoxPopupLocation/JComboBoxPopupLoca
javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java 8253184 windows-all
javax/swing/plaf/basic/BasicTextUI/8001470/bug8001470.java 8233177 linux-all,windows-all
javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java 8253184 windows-all
javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java 8253184 linux-all,windows-all
javax/swing/plaf/nimbus/8041642/bug8041642.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
javax/swing/plaf/nimbus/8057791/bug8057791.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
javax/swing/plaf/nimbus/TestNimbusBGColor.java JBR-5359 windows-aarch64
@@ -842,7 +851,7 @@ javax/swing/plaf/windows/6921687/bug6921687.java 8253184 windows-all
javax/swing/plaf/windows/WindowsRootPaneUI/WrongAltProcessing/WrongAltProcessing.java JBR-4372 windows-all
javax/swing/Box/TestBoxFiller.java JBR-5210 windows-all
javax/swing/DefaultButtonModel/DefaultButtonModelCrashTest.java JBR-5210 windows-all
javax/swing/DefaultButtonModel/DefaultButtonModelCrashTest.java JBR-5210,JBR-5799 windows-all
javax/swing/GraphicsConfigNotifier/StalePreferredSize.java JBR-5210 windows-all
javax/swing/JButton/4368790/bug4368790.java JBR-5210 windows-all
javax/swing/JButton/4659800/SpaceKeyActivatesButton.java JBR-4949 linux-all,windows-all
@@ -895,6 +904,7 @@ javax/swing/JColorChooser/Test8051548.java JBR-5210 windows-all
javax/swing/JComboBox/4743225/bug4743225.java JBR-5210 windows-all
javax/swing/JComboBox/6236162/bug6236162.java JBR-5210 windows-all
javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java JBR-5210 windows-all
javax/swing/JEditorPane/bug4714674.java JBR-5810 windows-all
javax/swing/JComboBox/DisabledComboBoxFontTestAuto.java 8310072 linux-all,windows-all
javax/swing/JEditorPane/JEditorPaneGCSwitchTest/JEditorPaneGCSwitchTest_i18n.java JBR-912 windows-all
javax/swing/JEditorPane/JEditorPaneGCSwitchTest/JEditorPaneGCSwitchTest.java JBR-912 windows-all
@@ -930,6 +940,7 @@ javax/swing/JInternalFrame/6647340/bug6647340.java 8253184 windows-all
javax/swing/JInternalFrame/8145060/TestJInternalFrameMinimize.java JBR-788 windows-all,linux-all
javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java JBR-5539 windows-x64
javax/swing/JInternalFrame/Test6325652.java 8224977 macosx-all,windows-all
javax/swing/JInternalFrame/Test6505027.java 8288428 linux-all
javax/swing/JInternalFrame/Test6802868.java 8253184 windows-all
javax/swing/JPopupMenu/4634626/bug4634626.java 8253184 windows-all
javax/swing/JPopupMenu/4760494/bug4760494.java 8253184 windows-all
@@ -1114,6 +1125,7 @@ java/awt/TextArea/TextAreaTwicePack/TextAreaTwicePack.java 8253184 windows-all
java/awt/TextField/OverScrollTest/OverScrollTest.java 8253184 windows-all
java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter.java 8254841 macosx-all
java/awt/Focus/AppletInitialFocusTest/AppletInitialFocusTest1.java 8256289,JBR-5359 windows-x64,windows-aarch64
java/awt/Focus/RowToleranceTransitivityTest.java JBR-5751 windows-all
java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java 8258103,8253184 linux-all,windows-all
java/util/Properties/PropertiesStoreTest.java 8282023 generic-all
@@ -1183,7 +1195,7 @@ javax/swing/SwingUtilities/4917669/bug4917669.java
javax/swing/SwingUtilities/7146377/bug7146377.java JBR-4679 windows-all
java/awt/dnd/AcceptDropMultipleTimes/AcceptDropMultipleTimes.java JBR-4880 windows-all
java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java JBR-4880,JBR-5706 windows-all,linux-aarch64
java/awt/event/KeyEvent/DeadKey/DeadKeySystemAssertionDialog.java JBR-4880,JBR-5706 windows-all,linux-all
java/awt/event/KeyEvent/KeyCharTest/KeyCharTest.java JBR-4880 windows-all
java/awt/Frame/LayoutOnMaximizeTest/LayoutOnMaximizeTest.java JBR-4880 windows-all
java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java JBR-4880 windows-all
@@ -1201,7 +1213,7 @@ javax/swing/JSpinner/8223788/JSpinnerButtonFocusTest.java JBR-5210 windows-all
javax/swing/JSpinner/JSpinnerFocusTest.java JBR-5288 windows-all
javax/swing/JSpinner/SpinnerTest.java JBR-4880 windows-all
javax/swing/JSpinner/TestJSpinnerFocusLost.java JBR-5210 windows-all
javax/swing/JTable/7068740/bug7068740.java 8197552 windows-all
javax/swing/JTable/7068740/bug7068740.java 8197552,8305780 windows-all,linux-all
javax/swing/text/FlowView/LayoutTest.java JBR-4880 windows-all
javax/swing/text/html/7189299/bug7189299.java JBR-4880 windows-all
jb/java/jcef/HandleJSQueryTest3314.sh JBR-4866 linux-all
@@ -1221,6 +1233,7 @@ jb/javax/swing/JDialog/JDialog186.java JBR-5210 windows-all
jb/javax/swing/JDialog/JDialog392.java JBR-4941 macosx-all,linux-all
jb/javax/swing/JDialog/JDialog705.java JBR-4934 generic-all
jb/javax/swing/JEditorPane/ZeroMargin.java 8242410 generic-all
jb/javax/swing/JPopupMenu/JPopupMenuOutOfWindowTest.java JBR-5746 windows-all,linux-all
jb/java/awt/Window/ModalDialogAndPopup.java JBR-4984 macosx-all
jb/java/awt/Window/ZOrderOnModalDialogActivation.java JBR-5714 windows-all
@@ -1259,10 +1272,10 @@ javax/sound/sampled/spi/MixerProvider/ExpectedNPEOnNull.java JBR-4455 linux-aarc
javax/sound/sampled/Clip/ClipIsRunningAfterStop.java JBR-4455 linux-aarch64
javax/sound/sampled/Mixers/BogusMixers.java JBR-4455 linux-aarch64
java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
java/awt/Choice/RemoveAllShrinkTest/RemoveAllShrinkTest.java JBR-5359,JBR-5510,8310487 windows-aarch64,linux-5.18.2-arch1-1,linux-all
java/awt/Choice/ResizeAutoClosesChoice/ResizeAutoClosesChoice.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
java/awt/ColorClass/XRenderTranslucentColorDrawTest.java JBR-5359 windows-aarch64
java/awt/Frame/InvisibleOwner/InvisibleOwner.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
java/awt/Frame/InvisibleOwner/InvisibleOwner.java JBR-5359,JBR-5510,8285094 windows-aarch64,linux-all
java/awt/Graphics/CopyScaledArea/CopyScaledAreaTest.java JBR-5359 windows-aarch64
java/awt/Graphics2D/FillTexturePaint/FillTexturePaint.java JBR-5359 windows-aarch64
java/awt/Graphics2D/FlipDrawImage/FlipDrawImage.java JBR-5359 windows-aarch64
@@ -1292,19 +1305,19 @@ javax/swing/JSplitPane/4820080/JSplitPaneDragColorTest.java JBR-5359,JBR-5510 wi
javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
javax/swing/text/html/CSS/4530474/bug4530474.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
jb/java/awt/CustomTitleBar/ActionListenerTest.java JBR-5550 windows-all
jb/java/awt/CustomTitleBar/DialogNativeControlsTest.java JBR-5359 windows-aarch64
jb/java/awt/CustomTitleBar/FrameNativeControlsTest.java JBR-5359 windows-aarch64
jb/java/awt/CustomTitleBar/JDialogNativeControlsTest.java JBR-5359 windows-aarch64
jb/java/awt/CustomTitleBar/DialogNativeControlsTest.java JBR-5359,JBR-5345 windows-aarch64,windows-x64
jb/java/awt/CustomTitleBar/FrameNativeControlsTest.java JBR-5359,JBR-5345 windows-aarch64,windows-x64
jb/java/awt/CustomTitleBar/JDialogNativeControlsTest.java JBR-5359,JBR-5345 windows-aarch64,windows-x64
jb/java/awt/CustomTitleBar/HitTestClientArea.java JBR-5551 windows-all
jb/java/awt/CustomTitleBar/HitTestNonClientArea.java JBR-5550 windows-all
jb/java/awt/CustomTitleBar/MaximizeWindowTest.java JBR-5550 windows-all
jb/java/awt/CustomTitleBar/MinimizingWindowTest.java JBR-5359 windows-aarch64
jb/java/awt/CustomTitleBar/NativeControlsVisibilityTest.java JBR-5359 windows-aarch64
jb/java/awt/CustomTitleBar/WindowsControlWidthTest.java JBR-5359 windows-aarch64
jb/java/awt/CustomTitleBar/MinimizingWindowTest.java JBR-5359,JBR-5345 windows-aarch64,windows-x64
jb/java/awt/CustomTitleBar/NativeControlsVisibilityTest.java JBR-5359,JBR-5345 windows-aarch64,windows-x64
jb/java/awt/CustomTitleBar/WindowsControlWidthTest.java JBR-5359,JBR-5345 windows-aarch64,windows-x64
sanity/client/SwingSet/src/EditorPaneDemoTest.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
sun/java2d/AcceleratedXORModeTest.java JBR-5359 windows-aarch64
sun/java2d/GdiRendering/ClipShapeRendering.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
sun/java2d/GdiRendering/InsetClipping.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
sun/java2d/GdiRendering/InsetClipping.java 7124403,JBR-5359,JBR-5510 windows-x64,macosx-all,windows-aarch64,linux-5.18.2-arch1-1
java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.java JBR-5510 linux-5.18.2-arch1-1
java/awt/Insets/DialogInsets.java JBR-5510 linux-5.18.2-arch1-1
@@ -1315,3 +1328,6 @@ javax/swing/JSpinner/4670051/DateFieldUnderCursorTest.java JBR-5510 linux-5.18.2
javax/swing/JSpinner/4788637/bug4788637.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/LookAndFeel/8145547/DemandGTK2.sh JBR-5510 linux-5.18.2-arch1-1
javax/swing/LookAndFeel/8145547/DemandGTK3.sh JBR-5510 linux-5.18.2-arch1-1
java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java JBR-5765 macosx-all
jb/sun/awt/macos/InputMethodTest/FocusMoveUncommitedCharactersTest.java JBR-5765 macosx-all

View File

@@ -12,7 +12,6 @@ java/awt/Focus/UnaccessibleChoice/AccessibleChoiceTest.java nobug windows-all
java/awt/MenuBar/SeparatorsNavigation/SeparatorsNavigation.java nobug windows-all
java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java nobug windows-all
java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java nobug windows-all
java/awt/Mouse/EnterExitEvents/ModalDialogEnterExitEventsTest.java nobug windows-all,linux-all
java/awt/Mouse/ExtraMouseClick/ExtraMouseClick.java JBR-4354 windows-all,linux-all # linux: JBR-4354
java/awt/Mouse/MouseComboBoxTest/MouseComboBoxTest.java nobug windows-all
java/awt/Paint/PaintNativeOnUpdate.java nobug windows-all
@@ -39,7 +38,6 @@ javax/swing/JEditorPane/8195095/ImageViewTest.java nobug windows-all
javax/swing/JFrame/8016356/bug8016356.java nobug windows-all
javax/swing/JFrame/8175301/ScaledFrameBackgroundTest.java nobug windows-all
javax/swing/JInternalFrame/5066752/bug5066752.java nobug windows-all
javax/swing/JInternalFrame/Test6505027.java nobug windows-all
javax/swing/JMenu/6538132/6538132.java 8197552 windows-all
javax/swing/JMenu/8072900/WrongSelectionOnMouseOver.java nobug windows-all,linux-all
javax/swing/JMenuItem/6209975/bug6209975.java JBR-4894 windows-all
@@ -62,12 +60,13 @@ javax/swing/JTree/DnD/LastNodeLowerHalfDrop.java 8159131 linux-all,windows-all
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java 8194128 macosx-all,windows-all
javax/swing/JWindow/ShapedAndTranslucentWindows/SetShapeAndClickSwing.java 8013450 macosx-all,windows-all
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java 8233582,nobug linux-all,windows-all
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java nobug windows-all
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java 8233582,nobug linux-all,windows-all
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentJComboBox.java 8024627 macosx-all,windows-all
javax/swing/JWindow/ShapedAndTranslucentWindows/TranslucentWindowClickSwing.java nobug windows-all
javax/swing/plaf/nimbus/8057791/bug8057791.java nobug windows-all
javax/swing/plaf/nimbus/TestNimbusOverride.java nobug linux-all,windows-all
javax/swing/plaf/windows/6921687/bug6921687.java nobug windows-all
javax/swing/ProgressMonitor/ProgressMonitorEscapeKeyPress.java nobug windows-all
javax/swing/text/CSSBorder/6796710/bug6796710.java nobug windows-all
javax/swing/text/DefaultCaret/HidingSelection/HidingSelectionTest.java 8194048 windows-all,linux-all nobug: linux, 8194048 windows
javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java nobug windows-all