Compare commits

..

3 Commits

Author SHA1 Message Date
Vitaly Provodin
c1c860ae41 fixup! update exclude list on results of 21.0.2_b357.3 test runs 2024-02-11 06:34:15 +07:00
Vitaly Provodin
9af144c09a update exclude list on results of 21.0.2_b357.3 test runs 2024-02-11 05:27:24 +07:00
Vitaly Provodin
0325d0754d update exclude list on results of 21.0.2_b357 test runs 2024-02-10 08:04:22 +07:00
41 changed files with 267 additions and 576 deletions

View File

@@ -59,10 +59,8 @@ function create_image_bundle {
libc_type_suffix=''
fastdebug_infix=''
__cds_opt=''
if is_musl; then libc_type_suffix='musl-' ; fi
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then __cds_opt="--generate-cds-archive"; fi
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}aarch64-${fastdebug_infix}b${build_number}
@@ -72,13 +70,14 @@ function create_image_bundle {
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
$JSDK/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
$__cds_opt --add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__root_dir"/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
mv release "$IMAGES_DIR"/"$__root_dir"/release
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
cp $IMAGES_DIR/jdk/lib/server/*.jsa "$IMAGES_DIR"/"$__root_dir"/lib/server
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
fi

View File

@@ -59,10 +59,8 @@ function create_image_bundle {
libc_type_suffix=''
fastdebug_infix=''
__cds_opt=''
if is_musl; then libc_type_suffix='musl-' ; fi
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then __cds_opt="--generate-cds-archive"; fi
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x64-${fastdebug_infix}b${build_number}
@@ -72,13 +70,14 @@ function create_image_bundle {
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
$JSDK/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
$__cds_opt --add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__root_dir"/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
mv release "$IMAGES_DIR"/"$__root_dir"/release
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
cp $IMAGES_DIR/jdk/lib/server/*.jsa "$IMAGES_DIR"/"$__root_dir"/lib/server
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
fi

View File

@@ -47,10 +47,8 @@ function create_image_bundle {
libc_type_suffix=''
fastdebug_infix=''
__cds_opt=''
if is_musl; then libc_type_suffix='musl-' ; fi
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then __cds_opt="--generate-cds-archive"; fi
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x86-${fastdebug_infix}b${build_number}
@@ -60,13 +58,14 @@ function create_image_bundle {
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
$JSDK/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
$__cds_opt --add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__root_dir"
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__root_dir"/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
mv release "$IMAGES_DIR"/"$__root_dir"/release
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
cp $IMAGES_DIR/jdk/lib/server/*.jsa "$IMAGES_DIR"/"$__root_dir"/lib/server
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
fi

View File

@@ -51,8 +51,6 @@ function create_image_bundle {
__modules=$4
fastdebug_infix=''
__cds_opt=''
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then __cds_opt="--generate-cds-archive"; fi
tmp=.bundle.$$.tmp
mkdir "$tmp" || do_exit $?
@@ -67,13 +65,14 @@ function create_image_bundle {
echo Running jlink...
"$JSDK"/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
$__cds_opt --add-modules "$__modules" --output "$JRE_CONTENTS/Home" || do_exit $?
--add-modules "$__modules" --output "$JRE_CONTENTS/Home" || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$JRE_CONTENTS/Home/release"
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $JRE_CONTENTS/Home/release > release
mv release $JRE_CONTENTS/Home/release
cp $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home/lib/src.zip $JRE_CONTENTS/Home/lib
cp $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home/lib/server/*.jsa $JRE_CONTENTS/Home/lib/server
copy_jmods "$__modules" "$__modules_path" "$JRE_CONTENTS"/Home/jmods
zip_native_debug_symbols $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk "${JBR}_diz"
fi
@@ -89,7 +88,7 @@ function create_image_bundle {
echo Creating "$JBR".tar.gz ...
# Normalize timestamp
find "$tmp"/"$__root_dir" -print0 | xargs -0 touch -c -h -t "$TOUCH_TIME"
#find "$tmp"/"$__root_dir" -print0 | xargs -0 touch -c -h -t "$TOUCH_TIME"
(cd "$tmp" &&
find "$__root_dir" -print0 | LC_ALL=C sort -z | \

View File

@@ -75,6 +75,7 @@ function create_image_bundle {
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
mv release $__root_dir/release
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
cp $IMAGES_DIR/jdk/bin/server/*.jsa $__root_dir/bin/server
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
done

View File

@@ -52,8 +52,6 @@ function create_image_bundle {
__modules=$4
fastdebug_infix=''
__cds_opt=''
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then __cds_opt="--generate-cds-archive"; fi
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-x64-${fastdebug_infix}b${build_number}
@@ -61,13 +59,14 @@ function create_image_bundle {
echo Running jlink ...
${JSDK}/bin/jlink \
--module-path $__modules_path --no-man-pages --compress=2 \
$__cds_opt --add-modules $__modules --output $__root_dir || do_exit $?
--add-modules $__modules --output $__root_dir || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__root_dir/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__root_dir/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
mv release $__root_dir/release
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
cp $IMAGES_DIR/jdk/bin/server/*.jsa $__root_dir/bin/server
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
done

View File

@@ -48,8 +48,6 @@ function create_image_bundle {
__modules=$4
fastdebug_infix=''
__cds_opt=''
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then __cds_opt="--generate-cds-archive"; fi
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
__root_dir=${__bundle_name}-${JBSDK_VERSION}-windows-x86-${fastdebug_infix}b${build_number}
@@ -57,13 +55,14 @@ function create_image_bundle {
echo Running jlink ...
${JSDK}/bin/jlink \
--module-path $__modules_path --no-man-pages --compress=2 \
$__cds_opt --add-modules $__modules --output $__root_dir || do_exit $?
--add-modules $__modules --output $__root_dir || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__root_dir/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
mv release $__root_dir/release
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
cp $IMAGES_DIR/jdk/bin/server/*.jsa $__root_dir/bin/server
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
done

View File

@@ -1033,16 +1033,14 @@ void LinkResolver::resolve_field(fieldDescriptor& fd,
!fd.is_static() &&
!m->is_object_initializer());
if (!AllowEnhancedClassRedefinition || !m->name()->equals("$$ha$clinit")) {
if (is_initialized_static_final_update || is_initialized_instance_final_update) {
ResourceMark rm(THREAD);
stringStream ss;
ss.print("Update to %s final field %s.%s attempted from a different method (%s) than the initializer method %s ",
is_static ? "static" : "non-static", resolved_klass->external_name(), fd.name()->as_C_string(),
m->name()->as_C_string(),
is_static ? "<clinit>" : "<init>");
THROW_MSG(vmSymbols::java_lang_IllegalAccessError(), ss.as_string());
}
if (is_initialized_static_final_update || is_initialized_instance_final_update) {
ResourceMark rm(THREAD);
stringStream ss;
ss.print("Update to %s final field %s.%s attempted from a different method (%s) than the initializer method %s ",
is_static ? "static" : "non-static", resolved_klass->external_name(), fd.name()->as_C_string(),
m->name()->as_C_string(),
is_static ? "<clinit>" : "<init>");
THROW_MSG(vmSymbols::java_lang_IllegalAccessError(), ss.as_string());
}
}
}

View File

@@ -1151,6 +1151,6 @@ class CAccessibility implements PropertyChangeListener {
}
return false;
}
}, c, false);
}, c);
}
}

View File

@@ -45,9 +45,6 @@
// keyboard layout
static NSString *kbdLayout;
// workaround for JBR-6704
static unichar lastCtrlCombo;
@interface AWTView()
@property (retain) CDropTarget *_dropTarget;
@property (retain) CDragSource *_dragSource;
@@ -90,7 +87,6 @@ extern bool isSystemShortcut_NextWindowInApplication(NSUInteger modifiersMask, i
fInputMethodLOCKABLE = NULL;
fKeyEventsNeeded = NO;
fProcessingKeystroke = NO;
lastCtrlCombo = 0;
fEnablePressAndHold = shouldUsePressAndHold();
fInPressAndHold = NO;
@@ -213,31 +209,24 @@ extern bool isSystemShortcut_NextWindowInApplication(NSUInteger modifiersMask, i
[NSApp activateIgnoringOtherApps:YES];
}
JNIEnv *env = [ThreadUtilities getJNIEnvUncached];
NSString *checkForInputManagerInMouseDown =
[PropertiesUtilities
javaSystemPropertyForKey:@"apple.awt.checkForInputManagerInMouseDown"
withEnv:env];
if ([@"true" isCaseInsensitiveLike:checkForInputManagerInMouseDown]) {
NSInputManager *inputManager = [NSInputManager currentInputManager];
if ([inputManager wantsToHandleMouseEvents]) {
NSInputManager *inputManager = [NSInputManager currentInputManager];
if ([inputManager wantsToHandleMouseEvents]) {
#if IM_DEBUG
NSLog(@"-> IM wants to handle event");
NSLog(@"-> IM wants to handle event");
#endif
if ([inputManager handleMouseEvent:event]) {
#if IM_DEBUG
NSLog(@"-> Event was handled.");
return;
#endif
}
if (![inputManager handleMouseEvent:event]) {
[self deliverJavaMouseEvent: event];
} else {
#if IM_DEBUG
NSLog(@"-> IM does not want to handle event");
NSLog(@"-> Event was handled.");
#endif
}
} else {
#if IM_DEBUG
NSLog(@"-> IM does not want to handle event");
#endif
[self deliverJavaMouseEvent: event];
}
[self deliverJavaMouseEvent:event];
}
- (void) mouseUp: (NSEvent *)event {
@@ -376,12 +365,6 @@ static void debugPrintNSEvent(NSEvent* event, const char* comment) {
NSString *eventCharacters = [event characters];
if (([event modifierFlags] & NSControlKeyMask) && [eventCharacters length] == 1) {
lastCtrlCombo = [eventCharacters characterAtIndex:0];
} else {
lastCtrlCombo = 0;
}
// Allow TSM to look at the event and potentially send back NSTextInputClient messages.
[self interpretKeyEvents:[NSArray arrayWithObject:event]];
@@ -1157,14 +1140,6 @@ static jclass jc_CInputMethod = NULL;
fprintf(stderr, "AWTView InputMethod Selector Called : [insertText]: %s\n", [aString UTF8String]);
#endif // IM_DEBUG
NSMutableString * useString = [self parseString:aString];
// See JBR-6704
if (lastCtrlCombo && !fProcessingKeystroke && [useString length] == 1 && [useString characterAtIndex:0] == lastCtrlCombo) {
lastCtrlCombo = 0;
return;
}
if (fInputMethodLOCKABLE == NULL) {
return;
}
@@ -1177,6 +1152,8 @@ static jclass jc_CInputMethod = NULL;
// text, or 'text in progress'. We also need to send the event if we get an insert text out of the blue!
// (i.e., when the user uses the Character palette or Inkwell), or when the string to insert is a complex
// Unicode value.
NSMutableString * useString = [self parseString:aString];
BOOL usingComplexIM = [self hasMarkedText] || !fProcessingKeystroke;
#ifdef IM_DEBUG
@@ -1186,7 +1163,6 @@ static jclass jc_CInputMethod = NULL;
NSLog(@"insertText kbdlayout %@ ",(NSString *)kbdLayout);
NSLog(@"utf8Length %lu utf16Length %lu", (unsigned long)utf8Length, (unsigned long)utf16Length);
NSLog(@"hasMarkedText: %s, fProcessingKeyStroke: %s", [self hasMarkedText] ? "YES" : "NO", fProcessingKeystroke ? "YES" : "NO");
#endif // IM_DEBUG
JNIEnv *env = [ThreadUtilities getJNIEnv];
@@ -1202,7 +1178,7 @@ static jclass jc_CInputMethod = NULL;
if (usingComplexIM) {
DECLARE_METHOD(jm_insertText, jc_CInputMethod, "insertText", "(Ljava/lang/String;)V");
jstring insertedText = NSStringToJavaString(env, useString);
jstring insertedText = NSStringToJavaString(env, useString);
(*env)->CallVoidMethod(env, fInputMethodLOCKABLE, jm_insertText, insertedText);
CHECK_EXCEPTION();
(*env)->DeleteLocalRef(env, insertedText);

View File

@@ -655,9 +655,9 @@ Java_sun_java2d_metal_MTLRenderQueue_flushBuffer
CHECK_PREVIOUS_OP(MTL_OP_OTHER);
jlong pConfigInfo = NEXT_LONG(b);
CONTINUE_IF_NULL(mtlc);
[mtlc commitCommandBuffer:YES display:NO];
MTLTR_FreeGlyphCacheAA();
MTLTR_FreeGlyphCacheLCD();
[mtlc.encoderManager endEncoder];
MTLGC_DestroyMTLGraphicsConfig(pConfigInfo);
mtlc = NULL;
break;

View File

@@ -122,9 +122,6 @@ public class FileFontStrike extends PhysicalStrike {
private static boolean useNativesForRotatedText;
// force pipeline of text rendering use FreeType
private static boolean forceFreeTypeRendering;
private static boolean useDirectWrite;
// DirectWrite rendering options' values can be found in MSDN documentation
@@ -157,7 +154,6 @@ public class FileFontStrike extends PhysicalStrike {
public Void run() {
String rotatedProperty = System.getProperty("rotated.text.native.rendering");
useNativesForRotatedText = rotatedProperty == null || Boolean.parseBoolean(rotatedProperty);
forceFreeTypeRendering = Boolean.getBoolean("freetype.font.rendering");
useDirectWrite = Boolean.getBoolean("directwrite.font.rendering") && isDirectWriteAvailable();
if (useDirectWrite) {
String options = System.getProperty("directwrite.font.rendering.options");
@@ -309,8 +305,8 @@ public class FileFontStrike extends PhysicalStrike {
pts = Math.abs(matrix[1]);
}
intPtSize = (int) pts;
useNatives = !forceFreeTypeRendering && (rotation == 0 || rotation > 0 && useNativesForRotatedText) &&
pts >= 3.0 && pts <= 100.0 && (getImageWithAdvance || desc.fmHint == INTVAL_FRACTIONALMETRICS_ON) &&
useNatives = (rotation == 0 || rotation > 0 && useNativesForRotatedText) && pts >= 3.0 && pts <= 100.0 &&
(getImageWithAdvance || desc.fmHint == INTVAL_FRACTIONALMETRICS_ON) &&
!((TrueTypeFont)fileFont).useEmbeddedBitmapsForSize(intPtSize) &&
!((TrueTypeFont)fileFont).hasCOLRTable();
}

View File

@@ -111,9 +111,9 @@ public class WLComponentPeer implements ComponentPeer {
WLComponentPeer(Component target) {
this.target = target;
this.background = target.getBackground();
Dimension size = constrainSize(target.getBounds().getSize());
width = size.width;
height = size.height;
Rectangle bounds = target.getBounds();
width = bounds.width;
height = bounds.height;
final WLGraphicsConfig config = (WLGraphicsConfig)target.getGraphicsConfiguration();
wlBufferScale = config.getScale();
surfaceData = config.createSurfaceData(this);
@@ -411,7 +411,6 @@ public class WLComponentPeer implements ComponentPeer {
}
public void setBounds(int newX, int newY, int newWidth, int newHeight, int op) {
Dimension newSize = constrainSize(newWidth, newHeight);
boolean positionChanged = (op == SET_BOUNDS || op == SET_LOCATION);
if (positionChanged && isVisible()) {
// Wayland provides the ability to programmatically change the location of popups,
@@ -429,9 +428,9 @@ public class WLComponentPeer implements ComponentPeer {
WLToolkit.postEvent(new ComponentEvent(getTarget(), ComponentEvent.COMPONENT_MOVED));
}
boolean sizeChanged = (op == SET_BOUNDS || op == SET_SIZE || op == SET_CLIENT_SIZE);
boolean sizeChanged = (op == SET_BOUNDS || op == SET_SIZE || op == SET_CLIENT_SIZE);
if (sizeChanged) {
setSizeTo(newSize.width, newSize.height);
setSizeTo(newWidth, newHeight);
if (log.isLoggable(PlatformLogger.Level.FINE)) {
log.fine(String.format("%s is resizing its buffer to %dx%d with %dx scale",
this, getBufferWidth(), getBufferHeight(), getBufferScale()));
@@ -449,9 +448,8 @@ public class WLComponentPeer implements ComponentPeer {
private void setSizeTo(int newWidth, int newHeight) {
synchronized (dataLock) {
Dimension newSize = constrainSize(newWidth, newHeight);
this.width = newSize.width;
this.height = newSize.height;
this.width = newWidth;
this.height = newHeight;
}
}
@@ -682,13 +680,11 @@ public class WLComponentPeer implements ComponentPeer {
}
void setMinimumSizeTo(Dimension minSize) {
Dimension constrainedSize = constrainSize(minSize);
performLocked(() -> nativeSetMinimumSize(nativePtr, constrainedSize.width, constrainedSize.height));
performLocked(() -> nativeSetMinimumSize(nativePtr, minSize.width, minSize.height));
}
void setMaximumSizeTo(Dimension maxSize) {
Dimension constrainedSize = constrainSize(maxSize);
performLocked(() -> nativeSetMaximumSize(nativePtr, constrainedSize.width, constrainedSize.height));
performLocked(() -> nativeSetMaximumSize(nativePtr, maxSize.width, maxSize.height));
}
void showWindowMenu(int x, int y) {
@@ -1213,25 +1209,6 @@ public class WLComponentPeer implements ComponentPeer {
}
}
private static Dimension getMaxBufferBounds() {
// Need to limit the maximum size of the window so that the creation of the underlying
// buffers for it may succeed at least in theory. A window that is too large may crash
// JVM or even the window manager.
Dimension bounds = WLGraphicsEnvironment.getSingleInstance().getTotalDisplayBounds();
bounds.width *= 2;
bounds.height *= 2;
return bounds;
}
private Dimension constrainSize(int width, int height) {
Dimension maxBounds = getMaxBufferBounds();
return new Dimension(Math.min(width, maxBounds.width), Math.min(height, maxBounds.height));
}
private Dimension constrainSize(Dimension bounds) {
return constrainSize(bounds.width, bounds.height);
}
// The following methods exist to prevent native code from using stale pointers (pointing to memory already
// deallocated). This includes pointers to object allocated by the toolkit directly, as well as those allocated by
// Wayland client API.

View File

@@ -188,20 +188,24 @@ public class WLGraphicsDevice extends GraphicsDevice {
}
int getResolution() {
// must match the horizontal resolution to pass tests
return getResolutionX(defaultConfig);
Rectangle bounds = defaultConfig.getBounds();
if (bounds.width == 0 || bounds.height == 0) return 0;
double diagonalPixel = Math.sqrt(bounds.width * bounds.width + bounds.height * bounds.height);
double diagonalMm = Math.sqrt(widthMm * widthMm + heightMm * heightMm);
return (int) (diagonalPixel / diagonalMm * MM_IN_INCH);
}
int getResolutionX(WLGraphicsConfig config) {
Rectangle bounds = config.getBounds();
if (bounds.width == 0) return 0;
return (int)((double)bounds.width * MM_IN_INCH / widthMm);
return (int)((double)bounds.width / widthMm * MM_IN_INCH);
}
int getResolutionY(WLGraphicsConfig config) {
Rectangle bounds = config.getBounds();
if (bounds.height == 0) return 0;
return (int)((double)bounds.height * MM_IN_INCH / heightMm);
return (int)((double)bounds.height / heightMm * MM_IN_INCH);
}
@Override

View File

@@ -26,16 +26,15 @@
package sun.awt.wl;
import java.awt.Dimension;
import java.awt.GraphicsConfiguration;
import java.awt.EventQueue;
import java.awt.GraphicsDevice;
import java.awt.Rectangle;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import sun.awt.SunToolkit;
import sun.java2d.SunGraphicsEnvironment;
import sun.java2d.SurfaceManagerFactory;
import sun.java2d.UnixSurfaceManagerFactory;
@@ -59,8 +58,6 @@ public class WLGraphicsEnvironment extends SunGraphicsEnvironment {
AccessController.doPrivileged(
(PrivilegedAction<String>) () -> System.getProperty("sun.java2d.vulkan.deviceNumber", "0"));
private final Dimension totalDisplayBounds = new Dimension();
static {
vulkanRequested = "true".equalsIgnoreCase(vulkanOption);
try {
@@ -160,8 +157,6 @@ public class WLGraphicsEnvironment extends SunGraphicsEnvironment {
}
}
updateTotalDisplayBounds();
// Skip notification during the initial configuration events
if (WLToolkit.isInitialized()) {
displayChanged();
@@ -203,7 +198,6 @@ public class WLGraphicsEnvironment extends SunGraphicsEnvironment {
}
}
updateTotalDisplayBounds();
displayChanged();
}
@@ -230,24 +224,4 @@ public class WLGraphicsEnvironment extends SunGraphicsEnvironment {
return null;
}
}
public Dimension getTotalDisplayBounds() {
synchronized (totalDisplayBounds) {
return totalDisplayBounds.getSize();
}
}
private void updateTotalDisplayBounds() {
synchronized (devices) {
Rectangle virtualBounds = new Rectangle();
for (GraphicsDevice gd : devices) {
for (GraphicsConfiguration gc : gd.getConfigurations()) {
virtualBounds = virtualBounds.union(gc.getBounds());
}
}
synchronized (totalDisplayBounds) {
totalDisplayBounds.setSize(virtualBounds.getSize());
}
}
}
}

View File

@@ -32,9 +32,7 @@ import sun.java2d.wl.WLSMSurfaceData;
import sun.util.logging.PlatformLogger;
import java.awt.Transparency;
import java.awt.color.ColorSpace;
import java.awt.image.ColorModel;
import java.awt.image.DataBuffer;
import java.awt.image.DirectColorModel;
/**
@@ -59,9 +57,11 @@ public class WLSMGraphicsConfig extends WLGraphicsConfig {
boolean translucencyCapable) {
super(device, width, height, scale);
this.translucencyCapable = translucencyCapable;
this.colorModel = colorModelFor(translucencyCapable ? Transparency.TRANSLUCENT : Transparency.OPAQUE);
// Note: GNOME Shell definitely expects alpha values to be pre-multiplied
this.surfaceType = translucencyCapable ? SurfaceType.IntArgbPre : SurfaceType.IntRgb;
this.colorModel
= translucencyCapable
? new DirectColorModel(32, 0xff0000, 0xff00, 0xff, 0xff000000)
: new DirectColorModel(24, 0xff0000, 0xff00, 0xff);
this.surfaceType = translucencyCapable ? SurfaceType.IntArgb : SurfaceType.IntRgb;
}
public static WLSMGraphicsConfig getConfig(WLGraphicsDevice device,
@@ -87,23 +87,12 @@ public class WLSMGraphicsConfig extends WLGraphicsConfig {
@Override
public ColorModel getColorModel(int transparency) {
return colorModelFor(transparency);
}
private static DirectColorModel colorModelFor(int transparency) {
switch (transparency) {
case Transparency.OPAQUE:
return new DirectColorModel(24, 0xff0000, 0xff00, 0xff);
case Transparency.BITMASK:
return new DirectColorModel(25, 0xff0000, 0xff00, 0xff, 0x1000000);
case Transparency.TRANSLUCENT:
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_sRGB);
return new DirectColorModel(cs, 32,
0xff0000, 0xff00, 0xff, 0xff000000,
true, DataBuffer.TYPE_INT);
default:
return null;
}
return switch (transparency) {
case Transparency.OPAQUE -> new DirectColorModel(24, 0xff0000, 0xff00, 0xff);
case Transparency.BITMASK -> new DirectColorModel(25, 0xff0000, 0xff00, 0xff, 0x1000000);
case Transparency.TRANSLUCENT -> new DirectColorModel(32, 0xff0000, 0xff00, 0xff, 0xff000000);
default -> null;
};
}
public SurfaceData createSurfaceData(WLComponentPeer peer) {

View File

@@ -95,13 +95,6 @@ public class WLSMSurfaceData extends SurfaceData implements WLSurfaceDataExt {
@Override
public Raster getRaster(int x, int y, int w, int h) {
// Can do something like the following:
// Raster r = getColorModel().createCompatibleWritableRaster(w, h);
// copy surface data to this raster
// save a reference to this raster
// return r;
// then in flush() check if raster was modified and take pixels from there
// This is obviously suboptimal and shouldn't be used in performance-critical situations.
throw new UnsupportedOperationException("Not implemented yet");
}

View File

@@ -26,7 +26,6 @@
#include <stdbool.h>
#include <sys/mman.h>
#include <sys/sysinfo.h>
#include <pthread.h>
#include "Trace.h"
@@ -58,9 +57,6 @@ SurfaceBufferDestroy(WLSurfaceBuffer * buffer);
static void
ScheduleFrameCallback(WLSurfaceBufferManager * manager);
static void
CancelFrameCallback(WLSurfaceBufferManager * manager);
static void
CopyDrawBufferToShowBuffer(WLSurfaceBufferManager * manager);
@@ -144,16 +140,11 @@ DamageList_Add(DamageList* list, jint x, jint y, jint width, jint height)
}
DamageList *item = malloc(sizeof(DamageList));
if (!item) {
JNIEnv* env = getEnv();
JNU_ThrowOutOfMemoryError(env, "Failed to allocate Wayland buffer damage list");
} else {
item->x = x;
item->y = y;
item->width = width;
item->height = height;
item->next = list;
}
item->x = x;
item->y = y;
item->width = width;
item->height = height;
item->next = list;
return item;
}
@@ -359,8 +350,6 @@ WLBufferTraceFrame(WLSurfaceBufferManager* manager)
static inline size_t
SurfaceBufferSizeInBytes(WLSurfaceBuffer * buffer)
{
assert (buffer);
const jint stride = buffer->width * (jint)sizeof(pixel_t);
return stride * buffer->height;
}
@@ -411,15 +400,11 @@ SurfaceBufferDestroy(WLSurfaceBuffer * buffer)
// from Wayland.
const size_t size = SurfaceBufferSizeInBytes(buffer);
munmap(buffer->data, size);
if (buffer->wlPool) {
wl_shm_pool_destroy(buffer->wlPool);
}
wl_shm_pool_destroy(buffer->wlPool);
if (buffer->wlBuffer) {
// "Destroying the wl_buffer after wl_buffer.release does not change
// the surface contents" (source: wayland.xml)
wl_buffer_destroy(buffer->wlBuffer);
}
// "Destroying the wl_buffer after wl_buffer.release does not change
// the surface contents" (source: wayland.xml)
wl_buffer_destroy(buffer->wlBuffer);
DamageList_FreeAll(buffer->damageList);
free(buffer);
@@ -453,16 +438,9 @@ SurfaceBufferCreate(WLSurfaceBufferManager * manager)
buffer->height,
stride,
manager->format);
if (buffer->wlBuffer) {
wl_buffer_add_listener(buffer->wlBuffer,
&wl_buffer_listener,
manager);
} else {
JNIEnv* env = getEnv();
JNU_ThrowOutOfMemoryError(env, "Failed to create Wayland buffer memory pool");
free (buffer);
return NULL;
}
wl_buffer_add_listener(buffer->wlBuffer,
&wl_buffer_listener,
manager);
return buffer;
}
@@ -548,13 +526,7 @@ ShowBufferCreate(WLSurfaceBufferManager * manager)
{
ASSERT_SHOW_LOCK_IS_HELD(manager);
WLSurfaceBuffer* buffer = SurfaceBufferCreate(manager);
if (buffer) {
manager->bufferForShow.wlSurfaceBuffer = buffer;
} else {
JNIEnv* env = getEnv();
JNU_ThrowOutOfMemoryError(env, "Failed to allocate Wayland surface buffer");
}
manager->bufferForShow.wlSurfaceBuffer = SurfaceBufferCreate(manager);
}
/**
@@ -609,11 +581,6 @@ ShowBufferInvalidateForNewSize(WLSurfaceBufferManager * manager)
assert(buffer->next == NULL);
SurfaceBufferDestroy(buffer);
manager->bufferForShow.wlSurfaceBuffer = NULL;
// Even though technically we didn't detach the buffer from the surface,
// we need to attach a new, resized one as soon as possible. If we wait
// for the next frame event to do that, Mutter may not remember
// the latest size of the window.
manager->isBufferAttached = false;
}
while (manager->buffersFree) {
@@ -627,11 +594,6 @@ ShowBufferInvalidateForNewSize(WLSurfaceBufferManager * manager)
ShowBufferCreate(manager);
// Need to wait for WLSBM_SurfaceCommit() with the new content for
// the buffer we have just created, so there's no need for the
// frame event until then.
CancelFrameCallback(manager);
MUTEX_UNLOCK(manager->showLock);
}
@@ -647,7 +609,8 @@ wl_frame_callback_done(void * data,
MUTEX_LOCK(manager->showLock);
assert(manager->wl_frame_callback == wl_callback);
CancelFrameCallback(manager);
wl_callback_destroy(manager->wl_frame_callback);
manager->wl_frame_callback = NULL;
if (manager->wlSurface) {
const bool hasSomethingToSend = (manager->bufferForDraw.damageList != NULL);
@@ -679,17 +642,6 @@ ScheduleFrameCallback(WLSurfaceBufferManager * manager)
}
}
static void
CancelFrameCallback(WLSurfaceBufferManager * manager)
{
ASSERT_SHOW_LOCK_IS_HELD(manager);
if (manager->wl_frame_callback) {
wl_callback_destroy(manager->wl_frame_callback);
manager->wl_frame_callback = NULL;
}
}
/**
* Attaches the current show buffer to the Wayland surface, notifying Wayland
* of all the damaged areas in that buffer.
@@ -704,10 +656,7 @@ SendShowBufferToWayland(WLSurfaceBufferManager * manager)
jlong startTime = GetJavaTimeNanos();
WLSurfaceBuffer * buffer = manager->bufferForShow.wlSurfaceBuffer;
if (buffer == NULL) {
// There should've been an OOME thrown already
return;
}
assert(buffer);
ShowBufferPrepareFreshOne(manager);
@@ -777,11 +726,7 @@ CopyDrawBufferToShowBuffer(WLSurfaceBufferManager * manager)
ASSERT_SHOW_LOCK_IS_HELD(manager);
MUTEX_LOCK(manager->drawLock);
if (manager->bufferForShow.wlSurfaceBuffer == NULL) {
// There should've been an OOME thrown already
return;
}
assert(manager->bufferForShow.wlSurfaceBuffer);
assert(manager->wlSurface != NULL);
assert(manager->bufferForShow.damageList == NULL);
@@ -833,14 +778,7 @@ DrawBufferCreate(WLSurfaceBufferManager * manager)
manager->bufferForDraw.frameID++;
manager->bufferForDraw.manager = manager;
void * data = malloc(DrawBufferSizeInBytes(manager));
manager->bufferForDraw.data = data;
if (data == NULL) {
JNIEnv* env = getEnv();
JNU_ThrowOutOfMemoryError(env, "Failed to allocate Wayland surface buffer");
return;
}
manager->bufferForDraw.data = malloc(DrawBufferSizeInBytes(manager));
for (jint i = 0; i < DrawBufferSizeInPixels(manager); ++i) {
manager->bufferForDraw.data[i] = manager->bgPixel;
@@ -856,31 +794,12 @@ DrawBufferDestroy(WLSurfaceBufferManager * manager)
manager->bufferForDraw.damageList = NULL;
}
static bool
HaveEnoughMemoryForWindow(jint width, jint height)
{
if (width == 0 || height == 0) return true;
struct sysinfo si;
sysinfo(&si);
unsigned long freeMemBytes = (si.freeram + si.freeswap) * si.mem_unit;
unsigned long maxBuffers = freeMemBytes / width / height / sizeof(pixel_t);
// Prevent the computer from becoming totally unresponsive some time down
// the line when the buffers start to allocate and start throwing inevitable OOMEs.
return maxBuffers >= 2;
}
WLSurfaceBufferManager *
WLSBM_Create(jint width, jint height, jint scale, jint bgPixel, jint wlShmFormat)
{
traceEnabled = getenv("J2D_STATS");
traceFPSEnabled = getenv("J2D_FPS");
if (!HaveEnoughMemoryForWindow(width, height)) {
return NULL;
}
WLSurfaceBufferManager * manager = calloc(1, sizeof(WLSurfaceBufferManager));
if (!manager) {
return NULL;
@@ -927,7 +846,10 @@ WLSBM_SurfaceAssign(WLSurfaceBufferManager * manager, struct wl_surface* wl_surf
manager->isBufferAttached = false;
// The "frame" callback depends on the surface; when changing the surface,
// cancel any associated pending callbacks:
CancelFrameCallback(manager);
if (manager->wl_frame_callback) {
wl_callback_destroy(manager->wl_frame_callback);
manager->wl_frame_callback = NULL;
}
} else {
assert(manager->wlSurface == wl_surface);
}
@@ -943,8 +865,9 @@ WLSBM_Destroy(WLSurfaceBufferManager * manager)
// because their callbacks retain a pointer to this manager.
MUTEX_LOCK(manager->showLock);
MUTEX_LOCK(manager->drawLock);
CancelFrameCallback(manager);
if (manager->wl_frame_callback) {
wl_callback_destroy(manager->wl_frame_callback);
}
DrawBufferDestroy(manager);
if (manager->bufferForShow.wlSurfaceBuffer) {
@@ -1049,12 +972,6 @@ WLSB_DataGet(WLDrawBuffer * buffer)
void
WLSBM_SizeChangeTo(WLSurfaceBufferManager * manager, jint width, jint height, jint scale)
{
if (!HaveEnoughMemoryForWindow(width, height)) {
JNIEnv* env = getEnv();
JNU_ThrowOutOfMemoryError(env, "Wayland surface buffer too large");
return;
}
MUTEX_LOCK(manager->drawLock);
const bool size_changed = manager->bufferForDraw.width != width || manager->bufferForDraw.height != height;

View File

@@ -256,10 +256,6 @@ Java_sun_java2d_wl_WLSMSurfaceData_initOps(JNIEnv *env, jobject wsd,
wsdo->sdOps.GetRasInfo = WLSD_GetRasInfo;
wsdo->sdOps.Dispose = WLSD_Dispose;
wsdo->bufferManager = WLSBM_Create(width, height, scale, backgroundRGB, wlShmFormat);
if (wsdo->bufferManager == NULL) {
JNU_ThrowOutOfMemoryError(env, "Failed to create Wayland surface buffer manager");
return;
}
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
// Recursive mutex is required because blit can be done with both source

View File

@@ -39,6 +39,7 @@
#include "wakefield-client-protocol.h"
#endif
static jfieldID nativePtrID;
static jmethodID postWindowClosingMID;
static jmethodID notifyConfiguredMID;
static jmethodID notifyEnteredOutputMID;
@@ -302,6 +303,7 @@ JNIEXPORT void JNICALL
Java_sun_awt_wl_WLComponentPeer_initIDs
(JNIEnv *env, jclass clazz)
{
CHECK_NULL(nativePtrID = (*env)->GetFieldID(env, clazz, "nativePtr", "J"));
CHECK_NULL_THROW_IE(env,
notifyConfiguredMID = (*env)->GetMethodID(env, clazz, "notifyConfigured", "(IIIIZZ)V"),
"Failed to find method WLComponentPeer.notifyConfigured");

View File

@@ -30,7 +30,6 @@
#include "awt.h"
#include "awt_p.h"
#include "debug_assert.h"
#include <sun_awt_X11InputMethodBase.h>
#include <sun_awt_X11_XInputMethod.h>
@@ -2065,7 +2064,7 @@ JNIEXPORT jboolean JNICALL Java_sun_awt_X11_XInputMethod_doesFocusedXICSupportMo
result = JNI_TRUE;
}
} else {
DASSERT(pX11IMData->current_ic == pX11IMData->ic_passive.xic);
assert( (pX11IMData->current_ic == pX11IMData->ic_passive.xic) );
if ( (pX11IMData->ic_passive.inputStyle & XIMPreeditPosition) == XIMPreeditPosition ) {
result = JNI_TRUE;
}
@@ -2427,8 +2426,8 @@ static Bool jbNewXimClient_initializeXICs(
__func__, inputStylesToTry.pairsCount);
// If one of the contexts is NULL then both of them are expected to be NULL
DASSERT(activeClientIc.xic == NULL);
DASSERT(passiveClientIc.xic == NULL);
assert( (activeClientIc.xic == NULL) );
assert( (passiveClientIc.xic == NULL) );
goto finally;
}
@@ -2584,8 +2583,8 @@ static jbNewXimClient_PrioritizedStyles jbNewXimClient_chooseAndPrioritizeInputS
unsigned int i = 0, j = 0;
DASSERT(activeClientStylesCount <= JBNEWXIMCLIENT_COUNTOF_SUPPORTED_INPUT_STYLES);
DASSERT(passiveClientStylesCount <= JBNEWXIMCLIENT_COUNTOF_SUPPORTED_INPUT_STYLES);
assert( (activeClientStylesCount <= JBNEWXIMCLIENT_COUNTOF_SUPPORTED_INPUT_STYLES) );
assert( (passiveClientStylesCount <= JBNEWXIMCLIENT_COUNTOF_SUPPORTED_INPUT_STYLES) );
result.pairsCount = 0;
@@ -2618,7 +2617,7 @@ static jbNewXimClient_PrioritizedStyles jbNewXimClient_chooseAndPrioritizeInputS
}
// Combining the pairs (activeClientStyles[i], passiveClientStyles[j]) into result
DASSERT(activeClientStylesCount * passiveClientStylesCount <= sizeof(result.combinations) / sizeof(result.combinations[0]));
assert( (activeClientStylesCount * passiveClientStylesCount <= sizeof(result.combinations) / sizeof(result.combinations[0])) );
for (i = 0; i < activeClientStylesCount; ++i) {
const jbNewXimClient_SupportedInputStyle activeStyle = activeClientStyles[i];
@@ -2842,7 +2841,7 @@ finally:
xic = NULL;
}
if (preeditFontSet != NULL) {
DASSERT(xicDisplay != NULL);
assert( (xicDisplay != NULL) );
XFreeFontSet(xicDisplay, preeditFontSet);
preeditFontSet = NULL;
}
@@ -3008,11 +3007,11 @@ static void jbNewXimClient_destroyInputContext(jbNewXimClient_ExtendedInputConte
XDestroyIC(localContext.xic);
}
if (localContext.preeditCustomFontSet != NULL) {
DASSERT(localContext.xicDisplay != NULL);
assert( (localContext.xicDisplay != NULL) );
XFreeFontSet(localContext.xicDisplay, localContext.preeditCustomFontSet);
}
if ((localContext.statusCustomFontSet != NULL) && (localContext.statusCustomFontSet != localContext.preeditCustomFontSet)) {
DASSERT(localContext.xicDisplay != NULL);
assert( (localContext.xicDisplay != NULL) );
XFreeFontSet(localContext.xicDisplay, localContext.statusCustomFontSet);
}
if (localContext.preeditAndStatusCallbacks != NULL) {

View File

@@ -218,9 +218,11 @@ public class Win32GraphicsConfig extends GraphicsConfiguration
return (super.toString()+"[dev="+device+",pixfmt="+visual+"]");
}
private native Rectangle getBounds(int screen);
@Override
public Rectangle getBounds() {
return device.getBounds();
return getBounds(device.getScreen());
}
@Override

View File

@@ -106,12 +106,11 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
private static native void initIDs();
private native void initDevice(int screen);
private static native void initNativeScale(int screen);
private static native void setNativeScale(int screen, float scaleX, float scaleY);
private static native float getNativeScaleX(int screen);
private static native float getNativeScaleY(int screen);
private static native Rectangle getBounds(int screen);
native void initDevice(int screen);
native void initNativeScale(int screen);
native void setNativeScale(int screen, float scaleX, float scaleY);
native float getNativeScaleX(int screen);
native float getNativeScaleY(int screen);
public Win32GraphicsDevice(int screennum) {
this.screen = screennum;
@@ -170,10 +169,6 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
}
}
public Rectangle getBounds() {
return getBounds(getScreen());
}
/**
* Returns whether this is a valid devicie. Device can become
* invalid as a result of device removal event.
@@ -261,7 +256,7 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
}
}
private static native int getMaxConfigsImpl(int screen);
private native int getMaxConfigsImpl(int screen);
/**
* Returns whether or not the PixelFormat indicated by index is
@@ -273,7 +268,7 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
* are disabled. Do not call this function with an index of 0.
* @param index a PixelFormat index
*/
private static native boolean isPixFmtSupported(int index, int screen);
private native boolean isPixFmtSupported(int index, int screen);
/**
* Returns the PixelFormatID of the default graphics configuration
@@ -292,7 +287,7 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
* Returns the default PixelFormat ID from GDI. Do not call if PixelFormats
* are disabled.
*/
private static native int getDefaultPixIDImpl(int screen);
private native int getDefaultPixIDImpl(int screen);
/**
* Returns the default graphics configuration
@@ -546,8 +541,9 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
dynamicColorModel = null;
defaultConfig = null;
configs = null;
initScaleFactors();
Rectangle screenBounds = getBounds();
Rectangle screenBounds = getDefaultConfiguration().getBounds();
resizeFSWindow(getFullScreenWindow(), screenBounds);
// pass on to all top-level windows on this display
@@ -581,8 +577,8 @@ public class Win32GraphicsDevice extends GraphicsDevice implements
/**
* Creates and returns the color model associated with this device
*/
private static native ColorModel makeColorModel(int screen,
boolean dynamic);
private native ColorModel makeColorModel (int screen,
boolean dynamic);
/**
* Returns a dynamic ColorModel which is updated when there

View File

@@ -31,7 +31,6 @@ import java.awt.GraphicsDevice;
import java.awt.peer.ComponentPeer;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.ListIterator;
import sun.awt.windows.WToolkit;
@@ -148,23 +147,41 @@ public final class Win32GraphicsEnvironment extends SunGraphicsEnvironment {
*/
@Override
public void displayChanged() {
if (screens != null) {
if (oldDevices == null) {
oldDevices = new ArrayList<>();
}
for (int i = 0; i < screens.length; i++) {
if (screens[i] instanceof Win32GraphicsDevice gd) {
oldDevices.add(new WeakReference<>(gd));
} else {
// REMIND: can we ever have anything other than Win32GD?
assert (false) : screens[i];
}
}
}
// create the new devices
// getNumScreens() will return the correct current number of screens
GraphicsDevice[] newDevices = new GraphicsDevice[getNumScreens()];
Arrays.setAll(newDevices, this::makeScreenDevice);
GraphicsDevice[] oldScreens = screens;
// go through the list of current devices and determine if they
// could be reused, or will have to be replaced
if (oldScreens != null) {
for (int i = 0; i < oldScreens.length; i++) {
if (!(screens[i] instanceof Win32GraphicsDevice)) {
// REMIND: can we ever have anything other than Win32GD?
assert (false) : oldScreens[i];
continue;
}
Win32GraphicsDevice gd = (Win32GraphicsDevice)oldScreens[i];
// devices may be invalidated from the native code when the
// display change happens (device add/removal also causes a
// display change)
if (!gd.isValid()) {
if (oldDevices == null) {
oldDevices =
new ArrayList<WeakReference<Win32GraphicsDevice>>();
}
oldDevices.add(new WeakReference<Win32GraphicsDevice>(gd));
} else if (i < newDevices.length) {
// reuse the device
newDevices[i] = gd;
}
}
oldScreens = null;
}
// create the new devices (those that weren't reused)
for (int i = 0; i < newDevices.length; i++) {
if (newDevices[i] == null) {
newDevices[i] = makeScreenDevice(i);
}
}
// install the new array of devices
// Note: no synchronization here, it doesn't matter if a thread gets
// a new or an old array this time around

View File

@@ -631,14 +631,6 @@ public class WWindowPeer extends WPanelPeer implements WindowPeer,
AWTAccessor.getComponentAccessor().
setGraphicsConfiguration((Component)target, winGraphicsConfig);
// Windows may have already sent us WM_PAINT,
// which we have processed before updating the GC,
// so force full repaint just to be sure we don't leave damaged content.
if (oldDev != newDev) {
Rectangle b = getBounds();
handlePaint(0, 0, b.width, b.height);
}
}
/**

View File

@@ -214,7 +214,6 @@ BOOL Devices::UpdateInstance(JNIEnv *env)
}
for (i = 0; i < numScreens; ++i) {
rawDevices[i]->Initialize();
rawDevices[i]->InitDesktopScales();
}
{
CriticalSection::Lock l(arrayLock);

View File

@@ -919,20 +919,6 @@ void AwtToolkit::DestroyComponentHWND(HWND hwnd)
void SpyWinMessage(HWND hwnd, UINT message, LPCTSTR szComment);
#endif
static BOOL CALLBACK UpdateAllThreadWindowSizes(HWND hWnd, LPARAM)
{
TRY;
AwtComponent *c = AwtComponent::GetComponent(hWnd);
if (c) {
RECT r;
GetWindowRect(hWnd, &r);
c->WmSize(SIZENORMAL, r.right-r.left, r.bottom-r.top);
c->Invalidate(NULL);
}
return TRUE;
CATCH_BAD_ALLOC_RET(FALSE);
}
/*
* An AwtToolkit window is just a means of routing toolkit messages to here.
*/
@@ -1323,7 +1309,6 @@ LRESULT CALLBACK AwtToolkit::WndProc(HWND hWnd, UINT message,
case WM_DISPLAYCHANGE: {
// Reinitialize screens
initScreens(env);
::EnumThreadWindows(MainThread(), (WNDENUMPROC)UpdateAllThreadWindowSizes, 0);
// Notify Java side - call WToolkit.displayChanged()
jclass clazz = env->FindClass("sun/awt/windows/WToolkit");

View File

@@ -76,3 +76,50 @@ inline int shiftToMask(int numBits, int shift) {
mask = mask << shift;
return mask;
}
/*
* Class: sun_awt_Win32GraphicsConfig
* Method: getBounds
* Signature: ()Ljava/awt/Rectangle
*/
JNIEXPORT jobject JNICALL
Java_sun_awt_Win32GraphicsConfig_getBounds(JNIEnv *env, jobject thisobj,
jint screen)
{
jclass clazz;
jmethodID mid;
jobject bounds = NULL;
clazz = env->FindClass("java/awt/Rectangle");
CHECK_NULL_RETURN(clazz, NULL);
mid = env->GetMethodID(clazz, "<init>", "(IIII)V");
if (mid != 0) {
RECT rRW = {0, 0, 0, 0};
Devices::InstanceAccess devices;
AwtWin32GraphicsDevice *device = devices->GetDevice(screen);
if (TRUE == MonitorBounds(AwtWin32GraphicsDevice::GetMonitor(screen), &rRW)) {
int w = (device == NULL) ? rRW.right - rRW.left
: device->ScaleDownX(rRW.right - rRW.left);
int h = (device == NULL) ? rRW.bottom - rRW.top
: device->ScaleDownY(rRW.bottom - rRW.top);
bounds = env->NewObject(clazz, mid, rRW.left, rRW.top, w, h);
}
else {
// 4910760 - don't return a null bounds, return the bounds of the
// primary screen
int w = ::GetSystemMetrics(SM_CXSCREEN);
int h = ::GetSystemMetrics(SM_CYSCREEN);
bounds = env->NewObject(clazz, mid,
0, 0,
device == NULL ? w : device->ScaleDownX(w),
device == NULL ? h : device->ScaleDownY(h));
}
if (safe_ExceptionOccurred(env)) {
return 0;
}
}
return bounds;
}

View File

@@ -1018,7 +1018,7 @@ Java_sun_awt_Win32GraphicsDevice_initIDs(JNIEnv *env, jclass cls)
*/
JNIEXPORT jint JNICALL Java_sun_awt_Win32GraphicsDevice_getMaxConfigsImpl
(JNIEnv* jniEnv, jclass clazz, jint screen) {
(JNIEnv* jniEnv, jobject theThis, jint screen) {
TRY;
HDC hDC = AwtWin32GraphicsDevice::GetDCFromScreen(screen);
@@ -1045,7 +1045,7 @@ JNIEXPORT jint JNICALL Java_sun_awt_Win32GraphicsDevice_getMaxConfigsImpl
*/
JNIEXPORT jboolean JNICALL Java_sun_awt_Win32GraphicsDevice_isPixFmtSupported
(JNIEnv* env, jclass clazz, jint pixFmtID, jint screen) {
(JNIEnv* env, jobject theThis, jint pixFmtID, jint screen) {
TRY;
jboolean suppColor = JNI_TRUE;
HDC hDC = AwtWin32GraphicsDevice::GetDCFromScreen(screen);
@@ -1087,7 +1087,7 @@ JNIEXPORT jboolean JNICALL Java_sun_awt_Win32GraphicsDevice_isPixFmtSupported
*/
JNIEXPORT jint JNICALL Java_sun_awt_Win32GraphicsDevice_getDefaultPixIDImpl
(JNIEnv* env, jclass clazz, jint screen) {
(JNIEnv* env, jobject theThis, jint screen) {
TRY;
int pixFmtID = 0;
HDC hDC = AwtWin32GraphicsDevice::GetDCFromScreen(screen);
@@ -1119,7 +1119,7 @@ JNIEXPORT jint JNICALL Java_sun_awt_Win32GraphicsDevice_getDefaultPixIDImpl
}
if (JNI_FALSE == Java_sun_awt_Win32GraphicsDevice_isPixFmtSupported(
env, clazz, pixFmtID, screen)) {
env, theThis, pixFmtID, screen)) {
/* Can't find a suitable pixel format ID. Fall back on 0. */
pixFmtID = 0;
}
@@ -1416,7 +1416,7 @@ JNIEXPORT void JNICALL Java_sun_awt_Win32GraphicsDevice_enumDisplayModes
JNIEXPORT jobject JNICALL
Java_sun_awt_Win32GraphicsDevice_makeColorModel
(JNIEnv *env, jclass clazz, jint screen, jboolean dynamic)
(JNIEnv *env, jobject thisPtr, jint screen, jboolean dynamic)
{
Devices::InstanceAccess devices;
return devices->GetDevice(screen)->GetColorModel(env, dynamic);
@@ -1429,10 +1429,10 @@ JNIEXPORT jobject JNICALL
*/
JNIEXPORT void JNICALL
Java_sun_awt_Win32GraphicsDevice_initDevice
(JNIEnv *env, jobject graphicsDevice, jint screen)
(JNIEnv *env, jobject thisPtr, jint screen)
{
Devices::InstanceAccess devices;
devices->GetDevice(screen)->SetJavaDevice(env, graphicsDevice);
devices->GetDevice(screen)->SetJavaDevice(env, thisPtr);
}
/*
@@ -1442,7 +1442,7 @@ JNIEXPORT void JNICALL
*/
JNIEXPORT void JNICALL
Java_sun_awt_Win32GraphicsDevice_setNativeScale
(JNIEnv *env, jclass clazz, jint screen, jfloat scaleX, jfloat scaleY)
(JNIEnv *env, jobject thisPtr, jint screen, jfloat scaleX, jfloat scaleY)
{
Devices::InstanceAccess devices;
AwtWin32GraphicsDevice *device = devices->GetDevice(screen);
@@ -1460,7 +1460,7 @@ JNIEXPORT void JNICALL
*/
JNIEXPORT jfloat JNICALL
Java_sun_awt_Win32GraphicsDevice_getNativeScaleX
(JNIEnv *env, jclass clazz, jint screen)
(JNIEnv *env, jobject thisPtr, jint screen)
{
Devices::InstanceAccess devices;
AwtWin32GraphicsDevice *device = devices->GetDevice(screen);
@@ -1474,7 +1474,7 @@ JNIEXPORT jfloat JNICALL
*/
JNIEXPORT jfloat JNICALL
Java_sun_awt_Win32GraphicsDevice_getNativeScaleY
(JNIEnv *env, jclass clazz, jint screen)
(JNIEnv *env, jobject thisPtr, jint screen)
{
Devices::InstanceAccess devices;
AwtWin32GraphicsDevice *device = devices->GetDevice(screen);
@@ -1488,7 +1488,7 @@ JNIEXPORT jfloat JNICALL
*/
JNIEXPORT void JNICALL
Java_sun_awt_Win32GraphicsDevice_initNativeScale
(JNIEnv *env, jclass clazz, jint screen)
(JNIEnv *env, jobject thisPtr, jint screen)
{
Devices::InstanceAccess devices;
AwtWin32GraphicsDevice *device = devices->GetDevice(screen);
@@ -1497,48 +1497,3 @@ Java_sun_awt_Win32GraphicsDevice_initNativeScale
device->InitDesktopScales();
}
}
/*
* Class: sun_awt_Win32GraphicsDevice
* Method: getBounds
* Signature: (I)Ljava/awt/Rectangle
*/
JNIEXPORT jobject JNICALL
Java_sun_awt_Win32GraphicsDevice_getBounds(JNIEnv *env, jclass clazz, jint screen)
{
jmethodID mid;
jobject bounds = NULL;
clazz = env->FindClass("java/awt/Rectangle");
CHECK_NULL_RETURN(clazz, NULL);
mid = env->GetMethodID(clazz, "<init>", "(IIII)V");
if (mid != 0) {
RECT rRW = {0, 0, 0, 0};
Devices::InstanceAccess devices;
AwtWin32GraphicsDevice *device = devices->GetDevice(screen);
if (TRUE == MonitorBounds(AwtWin32GraphicsDevice::GetMonitor(screen), &rRW)) {
int w = (device == NULL) ? rRW.right - rRW.left
: device->ScaleDownX(rRW.right - rRW.left);
int h = (device == NULL) ? rRW.bottom - rRW.top
: device->ScaleDownY(rRW.bottom - rRW.top);
bounds = env->NewObject(clazz, mid, rRW.left, rRW.top, w, h);
}
else {
// 4910760 - don't return a null bounds, return the bounds of the
// primary screen
int w = ::GetSystemMetrics(SM_CXSCREEN);
int h = ::GetSystemMetrics(SM_CYSCREEN);
bounds = env->NewObject(clazz, mid,
0, 0,
device == NULL ? w : device->ScaleDownX(w),
device == NULL ? h : device->ScaleDownY(h));
}
if (safe_ExceptionOccurred(env)) {
return 0;
}
}
return bounds;
}

View File

@@ -211,17 +211,14 @@ public class VirtualMachineImpl extends HotSpotVirtualMachine {
// checks for the file.
private File createAttachFile(int pid) throws IOException {
String fn = ".attach_pid" + pid;
if (!attachOnlyInTmp()) {
String path = "/proc/" + pid + "/cwd/" + fn;
File f = new File(path);
try {
f.createNewFile();
return f;
} catch (IOException x) {
}
String path = "/proc/" + pid + "/cwd/" + fn;
File f = new File(path);
try {
f.createNewFile();
} catch (IOException x) {
f = new File(tmpdir, fn);
f.createNewFile();
}
File f = new File(tmpdir, fn);
f.createNewFile();
return f;
}

View File

@@ -224,26 +224,24 @@ public class VirtualMachineImpl extends HotSpotVirtualMachine {
// checks for the file.
private File createAttachFile(int pid, int ns_pid) throws IOException {
String fn = ".attach_pid" + ns_pid;
if (!attachOnlyInTmp()) {
String path = "/proc/" + pid + "/cwd/" + fn;
File f = new File(path);
try {
// Do not canonicalize the file path, or we will fail to attach to a VM in a container.
f.createNewFile();
} catch (IOException x) {
String path = "/proc/" + pid + "/cwd/" + fn;
File f = new File(path);
try {
// Do not canonicalize the file path, or we will fail to attach to a VM in a container.
f.createNewFile();
} catch (IOException x) {
String root;
if (pid != ns_pid) {
// A process may not exist in the same mount namespace as the caller.
// Instead, attach relative to the target root filesystem as exposed by
// procfs regardless of namespaces.
root = "/proc/" + pid + "/root/" + tmpdir;
} else {
root = tmpdir;
}
f = new File(root, fn);
f.createNewFile();
}
String root;
if (pid != ns_pid) {
// A process may not exist in the same mount namespace as the caller.
// Instead, attach relative to the target root filesystem as exposed by
// procfs regardless of namespaces.
root = "/proc/" + pid + "/root/" + tmpdir;
} else {
root = tmpdir;
}
File f = new File(root, fn);
f.createNewFile();
return f;
}

View File

@@ -497,12 +497,4 @@ public abstract class HotSpotVirtualMachine extends VirtualMachine {
}
}
}
boolean attachOnlyInTmp() {
try {
return Boolean.getBoolean("sun.tools.attach.tmp.only");
} catch (Exception e) {
return false;
}
}
}

View File

@@ -58,7 +58,6 @@ compiler/ciReplay/TestUnresolvedClasses.java NOBUG generic-all
# :hotspot_gc
gc/stress/TestStressRSetCoarsening.java JBR-6706 windows-x64
#############################################################################
@@ -87,3 +86,5 @@ serviceability/sa/ClhsdbCDSCore.java initial_run,NOBUG generic-aarch64,macosx-al
vmTestbase/gc/gctests/LargeObjects/large002/TestDescription.java NOBUG linux-all timeout
vmTestbase/gc/gctests/StringInternSyncWithGC/StringInternSyncWithGC.java NOBUG macosx-all timeout on macstudio
vmTestbase/nsk/jdi/stress/ClassPrepareEvents/ClassPrepareEvents001/ClassPrepareEvents001.java JBR-6470 macosx-x64

View File

@@ -257,7 +257,6 @@ vmTestbase/nsk/jdi/ReferenceType/instances/instances002/instances002.java initia
vmTestbase/nsk/jdi/Value/type/type003/TestDescription.java time_out_intermittent macosx-all
vmTestbase/nsk/jdi/VirtualMachine/allThreads/allthreads001/TestDescription.java JBR-6530 macosx-all
vmTestbase/nsk/jdi/VirtualMachine/canGetMonitorInfo/cangetmonitorinfo001/TestDescription.java JBR-6361 macosx-all
vmTestbase/nsk/jdi/stress/ClassPrepareEvents/ClassPrepareEvents001/ClassPrepareEvents001.java JBR-6470 macosx-all
vmTestbase/metaspace/gc/firstGC_10m/TestDescription.java 8208250 generic-all
vmTestbase/metaspace/gc/firstGC_50m/TestDescription.java 8208250 generic-all

View File

@@ -35,13 +35,12 @@
import java.awt.*;
import java.awt.event.*;
import test.java.awt.regtesthelpers.Util;
import javax.swing.SwingUtilities;
public class ActionAfterRemove
{
private static volatile boolean passed = true;
public static final void main(String args[]) throws Exception
public static final void main(String args[])
{
// In order to handle all uncaught exceptions in the EDT
final Thread.UncaughtExceptionHandler eh = new Thread.UncaughtExceptionHandler()
@@ -54,22 +53,20 @@ public class ActionAfterRemove
}
};
final Frame frame = new Frame();
final List list = new List();
Robot robot = null;
SwingUtilities.invokeAndWait(() -> {
final Frame frame = new Frame();
list.add("will be removed");
frame.add(list);
list.add("will be removed");
frame.add(list);
frame.setLayout(new FlowLayout());
frame.setBounds(100, 100, 300, 300);
frame.setVisible(true);
frame.setLayout(new FlowLayout());
frame.setBounds(100,100,300,300);
frame.setVisible(true);
list.select(0);
list.remove(0);
});
list.select(0);
list.remove(0);
try{
robot = new Robot();

View File

@@ -1,79 +0,0 @@
/*
* Copyright (c) 2000-2024 JetBrains s.r.o.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/**
* @test
* @summary Regression test for JBR-6704 Extra IME event fired when pressing a keystroke containing Ctrl and focus moving to a different window
* @modules java.desktop/sun.lwawt.macosx
* @run main InputMethodTest CtrlShortcutNewWindowTest
* @requires (jdk.version.major >= 8 & os.family == "mac")
*/
import javax.swing.*;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import static java.awt.event.KeyEvent.*;
public class CtrlShortcutNewWindowTest implements Runnable {
@Override
public void run() {
var frame = new JFrame();
frame.setSize(300, 300);
frame.setLocation(100, 100);
JTextField textField = new JTextField();
frame.add(textField);
textField.requestFocusInWindow();
final boolean[] keyPressed = {false};
InputMethodTest.textArea.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == VK_BACK_QUOTE && (e.getModifiersEx() & KeyEvent.CTRL_DOWN_MASK) != 0) {
keyPressed[0] = true;
frame.setVisible(true);
}
}
});
InputMethodTest.section("Ctrl+Backtick");
InputMethodTest.layout("com.apple.keylayout.ABC");
InputMethodTest.type(VK_BACK_QUOTE, CTRL_DOWN_MASK);
InputMethodTest.delay(500);
if (!keyPressed[0]) {
InputMethodTest.fail("Ctrl+Backtick key combination not detected");
}
if (!textField.getText().isEmpty()) {
InputMethodTest.fail("Extra characters in the text field");
}
frame.setVisible(false);
frame.dispose();
}
}

View File

@@ -46,7 +46,6 @@ public class InputMethodTest {
private static final List<KeyEvent> triggeredEvents = new ArrayList<>();
private enum TestCases {
CtrlShortcutNewWindowTest (new CtrlShortcutNewWindowTest()),
DeadKeysTest (new DeadKeysTest()),
FocusMoveUncommitedCharactersTest (new FocusMoveUncommitedCharactersTest()),
KeyCodesTest (new KeyCodesTest()),
@@ -333,8 +332,4 @@ public class InputMethodTest {
public static void fail(String comment) {
expectTrue(false, comment);
}
public static void delay(int millis) {
robot.delay(millis);
}
}

View File

@@ -111,16 +111,11 @@
############################################################################
java/awt/EventQueue/6980209/bug6980209.java JBR-6699 linux-all
java/awt/Focus/6378278/InputVerifierTest.java JBR-6700 linux-all
java/awt/Focus/6382144/EndlessLoopTest.java JBR-6701 linux-all
java/awt/Focus/6981400/Test1.java 8029675,JBR-6702 windows-all,macosx-all,linux-all
java/awt/MenuItem/EnableTest.java NOBUG windows-all timeout
java/awt/Robot/NonEmptyErrorStream.java JBR-6275,JBR-5510,JBR-6246 macosx-all,linux-5.18.2-arch1-1,generic-all
javax/swing/JEditorPane/TestBrowserBGColor.java JBR-6697 linux-aarch64
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java 8233582,JBR-6360 linux-all,windows-all
javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java JBR-6485 linux-all
javax/swing/plaf/nimbus/8041642/bug8041642.java JBR-6698 linux-all
javax/swing/UI/UnninstallUIMemoryLeaks/UnninstallUIMemoryLeaks.java JBR-5952,JBR-6274 windows-x64,macosx-all
jb/java/awt/Focus/PopupIncomingFocusTest.java JBR-2651 generic-all

View File

@@ -3,9 +3,8 @@ java/awt/Choice/ChoicePopupLocation/ChoicePopupLocation.java JBR-5398 linux-all,
java/awt/Choice/ChoiceStaysOpenedOnTAB.java JBR-6284 linux-all
java/awt/Debug/X11Trace.java JBR-5442 linux-all
java/awt/EmbeddedFrame/GraphicsConfigTest/GraphicsConfigTest.java 8305515
java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java JBR-6058,JBR-6664 windows-all,linux-all,macosx-all
java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java JBR-6058,JBR-6664 windows-all,linux-all
java/awt/Multiscreen/WindowGCChangeTest/WindowGCChangeTest.java JBR-5531 macosx-all,linux-all
java/awt/Focus/6981400/Test1.java 8029675,JBR-5510,JBR-6702 windows-all,macosx-all,linux-5.18.2-arch1-1,linux-all
java/awt/Frame/GetGraphicsStressTest/GetGraphicsStressTest.java JBR-5117,JBR-6509 linux-all,generic-all
java/awt/Frame/MaximizedToOppositeScreen/MaximizedToOppositeScreenSmall.java JBR-4379 windows-all
java/awt/Frame/SetMaximizedBounds/SetMaximizedBounds.java JBR-4379 windows-all
@@ -19,7 +18,6 @@ java/awt/datatransfer/Clipboard/GetContentsInterruptedTest.java JBR-5086 linux-5
java/awt/Robot/MouseLocationOnScreen/MouseLocationOnScreen.java JBR-5390 macosx-all,linux-all
java/awt/Robot/NonEmptyErrorStream.java JBR-5442,JBR-5510,JBR-6246 JBR-5442,linux-5.18.2-arch1-1,generic-all
java/awt/Robot/RobotMoveMultiscreen.java JBR-5442 linux-all
java/awt/Robot/SpuriousMouseEvents/SpuriousMouseEvents.java JBR-6572 linux-all
java/awt/TextArea/TextAreaEditing/TextAreaEditing.java JBR-6282 linux-all
java/awt/Toolkit/AWTEventListenerProxyTest/AWTEventListenerProxyTest.java JBR-6065 windows-all
java/awt/Window/SlowMotion/SlowMotion.java JBR-5442 linux-all
@@ -28,7 +26,6 @@ java/awt/Window/WindowSizeDifferentScreens/WindowSizeDifferentScreens.java JBR-5
javax/swing/JTextArea/8149849/DNDTextToScaledArea.java JBR-5442 linux-all
javax/swing/SwingWorker/TestDoneBeforeDoInBackground.java JBR-5442 linux-all
javax/swing/system/6799345/TestShutdown.java JBR-6020 windows-all
javax/swing/plaf/basic/BasicComboPopup/JComboBoxPopupLocation/JComboBoxPopupLocation.java 8194945,JBR-6572 linux-all,macosx-all
javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java JBR-4379 windows-all,linux-all
jb/java/awt/dnd/DnDScalingWithHIDPI/DnDScalingWithHIDPITest.java JBR-5442 linux-all
@@ -131,7 +128,6 @@ javax/swing/text/html/CSS/4530474/bug4530474.java JBR-5510,JBR-5951 linux-all,wi
javax/swing/text/html/StyleSheet/bug4936917.java 8277816,JBR-899,JBR-5510 windows-all,macosx-aarch64,linux-all
jb/java/awt/MouseInfo/GetPointerInfoTest.java nobug linux-all
jb/java/awt/Window/BackgroundWindowOrderOnSpaceChange.java JBR-6486 macosx-all
jb/java/awt/Window/ZOrderOnModalDialogActivation.java JBR-5714 windows-all,linux-x64
sun/java2d/GdiRendering/ClipShapeRendering.java 8285604,JBR-5510 windows-all,linux-all
sun/java2d/GdiRendering/InsetClipping.java 7124403,JBR-5510 windows-x64,macosx-all,linux-all

View File

@@ -156,7 +156,6 @@ java/awt/dnd/DragTriggerEventTest.java 8320083,JBR-6548 windows-all,linux-all
java/awt/dnd/DropActionChangeTest.java JBR-6489 generic-all
java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java 8029680 generic-all
java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java JBR-5730 linux-all
java/awt/dnd/DropTargetingTest.java JBR-6729 windows-all
java/awt/dnd/MissedDragEnterTest.java JBR-6091 windows-all
java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java 8288839,JBR-5727,JBR-5959 windows-all,linux-all
java/awt/dnd/ModalDialogOnDropDeadlockTest.java JBR-6529 windows-all
@@ -255,7 +254,7 @@ java/awt/Focus/8000326/SetFocusTraversalKeysEnabledTest.java JBR-4997,JBR-5729 w
java/awt/Focus/8073453/AWTFocusTransitionTest.java JBR-5210,8298247 windows-all,linux-all
java/awt/Focus/8073453/SwingFocusTransitionTest.java JBR-5210 windows-all
java/awt/event/KeyEvent/AltCharAcceleratorTest/AltCharAcceleratorTest.java JBR-5210 windows-all
java/awt/event/KeyEvent/AltGraphModifier.java JBR-6085 windows-all
java/awt/event/KeyEvent/AltGraphModifier.java JBR-6085 windows-aarch64
java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java 8169476 windows-all
java/awt/event/KeyEvent/KeyChar/KeyCharTest.java 8169474,8224055,JBR-93 windows-all,linux-all
java/awt/event/KeyEvent/KeyEventLocationTest.java JBR-5916 linux-all
@@ -325,8 +324,6 @@ java/awt/font/JNICheck/JNICheck.sh JBR-5011 linux-all
java/awt/font/TextLayout/TextLayoutBounds.java 8169188 generic-all
java/awt/image/BufferedImage/ICMColorDataTest/ICMColorDataTest.java 8233028 generic-all
java/awt/image/DrawImage/IncorrectAlphaSurface2SW.java 8056077 linux-all
java/awt/image/multiresolution/Corrupted2XImageTest.java 8264053 macosx-all
java/awt/image/multiresolution/MenuMultiresolutionIconTest.java JBR-4880,8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
java/awt/image/multiresolution/MultiresolutionIconTest.java 8252812 windows-all,linux-all
java/awt/image/multiresolution/MultiResolutionJOptionPaneIconTest.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
java/awt/print/Headless/HeadlessPrinterJob.java 8196088 windows-all
@@ -904,9 +901,9 @@ javax/imageio/plugins/external_plugin_tests/TestClassPathPlugin.sh JBR-5363 wind
javax/accessibility/SlowPanelIteration/SlowPanelIteration.java JBR-870 windows-x64,linux-x64
javax/swing/plaf/aqua/CustomComboBoxFocusTest.java JBR-6488 macosx-all
javax/swing/plaf/basic/BasicComboPopup/JComboBoxPopupLocation/JComboBoxPopupLocation.java 8194945 linux-all,macosx-all
javax/swing/plaf/basic/BasicComboPopup/JComboBoxPopupLocation/JComboBoxPopupLocation.java 8194945 macosx-all
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,JBR-6727 windows-all,linux-all
javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java 8253184 windows-all
javax/swing/plaf/basic/BasicTableHeaderUI/6394566/bug6394566.java JBR-5846 windows-all
javax/swing/plaf/basic/BasicTextUI/8001470/bug8001470.java 8233177 linux-all,windows-all
javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java 8253184 linux-all,windows-all
@@ -927,14 +924,10 @@ javax/swing/JButton/PressedButtonRightClickTest.java JBR-5210 windows-all
javax/swing/JButton/TestMnemonicAction.java JBR-6508 windows-x64,linux-all
javax/swing/JColorChooser/Test6524757.java JBR-5210 windows-all
javax/swing/JColorChooser/Test6827032.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/6406264/bug6406264.java JBR-5210,JBR-5510 windows-all,linux-5.18.2-arch1-1
javax/swing/JComboBox/6607130/bug6607130.java JBR-5799 windows-x64
javax/swing/JComboBox/bug4890345.java JBR-5799 windows-all
javax/swing/JComboBox/bug4924758.java JBR-5846 windows-all
javax/swing/JComboBox/bug5029504.java JBR-5799 windows-all
javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java JBR-5210 windows-all
javax/swing/JComponent/6683775/bug6683775.java 8172337 generic-all
javax/swing/JDialog/Transparency/TransparencyTest.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
javax/swing/JLabel/4138746/JLabelMnemonicsTest.java JBR-4949 linux-all,windows-all
@@ -957,18 +950,9 @@ javax/swing/JMenuItem/bug4839464.java JBR-5911 windows-all
javax/swing/JMenuItem/6249972/bug6249972.java 8197552 windows-all
javax/swing/JOptionPane/7138665/bug7138665.java JBR-5799 windows-all
javax/swing/JOptionPane/8081019/bug8081019.java JBR-5767 windows-all
javax/swing/JPopupMenu/4634626/bug4634626.java 8253184 windows-all
javax/swing/JPopupMenu/4760494/bug4760494.java 8253184 windows-all
javax/swing/JPopupMenu/4870644/bug4870644.java 8194130 macosx-all,linux-all
javax/swing/JPopupMenu/4966112/bug4966112.java 8253184 windows-all
javax/swing/JPopupMenu/6415145/bug6415145.java 8197552 windows-all
javax/swing/JPopupMenu/6515446/bug6515446.java 8197552,JBR-6531 windows-all,linux-all
javax/swing/JPopupMenu/6544309/bug6544309.java JBR-6532 windows-all,linux-all
javax/swing/JPopupMenu/6675802/bug6675802.java JBR-5767 windows-all
javax/swing/JPopupMenu/6800513/bug6800513.java 7184956,JBR-6533 macosx-all,linux-all,windows-all
javax/swing/JPopupMenu/6827786/bug6827786.java JBR-6657 linux-all,windows-x64
javax/swing/JPopupMenu/6987844/bug6987844.java JBR-6718 linux-all,windows-all
javax/swing/JPopupMenu/8075063/ContextMenuScrollTest.java JBR-6717 linux-all
javax/swing/JPopupMenu/SetInvokerJPopupMenuTest.java JBR-6021 linux-all
javax/swing/JRadioButton/8033699/bug8033699.java 8197552 windows-all
javax/swing/JRadioButton/8075609/bug8075609.java 8197552,8266085,JBR-5510 windows-all,linux-5.18.2-arch1-1
@@ -994,6 +978,9 @@ javax/swing/JButton/4659800/EnterKeyActivatesButton.java JBR-5210 windows-all
javax/swing/JColorChooser/Test6541987.java JBR-5210 windows-all
javax/swing/JColorChooser/Test7194184.java JBR-5210 windows-all
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
@@ -1011,6 +998,9 @@ javax/swing/JFileChooser/8194044/FileSystemRootTest.java JBR-5767 windows-all
javax/swing/JFileChooser/ShellFolderQueries/ShellFolderQueriesSecurityManagerTest.java JBR-5767 windows-all
javax/swing/JFrame/8016356/bug8016356.java JBR-108 windows-all
javax/swing/JFrame/8175301/ScaledFrameBackgroundTest.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/JPopupMenu/6675802/bug6675802.java JBR-5767 windows-all
javax/swing/JPopupMenu/6800513/bug6800513.java 7184956,JBR-6533 macosx-all,linux-all,windows-all
javax/swing/JPopupMenu/6827786/bug6827786.java JBR-6657 linux-all,windows-x64
javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelOnShiftPressed.java 8197552 windows-all
javax/swing/JSplitPane/4885629/bug4885629.java 8019935,JBR-5510 macosx-all,linux-5.18.2-arch1-1
javax/swing/JTabbedPane/4361477/bug4361477.java JBR-5932 linux-all
@@ -1037,6 +1027,10 @@ javax/swing/JInternalFrame/8145896/TestJInternalFrameMaximize.java JBR-5539 wind
javax/swing/JInternalFrame/Test6325652.java JBR-6111 windows-all
javax/swing/JInternalFrame/Test6505027.java JBR-5954 linux-all,osx-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
javax/swing/JPopupMenu/4870644/bug4870644.java 8194130 macosx-all,linux-all
javax/swing/JPopupMenu/4966112/bug4966112.java 8253184 windows-all
javax/swing/ProgressMonitor/ProgressMonitorEscapeKeyPress.java JBR-5210 windows-all
javax/swing/dnd/8139050/NativeErrorsInTableDnD.java 8202765,JBR-5210 macosx-all,linux-all,windows-all
javax/swing/JEditorPane/6917744/bug6917744.java 8213124 macosx-all
@@ -1046,7 +1040,6 @@ javax/swing/JRootPane/4670486/bug4670486.java 8042381,8197552 macosx-all,windows
javax/swing/JRootPane/DefaultButtonTest.java JBR-5739 windows-all,linux-all
javax/swing/text/html/HTMLEditorKit/5043626/bug5043626.java JBR-5210 windows-all
javax/swing/text/html/StyleSheet/bug4936917.java JBR-899,JBR-5510 windows-all,linux-5.18.2-arch1-1
javax/swing/plaf/metal/MetalBorders/ScaledMetalBorderTest.java#id0 JBR-5799 windows-all
javax/swing/plaf/metal/MetalBorders/ScaledMetalBorderTest.java#id1 JBR-5779 linux-all
javax/swing/plaf/metal/MetalGradient/8163193/ButtonGradientTest.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
javax/swing/plaf/synth/7158712/bug7158712.java JBR-125 linux-all,windows-all
@@ -1293,6 +1286,7 @@ java/awt/Frame/MiscUndecorated/UndecoratedInitiallyIconified.java JBR-4880 windo
java/awt/FullScreen/SetFSWindow/FSFrame.java 8253184 windows-all
java/awt/grab/MenuDragEvents/MenuDragEvents.java JBR-4880 windows-all
java/awt/image/mlib/MlibOpsTest.java JBR-5225 windows-all,windows-aarch64
java/awt/image/multiresolution/MenuMultiresolutionIconTest.java JBR-4880,8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
java/awt/MenuBar/SeparatorsNavigation/SeparatorsNavigation.java JBR-4880 windows-all
javax/swing/JFileChooser/8002077/bug8002077.java JBR-4880 windows-all
javax/swing/JFileChooser/JFileChooserSetLocationTest.java 8295804 linux-all,macosx-all,windows-all
@@ -1395,8 +1389,8 @@ jb/java/awt/CustomTitleBar/MaximizeWindowTest.java JBR-5465,JBR-5550 windows-all
jb/java/awt/CustomTitleBar/MaximizedWindowFocusTest.java JBR-5828 windows-all
jb/java/awt/CustomTitleBar/MinimizingWindowTest.java JBR-5345 windows-x64
jb/java/awt/CustomTitleBar/MouseEventsOnClientArea.java JBR-5910 windows-x64
jb/java/awt/CustomTitleBar/NativeControlsVisibilityTest.java JBR-5345 windows-all
jb/java/awt/CustomTitleBar/WindowsControlWidthTest.java JBR-5345 windows-all
jb/java/awt/CustomTitleBar/NativeControlsVisibilityTest.java JBR-5345 windows-x64
jb/java/awt/CustomTitleBar/WindowsControlWidthTest.java JBR-5345 windows-x64
jb/java/awt/CustomTitleBar/WindowResizeTest.java JBR-5592 windows-all
sanity/client/SwingSet/src/EditorPaneDemoTest.java 8212240,JBR-5510,JBR-6285,8253184 macosx-all,linux-all,windows-all
sun/java2d/GdiRendering/ClipShapeRendering.java JBR-5510 linux-5.18.2-arch1-1
@@ -1413,7 +1407,6 @@ 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
jb/java/awt/Focus/BrokenTraversalAWT.java JBR-5799 windows-all
jb/java/awt/Focus/ComplexFocusSequence.java JBR-6728 linux-x64,windows-x64
jb/java/awt/Focus/ContextMenuAfterPopup.java JBR-5799 windows-all
jb/java/awt/Focus/FocusTraversalOrderTest.java JBR-6060 generic-all
jb/java/awt/Focus/FullScreenFocusStealing.java JBR-6246 macosx-all

View File

@@ -3,7 +3,6 @@ java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.java J
java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.java JBR-6027 windows-all
java/awt/dnd/DnDAWTLockTest.java JBR-6442 linux-all
java/awt/dnd/DragSourceGCrashTest.java JBR-6442 linux-all
java/awt/dnd/DragOverDropTargetPerformanceTest.java JBR-5799 windows-x64
java/awt/dnd/DropActionChangeTest.java JBR-6489,JBR-5799 generic-all
java/awt/dnd/ImageTransferTest/ImageTransferTest.java JBR-6442 linux-all
java/awt/dnd/InterJVMGetDropSuccessTest/InterJVMGetDropSuccessTest.java JBR-6442 linux-all
@@ -53,7 +52,7 @@ java/awt/Window/WindowSizeDifferentScreens/WindowSizeDifferentScreens.java JBR-5
javax/swing/JComboBox/TestComboBoxComponentRendering.java JBR-6100 linux-all
javax/swing/JComponent/7154030/bug7154030.java JBR-6134 windows-x64
javax/swing/JPopupMenu/6580930/bug6580930.java JBR-5071 linux-all
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java 8233582,JBR-6090,JBR-6360 linux-all,windows-all,macosx-all
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java 8233582,JBR-6090 linux-all,windows-all
jb/java/awt/event/MouseEvent/ReleaseAndClickModifiers.java JBR-6589 windows-all
@@ -70,7 +69,6 @@ java/awt/Paint/PaintNativeOnUpdate.java
java/awt/Window/MultiWindowApp/ChildAlwaysOnTopTest.java nobug generic-all
javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java nobug generic-all
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java nobug generic-all
javax/swing/plaf/metal/MetalBorders/ScaledMetalBorderTest.java nobug generic-all
jb/java/awt/CustomTitleBar/ActionListenerTest.java nobug generic-all
jb/java/awt/CustomTitleBar/ChangeTitleBarHeightTest.java nobug generic-all
jb/java/awt/CustomTitleBar/CheckFullScreen.java nobug generic-all