Compare commits

...

23 Commits

Author SHA1 Message Date
Vitaly Provodin
404824c124 update exclude list on results of 21.0.1_b286.4 test runs 2023-11-15 09:33:16 +07:00
Alexander Lobas
5921056ad5 JBR-5124 Clean & rename for fullscreen window control buttons 2023-11-11 11:30:15 +07:00
Alexander Lobas
d556351235 fixup! JBR-5124 Rewrite custom decorations support 2023-11-11 11:30:15 +07:00
Alexander Lobas
35ea7a9383 JBR-5546 Iterating open windows with cmd backtick on Mac forces minimized windows to un-minimize 2023-11-11 11:30:15 +07:00
Alexander Lobas
ade3440e62 JBR-5499 Window control buttons bugfix 2023-11-11 11:30:15 +07:00
Alexander Lobas
8e86f4e33f JBR-5478 IDEA window doesn't fit the screen properly on turning off/on an external monitor 2023-11-11 11:30:15 +07:00
Alexander Lobas
6ba192eb09 JBR-5409 "No Print Service Found" Error when saving to PDF 2023-11-11 11:30:15 +07:00
Alexander Lobas
9b910efa02 JBR-5384 New UI: window header is hard to resize on the top edge, top/right corner 2023-11-11 11:30:15 +07:00
Alexander Lobas
ff94df27a5 JBR-5256 IDEA window resizes to zero height when exit full-screen mode with new window controls enabled 2023-11-11 11:30:15 +07:00
Alexander Lobas
630f1020f3 JBR-5197 Window control buttons are not visible in full-screen mode in dark themes when IDE window is focused 2023-11-11 11:30:15 +07:00
Alexander Lobas
883cdbcf18 JBR-5175 jb/java/awt/Window/FullScreenTwoFrames.java: -[AWTWindow resetWindowFullScreeControls]: unrecognized selector sent to instance 0x60000232d5f0 2023-11-11 11:30:15 +07:00
Alexander Lobas
43ac75acf6 JBR-5174 Opening project as tabs in Mac OS (version2) 2023-11-11 11:30:15 +07:00
Alexander Lobas
417a3fad8f JBR-5139 Support color for rounded borders on Windows 2023-11-11 11:30:15 +07:00
Alexander Lobas
c431bfdab4 JBR-5023 Configure TabbingIdentifier during create native window 2023-11-11 11:30:15 +07:00
Alexander Lobas
2b4fafc126 JBR-4834 Rounded corners on Mac OS: support custom border color 2023-11-11 11:30:15 +07:00
Alexander Lobas
ccb4c7267e JBR-4462 BigSur: project tab does not gain focus when click it after focusing another app 2023-11-11 11:30:14 +07:00
Vitaly Provodin
686896eb1c update exclude list on results of 21.0.1_b280.6 test runs 2023-11-11 11:30:14 +07:00
Vitaly Provodin
f11b7b2c25 JBR-5760 skip jcef integration in case of fastdebug build if jcef binaries were not found 2023-11-11 11:30:14 +07:00
Nikita Provotorov
b82180bc6a JBR-2460: Wrong position of input window and no input preview with fcitx and ubuntu 13.04.
This patch makes the fix of JBR-1573 (which caused JBR-4394) disabled by default, because it's incompatible with the native below-the-spot mode (a.k.a. over-the-spot in the X11's terminology).

(cherry picked from commit 3fe2a97aa0)
2023-11-11 05:58:00 +07:00
Nikita Provotorov
675107c690 JBR-2460: Wrong position of input window and no input preview with fcitx and ubuntu 13.04.
- introduces and integrates jbNewXimClient: a new implementation of XIC creation routine (it's mostly refactoring and generalizing of AWT's existed code). Enabled by default and can be disabled via a new system property -Djb.awt.newXimClient.enabled=false ;
- introduces support of the X11's native over-the-spot input method style (it's almost the same as AWT's below-the-spot mode, but the input method's windows are drawn externally, not by AWT). Enabled by default and can be disabled via a new system property -Djb.awt.newXimClient.enabled=false. Doesn't work if -Djb.awt.newXimClient.enabled=false is set ;
- introduces sun.awt.X11.XInputMethod.ClientComponentCaretPositionTracker class that tracks all kind of events for the current client component that can lead to the caret position changing ;
- makes the XInputMethod class to update the input window's position (whenever the ClientComponentCaretPositionTracker discovers that's necessary) by setting the X11's XNSpotLocation property .

Check out the branch nprovotorov/backups/JBR-2460_wrong-position-of-input-window-and-no-input-preview for more granular patches.

(cherry picked from commit 826f75ee48)
2023-11-11 05:58:00 +07:00
Maxim Kartashev
c76473c4cb JBR-6220 javax/swing/GraphicsConfigNotifier/StalePreferredSize.java became failing by time out on Linux 2023-11-11 05:58:00 +07:00
Nikita Provotorov
dce5b869a0 JBR-5980: Pasting from clipboard not working reliably in Windows.
- Disables caching of the data placed into the clipboard. The behavior is controlled by the system property "awt.windows.clipboard.cache.disabled" (=true by default) ;
- Whenever the app gets focus additionally checks if another app has modified the clipboard. The behavior is controlled by the system property "awt.windows.clipboard.extraOwnershipChecksEnabled" (=true by default) .

(cherry picked from commit 473c41003d)
2023-11-11 05:58:00 +07:00
Nikita Provotorov
16cef9f362 JBR-5980: Pasting from clipboard not working reliably in Windows.
Marks the native flag AwtClipboard::isGettingOwnership as volatile to avoid inconsistencies of CPU caches.

(cherry picked from commit b967f5bc91)
2023-11-11 05:58:00 +07:00
28 changed files with 2717 additions and 218 deletions

View File

@@ -137,10 +137,18 @@ echo Fixing permissions
chmod -R a+r $JSDK
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module_aarch64.patch || do_exit $?
update_jsdk_mods $JSDK $JCEF_PATH/jmods $JSDK/jmods $JSDK_MODS_DIR || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
cat $JCEF_PATH/jcef.version >> $JSDK/release
if [ -d "$JCEF_PATH" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module_aarch64.patch || do_exit $?
update_jsdk_mods $JSDK $JCEF_PATH/jmods $JSDK/jmods $JSDK_MODS_DIR || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
cat $JCEF_PATH/jcef.version >> $JSDK/release
else
if [ "$bundle_type" == "jcef" ]; then
echo "*** ERROR *** $JCEF_PATH not found" && do_exit 1
else
echo "*** WARNING *** $JCEF_PATH not found"
fi
fi
fi
# create runtime image bundle

View File

@@ -137,10 +137,18 @@ echo Fixing permissions
chmod -R a+r $JSDK
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods $JSDK $JCEF_PATH/jmods $JSDK/jmods $JSDK_MODS_DIR || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
cat $JCEF_PATH/jcef.version >> $JSDK/release
if [ -d "$JCEF_PATH" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods $JSDK $JCEF_PATH/jmods $JSDK/jmods $JSDK_MODS_DIR || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
cat $JCEF_PATH/jcef.version >> $JSDK/release
else
if [ "$bundle_type" == "jcef" ]; then
echo "*** ERROR *** $JCEF_PATH not found" && do_exit 1
else
echo "*** WARNING *** $JCEF_PATH not found"
fi
fi
fi
# create runtime image bundle

View File

@@ -138,10 +138,18 @@ JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
if [ -d "$JCEF_PATH" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
#JBR-5426 write JCEF version info inside release file
else
if [ "$bundle_type" == "jcef" ]; then
echo "*** ERROR *** $JCEF_PATH not found" && do_exit 1
else
echo "*** WARNING *** $JCEF_PATH not found"
fi
fi
jbr_name_postfix="_${bundle_type}"
else
jbr_name_postfix=""

View File

@@ -126,12 +126,19 @@ if [ $? -eq 0 ]; then
fi
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module_aarch64.patch || do_exit $?
update_jsdk_mods "$BUILD_JDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not unchanged
if [ -d "$JCEF_PATH" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module_aarch64.patch || do_exit $?
update_jsdk_mods "$BUILD_JDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not unchanged
cat $JCEF_PATH/jcef.version >> $JSDK/release
else
if [ "$bundle_type" == "jcef" ]; then
echo "*** ERROR *** $JCEF_PATH not found" && do_exit 1
else
echo "*** WARNING *** $JCEF_PATH not found"
fi
fi
jbr_name_postfix="_${bundle_type}"
cat $JCEF_PATH/jcef.version >> $JSDK/release
else
jbr_name_postfix=""
fi

View File

@@ -117,12 +117,19 @@ if [ $? -eq 0 ]; then
fi
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* ${JSDK_MODS_DIR} # $JSDK/jmods is not unchanged
if [ -d "$JCEF_PATH" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* ${JSDK_MODS_DIR} # $JSDK/jmods is not unchanged
cat $JCEF_PATH/jcef.version >> $JSDK/release
else
if [ "$bundle_type" == "jcef" ]; then
echo "*** ERROR *** $JCEF_PATH not found" && do_exit 1
else
echo "*** WARNING *** $JCEF_PATH not found"
fi
fi
jbr_name_postfix="_${bundle_type}"
cat $JCEF_PATH/jcef.version >> $JSDK/release
else
jbr_name_postfix=""
fi

View File

@@ -109,7 +109,7 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
private static native boolean nativeDelayShowing(long nsWindowPtr);
private static native void nativeUpdateCustomTitleBar(long nsWindowPtr);
private static native void nativeCallDeliverMoveResizeEvent(long nsWindowPtr);
private static native void nativeSetRoundedCorners(long nsWindowPrt, float radius);
private static native void nativeSetRoundedCorners(long nsWindowPrt, float radius, int borderWidth, int borderColor);
// Logger to report issues happened during execution but that do not affect functionality
private static final PlatformLogger logger = PlatformLogger.getLogger("sun.lwawt.macosx.CPlatformWindow");
@@ -991,6 +991,14 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
return ref.get();
}
private boolean isTabbedWindow() {
AtomicBoolean ref = new AtomicBoolean();
execute(ptr -> {
ref.set(CWrapper.NSWindow.isTabbedWindow(ptr));
});
return ref.get();
}
// We want a window to be always shown at the same space as its owning window.
// But macOS doesn't have an API to control the target space for a window -
// it's always shown at the active space. So if the target space isn't active now,
@@ -1353,7 +1361,9 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
// which is going to become 'main window', are placed above their siblings.
CPlatformWindow rootOwner = getRootOwner();
if (rootOwner.isVisible() && !rootOwner.isIconified() && !rootOwner.isActive()) {
rootOwner.execute(CWrapper.NSWindow::orderFrontIfOnActiveSpace);
if (rootOwner != this || !isTabbedWindow()) {
rootOwner.execute(CWrapper.NSWindow::orderFrontIfOnActiveSpace);
}
}
// Do not order child windows of iconified owner.
@@ -1500,7 +1510,13 @@ public class CPlatformWindow extends CFRetainedResource implements PlatformWindo
private void setRoundedCorners(Object params) {
if (params instanceof Float) {
execute(ptr -> nativeSetRoundedCorners(ptr, (float) params));
execute(ptr -> nativeSetRoundedCorners(ptr, (float) params, 0, 0));
} else if (params instanceof Object[]) {
Object[] values = (Object[]) params;
if (values.length == 3 && values[0] instanceof Float && values[1] instanceof Integer && values[2] instanceof Color) {
Color color = (Color) values[2];
execute(ptr -> nativeSetRoundedCorners(ptr, (float) values[0], (int) values[1], color.getRGB()));
}
}
}
}

View File

@@ -30,6 +30,7 @@ import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.awt.print.*;
import java.io.File;
import java.net.URI;
import java.security.AccessController;
import java.security.PrivilegedAction;
@@ -185,6 +186,15 @@ public final class CPrinterJob extends RasterPrinterJob {
if (attributes == null) {
return;
}
if (getPrintService() == null && isPrintToFile) {
Destination destination = (Destination)attributes.get(Destination.class);
if (destination != null) {
try {
destinationAttr = "" + new File(destination.getURI().getSchemeSpecificPart());
} catch (Exception e) {
}
}
}
Attribute attr = attributes.get(Media.class);
if (attr instanceof CustomMediaTray) {
CustomMediaTray customTray = (CustomMediaTray) attr;

View File

@@ -108,6 +108,8 @@ final class CWrapper {
static native void zoom(long window);
static native void makeFirstResponder(long window, long responder);
static native boolean isTabbedWindow(long window);
}
static final class NSView {

View File

@@ -50,6 +50,10 @@
NSWindowTabbingMode javaWindowTabbingMode;
BOOL isEnterFullScreen;
CGFloat _customTitleBarHeight;
BOOL hideTabController;
NSView *_fullScreenButtons;
NSView *_fullScreenOriginalButtons;
}
// An instance of either AWTWindow_Normal or AWTWindow_Panel
@@ -74,6 +78,7 @@
@property (nonatomic, retain) NSMutableArray *customTitleBarConstraints;
@property (nonatomic, retain) NSLayoutConstraint *customTitleBarHeightConstraint;
@property (nonatomic, retain) NSMutableArray *customTitleBarButtonCenterXConstraints;
@property (nonatomic) BOOL hideTabController;
- (id) initWithPlatformWindow:(jobject)javaPlatformWindow
ownerWindow:owner
@@ -97,7 +102,9 @@
@end
@interface AWTWindow_Normal : NSWindow
@interface AWTWindow_Normal : NSWindow {
@private BOOL _ignoreMove;
}
- (id) initWithDelegate:(AWTWindow *)delegate
frameRect:(NSRect)rect
styleMask:(NSUInteger)styleMask
@@ -116,4 +123,13 @@
- (id) initWithPlatformWindow:(jobject)javaPlatformWindow;
@end
@interface AWTButtonsView : NSView {
@private BOOL _showButtons;
NSColor* _color;
}
- (void)configureColors;
@end
#endif _AWTWINDOW_H

View File

@@ -38,6 +38,7 @@
#import "ThreadUtilities.h"
#import "NSApplicationAWT.h"
#import "JNIUtilities.h"
#import "PropertiesUtilities.h"
#define MASK(KEY) \
(sun_lwawt_macosx_CPlatformWindow_ ## KEY)
@@ -55,6 +56,16 @@ static jclass jc_CPlatformWindow = NULL;
#define GET_CPLATFORM_WINDOW_CLASS_RETURN(ret) \
GET_CLASS_RETURN(jc_CPlatformWindow, "sun/lwawt/macosx/CPlatformWindow", ret);
@interface NSTitlebarAccessoryViewController (Private)
- (void)_setHidden:(BOOL)h animated:(BOOL)a;
@end
@interface NSWindow (Private)
- (void)_setTabBarAccessoryViewController:(id)controller;
- (void)setIgnoreMove:(BOOL)value;
- (void)_adjustWindowToScreen;
@end
// Cocoa windowDidBecomeKey/windowDidResignKey notifications
// doesn't provide information about "opposite" window, so we
// have to do a bit of tracking. This variable points to a window
@@ -348,6 +359,44 @@ AWT_NS_WINDOW_IMPLEMENTATION
[super orderOut:sender];
}
- (void)_setTabBarAccessoryViewController:(id)_controller {
if (((AWTWindow *)self.delegate).hideTabController) {
NSTitlebarAccessoryViewController* controller = [[NSTitlebarAccessoryViewController alloc] init];
controller.view = [[NSView alloc] init];
[controller.view setFrame:NSMakeRect(0, 0, 0, 0)];
[controller _setHidden:YES animated:NO];
[super _setTabBarAccessoryViewController:controller];
} else {
[super _setTabBarAccessoryViewController:_controller];
}
}
- (BOOL)isNativeSelected {
if (@available(macOS 10.13, *)) {
return [[self tabGroup] selectedWindow] == self;
}
return NO;
}
- (void)setIgnoreMove:(BOOL)value {
_ignoreMove = value;
self.movable = !value;
}
- (void)_adjustWindowToScreen {
if (_ignoreMove) {
self.movable = YES;
}
[super _adjustWindowToScreen];
[(AWTWindow *)self.delegate updateFullScreenButtons];
if (_ignoreMove) {
self.movable = NO;
}
}
@end
@implementation AWTWindow_Panel
AWT_NS_WINDOW_IMPLEMENTATION
@@ -372,6 +421,7 @@ AWT_NS_WINDOW_IMPLEMENTATION
@synthesize isJustCreated;
@synthesize javaWindowTabbingMode;
@synthesize isEnterFullScreen;
@synthesize hideTabController;
- (void) updateMinMaxSize:(BOOL)resizable {
if (resizable) {
@@ -547,6 +597,8 @@ AWT_ASSERT_APPKIT_THREAD;
self.nsWindow.collectionBehavior = NSWindowCollectionBehaviorManaged;
self.isEnterFullScreen = NO;
[self configureJavaWindowTabbingIdentifier];
if (self.isCustomTitleBarEnabled && !self.isFullScreen) {
[self setUpCustomTitleBar];
}
@@ -569,6 +621,64 @@ AWT_ASSERT_APPKIT_THREAD;
return [self.nsWindow windowNumber] == [AWTWindow getTopmostWindowUnderMouseID];
}
- (void) configureJavaWindowTabbingIdentifier {
AWT_ASSERT_APPKIT_THREAD;
self.hideTabController = NO;
if (self.javaWindowTabbingMode != NSWindowTabbingModeAutomatic) {
return;
}
JNIEnv *env = [ThreadUtilities getJNIEnv];
jobject platformWindow = (*env)->NewLocalRef(env, self.javaPlatformWindow);
if (platformWindow == NULL) {
return;
}
GET_CPLATFORM_WINDOW_CLASS();
DECLARE_FIELD(jf_target, jc_CPlatformWindow, "target", "Ljava/awt/Window;");
jobject awtWindow = (*env)->GetObjectField(env, platformWindow, jf_target);
if (awtWindow != NULL) {
DECLARE_CLASS(jc_RootPaneContainer, "javax/swing/RootPaneContainer");
if ((*env)->IsInstanceOf(env, awtWindow, jc_RootPaneContainer)) {
DECLARE_METHOD(jm_getRootPane, jc_RootPaneContainer, "getRootPane", "()Ljavax/swing/JRootPane;");
jobject rootPane = (*env)->CallObjectMethod(env, awtWindow, jm_getRootPane);
CHECK_EXCEPTION();
if (rootPane != NULL) {
DECLARE_CLASS(jc_JComponent, "javax/swing/JComponent");
DECLARE_METHOD(jm_getClientProperty, jc_JComponent, "getClientProperty", "(Ljava/lang/Object;)Ljava/lang/Object;");
jstring jKey = NSStringToJavaString(env, @"JavaWindowTabbingIdentifier");
jobject jValue = (*env)->CallObjectMethod(env, rootPane, jm_getClientProperty, jKey);
CHECK_EXCEPTION();
if (jValue != NULL) {
DECLARE_CLASS(jc_String, "java/lang/String");
if ((*env)->IsInstanceOf(env, jValue, jc_String)) {
NSString *winId = JavaStringToNSString(env, (jstring)jValue);
[self.nsWindow setTabbingIdentifier:winId];
if ([winId characterAtIndex:0] == '+') {
self.hideTabController = YES;
[self.nsWindow _setTabBarAccessoryViewController:nil];
}
}
(*env)->DeleteLocalRef(env, jValue);
}
(*env)->DeleteLocalRef(env, jKey);
(*env)->DeleteLocalRef(env, rootPane);
}
}
(*env)->DeleteLocalRef(env, awtWindow);
}
(*env)->DeleteLocalRef(env, platformWindow);
}
- (NSWindowTabbingMode) getJavaWindowTabbingMode {
AWT_ASSERT_APPKIT_THREAD;
@@ -1309,6 +1419,15 @@ AWT_ASSERT_APPKIT_THREAD;
if (self.isCustomTitleBarEnabled) {
[self forceHideCustomTitleBarTitle:NO];
[self updateCustomTitleBarInsets:NO];
JNIEnv *env = [ThreadUtilities getJNIEnvUncached];
NSString *newFullScreenControls1 = [PropertiesUtilities
javaSystemPropertyForKey:@"apple.awt.newFullScreeControls" withEnv:env];
NSString *newFullScreenControls2 = [PropertiesUtilities
javaSystemPropertyForKey:@"apple.awt.newFullScreenControls" withEnv:env];
if ([@"true" isCaseInsensitiveLike:newFullScreenControls1] || [@"true" isCaseInsensitiveLike:newFullScreenControls2]) {
[self setWindowFullScreenControls];
}
}
[self allowMovingChildrenBetweenSpaces:NO];
[self fullScreenTransitionFinished];
@@ -1355,6 +1474,8 @@ AWT_ASSERT_APPKIT_THREAD;
}
- (void)windowDidExitFullScreen:(NSNotification *)notification {
[self resetWindowFullScreenControls];
self.isEnterFullScreen = NO;
[self fullScreenTransitionFinished];
@@ -1464,7 +1585,9 @@ static const CGFloat DefaultHorizontalTitleBarButtonOffset = 20.0;
}
- (void) setUpCustomTitleBar {
if (self.customTitleBarConstraints != nil) {
[self resetCustomTitleBar];
}
/**
* The view hierarchy normally looks as follows:
* NSThemeFrame
@@ -1509,6 +1632,8 @@ static const CGFloat DefaultHorizontalTitleBarButtonOffset = 20.0;
self.customTitleBarHeightConstraint,
]];
[self.nsWindow setIgnoreMove:YES];
AWTWindowDragView* windowDragView = [[AWTWindowDragView alloc] initWithPlatformWindow:self.javaPlatformWindow];
[titlebar addSubview:windowDragView positioned:NSWindowBelow relativeTo:closeButtonView];
@@ -1560,6 +1685,8 @@ static const CGFloat DefaultHorizontalTitleBarButtonOffset = 20.0;
}];
[self setWindowControlsHidden:!self.customTitleBarControlsVisible];
[self updateCustomTitleBarInsets:self.customTitleBarControlsVisible];
[self updateFullScreenButtons];
}
- (void) resetCustomTitleBar {
@@ -1595,14 +1722,109 @@ static const CGFloat DefaultHorizontalTitleBarButtonOffset = 20.0;
[self setWindowControlsHidden:NO];
[self updateCustomTitleBarInsets:NO];
[self.nsWindow setIgnoreMove:NO];
}
- (void) setWindowControlsHidden: (BOOL) hidden {
if (_fullScreenOriginalButtons != nil) {
[_fullScreenOriginalButtons.window.contentView setHidden:NO];
_fullScreenButtons.hidden = YES;
}
[self.nsWindow standardWindowButton:NSWindowCloseButton].hidden = hidden;
[self.nsWindow standardWindowButton:NSWindowZoomButton].hidden = hidden;
[self.nsWindow standardWindowButton:NSWindowMiniaturizeButton].hidden = hidden;
}
- (void) setWindowFullScreenControls {
JNIEnv *env = [ThreadUtilities getJNIEnvUncached];
NSString *dfmMode = [PropertiesUtilities javaSystemPropertyForKey:@"apple.awt.distraction.free.mode" withEnv:env];
if ([@"true" isCaseInsensitiveLike:dfmMode]) {
return;
}
NSView* oldCloseButton = [self.nsWindow standardWindowButton:NSWindowCloseButton];
_fullScreenOriginalButtons = oldCloseButton.superview;
NSRect closeButtonRect = [oldCloseButton frame];
NSRect miniaturizeButtonRect = [[self.nsWindow standardWindowButton:NSWindowMiniaturizeButton] frame];
NSRect zoomButtonRect = [[self.nsWindow standardWindowButton:NSWindowZoomButton] frame];
for (NSWindow* window in [[NSApplication sharedApplication] windows]) {
if ([window isKindOfClass:NSClassFromString(@"NSToolbarFullScreenWindow")]) {
[window.contentView setHidden:YES];
}
}
_fullScreenButtons = [[AWTButtonsView alloc] init];
[self updateFullScreenButtons];
[_fullScreenButtons addTrackingArea:[[NSTrackingArea alloc] initWithRect:[_fullScreenButtons visibleRect]
options:(NSTrackingActiveAlways | NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved)
owner:_fullScreenButtons userInfo:nil]];
NSUInteger masks = [self.nsWindow styleMask];
NSButton *closeButton = [NSWindow standardWindowButton:NSWindowCloseButton forStyleMask:masks];
[closeButton setFrame:closeButtonRect];
[_fullScreenButtons addSubview:closeButton];
NSButton *miniaturizeButton = [NSWindow standardWindowButton:NSWindowMiniaturizeButton forStyleMask:masks];
[miniaturizeButton setFrame:miniaturizeButtonRect];
[_fullScreenButtons addSubview:miniaturizeButton];
NSButton *zoomButton = [NSWindow standardWindowButton:NSWindowZoomButton forStyleMask:masks];
[zoomButton setFrame:zoomButtonRect];
[_fullScreenButtons addSubview:zoomButton];
[self.nsWindow.contentView addSubview:_fullScreenButtons];
[self updateColors];
}
- (void)updateColors {
if (_fullScreenButtons != nil) {
[(AWTButtonsView *)_fullScreenButtons configureColors];
}
}
- (void)updateFullScreenButtons {
if (_fullScreenButtons == nil || _fullScreenOriginalButtons == nil) {
return;
}
NSView *parent = self.nsWindow.contentView;
CGFloat w = 80;
CGFloat h = _fullScreenOriginalButtons.frame.size.height;
CGFloat x = 6;
CGFloat y = parent.frame.size.height - h - (self.customTitleBarHeight - h) / 2.0;
[_fullScreenButtons setFrame:NSMakeRect(x, y, w - x, h)];
}
- (void)updateFullScreenButtons: (BOOL) dfm {
if (dfm) {
if (_fullScreenButtons == nil || _fullScreenOriginalButtons == nil) {
return;
}
[_fullScreenOriginalButtons.window.contentView setHidden:NO];
[self resetWindowFullScreenControls];
} else {
if (!self.isCustomTitleBarEnabled || _fullScreenButtons != nil) {
return;
}
[self setWindowFullScreenControls];
}
}
- (void) resetWindowFullScreenControls {
if (_fullScreenButtons != nil) {
[_fullScreenButtons removeFromSuperview];
_fullScreenButtons = nil;
_fullScreenOriginalButtons = nil;
}
}
- (BOOL) isFullScreen {
NSUInteger masks = [self.nsWindow styleMask];
return (masks & NSWindowStyleMaskFullScreen) != 0;
@@ -1639,7 +1861,7 @@ static const CGFloat DefaultHorizontalTitleBarButtonOffset = 20.0;
nsWindow.styleMask & NSWindowStyleMaskFullScreen)];
// calls methods on NSWindow to change other properties, based on the mask
[self setPropertiesForStyleBits:newBits mask:mask];
if (!fullscreen) [self _deliverMoveResizeEvent];
if (!fullscreen && !self.nsWindow.miniaturized) [self _deliverMoveResizeEvent];
if (enabled != (self.customTitleBarConstraints != nil)) {
if (!fullscreen) {
@@ -1648,6 +1870,8 @@ static const CGFloat DefaultHorizontalTitleBarButtonOffset = 20.0;
} else {
[self resetCustomTitleBar];
}
} else {
[self updateFullScreenButtons];
}
} else if (enabled) {
[self updateCustomTitleBarConstraints];
@@ -1688,10 +1912,6 @@ static const CGFloat DefaultHorizontalTitleBarButtonOffset = 20.0;
return hitTest <= java_awt_Window_CustomTitleBar_HIT_TITLEBAR;
}
- (BOOL) mouseDownCanMoveWindow {
return NO;
}
- (BOOL) acceptsFirstMouse:(NSEvent *)event {
return YES;
}
@@ -1766,6 +1986,96 @@ static const CGFloat DefaultHorizontalTitleBarButtonOffset = 20.0;
@end
@implementation AWTButtonsView
- (void)dealloc {
[_color release];
[super dealloc];
}
- (void)mouseEntered:(NSEvent *)theEvent {
[self updateButtons:YES];
}
- (void)mouseExited:(NSEvent *)theEvent {
[self updateButtons:NO];
}
- (void)configureColors {
JNIEnv *env = [ThreadUtilities getJNIEnvUncached];
NSString *javaColor = [PropertiesUtilities javaSystemPropertyForKey:@"apple.awt.newFullScreeControls.background" withEnv:env];
[_color release];
if (javaColor == nil) {
_color = nil;
} else {
int rgb = [javaColor intValue];
CGFloat alpha = (((rgb >> 24) & 0xff) / 255.0);
CGFloat red = (((rgb >> 16) & 0xff) / 255.0);
CGFloat green = (((rgb >> 8) & 0xff) / 255.0);
CGFloat blue = (((rgb >> 0) & 0xff) / 255.0);
_color = [NSColor colorWithDeviceRed:red green:green blue:blue alpha:alpha];
[_color retain];
}
[self updateButtons:NO];
}
- (void)updateButtons:(BOOL) flag {
_showButtons = flag;
if (self.subviews.count == 3) {
[self updateButton:0 flag:flag]; // close
[self updateButton:1 flag:NO]; // miniaturize
[self updateButton:2 flag:flag]; // zoom
}
[self setNeedsDisplay:YES];
}
- (void)updateButton: (int)index flag:(BOOL) flag {
NSButton *button = (NSButton*)self.subviews[index];
[button setHidden:!flag];
[button setHighlighted:flag];
}
- (void)drawRect: (NSRect)dirtyRect {
if (self.subviews.count != 3) {
return;
}
if (_color == nil) {
[[NSColor whiteColor] setFill];
} else {
[_color setFill];
}
if (_showButtons) {
[self drawButton:1]; // miniaturize
} else {
for (int i = 0; i < 3; i++) {
[self drawButton:i];
}
}
}
- (void)drawButton: (int)index {
NSButton *button = (NSButton*)self.subviews[index];
NSRect rect = button.frame;
CGFloat r = 12;
CGFloat x = rect.origin.x + (rect.size.width - r) / 2;
CGFloat y = rect.origin.y + (rect.size.height - r) / 2;
NSBezierPath* circlePath = [NSBezierPath bezierPath];
[circlePath appendBezierPathWithOvalInRect:CGRectMake(x, y, r, r)];
[circlePath fill];
}
@end
/*
* Class: sun_lwawt_macosx_CPlatformWindow
* Method: nativeSetAllAllowAutomaticTabbingProperty
@@ -2593,7 +2903,7 @@ JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeCallDeliverMo
}
JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeSetRoundedCorners
(JNIEnv *env, jclass clazz, jlong windowPtr, jfloat radius)
(JNIEnv *env, jclass clazz, jlong windowPtr, jfloat radius, jint borderWidth, jint borderRgb)
{
JNI_COCOA_ENTER(env);
@@ -2603,6 +2913,18 @@ JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeSetRoundedCor
w.contentView.wantsLayer = YES;
w.contentView.layer.cornerRadius = radius;
w.contentView.layer.masksToBounds = YES;
if (borderWidth > 0) {
CGFloat alpha = (((borderRgb >> 24) & 0xff) / 255.0);
CGFloat red = (((borderRgb >> 16) & 0xff) / 255.0);
CGFloat green = (((borderRgb >> 8) & 0xff) / 255.0);
CGFloat blue = (((borderRgb >> 0) & 0xff) / 255.0);
NSColor *color = [NSColor colorWithDeviceRed:red green:green blue:blue alpha:alpha];
w.contentView.layer.borderWidth = borderWidth;
w.contentView.layer.borderColor = color.CGColor;
}
w.backgroundColor = NSColor.clearColor;
w.opaque = NO;
// remove corner radius animation

View File

@@ -516,6 +516,31 @@ JNI_COCOA_ENTER(env);
JNI_COCOA_EXIT(env);
}
/*
* Class: sun_lwawt_macosx_CWrapper$NSWindow
* Method: isTabbedWindow
* Signature: (J)Z
*/
JNIEXPORT jboolean JNICALL
Java_sun_lwawt_macosx_CWrapper_00024NSWindow_isTabbedWindow
(JNIEnv *env, jclass cls, jlong windowPtr)
{
__block jboolean isTabbedWindow = JNI_FALSE;
JNI_COCOA_ENTER(env);
if (@available(macOS 10.13, *)) {
NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
[ThreadUtilities performOnMainThreadWaiting:YES block:^(){
isTabbedWindow = [[[window tabGroup] windows] count] > 1;
}];
}
JNI_COCOA_EXIT(env);
return isTabbedWindow;
}
/*
* Class: sun_lwawt_macosx_CWrapper$NSView
* Method: addSubview

View File

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2003, 2021, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2023, JetBrains s.r.o.. 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
@@ -25,18 +26,29 @@
package sun.awt.X11;
import java.awt.AWTException;
import java.awt.Component;
import java.awt.Container;
import java.awt.Rectangle;
import java.awt.*;
import java.awt.event.*;
import java.awt.im.InputMethodRequests;
import java.awt.im.spi.InputMethodContext;
import java.awt.peer.ComponentPeer;
import java.lang.ref.WeakReference;
import java.util.Arrays;
import java.util.Iterator;
import java.util.Objects;
import java.util.function.Supplier;
import java.util.stream.Stream;
import sun.awt.AWTAccessor;
import sun.awt.X11GraphicsDevice;
import sun.awt.X11InputMethod;
import sun.util.logging.PlatformLogger;
import javax.swing.*;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.text.JTextComponent;
/**
* Input Method Adapter for XIM (without Motif)
*
@@ -47,6 +59,7 @@ public class XInputMethod extends X11InputMethod {
public XInputMethod() throws AWTException {
super();
clientComponentCaretPositionTracker = new ClientComponentCaretPositionTracker(this);
}
public void setInputMethodContext(InputMethodContext context) {
@@ -58,8 +71,82 @@ public class XInputMethod extends X11InputMethod {
if (peer != null) {
adjustStatusWindow(peer.getContentWindow());
}
if (doesSupportMovingCandidatesNativeWindow) {
clientComponentCaretPositionTracker.onNotifyClientWindowChange(location);
}
}
@Override
public synchronized void activate() {
super.activate();
if (doesSupportMovingCandidatesNativeWindow) {
updateCandidatesNativeWindowPosition(true);
clientComponentCaretPositionTracker.startTracking(getClientComponent());
}
}
@Override
public synchronized void deactivate(boolean isTemporary) {
clientComponentCaretPositionTracker.stopTrackingCurrentComponent();
super.deactivate(isTemporary);
}
@Override
public void dispatchEvent(AWTEvent e) {
if (doesSupportMovingCandidatesNativeWindow) {
clientComponentCaretPositionTracker.onDispatchEvent(e);
}
super.dispatchEvent(e);
}
// Is called from native
private static boolean isJbNewXimClientEnabled() {
try {
final String strVal = System.getProperty("jb.awt.newXimClient.enabled");
final boolean defVal = true;
return (strVal == null) ? defVal : Boolean.parseBoolean(strVal);
} catch (Exception err) {
if (log.isLoggable(PlatformLogger.Level.SEVERE)) {
log.severe("Error at isJbNewXimClientEnabled", err);
}
}
return false;
}
protected boolean preferXBelowTheSpot() {
try {
if (BrokenImDetectionContext.EATEN_EVENTS_THRESHOLD > 0) {
// The fix of JBR-1573,
// which is incompatible with the implementation of the native below-the-spot mode (a.k.a. X over-the-spot),
// is explicitly enabled.
// So let's disable this mode in favor of that fix.
if (log.isLoggable(PlatformLogger.Level.WARNING)) {
log.warning("The property \"jb.awt.newXimClient.preferBelowTheSpot\" is ignored in favor of the explicitly enabled \"recreate.x11.input.method\"");
}
return false;
}
final String strVal = System.getProperty("jb.awt.newXimClient.preferBelowTheSpot");
final boolean defVal = true;
return (strVal == null) ? defVal : Boolean.parseBoolean(strVal);
} catch (Exception err) {
if (log.isLoggable(PlatformLogger.Level.SEVERE)) {
log.severe("Error at isJbNewXimClientEnabled", err);
}
}
return false;
}
protected boolean openXIM() {
return openXIMNative(XToolkit.getDisplay());
}
@@ -69,14 +156,14 @@ public class XInputMethod extends X11InputMethod {
if (peer == null) {
return false;
}
return createXICNative(peer.getContentWindow());
return createXICNative(peer.getContentWindow(), preferXBelowTheSpot());
}
protected boolean recreateXIC(int ctxid) {
final XComponentPeer peer = (XComponentPeer)getPeer(clientComponentWindow);
if (peer == null || pData == 0)
return true;
return recreateXICNative(peer.getContentWindow(), pData, ctxid);
return recreateXICNative(peer.getContentWindow(), pData, ctxid, preferXBelowTheSpot());
}
protected int releaseXIC() {
if (pData == 0)
@@ -86,8 +173,7 @@ public class XInputMethod extends X11InputMethod {
private static volatile long xicFocus;
protected void setXICFocus(ComponentPeer peer,
boolean value, boolean active) {
protected void setXICFocus(ComponentPeer peer, boolean value, boolean active) {
if (peer == null) {
return;
}
@@ -95,15 +181,17 @@ public class XInputMethod extends X11InputMethod {
setXICFocusNative(((XComponentPeer)peer).getContentWindow(),
value,
active);
doesSupportMovingCandidatesNativeWindow = value && doesFocusedXICSupportMovingCandidatesNativeWindow();
}
public static long getXICFocus() {
return xicFocus;
}
/* XAWT_HACK FIX ME!
do NOT call client code!
*/
/* XAWT_HACK FIX ME!
do NOT call client code!
*/
protected Container getParent(Component client) {
return client.getParent();
}
@@ -222,12 +310,12 @@ public class XInputMethod extends X11InputMethod {
static {
int eatenEventsThresholdInitializer = 7;
final String eventsThresholdMode = System.getProperty("recreate.x11.input.method", "true");
int eatenEventsThresholdInitializer = 0;
final String eventsThresholdMode = System.getProperty("recreate.x11.input.method", "false");
if ("false".equals(eventsThresholdMode)) {
eatenEventsThresholdInitializer = 0;
} else if (!"true".equals(eventsThresholdMode)) {
if ("true".equalsIgnoreCase(eventsThresholdMode)) {
eatenEventsThresholdInitializer = 7;
} else if (!"false".equalsIgnoreCase(eventsThresholdMode)) {
try {
eatenEventsThresholdInitializer = Integer.parseInt(eventsThresholdMode);
} catch (NumberFormatException err) {
@@ -245,14 +333,397 @@ public class XInputMethod extends X11InputMethod {
}
// JBR-2460
private volatile boolean doesSupportMovingCandidatesNativeWindow = false;
private Point lastKnownCandidatesNativeWindowAbsolutePosition = null;
private void updateCandidatesNativeWindowPosition(final boolean forceUpdate) {
assert(SwingUtilities.isEventDispatchThread());
if (!doesSupportMovingCandidatesNativeWindow) {
return;
}
final Component clientComponent = getClientComponent();
if (clientComponent == null) {
// No client
return;
}
final Window clientComponentWindow = getClientComponentWindow();
if (clientComponentWindow == null) {
// Impossible?
return;
}
if (!clientComponent.isShowing() || (!clientComponentWindow.isShowing())) {
// Components are not showing yet, so it's impossible to determine their location on the screen
// and/or the location of the caret
return;
}
final Point clientComponentAbsolutePos = clientComponent.getLocationOnScreen();
final int clientComponentAbsoluteMaxX = clientComponentAbsolutePos.x + clientComponent.getWidth();
final int clientComponentAbsoluteMaxY = clientComponentAbsolutePos.y + clientComponent.getHeight();
// Initial values are the fallback which is the bottom-left corner of the component
final Point expectedCandidatesNativeWindowAbsolutePos = new Point(
clientComponentAbsolutePos.x,
clientComponentAbsoluteMaxY
);
final InputMethodRequests clientImr = clientComponent.getInputMethodRequests();
if (clientImr != null) {
// An active client
final Rectangle caretRect = clientImr.getTextLocation(null);
if (caretRect != null) {
expectedCandidatesNativeWindowAbsolutePos.x = caretRect.x;
expectedCandidatesNativeWindowAbsolutePos.y = caretRect.y + caretRect.height;
}
}
// Clamping within the client component's visible rect (if available and not empty) or just its bounds
final var clientComponentVisibleRect = getJComponentVisibleRectIfNotEmpty(clientComponent);
if (clientComponentVisibleRect == null) {
expectedCandidatesNativeWindowAbsolutePos.x =
Math.max(clientComponentAbsolutePos.x, Math.min(expectedCandidatesNativeWindowAbsolutePos.x, clientComponentAbsoluteMaxX - 1));
expectedCandidatesNativeWindowAbsolutePos.y =
Math.max(clientComponentAbsolutePos.y, Math.min(expectedCandidatesNativeWindowAbsolutePos.y, clientComponentAbsoluteMaxY - 1));
} else {
final int visibleBoundsAbsoluteMinX = clientComponentAbsolutePos.x + clientComponentVisibleRect.x;
final int visibleBoundsAbsoluteMaxX = visibleBoundsAbsoluteMinX + clientComponentVisibleRect.width;
final int visibleBoundsAbsoluteMinY = clientComponentAbsolutePos.y + clientComponentVisibleRect.y;
final int visibleBoundsAbsoluteMaxY = visibleBoundsAbsoluteMinY + clientComponentVisibleRect.height;
expectedCandidatesNativeWindowAbsolutePos.x =
Math.max(visibleBoundsAbsoluteMinX, Math.min(expectedCandidatesNativeWindowAbsolutePos.x, visibleBoundsAbsoluteMaxX - 1));
expectedCandidatesNativeWindowAbsolutePos.y =
Math.max(visibleBoundsAbsoluteMinY, Math.min(expectedCandidatesNativeWindowAbsolutePos.y, visibleBoundsAbsoluteMaxY - 1));
}
// Scaling the coordinates according to the screen's current scaling settings.
// To do it properly, we have to know the screen which the point is on.
// The code below supposes this is the one which clientComponent belongs to, because we've clamped
// the point coordinates within the component's bounds above.
final X11GraphicsDevice candidatesNativeWindowDevice = getComponentX11Device(clientComponent);
if (candidatesNativeWindowDevice != null) {
expectedCandidatesNativeWindowAbsolutePos.x =
candidatesNativeWindowDevice.scaleUpX(expectedCandidatesNativeWindowAbsolutePos.x);
expectedCandidatesNativeWindowAbsolutePos.y =
candidatesNativeWindowDevice.scaleUpY(expectedCandidatesNativeWindowAbsolutePos.y);
}
// Clamping within screen bounds (to avoid the input candidates window to appear outside a screen).
final Rectangle closestScreenScaledBounds = new Rectangle();
final X11GraphicsDevice candidatesNativeWindowClosestScreen = findClosestScreenToPoint(
closestScreenScaledBounds,
expectedCandidatesNativeWindowAbsolutePos,
candidatesNativeWindowDevice
);
if (candidatesNativeWindowClosestScreen != null) {
final int screenScaledBoundsXMax = closestScreenScaledBounds.x + closestScreenScaledBounds.width - 1;
final int screenScaledBoundsYMax = closestScreenScaledBounds.y + closestScreenScaledBounds.height - 1;
expectedCandidatesNativeWindowAbsolutePos.x =
Math.max(closestScreenScaledBounds.x, Math.min(expectedCandidatesNativeWindowAbsolutePos.x, screenScaledBoundsXMax));
expectedCandidatesNativeWindowAbsolutePos.y =
Math.max(closestScreenScaledBounds.y, Math.min(expectedCandidatesNativeWindowAbsolutePos.y, screenScaledBoundsYMax));
}
if (forceUpdate || !expectedCandidatesNativeWindowAbsolutePos.equals(lastKnownCandidatesNativeWindowAbsolutePosition)) {
// adjustCandidatesNativeWindowPosition expects coordinates relative to the client window
final Point clientComponentWindowAbsolutePos = clientComponentWindow.getLocationOnScreen();
final X11GraphicsDevice clientComponentWindowDevice = getComponentX11Device(clientComponentWindow);
if (clientComponentWindowDevice != null) {
clientComponentWindowAbsolutePos.x =
clientComponentWindowDevice.scaleUpX(clientComponentWindowAbsolutePos.x);
clientComponentWindowAbsolutePos.y =
clientComponentWindowDevice.scaleUpY(clientComponentWindowAbsolutePos.y);
}
final int relativeX = expectedCandidatesNativeWindowAbsolutePos.x - clientComponentWindowAbsolutePos.x;
final int relativeY = expectedCandidatesNativeWindowAbsolutePos.y - clientComponentWindowAbsolutePos.y;
awtLock();
try {
adjustCandidatesNativeWindowPosition(relativeX, relativeY);
} finally {
awtUnlock();
}
lastKnownCandidatesNativeWindowAbsolutePosition = expectedCandidatesNativeWindowAbsolutePos;
}
}
private static Rectangle getJComponentVisibleRectIfNotEmpty(final Component component) {
if (component instanceof JComponent jComponent) {
final Rectangle result = jComponent.getVisibleRect();
if ((result != null) && (result.width > 0) && (result.height > 0)) {
return result;
}
}
return null;
}
private static X11GraphicsDevice getComponentX11Device(final Component component) {
if (component == null) return null;
final var componentGc = component.getGraphicsConfiguration();
if (componentGc == null) return null;
return (componentGc.getDevice() instanceof X11GraphicsDevice result) ? result : null;
}
private static X11GraphicsDevice findClosestScreenToPoint(
final Rectangle outScreenScaledBounds,
final Point absolutePointScaled,
final X11GraphicsDevice... screensToCheckFirst
) {
assert(outScreenScaledBounds != null);
if (absolutePointScaled == null) {
return null;
}
final Iterator<X11GraphicsDevice> screensToCheck =
Stream.concat( // screensToCheckFirst + GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()
Arrays.stream(screensToCheckFirst),
Stream.<Supplier<GraphicsDevice[]>>of(() -> {
final var localGe = GraphicsEnvironment.getLocalGraphicsEnvironment();
if (localGe != null) {
return localGe.getScreenDevices();
}
return null;
}).flatMap(supplier -> Stream.of(supplier.get()))
).map(device -> (device instanceof X11GraphicsDevice screen) ? screen : null)
.filter(Objects::nonNull)
.iterator();
int closestScreenMinDistance = Integer.MAX_VALUE;
X11GraphicsDevice result = null;
while (screensToCheck.hasNext()) {
final X11GraphicsDevice screen = screensToCheck.next();
final Rectangle screenBoundsScaled = screen.getBounds();
if (screenBoundsScaled == null) {
continue;
}
screenBoundsScaled.width = screen.scaleUp(screenBoundsScaled.width);
screenBoundsScaled.height = screen.scaleUp(screenBoundsScaled.height);
final int distance = obtainDistanceBetween(screenBoundsScaled, absolutePointScaled);
if (distance < closestScreenMinDistance) {
result = screen;
closestScreenMinDistance = distance;
outScreenScaledBounds.x = screenBoundsScaled.x;
outScreenScaledBounds.y = screenBoundsScaled.y;
outScreenScaledBounds.width = screenBoundsScaled.width;
outScreenScaledBounds.height = screenBoundsScaled.height;
if (distance < 1) {
break;
}
}
}
return result;
}
private static int obtainDistanceBetween(final Rectangle rectangle, final Point absolutePointScaled) {
if ((rectangle.width < 1) || (rectangle.height < 1)) {
return Integer.MAX_VALUE;
}
final int screenBoundsScaledXMax = rectangle.x + rectangle.width - 1;
final int screenBoundsScaledYMax = rectangle.y + rectangle.height - 1;
final int dx = Math.max(0, Math.max(rectangle.x - absolutePointScaled.x, absolutePointScaled.x - screenBoundsScaledXMax));
final int dy = Math.max(0, Math.max(rectangle.y - absolutePointScaled.y, absolutePointScaled.y - screenBoundsScaledYMax));
return dx + dy; // just sum is enough for our purposes
}
/*
* Native methods
*/
private native boolean openXIMNative(long display);
private native boolean createXICNative(long window);
private native boolean recreateXICNative(long window, long px11data, int ctxid);
private native boolean createXICNative(long window, boolean preferBelowTheSpot);
private native boolean recreateXICNative(long window, long px11data, int ctxid, boolean preferBelowTheSpot);
private native int releaseXICNative(long px11data);
private native void setXICFocusNative(long window,
boolean value, boolean active);
private native void setXICFocusNative(long window, boolean value, boolean active);
private native void adjustStatusWindow(long window);
private native boolean doesFocusedXICSupportMovingCandidatesNativeWindow();
private native void adjustCandidatesNativeWindowPosition(int x, int y);
/**
* This class tries to track all the cases when the position of the parent XInputMethod's candidate window has
* to be updated. Here are the examples of such cases:
* <ul>
* <li>The caret position has changed ;
* <li>The component has been moved/resized ;
* <li>The component's window has been moved/resized ;
* <li>The component's text has been changed ;
* </ul>
* Tracking makes sense only when the parent XIM is in a mode allowing to move a native candidates window.
* This is controlled by a flag {@link XInputMethod#doesSupportMovingCandidatesNativeWindow}.
* Thus, the tracking gets enabled (via {@link #startTracking(Component)}) only when the flag is evaluated to true.
*/
private static class ClientComponentCaretPositionTracker implements ComponentListener, CaretListener, TextListener
{
public ClientComponentCaretPositionTracker(XInputMethod owner) {
this.owner = new WeakReference<>(owner);
}
public void startTracking(final Component component) {
stopTrackingCurrentComponent();
if (component == null) {
return;
}
trackedComponent = new WeakReference<>(component);
// Moving and changing the size causes a possible change of caret position
component.addComponentListener(this);
if (component instanceof JTextComponent jtc) {
jtc.addCaretListener(this);
isCaretListenerInstalled = true;
} else if (component instanceof TextComponent tc) {
tc.addTextListener(this);
isTextListenerInstalled = true;
}
}
public void stopTrackingCurrentComponent() {
final Component trackedComponentStrong;
if (trackedComponent == null) {
trackedComponentStrong = null;
} else {
trackedComponentStrong = trackedComponent.get();
trackedComponent.clear();
trackedComponent = null;
}
if (trackedComponentStrong == null) {
isCaretListenerInstalled = false;
isTextListenerInstalled = false;
return;
}
if (isTextListenerInstalled) {
isTextListenerInstalled = false;
((TextComponent)trackedComponentStrong).removeTextListener(this);
}
if (isCaretListenerInstalled) {
isCaretListenerInstalled = false;
((JTextComponent)trackedComponentStrong).removeCaretListener(this);
}
trackedComponentStrong.removeComponentListener(this);
}
/* Listening callbacks */
public void onDispatchEvent(AWTEvent event) {
if (isCaretListenerInstalled) {
return;
}
final int eventId = event.getID();
if ( (eventId >= MouseEvent.MOUSE_FIRST) && (eventId <= MouseEvent.MOUSE_LAST) ) {
// The event hasn't been dispatched yet, so the caret position couldn't be changed.
// Hence, we have to postpone the updating request.
SwingUtilities.invokeLater(() -> updateImCandidatesNativeWindowPosition(false));
return;
}
if ( !isTextListenerInstalled && (eventId >= KeyEvent.KEY_FIRST) && (eventId <= KeyEvent.KEY_LAST) ) {
// The event hasn't been dispatched yet, so the caret position couldn't be changed.
// Hence, we have to postpone the updating request.
SwingUtilities.invokeLater(() -> updateImCandidatesNativeWindowPosition(false));
}
}
public void onNotifyClientWindowChange(Rectangle location) {
if (location != null) {
updateImCandidatesNativeWindowPosition(lastKnownClientWindowBounds == null);
}
lastKnownClientWindowBounds = location;
}
// ComponentListener
@Override
public void componentHidden(ComponentEvent e) {}
@Override
public void componentMoved(ComponentEvent e) {
updateImCandidatesNativeWindowPosition(false);
}
@Override
public void componentResized(ComponentEvent e) {
updateImCandidatesNativeWindowPosition(false);
}
@Override
public void componentShown(ComponentEvent e) {
updateImCandidatesNativeWindowPosition(false);
}
// CaretListener
@Override
public void caretUpdate(CaretEvent e) {
updateImCandidatesNativeWindowPosition(false);
}
// TextListener
@Override
public void textValueChanged(TextEvent e) {
updateImCandidatesNativeWindowPosition(false);
}
/* Private parts */
private final WeakReference<XInputMethod> owner;
private WeakReference<Component> trackedComponent = null;
private boolean isCaretListenerInstalled = false;
private boolean isTextListenerInstalled = false;
private Rectangle lastKnownClientWindowBounds = null;
private void updateImCandidatesNativeWindowPosition(boolean forceUpdate) {
final XInputMethod ownerStrong = owner.get();
if ((ownerStrong == null) || (ownerStrong.isDisposed())) {
// The owning XInputMethod instance is no longer valid
stopTrackingCurrentComponent();
owner.clear();
return;
}
if (!ownerStrong.isActive) {
stopTrackingCurrentComponent(); // will start tracking back when the owner gets active back
return;
}
ownerStrong.updateCandidatesNativeWindowPosition(forceUpdate);
}
}
final ClientComponentCaretPositionTracker clientComponentCaretPositionTracker;
}

View File

@@ -1845,6 +1845,7 @@ final class XWM
Native.putLong(data, 2, 0);
Native.putLong(data, 3, 0);
XToolkit.awtLock();
XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance());
XlibWrapper.XChangeProperty(XToolkit.getDisplay(), window,
XA_GTK_FRAME_EXTENTS.getAtom(),
@@ -1853,8 +1854,8 @@ final class XWM
data, 4);
XErrorHandlerUtil.RESTORE_XERROR_HANDLER();
} finally {
XToolkit.awtUnlock();
unsafe.freeMemory(data);
data = 0;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -31,6 +31,7 @@ import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import java.util.Map;
import sun.awt.datatransfer.ClipboardTransferable;
import sun.awt.datatransfer.DataTransferer;
import sun.awt.datatransfer.SunClipboard;
@@ -91,6 +92,39 @@ final class WClipboard extends SunClipboard {
}
}
// ======================= JBR-5980 Pasting from clipboard not working reliably in Windows =======================
private static final boolean isContentsCacheDisabled; // initialized in the static block below
private static final boolean areOwnershipExtraChecksEnabled; // initialized in the static block below
@Override
public synchronized Transferable getContents(Object requestor) {
if (isContentsCacheDisabled) {
// JBR-5980: sometimes the cache (this.contents) doesn't reset when something gets copied to the
// system clipboard outside of the Java app. This workaround allows to disable the caching, so
// each call to getContents will result in reading the clipboard content from the system through
// Win32 Clipbaord API.
return new ClipboardTransferable((SunClipboard)this);
}
return super.getContents(requestor);
}
// Upcall from native
private void ensureNoOwnedData() {
boolean thereAreOwnedData = false;
synchronized (this) {
thereAreOwnedData = ((this.owner != null) || (this.contents != null));
}
if (thereAreOwnedData) {
// to properly clear everything
lostOwnershipImpl();
}
}
// ===============================================================================================================
private void lostSelectionOwnershipImpl() {
lostOwnershipImpl();
}
@@ -121,9 +155,27 @@ final class WClipboard extends SunClipboard {
*/
private native void publishClipboardData(long format, byte[] bytes);
private static native void init();
private static native void init(boolean areOwnershipExtraChecksEnabled);
static {
init();
// ====================== JBR-5980 Pasting from clipboard not working reliably in Windows ======================
boolean flagInitializer = false; // let's fall back in the default behavior
try {
flagInitializer =
"true".equalsIgnoreCase(System.getProperty("awt.windows.clipboard.cache.disabled", "true"));
} catch (Throwable ignored) {
}
isContentsCacheDisabled = flagInitializer;
flagInitializer = false; // let's fall back in the default behavior
try {
flagInitializer =
"true".equalsIgnoreCase(System.getProperty("awt.windows.clipboard.extraOwnershipChecksEnabled", "true"));
} catch (Throwable ignored) {
}
areOwnershipExtraChecksEnabled = flagInitializer;
// =============================================================================================================
init(areOwnershipExtraChecksEnabled);
}
@Override

View File

@@ -846,19 +846,30 @@ public class WWindowPeer extends WPanelPeer implements WindowPeer,
private void setRoundedCornersImpl(Object params) {
if (params instanceof String) {
int type = 0; // default
if ("none".equals(params)) {
type = 1;
} else if ("full".equals(params)) {
type = 2;
} else if ("small".equals(params)) {
type = 3;
setRoundedCorners(getRoundedType(params), false, 0);
} else if (params instanceof Object[]) {
Object[] values = (Object[]) params;
if (values.length == 2 && values[0] instanceof String && values[1] instanceof Color) {
Color color = (Color) values[1];
setRoundedCorners(getRoundedType(values[0]), true, color.getRGB());
}
setRoundedCorners(type);
}
}
private native void setRoundedCorners(int type);
private static int getRoundedType(Object params) {
if ("none".equals(params)) {
return 1;
}
if ("full".equals(params)) {
return 2;
}
if ("small".equals(params)) {
return 3;
}
return 0; // default
}
private native void setRoundedCorners(int type, boolean isBorderColor, int borderColor);
native void updateWindowImpl(int[] data, int width, int height);

View File

@@ -39,7 +39,7 @@ jobject AwtClipboard::theCurrentClipboard;
/* This flag is set while we call EmptyClipboard to indicate to
WM_DESTROYCLIPBOARD handler that we are not losing ownership */
BOOL AwtClipboard::isGettingOwnership = FALSE;
volatile BOOL AwtClipboard::isGettingOwnership = FALSE;
volatile jmethodID AwtClipboard::handleContentsChangedMID;
volatile BOOL AwtClipboard::isClipboardViewerRegistered = FALSE;
@@ -51,6 +51,8 @@ volatile BOOL AwtClipboard::isClipboardViewerRegistered = FALSE;
*/
void AwtClipboard::LostOwnership(JNIEnv *env) {
isOwner = FALSE;
if (theCurrentClipboard != NULL) {
env->CallVoidMethod(theCurrentClipboard, lostSelectionOwnershipMID);
DASSERT(!safe_ExceptionOccurred(env));
@@ -93,6 +95,49 @@ void AwtClipboard::UnregisterClipboardViewer(JNIEnv *env) {
CATCH_BAD_ALLOC;
}
// ======================== JBR-5980 Pasting from clipboard not working reliably in Windows ===========================
volatile BOOL AwtClipboard::areOwnershipExtraChecksEnabled = FALSE;
volatile BOOL AwtClipboard::isOwner = FALSE;
jmethodID AwtClipboard::ensureNoOwnedDataMID = nullptr;
void AwtClipboard::SetOwnershipExtraChecksEnabled(BOOL enabled) {
areOwnershipExtraChecksEnabled = enabled;
}
void AwtClipboard::ExtraCheckOfOwnership() {
if (areOwnershipExtraChecksEnabled != TRUE) {
return;
}
JNIEnv* const env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
if (env == nullptr) {
return;
}
if (isOwner == TRUE) {
const HWND toolkitHwnd = AwtToolkit::GetInstance().GetHWnd();
if (::OpenClipboard(toolkitHwnd) == 0) {
// failed to open the clipboard
return;
}
const HWND clipboardOwnerHwnd = ::GetClipboardOwner();
::CloseClipboard();
if (clipboardOwnerHwnd != toolkitHwnd) {
AwtClipboard::LostOwnership(env);
}
} else {
if ((theCurrentClipboard != nullptr) && (ensureNoOwnedDataMID != nullptr)) {
env->CallVoidMethod(theCurrentClipboard, ensureNoOwnedDataMID);
DASSERT(!safe_ExceptionOccurred(env));
}
}
}
// ====================================================================================================================
extern "C" {
void awt_clipboard_uninitialize(JNIEnv *env) {
@@ -111,7 +156,7 @@ void awt_clipboard_uninitialize(JNIEnv *env) {
* Signature: ()V
*/
JNIEXPORT void JNICALL
Java_sun_awt_windows_WClipboard_init(JNIEnv *env, jclass cls)
Java_sun_awt_windows_WClipboard_init(JNIEnv *env, jclass cls, jboolean areOwnershipExtraChecksEnabled)
{
TRY;
@@ -119,6 +164,11 @@ Java_sun_awt_windows_WClipboard_init(JNIEnv *env, jclass cls)
env->GetMethodID(cls, "lostSelectionOwnershipImpl", "()V");
DASSERT(AwtClipboard::lostSelectionOwnershipMID != NULL);
AwtClipboard::ensureNoOwnedDataMID = env->GetMethodID(cls, "ensureNoOwnedData", "()V");
DASSERT(AwtClipboard::ensureNoOwnedDataMID != nullptr);
AwtClipboard::SetOwnershipExtraChecksEnabled( (areOwnershipExtraChecksEnabled == JNI_TRUE) ? TRUE : FALSE );
CATCH_BAD_ALLOC;
}

View File

@@ -35,7 +35,7 @@
class AwtClipboard {
private:
static BOOL isGettingOwnership;
static volatile BOOL isGettingOwnership;
static volatile BOOL isClipboardViewerRegistered;
static volatile jmethodID handleContentsChangedMID;
@@ -47,6 +47,7 @@ public:
AwtClipboard::isGettingOwnership = TRUE;
VERIFY(EmptyClipboard());
AwtClipboard::isGettingOwnership = FALSE;
AwtClipboard::isOwner = TRUE;
}
INLINE static BOOL IsGettingOwnership() {
@@ -57,6 +58,20 @@ public:
static void WmClipboardUpdate(JNIEnv *env);
static void RegisterClipboardViewer(JNIEnv *env, jobject jclipboard);
static void UnregisterClipboardViewer(JNIEnv *env);
// ===================== JBR-5980 Pasting from clipboard not working reliably in Windows ==========================
public:
static jmethodID ensureNoOwnedDataMID;
public:
static void SetOwnershipExtraChecksEnabled(BOOL enabled);
// Checks if ownership has been lost since the last check or the last acquiring of ownership
static void ExtraCheckOfOwnership();
private:
static volatile BOOL areOwnershipExtraChecksEnabled;
static volatile BOOL isOwner;
// ================================================================================================================
};
#endif /* AWT_CLIPBOARD_H */

View File

@@ -31,6 +31,7 @@
#include "jlong.h"
#include "awt_AWTEvent.h"
#include "awt_BitmapUtil.h"
#include "awt_Clipboard.h"
#include "awt_Component.h"
#include "awt_Cursor.h"
#include "awt_Dimension.h"
@@ -1603,6 +1604,13 @@ LRESULT AwtComponent::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
}
break;
}
case WM_ACTIVATEAPP:
if (wParam == TRUE) {
// the window is being activated, let's check if we still own the clipboard
AwtClipboard::ExtraCheckOfOwnership();
}
mr = mrConsume;
break;
case WM_MOUSEACTIVATE: {
AwtWindow *window = GetContainer();
if (window && window->IsFocusableWindow()) {

View File

@@ -54,6 +54,7 @@ typedef __int32 LONG_PTR;
// Define these to be able to build with older SDKs
#define DWM_WINDOW_CORNER_PREFERENCE int
#define DWMWA_WINDOW_CORNER_PREFERENCE 33
#define DWMWA_BORDER_COLOR 34
// Used for Swing's Menu/Tooltip animation Support
const int UNSPECIFIED = 0;
@@ -134,6 +135,8 @@ struct OpaqueStruct {
struct RoundedCornersStruct {
jobject window;
DWM_WINDOW_CORNER_PREFERENCE type;
jboolean isBorderColor;
jint borderColor;
};
// struct for _UpdateWindow() method
struct UpdateWindowStruct {
@@ -3397,6 +3400,13 @@ void AwtWindow::_SetRoundedCorners(void *param) {
DwmSetWindowAttribute(window->GetHWnd(), DWMWA_WINDOW_CORNER_PREFERENCE, &rcs->type, sizeof(DWM_WINDOW_CORNER_PREFERENCE));
if (rcs->isBorderColor) {
jint red = (rcs->borderColor >> 16) & 0xff;
jint green = (rcs->borderColor >> 8) & 0xff;
jint blue = (rcs->borderColor >> 0) & 0xff;
COLORREF borderColor = RGB(red, green, blue);
DwmSetWindowAttribute(window->GetHWnd(), DWMWA_BORDER_COLOR, &borderColor, sizeof(COLORREF));
}
ret:
env->DeleteGlobalRef(self);
delete rcs;
@@ -4171,16 +4181,18 @@ Java_sun_awt_windows_WWindowPeer_repositionSecurityWarning(JNIEnv *env,
/*
* Class: sun_awt_windows_WWindowPeer
* Method: setRoundedCorners
* Signature: (I)V
* Signature: (IZI)V
*/
JNIEXPORT void JNICALL
Java_sun_awt_windows_WWindowPeer_setRoundedCorners(JNIEnv *env, jobject self, jint type)
Java_sun_awt_windows_WWindowPeer_setRoundedCorners(JNIEnv *env, jobject self, jint type, jboolean isBorderColor, jint borderColor)
{
TRY;
RoundedCornersStruct *rcs = new RoundedCornersStruct;
rcs->window = env->NewGlobalRef(self);
rcs->type = (DWM_WINDOW_CORNER_PREFERENCE)type;
rcs->isBorderColor = isBorderColor;
rcs->borderColor = borderColor;
AwtToolkit::GetInstance().SyncCall(AwtWindow::_SetRoundedCorners, rcs);
// global refs and rcs are deleted in _SetRoundedCorners

View File

@@ -33,7 +33,8 @@ import java.awt.Window;
*/
public interface RoundedCornersManager {
/**
* @param params for macOS is Float object with radius.
* @param params for macOS is Float object with radius or
* Array with {Float for radius, Integer for border width, java.awt.Color for border color}.
*
* @param params for Windows 11 is String with values:
* "default" - let the system decide whether or not to round window corners,

View File

@@ -6,9 +6,9 @@
# 2. When only new API is added, or some existing API was @Deprecated - increment MINOR, reset PATCH to 0
# 3. For major backwards incompatible API changes - increment MAJOR, reset MINOR and PATCH to 0
VERSION = 0.0.14
VERSION = 0.0.15
# Hash is used to track changes to jetbrains.api, so you would not forget to update version when needed.
# When you make any changes, "make jbr-api" will fail and ask you to update hash and version number here.
HASH = D28F22789F62EA4F8B8F4E7EC8B342E5
HASH = 944323BE83C422C02167A3D328955130

View File

@@ -0,0 +1,90 @@
#
# Copyright (c) 2016, 2022, 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
# 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.
#
#############################################################################
#
# List of quarantined tests -- tests that should not be run by default, because
# they may fail due to known reason. The reason (CR#) must be mandatory specified.
#
# List items are testnames followed by labels, all MUST BE commented
# as to why they are here and use a label:
# generic-all Problems on all platforms
# generic-ARCH Where ARCH is one of: x64, i586, ppc64, ppc64le, s390x etc.
# OSNAME-all Where OSNAME is one of: linux, windows, macosx, aix
# OSNAME-ARCH Specific on to one OSNAME and ARCH, e.g. macosx-x64
# OSNAME-REV Specific on to one OSNAME and REV, e.g. macosx-10.7.4
#
# More than one label is allowed but must be on the same line.
#
#############################################################################
#############################################################################
# gtest
#gtest/AsyncLogGtest.java initial_run generic-all
# :hotspot_compiler
compiler/c2/irTests/TestVectorConditionalMove.java NOBUG windows-aarch64 # compiler.lib.ir_framework.driver.irmatching.IRViolationException: There were one or multiple IR rule failures. Please check stderr for more information.
compiler/ciReplay/TestInlining.java 8300210 generic-all
compiler/ciReplay/TestIncrementalInlining.java NOBUG generic-all
compiler/ciReplay/TestInliningProtectionDomain.java NOBUG generic-all
compiler/ciReplay/TestLambdas.java 8300210 generic-all
compiler/ciReplay/TestServerVM.java 8300210 generic-all
compiler/ciReplay/TestUnresolvedClasses.java NOBUG generic-all
#############################################################################
# :hotspot_gc
gc/stress/gcold/TestGCOldWithShenandoah.java#iu-aggressive NOBUG generic-all timeout
#############################################################################
# :hotspot_runtime
runtime/cds/appcds/dynamicArchive/TestDynamicDumpAtOom.java JBR-6291 generic-all
#############################################################################
# :hotspot_serviceability
serviceability/sa/ClhsdbCDSCore.java NOBUG macosx-all Can't attach to the core file
#############################################################################
# :hotspot_misc
#############################################################################
#############################################################################
# :vmTestbase_*
#############################################################################
vmTestbase/gc/gctests/LargeObjects/large002/TestDescription.java NOBUG linux-all timeout
vmTestbase/gc/gctests/StringInternSyncWithGC/StringInternSyncWithGC.java NOBUG macosx-all timeout on macstudio

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2016, 2020, 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
@@ -38,20 +38,17 @@
#
#############################################################################
#############################################################################
# gtest
gtest/AsyncLogGtest.java initial_run generic-all
gtest/GTestWrapper.java initial_run generic-all
gtest/LargePageGtests.java#use-large-pages initial_run linux-all,windows-all
gtest/LargePageGtests.java#use-large-pages-1G initial_run linux-all
gtest/MetaspaceGtests.java#reclaim-none-ndebug initial_run generic-all
gtest/LargePageGtests.java#use-large-pages-sysV initial_run linux-all
gtest/LargePageGtests.java#use-large-pages-1G initial_run linux-all
gtest/GTestWrapper.java initial_run generic-all
gtest/MetaspaceUtilsGtests.java initial_run generic-all
gtest/MetaspaceGtests.java#balanced-no-ccs initial_run generic-all
gtest/MetaspaceGtests.java#reclaim-aggressive-ndebug initial_run generic-all
gtest/MetaspaceGtests.java#reclaim-none-ndebug initial_run generic-all
gtest/MetaspaceUtilsGtests.java initial_run generic-all
gtest/LargePageGtests.java#use-large-pages initial_run linux-all,windows-all
gtest/NativeHeapTrimmerGtest.java JBR-5718 generic-all
gtest/NMTGtests.java#nmt-detail JBR-5718 generic-all
@@ -62,19 +59,21 @@ gc/stress/TestReclaimStringsLeaksMemory.java initial_run windows-all
gc/shenandoah/TestAllocObjects.java#aggressive initial_run generic-all
gc/shenandoah/TestAllocObjects.java#iu-aggressive initial_run generic-all
gc/shenandoah/mxbeans/TestChurnNotifications.java#aggressive JBR-6262 generic-all
gc/shenandoah/mxbeans/TestChurnNotifications.java#aggressive initial_run generic-all
gc/shenandoah/mxbeans/TestChurnNotifications.java#iu initial_run linux-x64
# :hotspot_compiler
compiler/ciReplay/TestSAServer.java 8029528 generic-all
compiler/compilercontrol/jcmd/ClearDirectivesFileStackTest.java 8225370 generic-all
compiler/gcbarriers/UnsafeIntrinsicsTest.java#ZGenerationalDebug 8311548 generic-aarch64
compiler/jvmci/compilerToVM/GetFlagValueTest.java 8204459 generic-all
compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/NativeCallTest.java 8262901 macosx-aarch64
compiler/cpuflags/TestAESIntrinsicsOnSupportedConfig.java 8190680 generic-all
compiler/runtime/Test8168712.java 8211769,8211771 generic-ppc64,generic-ppc64le,linux-s390x
runtime/Thread/ThreadCountLimit.java 8293872 linux-all
compiler/rtm/locking/TestRTMAbortRatio.java 8183263 generic-x64
compiler/rtm/locking/TestRTMAbortThreshold.java 8183263 generic-x64
@@ -91,7 +90,7 @@ compiler/rtm/print/TestPrintPreciseRTMLockingStatistics.java 8183263 generic-x64
compiler/c2/Test8004741.java 8235801 generic-all
compiler/vectorapi/VectorCastShape64Test.java initial_run generic-aarch64
compiler/vectorapi/VectorRebracket128Test.java#ZSinglegen initial_run generic-aarch64
compiler/vectorapi/VectorRebracket128Test.java initial_run generic-aarch64
#############################################################################
@@ -106,6 +105,8 @@ gc/stress/gclocker/TestGCLockerWithParallel.java 8180622 generic-all
gc/stress/gclocker/TestGCLockerWithG1.java 8180622 generic-all
gc/stress/gclocker/TestGCLockerWithShenandoah.java initial_run generic-all
gc/stress/TestJNIBlockFullGC/TestJNIBlockFullGC.java 8192647 generic-all
gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java 8241293 macosx-x64
gc/metaspace/TestMetaspacePerfCounters.java#id3 initial_run generic-all
gc/stress/gcold/TestGCOldWithShenandoah.java initial_run windows-all
@@ -113,72 +114,40 @@ gc/stress/gcold/TestGCOldWithShenandoah.java initial_run windows-all
# :hotspot_runtime
runtime/CompressedOops/CompressedClassPointers.java 8305765 generic-all
runtime/CompressedOops/CompressedClassPointers.java 8262895 generic-aarch64
runtime/cds/CheckDefaultArchiveFile.java JBR-4227 generic-all
runtime/cds/SharedBaseAddress.java initial_run generic-all
runtime/cds/TestCDSVMCrash.java JBR-6246 generic-all
runtime/cds/appcds/CommandLineFlagCombo.java JBR-6246 generic-all
runtime/cds/appcds/TestDumpClassListSource.java JBR-6099 generic-all
runtime/cds/appcds/TestZGCWithCDS.java#ZGenerational 8316319 generic-all
runtime/cds/appcds/dynamicArchive/CDSStreamTestDriver.java initial_run generic-all
runtime/cds/appcds/dynamicArchive/TestAutoCreateSharedArchiveNoDefaultArchive.java JBR-6246 generic-all
runtime/cds/appcds/jigsaw/modulepath/ModulePathAndCP_JFR.java 8253437 windows-x64
runtime/cds/appcds/methodHandles/MethodHandlesAsCollectorTest.java initial_run generic-all
runtime/cds/appcds/methodHandles/MethodHandlesCastFailureTest.java initial_run generic-all
runtime/cds/appcds/methodHandles/MethodHandlesGeneralTest.java initial_run generic-all
runtime/cds/appcds/methodHandles/MethodHandlesInvokersTest.java initial_run generic-all
runtime/cds/appcds/methodHandles/MethodHandlesPermuteArgumentsTest.java initial_run generic-all
runtime/cds/appcds/methodHandles/MethodHandlesSpreadArgumentsTest.java initial_run generic-all
runtime/jni/daemonDestroy/TestDaemonDestroy.java JBR-6261 windows-x64
runtime/cds/CheckDefaultArchiveFile.java JBR-4227 generic-all
runtime/cds/DeterministicDump.java 8253495 generic-all
runtime/jni/daemonDestroy/TestDaemonDestroy.java NOBUG windows-all # Expected to get exit value of [0], exit value is: [-1073741515]
runtime/jni/terminatedThread/TestTerminatedThread.java 8219652 aix-ppc64
runtime/handshake/HandshakeSuspendExitTest.java 8294313 generic-all
runtime/os/TestTracePageSizes.java#no-options 8267460 linux-aarch64
runtime/os/TestTracePageSizes.java#explicit-large-page-size 8267460 linux-aarch64
runtime/os/TestTracePageSizes.java#compiler-options 8267460 linux-aarch64
runtime/os/TestTracePageSizes.java#G1 8267460 linux-aarch64
runtime/os/TestTracePageSizes.java#Parallel 8267460 linux-aarch64
runtime/os/TestTracePageSizes.java#Serial 8267460 linux-aarch64
runtime/ErrorHandling/CreateCoredumpOnCrash.java 8267433,initial_run macosx-x64,windows-aarch64
runtime/ErrorHandling/MachCodeFramesInErrorFile.java JBR-6258 windows-aarch64
runtime/vthread/RedefineClass.java 8297286 generic-all
runtime/vthread/TestObjectAllocationSampleEvent.java 8297286 generic-all
runtime/StackGuardPages/TestStackGuardPages.java 8293452 linux-all
applications/jcstress/copy.java 8229852 linux-all
containers/docker/TestJcmd.java 8278102 linux-all
runtime/memory/ReserveMemory.java initial_run windows-aarch64
runtime/memory/ReadFromNoaccessArea.java initial_run windows-aarch64
runtime/cds/appcds/methodHandles/MethodHandlesInvokersTest.java initial_run generic-all
runtime/cds/appcds/methodHandles/MethodHandlesCastFailureTest.java initial_run generic-all
runtime/cds/appcds/methodHandles/MethodHandlesGeneralTest.java initial_run generic-all
runtime/ReservedStack/ReservedStackTestCompiler.java initial_run windows-aarch64
runtime/cds/appcds/dynamicArchive/CDSStreamTestDriver.java initial_run generic-all
runtime/ErrorHandling/CreateCoredumpOnCrash.java initial_run windows-aarch64
runtime/ErrorHandling/MachCodeFramesInErrorFile.java JBR-6289 windows-aarch64
runtime/ReservedStack/ReservedStackTest.java initial_run windows-aarch64
runtime/reflect/ReflectOutOfMemoryError.java 8316060 generic-all
runtime/cds/appcds/methodHandles/MethodHandlesPermuteArgumentsTest.java initial_run generic-all
runtime/cds/appcds/methodHandles/MethodHandlesAsCollectorTest.java initial_run generic-all
runtime/cds/SharedBaseAddress.java initial_run generic-all
runtime/cds/appcds/methodHandles/MethodHandlesSpreadArgumentsTest.java initial_run generic-all
#############################################################################
# :hotspot_serviceability
serviceability/sa/sadebugd/DebugdConnectTest.java 8239062,8270326 macosx-x64,macosx-aarch64
serviceability/dcmd/vm/TrimLibcHeapTest.java 8312625 linux-all
serviceability/sa/sadebugd/DebugdConnectTest.java 8239062 macosx-x64
serviceability/sa/TestRevPtrsForInvokeDynamic.java 8241235 generic-all
serviceability/jvmti/ModuleAwareAgents/ThreadStart/MAAThreadStart.java 8225354 windows-all
serviceability/jvmti/vthread/GetSetLocalTest/GetSetLocalTest.java 8286836 generic-all
serviceability/dcmd/gc/RunFinalizationTest.java 8227120 linux-all,windows-x64
serviceability/sa/ClhsdbCDSCore.java 8294316,8267433 macosx-x64
serviceability/sa/ClhsdbFindPC.java#xcomp-core 8294316,8267433,JBR-6259 macosx-x64,windows-aarch64
serviceability/sa/ClhsdbFindPC.java#no-xcomp-core 8294316,8267433,JBR-6259 macosx-x64,linux_aarch64,windows-aarch64
serviceability/sa/ClhsdbPmap.java#core 8294316,8267433,JBR-6259 macosx-x64,windows-aarch64
serviceability/sa/ClhsdbPstack.java#core 8294316,8267433,JBR-6259 macosx-x64,windows-aarch64
serviceability/sa/ClhsdbThreadContext.java JBR-6260 windows-aarch64
serviceability/sa/TestJmapCore.java 8294316,8267433 macosx-x64
serviceability/sa/TestJmapCoreMetaspace.java 8294316,8267433 macosx-x64
serviceability/attach/ConcAttachTest.java 8290043 linux-all
serviceability/jvmti/RedefineClasses/RedefineSharedClassJFR.java JBR-6245 generic-all
serviceability/jvmti/RedefineClasses/TestMultipleClasses.java initial_run windows-all
serviceability/jvmti/SetBreakpoint/TestManyBreakpoints.java initial_run generic-aarch64
@@ -188,6 +157,7 @@ serviceability/sa/ClhsdbPrintAs.java initial_run generic-all
serviceability/sa/ClhsdbFindPC.java#id1 initial_run generic-all
serviceability/sa/ClhsdbFindPC.java#id2 initial_run generic-all
serviceability/sa/ClhsdbFindPC.java#id3 initial_run generic-all
serviceability/sa/ClhsdbFindPC.java#no-xcomp-process 8269881 generic-all 8277079
serviceability/sa/ClhsdbCDSJstackPrintAll.java initial_run windows-aarch64
serviceability/sa/TestClhsdbJstackLock.java initial_run windows-aarch64
serviceability/sa/ClhsdbSource.java initial_run windows-aarch64
@@ -214,9 +184,12 @@ serviceability/sa/ClhsdbDumpheap.java initial_run windows-aarch64
#############################################################################
vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded003/TestDescription.java 8153598 generic-all
vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded001/TestDescription.java 8198668 generic-all
vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded002/TestDescription.java 8153598 generic-all
vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded003/TestDescription.java 8198668 generic-all
vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded004/TestDescription.java 8153598 generic-all
vmTestbase/nsk/monitoring/MemoryPoolMBean/isUsageThresholdExceeded/isexceeded005/TestDescription.java 8153598 generic-all
vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Deadlock/JavaDeadlock001/TestDescription.java 8060733 generic-all
vmTestbase/nsk/jdb/options/listconnectors/listconnectors001/listconnectors001.java initial_run windows-all
@@ -226,7 +199,7 @@ vmTestbase/nsk/jdi/LaunchingConnector/launchnosuspend/launchnosuspend001/TestDes
vmTestbase/nsk/jdi/ThreadReference/stop/stop001/TestDescription.java 7034630 generic-all
vmTestbase/nsk/jdi/ReferenceType/instances/instances002/instances002.java initial_run linux-all
vmTestbase/nsk/jdi/stress/ClassPrepareEvents/ClassPrepareEvents001/ClassPrepareEvents001.java
vmTestbase/nsk/jdi/Value/type/type003/TestDescription.java time_out_intermittent macosx-all
vmTestbase/metaspace/gc/firstGC_10m/TestDescription.java 8208250 generic-all
vmTestbase/metaspace/gc/firstGC_50m/TestDescription.java 8208250 generic-all
@@ -237,17 +210,11 @@ vmTestbase/nsk/jvmti/AttachOnDemand/attach045/TestDescription.java 8202971 gener
vmTestbase/nsk/jvmti/scenarios/jni_interception/JI05/ji05t001/TestDescription.java 8219652 aix-ppc64
vmTestbase/nsk/jvmti/scenarios/jni_interception/JI06/ji06t001/TestDescription.java 8219652 aix-ppc64
vmTestbase/nsk/jvmti/SetJNIFunctionTable/setjniftab001/TestDescription.java 8219652 aix-ppc64
vmTestbase/nsk/jvmti/AttachOnDemand/attach002a/TestDescription.java 8277812 generic-all
vmTestbase/nsk/jvmti/scenarios/capability/CM03/cm03t001/TestDescription.java 8073470 linux-all
vmTestbase/nsk/jvmti/InterruptThread/intrpthrd003/TestDescription.java 8288911 macosx-x64
vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t001/TestDescription.java initial_run windows-x64
vmTestbase/nsk/jvmti/scenarios/sampling/SP04/sp04t002/TestDescription.java initial_run windows-x64
vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java initial_run generic-all
vmTestbase/gc/gctests/LargeObjects/large003/TestDescription.java 8307788 generic-all
vmTestbase/gc/gctests/LargeObjects/large004/TestDescription.java 8307788 generic-all
vmTestbase/gc/gctests/LargeObjects/large005/TestDescription.java 8307788 generic-all
vmTestbase/gc/lock/jni/jnilock002/TestDescription.java 8192647 generic-all
vmTestbase/jit/escape/LockCoarsening/LockCoarsening001.java 8148743 generic-all
@@ -257,21 +224,68 @@ vmTestbase/jit/misctests/fpustack/GraphApplet.java linux-x64
vmTestbase/vm/mlvm/hiddenloader/stress/byteMutation/Test.java initial_run windows-all
vmTestbase/vm/mlvm/indy/func/jvmti/redefineClassInBootstrap/TestDescription.java 8013267 generic-all
vmTestbase/vm/mlvm/meth/stress/jdi/breakpointInCompiledCode/Test.java 8257761 generic-all
vmTestbase/vm/mlvm/indy/func/jvmti/mergeCP_indy2none_a/TestDescription.java 8013267 generic-all
vmTestbase/vm/mlvm/indy/func/jvmti/mergeCP_indy2manyDiff_b/TestDescription.java 8013267 generic-all
vmTestbase/vm/mlvm/indy/func/jvmti/mergeCP_indy2manySame_b/TestDescription.java 8013267 generic-all
vmTestbase/vm/mlvm/meth/stress/compiler/deoptimize/Test.java#id0 initial_run macos-aarch64
vmTestbase/vm/mlvm/meth/stress/compiler/deoptimize/Test.java#id0 8269393 macos-aarch64
vmTestbase/nsk/jdwp/ThreadReference/ForceEarlyReturn/forceEarlyReturn001/forceEarlyReturn001.java 7199837 generic-all
vmTestbase/nsk/stress/except/except012.java 8297977 generic-all
vmTestbase/nsk/stress/strace/strace002.java 8288912 macosx-x64,windows-x64
vmTestbase/nsk/stress/strace/strace003.java 8297824 macosx-x64,windows-x64
vmTestbase/nsk/stress/strace/strace004.java 8297824 macosx-x64,windows-x64
vmTestbase/nsk/monitoring/ThreadMXBean/ThreadInfo/Multi/Multi005/TestDescription.java 8076494 windows-x64
#############################################################################
### initial_runs
vmTestbase/vm/jit/LongTransitions/nativeFnc1/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc10/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc11/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc12/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc13/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc14/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc15/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc16/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc17/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc18/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc19/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc2/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc20/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc21/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc22/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc23/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc24/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc25/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc26/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc27/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc28/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc29/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc3/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc30/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc31/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc32/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc33/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc34/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc35/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc36/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc37/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc38/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc39/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc4/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc40/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc41/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc42/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc43/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc44/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc45/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc46/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc47/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc48/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc49/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc5/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc50/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc51/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc52/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc6/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc7/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc8/TestDescription.java 8271615 macosx-all
vmTestbase/vm/jit/LongTransitions/nativeFnc9/TestDescription.java 8271615 macosx-all
vmTestbase/nsk/stress/thread/thread008.java initial_run windows-all
@@ -279,4 +293,8 @@ vmTestbase/nsk/sysdict/vm/stress/btree/btree001/btree001.java initial_run window
vmTestbase/nsk/sysdict/vm/stress/btree/btree005/btree005.java initial_run windows-aarch64
vmTestbase/nsk/sysdict/vm/stress/btree/btree009/btree009.java initial_run windows-aarch64
resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java 8220624 generic-all
testlibrary_tests/ir_framework/tests/TestDTestAndExclude.java initial_run windows-all
jb/applications/ctw/plugins_cucumber_java_lib_cucumber_java.java JBR-6084 windows-all

View File

@@ -0,0 +1,119 @@
###########################################################################
#
# Copyright (c) 2023, 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.
#
###########################################################################
#
# List of tests that should not be run by test/Makefile, for various reasons:
# 1. Does not run with jtreg -samevm mode
# 2. Causes problems in jtreg -samevm mode for jtreg or tests that follow it
# 3. The test is too slow or consumes too many system resources
# 4. The test fails when run on any official build systems
#
# It is possible that a test being on this list is a mistake, and that some
# other test in samevm mode caused tests to fail, mistakes happen.
#
# Tests marked @ignore are not run by test/Makefile, but harmless to be listed.
#
# Tests that explicitly state "@run main/othervm ...", and are not listed here,
# will be run in the same batch as the samevm tests.
#
# Shell tests are othervm by default.
#
# List items are testnames followed by labels, all MUST BE commented
# as to why they are here and use a label:
# generic-all Problems on all platforms
# generic-ARCH Where ARCH is one of: x64, i586, ppc64, ppc64le, s390x, aarch64 etc.
# OSNAME-all Where OSNAME is one of: linux, windows, macosx, aix
# OSNAME-ARCH Specific on to one OSNAME and ARCH, e.g. macosx-x64
# OSNAME-REV Specific on to one OSNAME and REV, e.g. macosx-10.7.4
#
# More than one label is allowed but must be on the same line comma seperated,
# without spaces.
# If there are several lines mentioning the same test, the last one is used.
#
#############################################################################
#
# Running the tests:
# cd test && make JT_HOME=jtreg_home PRODUCT_HOME=jdk_home jdk_all
# Or instead of jdk_all, use any of the jdk_* targets.
#
# Samevm Notes:
# * Although some tests may have only been seen to fail on some platforms,
# they might be flagged as 'generic-all' because the problem they have
# could cause hidden slowdowns on other platforms.
# Most samevm problems will be generic-all, but windows usually dislikes
# them the most.
# Address already in use or connection errors indicate a generic port issue.
# (this is not necessarily a samevm issue, but an issue for running the tests
# on shared machines, two people or two test runs will collide).
# * Samevm problem (windows in particular) is not closing all input/output
# * Samevm problem when a test calls setSecurityManager()
# * Samevm problem with setHttps*() is used? (not exactly sure here)
# * Samevm problem when stuffing system properties with non Strings or anything
# * Samevm problem when changing vm settings, or registering any vm actions
# * Samevm problems with deleteOnExit(), if it must happen at end of test
# * Samevm problems with URLClassLoader? (no details here)
# * Samevm problems with dependence on predictable GC or finalizations
#
# Any of the above problems may mean the test needs to be flagged as "othervm".
#
#############################################################################
#
# Fixing the tests:
#
# Some tests just may need to be run with "othervm", and that can easily be
# done by adding a @run line (or modifying any existing @run):
# @run main/othervm NameOfMainClass
# Make sure this @run follows any use of @library.
# Otherwise, if the test is a samevm possibility, make sure the test is
# cleaning up after itself, closing all streams, deleting temp files, etc.
#
# Keep in mind that the bug could be in many places, and even different per
# platform, it could be a bug in any one of:
# - the testcase
# - the jdk (jdk classes, native code, or hotspot)
# - the native compiler
# - the javac compiler
# - the OS (depends on what the testcase does)
#
# If you managed to really fix one of these tests, here is how you can
# remove tests from this list:
# 1. Make sure test passes on all platforms with samevm, or mark it othervm
# 2. Make sure test passes on all platforms when run with it's entire group
# 3. Make sure both VMs are tested, -server and -client, if possible
# 4. Use your favorite build and test system to verify these results
# 5. Delete lines in this file, include the changes with your test changes
#
# You may need to repeat your testing 2 or even 3 times to verify good
# results, some of these samevm failures are not very predictable.
#
#############################################################################
############################################################################
java/awt/Frame/GetGraphicsStressTest/GetGraphicsStressTest.java NOBUG windows-all timeout
java/awt/MenuItem/EnableTest.java NOBUG windows-all timeout
java/awt/Robot/NonEmptyErrorStream.java JBR-6275 macosx-all
javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java NOBUG macosx-all Synth ButtonUI does not handle PRESSED & MOUSE_OVER state
javax/swing/UI/UnninstallUIMemoryLeaks/UnninstallUIMemoryLeaks.java JBR-5952,JBR-6274 windows-x64,macosx-all

View File

@@ -1,5 +1,6 @@
java/awt/Choice/ChoicePopupLocation/ChoicePopupLocation.java 8202931,JBR-5398 macosx-all,linux-all,windows-all
java/awt/Debug/X11Trace.java JBR-5442 linux-all
java/awt/Dialog/NestedDialogs/Modal/NestedModalDialogTest.java JBR-6294 linux-all
java/awt/Multiscreen/MultiScreenLocationTest/MultiScreenLocationTest.java JBR-6058 windows-all
java/awt/FullScreen/CurrentDisplayModeTest/CurrentDisplayModeTest.java JBR-5059 linux-all
java/awt/FullScreen/MultimonFullscreenTest/MultimonDeadlockTest.java JBR-4379 windows-all
@@ -22,6 +23,7 @@ java/awt/Robot/HiDPIScreenCapture/ScreenCaptureTest.java 8253184,JBR-5442 window
java/awt/Robot/MouseLocationOnScreen/MouseLocationOnScreen.java JBR-5390 macosx-all,linux-all
java/awt/Robot/NonEmptyErrorStream.java JBR-5442 linux-all
java/awt/Robot/RobotMoveMultiscreen.java JBR-5442 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
java/awt/Window/WindowSizeDifferentScreens/WindowSizeDifferentScreens.java JBR-5442 linux-all
@@ -36,6 +38,7 @@ javax/swing/JMenu/4692443/bug4692443.java JBR-6065 windows-all
javax/swing/JMenuBar/4750590/bug4750590.java JBR-6065 windows-all
javax/swing/JMenuItem/4171437/bug4171437.java JBR-6065 windows-all
javax/swing/JTable/7124218/SelectEditTableCell.java JBR-5442 linux-all
javax/swing/JTextArea/8149849/DNDTextToScaledArea.java JBR-6296 linux-all
javax/swing/JTextField/8036819/bug8036819.java JBR-6065 windows-all
javax/swing/JTree/4927934/bug4927934.java JBR-6065 windows-all
javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java JBR-5442 linux-all
@@ -43,3 +46,102 @@ javax/swing/plaf/metal/MetalGradient/8163193/ButtonGradientTest.java 8253184,JBR
javax/swing/SwingWorker/TestDoneBeforeDoInBackground.java JBR-5442 linux-all
javax/swing/text/html/StyleSheet/bug4936917.java JBR-899,JBR-5510,JBR-5442 windows-all,linux-all
javax/swing/UI/UnninstallUIMemoryLeaks/UnninstallUIMemoryLeaks.java JBR-5952,JBR-5442 windows-x64,linux-all
java/awt/Choice/ChoiceGeneratesItemEvents.java JBR-551 linux-all
java/awt/Choice/ChoiceStaysOpenedOnTAB.java JBR-5510 linux-all
java/awt/Choice/PopdownGeneratesMouseEvents/PopdownGeneratesMouseEvents.java JBR-5510 linux-all
java/awt/ColorClass/AlphaColorTest.java JBR-5359,JBR-5510 windows-aarch64,linux-all
java/awt/Component/RepaintTest.java JBR-5359,JBR-5510 windows-aarch64,linux-all
java/awt/Dialog/DialogAboveFrame/DialogAboveFrameTest.java JBR-5210,JBR-5510 windows-all,linux-all
java/awt/dnd/DnDTestWithHIDPI/DragTestWithHIDPI.java NOBUG linux-all
java/awt/Frame/InvisibleOwner/InvisibleOwner.java JBR-5359,JBR-5510 windows-aarch64,linux-all
java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java JBR-5210 windows-all,linux-all
java/awt/Graphics/XORPaint.java#id2 NOBUG linux-all
java/awt/Graphics2D/CopyAreaOOB.java JBR-5354 macosx-all,windows-all,linux-all
java/awt/image/multiresolution/MenuMultiresolutionIconTest.java JBR-4880,8253184,JBR-5510 windows-all,linux-all
java/awt/image/multiresolution/MultiResolutionJOptionPaneIconTest.java 8253184,JBR-5510 windows-all,linux-all
java/awt/Menu/OpensWithNoGrab/OpensWithNoGrab.java JBR-5510 linux-all
java/awt/Mixing/AWT_Mixing/JButtonInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JButtonOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JColorChooserOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JComboBoxOverlapping.java 8049405,JBR-5359,JBR-5510 macosx-all,windows-aarch64,linux-all
java/awt/Mixing/AWT_Mixing/JEditorPaneInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JEditorPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JGlassPaneInternalFrameOverlapping.java JBR-5359,JBR-5510 windows-aarch64,linux-all
java/awt/Mixing/AWT_Mixing/JGlassPaneMoveOverlapping.java JBR-5359,JBR-5510 windows-aarch64,linux-all
java/awt/Mixing/AWT_Mixing/JInternalFrameMoveOverlapping.java 6986109,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JInternalFrameOverlapping.java JBR-5359,JBR-5510 windows-aarch64,linux-all
java/awt/Mixing/AWT_Mixing/JLabelInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JLabelOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JListInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JListOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JPanelInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JPanelOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JPopupMenuOverlapping.java JBR-5210,8049405,JBR-5510 windows-all,macosx-all,linux-all
java/awt/Mixing/AWT_Mixing/JProgressBarInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JProgressBarOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JScrollBarInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JScrollBarOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JScrollPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JSliderInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JSliderOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JSpinnerInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JSpinnerOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JTableInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JTableOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JTextAreaInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JTextAreaOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JTextFieldInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JTextFieldOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JToggleButtonInGlassPaneOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/JToggleButtonOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Mixing/AWT_Mixing/ViewportOverlapping.java 8158801,JBR-5510 windows-all,linux-all
java/awt/Modal/BlockedMouseInputTest.java NOBUG linux-all
java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java 8066259,8253184,JBR-5510 macosx-all,windows-all,linux-all
java/awt/Modal/MultipleDialogs/MultipleDialogs4Test.java 8198665,8253184,JBR-5510 macosx-all,windows-all,linux-all
java/awt/Paint/PaintNativeOnUpdate.java 8253184,JBR-5510 windows-all,linux-all
java/awt/PopupMenu/PopupMenuStayOpen.java NOBUG linux-all
java/awt/Robot/HiDPIScreenCapture/HiDPIRobotScreenCaptureTest.java 8253184,NOBUG windows-all,linux-all
java/awt/Robot/HiDPIScreenCapture/ScreenCaptureGtkTest.java NOBUG linux-all
java/awt/Window/8159168/SetShapeTest.java 8253184,JBR-5510 windows-all,linux-all
java/awt/Window/BackgroundIsNotUpdated/BackgroundIsNotUpdated.java JBR-5359,JBR-5510 windows-aarch64,linux-all
java/awt/Window/MultiWindowApp/ChildAlwaysOnTopTest.java JBR-5510,JBR-5359 linux-all,windows-aarch64
java/awt/Window/MultiWindowApp/MultiWindowAppTest.java 8253184,JBR-5510 windows-all,linux-all
java/awt/Window/ShapedAndTranslucentWindows/SetShape.java 8253184,JBR-5510 windows-all,linux-all
java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java JBR-5359,JBR-5510 windows-aarch64,linux-all
java/awt/Window/WindowTitleVisibleTest/WindowTitleVisibleTestLinuxGnome.java NOBUG linux-all
javax/swing/JButton/8151303/PressedIconTest.java JBR-5210,JBR-5510 windows-all,linux-all
javax/swing/JComponent/7154030/bug7154030.java JBR-5359,JBR-5510 windows-aarch64,linux-all
javax/swing/JDialog/Transparency/TransparencyTest.java 8253184,JBR-5510 windows-all,linux-all
javax/swing/JEditorPane/8195095/ImageViewTest.java 8253184,JBR-5510 windows-all,linux-all
javax/swing/JEditorPane/TestBrowserBGColor.java JBR-5359,JBR-5510 windows-aarch64,linux-all
javax/swing/JFormattedTextField/TestSelectedTextBackgroundColor.java JBR-5510,JBR-6160 linux-all
javax/swing/JFrame/8175301/ScaledFrameBackgroundTest.java JBR-5359,JBR-5510 windows-aarch64,linux-all
javax/swing/JInternalFrame/5066752/bug5066752.java 8253184,JBR-5510 windows-all,linux-all
javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java JBR-5359,JBR-5510 windows-aarch64,linux-all
javax/swing/JMenu/JMenuSelectedColorTest.java JBR-5510 linux-all
javax/swing/JMenu/TestDisabledMenuForegroundColor.java JBR-5510 linux-all
javax/swing/JPasswordField/TestSelectedTextBackgroundColor.java JBR-5510 linux-all
javax/swing/JProgressBar/TestJProgressBarHighlightColor.java JBR-5510 linux-all
javax/swing/JRadioButton/8041561/bug8041561.java JBR-5359,JBR-5510 windows-aarch64,linux-all
javax/swing/JSlider/TestJSliderRendering.java JBR-5510 linux-all
javax/swing/JSpinner/4670051/DateFieldUnderCursorTest.java JBR-5510 linux-all
javax/swing/JSpinner/TestSelectedTextBackgroundColor.java JBR-5510 linux-all
javax/swing/JSplitPane/4820080/JSplitPaneDragColorTest.java JBR-5359,JBR-5510 windows-aarch64,linux-all
javax/swing/JSplitPane/4885629/bug4885629.java 8019935,JBR-5359,JBR-5510 macosx-all,windows-aarch64,linux-all
javax/swing/JTextPane/TestJTextPaneBackgroundColor.java JBR-5510 linux-all
javax/swing/JToolTip/TestTooltipBackgroundColor.java JBR-5510 linux-all
javax/swing/JTree/TestTreeBackgroundColor.java JBR-5510 linux-all
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentCanvas.java 8253184,JBR-5510 windows-all,linux-all
javax/swing/JWindow/ShapedAndTranslucentWindows/PerPixelTranslucentSwing.java 8194128,8253184,JBR-5510 macosx-all,windows-all,linux-all
javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java 8253184,JBR-5510 windows-all,linux-all
javax/swing/plaf/nimbus/8041642/bug8041642.java 8253184,JBR-5510 windows-all,linux-all
javax/swing/plaf/nimbus/8041642/ScrollBarThumbVisibleTest.java JBR-5359,JBR-5510 windows-aarch64,linux-all
javax/swing/plaf/nimbus/8057791/bug8057791.java 8253184,JBR-5510 windows-all,linux-all
javax/swing/plaf/nimbus/TestNimbusBGColor.java JBR-5359,NOBUG windows-aarch64,linux-all
javax/swing/text/html/CSS/4530474/bug4530474.java JBR-5359,JBR-5510,JBR-5951 windows-aarch64,linux-all,windows-x64
sanity/client/SwingSet/src/ButtonDemoScreenshotTest.java 8265770,8273312,JBR-5510 windows-all,macosx-all,linux-all
sanity/client/SwingSet/src/EditorPaneDemoTest.java JBR-5359,JBR-5510 windows-aarch64,linux-all
sun/java2d/GdiRendering/ClipShapeRendering.java JBR-5359,JBR-5366,JBR-5510 windows-all,linux-all
sun/java2d/GdiRendering/InsetClipping.java 7124403,JBR-5359,JBR-5366,JBR-5510 windows-all,macosx-all,windows-aarch64,linux-all

View File

@@ -1,6 +1,6 @@
###########################################################################
#
# Copyright (c) 2009, 2023, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2023, 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
@@ -163,7 +163,7 @@ java/awt/EventQueue/6980209/bug6980209.java 8198615 macosx-all
java/awt/Frame/ExceptionOnSetExtendedStateTest/ExceptionOnSetExtendedStateTest.java 8198237 macosx-all
java/awt/Frame/SetMinimumSizeTest/SetMinimumSizeTest2.java JBR-5210 windows-all
java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java JBR-5210 windows-all,linux-5.18.2-arch1-1
java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java 7080150,JBR-4880,8253184 macosx-all,windows-all
java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java 7080150,JBR-4880,8253184,JBR-5510 macosx-all,windows-all,linux-5.18.2-arch1-1
java/awt/grab/GrabOnUnfocusableToplevel/GrabOnUnfocusableToplevel.java 8169109,JBR-4880 linux-all,windows-all
java/awt/event/InputEvent/EventWhenTest/EventWhenTest.java 8168646 generic-all
java/awt/Mixing/AWT_Mixing/HierarchyBoundsListenerMixingTest.java 8049405,8253184 generic-all
@@ -337,7 +337,7 @@ java/awt/Choice/ChoiceHandleMouseEvent_2.java JBR-5359 windows-aarch64
java/awt/Choice/ChoiceMouseWheelTest/ChoiceMouseWheelTest.java 6849371,7100044,JBR-5210 macosx-all,linux-all,windows-all
java/awt/Component/F10TopToplevel/F10TopToplevel.java JBR-5687 linux-all
java/awt/Component/GetScreenLocTest/GetScreenLocTest.java 4753654 generic-all
java/awt/Component/RepaintTest.java JBR-5359 windows-aarch64
java/awt/Component/RepaintTest.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
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
@@ -605,7 +605,7 @@ java/awt/List/ActionEventTest/ActionEventTest.java JBR-5799 windows-x64
java/awt/List/EmptyListEventTest/EmptyListEventTest.java JBR-5387 linux-all
java/awt/List/FirstItemRemoveTest/FirstItemRemoveTest.java JBR-86 windows-x64
java/awt/List/ItemEventTest/ItemEventTest.java JBR-5711 linux-all
java/awt/List/KeyEventsTest/KeyEventsTest.java JBR-5210 windows-all
java/awt/List/KeyEventsTest/KeyEventsTest.java JBR-5210,JBR-6273 windows-all,linux-aarch64
java/awt/List/ListMultipleSelectTest/ListMultipleSelectTest.java JBR-5555 windows-all
java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java 8253184 windows-all
javax/print/PrintSEUmlauts/PrintSEUmlauts.java 8135174 generic-all
@@ -974,7 +974,7 @@ javax/swing/JScrollPane/HorizontalMouseWheelOnShiftPressed/HorizontalMouseWheelO
javax/swing/JSplitPane/4885629/bug4885629.java 8019935,JBR-5359,JBR-5510 macosx-all,windows-aarch64,linux-5.18.2-arch1-1
javax/swing/JTabbedPane/4361477/bug4361477.java JBR-5932 linux-all
javax/swing/JTabbedPane/8007563/Test8007563.java 8051591 generic-all
javax/swing/JTabbedPane/4624207/bug4624207.java 8064922,8197552 macosx-all,windows-all 8064922:macosx-all, 8197552:windows-all
javax/swing/JTabbedPane/4624207/bug4624207.java 8064922,8197552,JBR-6235 macosx-all,windows-all,linux-all 8064922:macosx-all, 8197552:windows-all
javax/swing/JTabbedPane/TestBackgroundScrollPolicy.java 8253184,windows-all
javax/swing/JToggleButton/TestSelectedKey.java JBR-5846 windows-all
javax/swing/JToolBar/4529206/bug4529206.java JBR-5387 linux-all
@@ -1016,7 +1016,7 @@ javax/swing/plaf/synth/Test8043627.java JBR-5767 windows-all
javax/swing/JInternalFrame/5066752/bug5066752.java 8253184,JBR-5510 windows-all,linux-5.18.2-arch1-1
javax/swing/JInternalFrame/8160248/JInternalFrameDraggingTest.java JBR-5359,JBR-5510 windows-aarch64,linux-5.18.2-arch1-1
javax/swing/JInternalFrame/8020708/bug8020708.java JBR-4879 windows-all
javax/swing/JInternalFrame/8069348/bug8069348.java 8253184,JBR-900 macosx-aarch64,windows-all
javax/swing/JInternalFrame/8069348/bug8069348.java 8253184,JBR-900 windows-all,linux-all
javax/swing/ToolTipManager/Test6256140.java 8197552 windows-all
javax/swing/text/DefaultEditorKit/4278839/bug4278839.java CODETOOLS-7901623 windows-all
javax/swing/text/GlyphPainter2/6427244/bug6427244.java JBR-896 windows-all
@@ -1043,7 +1043,7 @@ sanity/client/SwingSet/src/TextFieldDemoTest.java JBR-5061 linux-all Ubuntu-22.0
sanity/client/SwingSet/src/ToolTipDemoTest.java 8293001 linux-all
sanity/client/SwingSet/src/SliderDemoTest.java 8253184 windows-all
sanity/client/SwingSet/src/SpinnerDemoTest.java 8253184 windows-all
sanity/client/SwingSet/src/SplitPaneDemoTest.java JBR-5817 linux-5.19.0-1025-aws
sanity/client/SwingSet/src/SplitPaneDemoTest.java JBR-5817 linux-all
sanity/client/SwingSet/src/SwingSet2DemoTest.java 8253184 windows-all
############################################################################
@@ -1413,3 +1413,27 @@ java/awt/Toolkit/LockingKeyStateTest/LockingKeyStateTest.java JBR-5765 macosx-al
jb/sun/awt/macos/InputMethodTest/FocusMoveUncommitedCharactersTest.java JBR-5765 macosx-all
jb/java/awt/Focus/FocusTraversalOrderTest.java JBR-6060 generic-all
com/sun/java/swing/plaf/gtk/TestFileChooserSingleDirectorySelection.java JBR-5510 linux-5.18.2-arch1-1
java/awt/Choice/ChoiceGeneratesItemEvents.java JBR-5510 linux-5.18.2-arch1-1
java/awt/Choice/ChoiceStaysOpenedOnTAB.java JBR-5510 linux-5.18.2-arch1-1
java/awt/grab/EmbeddedFrameTest1/EmbeddedFrameTest1.java JBR-5510 linux-5.18.2-arch1-1
java/awt/Graphics/XORPaint.java#id2 JBR-5510 linux-5.18.2-arch1-1
java/awt/Robot/HiDPIScreenCapture/HiDPIRobotScreenCaptureTest.java JBR-5510 linux-5.18.2-arch1-1
java/awt/Robot/HiDPIScreenCapture/ScreenCaptureGtkTest.java JBR-5510 linux-5.18.2-arch1-1
java/awt/Robot/HiDPIScreenCapture/ScreenCaptureTest.java JBR-5510 linux-5.18.2-arch1-1
java/awt/Robot/NonEmptyErrorStream.java JBR-5510 linux-5.18.2-arch1-1
java/awt/Toolkit/DesktopProperties/rfe4758438.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/JComboBox/6406264/bug6406264.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/JComboBox/TestComboBoxComponentRendering.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/JMenu/TestDisabledMenuForegroundColor.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/JPasswordField/TestSelectedTextBackgroundColor.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/JProgressBar/TestJProgressBarHighlightColor.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/JSlider/TestJSliderRendering.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/JSpinner/TestSelectedTextBackgroundColor.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/JTextPane/TestJTextPaneBackgroundColor.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/JToolTip/TestTooltipBackgroundColor.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/JTree/TestTreeBackgroundColor.java JBR-5510 linux-5.18.2-arch1-1
javax/swing/plaf/nimbus/TestNimbusBGColor.java JBR-5510 linux-5.18.2-arch1-1
sanity/client/SwingSet/src/ColorChooserDemoTest.java JBR-5510 linux-5.18.2-arch1-1
sun/java2d/ClassCastExceptionForInvalidSurface.java JBR-5510 linux-5.18.2-arch1-1

View File

@@ -2,8 +2,10 @@ java/awt/Dialog/DialogLocationTest.java JBR-6090 windows-all
java/awt/datatransfer/DragUnicodeBetweenJVMTest/DragUnicodeBetweenJVMTest.java JBR-5538 windows-all
java/awt/datatransfer/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.java JBR-6027 windows-all
java/awt/dnd/MissedDragEnterTest.java JBR-6091 windows-all
java/awt/event/StressTest/MouseAndKeyEventStressTest.java JBR-6090 windows-all
java/awt/event/KeyEvent/ExtendedModifiersTest/ExtendedModifiersTest.java JBR-6292 windows-all
java/awt/event/KeyEvent/KeyMaskTest/KeyMaskTest.java JBR-6292 windows-all
java/awt/event/MouseEvent/FrameMouseEventAbsoluteCoordsTest/FrameMouseEventAbsoluteCoordsTest.java 8238720,JBR-6095 windows-all,linux-all
java/awt/event/StressTest/MouseAndKeyEventStressTest.java JBR-6090 windows-all
java/awt/Focus/6378278/InputVerifierTest.java JBR-6090 windows-all
java/awt/Focus/6382144/EndlessLoopTest.java JBR-6090 windows-all
java/awt/Focus/8282640/ScrollPaneFocusBugTest.java JBR-6090 windows-all
@@ -13,6 +15,7 @@ java/awt/Focus/ModalExcludedWindowClickTest/ModalExcludedWindowClickTest.java JB
java/awt/Focus/MouseClickRequestFocusRaceTest/MouseClickRequestFocusRaceTest.java 8194753,JBR-6090 linux-all,macosx-all,windows-x64
java/awt/Focus/SimpleWindowActivationTest/SimpleWindowActivationTest.java JBR-6089 windows-all
java/awt/Focus/WindowUpdateFocusabilityTest/WindowUpdateFocusabilityTest.java JBR-6090 windows-all
java/awt/Frame/GetGraphicsStressTest/GetGraphicsStressTest.java JBR-6233 windows-x64
java/awt/Frame/InvisibleOwner/InvisibleOwner.java JBR-6090 windows-all
java/awt/Frame/MaximizedToOppositeScreen/MaximizedToOppositeScreenSmall.java JBR-6090 windows-all
java/awt/Frame/RestoreToOppositeScreen/RestoreToOppositeScreen.java 8286840 linux-all
@@ -35,6 +38,8 @@ javax/swing/JPopupMenu/6580930/bug6580930.java
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedPerPixelTranslucentGradient.java JBR-6090 windows-all
javax/swing/JWindow/ShapedAndTranslucentWindows/ShapedTranslucentPerPixelTranslucentGradient.java JBR-6090 windows-all
sanity/client/SwingSet/src/EditorPaneDemoTest.java.EditorPaneDemoTest JBR-6285 linux-all
sanity/client/SwingSet/src/ToolTipDemoTest.java 8293001,JBR-6293 linux-all,windows-all
sun/java2d/GdiRendering/ClipShapeRendering.java JBR-5204 linux-all,windows-all
jb/java/awt/Focus/RequestFocusInParent.java JBR-5715 windows-all