19785 Commits

Author SHA1 Message Date
Vitaly Provodin
1ce356a296 update exclude list on results of main.3839 test runs 2025-12-06 01:03:50 +01:00
Maxim Kartashev
682558af02 JBR-9733 Wayland: enable unconstrained popup positioning
Use getRootPane()
.putClientProperty("wlawt.popup_position_unconstrained", Boolean.TRUE)
to enable unconstrained popup positioning.
2025-12-06 01:03:49 +01:00
Anton Shangareev
2a88cbe4cf JBR-8947 Reimplement CArrayUtils in a MSVC-compatible way 2025-12-06 01:03:49 +01:00
Maxim Kartashev
082b4e9597 Revert "JBR-9503 Wayland: IDE frame disappears after click on 'Cancel'"
This reverts commit f25d35abec.
2025-12-06 01:03:49 +01:00
Vitaly Provodin
85a7834cfd update exclude list on results of main.3838 test runs 2025-12-06 01:03:49 +01:00
Vladimir Lagunov
5fa04d3671 JBR-9531 Prevent unexpected recursive usage of java.io over nio wrappers
Shortly said, we don't need to handle recursive invocations of the `java.io` to nio adapters, while this recursion leads to problems.

# Problem 

Since we're not allowed to modify public API of Java classes, an unreliable workaround `IoOverNio.PARENT_FOR_FILE_CHANNEL_IMPL` had been introduced. This trick lets us pass some object into a called function without adding a new function argument.

The trick backfired at the following code:

```java
// at java.base/java.io.IoOverNioFileSystem.initializeStreamUsingNio (simplified code)
IoOverNio.PARENT_FOR_FILE_CHANNEL_IMPL.set(owner);
return initializeStreamsUsingNio0(owner, nioFs, file, nioPath, optionsForChannel, channelCleanable);


// at java.base/java.io.IoOverNioFileSystem.initializeStreamsUsingNio0
channel = nioFs.provider().newFileChannel(nioPath, optionsForChannel);
```

The intention of setting `PARENT_FOR_FILE_CHANNEL_IMPL` is to path `owner` inside a constructor of `sun.nio.ch.FileChannelImpl` which may be called by `newFileChannel(nioPath, optionsForChannel)`.

The implementation of `newFileChannel` in IntelliJ triggered class loading. The classloader of IntelliJ triggered the call `java.nio.file.Files.readAllBytes`. The latter code also invoked the constructor of `FileChannelImpl`, and the constructor got from the thread-local variable the value for the field `parent`. That value was supposed to be passed to a different invocation of the constructor.

The observable result of this bug was a `NullPointerExceptions` from `java.io.FileOutputStream.close`. Hypothetically, this bug could also lead to closing file descriptors earlier as expected in other unpredictable places.

# Rejected approaches

* The cleanest solution could be passing specific function arguments through function arguments. 
  
  However, we may neither create a new public function in the module `java.base`, nor add an argument to an existing one. Thus, we have to keep dealing with thread-local variables.
* To hold several values in the thread-local variable. 

  In this case, the constructor of `FileChannelImpl` should somehow choose the right value from the list. The only possible way for filtering values is by the provided path. It doesn't look like a performant and reliable solution.
 
# Chosen solution
 
This commit disables recursive invocations of `java.io` from `java.nio` adapters.
  
The chosen solution is tied to specifics of IntelliJ. The reason for introducing java.io over java.nio adapter was to be able to access files from remote machines without rewriting old code. It is not expected that an implementation of `java.nio.file.spi.FileSystemProvider` accesses the file system using `java.io`. The only imaginable way to get a `java.io` call from `java.nio` is class loading. In case of IntelliJ, it's assumed that the class loader never accesses classes and jars from a remote machine.
2025-12-06 01:03:48 +01:00
Vitaly Provodin
23febad80e JBR-9637 revert test/jdk changes made in 8370344, 8371315, 8371474 2025-12-06 01:03:48 +01:00
Maxim Kartashev
6eff797dbc JBR-9598 Wayland: auto-detect Wayland session at startup
Adds -Dawt.toolkit.name=auto to prefer WLToolkit over XToolkit when
available. The default is still XToolkit.
2025-12-06 01:03:47 +01:00
Sergey Shelomentsev
cb9880fa8c JBR-9610 Set TimerQueue thread exclusion for BugJBR9563.java 2025-12-06 01:03:47 +01:00
Maxim Kartashev
25532ba2f9 JBR-5989 Wayland: added more tests to jdk_awt_wayland 2025-12-06 01:03:47 +01:00
Sergey Shelomentsev
90a44e14ed JBR-9563 Add test to verify that new threads aren't spawned infinitely 2025-12-06 01:03:46 +01:00
Vitaly Provodin
160ed0d2c6 update exclude list on results of main.3734 test runs 2025-12-06 01:03:45 +01:00
Maxim Kartashev
5cbcf347cc JBR-9503 Wayland: IDE frame disappears after click on 'Cancel' 2025-12-06 01:03:45 +01:00
Nikita Gubarkov
303d501fad JBR-9505 Vulkan: Remove sun.java2d.vulkan.accelsd from tests 2025-12-06 01:03:45 +01:00
Vitaly Provodin
fd1068f28c clean up fixed issues from exclude lists 2025-12-06 01:03:45 +01:00
Alexey Ushakov
a0edac2e0c JBR-9292 Vulkan: RenderPerfTest missing frames
Flush rendering in case of a changed clip
2025-12-06 01:03:43 +01:00
Vitaly Provodin
1bf553407f update exclude list on results of main.3677 test runs 2025-12-06 01:03:43 +01:00
Maxim Kartashev
9cc3e4ea79 JBR-9364 Wayland: Popups are shifted with multiple monitor setup after monitor reconnected (Ubuntu) 2025-12-06 01:03:43 +01:00
Nikita Gubarkov
f62a201bfc JBR-9425 Vulkan: Fix surface disposal 2025-12-06 01:03:43 +01:00
Alexey Ushakov
1440d0bc28 JBR-9405 Vulkan: provide pre-commit jtreg test group
Added jdk_render_wayland_vulkan group and exclude list
2025-12-06 01:03:42 +01:00
Maxim Kartashev
304f47e226 JBR-9378 Wayland: Nullpointer exception in DefaultFrameDecoration, IDE hang on KDE 2025-12-06 01:03:42 +01:00
Vitaly Provodin
77469a943c JBR-9274 test against streaming output for attach API 2025-12-06 01:03:42 +01:00
Vitaly Provodin
81d612cd38 Revert "8367017: Remove legacy checks from WrappedToolkitTest and convert from bash"
This reverts commit e1071797a4.
2025-12-06 01:03:42 +01:00
Dmitry Batrak
cf0897a854 JBR-9365 Unnecessary operations on tree node update 2025-12-06 01:03:41 +01:00
Maxim Kartashev
87ab6879c1 JBR-6769 Make it possible to get info whether IDE is running in a virtual env
Added system property intellij.os.virtualization with possible values
"none", "Xen", "KVM", "VMWare", "HyperV"

(cherry picked from commit 92e4311f13)
2025-12-06 01:03:41 +01:00
Maxim Kartashev
1e88283b58 JBR-6979 Modernize more WaitForSingleObject on Windows
Use -XX:+UnlockExperimentalVMOptions -XX:-UseModernSynchAPI
to switch back to the original implementation
2025-12-06 01:03:41 +01:00
Maxim Kartashev
f2f1487a7c JBR-9332 Wayland: popups are not closed when parent looses focus
(cherry picked from commit f85b08add5c9505629eaad4d88378b193a2a2c5a)
2025-12-06 01:03:40 +01:00
Maxim Kartashev
076326effc JBR-9310 Wayland: Gtk-WARNING in swing app
(cherry picked from commit cdf2ad9a2b6a2048e3eeaadb667e75f511cbcd81)
2025-12-06 01:03:40 +01:00
Dmitry Batrak
339ba92861 JBR-2759 Typeahead issue on Linux
(cherry picked from commits 76bdaf1131, b20c56ff3e, c9609330f2, a170b4e4ae)

(cherry picked from commit 281e6abf47)
2025-12-06 01:03:40 +01:00
Maxim Kartashev
f7f9ee8204 JBR-9228 KDE: jb/java/awt/Toolkit/DetectingOSThemeTest.java fails 2025-12-06 01:03:39 +01:00
Vladimir Lagunov
38c94b9dea JBR-9260 Different ExtendedOptions.NOSHARE_DELETE in WindowsChannelFactory
Before this commit there was a race condition: `sun.nio.fs.ExtendedOptions.InternalOption.register(java.nio.file.OpenOption)` could register only one option.

There have been two similar options:
* `sun.nio.fs.ExtendedOptions.NOSHARE_DELETE`
* `java.io.JbExtendedOpenOptions.NOSHARE_DELETE`

This led to the following failure:
```
Caused by: java.lang.UnsupportedOperationException
    at java.base/sun.nio.fs.WindowsChannelFactory$Flags.toFlags(WindowsChannelFactory.java:131)
    at java.base/sun.nio.fs.WindowsChannelFactory.newFileChannel(WindowsChannelFactory.java:151)
    at java.base/sun.nio.fs.WindowsFileSystemProvider.newFileChannel(WindowsFileSystemProvider.java:114)
    at java.base/java.io.IoOverNioFileSystem.initializeStreamsUsingNio0(IoOverNioFileSystem.java:294)
    at java.base/java.io.IoOverNioFileSystem.initializeStreamUsingNio(IoOverNioFileSystem.java:279)
    at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:332)
```

This commit fixes the issue, now both options are supported.
2025-12-06 01:03:39 +01:00
Vitaly Provodin
6894e55be5 JBR-9238 Introduce distinct test groups for Vulkan runs 2025-12-06 01:03:39 +01:00
Vitaly Provodin
2e1d64cff2 update exclude list on results of main.3468 test runs 2025-12-06 01:03:37 +01:00
Vitaly Provodin
6cde5d09d0 update exclude list on results of main.3451 test runs 2025-12-06 01:03:37 +01:00
Vitaly Provodin
931af726bb JBR-9065 split part4 onto parts 2025-12-06 01:03:37 +01:00
Vitaly Provodin
3930ce51fe update exclude list on results of main.3434 test runs 2025-12-06 01:03:36 +01:00
Vitaly Provodin
e8b26b844d update exclude list on results of 3399 test runs 2025-12-06 01:03:35 +01:00
Vitaly Provodin
ddba068c59 update exclude list on results of 3379 test runs 2025-12-06 01:03:34 +01:00
Maxim Kartashev
0d297fa8ea JBR-8949 Wayland: java/awt/Gtk/GtkVersionTest/GtkVersionTest.java: Wrong GTK library version: null 2025-12-06 01:03:34 +01:00
Maxim Kartashev
592edbe11f JBR-7087 Wayland: enable more GTK tests 2025-12-06 01:03:34 +01:00
Vitaly Provodin
7995d7c8ac update exclude list on results of 3373 test runs 2025-12-06 01:03:34 +01:00
Vitaly Provodin
ee9f8679f3 clean up fixed issues from exclude lists 2025-12-06 01:03:33 +01:00
Maxim Kartashev
39384445a2 JBR-8643 Wayland: popup will not appear if located outside of parent window 2025-12-06 01:03:33 +01:00
Maxim Kartashev
3644083817 JBR-8304 Wayland: UI/UnninstallUIMemoryLeaks/UnninstallUIMemoryLeaks.java throws HeadlessException: No X11 DISPLAY variable was set
Pass JVM options to sub-tests in a more reliable and uniform fashion
2025-12-06 01:03:33 +01:00
Vitaly Provodin
8cb9e3cdd0 JBR-6620 restore displayMode to the state that was before running the test
(cherry picked from commit 285d3d3860)
2025-12-06 01:03:32 +01:00
Nikita Provotorov
809a28ae61 JBR-6085: java/awt/event/KeyEvent/AltGraphModifier.java: Modifier Mask is not set.
Stabilizing the test by getting rid of false-positive errors.
2025-12-06 01:03:32 +01:00
Vitaly Provodin
a79bade2f5 update exclude list on results of 3316 test runs 2025-12-06 01:03:32 +01:00
Sergey Shelomentsev
4c238c4605 JBR-5819 fix custom title bar tests 2025-12-06 01:03:32 +01:00
Vitaly Provodin
527a9066d2 update exclude list on results of 3297 test runs 2025-12-06 01:03:32 +01:00
Vitaly Provodin
3683b2b9c3 update exclude list on results of 3293 test runs 2025-12-06 01:03:31 +01:00