Compare commits

...

1834 Commits

Author SHA1 Message Date
Alexey Ushakov
e44c69df4a Revert "RenderPerfTest patch"
This reverts commit fe69cf0e41cd8736e810cab1357e2cf2969d739b.
2022-05-20 19:56:21 +02:00
Alexey Ushakov
73fb654adf RenderPerfTest patch 2022-05-20 19:56:17 +02:00
Alexey Ushakov
2511f31dad JBR-4486 AA Ovals not rendered under metal
Commit command buffer after MASK_FILL operation
2022-05-20 19:32:41 +02:00
Maxim Kartashev
79129d956d JBR-4457 getOperatingSystemMXBean throws an NPE
Instead of picking the memory cgroup specifically for "anyController",
pick any controller that appeared to be the first in the map.
2022-05-19 07:10:23 +03:00
Artem Bochkarev
86c12854ef JBR-4473: fixed native part of SystemHotkeyReader 2022-05-19 07:10:22 +03:00
Alexey Ushakov
ee1838990d JBR-4442 ClipFlatOval test hangs on M1 mac
Removed Swing timer. Simplified logic.
2022-05-19 07:10:21 +03:00
Dmitry Batrak
83ef3d09d0 JBR-1740 Menu remains open when application loses focus
(cherry picked from commit f987d22cd2)
2022-05-19 07:10:20 +03:00
Vitaly Provodin
643a94f93f exclude Frame/RestoreToOppositeScreen/RestoreToOppositeScreen.java from S2 runs due to 8286840 2022-05-19 07:10:19 +03:00
Vitaly Provodin
823c3de2f0 exclude java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java due to 8282232 2022-05-19 07:10:18 +03:00
Maxim Kartashev
c0ed98dc56 JBR-4471 Linux: popup appears on wrong screen after desktop scale change
When screen scale changes, the cached screen bounds must be explicitly
updated. Call resetBoundsCache() whenever X11GraphicsDevice.scale has
changed.
2022-05-19 07:10:17 +03:00
Manuel Unterhofer
672d186a90 Merge fullscreen handlers for transparent title bar into existing ones 2022-05-19 07:10:16 +03:00
Manuel Unterhofer
2129b3bea2 FL-11420 Fix view hierarchy restoration for full-screen mode on macOS 2022-05-19 07:10:15 +03:00
Vitaly Provodin
0b5173839c JBR-4437 add sources to JBRSDK distributions for Windows and Linux 2022-05-19 07:10:14 +03:00
Alexey Ushakov
62c1cc3526 JBR-4442 ClipFlatOval test hangs on M1 mac
Corrected test logic, added timeout on low performant rendering, added one more marker to recover from missing frames
2022-05-19 07:10:13 +03:00
Nikita Gubarkov
0b1b043cab JBR-4364 Port macOS native file dialog patches
IDEA-146669 Enable Mac native file dialogs
IDEA-159507 Mac native dialogs: multiple open dialogs are possible
JBR-1784 File dialogs aren't themed on macOS

squash! JBR-4364 Port macOS native file dialog patches

JBR-1752 Floating windows overlap modal dialogs
JBR-2005: don't set appearance of file chooser if OSX version < 10.14
2022-05-19 07:10:12 +03:00
Dmitry Batrak
87b34930e6 JBR-4463 Activating app-modal dialog brings all app windows to front
(cherry picked from commit 2b05925276)
2022-05-19 07:10:11 +03:00
Maxim Kartashev
6825007cc4 JBR-4464 Error building latest jbr-dev after JDK-8285730 2022-05-19 07:10:10 +03:00
Maxim Kartashev
b8bf726ebc JBR-4118 NIO methods fail on Google Drive's virtual volume
If NtQueryDirectoryFile() failed with STATUS_INVALID_PARAMETER,
try again asking for less information with the FileDirectoryInformation
option as "information class". This option works on a mounted
Google Drive, but it doesn't provide file ids, which speed
up file listing. So it is used only as a fall-back solution.

(cherry picked from commit 82693aa985)
2022-05-19 07:10:09 +03:00
Maxim Kartashev
8d9ddd9eaf JBR-3680 Cherry-pick Google's NIO patches to get faster file listing
Fix regression introduced by Google's NIO patches:
- do not attempt to get the next entry after the directory stream has
been closed already,
- fix FaultyFileSystem that is used in StreamTest.java to throw
the right exception even when getFileAttributeView() is used instead of
readAttributes(),
- removed unnecessary type cast that caused a compilation warning.

Added a test for walking a directory with a non-latin name.

(cherry picked from commit 152a4e886d)
2022-05-19 07:10:08 +03:00
Renaud Paquay
642e9a80c1 JBR-3680 Improve performance of WindowsDirectoryStream
Use `NtQueryDirectoryInformation` instead of `FindFirst/FindNext` to
retrieve the list of entries of a directory.

`NtQueryDirectionInformation` has 2 main benefits over
`FindFist`/`FindNext`:

* Performance is about 40% faster

* Each retrieved entry retrieved contains a 64-bit `FileId` in addition
  to the usual attributes, ensuring that returned `java.nio.Path`
  instances hold onto a `BasicFileAttributes` instance that exposes a
  non-null `java.nio.file.attribute.BasicFileAttributes.fileKey()`.

This change also requires creating a new WindowsFileKey class, similar
to UnixFileKey class, so that
`java.nio.file.attribute.BasicFileAttributes.fileKey()` can return an
Object instance that can be used to compare files for equality.

With this change, the Windows implementation of Files.walkFileTree is
about 40% faster when the FOLLOW_LINKS option is not used, and about
2.5x faster when the FOLLOW_LINKS option is used.

When the FOLLOW_LINKS option is used, most calls to
`Files.isSameFile`, which is expensive as it requires 2 file I/O
operations, are avoided because the Path entries returned by the
new WindowsDirectoryStream implementation now contain a non-null
BasicFileAttributes.fileKey(). The remaining calls to
`Files.isSameFile` are performed when Files.walkFileTree need
to compare the initial directory with other entries.

Change-Id: Id79d89d477a6d5dcf151c63a9d6072c6f7ef43b2

(AKA JBR-3680 Cherry-pick Google's NIO patches to get faster file listing)

(cherry picked from commit 7c2d7541ba)
2022-05-19 07:10:07 +03:00
Maxim Kartashev
b16f55344c JBR-3498 Windows: exception when trying to delete a directory with a trailing space
Allow Windows Path to have a trailing space despite Windows naming conventions
discouraging it. Many programs - including Explorer - successfully work
with such files or directories.
2022-05-19 07:10:07 +03:00
Dmitry Batrak
a71864985f JBR-1518 JBR 11 does not support chain of popups on Linux
(cherry picked from commit 849356ee01)
2022-05-19 07:10:06 +03:00
Dmitry Batrak
cf9489765d small corrections to README.md 2022-05-19 07:10:05 +03:00
Dmitry Batrak
1fdfcd722a JBR-4306 Robot doesn't work as expected in some cases on macOS
(cherry picked from commits 7d69734465, 0f33031484, 3b5ded0d02)
2022-05-19 07:10:04 +03:00
Alexey Ushakov
66578a58de JBR-4441 RenderPerfTest incorrectly measures performance
Corrected logic, added cleanup for graphics to run XOR and Clip tests. Removed RenderPerfLCDTest
2022-05-19 07:10:03 +03:00
Vitaly Provodin
66accd39db JBR-4437 add sources to JBRSDK distributions 2022-05-19 07:10:02 +03:00
Ryan Osial
fef563b5d0 Cache results of font-config pattern search for reuse
(cherry picked from commit 432f637904)
(cherry picked from commit 17bc232f6f)
2022-05-19 07:10:00 +03:00
Maxim Kartashev
bc515e539a JBR-3948 Linux: SIGSEGV at [libawt_xawt] Java_sun_awt_X11_XInputMethod_createXICNative
The crashes begin with the call to getDefaultConfig() in
createStatusWindow() returning garbage. With 8280468 fixed, there aren't
many reasons left for it to do so; it must be that the argument to the
call (the screen number) is out of range.

This change eliminates the possibilities to get an absolutely incorrect
screen number by checking the return values of several Xlib functions,
which, when fail, will leave their outgoing arguments uninitialized.
This, in turn, can lead to reading some random memory resulting in
equally random screen number that is later being fed to
getDefaultConfig().

Although on modern systems with Xinerama there should really be no
screen other than zero, as the last resort, this number is also
range-checked in getDefaultConfig() itself.
2022-05-19 07:10:00 +03:00
Vitaly Provodin
3b627de990 JBR-4370 create a test checking all JBR artifacts exist - add exit code 2022-05-19 07:09:59 +03:00
Anton Tarasov
0a0970929c JBR-3906 JBR for Linux aarch64 with JCEF is missing, is there any support plan? 2022-05-19 07:09:58 +03:00
Maxim Kartashev
e245fc8cf3 JBR-3862 Implement native WatchService on MacOS
The watch service is based on FSEvents API that notifies about file
system changes at a directory level. It is possible to go back to
using the old polling watch service with -Dwatch.service.polling=true.

Features include:
- support for FILE_TREE option (recursive directory watching),
- minimum necessary I/O (no filesystem access more than once
  unless needed),
- one thread ("run loop") per WatchService instance,
- changes are detected by comparing file modification times with
  millisecond precision,
- a directory tree snapshot is taken at the time of WatchKey creation
  and can take a long time (proportional to the number of files).
2022-05-19 07:09:57 +03:00
Anton Tarasov
0836ef21ce JBR-4355 javax/swing/GraphicsConfigNotifier/StalePreferredSize.java: # C [libobjc.A.dylib+0x90ff] objc_release+0x1f
(cherry picked from commit c0b2b59d4a)
2022-05-19 07:09:56 +03:00
Anton Tarasov
9c23d6d0f3 JBR-4389 [update_1] IDEA UI font becomes too large after disconnecting the external monitor / sleep 2022-05-19 07:09:55 +03:00
Anton Tarasov
58e93e084a JBR-4389 IDEA UI font becomes too large after disconnecting the external monitor / sleep 2022-05-19 07:09:54 +03:00
Dmitry Batrak
7c3f113678 remove duplicate bundled JetBrains Mono bold italic font
following JBR-4402

(cherry picked from commit b7e5d3cfcf)
2022-05-19 07:09:53 +03:00
Dmitry Batrak
a55a057eee JBR-4402 The wrong text is rendered in editor 2022-05-19 07:09:52 +03:00
Artem Semenov
f09dc99ada JBR-4235 Context menu not readable after opening on Mac OS 2022-05-19 07:09:51 +03:00
Vitaly Provodin
1d5ca4770d JBR-4297 add a regression test
(cherry picked from commit 8e94fff6aa)
2022-05-19 07:09:50 +03:00
Konstantin Bulenkov
24201b2bbd Update JetBrains Mono font to 2.225 2022-05-19 07:09:49 +03:00
Anton Tarasov
3c8ab1f356 JBR-4362 [mac] system menu opens with duplicated items
(cherry picked from commit e32defe49d)
2022-05-19 07:09:48 +03:00
Alexey Ushakov
953307f8cf JBR-4363 Changes in fonts rendering between JBR11 and JBR17
Resolved merge artifact after applying IDEA-57233 fix
2022-05-19 07:09:47 +03:00
Alexey Ushakov
1e6175dee5 JBR-3843 IDE text is misaligned vertically when using Consolas font
Use usWinAscent/usWinDescent for metrics on Windows
2022-05-19 07:09:46 +03:00
Alexey Ushakov
75bdde4fdb JBR-1110 [JDK11] java/awt/font/Outline/OutlineInvarianceTest.java: Failed for font java.awt.Font[family=Dialog,name=MS Gothic,style=bold,size=30]
Replaced FT_LOAD_NO_HINTING mode for non AA rendering with FT_LOAD_TARGET_LIGHT

(cherry picked from commit 3368768244)
2022-05-19 07:09:45 +03:00
Alexey Ushakov
60acf7ca2d JBR-2000 RM 2019.3.1 font rendering regression, normal text is heavier
Added -Djava2d.font.loadFontConfig=bundled to force loading bundled font.conf

(cherry picked from commit 788e078f64)
2022-05-19 07:09:44 +03:00
Dmitry Batrak
0304266442 JBR-4346 [Xfce] Windows are moved unexpectedly between workspaces when modal dialog is shown
(cherry picked from commits ad299f1e74, 800220af16)
2022-05-19 07:09:43 +03:00
Anton Tarasov
4390f3f113 JBR-4328 remove LWCToolkit.unsafeNonblockingExecute
(cherry picked from commit 9a3f31a6c4)
2022-05-19 07:09:42 +03:00
Anton Tarasov
a67f6fb591 JBR-4134 PyCharm is slow and unusable on MacBook Pro with M1
(cherry picked from commit 36190505f5)
2022-05-19 07:09:41 +03:00
Anton Tarasov
e2f7682176 JBR-4284 Sub items of main menu options are not displayed
A regression of JBR-4208 LWCToolkit.invokeAndWait should not stuck on invocation loss

(cherry picked from commit c464e4748e)
2022-05-19 07:09:40 +03:00
Anton Tarasov
935d33ac26 JBR-4119 UI freezes at sun.lwawt.macosx.CAccessibility.getChildrenAndRoles
(cherry picked from commit 6ba79774d8)
2022-05-19 07:09:39 +03:00
Anton Tarasov
d2c31b58d8 JBR-4106 PyCharm hangs with 100% CPU usage on one core 2022-05-19 07:09:38 +03:00
Alexey Ushakov
cdb37e229a JBR-3827 SIGILL at [libsystem_kernel] __kill in Java Exception at -[CDragSource convertData:]
Added check for drag source
2022-05-19 07:09:37 +03:00
Alexey Ushakov
0d28f2e995 JBR-3366 SIGILL at [libsystem_kernel] __kill in NSWindowStyleMaskFullScreen cleared on a window outside of a full screen transition
Wrapped the native exception and added logging
2022-05-19 07:09:36 +03:00
Alexey Ushakov
ee4d3c348d JBR-3365 SIGILL at [libsystem_kernel] __kill in java.lang.RuntimeException: Failed to convert, no screen / primaryScreen
Wrapped the native exception and added logging
2022-05-19 07:09:35 +03:00
Dmitry Batrak
1e4554c01b JBR-3751 Window content isn't rendered with some window managers on Linux
(cherry picked from commit 8d22e4dcb0)
2022-05-19 07:09:34 +03:00
Vitaly Provodin
ea71d280a7 JBR-4188 add script comparing performance results
add exec permissions && fix misprint in checking if headers exist

move the script comparing performance results from jdk8u_test
2022-05-19 07:09:33 +03:00
Vitaly Provodin
dacd1549a8 JBR-4294 split desktop tests to more groups for Commit testing 2022-05-19 07:09:32 +03:00
Maxim Kartashev
1050cf59cb JBR-1430 (8195129) Windows: use UTF16 version of Win32 API to load DLL
Also correct library name encoding in exception messages.
2022-05-19 07:09:31 +03:00
Vladimir Kempik
d5bcc46b22 JBR-4283: Provide native JBR builds for alpine Linux-aarch64 2022-05-19 07:09:30 +03:00
Vladimir Kempik
4d8551c668 JBR-4242:Provide native JBR builds for alpine Linux 2022-05-19 07:09:29 +03:00
Dmitry Batrak
788f6259ae JBR-4281 Window losing focus isn't detected in some cases on macOS
(cherry picked from commit 363650bbf4)
2022-05-19 07:09:28 +03:00
greg
7128f84413 macOS: add methods to setup transparent titlebar with custom height (#100)
* macOS: add methods to setup transparent titlebar with custom height

* make windowTransparentTitleBarHeight CPlatfromWindow property

* add windowTransparentTitleBarHeight test

* Prevent mouseUp events on the transparent header on macOS when the window is being dragged

Co-authored-by: Manuel Unterhofer <manuel.unterhofer@jetbrains.com>

Custom macOS window decorations via JBR API

squash! macOS: add methods to setup transparent titlebar with custom height (#100)

JBR-4460 Fix window drag with custom decorations on macOS
2022-05-19 07:09:27 +03:00
Denis Fokin
9814a298f6 JBR-4038 [JBR17] Force Touch events are not supported on macOS
Added missing files and handlers from JBR11
2022-05-19 07:09:26 +03:00
Alexey Ushakov
caac71f741 JBR-3901 jbr-dev compile problem
Added transient keyword
2022-05-19 07:09:25 +03:00
Alexander Lobas
32efbe433d JBR-2893 Big Sur: Add support of opening project as tabs IDEA-257932 Big Sur: IDEA hangs after closing a project tab after exiting and entering full screen
Converted JNF to JNIUtilites

(cherry picked from commit f02e31a440)
(cherry-picked from commit a84736ebcc)
2022-05-19 07:09:24 +03:00
Dmitry Batrak
991ea00386 JBR-3676 WINDOW_ACTIVATED/DEACTIVATED events sent to a frame when child window closes on macOS
(cherry-picked from commit 824f9ebec3)
2022-05-19 07:09:23 +03:00
Dmitry Batrak
485cc8bc13 JBR-3611, JBR-3633, JBR-3666, JBR-3663, JBR-3671, JBR-3673, JBR-4181, JBR-4186 Interoperability with macOS desktop spaces
(cherry-picked from commits 43fdd6cd26, 75335543f2, a156c6b9bf, 9fdc75969b, 1dcc612a81, 93588d0738, 94a3885bbe, c040e05703, 67b6cd871f, 9040fd56cd)
2022-05-19 07:09:22 +03:00
Dmitry Batrak
3083feb065 refactor nativeCreateNSWindow call wrapping
as part of JBR-3017

(cherry picked from commit eeef67a335)
2022-05-19 07:09:21 +03:00
Dmitry Batrak
db943706c8 remove excessive wrapping with AccessController (AWTThreading does it internally now)
as part of JBR-3017

(cherry picked from commit f1dd523ba8)
2022-05-19 07:09:20 +03:00
Dmitry Batrak
98fc9329b9 JBR-2971 Log more information about window creation and property changes
(cherry picked from commit 9d86b4d235)
2022-05-19 07:09:19 +03:00
Dmitry Batrak
2a1427d1c2 JBR-2533 Popup is not focused on click when switching from another application on macOS
(cherry picked from commits d9ff151211, 67b174dc8c, 72b0add80c, 21af1eba85, 2f1d317d87, 6dd334f9f0, cd863bac0d, 010f6fc951, 25e087d269, parts of 7d5ac56b6c, cd6dd5c3cf, e8bbd8ffdd)

with fix for JBR-3640 (java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java: window Open button lost focus when it should not) and JBR-3979 (Focus is not transferred to parent window)
2022-05-19 07:09:18 +03:00
Anton Tarasov
d94ca916d3 JBR-4208 LWCToolkit.invokeAndWait should not stuck on invocation loss 2022-05-19 07:09:17 +03:00
Nikita Provotorov
286531df43 JBR-4271: JBR17 and dev built without --with-vendor-name parameter have invalid value of the java.vm.vendor property.
Changes the default JBR's vendor from "Oracle Corporation" to "JetBrains s.r.o.".

(cherry picked from commit 0cb7b4565c)
2022-05-19 07:09:16 +03:00
Nikita Gubarkov
94cb14e07a JBR API v0.0.3
JBR-4228 report HTMINBUTTON, HTMAXBUTTON, HTCLOSE, HTMENU, HTCAPTION targets via JBR API & handle corresponding non-client mouse events for windows with custom decoration
2022-05-19 07:09:15 +03:00
Alexey Ushakov
6c2e74a19e JBR-4224 java/awt/image/VolatileImage/GradientPaints.java: Number of mismatches (300000) exceeds limit (54000) with tolerance=5
Updated reg test to handle contentLost event
2022-05-19 07:09:14 +03:00
Vitaly Provodin
50534ded31 exclude javax/swing/border/TestTitledBorderLeak.java on windows due to 8213531 2022-05-19 07:09:13 +03:00
Ivan Lopatin
96776a7683 Scale2: exclude java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java due to 8279190 on macosx-all 2022-05-19 07:09:12 +03:00
Nikita Provotorov
84fa8336e4 JBR-3299: The test /jb/sun/awt/macos/NationalLayoutTest/Layout_ABC.java fails on MacOS.
Fixes the Layout_*.java tests by giving them to know the <Ctrl + key> combinations can generate KEY_TYPED event.

(cherry picked from commit eae5198b20)
2022-05-19 07:09:11 +03:00
Vitaly Provodin
8efefc457b exclude java/awt/Frame/FrameSetSizeStressTest/FrameSetSizeStressTest.java on Wayland
sun/security/pkcs11/Signature/TestDSAKeyLength.java                                 8279941 linux-all
2022-05-19 07:09:10 +03:00
Alexey Ushakov
23453f5a9c JBR-4112 macOS: SIGILL at [libsystem_kernel] __kill in OOME: Java heap space at java.awt.image.DataBufferInt.<init>
Reg test update: replace management api with jfr
2022-05-19 07:09:09 +03:00
Nikita Provotorov
ee75d4e0f8 JBR-4207, IDEA-287559: IDEA incorrectly handles AltGr key modifier.
This commit reverts the fix of JDK-8041928 and disables its regression tests.

(cherry picked from commit ba5209ec06)
2022-05-19 07:09:08 +03:00
Nikita Provotorov
4cb7993bc3 JBR-4207, IDEA-287559: IDEA incorrectly handles AltGr key modifier.
Renames the test AltGrMustGenerateAltGrModifierTest3838.java to AltGrMustGenerateAltGrModifierTest4207.java.

(cherry picked from commit ed60a9c2bd)
2022-05-19 07:09:07 +03:00
Maxim Kartashev
aaeddc288e JBR-4173 Tier1 test failures in jdk/javadoc/doclet/testModules
Introduction of JBR API changed the order of modules appearing in Java
Doc. This commit updates the corresponding tests to match the current
output with JBR API.

(cherry picked from commit 609406c21b)
2022-05-19 07:09:06 +03:00
Nikita Gubarkov
1001b0e3fc JBR-2567 Fix max file path buffer size for fontpath.c 2022-05-19 07:09:05 +03:00
Vitaly Provodin
b20a996ab6 exclude sun/security/pkcs11/Signature/TestDSAKeyLength.java on Ubuntu 21.04 due to 8279941 2022-05-19 07:09:04 +03:00
Anton Tarasov
39d8c3b53c JBR-4204 provide an option to disable a11y support on macOS
(cherry picked from commit ee3c56abdc)
2022-05-19 07:09:03 +03:00
Vitaly Provodin
5a22bb625d exclude two swing tests on Windows due to JBR-4197 2022-05-19 07:09:02 +03:00
Alexey Ushakov
70b7127e88 JBR-4112 macOS: SIGILL at [libsystem_kernel] __kill in OOME: Java heap space at java.awt.image.DataBufferInt.<init>
Removed double allocation of surface data
2022-05-19 07:09:01 +03:00
Alexey Ushakov
cf9a559126 JBR-4187 java/awt/GraphicsDevice/DisplayModes/UnknownRefrshRateTest.java.UnknownRefrshRateTest fails on mac
Constrained display modes count used by the test
2022-05-19 07:09:00 +03:00
Alexey Ushakov
d54ba106e4 JBR-4177 libc++abi: terminating with uncaught exception of type NSException
Added check for AppContext
2022-05-19 07:08:59 +03:00
Alexey Ushakov
14f3e62fd2 JBR-4174 java/awt/FullScreen/FullScreenInsets/FullScreenInsets.java fails on mac aarch64
Hide cursor to fix OGL&Metal Robot issue (it reads cursor image). Added tolerance to fix Metal Robot inaccuracy.
2022-05-19 07:08:58 +03:00
Artem Semenov
1b5b346df4 JBR-4167 [JCK] AccassibleJTree tests fail on Ubuntu 2022-05-19 07:08:57 +03:00
Alexey Ushakov
4bf1f5ea04 JBR-4164 IDEs cannot be launched via launch configuration
Moved execution of displayChanged() to EDT
2022-05-19 07:08:56 +03:00
Maxim Kartashev
82a2fff0e1 JBR-3917 Problem using windows certificate store (trustStoreType=Windows-ROOT not recognized) 2022-05-19 07:08:55 +03:00
Maxim Kartashev
6d37f9db68 JBR-4145 Make builds independent from build directory
Supplied the --disable-absolute-path-in-output option to the configure script
when building JBR.
2022-05-19 07:08:54 +03:00
Vitaly Provodin
6253e7b29a JBR-4154 extract version info from sources & JBR-4099 make test-image on jbrsdk_jcef step 2022-05-19 07:08:53 +03:00
Vitaly Provodin
dd96b0a5bd JBR-4169 add jdk.javadoc into JBR 2022-05-19 07:08:52 +03:00
Alexey Ushakov
c829adb1d1 JBR-4150 IDE regularly locks up at sun.lwawt.macosx.LWCToolkit.getScreenInsets
Restored caching screen insets. Added handling of dock resize.
2022-05-19 07:08:51 +03:00
Vitaly Provodin
a742b6706b exclude java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java on Wayland configs due to 8279256 2022-05-19 07:08:50 +03:00
Vitaly Provodin
ca1210902e exclude java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java on Scale2 configs due to 8279190 2022-05-19 07:08:49 +03:00
Vitaly Provodin
9018b69a07 exclude java/awt/FullScreen/UninitializedDisplayModeChangeTest/UninitializedDisplayModeChangeTest.java due to 827361 2022-05-19 07:08:48 +03:00
Vitaly Provodin
d3665a269b add exclude list for Wayland failures 2022-05-19 07:08:47 +03:00
Vitaly Provodin
03098fe238 exclude javax/swing/plaf/basic/BasicComboPopup/JComboBoxPopupLocation /JComboBoxPopupLocation.java on macOS due to 8194945 2022-05-19 07:08:45 +03:00
Vitaly Provodin
05d7e7e10d exclude sun/java2d/SunGraphics2D/EmptyClipRenderingTest.java on windows due to 8144029 2022-05-19 07:08:44 +03:00
Maxim Kartashev
3e5fef1e2e JBR-3948 Linux: SIGSEGV at [libawt_xawt] Java_sun_awt_X11_XInputMethod_createXICNative
The problem: the crashes occur in createStatusWindow() when calls like
adata->AwtColorMatch() end up going to 0x0 pc or some random inaccessible
memory. The only reason for that seems to be the
getDefaultConfig(screen) returning either NULL or garbage. That, in turn, probably
happens because of the wrong screen number provided. Before JBR-3623 was
fixed, awt_numScreens could've changed between the time the screen
number was chosen and the getDefaultConfig() call. After JBR-3623 was
fixed, this change is protected with the AWT lock, which this code
holds.
The fix: obtain the screen number via the Xlib API rather than the
ad-hoc loop though the root windows and return NULL if
getDefaultConfig() doesn't return useable data.

(cherry picked from commit 3d23e8d6a5)
2022-05-19 07:08:43 +03:00
Vitaly Provodin
f173e0aa17 add exclude list for Scale2 test runs 2022-05-19 07:08:42 +03:00
Vitaly Provodin
d7eced7a48 exclude java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java due to 8134231 2022-05-19 07:08:41 +03:00
Alexey Ushakov
a4bf19bba0 JBR-3773 M1 java/awt/Window/WindowAppearanceTest/WindowAppearanceTest.java: : Incorrect color java.awt.Color[r=75,g=74,b=72]at (140,5)
Added more variants of colors for unfocused and focused titles
2022-05-19 07:08:40 +03:00
Artem Semenov
ba2bac8b7e JBR-3775 Optimize the algorithm for obtaining tree elements 2022-05-19 07:08:39 +03:00
Nikita Gubarkov
c9bab6b5a4 JBR API v0.0.2
Added file dialog customization via JBR API & fixed bugs in windows common item dialog
2022-05-19 07:08:38 +03:00
Vitaly Provodin
b101e85cce JBR-3931 add the module jdk.unsupported.desktop into jbr
(cherry picked from commit 32def2fd42)
2022-05-19 07:08:37 +03:00
Alexey Ushakov
e7a23cc3f0 JBR-4111 [JBR17] Make possible to select files and directories independently
Implemented apple.awt.fileDialogForFiles property
2022-05-19 07:08:36 +03:00
Vitaly Provodin
236d346c16 enable fixed tests to regular runs 2022-05-19 07:08:35 +03:00
Vitaly Provodin
3227f1bbdb exclude javax/swing tests on mac-aarch64 due to 8277816 2022-05-19 07:08:34 +03:00
Aleksandr Veselov
4bc6552667 JBR-4107 A11y: macOS - wrong frame position if window is not on primary screen 2022-05-19 07:08:33 +03:00
Alexey Ushakov
70957e7f9a JBR-4060 [JBR17+Metal] Flickering on button's shadow
Removed unnecessary global flag. Optimized mask cache texture clearing code.
2022-05-19 07:08:32 +03:00
Alexey Ushakov
089babbab2 JBR-3954 Transparent text color rendering (needed for experimental UI)
Performed conversion from ARGB_PRE to ARGB in the grayscale text shader
2022-05-19 07:08:31 +03:00
Alexey Ushakov
02984f0f39 JBR-3872 [JBR17+Metal] Wrong color for scrollbars and inlay hints
Corrected typo in setTxtUniforms and fixed alpha blending in frag_gmc_text shader
2022-05-19 07:08:30 +03:00
Alexey Ushakov
25e6331887 JBR-3820 Gamma correction for grayscale text in Metal rendering pipeline
Implemented gamma correction using the same approach that we did for OGL grayscale text rendering (OGLTextRenderer.c)
Optimized shader performance
2022-05-19 07:08:29 +03:00
Alexey Ushakov
2ea05af060 JBR-4104 jbr-dev compilation failure
Corrected suppress warnings
2022-05-19 07:08:28 +03:00
Vitaly Provodin
010e99b154 JBR-4067 fix misprint with applying obsolete exclude_jcef_module.patch 2022-05-19 07:08:27 +03:00
Vitaly Provodin
3f942b734c JBR-3756 remove JNF from mac-aarch64 binaries 2022-05-19 07:08:26 +03:00
Vitaly Provodin
7ecf988e92 JBR-4082 create JBR & JBRSDK installer packages 2022-05-19 07:08:25 +03:00
Dmitry Batrak
b987c9077e JBR-4084 Default font '. AppleSystemUIFont' does not have bold weight on Chinese characters
(cherry picked from commit 4fde082d53)
2022-05-19 07:08:24 +03:00
Maxim Kartashev
b12e1a66c2 JBR-3899 SIGSEGV at [libjvm] _ZN23JfrNetworkInterfaceName11on_rotationEv
Prevent JfrNetworkInterfaceName::on_rotation() to dereference a
potentially NULL pointer.

(cherry picked from commit b2a9372d70)
2022-05-19 07:08:23 +03:00
Artem Semenov
455cb3ba49 JBR-4012 On Idea Vo often speeks selected element of tables, lists, and trees. 2022-05-19 07:08:22 +03:00
Maxim Kartashev
c59b1bdfb8 JBR-4061 Specify build user for the build 2022-05-19 07:08:21 +03:00
Maxim Kartashev
32f47d6c53 JBR-4063 macOS: update build scripts to produce more deterministic output
Make mkimages.sh produce more deterministic .tar.gz archives on MacOS.
NB: build notarization is not in the scope of this change.

(cherry picked from commit e1a1b6814d)
2022-05-19 07:08:20 +03:00
Maxim Kartashev
4496c43334 JBR-4033 Linux: update build scripts to produce more deterministic output
This commits achieves almost the same build output with the same build
input on Linux. Exceptions are:
- class files timestamps differ in jrt-fs.jar (for all output),
- class files timestamps differ in all the jmod files (for
  jbrsdk...tar.gz).
NB: jbrsdk...test...tar.gz does not need to be deterministic.

This was achieved mainly by
- setting several environment variables (SOURCE_DATE_EPOCH, TZ),
- providing the necessary options to the configure script,
- setting the timestamp of all files that make up the resulting
  archive to SORUCE_DATE_EPOCH and normalizing the list of said
  files before archiving.

(cherry picked from commit ffded82734)
2022-05-19 07:08:19 +03:00
Maxim Kartashev
adabc3bc27 JBR-4059 Create Dockerfile for building on AArch64 Linux 2022-05-19 07:08:18 +03:00
Dmitry Batrak
ecc9bc4edf JBR-4021 Unexpected focus event order on window showing
(cherry picked from commit 2a398ebb24)

includes fix for JBR-4131 Popup doesn't get focus if created from context menu

(cherry picked from commit 685562aafc)
2022-05-19 07:08:17 +03:00
Maxim Kartashev
d09a30be7c JBR-4020 Test ObsoleteFlagErrorMessage fails after +IgnoreUnrecognizedVMOptions has become the default
(cherry picked from commit ae5963a094)
2022-05-19 07:08:16 +03:00
Maxim Kartashev
fce40ad773 JBR-3923 Internal Error in c1_Instruction.cpp
Make C1 hotspot compiler bail out during CFG construction if there's a
cycle in the graph that isn't a natural loop and that has led to an
unexpected state of stack/locals like missing a phi function.

This is a temporary measure that lets hotspot continue working
even after encountering such bytecode patterns. The full solution
will probably involve more sophisticated CFG checks.

(cherry picked from commit aa0b61cb75)
2022-05-19 07:08:15 +03:00
Artem Semenov
f4588565fa JBR-3868 Combobox list is not voiced of VoiceOver 2022-05-19 07:08:14 +03:00
Vitaly Provodin
27d90cf13f exclude tests spontaneously creating windows during test execution 2022-05-19 07:08:13 +03:00
Maxim Kartashev
4b2d91cfb8 JBR-2755 IDE UI became slow via remote X Server connection from Windows
When XGetImage() calls become slow in a remote X11 session, fake
XGetImage() with client-side XCreateImage() that is filled with some
background color. The color is chosen from several top left corner
pixels of the "slow" images obtained with XGetImage().

This feature activates in a remote X11 session only and is
controlled with -Dremote.x11.workaround={true|false|auto}.
2022-05-19 07:08:12 +03:00
Alexey Ushakov
e6932dff74 JBR-3924 CMD+Tilda does not switch app windows
Introduced vm property to disable capturing of next app window shortcut
2022-05-19 07:08:11 +03:00
Nikita Gubarkov
8cd34dc83a JBR-2917 Added emoji support for Windows
JBR-3951 Pass real glyph type from native code instead of guessing it by rowBytes & width
2022-05-19 07:08:10 +03:00
Pavel
da777c3149 JBR-3926 make AwtComponent transparent for hit events by default
* JBR-3926 make AwtComponent transparent for hit events by default

* [WIP] pass hittest event to frame only if custom decoration is enabled and frame ready to handle it
(cherry picked from commit c0e26ff5d5)
2022-05-19 07:08:09 +03:00
Maxim Kartashev
29825d5fd7 JBR-3896 Abysmally slow input and UI performance since upgrade to IU-213.4928.7 from previous 2021.3 EAP version
The slowness was the result of XWM.getInsetsFromExtents() repeated
attempts to acquire frame extents from a property that under Sway is
simply unavailable. Each attempt added at least 20ms to every re-draw.

Prior to (repeatedly) checking for NET_FRAME_EXTENTS property of a
window, check that the property is supported by the window manager.

(cherry picked from commit b40cc1c791)
2022-05-19 07:08:08 +03:00
Anton Tarasov
cc01ed72bb JBR-3413 use timeout in CAccessibility.invokeAndWait
(cherry picked from commit e7009db076)
2022-05-19 07:08:07 +03:00
Maxim Kartashev
559da12106 JBR-3916 Deadlock in pGetBounds() on Linux
The deadlock occurred because one thread was holding the AWT lock and
waiting for boundsCacheLock in resetBoundsCache() and the other vice
versa stuck in pGetBounds() owning boundsCacheLock and waiting for the
AWT lock.

The solution is to get rid of boundsCacheLock altogether. It was
introduced in order to never return null from getBoundsCached() so that
resetBoundsCache() wouldn't interfere. But the same effect can be
achieved by simply using a local variable to hold a copy of the current
bounds. The worst case scenario now is that two threads update
boundsCached immediately one after another (if they both have observed
the null value there at about the same time), but that's harmless as
pGetBounds() grabs the AWT lock when necessary.

(cherry picked from commit dc6ad31524)
2022-05-19 07:08:06 +03:00
Vitaly Provodin
19e59fb291 JBR-3905 add incremental JBR building 2022-05-19 07:08:05 +03:00
Vitaly Provodin
ec62ccb7df JBR-3904 fix the image directory name of macos builds 2022-05-19 07:08:04 +03:00
Dmitry Batrak
af43efa8f8 log LWCToolkit invokeAndWait requests
as part of JBR-3017, to make investigation of similar issues simpler in the future

(cherry-picked from commit a7fd723e43)
2022-05-19 07:08:03 +03:00
Alexey Ushakov
f27aa5ffa3 JRE-202 Deadlock in CGLGraphicsConfig.getCGLConfigInfo
Added processing system events while waiting for OGLRenderQueue.lock
Moved getCGLConfigInfo logic execution to AppKit thread so, awt lock is
 taken on one thread

(cherry picked from commit d1c8bf03e1bd41cb075aa73cc39558103af7fe1a)
(cherry picked from commit 6bf9f31986be64acf3755b34568802f9960a66ec)
(cherry picked from commit 4e21d67e0369bffac45662c63699b39946218a7a)
2022-05-19 07:08:02 +03:00
Alexey Ushakov
df66e93471 JRE-193 UI freeze and 12/second thread dumps
Moved CStrikeDisposer dispose code to AppKit

(cherry picked from commit 28774d6878)
2022-05-19 07:08:01 +03:00
Alexander Lobas
f84935f40c JBR-3660 PhpStorm 2021.2 crashes on selecting iCloud Drive directory in Open dialog
(cherry picked from commit f5434bcaaf)
2022-05-19 07:08:00 +03:00
Alexander Lobas
2529be6175 JBR-3629 SIGILL at [libsystem_kernel] __kill NPE at com.intellij.openapi.options.SchemeImportUtil$1.isFileSelectable / -[CFileDialog askFilenameFilter:]
(cherry picked from commit 86c13ecaed)
2022-05-19 07:07:59 +03:00
Alexander Lobas
c54ceead6f JBR-3443 Native file dialog on OSX enable filename filter by VM option
(cherry-picked from commit f10e324538)
2022-05-19 07:07:58 +03:00
Alexander Lobas
19644feab7 JBR-3442 Native file dialog on OSX (for open file) doesn't allow pasting path
(cherry-picked from commit 7d8cc524ca)
2022-05-19 07:07:57 +03:00
Maxim Kartashev
50db1c37e9 Revert "JBR-2755 IDE UI became slow via remote X Server connection from Windows"
This reverts commit cd9138844da770ae60806fd7dbc1e85c773882a8.
2022-05-19 07:07:56 +03:00
Konstantin Aleev
b665aa569a fix memory leaks in AccessibleJTree
(cherry picked from commit 561a7b8def)
2022-05-19 07:07:55 +03:00
Maxim Kartashev
39c367127c JBR-3835 Cropped messages in all Message Dialogs in Idea on Ubuntu 18.04.5 LTS with swing alerts enabled
The _NET_FRAME_EXTENTS property that is used to obtain the initial
insets of a dialog window does not immediately get its value and may be
returned as 0 if queried too soon after the window creation.

In order to avoid (incorrect) guessing of dialog's insets, make 3
attempts at getting the insets with a small but increasing pause
in between them.
2022-05-19 07:07:54 +03:00
Maxim Kartashev
0fd7d75c12 Revert "JBR-3835 Cropped messages in all Message Dialogs in Idea on Ubuntu 18.04.5 LTS with swing alerts enabled"
This reverts commit 8e7aed70976ec0f90c736d86b9cd3e9cf09ff6d4.
2022-05-19 07:07:53 +03:00
Nikita Provotorov
c42dd1dba8 JBR-3838 AltGr on Polish keyboard triggers Ctrl+Alt shortcut.
Add regression test.

(cherry picked from commit 8df43eef4b)
2022-05-19 07:07:52 +03:00
Maxim Kartashev
e043b24c22 JBR-3835 Cropped messages in all Message Dialogs in Idea on Ubuntu 18.04.5 LTS with swing alerts enabled
The _NET_FRAME_EXTENTS property that is used to obtain the initial
insets of a dialog window does not immediately get its value and may be
returned as 0 if queried too soon after the window creation.

In order to avoid (incorrect) guessing of dialog's insets, add an
artificial delay if getInsets() is called too soon.
2022-05-19 07:07:51 +03:00
Vitaly Provodin
5b8b3afcf4 configure BOOT_JDK to use JDK 17 2022-05-19 07:07:50 +03:00
Alexey Ushakov
ce2ff93cbc JBR-3820 Gamma correction for grayscale text in Metal rendering pipeline
Added regression test to compare OGL and Metal text rendering
2022-05-19 07:07:49 +03:00
Artem Bochkarev
27bfeed7d8 JBR-1762: request focus of immediate parent when dispose popup
because requesting focus for frame-parent causes to close whole popup chain

(cherry picked from commit 7a2ccfc521)

JBR-1762: fixed review comments

(cherry picked from commit 0efbe5d9b9)
2022-05-19 07:07:48 +03:00
Dmitry Batrak
5d7fac9400 JBR-2759 Typeahead issue on Linux
(cherry picked from commits 76bdaf1131, b20c56ff3e)
2022-05-19 07:07:47 +03:00
Artem Bochkarev
21fb78bdb4 JBR-1762: request focus of immediate parent when dispose popup
because requesting focus for frame-parent causes to close whole popup chain

(cherry picked from commit 7a2ccfc521)

JBR-1762: fixed review comments

(cherry picked from commit 0efbe5d9b9)
2022-05-19 07:07:46 +03:00
Denis Fokin
6ca1224c4b JBR-1362 Multiple child windows opened and closed in sequence result in a focus loss
(cherry picked from commit 3c9c599a2d)
2022-05-19 07:07:45 +03:00
Nikita Gubarkov
421204d3ee Added JBR API 2022-05-19 07:07:44 +03:00
Maxim Kartashev
01487f80fa JBR-3813 Regression after fix for JBR-3688
1. Cached bounds and insets must be cloned before return because they
aren't immutable objects.
2. Fixed the deadlock in resetBoundsCache() by synchronizing on a dedicated
lock.

(cherry picked from commit cd5314db8b)
2022-05-19 07:07:43 +03:00
Renaud Paquay
af6fdd4aa9 Add BasicWithKeyFileAttributeView interface
This new interface is similar to `BasicFileAttributeView` except it
gives implementations a hint that the fileKey() should be acquired
even at some performance cost.

`FileTreeWalker` uses this new interface to request a file key
in addition to regular file attributes so that file equality can
be efficiently performed when checking for loops during file
tree traversal.

This makes `FileTreeWalker` about 2x faster when traversing non
trivial file system trees with the FOLLOW_LINKS option.

Change-Id: I8de047c8fc241dbab9ad57c5e361118a3a94893d

(AKA JBR-3680 Cherry-pick Google's NIO patches to get faster file listing)

(cherry picked from commit 6d1c3f06c4)
2022-05-19 07:07:42 +03:00
Ivan Migalev
ab6f389e49 JBR-3785: don't touch the active keyboard layout on input method activation / deactivation.
origin PR: github.com/JetBrains/JetBrainsRuntime/pull/78.

(cherry picked from commit 2f772fd1a2)
2022-05-19 07:07:41 +03:00
Dmitry Batrak
e8cfee24e5 JBR-3779 Unexpected Alt+Tab behaviour for Java frames on Cinnamon DE
(cherry picked from commit 0bf13985d5)
2022-05-19 07:07:40 +03:00
Maxim Kartashev
67bf95bde8 JBR-3688 PyCharm incredibly slow with fakexrandr
Cache screen bounds and insets and (conservatively) reset those caches
upon any possibility of a change.
This feature can be disabled with -Dx11.cache.screen.insets=false and
-Dx11.cache.screen.bounds=false.

Based on commit accef6f21e.
2022-05-19 07:07:39 +03:00
Maxim Kartashev
ae5bb430f1 JBR-3772 java/beans/PropertyEditor/TestFontClass.java: access denied ("java.util.PropertyPermission" "sun.awt.x11.trace" "read")
Instead of using System.getProperty() directly, wrap the call into
GetPropertyAction and use AccessController to execute it.
2022-05-19 07:07:38 +03:00
Anton Tarasov
61277576bc JBR-3655 [followup] jbr-dev build fails to find jcef modules on Windows 2022-05-19 07:07:37 +03:00
Dmitry Batrak
f4284ba913 JBR-3504 a11y focus is set on the wrong element when opening popups
(cherry-picked from commit a69e12e0d2)
2022-05-19 07:07:36 +03:00
Maxim Kartashev
110bf02a80 JBR-3665 Typing is slow in remote X session
Only call XGetKeyboardMapping() once for all valid codes and cache the
resulting table. Use the cache on the subsequent calls to
keycodeToKeysym().
2022-05-19 07:07:35 +03:00
Maxim Kartashev
ffdc792614 JBR-2273 JBR musl port
Detect if we're running on a musl-based system by checking for the presence
of the libgcompat.so glibc compatibility library in the process' map.
If so, java is re-started with LD_LIBRARY_PATH set to point to the right
directory with libjvm.so. This works around the problem with the musl
dynamic library loader.

(based on commit 13a904ddb5)
2022-05-19 07:07:34 +03:00
Alexey Ushakov
7fe116c37c Added support for otf into the build scripts. Updated prebuild maps.
Applied code from jbr-dev
2022-05-19 07:07:33 +03:00
Konstantin Bulenkov
c55e316431 bundle Inter font 2022-05-19 07:07:32 +03:00
Maxim Kartashev
fcf470dc8a JBR-3664 Logging for communications with X server
Introduced logging controlled with -Dsun.awt.x11.trace.
Currently, only looks at the AWT lock and reports methods holding it
sorted by average hold time.

(based on commit 792a58ea0e)
(based on commit 770b4dc9c1)
2022-05-19 07:07:31 +03:00
Dmitry Batrak
8d6cb943ec JBR-3726 Modal windows 'disappear' on minimize in KDE
(cherry picked from commits d9baf2d9db, 9c2841028f, 5c4fd9ceaf, f0ed32fca4)
2022-05-19 07:07:30 +03:00
Maxim Kartashev
24b060300d JBR-3712 Add project creation instructions to JBR README
Also changed the version of bootstrap Java to 17.
2022-05-19 07:07:29 +03:00
Maxim Kartashev
737528e66f JBR-3542 Fix -Xcheck:jni warnings
Fixes warnings coming from JBR-specific code in addition to those fixed
by 8269223.
2022-05-19 07:07:28 +03:00
Dmitry Batrak
5320a1c291 JBR-3706 Toggling full screen mode for two frames doesn't work on macOS if invoked without delay
(cherry picked from commit 28cfc4815f)
2022-05-19 07:07:27 +03:00
Dmitry Batrak
88c992737c JBR-3686 Background window steals focus when converted to full screen on macOS
(cherry-picked from commit 07a5b9672e)
2022-05-19 07:07:26 +03:00
Dmitry Batrak
b8537643c7 JBR-3662, JBR-3672 Focus jumps to another project tab after closing modal dialog
(cherry picked from commit bfd01081c3, 2a71dc5981)
2022-05-19 07:07:25 +03:00
Anton Tarasov
88639742f3 JBR-3655 jbr-dev build fails to find jcef modules on Windows 2022-05-19 07:07:24 +03:00
Nikita Gubarkov
b342916504 JBR-3648 Replace CacheCellInfo usages with MTLCacheCellInfo in metal rendering code 2022-05-19 07:07:23 +03:00
Dmitry Batrak
1aafd1bfe7 JBR-3642 java/awt/Window/8159168/SetShapeTest.java fails on macOS-x64 & macOS-aarch64
make sure jb/java/awt/Focus/Typeahead* tests still pass

includes fixes for JBR-3786 javax/swing/plaf/aqua/CustomComboBoxFocusTest.java fails on MacOS by timeout
(cherry picked from commit f5c5388fb5)

and JBR-4113 java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.java fails by time out on macOS

(cherry picked from commit d8d4c55a61)
2022-05-19 07:07:22 +03:00
Anton Tarasov
dc07973ab3 JBR-1834 [linux] runtime hidpi switch is broken
(cherry picked from commit eaa04303a7)
2022-05-19 07:07:21 +03:00
Anton Tarasov
02b7082683 JBR-1429 Scale is huge due to GDK_SCALE
(cherry-picked from commit 1c3477df2e)
2022-05-19 07:07:20 +03:00
Anton Tarasov
80e0d039a4 JBR-1365 force IDE-managed HiDPI on Linux for fractional scales
(cherry picked from commit f092ff3962)
2022-05-19 07:07:19 +03:00
Anton Tarasov
c56a015531 Allow HiDPI mode on Linux 2022-05-19 07:07:18 +03:00
Anton Tarasov
1c46b49586 JRE-489 -Dswing.bufferPerWindow is fractional scale unfriendly 2022-05-19 07:07:17 +03:00
Anton Tarasov
630ca5ae5e JRE-310 check for Windows8.1 when enabling ui scale
Was "don't fallback on fractional scale" in JBSDK9.
2022-05-19 07:07:16 +03:00
Maxim Kartashev
58175c2f31 JBR-3645 Tool to support keeping JBR in sync with OpenJDK 2022-05-19 07:07:15 +03:00
Vitaly Provodin
0246705911 JBR-3639 add jbrsdk tarballs for dcevm, jcef builds 2022-05-19 07:07:14 +03:00
Anton Tarasov
93392559de JBR-3627 include jmods in jbrsdk bundle for jbr-dev 2022-05-19 07:07:13 +03:00
Maxim Kartashev
e3359a8bde JBR-3597 Update project README for Java 17 2022-05-19 07:07:12 +03:00
Vitaly Provodin
7a93ea38d7 enabling dtrace-tests: added dtrace keyword
(cherry picked from commit 0b5119ca89)
2022-05-19 07:07:11 +03:00
Vitaly.Provodin
7312012183 add 32-sizes for native data types
(cherry picked from commit 3a79870da8)
2022-05-19 07:07:10 +03:00
Vitaly.Provodin
e900c813fa add dockerfile for x86
(cherry picked from commit 8fb2341ea8)
2022-05-19 07:07:09 +03:00
Maxim Kartashev
82d0760254 JBR-3323 Exclude parts of VM code from sanitizer checks
Exclude VM error-reporting code that treats memory as a raw sequence of
bytes from address sanitizer checks. This is needed to only get true
reports when running tests against the --enable-asan build.
2022-05-19 07:07:08 +03:00
Nikita Gubarkov
c76dcd253e Added Clion project setup 2022-05-19 07:07:07 +03:00
Nikita Gubarkov
dae94bf0b6 Added JBR-specific .idea project files 2022-05-19 07:07:06 +03:00
Nikita Gubarkov
65036d6c70 Updated IDEA project setup 2022-05-19 07:07:05 +03:00
Alexey Ushakov
d0229f637c JBR-3344 "Exit Full Screen" action doesn't work, the only way is mouse click on window's native "green" button.
Restored JBR-1931 fix partially reverted by JBR-1718

(cherry picked from commit c0be778e20)
2022-05-19 07:07:04 +03:00
Anton Tarasov
97d9c1f5b3 JBR-3337 jb/java/jcef/HandleJSQueryTest3314.sh: fails on macOS-aarch64 with "JS Query was not handled in 2nd opened browser"
(cherry picked from commit 8678f41971)
2022-05-19 07:07:03 +03:00
Anton Tarasov
a4038940bd JBR-3545 Window.setMinimumSize does not respect DPI scaling
(cherry picked from commit 9b4f72ad18)
2022-05-19 07:07:02 +03:00
Denis Fokin
e4d19f6624 JRE-408 JBR-3515 fix NullPointerException in MetalRootPaneUI.installWindowListeners
(cherry picked from commit 584d554af529cff445b0f09bc2d57be55e138b7a)
(cherry picked from commit 6a42bb54bd)
2022-05-19 07:07:01 +03:00
Alexey Ushakov
b699abfa9a JBR-2207 TitledBorder leaks PropertyChangeListener
Added a separate pass with sending setVisible(false) to the frames holding TitledBorder references in order to get WINDOW_DEACTIVATED (to clear KeyBoardFocusManager.activeWindow field)

(cherry picked from commit 3b03c698ce)
2022-05-19 07:07:00 +03:00
Elena Sayapina
09ab903f16 JBR-2657 [TESTBUG] ChainOfPopupsFocusTest misbehaving on Windows
- changed open popup shortcut from Ctrl+N to Ctrl+M, so no new explorer windows appear if desktop gets focused by error
- added a click on the main test frame, so it gets focus when running from background cygwin process on Windows, otherwise it just flashes on the taskbar

(cherry picked from commit eda8e4d50e)
2022-05-19 07:06:59 +03:00
Maxim Kartashev
59e06aa1c6 JBR-3590 Update JetBrains Runtime README 2022-05-19 07:06:58 +03:00
Maxim Kartashev
6c3be351c8 JBR-3572 Wayland: java/awt/Window/WindowTitleVisibleTest/WindowTitleVisibleTestLinuxGnome.java: title bar shown and hidden are the same.
Exclude the test when running under XWayland that doesn't implement
screen capture necessary for the test to function.
2022-05-19 07:06:57 +03:00
Denis Konoplev
a148825254 EA-252361: Check window for null
(cherry picked from commit 23a7dbd486)
2022-05-19 07:06:56 +03:00
Artem Bochkarev
c7327ea2f1 JBR-3131: support custom view for system menu items
(cherry picked from commit 78d509ac0f)
2022-05-19 07:06:55 +03:00
Artem Bochkarev
e63a4ddef7 JBR-3127: set NSWindowAllowsImplicitFullScreen=NO
fixed JBR-3127 Modal dialogs invoked from modal or floating dialogs are opened in full screen

(cherry picked from commit 0b8ff1a7e6)

JBR-3127: add possibility to load NSJavaVirtualMachine

JavaVM framework is deprecated but this class is still checked by AppKit, see https://youtrack.jetbrains.com/issue/JBR-3127#focus=Comments-27-4684465.0-0

(cherry picked from commit be6a2c4f0c)
2022-05-19 07:06:54 +03:00
Nikita Gubarkov
2641e41cb7 JBR-3376 Added check for -1 glyph info pointer in OGLTextRenderer.c 2022-05-19 07:06:53 +03:00
Dmitry Batrak
dae9e580c6 JBR-3024 Popups are shown with 1x1 size sometimes
test case only

(cherry picked part of commit ee298f5287)
2022-05-19 07:06:52 +03:00
Vitaly Provodin
7e7f8fb929 JBR-3314 add regression test
(cherry picked from commit c81adfed61)
2022-05-19 07:06:51 +03:00
Ivan Migalev
7ec5d46fda JBR-3227 Reload type of required native file dialogs each time a file dialog is requested
(cherry picked from commit 26dd87ab7c)
2022-05-19 07:06:50 +03:00
Vitaly Provodin
e3a6e5e68a JBR-1505 add jdk.jcmd module into JBR
(cherry picked from commit c40b9c8b9e)
2022-05-19 07:06:49 +03:00
Ivan Migalev
9b15417811 JBR-3068 Update path selector behavior when sun.awt.windows.useCommonItemDialog is enabled
(cherry picked from commit 442bb7eecc)
2022-05-19 07:06:48 +03:00
Alexey Ushakov
5041755a99 JBR-2996 M1 warnings: CoreText note: Client requested name “.SFCompact-Black”, it will get Times-Roman rather than the intended font
Cached system fonts family names

(cherry picked from commit 56629e4c90)
2022-05-19 07:06:47 +03:00
Alexey Ushakov
d65e1e6199 JBR-3023 Gray idea frame after project open with ide.mac.transparentTitleBarAppearance.
Initiate move/resize event on first appearance of window having FULL_WINDOW_CONTENT property set

(cherry picked from commit a6ea081ba2)
2022-05-19 07:06:46 +03:00
Dmitry Batrak
fd0f9e785a JBR-3017 Focus issue in presence of third-party accessibility tool
use the new invocation approach for 'makeKeyAndOrderFront' as well, as it can also cause synchronous back-calls to accessibility subsystem, and change the global call order unexpectedly

this commit fixes TypeaheadSetVisibleTest and TypeaheadToFrontTest, when they are run with AltTab active

Guard against possible deadlocks, if UI-related methods are invoked not on EDT.
Sample deadlock scenario:
* Application thread attempts to show the window, this involves calling CWrapper.NSWindow.makeKeyAndOrderFront under AWT tree lock, which blocks till 'makeKeyAndOrderFront' completes on AppKit thread
* AppKit thread, while executing 'makeKeyAndOrderFront' performs 'back-call' to CAccessibility.getFocusOwner, which waits for execution on EDT
* EDT performs some activity requiring AWT tree lock (e.g. processing of PaintEvent)

(cherry picked from commits e3aaff5db4, 09941119e1)
2022-05-19 07:06:45 +03:00
Dmitry Batrak
c5d2e66024 JBR-3072 Deadlock on nested dialog hiding
(cherry picked from commits 99242748ee, ad1595b5c2)
2022-05-19 07:06:44 +03:00
Dmitry Batrak
c61a292d69 fix occasional freezes of JBR-3017 reproducer after the fix
(cherry picked from commit 7e6db54f77)
2022-05-19 07:06:43 +03:00
Dmitry Batrak
ce88853e62 JBR-2819 Create API to determine typographic family/subfamily for available fonts
(cherry picked from commit 89e519a4ef)
2022-05-19 07:06:42 +03:00
Nikita Gubarkov
3273cabb7e JBR-2924 Do not try to create native italic font when we're going to make it fake italic 2022-05-19 07:06:41 +03:00
Nikita Gubarkov
2fcb5ed342 JBR-3982 Fixed non-antialiased text rendering on macOS
JBR-3269 Disabled subpixel antialiasing for macOS Mojave and newer
2022-05-19 07:06:40 +03:00
Dmitry Batrak
341798dab2 JBR-3017 Focus issue in presence of third-party accessibility tool
(cherry picked from commit 88ead5d9e3)
2022-05-19 07:06:39 +03:00
Vitaly Provodin
06ec1a7d3d JBR-1718 add a regression test
(cherry picked from commit 84ff4eab21)
2022-05-19 07:06:38 +03:00
Vitaly Provodin
6ce9101f18 JBR-2957 notarize JBR and JBRSDK as APPL
(cherry picked from commit 0e7f9ce4ca)
2022-05-19 07:06:37 +03:00
Elena Sayapina
23e8d10334 JBR-2890 [TESTUPDATE] Enable jcef tests on macOS aarch64 platform
(cherry picked from commit 1714d7b627)
2022-05-19 07:06:36 +03:00
Vitaly Provodin
cc5d82b423 JBR-667 add shenandoahgc feature
(cherry picked from commit e15dad04)
2022-05-19 07:06:35 +03:00
Artem Bochkarev
3888a98abb JBR-2562: fixed invokation of parent method
(cherry picked from commit 93cbab2f2d)

JBR-2562: suppress exceptions from [NSWindow _changeJustMain]

temporary workaround to prevent crashes

(cherry picked from commit dd055b5970)
2022-05-19 07:06:34 +03:00
Mikhail Grishchenko
4a6a419c63 JBR-2890 Disable jcef tests on 32-bit and aarch64 platforms
(cherry picked from commit d34d6528fe)
2022-05-19 07:06:33 +03:00
Alexey Ushakov
ea1a504618 JBR-2879 Big Sur: Opening project in new window results in opening project in another tab
Disabled Tabbing mode for all NSWindows

(cherry picked from commit 8cb0377a31)
2022-05-19 07:06:32 +03:00
Nikita Gubarkov
cd7f29298d JBR-2910 Implemented extended glyph cache for macOS
JBR-3976 Fixed text spacing & emoji scaling on macOS

JBR-3638 Adjust subpixel glyph positions for correct rounding in CStrike#getGlyphImageBounds
2022-05-19 07:06:31 +03:00
Alexey Ushakov
002a752f6d JBR-2617 Text with opacity renders black
Implemented alpha blending in grayscale text rendering (UX-1320)
Corrected bright text thickness (smooth on), bright and dark text thickness (smooth off)
Added JVM properties for fine tuning

(cherry picked from commit c30306f779)
(cherry picked from commit c95adeb8f2)
(cherry picked from commit 269c9580fb)
(cherry picked from commit 55c7be5fe9)
(cherry picked from commit e28ff71e97)
2022-05-19 07:06:30 +03:00
Alexey Ushakov
9be14a991b JBR-2521 Ugly font in all 2020.2 EAPs on macOS
Provide gamma correction for both light and dark text

(cherry picked from commit 5953202a7e)
2022-05-19 07:06:29 +03:00
Alexey Ushakov
3c4d5249b5 JBR-2591 Repainting is broken (was: Icons in tree list widgets became dark)
Save current blend mode before cached grayscale rendering

(cherry picked from commit 7beb75ccec)
(cherry picked from commit ed52fde57d)
2022-05-19 07:06:28 +03:00
Alexey Ushakov
56223d9dcf JBR-1986 Enabling fractional metrics causes visual artifacts in font rendering on macOS 10.14+
Disable subpixel positioning for macOS 10.13+ if legacy LCD rendering is disabled

(cherry picked from commit dbd24232e4)
2022-05-19 07:06:27 +03:00
Vitaly Provodin
359cb608e3 exclude bug7154030 on macosx-aarch64 due to 8268284 2022-05-19 07:06:26 +03:00
Vitaly Provodin
ef545d75c8 exclude SharedMemoryPixmapsTest on macosx-all due to 8221451 2022-05-19 07:06:25 +03:00
Vyacheslav Moklev
fefa85b0b0 JBR-2442 fix memory leak of fileBuffer
fix was suggested by Nikita Gubarkov
2022-05-19 07:06:24 +03:00
Andrey Starovoyt
f1d0d5aaae JBR-2736 provide writeObjects implementation for copying files/folders from Project Explorer to the Finder
(cherry picked from commit 33db034d49)
(cherry picked from commit d3ec3d899d)
2022-05-19 07:06:23 +03:00
Sergey Malenkov
e9af2fc5e7 EA-235126 - CME: HighlightableComponent.getPreferredSize
(cherry picked from commit 523d80cafd)
2022-05-19 07:06:22 +03:00
Kirill Kirichenko
34434c5b98 JBR-2667 Post review: rename win.darkTheme.on to win.lightTheme.on and reversed the logic
(cherry picked from commit eeab5252e6)
2022-05-19 07:06:21 +03:00
Kirill Kirichenko
34b14c1c8f JBR-2667 Add new AWT desktop property for light/dark theme detection on Windows 10
(cherry picked from commit 0e4ad056dd)
2022-05-19 07:06:20 +03:00
Alexey Ushakov
e1430b03c2 JBR-2593 Wide ligatures not rendered in Grayscale mode
Added missing flush of cached vertices

(cherry picked from commit ad409b4370)
2022-05-19 07:06:19 +03:00
Nikita Gubarkov
8da93b7543 JBR-2910 Implemented extended glyph cache for Linux 2022-05-19 07:06:17 +03:00
Nikita Gubarkov
349d85e2e1 JBR-2910 Implemented extended glyph cache for Windows 2022-05-19 07:06:16 +03:00
Nikita Gubarkov
c6c7a10040 JBR-2614 Fixed LCD glyph width to include both left & right padding, so that rowBytes = width * 3 2022-05-19 07:06:15 +03:00
Alexey Ushakov
da6c62b7cb JBR-2463 Font rendering problem on macOS Mojave
Use adjusted advances for glyphs

(cherry picked from commit 1af5dd4aae)
2022-05-19 07:06:14 +03:00
Denis Konoplev
4008772880 JBR-3544: Generate popup invoked instead of New in this directory 2022-05-19 07:06:13 +03:00
Vitaly Provodin
415423a428 JBR-2545 Clean up the list of ignored Render tests
(cherry picked from commit f7b4c42e1d)
2022-05-19 07:06:12 +03:00
Jayathirth D V
07dcb707c1 8241490: Add large text performance tests in RenderPerfTest
(cherry picked from commit 803ee2f2b5)
2022-05-19 07:06:11 +03:00
Alexey Ushakov
116ab4c1f7 8230657: Create fine grained render perf test for metal pipeline
Converted gradle JUnit test to plain java for ant and gnumake

To run the tests:
cd src/demo/share/java2d/RenderPerfTest

ant run
or
java -jar dist/RenderPerfTest.jar
or
java -jar dist/RenderPerfTest.jar testWhiteTextBubblesGray

(cherry picked from commit 356121b18f)
(cherry picked from commit 8bd8d2d132)
2022-05-19 07:06:10 +03:00
Konstantin Bulenkov
d87e9cc709 Update FiraCode to 5.2
(cherry picked from commit 71e2a8d8ad)
2022-05-19 07:06:09 +03:00
Alexey Ushakov
15b8c8e275 JBR-1929 Improve rendering of San Francisco font of macOS Catalina
Reverting gamma correction because of rendering artifacts in the light theme

This reverts commit 5016db51

(cherry picked from commit c1d644a004)
2022-05-19 07:06:08 +03:00
Alexey Ushakov
b4f7e968df JBR-1929 Improve rendering of San Francisco font of macOS Catalina
Added gamma correction to match grayscale rendering with subpixel one

(cherry picked from commit 5016db518a)
2022-05-19 07:06:07 +03:00
Alexey Ushakov
a3c22625ed JBR-2463 Font rendering problem on macOS Mojave
Use adjusted advances for glyphs

(cherry picked from commit 1af5dd4aae)
2022-05-19 07:06:07 +03:00
Anton Tarasov
aee9964b61 revert: JBR-1434 "New file dialog" popup remains above all windows on switching application
java.awt.peer.WindowPeer.isLightweightDialog() method does not exist.

(cherry picked from commit 7d8aeaf7de)
2022-05-19 07:06:06 +03:00
Anton Tarasov
da9db78775 JBR-2872 improve: JBR-2866 JCEF: Markdown editor steals focus from a different frame
(cherry picked from commit bad748e3d0)
2022-05-19 07:06:05 +03:00
Anton Tarasov
0351600ce2 JBR-2866 JCEF: Markdown editor steals focus from a different frame 2022-05-19 07:06:04 +03:00
Anton Tarasov
493b5447ed JBR-2645 enable CefBrowser.close(true) in jcef reg tests
(cherry picked from commit 492c217125)
2022-05-19 07:06:03 +03:00
Anton Tarasov
51b9c6bd3b JBR-2259 WebSite isn't loaded with .loadUrl method if browser isn't shown in UI
(cherry picked from commit 57bbddf071)
2022-05-19 07:06:02 +03:00
Anton Tarasov
252137c8ed JBR-2557 use com.jetbrains.cef.JCefAppConfig in JCEF tests
(cherry picked from commit e30a309f92)
2022-05-19 07:06:01 +03:00
Anton Tarasov
16d73385ce JBR-2489 Git branch operations (switch to another branch, rebase) sometimes crash WebStorm 202.5428.27
(cherry picked from commit 81d2156fb1)
2022-05-19 07:06:00 +03:00
Anton Tarasov
872acfd27d JBR-2282 [jcef] update to JCEF/80.0.4+g74f7b0c+chromium-80.0.3987.122
(cherry picked from commit a5adc725df)
2022-05-19 07:05:59 +03:00
Anton Tarasov
af2d7edced JBR-2305 jcef: jb/java/jcef/JCEFStartupTest.java throws java.lang.ExceptionInInitializerError
(cherry picked from commit f0385f01ec)
2022-05-19 07:05:58 +03:00
Anton Tarasov
39a5319671 JBR-2306 jcef: jb/java/jcef/JCEFStartupTest.java unexpectedly exits with the exit code: 0
(cherry picked from commit ff7d7bd43c)
2022-05-19 07:05:57 +03:00
Anton Tarasov
47122f9f52 JBR-2299 [mac] jcef requests for "chromium safe storage" keychain access
(cherry picked from commit dd1334a352)
2022-05-19 07:05:56 +03:00
Anton Tarasov
2419abf59f JBR-2222 Crash during closing IDE
(cherry picked from commit d0c367b31f)
2022-05-19 07:05:55 +03:00
Anton Tarasov
249581e2cc JBR-2287 [jcef] add CefBrowser wrapper to jtreg tests
(cherry picked from commit fa961d1769)
2022-05-19 07:05:54 +03:00
Anton Tarasov
be3544d94c JBR-2169 AWTThreading: remove tracked invocation event from completion listener
(cherry picked from commit a855f3b835)
2022-05-19 07:05:53 +03:00
Anton Tarasov
2ca7e9e5d8 JBR-2159 Native crash in thread AWT-EventQueue-0 when trying to push commit
(cherry picked from commit bba297b4a4)
2022-05-19 07:05:52 +03:00
Anton Tarasov
3592f6475d JBR-2148 JCEF: JBR bundle has invalid app structure
(cherry picked from commit f45f84d7ed)
2022-05-19 07:05:51 +03:00
Anton Tarasov
7cb9c37ad1 JBR-2146 improve InvokeOnToolkitHelper to cover more generic case 2022-05-19 07:05:50 +03:00
Anton Tarasov
2834a4ab6a JBR-2139 Idea freeze on dynamic plugin unloading
(cherry picked from commit e57bae4f66)
2022-05-19 07:05:49 +03:00
Anton Tarasov
50ec860b1e JBR-2099 jb/java/jcef/JCEFStartupTest.java fails on Windows, Linux
(cherry picked from commit 3dfb0aa16a)
2022-05-19 07:05:48 +03:00
Anton Tarasov
c27bdeea81 JBR-2093 create reg test for JCEF startup
(cherry picked from commit e8c2761f5b)
2022-05-19 07:05:47 +03:00
Anton Tarasov
0c606a07f3 JBR-2082 Revealing taskbar does not work when "Automatically hide the taskbar"
(cherry picked from commit b31a41fb2f)
2022-05-19 07:05:46 +03:00
Mikhail Grishchenko
f265decbc3 JBR-2639, JBR-2412 [jcef] Tests that checks mouse events
JBR-2412 [windows] mouse listener does not work for jcef

(cherry picked from commit 66ad6472ae)
(cherry picked from commit 04246aac57)
(cherry picked from commit b7cde4fd05)
2022-05-19 07:05:45 +03:00
Mikhail Grishchenko
1d4359868e JBR-2639 [win] jcef does not recognize vertical mouse wheel events
added regression test

(cherry picked from commit e8e4741bb0)
2022-05-19 07:05:44 +03:00
Mikhail Grishchenko
fd5816e95b JBR-2412 [windows] mouse listener does not work for jcef
added regression test

(cherry picked from commit d1479872f2)
2022-05-19 07:05:43 +03:00
Elena Sayapina
f538279263 JBR-2630 Typing speed in IDE editor was dropped after switching to 11.0.8
Introduced sun.awt.osx.RobotSafeDelayMillis property to control macOS specific safe delay for Robot methods.
50 ms safe delay was initially hardcoded in 3862142d (JDK-8242174: [macos] The NestedModelessDialogTest test make the macOS unstable) which affected performance tests execution.

(cherry picked from commit 5f691bb788)
2022-05-19 07:05:42 +03:00
Mikhail Grishchenko
bccf6aeaec JBR-2430 [jcef] Added Regression test
Checks that JS Query is handled in 2nd opened browser

(cherry picked from commit 404ff84565)

Refactoring + changed EDT awaiting method

(cherry picked from commit dc24658b31)
2022-05-19 07:05:41 +03:00
Vitaly Provodin
df4552a6b2 exclude the new printer test 8262731 2022-05-19 07:05:40 +03:00
Alexey Ushakov
eb4e3213e2 JBR-2419 Improve performance of CStrike.getNativeGlyphOutlineBounds
Do not pass the result via java object. Use more straight api.

(cherry picked from commit 9f91fe91f5)
(cherry picked from commit c0fd2daf5c)
2022-05-19 07:05:39 +03:00
Alexey Ushakov
c3c9dc9aab JBR-2382 Provide detailed stack trace in crash dumps for unhandled ObjC exceptions
Used user home dir for jbr_err files. Removed logging with reportException method

(cherry picked from commit 2c8cdb221b)

JBR-2382 Provide detailed stack trace in crash dumps for unhandled ObjC exceptions

Used process workdir for jbr_err files. Added one more logging to reportException method

(cherry picked from commit 95a47810d5)

JBR-2382 Provide detailed stack trace in crash dumps for unhandled ObjC exceptions

Generate jbr_err_pidXX.log file with detailed stack trace of the exception

(cherry picked from commit 4c42f75021)
2022-05-19 07:05:38 +03:00
Artem Bochkarev
a9ce03302e JBR-2253: unset LD_PRELOAD just after VM loaded
workaround for JBR-2253 Preload libjsig.so to fix JNA crashes

(cherry picked from commit 127a2deddf)
2022-05-19 07:05:37 +03:00
Kirill Kirichenko
68494f3c73 JBR-1874 Cursor not changing from 'default' to 'text'. Additional fix after reopening.
(cherry picked from commit 5a29d4ade9)
2022-05-19 07:05:36 +03:00
Elena Sayapina
c695532f8e JBR-2585 [TESTBUG] TouchScreenEvent tests affect tests simulating mouse actions
- added workaround for JBR-2585
- added README.md about manual test run
- made an update to close LinuxTouchScreenDevice properly
- added an error exit from linux shell script if sudo password is empty or chown fails

(cherry picked from commit 4deb3bbe61)
2022-05-19 07:05:35 +03:00
Denis Konoplev
e07b5825ee fixup! macOS national keyboard support
Remove unused import that broke compilation
2022-05-19 07:05:34 +03:00
Elena Sayapina
2e6d52e79f IDEA-165950 [TESTUPDATE] National keyboard layouts support
Update regression test after the following commits:

02fad83c: Remove public constants from KeyEvent
f4227faf: Impossible to assign cmd+ß shortcuts
(cherry picked from commit 264802cf4b)
2022-05-19 07:05:33 +03:00
Elena Sayapina
72bd2e5c6d JBR-2328 [TESTBUG] Regression test java/awt/keyboard/AllKeyCode/AllKeyCode.java is not correct
(cherry picked from commit 861f73c393)
(cherry picked from commit bfab6a9364)
(cherry picked from commit e9fa7a0882)
2022-05-19 07:05:32 +03:00
Mikhail Grishchenko
88c84cec01 JBR-2259 WebSite isn't loaded with .loadUrl method if browser isn't shown in UI
Added reproducer

(cherry picked from commit e875bf72c9)
2022-05-19 07:05:31 +03:00
Denis Konoplev
dc3502f378 JBR-2490 Add option to work with Surface Pen
(cherry picked from commit 5acc7680a1)
2022-05-19 07:05:30 +03:00
Denis Konoplev
d36bc6c8e4 JBR-2669: set unicode for both keyCode and extendedKeyCode
(cherry picked from commit ba3f14c83a)
2022-05-19 07:05:29 +03:00
Denis Konoplev
ed55f95441 JBR-2554: Proper unicode values in KeyEvent.keyCode
(cherry picked from commit 703d77a927)
2022-05-19 07:05:28 +03:00
Denis Konoplev
a5ab7dc412 JBR-215: Remove SystemInfo
(cherry picked from commit 9adf77a512)
2022-05-19 07:05:27 +03:00
Denis Konoplev
7ee1f5a9f9 JBR-215: Separate LatinNonAlphaNumKeycodes option
(cherry picked from commit caf366f6f3)
2022-05-19 07:05:26 +03:00
Denis Konoplev
1ff3795ebd JBR-215: Windows non-alphanumeric shortcuts
(cherry picked from commit 4f60efebe2)
2022-05-19 07:05:25 +03:00
Denis Konoplev
70337fb824 JBR-2280: Fix regression. Mode compatible with old option.
(cherry picked from commit a3e3c23cb1)
2022-05-19 07:05:24 +03:00
Denis Fokin
223e5e574c macOS national keyboard support 2022-05-19 07:05:23 +03:00
Sergey Malenkov
b6f4efcf1a JBR-1929 FractionalMetricsSupport
(cherry picked from commit bbdc159762)
2022-05-19 07:05:22 +03:00
Mikhail Grishchenko
75364c5768 JBR-2256 JEditorPane with test/html type and zero margins is not shown
Updated reproducer

(cherry picked from commit 529a188b8b)

JBR-2256 JEditorPane with test/html type and zero margins is not shown

Added reproducer

(cherry picked from commit 41578a40b5)
2022-05-19 07:05:21 +03:00
Mikhail Grishchenko
32c52c9e44 JBR-2210 IDEA fails to start (JVM crashes) when using the -Dfile.encoding=UTF-8in IDEA's vmoptions file
Added regression test

(cherry picked from commit 4e1f5a43b3)
2022-05-19 07:05:21 +03:00
Alexey Ushakov
aeb9ff368b JBR-2210 IDEA fails to start (JVM crashes) when using the -Dfile.encoding=UTF-8in IDEA's vmoptions file
Returning devanagari subset back for ja.UTF-8 to get non-null font name from WFontConfiguration.getTextComponentFontName(). It is a regression from JDK-8208179.

(cherry picked from commit b51254a975)
2022-05-19 07:05:20 +03:00
Mikhail Grishchenko
fb95f834cd JBR-1414 [Test] downscale frames to run on low-dpi screens
(cherry picked from commit b46e74fe6f)
2022-05-19 07:05:19 +03:00
Elena Sayapina
575533c036 JBR-1905 [TESBUG] java/awt/TextArea/DisposeTest/TestDispose.java: frame is not disposed
- java/awt/TextArea/DisposeTest/TestDispose.java, java/awt/TextField/DisposeTest/TestDispose.java: fixed test frame disposal
- java/awt/Frame/DisposeStressTest/DisposeStressTest.java: decreased test timeout from 2h to 10 min, added minor diagnostic logging

(cherry picked from commit 7f025f4e16)
(cherry picked from commit dda7f3d871)
(cherry picked from commit bc09aadadb)
2022-05-19 07:05:18 +03:00
Alexey Ushakov
c1c967040e JBR-2135 Use CoreText api to select the font with the most recent version
Added a property to force loading bundled fonts: -Djava2d.font.noVersionCheck=true

(cherry picked from commit cbb148dff4)
2022-05-19 07:05:17 +03:00
Alexey Ushakov
f647da07bf JBR-2137 JetBrainsMono fonts update to v1.0.3
(cherry picked from commit a6e441828a)
2022-05-19 07:05:16 +03:00
Mikhail Grishchenko
cf6136f5bd JBR-1414: Added regression test for dnd with HiDPI scaling
(cherry picked from commit 1f4ab12fbb)
2022-05-19 07:05:15 +03:00
Elena Sayapina
5dc1d3cc0b JBR-2041 [TEST] Added new regression test (Touchscreen devices support)
(cherry picked from commit 2d587b3728)
(cherry picked from commit 92606f2c7f)
(cherry picked from commit 05af375909)
(cherry picked from commit 0f895bf1b2)
(cherry picked from commit 08aa0852b7)
2022-05-19 07:05:14 +03:00
Konstantin Bulenkov
dcf038c079 Update JetBrains Mono to 1.0.2
(cherry picked from commit 6f4a13e46f)
2022-05-19 07:05:13 +03:00
Ivan Migalev
96a7004c36 Extract the DWM colorization parameters from registry (JBR-2070)
(cherry picked from commit 0330cab60b)
2022-05-19 07:05:12 +03:00
Ivan Migalev
14f5c5259d Refresh desktop properties on WM_DWMCOLORIZATIONCOLORCHANGED (JBR-2070)
(cherry picked from commit 06086f4a7e)
2022-05-19 07:05:11 +03:00
Ivan Migalev
161edcb094 Fix a possible resource leak in ColorizationColorAffectsBorders
(cherry picked from commit 0c911b6ffe)
2022-05-19 07:05:10 +03:00
Elena Sayapina
90b13d7c38 JBR-2086 JetBrainsMono fonts update to v1.0.1
(cherry picked from commit a4b373e631)
2022-05-19 07:05:09 +03:00
Konstantin Bulenkov
d7dd56c39d JetBrains Mono 1.0
(cherry picked from commit d514f7a982)
2022-05-19 07:05:08 +03:00
Denis Konoplev
0cf2c80b74 JBR-3444: Return NullSurfaceData when gc == null
(cherry picked from commit 01ad15e61c)
2022-05-19 07:05:07 +03:00
Denis Konoplev
1930c1a522 JBR-1995: Last character issue with korean
Fix for JTextComponent

(cherry picked from commit a7c8b0b535)
2022-05-19 07:05:06 +03:00
Denis Konoplev
a3f263b67c JBR-2891: Post PhaseEvents in the begin and end of Magnify and Rotate
(cherry picked from commit c811c295c2)
2022-05-19 07:05:05 +03:00
Denis Konoplev
5fd22bb7f9 JBR-2444: Turn on IM workaround by default
(cherry picked from commit 15c4ce1d3e)
2022-05-19 07:05:04 +03:00
Denis Konoplev
4551faa1e1 Fix build: add import & fix jwhen 2022-05-19 07:05:03 +03:00
Denis Konoplev
719bcb6bf6 JBR-2795: Add explicit conversion
(cherry picked from commit bf3e1c0c31)
2022-05-19 07:05:02 +03:00
Denis Konoplev
7e5bc51ee4 IDEA-237231: Correct signarute mask
(cherry picked from commit 6974131eec)
2022-05-19 07:05:01 +03:00
Denis Konoplev
6ee0c6b759 IDEA-237231: Possible fix for pen interraction
(cherry picked from commit 33a8c95d39)
2022-05-19 07:05:00 +03:00
Denis Konoplev
5734dd4e87 JBR-2347: Free memory on other exceptions, rethrow ThreadDead & log it
(cherry picked from commit 16ca839ed3)
2022-05-19 07:04:59 +03:00
Denis Konoplev
7b5312d79e JBR-2347: Don't free memory when thread is dead
(cherry picked from commit afb3303db5)
2022-05-19 07:04:58 +03:00
Denis Konoplev
d078dc8ea0 JBR-2041: Project view tap fix, recovery? constants & logging
(cherry picked from commit 1e904db3b0)
2022-05-19 07:04:57 +03:00
Denis Konoplev
b7c9602556 IDEA-229135: Fling animation stop on tap
(cherry picked from commit 7ce0f79561)
2022-05-19 07:04:56 +03:00
Denis Konoplev
1c01f23718 Windows touch screen support
(cherry picked from commit cab3f28907)
2022-05-19 07:04:55 +03:00
Denis Konoplev
cf40718dfd Turn off multitouch
(cherry picked from commit a2576ffa9a)
2022-05-19 07:04:54 +03:00
Denis Konoplev
d873f55a6f Check XInput extension && touch inertia
(cherry picked from commit cca7fb97f4)
2022-05-19 07:04:53 +03:00
Denis Konoplev
3d0ef371a9 Touch scroll handling
(cherry picked from commit 6dcec3dc31)
2022-05-19 07:04:52 +03:00
Denis Konoplev
21d986b44b XI2 Constants
(cherry picked from commit 588cd6ee73)
2022-05-19 07:04:51 +03:00
Denis Konoplev
e3ee81039a XLibWrapper XI2 functions
(cherry picked from commit d6bd1bfa2b)
2022-05-19 07:04:50 +03:00
Denis Konoplev
e641760434 X11 native get put double
(cherry picked from commit f101bc1108)
2022-05-19 07:04:49 +03:00
Denis Konoplev
ebc0924205 Native data types
(cherry picked from commit 9504574dbb)
2022-05-19 07:04:48 +03:00
Denis Konoplev
c518a55ac1 XI2 headers in xlib wrapper generator
(cherry picked from commit ef108067a1)
2022-05-19 07:04:47 +03:00
Denis Konoplev
9ab087f18f Revert "Turn off multitouch"
This reverts commit 90ea3bf57e4c687e9d9bf0a37f2f64c82a81f4eb.
2022-05-19 07:04:46 +03:00
Denis Konoplev
615c1969e3 Turn off multitouch
(cherry picked from commit a2576ffa9a)
2022-05-19 07:04:45 +03:00
Alexey Ushakov
076ee10391 JBR-1962 Allow to change font config
Replaced several privileged blocks with just one

(cherry picked from commit faa8d3d258)
2022-05-19 07:04:44 +03:00
Vitaly Provodin
08b6181954 JBR-572: Regression test on the crash caused by the fix
(cherry picked from commit 6cc380ffb5)
(cherry picked from commit 958e25ed21)
(cherry picked from commit a7de601d5f)
2022-05-19 07:04:43 +03:00
Dennis Ushakov
55788cf93c JBR-1863, JBR-1868 correct advances on Catalina 2022-05-19 07:04:42 +03:00
Dennis Ushakov
e5cc6ed5cb JBR-1850: on macOS fonts should be sorted by weight to ensure proper population of the families 2022-05-19 07:04:41 +03:00
Dennis Ushakov
4a5b1e6398 faster font family loading & lazy font family population
1. NSFont.familyName is faster than loading allFamilyNames
2. Prebuilt list of system fonts
3. Cleanup San Francisco family loading
4. Avoid calling expensive native getWidth on font when creating font family, load styles only when they would be used.
2022-05-19 07:04:40 +03:00
Dennis Ushakov
152fdf093e JBR-1756 use CoreText for all font rendering on Catalina 2022-05-19 07:04:39 +03:00
Nikita Gubarkov
d12af0f02c JBR-410 Added emoji support for Linux 2022-05-19 07:04:38 +03:00
Alexey Ushakov
2fd3f5a317 JBR-1997 JetBrainsMono fonts update to v0.22
(cherry picked from commit 41f4fddd34)
(cherry picked from commit f5302a02f4)
(cherry picked from commit 5d7fd2e1e5)
2022-05-19 07:04:37 +03:00
Anton Tarasov
1b7be44dca JRE-729 [windows] unreasonable IME activity consumes CPU 2022-05-19 07:04:36 +03:00
Dmitry Batrak
aa5421e080 JBR-3119 Application's panel in KDE taskbar blinks when popup window is shown
this re-fixes JBR-2934 in a different way

(cherry picked from commit 63134e091b)
2022-05-19 07:04:35 +03:00
Dmitry Batrak
79035799d3 JBR-3038 Unexpected windows z-order change on workspace switch
(cherry picked from commit ddda860f42)
2022-05-19 07:04:34 +03:00
Dmitry Batrak
16a1c8b542 JBR-3035 The Confirm Exit pop-up window remains hidden behind a window of another application
(cherry picked from commit 470c3bd1b5)
2022-05-19 07:04:33 +03:00
Dmitry Batrak
a9de2a6bd7 JBR-2934 Serious usability issue with GoLand 2020.3 caused by JBR
(cherry picked from commit 95be4351d4)
2022-05-19 07:04:32 +03:00
Dmitry Batrak
bd783573ef JBR-2977 Opening a recent project in a new window doesn't bring this window to the front
(cherry picked from commit 2d9fb9e7b8)
2022-05-19 07:04:31 +03:00
Dmitry Batrak
c487e8bfe1 JBR-2698 setAutoRequestFocus(false) breaks focus logic under i3 window manager on Linux
(cherry picked from commit ebcdeb7d80)
2022-05-19 07:04:30 +03:00
Dmitry Batrak
e04e53c9de JBR-2696 Log focus API invocations with stack traces
(cherry picked from commits 0f038754e5, a507cab6d3)
2022-05-19 07:04:29 +03:00
Dmitry Batrak
50df8736a3 JBR-2496 Prevent JVM stealing focus from other applications on Linux (JBR-2497, JBR-2499, JBR-2503, JBR-2652)
(cherry picked from commits 87525d1d2a, 66381f0dec, 8a789e04e9, 665ebc5d47, 98a9219c23)
2022-05-19 07:04:28 +03:00
Alexey Ushakov
f5fb54c6e5 JBR-3509 Extend JDK-8267521 (Post JEP 411 refactoring: maximum covering > 50K) to JBR specific changes
Marked all the usages of SecurityManager related api
2022-05-19 07:04:27 +03:00
Artem Bochkarev
d17d5bfc79 JBR-1851: check NSArray length
and make more exception-safe
and minor optimization for logging (cache jobjects)

(cherry picked from commit 5839539379)
2022-05-19 07:04:26 +03:00
Artem Bochkarev
50b834e3bd JBR-1841: allow deferred disabling of InputMethods-support
(cherry picked from commit 969255904b)
2022-05-19 07:04:25 +03:00
Artem Bochkarev
a40ecf38da JBR-1668: add hardcoded default values for preferences node NSServicesStatus
(cherry picked from commit 8445f53d85)
2022-05-19 07:04:24 +03:00
Artem Bochkarev
324c8751e1 JBR-1515: obtain shortcut from OS to check inside AWTView.performKeyEquivalent
(cherry picked from commit 30d479fbd4)
2022-05-19 07:04:23 +03:00
Artem Bochkarev
c423febaf1 JBR-1668: add hardcoded descriptions of system actions
and minor fixes

fix memory management

(cherry picked from commit 15f7368309)
2022-05-19 07:04:22 +03:00
Elena Sayapina
5999f823e9 JBR-1417 [TEST] Added new regression test (JBR 11 does not support chain of popups)
(cherry picked from commit 41e89505be)
(cherry picked from commit 9fe5c778d9)
(cherry picked from commit 6ea9530d9f)
(cherry picked from commit d757108517)
(cherry picked from commit b99c1e7b5c)
2022-05-19 07:04:21 +03:00
Alexey Ushakov
a526494945 JBR-1690 Bundle new fonts
Test correction
Restored RenderUtil.java
Removed obsolete golden images
(cherry picked from commits:
aa13c8b4ea
943b1472c7
cab6dd5087
7997c7a5ee
cab6dd5087
7997c7a5ee
d3731df79d)
2022-05-19 07:04:20 +03:00
Dmitry Batrak
c492096cf6 IDEA-257525 Unable to show Chinese when using IDEA mac ARM version
The proposed solution is to use a 'normal' font as a base for 'San Francisco' font fallback.
Most of its fallback components/candidates (provided by the OS) are expected to be normal
fonts as well, and so the resulting coverage of Unicode character repertoire should be much better.

(cherry picked from commits 9b7113a6cf, 92b00d50b5, 53489fab27)
2022-05-19 07:04:19 +03:00
Dmitry Batrak
e398e71c1b JRE-469 Console with emoji output becomes slow
The fix consists of two parts:
* Making CCharToGlyphMapper remember that a particular character cannot be displayed (isn't mapped to glyph with given font). Checking this repeatedly in native code is very slow.
* Make CCompositeGlyphMapper remember the results of char-to-glyph mapping, this was missing in previous implementation. This reuses caching code in CompositeGlyphMapper, extending the range of characters for which the results are cached to include Supplementary Multilingual Plane (most emoji characters belong to it).

port commit 4e0ccde2 from JBR 9

port from JBR 11 to JBR 15 (cherry picked from commit 394e055ae6)

cherry picked from commit 0db7e948af
2022-05-19 07:04:18 +03:00
Dmitry Batrak
7ee8a8dcff reimplement JDK-7162125 to fix JDK-8147002
port commit ba38e5c4 from JBR 9

port from JBR 11 to JBR 15(cherry picked from commit a949f9d220)

cherry-picked from commit f309844f75
2022-05-19 07:04:17 +03:00
Artem Bochkarev
9dbdf925c7 JBR-1771: fixed compilation errors (macosx-x86_64-normal-server-fastdebug)
(cherry picked from commit 1acada7cac)
2022-05-19 07:04:16 +03:00
Artem Bochkarev
25164aa310 JBR-1668: minor fixes
fixed review comments

(cherry picked from commit 9dbcf194c9)
2022-05-19 07:04:15 +03:00
Vitaly Provodin
f1935effb4 JBR-1618: fixed misprint, added saving screenshots in case of failure
(cherry picked from commit e4a3889cf0)
2022-05-19 07:04:15 +03:00
Alexey Ushakov
1de2363c83 JBR-1624 Fonts rendering is broken in the 2019.2 EAP (Fira Code)
Corrected lookup for bold fonts

(cherry picked from commit 114b8af38f)
2022-05-19 07:04:14 +03:00
Alexey Ushakov
c9a9aa2f38 JBR-1399 Improve font discovery and loading by introducing font cache
Added unit test

(cherry picked from commit b4f5bf8bd3)
2022-05-19 07:04:13 +03:00
Elena Sayapina
675a853f13 IDEA-165950 [TEST] Added new regression test (National keyboard layouts support)
(cherry picked from commit 0900a705bc)
2022-05-19 07:04:12 +03:00
Artem Bochkarev
cab6c00174 JBR-1668: read system keyboard shortcuts
initial support for OS X

(cherry picked from commit 6bbe7102e2)
2022-05-19 07:04:11 +03:00
Artem Bochkarev
6af0200407 JBR-1573: restore current input context after cleanup
(cherry picked from commit b7acd7f6f6)
2022-05-19 07:04:10 +03:00
Alexey Ushakov
b38adf88be JBR-1624 Fonts rendering is broken in the 2019.2 EAP (Fira Code)
Restored old behaviour of registerFontsInDir as it does not affect idea bundled fonts

(cherry picked from commit cef29e8100)
2022-05-19 07:04:09 +03:00
Alexey Ushakov
5d20b0dc7a JBR-1874 Cursor not changing from 'default' to 'text'
Prevent OS from changing cursor

(cherry picked from commit 94a4eb7002)
2022-05-19 07:04:08 +03:00
Alexey Ushakov
1170f540a1 JBR-1778 Font in editor incorrect (always italics)
Added -it pattern into italic detection code
Added some more patterns to bold and italic detection code
'Anka/Coder' font support

(cherry picked from commit 5119eeee12)
(cherry picked from commit ec241e4a0a)
(cherry picked from commit 251068294e)
(cherry picked from commit 08ae9ff034)
2022-05-19 07:04:07 +03:00
Alexey Ushakov
ca3ea8dd27 JBR-1699 Use platform font rendering for bundled fonts on MacOS
Use different family for specific font faces. Refactoring

JBR-3071 Remove naming workaround for Fira Code

(cherry picked from commits c423003bd4, aee4b48d20)
2022-05-19 07:04:06 +03:00
Alexey Ushakov
a396335b5f JBR-1624 Fonts rendering is broken in the 2019.2 EAP (Fira Code)
Lower priority for idea bundled fonts to pickup platform ones
(if installed)

(cherry picked from commit e838103a24)
2022-05-19 07:04:05 +03:00
Alexey Ushakov
a07edcf7e9 JBR-1885 JetBrainsMono fonts update to v0.19
Updated the fonts to v0.19. Bundled italic fonts

(cherry picked from commit 7f032e3fe7)
(cherry picked from commit a7b4c9449a)
2022-05-19 07:04:04 +03:00
Alexey Ushakov
8ad0d5a41f JBR-1624 Fonts rendering is broken in the 2019.2 EAP (Fira Code)
Lower priority for idea bundled fonts to pickup platform ones
(if installed)

(cherry picked from commit e838103a24)
2022-05-19 07:04:03 +03:00
Alexey Ushakov
19cb0501ae JBR-1699 Use platform font rendering for bundled fonts on MacOS
Used CFont instead of TrueTypeFont for bundled fonts on mac
Use different family for specific font faces. Refactoring

(cherry picked from commit 8c86ad3e96)
(cherry picked from commit c423003bd4)
(cherry picked from commit bcae402dc8)
2022-05-19 07:04:02 +03:00
Alexey Ushakov
b718a8f220 JBR-1690 Bundle new fonts
Update family name for JetBrainsMono-Thin

(cherry picked from commit 0d2326ff34)
(cherry picked from commit 83843f9124)
(cherry picked from commit 2a2e1cfb36)
(cherry picked from commit 76abb69262)
2022-05-19 07:04:01 +03:00
Alexey Ushakov
2adfb218e9 JBR-1645 javax/swing/JTextArea/TestTabSize.java: Tab width calculation wrong
Corrected idea font filter

(cherry picked from commit 62f9d1f46a)
2022-05-19 07:04:00 +03:00
Artem Bochkarev
66cb5eb504 JBR-1573: workaround for 'Sudden keyboard death on Ubuntu 18'
recreate instance of system InputMethod when starts filter all events

(cherry picked from commit 3ad94911af)

(cherry picked from commit c8533a1219)
2022-05-19 07:03:59 +03:00
Alexey Ushakov
041ada300b JBR-1399 Improve font discovery and loading by introducing font cache
Bundle IDEA fonts to improve startup performance

(cherry picked from commit 350a3fdef3)
2022-05-19 07:03:58 +03:00
Artem Bochkarev
878669ac61 JBR-1541: activate menu in completion handler of modal dialog
(cherry picked from commit e57384c1d6)
2022-05-19 07:03:57 +03:00
Alexey Ushakov
e46240e824 JBR-1314 Font difference in pycharm 2019.1 on Ubuntu
Removed disabling hints on MAX_FCSIZE_LTL_DISABLED font size

(cherry picked from commit 2b99dfed40)
2022-05-19 07:03:56 +03:00
Alexey Ushakov
cba605a128 JBR-1412 [fwp to JBR11] JBR-1393 RubyMine is hanging after log in (macOS)
Modified version of JBR8 fix

(cherry picked from commit 434166fe63)
2022-05-19 07:03:55 +03:00
Alexey Ushakov
1c8dadacc0 JBR-1394 JBR11 does not support LCD text on Mac
Enable LCD rendering for transparent destinations

(cherry picked from commit 207c6b92ff)
2022-05-19 07:03:54 +03:00
Elena Sayapina
4ef8acf927 JBR-1372: [TESTBUG] JDialog1054.java, MoveFocusShortcutTest.java regression tests need update
(cherry picked from commit a5948894bf)
2022-05-19 07:03:53 +03:00
Maxim Kartashev
5df6614408 JBR-2755 IDE UI became slow via remote X Server connection from Windows
When XGetImage() calls become slow in a remote X11 session, fake
XGetImage() with client-side XCreateImage() that is filled with some
background color. The color is chosen from several top left corner
pixels of the "slow" images obtained with XGetImage().

This feature activates in a remote X11 session only and is
controlled with -Dremote.x11.workaround={true|false|auto}.
2022-05-19 07:03:52 +03:00
Vyacheslav Moklev
14de04fe34 Fix const pointer after JDK-8225032 fix 2022-05-19 07:03:51 +03:00
Vyacheslav Moklev
e081d3a377 Fix compilation on windows platform: awt_ole.h must be included before awt.h 2022-05-19 07:03:50 +03:00
Vyacheslav Moklev
977c16a655 JBR-1269 Common Item Dialog does not appear on Alt+Tab or click in windows toolbar
JBR-1270 Common Item Dialog does not have an icon

Select a proper window handle
2022-05-19 07:03:49 +03:00
Vyacheslav Moklev
1869803113 JBR-1271 Wrong parent of native windows dialogs
Set a proper parent to a dialog window
2022-05-19 07:03:48 +03:00
Vyacheslav Moklev
8866b719e4 JBR-1273 Common Item Dialog does not open when wrong path to directory is passed
Handle set directory / set file properly
2022-05-19 07:03:47 +03:00
Vyacheslav Moklev
78a2b83c73 JBR-1274 Common Item Dialog sometimes crash the process
Prevent from freeing memory with CoTaskMemFree twice
2022-05-19 07:03:46 +03:00
Vyacheslav Moklev
d7af35d5d0 JBR-1257 CommonItemDialog modal window has no owner
Fix modality for Common Item Dialog

squash! JBR-1257 CommonItemDialog modal window has no owner

JBR-2478 java/awt/Modal/FileDialog/FileDialogNonModal7Test.java: DummyButton on Dialog did not gain focus when clicked

revert part of JBR-1271, that's related to 'old' file dialogs
2022-05-19 07:03:45 +03:00
Vyacheslav Moklev
9fc83e106f JBR-1258 CommonItemDialog ignores directory to open
Fix parsing of directory path / file path
2022-05-19 07:03:44 +03:00
Vyacheslav Moklev
f9f2d974ac JRE-1216 Implement Windows native file dialogs with the new Common Item Dialog API
Add implementation of file dialogs with the new Common Items Dialog API
2022-05-19 07:03:43 +03:00
Alexey Ushakov
5e9c07a7aa JBR-1144 [JDK11] [macos] Held down key is not deleted when press backspace after accent menu popup (Mojave)
Handled both Delete and ForwardDelete keys

(cherry picked from commit e3ba0bd651)
2022-05-19 07:03:42 +03:00
Alexey Ushakov
6a0dd01feb JBR-1144 [JDK11] [macos] Held down key is not deleted when press backspace after accent menu popup (Mojave)
Handled backspace separately

(cherry picked from commit 81916a92af)
2022-05-19 07:03:41 +03:00
Elena Sayapina
49dfacd16b JBR-1102: [TESTBUG] java/awt/Paint/ComponentIsNotDrawnAfterRemoveAddTest/ComponentIsNotDrawnAfterRemoveAddTest.java: 'paint' method of 60 components was not called
(cherry picked from commit dc7abebe17)
(cherry picked from commit c8d631a142)
2022-05-19 07:03:40 +03:00
Elena Sayapina
6772200b1f JBR-998: [TEST] Added new regression test (Input freezes after MacOS key-selector on Mojave)
(cherry picked from commit 3d898a8024)
(cherry picked from commit f368f0f101)
2022-05-19 07:03:39 +03:00
Elena Sayapina
f779d32dab JBR-318: [TEST] Added new regression test (Cmd+` doesn't work after update to JDK 152_*)
(cherry picked from commit 0be0a018b5)
(cherry picked from commit 5bb4c2a1d6)
2022-05-19 07:03:38 +03:00
Elena Sayapina
1c6cce5d08 JBR-1054: [TEST] Added new regression test (Weird non-modal dialog above modal dialog behaviour)
(cherry picked from commit b808be6a6a)
(cherry picked from commit 48b7dd874f)
2022-05-19 07:03:37 +03:00
Vitaly Provodin
79114843bb JRE-1117 J2DBench: introduced result reader for TC's charts (follow up)
separated printing values fo TC charts and values for comparisons

(cherry picked from commit bbdbe17e2a)
2022-05-19 07:03:36 +03:00
Vitaly Provodin
f533796da7 JRE-1117 J2DBench: introduced result reader for TC's charts
(cherry picked from commit 422fa59643)
2022-05-19 07:03:35 +03:00
Alexey Ushakov
19fe7a9124 JRE-60 Editor font is distorted on Kubuntu Linux 16.04 with HiDPI
Override FC_HINT_SLIGHT only for small font sizes

(cherry picked from commit 0e1d23c807)
2022-05-19 07:03:34 +03:00
Alexey Ushakov
6c68b84dba JRE-471 Crash on macOS Sierra after Sleep
Replaced [NSScreen screens] 'objectAtIndex' with 'firstObject' to get nil instead of NSRangeException. Added nil checks

(cherry picked from commit d6b98511262055c01522d9ec8024253af7e91564)
(cherry picked from commit cef970e1ba)
2022-05-19 07:03:33 +03:00
Alexey Ushakov
6eb5983f86 JRE-608 J2DBench metrics: up to 20x degradation
Increased rendering queue buffer up to 6.4 MB

(cherry picked from commit 9ef00f00a7fb6e14835393f8d3944157c6800727)
(cherry picked from commit 2a61e9e997a880a60c5acb361849205170501b91)
(cherry picked from commit 68ca9f00ded004c970b94bd047a04b9f09237047)
(cherry picked from commit 2fe5289178)
2022-05-19 07:03:32 +03:00
Alexey Ushakov
79bd03fb6e JRE-1028 fwport(9): JRE-1008 Do not use LCD shader on macOS 10.14+ in font rendering
Disable LCD text shader on macOS 10.14+ if LCD rendering is not explicitly specified

(cherry picked from commit dffea9d701)
2022-05-19 07:03:31 +03:00
Konstantin Bulenkov
a1f10c3443 update icons
(cherry picked from commit dfe387ff5037deda29d8d522cba6cc5370796ff4)
(cherry picked from commit de1e4a9d71)
2022-05-19 07:03:30 +03:00
Konstantin Bulenkov
142a035a06 add workspace.xml to gitignore
(cherry picked from commit bd5b9403fdca779ecc76f0b3af2918fe772f7ed1)

(cherry picked from commit 37e7661f85)
2022-05-19 07:03:29 +03:00
Vitaly Provodin
1ec87d2506 Update README.md 2022-05-19 07:03:28 +03:00
Vitaly Provodin
ddf6004cae Regression test on https://bugs.openjdk.java.net/browse/JDK-8139176
(cherry picked from commit 6f1c0a6)
(cherry picked from commit 63130fd461)

add regression test on https://bugs.openjdk.java.net/browse/JDK-8139176

(cherry picked from commit 380c17456c)

(cherry picked from commit 6f1c0a6)
(cherry picked from commit 63130fd461)
2022-05-19 07:03:27 +03:00
Vitaly Provodin
7859771d0a not for upstream: added disposing frames in order to provide the test with the chance on the second run
(cherry picked from commit 8170635)
(cherry picked from commit 7fc924f065)
2022-05-19 07:03:26 +03:00
Vitaly Provodin
6650139636 JRE-9: added regression test
(cherry picked from commit 4ffb665)
(cherry picked from commit 00a29ad129)
2022-05-19 07:03:25 +03:00
Sergey Malenkov
ef9e0f654e JRE-100 Scroll with inertia (Mac os) should only work in the initial component
(cherry picked from commit e79502c708)
2022-05-19 07:03:24 +03:00
Sergey Malenkov
2b33984acb IDEA-161965 ignore dragged event that does not change mouse location Sierra is more sensit
(cherry picked from commit ef490fa465)
2022-05-19 07:03:23 +03:00
Stanislav Dombrovsky
9229bceab7 Fix rendering of HTML list dots + better vertical align for them.
(cherry picked from commit fa4a404533ba1ef638fe523adc74391aee8a3ebf)

(cherry picked from commit 9f079c66e9)
2022-05-19 07:03:22 +03:00
Vitaly Provodin
f19e024d46 configure BOOT_JDK to use JDK 16 2022-05-19 07:03:21 +03:00
Dmitry Batrak
c7930898fe JBR-3353 Sibling popup window is shown below dialog on macOS
(cherry picked from commit 4c6f3e4510)
2022-05-19 07:03:20 +03:00
Dmitry Batrak
0cc958d51a JBR-3339 Window requests focus on horizontal scroll (on Linux)
(cherry picked from commit 8d74e8e30b)
2022-05-19 07:03:19 +03:00
Anton Tarasov
aa43bfcb7e JRE-166 [macOS] deadlock with JFXPanel
(cherry picked from commit a9dbb6990fac0c659297487a261ba9170e5fb3ad)

(cherry picked from commit 8a44e1bb37)
2022-05-19 07:03:18 +03:00
Alexey Ushakov
089f99a87e 8265445: Introduce the new client property for mac: apple.awt.windowAppearance
Implemented apple.awt.windowAppearance client property
2022-05-19 07:03:17 +03:00
Anton Tarasov
28a260ff2c JBR-3306 jbr-dev warnings: incompatible pointer to integer conversion returning 'void *' from a function with result type 'jlong' 2022-05-19 07:03:17 +03:00
Dmitry Batrak
fbf400b366 JBR-2498 Fix unexpected window raising under Mutter WM
re-implement the fix, so that ChildAlwaysOnTopTest isn't failing
2022-05-19 07:03:16 +03:00
Maxim Kartashev
6bdec42af6 JBR-3323 Improve sanitizer-enabled builds
Improve usability of builds with --enable-asan.
Add the --enable-usan option to build with Undefined Behavior Sanitizer.
2022-05-19 07:03:15 +03:00
Alexey Ushakov
7cf24c703a JBR-3327 [jbr-dev] Adjust mac window appearance according to AppleInterfaceStyle property
Set window appearance according to AppleInterfaceStyle default
2022-05-19 07:03:14 +03:00
Alexey Ushakov
f2e887cafb JRE-238 [736] java.awt.AWTError: access denied ("java.lang.RuntimePermission" "canInvokeInSystemThreadGroup")
Moved task execution on AppKit to the privileged block. Minor refactoring

(cherry picked from commit 5dbb88471115c9e4a536ae37d0e6794de9e5ac9c)
2022-05-19 07:03:13 +03:00
Alexey Ushakov
ecb0387ec5 JRE-359 CGraphicsEnvironment.getDefaultScreenDevice() returns null
Moved CG api calls to AppKit thread

(cherry picked from commit fd0210f035199e8612097a2c1d42b90cfd2111f8)
(cherry picked from commit 5e99e376d9dfe477401121878704630c3c13f9f7)

(cherry picked from commit 6d73b25130)
2022-05-19 07:03:12 +03:00
Dmitry Batrak
062b85bb4b JBR-2973 Copy/Move dialog not in the focus on drag-n-drop to Project Tool window from external application
(cherry picked from commit 20fe78b650)
2022-05-19 07:03:11 +03:00
Alexey Ushakov
f8d520fa38 JRE-444 CPlatformWindow.nativeGetTopmostPlatformWindowUnderMouse is slow
Replaced number of CGWindowListCopyWindowInfo for each window layer with [NSWindow windowNumberAtPoint: belowWindowWithWindowNumber:]

(cherry picked from commit 2a143af4d62340acdfd9c94d876f684385febbc8)
(cherry picked from commit 6fc369e8bf)
2022-05-19 07:03:10 +03:00
Alexey Ushakov
eadfebba3c JRE-482 Java_sun_font_CStrike_getNativeGlyphOutline takes too much time in scrolling
Replaced glyph outlines with bounding boxes for glyph boundaries calculation for most common usages. Also, skipped unnecessary OGL flushes in OGL rendering queue

(cherry picked from commit c58dc052af48887338a38beb0c721eddca3af481)
(cherry picked from commit 7f6be7cfb907bbf1c3572b911df5690fa3039fde)
(cherry picked from commit c68913d82c0ba4b4c509179123f0a4bf7971f857)
(cherry picked from commit 9cfa04c93ad416a8177d9e7ca410850bd3ff880f)
(cherry picked from commit 0e930841704e4e98ecc0c888b144245e74218799)
(cherry picked from commit 8ffc190fbdb059d5a24842115c0bc3ade8b351b9)
(cherry picked from commit 0f7c26186a)
2022-05-19 07:03:09 +03:00
Alexey Ushakov
0eda6f16f0 JBR-3316 Reimplement CThreading functionality on top of OpenJDK17 sourcebase
Adopted CThreading related code to OpenJDK17 source base

(cherry picked from commit 5dfb30ae68b2c54d58c98a9195709c031f823581)
(cherry picked from commit 94163bd69f64616836523e81567aa1141480d841)
2022-05-19 07:03:08 +03:00
Alexey Ushakov
dbe3bacc3b JBR-3304 jbr-dev warnings: 'getPhysFontName' defined but not used [-Werror=unused-function]
Removed unused code
2022-05-19 07:03:07 +03:00
Vitaly Provodin
3e013ea393 exclude javax/swing/JTabbedPane/4624207/bug4624207.java failing on windows due to 8197552 2022-05-19 07:03:06 +03:00
Alexey Ushakov
a5d0e4a688 JRE-366 Add support for Awesome WM
Added detection of Awesome WM and handled similar to Sawfish WM

(cherry picked from commit 6742077ed198975949af567e8ef543f853397351)
(cherry picked from commit 2847be73c6)
2022-05-19 07:03:05 +03:00
Alexey Ushakov
a3dc1c6390 JRE-353 Fedora 25 + XMonad rendering issues
Added support for Xmonad WM

(cherry picked from commit c690c3c7fdf1390e6b1a8d388ff752a09391ae3c)
(cherry picked from commit 6851dc3441)
2022-05-19 07:03:04 +03:00
Denis Konoplev
8ffbcb3194 8264143: Change uint8_t to unsigned char 2022-05-19 07:03:03 +03:00
Dmitry Batrak
b735b12b70 JBR-3255 Applying 'incline' transform might change character's advance
(cherry picked from commit b37f7cfdb1)
2022-05-19 07:03:02 +03:00
Dmitry Batrak
38ebab7175 JBR-3215 'deriveFont(float)' can return a different font (not just change the size)
(cherry picked from commit 8eafcaab24)
2022-05-19 07:03:01 +03:00
Dmitry Batrak
ac92b0f6e0 JBR-3157 Maximized window with custom decorations isn't focused on showing
(cherry picked from commit 62b04983f2)
2022-05-19 07:03:00 +03:00
Dmitry Batrak
029e13cc6e make AwtListGarbageCollectionTest pass reliably
(cherry picked from commit 304eb7f919)
2022-05-19 07:02:59 +03:00
Dmitry Batrak
2b763bc2db JBR-1752 Floating windows overlap modal dialogs
(cherry picked from commit 0161050077)
2022-05-19 07:02:58 +03:00
Dmitry Batrak
714786327b JBR-3054 Focus is not returned to frame after closing of second-level popup on Windows
(cherry picked from commit 0c2b6e1c04)
2022-05-19 07:02:57 +03:00
Dmitry Batrak
12aedc0a7b JBR-2702 Tooltips display through other applications on hover
(cherry picked from commits 11732c2469, 0ed7deabaa)
2022-05-19 07:02:56 +03:00
Dmitry Batrak
712b1d2c6a added RobotSmokeTest
this test failing in jtreg launch most probably indicates either some problem with the environment (e.g. some windows left open from previously launched processes) or with java.awt.Robot implementation

(cherry picked from commit 1d525a2d2f)
2022-05-19 07:02:55 +03:00
Dmitry Batrak
881f868351 JBR-2847 Always dispatch KEY_TYPED event to the same component as KEY_PRESSED event
also fixes JBR-2834, IDEA-254466, IDEA-254466
squashed with fixes for JBR-3291, JBR-3307, JBR-3598

(cherry picked from commits e94f6057a4, ba6b9c085e, 2ccf6b65a7, 3b0708af7d, 3674766d65)
2022-05-19 07:02:54 +03:00
Dmitry Batrak
614ac2958b JBR-2712 Typeahead mechanism doesn't work on Windows
(cherry picked from commits 1a9838082e, f5b6222835, acd7e3b2da, cd6dd5c3cf8556f97f3113cb7d615a92393b57bf(partially), e8bbd8ffdd90f57cd12d7d7e89188be97ee4be0b(partially), 37901295e1, cafb374afc)
2022-05-19 07:02:53 +03:00
Denis Konoplev
22ca0307c0 8264143: Lanai: RenderPerfTest.BgrSwBlitImage has artefacts on apple M1
Add stdint include to fix x64 build
2022-05-19 07:02:52 +03:00
Dmitry Batrak
61c09f85c3 JBR-2498 Fix unexpected window raising under Mutter WM
(cherry picked from commit 73b45fb899)
2022-05-19 07:02:52 +03:00
Dmitry Batrak
031a5fed3b JBR-2248 Support text wrapping in a <pre> tag in JEditorPane
port from JBR 11 to JBR 15 (cherry picked from commit ff2e915371)

cherry picked from commit 6a30c56138
2022-05-19 07:02:51 +03:00
Dmitry Batrak
0039b54753 JBR-2234 Support CSS setting overflow-wrap:anywhere in JEditorPane
port from JBR 11 to JBR 15 (cherry picked from commits b6583d0a71, 6003abc15f)

cherry picked from commit 93ad4f06dd

also includes JBR-4006 [JCK] javax.swing.text.html.CSS$Attribute.OVERFLOW_WRAP field breaks public API
(cherry picked from commit f20a3d8679)
and JBR-4007 [JCK] javax.swing.text.GlyphView.calcBreakSpots method breaks public API
(cherry picked from commit 1002eff4f3)
2022-05-19 07:02:50 +03:00
Dmitry Batrak
6ecaf73117 JBR-2050 Issue with keycap emojis
port from JBR 11 to JBR 15 (cherry picked from commit ae91e1d7f1)

cherry picked from commit d3018a1837
2022-05-19 07:02:49 +03:00
Dmitry Batrak
2253bbd397 JBR-1987 Korean/Thai characters not printed properly in annotation tooltip (e.g. spellchecker)
This changes the fonts JDK uses for font fallback on Windows. These used to be DokChampa (for Thai) and Batang/Gulim/Gulim (for Korean).
Those fonts are not available by default on Windows 10, user needs to install supplementary font language packs to get them.
Now the following fonts will be used - Tahoma (for Thai) and Malgun Gothic (for Korean). They are available by default
on Windows 7, 8 and 10.

port from JBR 11 to JBR 15 (cherry picked from commit 850653192b)

cherry picked from commit 2bf43a57ab
2022-05-19 07:02:48 +03:00
Dmitry Batrak
b4cbf7e41f JBR-1714 Italic text is displayed using incorrect glyphs on Windows
port from JBR 11 to JBR 15 (cherry picked from commits 46e4cdfcbd, 9cc5cbc99b)

cherry picked from commit 6769b27e53
2022-05-19 07:02:47 +03:00
Dmitry Batrak
1fd3b1e81a JBR-1689 Incorrect painting of long strings on linux
port from JBR 11 to JBR 15 (cherry picked from commits e12c1d6f0d, 0429e74e9d)

cherry picked from commit e43cfd198f
2022-05-19 07:02:46 +03:00
Dmitry Batrak
e010798a43 JBR-1248 Exception caused by broken font
port from JBR 11 to JBR 15 (cherry picked from commit 4efa7eab3e)

cherry picked from commit 6e1c514c6c
2022-05-19 07:02:45 +03:00
Dmitry Batrak
305c73940a JBR-1245 [JDK 11] There are different letter spacings in some controls
port from JBR 11 to JBR 15 (cherry picked from commit a26b70568a)

cherry picked from commit e2637199e9
2022-05-19 07:02:44 +03:00
Dmitry Batrak
28feded625 JRE-927 Unexpected wrapping of bidirectional text in JEditorPane on HiDPI screens
port commit 11a5a4a2 from JBR 9

port from JBR 11 to JBR 15 (cherry picked from commit 65a5e450d5)

cherry picked from commit 47ff31ae82
2022-05-19 07:02:43 +03:00
Dmitry Batrak
eef72b9d31 JRE-774 Don't paste BOM from clipboard on Mac
port commit ea9b75b3 from JBR 9

port from JBR 11 to JBR 15 (cherry picked from commit c6fed2cf58)

cherry picked from commit a5e25d1ef9
2022-05-19 07:02:42 +03:00
Dmitry Batrak
69041f2ede JRE-847 Box drawing characters have different widths with Monospaced font on Windows
port commit 778cef18 from JBR 9

port from JBR 11 to JBR 15 (cherry picked from commit 9caaac4a5a)

cherry picked from commit eea293f4a4
2022-05-19 07:02:41 +03:00
Dmitry Batrak
0f8ad06509 JRE-748 Strange dots with fractional metrics turned on
port commit 82e7c82d from JBR 9

port from JBR 11 to JBR 15 (cherry picked from commit e9bd5f5dad)

cherry picked from commit e0475e9ba2
2022-05-19 07:02:40 +03:00
Dmitry Batrak
d73cf970cd JRE-593 Wrong italic font rendering for Source Code Pro
port commit 1f6bd200 from JBR 9

port from JBR 11 to JBR 15 (cherry picked from commit 32ce109355)

cherry picked from commit 087ff34c2e
2022-05-19 07:02:39 +03:00
Dmitry Batrak
1b85d2e2c1 JRE-430 Font fallback sometimes doesn't work in Swing text components
port commit fc8003ad from JBR 9

port from JBR 11 to JBR 15 (cherry picked from commit 5b814d6b34)

cherry picked from commits b871188f44, 0a9f16dc90, 9cc82c39d9
2022-05-19 07:02:38 +03:00
Alexey Ushakov
889f3fc8b0 JRE-303 2017.1.1 update breaks linux fonts
Corrected rendering hints for Non-AA text rendering

(cherry picked from commit b923aa7a0729a10ea47d3438622d659fbead44c9)
(cherry picked from commit b6bdd04e41)
2022-05-19 07:02:37 +03:00
Alexey Ushakov
f04cbf15cc JRE-205 Font is wrong and without anti aliasing in 2017.1 EAP
Added property to disable bundled font config:
  java2d.font.loadFontConf=false
Do not load custom font.conf by default

Moved hints adjusting logic from code to bundled font.conf file
Applied correction only for regular fonts with platform sizes less than 12
Some fonts are not corrected at all: Consolas, Noto Sans Mono
Used family name instead of physical one in requests to Fontconfig
Removed redundant call to FcConfigBuildFonts
Added privileged access to the properties (JRE-235,JRE-235)

(cherry picked from commit 4d4c915047077ebd966b0e3be056566d56ba11a4)
(cherry picked from commit 9d6f325f72482405264852f3ee2636f5fedaeaf0)
(cherry picked from commit e7e3372bf8db539c0f6bc85db9f1093f8fa4c380)
(cherry picked from commit 3e724caed2f199be50d25d1ecb20b7819c86be2e)
(cherry picked from commit d372b35963c096a32331b05b257e26841ace5d94)
(cherry picked from commit 18a5f5de03eb107f89dca138a44b9aab2151235c)
(cherry picked from commit 9ba320efef0539f75aa93fd1b5dd80266c954d0a)
(cherry picked from commit b8c38f419972af61291953f7f452c1698f7a1624)
(cherry picked from commit debba0128e200be60adc9a339d5985590ef4e230)
(cherry picked from commit 2fa17b1bd7d6524e4b5fa4d0b3ce2bf02a8fcc78)
(cherry picked from commit 09b4f61db0d4f5beea0e16ce9136c99e2185c10b)
(cherry picked from commit 3b6782dd742f9c74a9535145db2f9f7ffaccf7c8)
(cherry picked from commit f1b68149528c13a22fa64468c130b1405bf3d081)
(cherry picked from commit db5cf5a2b9cb454630fb86783c2d58cd5446cba6)
(cherry picked from commit 32140948578bc3c2a0c5f8adb537660421efe5e7)
(cherry picked from commit b978e3d0b131ed642774c5a14a649e13f764c20b)

(cherry picked from commit c75c1ef8b2)

(cherry picked from commit a29f19e6a2)
2022-05-19 07:02:36 +03:00
Dmitry Batrak
a35cbab54a an option to disable native rendering for rotated text (following JRE-19)
port commit ccc1ded6 from JBR 9

port from JBR 11 to JBR 15 (cherry picked from commit 72fb9ff7c4)

cherry picked from commit a5bd092449
2022-05-19 07:02:35 +03:00
Dmitry Batrak
ded4c3a805 JRE-11 Support text rendering via DirectWrite API on Windows
port commits 7b180f8d, cccbcab4 from JBR 9

port from JBR 11 to JBR 15 (cherry picked from commit 030f15834c)

cherry picked from commit b16ee45915
2022-05-19 07:02:34 +03:00
Dmitry Batrak
8af99452e4 IDEA-150876 OpenJDK fonts for toolwindow names look worse than Oracles's
don't apply FreeType-returned glyph advance for rotated glyphs rendered by GDI

This seems to produce a better looking text (more evenly spaced). Fractional metrics won't be respected by this code, but we can address this later if needed.

port commits c9debd5e, ed78cd00, 4c7e1619, 7aa0429c, 7bd6c17c from JBR 9

port from JBR 11 to JBR 15 (cherry picked from commits d6b588bdab, dbc15fb84e)

cherry picked from commit 2c0d6150d0
2022-05-19 07:02:33 +03:00
Vitaly Provodin
c54cb76f48 JRE-186 added regression test (Modal dialogs (Messages) shouldn't popup IDEA when another application is active)
(cherry picked from commit 236bd38d1b)
2022-05-19 07:02:32 +03:00
Vitaly Provodin
2820c3a132 JRE-269 added regression (JLabel doesn't scale <code>text</code> HTML fragments.)
(cherry picked from commit 1f4ad38d23)
2022-05-19 07:02:31 +03:00
Alexey Ushakov
67741453dd JRE-307 Wrong dpi reported on Wayland
(cherry picked from commit 15693661cc)
2022-05-19 07:02:30 +03:00
Vitaly Provodin
dd485474b8 JRE-392 added regression (Tip of the day is not hidden while another modal window is shown)
(cherry picked from commit c7b0ac686f)
2022-05-19 07:02:29 +03:00
Vitaly Provodin
5b209082fc JRE-394 added regression test (System getenv doesn't return env var set in JNI code)
(cherry picked from commit 3a7b3c67b0)
2022-05-19 07:02:28 +03:00
Vitaly Provodin
1e9a4cbff5 JRE-401 added regression test (AppCode freezes during autocomplete and other operations)
(cherry picked from commit cb4453b1d1)
2022-05-19 07:02:27 +03:00
Vitaly Provodin
7c1710c397 JRE-422 added new regression test (AWTView deliverJavaMouseEvent leaks jEvent)
(cherry picked from commit 37dc13c603)
2022-05-19 07:02:27 +03:00
Vitaly Provodin
dd36898d29 JRE-430 added new regression test (Font fallback sometimes doesn't work in Swing text components)
(cherry picked from commit d04debc847)
2022-05-19 07:02:26 +03:00
Vitaly Provodin
c7a3ef9735 JRE-457 added new regression test (OGLTR_DisableGlyphModeState is slow)
(cherry picked from commit 3a43f4557f)
2022-05-19 07:02:25 +03:00
Vitaly Provodin
e34c3e6d49 JRE-458 added new regression test (Insufficient and inconsistent permissions on some files in Linux build)
(cherry picked from commit 82adbe9c25)
2022-05-19 07:02:24 +03:00
Vitaly Provodin
8314cfb6ff JRE-467 added new regression test (Wrong rendering of variation sequences)
(cherry picked from commit 0026095202)
2022-05-19 07:02:23 +03:00
Vitaly Provodin
ea402f6400 JRE-468 added new regression test (Idea freezes on project loading)
(cherry picked from commit 1ce8c3ce82)
2022-05-19 07:02:22 +03:00
Vitaly Provodin
f61306f103 JRE-501 added new regression test (Live resize is jerky for heavy java applications on Mac)
(cherry picked from commit c4a1277c1b)
2022-05-19 07:02:21 +03:00
Vitaly Provodin
7bd841ad63 JRE-638 added new regression test (enable unlimited cryptographic policy by default)
(cherry picked from commit 4a14c6f15a)
2022-05-19 07:02:20 +03:00
Vitaly Provodin
1afa9950ec JRE-705 added new regression test (Z-order of child windows is broken on Mac OS)
(cherry picked from commit 82cd480619)
2022-05-19 07:02:19 +03:00
Vitaly Provodin
31b014b46f JRE-624 CThreading isAppKit() fails to detect main app thread if it was renamed
(cherry picked from commit c8f248a936)
2022-05-19 07:02:18 +03:00
Alexey Ushakov
e9ace150c2 IDEA-166173 IntelliJ freezes when returning from sleep
Fixed deadlock by removing unnecessary getScreenResolution call

(cherry picked from commit cec93cf1fd)
2022-05-19 07:02:17 +03:00
Alexey Ushakov
d4a677eddd Added missing fontconfig defines
(cherry picked from commit 2ac273a456)
2022-05-19 07:02:16 +03:00
Alexey Ushakov
cb4751a503 JRE-43 Font.getFamily() does not work in headless mode
Removed unused code

(cherry picked from commit 5b523f049e)
2022-05-19 07:02:15 +03:00
Alexey Ushakov
940158e839 JRE-43 Font.getFamily() does not work in headless mode
Bundled Droid fonts to fallback in headless mode

(cherry picked from commit 5b523f049e)
2022-05-19 07:02:14 +03:00
Alexey Ushakov
894b8b3e57 JRE-15 Greyscale text is too dark comparing with subpixel AA
Adjusted default value for greyscale text rendering in freetype

(cherry picked from commit f80497c4f0)
2022-05-19 07:02:13 +03:00
Alexey Ushakov
a64e1c8caa IDEA-155347 On Ubuntu with High DPI tooltip font is too thick when the tooltip is fading in and out
Handled missing FC_RGBA_NONE value

(cherry picked from commit 44fcbdabf8)
2022-05-19 07:02:12 +03:00
Alexey Ushakov
c73774592d IDEA-149882 Issue with fonts in Ubuntu 12.04
Provided fallback to default font rendering settings if libfontconfig unable to
match font pattern

(cherry picked from commit d93a5f1598)
2022-05-19 07:02:11 +03:00
Alexey Ushakov
75063bc723 IDEA-151619 CLion EAP fails to start with missing symbol: FT_Library_setLcdFilter
Skip FT_Library_setLcdFilter call if the symbol is not there
Cache negative FT_Library_setLcdFilter symbol lookup result
Used RTLD_DEFAULT handler for process symbols lookup

(cherry picked from commit e6f0055704)
2022-05-19 07:02:10 +03:00
Alexey Ushakov
98486d61c4 JRE-29 fontconfig lib crashes CLion on OSX
Disabled fontconfig usage on OSX

(cherry picked from commit 431e14429c)
2022-05-19 07:02:09 +03:00
Vitaly Provodin
ac96fb1eed exclude tests spontaneously creating windows during test execution 2022-05-19 07:02:08 +03:00
Alexey Ushakov
d7fadd6b3e JRE-48 built-in jre renders fonts abnormally heavier (normal text looks bold) than the oracle jre
Disable FT_LOAD_TARGET_LIGHT for fonts with FC_AUTOHINT=false (this target implicitly enables  FC_AUTOHINT)
Reused setupLoadRenderFlags for all rendering cases

(cherry picked from commit f3f2667a4c)
2022-05-19 07:02:07 +03:00
Alexey Ushakov
24ed737be8 Added logging for freetypeScaler via env variable OPENJDK_LOG_FFS=yes
and for screen resolution in freetypeScaler

(cherry picked from commit 091d74a791)
2022-05-19 07:02:06 +03:00
Alexey Ushakov
9e02e60b0a JRE-34 IDE Crashes During Startup
Added validation of dpi settings coming from xserver

(cherry picked from commit b1c49c3b27)
2022-05-19 07:02:05 +03:00
Anton Tarasov
a9fc4d33bd Add build.gradle 2022-05-19 07:02:04 +03:00
Anton Tarasov
94c54bd1b3 JBR-2031 [mac] jcef deadlocks with a11y on start
(cherry picked from commit 4f44b37f08)
2022-05-19 07:02:03 +03:00
Alexey Ushakov
780c1a62d0 JRE-1083 [JDK11] Test com/sun/java/accessibility/util/8051626/Bug8051626.java fails on macOS on JB JDK11b
Wrapped SelectorPerformer invocation into privileged action

(cherry picked from commit 48e7b547ae)
2022-05-19 07:02:02 +03:00
Anton Tarasov
99336afe7e JBR-2019 provide getWindowHandle method for jcef
(cherry picked from commit 7ae706b629)
2022-05-19 07:02:02 +03:00
Anton Tarasov
ec63c30ea5 Comment assertion (originally JRE-965)
The assert line crashes debug hotspot.

(cherry picked from commit a00074a86c)
2022-05-19 07:02:01 +03:00
Anton Tarasov
d51bda5d92 JBR-1976 [jcef] need mouse-transparent window on Windows
(cherry picked from commit b60fac96b4)
2022-05-19 07:02:00 +03:00
Anton Tarasov
4bb019d30e JBR-1824 export NSWindow::setIgnoresMouseEvents to java internal API
(cherry picked from commit 4399dc382c)
2022-05-19 07:01:59 +03:00
Anton Tarasov
6621c84968 JBR-1802 com/sun/java/accessibility/util/8051626/Bug8051626.java: access denied ("java.lang.RuntimePermission" "getClassLoader")
(cherry picked from commit eae772aca9)
2022-05-19 07:01:58 +03:00
Anton Tarasov
2531acf964 JBR-1795 Project opened from Welcome screen goes to backgound after loading
(cherry picked from commit 322526458a)
2022-05-19 07:01:57 +03:00
Anton Tarasov
30c554440c JBR-1609 Jupyter Notebook eventually causes IDEA to become unresponsive on Mac OSX
(cherry picked from commit 8ae0be8eb6)
2022-05-19 07:01:56 +03:00
Anton Tarasov
88b9a6f550 JBR-1786 Weird white border for IDE window
(cherry picked from commit 4b09614a0e)
2022-05-19 07:01:55 +03:00
Vyacheslav Moklev
ca91e735d9 JBR-1552 Invalid screen bounds in full screen mode
Check is window is not in undecorated state

(cherry picked from commit 5547701e2c)
2022-05-19 07:01:54 +03:00
Vyacheslav Moklev
a264ddf39e JBR-1509 Client area size is wrong in Borderless mode
Fix client area size

(cherry picked from commit 00d32e58dc)
2022-05-19 07:01:53 +03:00
Anton Tarasov
36acc32afc JBR-1770 [windows] frame does not open as maximized
(cherry picked from commit d9dfc3c6c5)
2022-05-19 07:01:52 +03:00
Anton Tarasov
7398db3cc4 JBR-1693 difficult to input Japanese text with "Fast" Key Repeat
(cherry picked from commit 12de3e287e)
2022-05-19 07:01:51 +03:00
Anton Tarasov
4df15c3f22 JBR-1669 IDE-managed HiDPI mode is broken
(cherry picked from commit 461b0b5cd4)
2022-05-19 07:01:50 +03:00
Anton Tarasov
32c5f8befe JBR-1650 propagate custom decoration title bar height to native
(cherry picked from commit f6fc65d014)
2022-05-19 07:01:49 +03:00
Anton Tarasov
43aeeae095 JBR-1629 Maximized window cut at the right and bottom
(cherry picked from commit 9e768377db)
2022-05-19 07:01:48 +03:00
Anton Tarasov
5a6eff6272 JBR-1492 Not able to start Intellij Idea 2017.2.5 with modified vmoptions
(cherry picked from commit e7ca6db66b)
2022-05-19 07:01:47 +03:00
Anton Tarasov
94da600c98 JBR-1427 pycharm jupyter preview stuck and no response when click on preview.
(cherry picked from commit 1746b04686)
2022-05-19 07:01:46 +03:00
Anton Tarasov
531aeae4f6 IDEA-210154 Borderless UI: Top frame of IDEA window is blue
(cherry picked from commit 2dd4163bc4)
2022-05-19 07:01:45 +03:00
Anton Tarasov
7e7fa6ce35 JBR-1351 Borderless UI: Bold frame around IDEA window appears on non-HiDPI display
(cherry picked from commit 06d35de069)
2022-05-19 07:01:44 +03:00
Anton Tarasov
ea0a559f41 JBR-1313 wrong insets for non-resizable custom-decorated frame
(cherry picked from commit 9179718cb6)
2022-05-19 07:01:44 +03:00
Anton Tarasov
e612eb5bec JBR-1293 do not modify client bounds when custom-decorated frame is set undecorated
(cherry picked from commit cb188edaab)
2022-05-19 07:01:43 +03:00
Anton Tarasov
f47c8b9350 JBR-1278 allow native border and shadow for custom decoration mode
(cherry picked from commit a879ad5739)
2022-05-19 07:01:42 +03:00
Anton Tarasov
52a6dc1044 JRE-1232 forwardport: JRE-1228 support custom frame decoration
(cherry picked from commit d2820524a1)
2022-05-19 07:01:41 +03:00
Anton Tarasov
ffc5037be1 JRE-1162 [jdk11] support on-the-fly DPI change on linux
(cherry picked from commit c06c4c69d3)
2022-05-19 07:01:40 +03:00
Anton Tarasov
53c78737ee JRE-1142 [jdk11] hidpi is not detected since Ubuntu 18.04
(cherry picked from commit be4f8c0d9d)
2022-05-19 07:01:39 +03:00
Anton Tarasov
71058c1a16 JRE-1111 [JDK11] java/beans/Beans/TypoInBeanDescription.java crashes at libawt_xawt.so+0x4a30d
(cherry picked from commit b89e6aed0b)
2022-05-19 07:01:38 +03:00
Anton Tarasov
a5b1609995 fix JNI_OnUnload definition
(cherry picked from the commit  3571e39071)

(cherry picked from commit 1019d8f0f2)
2022-05-19 07:01:37 +03:00
Anton Tarasov
86628738ba JRE-981 IM workaround does not work anymore
forward port of 2d7c29b in JetBrains/jdk8u_jdk

(cherry picked from commit f3ccc53e02)
2022-05-19 07:01:36 +03:00
Anton Tarasov
11cd1774b0 JRE-938 [windows] Frame.setMaximizedBounds not hidpi-aware
(cherry picked from commit cc97899923320e1fa17f5e44975c4a0f0ba51014)
(cherry picked from commit ccfe65be7f)
2022-05-19 07:01:35 +03:00
Anton Tarasov
63cbda4d02 JRE-907 macOS: add ability to check for scaled display mode
(cherry picked from commit e496262aa1)
2022-05-19 07:01:34 +03:00
Anton Tarasov
5c4fd45d4a JRE-934 Diff viewer errors are not visible on HiDPI Linux
(cherry picked from commit 641a09dd52)
2022-05-19 07:01:33 +03:00
Anton Tarasov
e6a29413c5 [jdk9] HiDPI scale is not detected on some linux desktops
(cherry picked from commit 9279d80110)
2022-05-19 07:01:32 +03:00
Anton Tarasov
ae8e5b9ef1 JRE-681 [windows] direct drawing into frame graphics may have wrong translate
(cherry picked from commit 6ea1d45fd1)
2022-05-19 07:01:31 +03:00
Anton Tarasov
024179b152 Read org.gnome.desktop.interface/scaling-factor
(cherry picked from commit 277357ae73)
2022-05-19 07:01:30 +03:00
Anton Tarasov
05bec4e772 Revert "8239894: Xserver crashes when the wrong high refresh rate is used"
This code is needed for "Read org.gnome.desktop.interface/scaling-factor".
Keep it until "JDK-8260270 Implement the HiDPI scale factor reading" is fixed.

This reverts commit a7c2ebc7
2022-05-19 07:01:29 +03:00
Anton Tarasov
e5d717b1cd Do not scale base font in HiDPI mode on Linux
(cherry picked from commit 6fb2c36529)
2022-05-19 07:01:28 +03:00
Anton Tarasov
62608f9423 JRE-772 swing returns incorrect FRC when AA is off
(cherry picked from commit a161897d908aa10da6306c06452c5d6317fed2f0)
(cherry picked from commit 2bf5a7ca5c)
2022-05-19 07:01:27 +03:00
Anton Tarasov
eeb9827503 JRE-681 [windows] direct drawing into frame graphics may have wrong translate
(cherry picked from commit ab6dee4c1fc453ad3cb5adb69fc243e550d184ae)

(cherry picked from commit 6ea1d45fd1)
2022-05-19 07:01:26 +03:00
Anton Tarasov
63b196f0ab JRE-665 Navigate Class/File/Symbol, Find in Path popup windows don't pick characters from input method
(cherry picked from commit 676f305b2b3b278e305bd4d9bde4269f27b3d676)
(cherry picked from commit 6ce31e0a32)
2022-05-19 07:01:26 +03:00
Anton Tarasov
836b052e3d JRE-616 [linux] notify when dpi correction factor is applied to fonts
(cherry picked from commit f57d41f3118bfd773c99ce32d58cfae16931be6a)
(cherry picked from commit 6246abc72f)
2022-05-19 07:01:25 +03:00
Anton Tarasov
3c18104627 JRE-612 [windows] icon in frame title is not dpi-aware
(cherry picked from commit dec04385177a2abb677add909d3b94f94c62a14e)

(cherry picked from commit 38466cbab0)
2022-05-19 07:01:24 +03:00
Anton Tarasov
2a18615966 JRE-604 [fps] frame's client area is one pixel beneath frame's borders
Adopted.

(cherry picked from commit ef2870ee38)
2022-05-19 07:01:23 +03:00
Anton Tarasov
ca4df92d0b JRE-596 [windows] popup positioning is broken with JRE-573
Adopted: moved to AwtWindow::Reshape

(cherry picked from commit c5cc28d85d)
2022-05-19 07:01:22 +03:00
Anton Tarasov
ee3b8e14e3 JRE-577 Goland 18 displays out of memory
(cherry picked from commit 2daaf21e420d4af15d3b1bfeb3f896074bea1e61)

(cherry picked from commit 9ea2011948)
2022-05-19 07:01:21 +03:00
Anton Tarasov
2e5e9a1f8e JRE-573 [windows] window client area bounds mismatch
Apply only WmEraseBkgnd

(cherry picked from commit afa68f7ad6440303c6417be3f675b1c4644b6014)

(cherry picked from commit 0651b45e13)
2022-05-19 07:01:20 +03:00
Anton Tarasov
bf143d432a JRE-382 Three AWT-tests become hanging starting since master-875
(cherry picked from commit 7d492101db8fcbb3d285fd8e9669f74b0e0fce8f)
(cherry picked from commit b965f85c1b)
2022-05-19 07:01:19 +03:00
Anton Tarasov
8a6246c232 JRE-373 [macos] nativeCreateNSWindow deadlocks with a11y
(cherry picked from commit 72c77a992bbf1b95b82ffc08cb2f4f3bc36b3657)

(cherry picked from commit aa09fa2c85)
2022-05-19 07:01:18 +03:00
Anton Tarasov
f818f449ef IDEA-172422 Popup at the wrong place on the second monitor (new hidpi)
Adopted: moved to AwtWindow::Reshape

(cherry picked from commit 11a0911d65)
2022-05-19 07:01:17 +03:00
Anton Tarasov
82bf66adb6 JRE-309 [windows] on-screen position of a component is not pixel-perfect in user space in JRE-HiDPI mode
Adopted: moved to AwtWindow::Reshape

(cherry picked from commit 985908cf10)
2022-05-19 07:01:16 +03:00
Anton Tarasov
802d336db4 JRE-269 JLabel doesn't scale <code>text</code> HTML fragments.
(cherry picked from commit 9ef72b6c3a477e4225f9b98e30fa9190613520e4)
(cherry picked from commit c17bc728ee)
2022-05-19 07:01:15 +03:00
Anton Tarasov
aa73e158bf JRE-225 [macos] IDEA hangs on attempt to call getDefaultScreenDevice() from EDT
(cherry picked from commit 76aba25)

(cherry picked from commit df11dcc97bb5556ac5d0299b773a512b4f0bb5bb)
(cherry picked from commit aeea6c1ca3)
2022-05-19 07:01:14 +03:00
Anton Tarasov
8a44458f3b JRE-210 JEditorPane may return wrong preferred size as it moves b/w monitors of different scale
(cherry picked from commit 6c3087e6bda32ae9b095e069d8bea614502f5c03)
(cherry picked from commit adb3a4be16)
2022-05-19 07:01:13 +03:00
Anton Tarasov
00b57307ae JRE-119 [suppress updateGC() for WFileDialogPeer/WPrintDialogPeer]
updateGC() is called from WWindowPeer.<init> though it's not applicable to the named dialogs
as they don't have native AwtWindow peer required for the method.

(cherry picked from commit 72ed9f653177e273b811cfe70c2dba102a8636e4)
(cherry picked from commit cec49aaa38)
2022-05-19 07:01:12 +03:00
Anton Tarasov
8e6f83ea88 JRE-119 [use default "sun.java2d.dpiaware=true" to be dpi-aware on Window 7]
This lets awt_Win32GraphicsEnv.cpp SetProcessDPIAwareProperty() call Win7 specific ::SetProcessDPIAware() API func.

(cherry picked from commit 5e7a766090810d839f4352d06fc2812499d766f8)
(cherry picked from commit 7d1d43bfa1)
2022-05-19 07:01:11 +03:00
Anton Tarasov
b785d0d6e4 JRE-119 [Dynamically set DPI-awareness level to enable backward compatible HiDPI behavior]
Adopted: rely on java.manifest

(cherry picked from commit d00cfa4dc62a14a4cf89df9d4c4899970c9fc9e8)

Adopted

(cherry picked from commit 60be76b725)
2022-05-19 07:01:10 +03:00
Anton Tarasov
fda0616cde JRE-119 [ask if ui scale is enabled natively]
(cherry picked from commit 801f45875fd8699edcbda5896210cec191062261)
(cherry picked from commit 20edebdefa)
2022-05-19 07:01:09 +03:00
Anton Tarasov
8e8c6a3ffa IDEA-153474 let JDK detect Xft.dpi value on non-GTK Linux DEs
Use the GTK method:

https://developer.gnome.org/gobject/stable/gobject-The-Base-Object-Type.html#g-object-get

to retrieve "gtk-xft-dpi" integer property of the X settings.

Add the property to JDK's GtkEngine & gtk2-interface.
Then read the property via GtkEngine from GTK LaF when "gnome.Xft/dpi" is undefined. It's assumed GTK LaF is forcedly installed.

(cherry picked from commit e05fc391ae0a3cc389e836441f882c0cf6ab3b99)
(cherry picked from commit fd615a5b45)
2022-05-19 07:01:09 +03:00
Anton Tarasov
9cf0d75119 IDEA-148854: AppCode crashes randomly every 15 mins or so
(cherry picked from commit 02f9a5fbb4924ff67c8a04c15e490acfcc750003)
(cherry picked from commit b8f4b4a9ed)
2022-05-19 07:01:08 +03:00
Vitaly Provodin
34dd9901df updated JTreg exclude list 2022-05-19 07:01:07 +03:00
Alexey Ushakov
9b498c9733 IDEA-57233, IDEA-152816, IDEA-152454 Editor font antialising/appearance problems on Linux
Used desktop DPI instead of hard-coded 72
Compensated increased glyph bitmap size by adjusting font size
Added LCD filter for sub-pixel rendering
Use fontconfig library to provide right rendering options for fonts
Corrected sizes passed to fontconfig library and hinting disabling policy
Added logging and versioned fontconfig lib loading
Resolved font rendering problem in lenses
fix text rendering issues (text cutoff and incorrect rendering in editor fragment components)
FcMatchFont-type pattern substitutions shouldn't be invoked before specific font is selected - it can apply unrelated rules
port commit e21cd635 from JBR 9
partially rollback JBR-363 fix, to apply corresponding change from OpenJDK 12

(cherry picked from commit 5d704a963b)
(cherry picked from commit 3d7ac30072)
(cherry picked from commit 0456745afb)
(cherry picked from commit 3d7ac30072)
(cherry picked from commit 4c8351fecf)
(cherry picked from commit 5faebc73d5)
(cherry picked from commit d1ed8ab118)
2022-05-19 07:01:06 +03:00
Vitaly Provodin
a5317df922 JBR-3401 enable macos-aarhc64 builds 2022-05-19 07:01:05 +03:00
Vitaly Provodin
99ed62413d JBR-3305 remove the option --disable-warnings-as-errors from configure 2022-05-19 07:01:04 +03:00
Vitaly Provodin
fe99e6aedb JBR-3398 remove the Experimental AOT and JIT Compiler (JEP 410) 2022-05-19 07:01:03 +03:00
Alexey Ushakov
7741bc8cab JBR-2807: JDK15: update modules.list to resolve jbr build failure
removed nashorn modules
2022-05-19 07:01:02 +03:00
Vitaly Provodin
29ae971f27 JBR-2130 remove module jdk.pack 2022-05-19 07:01:01 +03:00
Vitaly Provodin
c41089fed2 JBR-2922 add JCEF to jbrsdk binaries
& fix a misprint in get_mods_list

JBR-2922 add JCEF to jbrsdk binaries

& fix a misprint in get_mods_list
2022-05-19 07:01:00 +03:00
Vitaly Provodin
47fc66cab5 JBR-2912 add JBR 15 builds with DCEVM 2022-05-19 07:00:59 +03:00
Vitaly Provodin
2309985682 JBR-2864 initial commit of DCEVM patches reworked for 15 2022-05-19 07:00:58 +03:00
Vitaly Provodin
376db446b0 JBR-2812 remove --with-import-modules from configure for aarch64 2022-05-19 07:00:57 +03:00
Anton Tarasov
5bec514638 JBR-2812 bundle jcef in jmod format instead of modular-sdk
Build test-image with non-jcef build target
2022-05-19 07:00:56 +03:00
Vitaly Provodin
e13903fc6b JBR-2787 fix copying jcef files into jbr/jbrsdk binaries 2022-05-19 07:00:55 +03:00
Vitaly Provodin
4571069b15 JBR-2758 refactor building scripts to apply patches adding required modules instead of excluding
Add jogl and gluegen modules to support jcef osr mode
2022-05-19 07:00:54 +03:00
Anton Tarasov
5db1b520a6 JBR-2016 add jcef module and export packages to it
(cherry picked from commit cf997f71c6)
2022-05-19 07:00:53 +03:00
Vitaly Provodin
cc71d74789 JBR-2473 modify building scripts to add dcevm clauses, add git config to docker image
(cherry picked from commit 2620c62848)
2022-05-19 07:00:52 +03:00
Vitaly Provodin
8953585629 JBR-2473 add initial set of DCEVM patches
(cherry picked from commit c0c0a96cf4)
2022-05-19 07:00:51 +03:00
Vitaly Provodin
703e2c9d33 JBR-2395 eliminate JavaFX from JBR 2022-05-19 07:00:50 +03:00
Vitaly Provodin
4727380532 JBR-2409 fix prameters for configure 2022-05-19 07:00:49 +03:00
Vitaly Provodin
ab750bcdee JDK14: exclude dependencies on jcef in x86, fastdebug builds 2022-05-19 07:00:49 +03:00
Vitaly Provodin
936b98f205 JBR-2396 fix CONF names 2022-05-19 07:00:48 +03:00
Vitaly Provodin
590f851e0a JBR-2394 replace --disable-debug-symbols with --with-native-debug-symbols=none 2022-05-19 07:00:47 +03:00
Vitaly Provodin
c53424ffa0 add exec permitions to configure 2022-05-19 07:00:46 +03:00
Vitaly Provodin
bbddcb8445 split checkout before building JBR+JFX or JBR+JCEF on two separate commands 2022-05-19 07:00:45 +03:00
Vitaly Provodin
a2f6c16ad0 change BOOT_JDK, fix target names 2022-05-19 07:00:44 +03:00
Vitaly Provodin
7c51e46024 JBR-2291 add vendor info into bundles 2022-05-19 07:00:43 +03:00
Vitaly Provodin
adfe179199 JBR-2324 address new layout in mac jcef 80.0.4+g74f7b0c+chromium-80.0.3987.122 2022-05-19 07:00:42 +03:00
Vitaly Provodin
cd7549fdde JBR-2320 add jdk.attach module into JBR 2022-05-19 07:00:41 +03:00
Vitaly Provodin
d43cd01b2a JBR-2217 provide JCEF-only (no JavaFX) bundle for master/202 branches 2022-05-19 07:00:40 +03:00
Vitaly Provodin
76d68cd292 JBR-2212 add scripts for linux_x86, linux_aarch64, linux_x64_fastdebug, osx_fastdebug, windows_x86 2022-05-19 07:00:39 +03:00
Vitaly Provodin
4978036e32 JBR-1643 fix intermittent fialures of Windows builds at make/Init.gmk:304
combine images and test-image into one make invocation
2022-05-19 07:00:38 +03:00
Vitaly Provodin
87b7a51f0b JBR-2181 create two separate JBR bundles with JFX and JFX+JCEF 2022-05-19 07:00:37 +03:00
Vitaly Provodin
597eff0eb1 JBR-2148 modify signapp&build scripts to match to the new layout 2022-05-19 07:00:36 +03:00
Vitaly Provodin
3a5249c379 JBR-2084 modify scripts to sign Contents/MacOS/libjli.dylib as a a normal file 2022-05-19 07:00:35 +03:00
Vitaly Provodin
e49c2e1545 JBR-1821 notarize JBR bundles as a standalone app 2022-05-19 07:00:34 +03:00
Vitaly Provodin
1cb1dbeec3 JBR-2162 move building scripts from TC to JBR repo 2022-05-19 07:00:33 +03:00
Anton Tarasov
89c1a36182 JBR-2016 add jcef module and export some sun.* packages to it 2022-05-19 07:00:32 +03:00
Vitaly Provodin
0d2e4bf3c1 JBR-2014 add jdk.hotspot.agent module to jbr 2022-05-19 07:00:31 +03:00
Vitaly Provodin
bb22a061ab JBR-1286 add jdk.compiler into JBR 2022-05-19 07:00:31 +03:00
Vitaly Provodin
bd80e3654c JBR-1199 add JBR modules list for jlink 2022-05-19 07:00:30 +03:00
Vitaly Provodin
88823564ee Update docker script to create jdk15 build env 2022-05-19 07:00:29 +03:00
Vitaly Provodin
39b44fa2d6 JBR-3045 add pressing ESC to close the dialog after test completion
(cherry picked from commit 44d8b28b0b)
2022-05-19 07:00:28 +03:00
Vitaly Provodin
6267a25530 JBR-3040 press the button END at the beggining in order to avoid text selection
(cherry picked from commit 1c2bf33db2)
2022-05-19 07:00:27 +03:00
Vitaly.Provodin
e200115525 updated JTreg exclude list 2022-05-19 07:00:26 +03:00
Brian Burkhalter
2a2d54e8a6 8286984: (ch) Problem list java/nio/channels/FileChannel/LargeMapTest.java on Windows
Reviewed-by: dholmes
2022-05-19 01:25:38 +00:00
Alex Menkov
a617709235 8281268: Resolve duplication of test ClassTransformer class
Reviewed-by: kevinw, cjplummer
2022-05-18 20:49:38 +00:00
Alexander Matveev
b523c88480 8286122: [macos]: App bundle cannot upload to Mac App Store due to info.plist embedded in java exe
Reviewed-by: asemenyuk, kcr
2022-05-18 20:21:34 +00:00
Harshitha Onkar
8323787c07 8255439: System Tray icons get corrupted when windows scaling changes
Co-authored-by: Alexey Ivanov <aivanov@openjdk.org>
Reviewed-by: kcr, prr, aivanov
2022-05-18 19:45:41 +00:00
Zhengyu Gu
cd5bfe7b97 8286814: Shenandoah: RedefineRunningMethods.java test failed with Loom
Reviewed-by: shade
2022-05-18 18:26:39 +00:00
Shruthi
b5a3d2843b 8285097: Duplicate XML keys in XPATHErrorResources.java and XSLTErrorResources.java
Reviewed-by: joehw, tsteele
2022-05-18 18:13:15 +00:00
Andrey Turbanov
6b9c15211e 8286366: (cs) Charset.put can use putIfAbsent instead of containsKey+put
Reviewed-by: alanb
2022-05-18 17:43:38 +00:00
Phil Race
9becf7d578 8283705: Make javax.sound.midi.Track a final class
Reviewed-by: psadhukhan
2022-05-18 17:19:19 +00:00
Phil Race
a03438cb1b 8285397: JNI exception pending in CUPSfuncs.c:250
Reviewed-by: psadhukhan
2022-05-18 17:12:17 +00:00
Matthias Baesken
9ab29b6c07 8286869: unify os::dir_is_empty across posix platforms
Reviewed-by: iklam, dholmes
2022-05-18 16:45:14 +00:00
Jorn Vernee
ee45a0ac63 8286669: Replace MethodHandle specialization with ASM in mainline
Co-authored-by: Jorn Vernee <jvernee@openjdk.org>
Co-authored-by: Maurizio Cimadamore <mcimadamore@openjdk.org>
Reviewed-by: mcimadamore
2022-05-18 16:03:18 +00:00
Brian Burkhalter
d8b0b32f9f 8286763: [REDO] (fc) Tune FileChannel.transferFrom()
Reviewed-by: alanb
2022-05-18 15:55:21 +00:00
Erik Gahlin
ac7e019232 8286925: Move JSON parser used in JFR tests to test library
Reviewed-by: mgronlun, alanb
2022-05-18 15:07:29 +00:00
Brian Burkhalter
e934a2c752 8286637: (fc) Memory mapped regions bigger than 2GB do not work correctly on Windows
Reviewed-by: uschindler, mcimadamore, jvernee, alanb
2022-05-18 14:49:44 +00:00
Tobias Hartmann
69ff86a320 8286870: Memory leak with RepeatCompilation
Reviewed-by: kvn, chagedorn
2022-05-18 11:12:36 +00:00
Jorn Vernee
81e4bdbe13 8283689: Update the foreign linker VM implementation
Co-authored-by: Jorn Vernee <jvernee@openjdk.org>
Co-authored-by: Nick Gasson <ngasson@openjdk.org>
Reviewed-by: mcimadamore, vlivanov, rehn
2022-05-18 09:49:55 +00:00
Markus Grönlund
6a8be358d2 8283520: JFR: Memory leak in dcmd_arena
Reviewed-by: egahlin
2022-05-18 09:09:19 +00:00
Markus Grönlund
d936c3024a 8280844: Epoch shift synchronization point for Compiler threads is inadequate
Reviewed-by: egahlin
2022-05-18 09:06:14 +00:00
Aleksey Shipilev
44b243a061 8286636: MacroAssembler::post_call_nop should have InstructionMark
Reviewed-by: kvn, eosterlund
2022-05-18 07:09:39 +00:00
Jaroslav Bachorik
93c88690a1 8283849: AsyncGetCallTrace may crash JVM on guarantee
Reviewed-by: dholmes, stuefe
2022-05-18 06:45:15 +00:00
Erik Gahlin
ab144190c9 8286706: JFR: 'jfr scrub' should overwrite output
Reviewed-by: mgronlun
2022-05-18 04:44:03 +00:00
Ningsheng Jian
b5526e5e59 8281712: [REDO] AArch64: Implement string_compare intrinsic in SVE
Co-authored-by: Tat Wai Chong <tatwai.chong@arm.com>
Reviewed-by: thartmann, ngasson
2022-05-18 01:34:14 +00:00
Joe Wang
72bd41b844 8282280: Update Xerces to Version 2.12.2
Reviewed-by: lancea, naoto
2022-05-18 00:05:23 +00:00
Hai-May Chao
2ed75be659 8286090: Add RC2/RC4 to jdk.security.legacyAlgorithms
Reviewed-by: mullan
2022-05-17 21:47:54 +00:00
Anthony Scarpino
f17c68ce4a 8283577: SSLEngine.unwrap on read-only input ByteBuffer
Reviewed-by: wetmore
2022-05-17 21:39:11 +00:00
Valerie Peng
61ddbef368 8002277: Refactor two PBE classes to simplify maintenance
Reviewed-by: weijun
2022-05-17 20:55:34 +00:00
Jonathan Gibbons
141ef68f82 8286338: suppress warnings about bad @author tags when author info is not generated.
Reviewed-by: prappo
2022-05-17 20:38:18 +00:00
Erik Gahlin
a25b9bc89b 8286688: JFR: Active Setting events should have the same timestamp
Reviewed-by: mgronlun
2022-05-17 20:23:53 +00:00
Brian Burkhalter
5bea46110c 8286734: (fc) FileChannelImpl#map() cleanup after merge of Foreign Function & Memory API
Reviewed-by: alanb
2022-05-17 19:43:15 +00:00
Valerie Peng
0c5ab6daa9 8209038: Clarify the javadoc of Cipher.getParameters()
Reviewed-by: xuelei, mullan, weijun
2022-05-17 18:37:23 +00:00
Brian Burkhalter
1d8e92ae0d 8213045: Add BigDecimal.TWO
Reviewed-by: darcy
2022-05-17 18:08:32 +00:00
Alan Bateman
8535d51db7 8286788: Test java/lang/Thread/virtual/ThreadAPI.testGetStackTrace3 fails
Reviewed-by: darcy, jpai
2022-05-17 17:10:54 +00:00
Joe Darcy
8e602b862d 8286783: Expand use of @inheritDoc in InputStream and OutputStream subclasses
Reviewed-by: alanb
2022-05-17 16:14:28 +00:00
Raffaello Giulietti
ea713c37fb 8286810: Use public [Double|Float].PRECISION fields in jdk.internal.math.[Double|Float]Consts
Reviewed-by: bpb, rriggs, darcy
2022-05-17 15:55:27 +00:00
Nick Gasson
87d9d7f542 8286596: AArch64: -XX:UseBranchProtection=pac-ret crashes after JDK-8284161
Co-authored-by: Alan Hayward <ahayward@openjdk.org>
Reviewed-by: aph, njian
2022-05-17 15:11:20 +00:00
Thomas Schatzl
af07919ef1 8286729: G1: Calculation to fit in optional region in remaining pause time wrong
Reviewed-by: iwalulya, lkorinth
2022-05-17 14:38:45 +00:00
Jan Lahoda
c0d51d42d9 8282080: Lambda deserialization fails for Object method references on interfaces
Reviewed-by: vromero, mcimadamore
2022-05-17 13:48:45 +00:00
Magnus Ihse Bursie
e68024c2d2 8285485: Fix typos in corelibs
Reviewed-by: jpai, sundar, naoto, lancea
2022-05-17 12:10:48 +00:00
Hannes Wallnöfer
d8455a0ad4 8268335: Find better way to exclude empty HTML elements
Reviewed-by: jjg
2022-05-17 11:25:36 +00:00
Christian Hagedorn
3984253800 8284115: [IR Framework] Compilation is not found due to rare safepoint while dumping PrintIdeal/PrintOptoAssembly
Reviewed-by: kvn, thartmann
2022-05-17 11:23:11 +00:00
Aleksey Shipilev
b434b1f233 8286808: Loom: Simplify generate_cont_thaw by passing thaw_kind directly
Reviewed-by: rpressler, rehn
2022-05-17 10:50:45 +00:00
Conor Cleary
6a7709320d 8283544: HttpClient GET method adds Content-Length: 0 header
Reviewed-by: dfuchs, jpai
2022-05-17 10:01:43 +00:00
Hannes Wallnöfer
ac41b78cfb 8284367: JQuery UI upgrade from 1.12.1 to 1.13.1
Reviewed-by: jjg
2022-05-17 09:53:50 +00:00
Andrew Haley
0948c097a8 8272094: compiler/codecache/TestStressCodeBuffers.java crashes with "failed to allocate space for trampoline"
Reviewed-by: shade, kvn
2022-05-17 09:02:06 +00:00
Aleksey Shipilev
8c977050aa 8286475: Drop --enable-preview from instanceof pattern matching related tests
Reviewed-by: darcy
2022-05-17 08:49:23 +00:00
Aleksey Shipilev
63cace759e 8286660: codestrings gtest fails on AArch64: "udf" in padding
Reviewed-by: ngasson, aph
2022-05-17 08:47:45 +00:00
Mat Carter
5e5500cbd7 6782021: It is not possible to read local computer certificates with the SunMSCAPI provider
Reviewed-by: weijun
2022-05-17 02:41:36 +00:00
wanghaomin
d65fba412e 8286452: The array length of testSmallConstArray should be small and const
Reviewed-by: redestad
2022-05-17 02:17:08 +00:00
Jaikiran Pai
125efe6cba 8286744: failure_handler: dmesg command on macos fails to collect data due to permission issues
Reviewed-by: dfuchs, lancea, lmesnik
2022-05-17 00:09:25 +00:00
Maurizio Cimadamore
40f4dabce8 8286756: Cleanup foreign API benchmarks
Reviewed-by: jvernee
2022-05-16 20:56:31 +00:00
Joe Darcy
af2918ff9a 8286787: Expand use of @inheritDoc in AudioInputStream
Reviewed-by: prr
2022-05-16 19:23:26 +00:00
Erik Gahlin
24cab0af32 8286740: JFR: Active Setting event emitted incorrectly
Reviewed-by: mgronlun
2022-05-16 19:09:02 +00:00
Dan Lutker
a31130fd40 7131823: bug in GIFImageReader
Reviewed-by: kizune, serb
2022-05-16 16:17:48 +00:00
Joe Darcy
4bc7b7df04 8286760: Update citation of "Effective Java" second edition to third edition
Reviewed-by: bpb, prappo
2022-05-16 16:07:30 +00:00
Naoto Sato
c044cb8346 8286399: Address possibly lossy conversions in JDK Build Tools
Reviewed-by: rriggs, joehw
2022-05-16 15:46:11 +00:00
Naoto Sato
b884db8f7c 8285844: TimeZone.getTimeZone(ZoneOffset) does not work for all ZoneOffsets and returns GMT unexpected
Reviewed-by: uschindler, scolebourne, joehw
2022-05-16 15:45:01 +00:00
Brian Burkhalter
dbd3737085 8286200: SequenceInputStream::read(b, off, 0) returns -1 at EOF
Reviewed-by: rriggs
2022-05-16 15:42:29 +00:00
Jorn Vernee
743c779712 8286390: Address possibly lossy conversions in jdk.incubator.foreign moved to java.base
Reviewed-by: dfuchs
2022-05-16 14:35:23 +00:00
Albert Mingkun Yang
22139c35c4 8286704: G1: Call offset_of directly in subclasses of G1CardSetContainer
Reviewed-by: tschatzl, iwalulya
2022-05-16 13:12:02 +00:00
Jan Lahoda
77dfbb4570 8178701: Compile error with switch statement on protected enum defined in parent inner class
Reviewed-by: vromero
2022-05-16 11:53:09 +00:00
Jaikiran Pai
f4258a50e0 8209137: Add ability to bind to specific local address to HTTP client
Reviewed-by: dfuchs, michaelm
2022-05-16 11:45:32 +00:00
Conor Cleary
65da38d844 8284585: PushPromiseContinuation test fails intermittently in timeout
Reviewed-by: dfuchs
2022-05-16 11:14:34 +00:00
Thomas Schatzl
652044d82b 8286297: G1: Simplify parallel and serial verification code paths
Reviewed-by: ayang, lkorinth
2022-05-16 11:08:43 +00:00
Jan Lahoda
0155e4b76b 8282274: Compiler implementation for Pattern Matching for switch (Third Preview)
Co-authored-by: Brian Goetz <briangoetz@openjdk.org>
Co-authored-by: Jan Lahoda <jlahoda@openjdk.org>
Reviewed-by: mcimadamore, vromero, abimpoudis
2022-05-16 07:49:26 +00:00
Emanuel Peter
2d34acfec9 8286638: C2: CmpU needs to do more precise over/underflow analysis
Reviewed-by: kvn, vlivanov, thartmann
2022-05-16 07:21:30 +00:00
bobpengxie
46d208fb1c 8284950: CgroupV1 detection code should consider memory.swappiness
Reviewed-by: sgehwolf, iklam
2022-05-16 06:40:54 +00:00
David Holmes
e2448cee57 8286791: CLONE - ProblemList compiler/c2/irTests/TestSkeletonPredicates.java in -Xcomp mode
Reviewed-by: darcy
2022-05-16 02:25:22 +00:00
Weijun Wang
357f990e32 8286428: AlgorithmId should understand PBES2
Reviewed-by: valeriep
2022-05-15 22:31:14 +00:00
Weijun Wang
f4f1dddfef 8284194: Allow empty subject fields in keytool
Reviewed-by: jnimeh, hchao
2022-05-15 22:30:06 +00:00
Leonid Mesnik
dc9462137c 8286782: Exclude vmTestbase/gc/gctests/WeakReference/weak006/weak006.java
Reviewed-by: alanb
2022-05-15 17:03:53 +00:00
Yasumasa Suenaga
0e4bece5b5 8286705: GCC 12 reports use-after-free potential bugs
Reviewed-by: kbarrett
2022-05-15 01:32:40 +00:00
John Jiang
63bd3b7728 8286773: cleanup @returns in sun.security classes
Reviewed-by: xuelei
2022-05-14 21:52:22 +00:00
Doug Simon
af24d2d1d6 8286771: workaround implemented for JDK-8282607 is incomplete
Reviewed-by: dholmes
2022-05-14 15:28:53 +00:00
Christoph Langer
80cf9f3464 8286594: (zipfs) Mention paths with dot elements in ZipException and cleanups
Reviewed-by: lancea
2022-05-14 10:57:14 +00:00
Christoph Langer
29c4b8e80d 8286444: javac errors after JDK-8251329 are not helpful enough to find root cause
Reviewed-by: mdoerr
2022-05-14 10:56:02 +00:00
Jie Fu
9eb15c9b10 8286681: ShenandoahControlThread::request_gc misses the case of GCCause::_codecache_GC_threshold
Reviewed-by: zgu
2022-05-14 10:13:49 +00:00
Jaikiran Pai
e4378ab28d 8286559: Re-examine synchronization of mark and reset methods on InflaterInputStream
Reviewed-by: lancea, alanb, bpb
2022-05-14 03:21:01 +00:00
Alexander Zuev
f56396f168 6829250: Reg test: java/awt/Toolkit/ScreenInsetsTest/ScreenInsetsTest.java fails in Windows
Reviewed-by: prr
2022-05-13 22:08:44 +00:00
Alexander Matveev
273c7329e7 8277493: [REDO] Quarantined jpackage apps are labeled as "damaged"
Reviewed-by: asemenyuk
2022-05-13 18:39:16 +00:00
Brian Burkhalter
583a61aabb 8286671: (fc) Modify sun.nio.ch.FileChannelImpl.map0() to accept a FileDescriptor parameter
Reviewed-by: alanb, jpai
2022-05-13 17:46:52 +00:00
Joe Darcy
1e843c3d4f 8286604: Update InputStream and OutputStream to use @implSpec
Reviewed-by: bpb, lancea, iris, alanb
2022-05-13 16:57:11 +00:00
Erik Gahlin
78ffefb849 8286668: JFR: Cleanup
Reviewed-by: mgronlun
2022-05-13 15:33:04 +00:00
Magnus Ihse Bursie
76caeed498 8285366: Fix typos in serviceability
Reviewed-by: kevinw, sspitsyn
2022-05-13 15:17:22 +00:00
Magnus Ihse Bursie
f631c9884f 8285380: Fix typos in security
Reviewed-by: weijun, wetmore
2022-05-13 15:04:12 +00:00
Roger Riggs
237f28014a 8286393: Address possibly lossy conversions in java.rmi
8286388: Address possibly lossy conversions in java.smartcardio

Reviewed-by: lancea, dfuchs, smarks
2022-05-13 14:40:22 +00:00
Zhengyu Gu
cbe7e7bd7f 8284956: Potential leak awtImageData/color_data when initializes X11GraphicsEnvironment
Reviewed-by: prr, shade
2022-05-13 13:12:18 +00:00
Albert Mingkun Yang
8daf08dbc4 8286628: Remove unused BufferNode::Allocator::flush_free_list
Reviewed-by: kbarrett, tschatzl
2022-05-13 11:59:23 +00:00
Daniel Fuchs
04df8b7437 8286194: ExecutorShutdown test fails intermittently
Reviewed-by: jpai, michaelm
2022-05-13 11:51:42 +00:00
Jaikiran Pai
0be1f3e1b0 8286689: (se) Adjusting to select timeout after EINTR messed up after JDK-8286378
Reviewed-by: dfuchs, alanb
2022-05-13 11:08:50 +00:00
Jan Lahoda
6a1b09898d 8278039: Code completion not woking after some statements such as "if" or "while"
Reviewed-by: jlaskey
2022-05-13 11:03:17 +00:00
Jan Lahoda
11fa03f3ee 8282160: JShell circularly-required classes cannot be defined
Reviewed-by: vromero
2022-05-13 09:45:48 +00:00
Johan Sjölén
d5ae3833b1 8286117: Remove unnecessary indirection and unused code in UL
Reviewed-by: dholmes, rehn, iklam
2022-05-13 06:50:30 +00:00
Jaikiran Pai
c3bade2e08 8286623: Bundle zlib by default with JDK on macos aarch64
Reviewed-by: lancea, ihse, erikj
2022-05-13 01:55:46 +00:00
Jie Fu
617ef541bb 8286647: JFR: Build failure when C1 or C2 is disabled after JDK-8282420
Reviewed-by: mgronlun
2022-05-12 22:48:04 +00:00
Brian Burkhalter
369611ea34 8286677: [BACKOUT] (fc) Tune FileChannel.transferFrom()
Reviewed-by: dholmes, mikael
2022-05-12 22:37:42 +00:00
Kim Barrett
4b8a66a5ff 8286424: GetVersionEx is deprecated
Reviewed-by: dholmes, hseigel
2022-05-12 22:30:55 +00:00
Brian Burkhalter
986d87dcc0 8274113: (fc) Tune FileChannel.transferFrom()
Reviewed-by: alanb
2022-05-12 18:49:58 +00:00
Leonid Mesnik
61cb4b7448 8285951: Replace Algorithms.eatMemory(...) with WB.fullGC() in vmTestbase_vm_gc_ref tests
Reviewed-by: kbarrett, tschatzl
2022-05-12 18:38:23 +00:00
Daniel Fuchs
5ff1d227bb 8286386: Address possibly lossy conversions in java.net.http
Reviewed-by: rriggs, michaelm, prappo
2022-05-12 18:36:02 +00:00
Erik Gahlin
7118343737 8278262: JFR: TestPrintXML can't handle missing timestamps
Reviewed-by: mgronlun
2022-05-12 18:21:52 +00:00
Ioi Lam
74eee28a71 8286560: Remove user parameter from jdk.internal.perf.Perf.attach()
Reviewed-by: dholmes, alanb
2022-05-12 18:17:31 +00:00
Joe Darcy
160944bc6b 8286615: Small refactor to SerializedLambda
Reviewed-by: bpb, iris
2022-05-12 16:56:05 +00:00
Roger Riggs
17c52789b7 8286378: Address possibly lossy conversions in java.base
Reviewed-by: naoto, xuelei, bpb, alanb
2022-05-12 16:50:36 +00:00
Joe Darcy
0a6832b24c 8286617: Improve parameter names in javax.lang.model utility visitors
Reviewed-by: iris, jjg
2022-05-12 16:35:40 +00:00
Maurizio Cimadamore
2c5d136260 8282191: Implementation of Foreign Function & Memory API (Preview)
Reviewed-by: erikj, jvernee, psandoz, dholmes, mchung
2022-05-12 16:17:45 +00:00
Martin Balao
3be394e160 8275535: Retrying a failed authentication on multiple LDAP servers can lead to users blocked
Reviewed-by: aefimov, dfuchs
2022-05-12 16:16:49 +00:00
Naoto Sato
cc7560e995 8286287: Reading file as UTF-16 causes Error which "shouldn't happen"
Reviewed-by: jpai, bpb, rriggs
2022-05-12 15:58:19 +00:00
Erik Gahlin
82aa045584 8286015: JFR: Remove jfr.save.generated.asm
Reviewed-by: mgronlun
2022-05-12 15:18:18 +00:00
Xue-Lei Andrew Fan
1904e9d280 8286423: Destroy password protection in the example code in KeyStore
Reviewed-by: weijun
2022-05-12 13:51:47 +00:00
Jan Lahoda
e4439ca32a 8284283: javac crashes when several transitive supertypes are missing
Reviewed-by: vromero
2022-05-12 13:40:21 +00:00
Weijun Wang
752ad1c410 8286422: Add OIDs for RC2 and Blowfish
Reviewed-by: hchao, ascarpino
2022-05-12 13:27:45 +00:00
Guoxiong Li
36bdd25159 8286573: Remove the unnecessary method Attr#attribTopLevel and its usage
Reviewed-by: vromero
2022-05-12 13:05:57 +00:00
Zhengyu Gu
dea6e886af 8284680: sun.font.FontConfigManager.getFontConfig() leaks charset
Reviewed-by: prr, andrew
2022-05-12 12:26:28 +00:00
Adam Farley
40f43c6b1f 8286601: Mac Aarch: Excessive warnings to be ignored for build jdk
Reviewed-by: erikj
2022-05-12 09:27:04 +00:00
Prasanta Sadhukhan
be97b4bc83 8278348: [macos12] javax/swing/JTree/4908142/bug4908142.java fails in macos12
Reviewed-by: prr
2022-05-12 09:25:42 +00:00
Prasanta Sadhukhan
ff17f496f4 8284888: [macos] javax/swing/JInternalFrame/8146321/JInternalFrameIconTest.java failed with "NimbusLookAndFeel] : ERROR: icon and imageIcon not same."
Reviewed-by: prr
2022-05-12 08:54:28 +00:00
Jaikiran Pai
50d47de835 8286582: Build fails on macos aarch64 when using --with-zlib=bundled
Reviewed-by: ihse, lancea
2022-05-12 08:09:54 +00:00
Roberto Castañeda Lozano
89392fb15e 8285820: C2: LCM prioritizes locally dependent CreateEx nodes over projections after 8270090
Co-authored-by: Aleksey Shipilev <shade@openjdk.org>
Reviewed-by: thartmann, kvn
2022-05-12 07:05:38 +00:00
Daniel Jeliński
96d48f386b 8286433: Cache certificates decoded from TLS session tickets
Reviewed-by: coffeys, xuelei
2022-05-12 06:48:38 +00:00
tqxia
7567627f4a 8286467: G1: Collection set pruning adds one region too many
Reviewed-by: tschatzl, ayang
2022-05-12 06:40:45 +00:00
Leonid Mesnik
82d257006d 8283001: windows-x86-cmp-baseline fails in some jvmti native libs
Reviewed-by: sspitsyn, amenkov
2022-05-12 02:30:17 +00:00
Eric Liu
e9f45bb270 8282966: AArch64: Optimize VectorMask.toLong with SVE2
Reviewed-by: xgong, ngasson
2022-05-12 01:15:16 +00:00
lawrence.andrews
57a7670886 8285612: Remove jtreg tag manual=yesno for java/awt/print/PrinterJob/ImagePrinting/ClippedImages.java
Reviewed-by: prr
2022-05-11 23:35:51 +00:00
lawrence.andrews
44a60ce172 8285867: Convert applet manual tests SelectionVisible.java to Frame and automate
Reviewed-by: prr
2022-05-11 23:34:25 +00:00
Damon Nguyen
ccbe8faa00 8282772: JButton text set as HTML content has unwanted padding
Reviewed-by: prr, psadhukhan
2022-05-11 23:29:06 +00:00
Claes Redestad
1586bf862b 8286401: Address possibly lossy conversions in Microbenchmarks
Reviewed-by: shade, ecaspole
2022-05-11 20:51:57 +00:00
Doug Simon
1c50ea36a5 8282607: runtime/ErrorHandling/MachCodeFramesInErrorFile.java failed with "RuntimeException: 0 < 2"
Reviewed-by: dholmes, coleenp
2022-05-11 20:08:15 +00:00
Ioi Lam
fcf49f42ce 8286441: Remove mode parameter from jdk.internal.perf.Perf.attach()
Reviewed-by: redestad, alanb
2022-05-11 19:26:53 +00:00
Tyler Steele
46a775af11 8286540: Build failure caused by missing DefaultPollerProvider implementation on AIX
Reviewed-by: bpb, alanb
2022-05-11 18:48:40 +00:00
Jorn Vernee
4ad8cfa26e 8286002: Add support for intel syntax to capstone hsdis
Reviewed-by: thartmann
2022-05-11 17:57:36 +00:00
Coleen Phillimore
cec23b1b07 8286556: Remove EagerInitialization develop option
Reviewed-by: rehn, redestad
2022-05-11 16:19:49 +00:00
Albert Mingkun Yang
89de756ffb 8286387: Remove unused FreeListAllocator::reduce_free_list
Reviewed-by: kbarrett, tschatzl
2022-05-11 15:06:14 +00:00
Aleksey Shipilev
ae695d6cb7 8286476: x86_32: Fix crashes with non-preview mode after JDK-8284161 (Virtual Threads)
Reviewed-by: coleenp, stuefe
2022-05-11 14:15:52 +00:00
Richard Reingruber
87f3d2b870 8286446: PPC64: fix crashes after JDK-8284161 (virtual threads preview)
Reviewed-by: mdoerr, coleenp, shade
2022-05-11 13:21:43 +00:00
Erik Gahlin
7a2bbbbce5 8286396: Address possibly lossy conversions in jdk.management.jfr
Reviewed-by: mgronlun
2022-05-11 12:52:40 +00:00
Erik Gahlin
9ac52b0c2e 8286392: Address possibly lossy conversions in jdk.jfr
Reviewed-by: mgronlun
2022-05-11 12:47:59 +00:00
Erik Gahlin
f628966916 8286541: JFR: RecordingFile.write is missing "since 19"
Reviewed-by: mgronlun
2022-05-11 12:26:21 +00:00
Erik Gahlin
f1554fc4a8 8285872: JFR: Remove finalize() methods
Reviewed-by: mgronlun
2022-05-11 12:17:15 +00:00
Erik Gahlin
faa1aad434 8286515: JFR: Remove SimpleStringIdPool class
Reviewed-by: mgronlun
2022-05-11 12:03:00 +00:00
Manukumar V S
7612bba0f1 8285698: Create a test to check the focus stealing of JPopupMenu from JComboBox
Reviewed-by: prr
2022-05-11 11:48:22 +00:00
Aleksey Shipilev
73c5e993e1 8286473: Drop --enable-preview from Record related tests
Reviewed-by: alanb, jpai, mchung
2022-05-11 08:52:11 +00:00
Severin Gehwolf
63a1ec6e7c 8286430: make test TEST="gtest:<sometag>" exits with error when it shouldn't
Reviewed-by: ihse, erikj
2022-05-11 08:49:30 +00:00
Roland Westrelin
aa7ccdf445 8275201: C2: hide klass() accessor from TypeOopPtr and typeKlassPtr subclasses
Reviewed-by: vlivanov, iveresov
2022-05-11 07:25:49 +00:00
Matthias Baesken
6586e5ae37 8286459: compile error with VS2017 in continuationFreezeThaw.cpp
Reviewed-by: clanger, mdoerr
2022-05-11 06:55:50 +00:00
Aleksey Shipilev
9c2548414c 8286339: compiler/c2/irTests/TestEnumFinalFold.java fails if Enum/String methods are not inlined
Reviewed-by: thartmann, jiefu
2022-05-11 05:29:11 +00:00
Aleksey Shipilev
d547a707bf 8286474: Drop --enable-preview from Sealed Classes related tests
Reviewed-by: alanb, jpai, mchung, lancea
2022-05-11 05:27:56 +00:00
Leonid Mesnik
aaeb08eca4 8278123: serviceability/dcmd/vm/ClassLoaderStatsTest.java failing with java.lang.AssertionError: Should have a hidden class
Reviewed-by: cjplummer
2022-05-10 22:28:12 +00:00
Calvin Cheung
070a0cda31 8286551: JDK-8286460 causes tests to fail to compile in Tier2
Reviewed-by: dcubed
2022-05-10 20:20:37 +00:00
Leonid Mesnik
dcec1d2a68 8286368: Cleanup problem lists after loom integration
Reviewed-by: alanb
2022-05-10 19:12:29 +00:00
Leonid Mesnik
7704eb1866 8284980: Test vmTestbase/nsk/stress/except/except010.java times out with -Xcomp -XX:+DeoptimizeALot
Reviewed-by: dcubed
2022-05-10 19:02:47 +00:00
Leonid Mesnik
d347fc127b 8286438: Add jhsdb jstack processing without --mixed in efh
Reviewed-by: cjplummer
2022-05-10 18:58:58 +00:00
Ioi Lam
61c68abc68 8285518: CDS assert: visibility cannot change between dump time and runtime
Reviewed-by: dholmes, ccheung
2022-05-10 18:18:37 +00:00
Christian Stein
52dbfa99fe 8286460: Remove dependence on JAR filename in CDS tests
Reviewed-by: ccheung, iklam
2022-05-10 18:13:41 +00:00
Sergey Tsypanov
9073a98d57 8282701: Use Class.getInterfaces(false) where possible to reduce allocation pressure
Reviewed-by: redestad, mchung
2022-05-10 17:19:33 +00:00
Erik Gahlin
0f3773635d 8282420: JFR: Remove event handlers
Reviewed-by: mgronlun
2022-05-10 16:14:07 +00:00
Brian Burkhalter
04bba07d65 8286363: BigInteger.parallelMultiply missing @since 19
Reviewed-by: alanb, darcy
2022-05-10 15:30:38 +00:00
Markus Grönlund
fa25733d76 8286480: Remove the c1 getEventWriter() intrinsic to simplify post-Loom integration platform-porting efforts
Reviewed-by: coleenp, shade
2022-05-10 15:18:14 +00:00
Thomas Schatzl
ecbb380450 8286303: Serial: Remove reference to ParGCRareEvent_lock
Reviewed-by: kbarrett, iwalulya
2022-05-10 14:52:17 +00:00
dev-tianqixia
9835678a86 8285710: Miscalculation of G1CardSetAllocator unused memory size
Reviewed-by: tschatzl, ayang
2022-05-10 13:43:33 +00:00
Pengfei Li
1ca540460c 8286125: C2: "bad AD file" with PopulateIndex on x86_64
Reviewed-by: kvn, thartmann
2022-05-10 13:37:03 +00:00
Thomas Stuefe
9e320d9ab1 8286198: [linux] Fix process-memory information
Reviewed-by: dholmes, mbaesken
2022-05-10 13:28:40 +00:00
Erik Joelsson
65f50678f2 8286429: jpackageapplauncher build fails intermittently in Tier[45]
Reviewed-by: asemenyuk, ihse
2022-05-10 13:09:57 +00:00
KIRIYAMA Takuya
c4bd4499f1 8238373: Punctuation should be same in jlink help usage on Japanese language
Reviewed-by: naoto
2022-05-10 12:25:48 +00:00
Claes Redestad
3fa1c40439 8286298: Remove unused methods in sun.invoke.util.VerifyType
Reviewed-by: bpb, alanb, mchung
2022-05-10 09:01:40 +00:00
Lennart Fricke
3462190965 8286163: micro-optimize Instant.plusSeconds
Reviewed-by: scolebourne, redestad, naoto
2022-05-10 09:00:09 +00:00
Thomas Schatzl
60a91d15ad 8286285: G1: Rank issues with ParGCRareEvent_lock and Threads_lock
Reviewed-by: dholmes, iwalulya
2022-05-10 08:49:24 +00:00
Emanuel Peter
d478958eb2 8286179: Node::find(int) should not traverse from new to old nodes
Reviewed-by: kvn, chagedorn, thartmann
2022-05-10 08:04:13 +00:00
Matthias Baesken
de8f4d01b2 8286191: misc tests fail due to JDK-8285987
Reviewed-by: rriggs
2022-05-10 07:44:20 +00:00
Yadong Wang
bf0dc4f844 8286367: riscv: riscv port is broken after JDK-8284161
Co-authored-by: Fei Yang <fyang@openjdk.org>
Reviewed-by: coleenp, fyang
2022-05-10 07:14:31 +00:00
Matthias Baesken
4fd79a6ad2 8285730: unify _WIN32_WINNT settings
Reviewed-by: dholmes, erikj, ihse, prr, alanb
2022-05-10 06:45:15 +00:00
Harshitha Onkar
bd6026c10c 7124282: [macosx] Can't see table cell highlighter when the highlight border is the same color as the cell.
Reviewed-by: psadhukhan, prr
2022-05-10 06:33:38 +00:00
Manukumar V S
9a3cb93038 8030121: java/awt/dnd/MissingDragExitEventTest/MissingDragExitEventTest.java fails
Reviewed-by: prr
2022-05-10 04:37:20 +00:00
Ajit Ghaisas
ace4230634 8261650: Add a comment with details for MTLVC_MAX_INDEX
Reviewed-by: jdv, avu, prr
2022-05-10 04:11:28 +00:00
Alexey Semenyuk
29395534d9 8282351: jpackage does not work if class file has $$ in the name on windows
Reviewed-by: almatvee
2022-05-10 02:53:11 +00:00
Daniel D. Daugherty
61450bb061 8283651: nsk/jvmti/SuspendThread/suspendthrd003 may leak native memory
Reviewed-by: lmesnik
2022-05-09 22:03:55 +00:00
Daniel D. Daugherty
c28a63617d 8286442: ProblemList compiler/c2/irTests/TestSkeletonPredicates.java in -Xcomp mode
Reviewed-by: ctornqvi
2022-05-09 21:35:20 +00:00
Jonathan Gibbons
54e3308210 8286348: incorrect use of @serial
Reviewed-by: iris, prr
2022-05-09 20:35:05 +00:00
Zhengyu Gu
b0d2b0a355 8286331: jni_GetStringUTFChars() uses wrong heap allocator
Reviewed-by: dlong, stuefe
2022-05-09 19:46:03 +00:00
Johannes Bechberger
902b1dd455 8284686: Interval of < 1 ms disables ExecutionSample events
Reviewed-by: egahlin
2022-05-09 19:27:32 +00:00
Daniel D. Daugherty
02e5fc04cc 8286435: JDK-8284316 caused validate-source to fail in Tier1
Reviewed-by: mikael
2022-05-09 19:22:42 +00:00
lawrence.andrews
6a7c023796 8284316: Support accessibility ManualTestFrame.java for non SwingSet tests
Reviewed-by: kizune
2022-05-09 18:30:43 +00:00
Leonid Mesnik
40470d83e4 8284550: test failure_handler is not properly invoking jhsdb jstack, resulting in failure to produce a stack when a test times out
Reviewed-by: dholmes, alanb
2022-05-09 18:26:08 +00:00
Harshitha Onkar
837928ba79 8222323: ChildAlwaysOnTopTest.java fails with "RuntimeException: Failed to unset alwaysOnTop"
Reviewed-by: prr, kizune
2022-05-09 17:39:43 +00:00
Weijun Wang
397d095f66 8285743: Ensure each IntegerPolynomial object is only created once
Reviewed-by: xuelei, ascarpino
2022-05-09 17:18:34 +00:00
Calvin Cheung
29ccb8fbb8 8285914: AppCDS crash when using shared archive with old class file
Reviewed-by: dholmes, iklam
2022-05-09 16:00:57 +00:00
Kim Barrett
fe6e0c0beb 8286371: Avoid use of deprecated str[n]icmp
Reviewed-by: dholmes
2022-05-09 15:21:38 +00:00
Raffaello Giulietti
97a983526b 8274517: java/util/DoubleStreamSums/CompensatedSums.java fails with expected [true] but found [false]
Reviewed-by: alanb, bpb
2022-05-09 14:53:10 +00:00
Xue-Lei Andrew Fan
034f20fe86 8212136: Remove finalizer implementation in SSLSocketImpl
Reviewed-by: wetmore
2022-05-09 14:15:18 +00:00
Xue-Lei Andrew Fan
36e4df9d66 8285516: clearPassword should be called in a finally try block
Reviewed-by: mullan, hchao
2022-05-09 14:13:50 +00:00
Andrew Haley
b849efdf15 8285923: [REDO] JDK-8285802 AArch64: Consistently handle offsets in MacroAssembler as 64-bit quantities
Reviewed-by: ngasson, kvn
2022-05-09 13:37:15 +00:00
Daniel Fuchs
f143386109 8286293: Tests ShortResponseBody and ShortResponseBodyWithRetry should use less resources
Reviewed-by: michaelm
2022-05-09 13:01:16 +00:00
Zhengyu Gu
64b05ccbed 8286346: 3-parameter version of AllocateHeap should not ignore AllocFailType
Reviewed-by: kbarrett, dholmes, stuefe
2022-05-09 12:32:29 +00:00
Doug Lea
4f5d73f2d4 8286294: ForkJoinPool.commonPool().close() spins
Reviewed-by: alanb
2022-05-09 11:09:34 +00:00
Johannes Bechberger
d4474b5816 8285794: AsyncGetCallTrace might acquire a lock via JavaThread::thread_from_jni_environment
Reviewed-by: dholmes, mdoerr, jbachorik
2022-05-09 08:18:31 +00:00
Leo Korinth
39f4434f44 8286312: Stop mixing signed and unsigned types in bit operations
Reviewed-by: coleenp, dholmes
2022-05-09 07:53:54 +00:00
Leo Korinth
b490a58ed8 8283899: Revert 8284190 after fix of 8281297
Reviewed-by: kbarrett
2022-05-09 07:24:12 +00:00
Leo Korinth
1ce72eabe5 8281297: TestStressG1Humongous fails with guarantee(is_range_uncommitted)
Reviewed-by: eosterlund, iwalulya, tschatzl
2022-05-09 07:16:54 +00:00
Alisen Chung
cdd1b0da14 8284613: invalid use of @serial tag
Reviewed-by: prr
2022-05-08 21:22:08 +00:00
Alan Bateman
9583e3657e 8284161: Implementation of Virtual Threads (Preview)
Co-authored-by: Ron Pressler <rpressler@openjdk.org>
Co-authored-by: Alan Bateman <alanb@openjdk.org>
Co-authored-by: Erik Österlund <eosterlund@openjdk.org>
Co-authored-by: Andrew Haley <aph@openjdk.org>
Co-authored-by: Rickard Bäckman <rbackman@openjdk.org>
Co-authored-by: Markus Grönlund <mgronlun@openjdk.org>
Co-authored-by: Leonid Mesnik <lmesnik@openjdk.org>
Co-authored-by: Serguei Spitsyn <sspitsyn@openjdk.org>
Co-authored-by: Chris Plummer <cjplummer@openjdk.org>
Co-authored-by: Coleen Phillimore <coleenp@openjdk.org>
Co-authored-by: Robbin Ehn <rehn@openjdk.org>
Co-authored-by: Stefan Karlsson <stefank@openjdk.org>
Co-authored-by: Thomas Schatzl <tschatzl@openjdk.org>
Co-authored-by: Sergey Kuksenko <skuksenko@openjdk.org>
Reviewed-by: lancea, eosterlund, rehn, sspitsyn, stefank, tschatzl, dfuchs, lmesnik, dcubed, kevinw, amenkov, dlong, mchung, psandoz, bpb, coleenp, smarks, egahlin, mseledtsov, coffeys, darcy
2022-05-07 08:06:16 +00:00
Vladimir Ivanov
5212535a27 8282218: C1: Missing side effects of dynamic class loading during constant linkage
Reviewed-by: thartmann, kvn
2022-05-06 23:09:23 +00:00
Daniel D. Daugherty
d8f9686b12 8286342: ProblemList compiler/c2/irTests/TestEnumFinalFold.java
Reviewed-by: mikael
2022-05-06 19:53:20 +00:00
Dean Long
bb52ea6820 8286263: compiler/c1/TestPinnedIntrinsics.java failed with "RuntimeException: testCurrentTimeMillis failed with -3"
Reviewed-by: thartmann, kvn
2022-05-06 19:47:48 +00:00
Stuart Marks
5a1d8f7e53 8285295: Need better testing for IdentityHashMap
Reviewed-by: jpai, lancea
2022-05-06 18:41:32 +00:00
Aleksey Shipilev
080f3c5d8a 8286190: Add test to verify constant folding for Enum fields
Reviewed-by: kvn, thartmann
2022-05-06 16:32:02 +00:00
Naoto Sato
1277f5d84e 8286154: Fix 3rd party notices in test files
Reviewed-by: darcy, joehw, iris
2022-05-06 16:10:17 +00:00
Thomas Schatzl
2dd4dfdd63 8286291: G1: Remove unused segment allocator printouts
Reviewed-by: ayang, iwalulya
2022-05-06 14:25:34 +00:00
Thomas Schatzl
b9f4370325 8286189: G1: Change "wasted" memory to "unused" memory in reporting
Reviewed-by: iwalulya, ayang
2022-05-06 12:45:35 +00:00
Boris Ulasevich
c6eab989b7 8285378: Remove unnecessary nop for C1 exception and deopt handler
Reviewed-by: kvn, dlong
2022-05-06 09:29:04 +00:00
Hannes Wallnöfer
3cdedf1ddb 8248863: Add search landing page to API documentation
Reviewed-by: jjg
2022-05-06 08:56:42 +00:00
Roland Westrelin
fa1ca98fff 8281429: PhiNode::Value() is too conservative for tripcount of CountedLoop
Reviewed-by: thartmann, kvn
2022-05-06 08:24:33 +00:00
Tobias Holenstein
dd06cc638e 8283807: Handle CompileThreshold the same as other thresholds when scaled with -XX:CompileThresholdScaling
Reviewed-by: kvn, iklam, thartmann
2022-05-06 07:08:19 +00:00
Adam Sotona
015cfda8e1 8262004: Classpath separator: Man page says semicolon; should be colon on Linux
Reviewed-by: dholmes
2022-05-06 06:00:22 +00:00
Jonathan Gibbons
9425ab2b43 8286153: Remove redundant casts and other cleanup
Reviewed-by: prappo
2022-05-06 00:16:52 +00:00
Jie Fu
7ebc4bce93 8286066: assert(k != __null) failed: klass not loaded caused by FillerObject_klass
Reviewed-by: dholmes, tschatzl, iklam
2022-05-05 23:16:42 +00:00
Tyler Steele
6a1b145a0a 8286029: Add classpath exemption to globals_vectorApiSupport_***.S.inc
Reviewed-by: sviswanathan
2022-05-05 22:26:10 +00:00
Joe Darcy
59ef76a365 8285497: Add system property for Java SE specification maintenance version
Reviewed-by: mullan, jpai, iris
2022-05-05 22:23:41 +00:00
Dean Long
6d7e446162 8283306: re-resolving indirect call to non-entrant nmethod can crash
Reviewed-by: thartmann, never
2022-05-05 21:28:50 +00:00
Evgeny Astigeevich
4957bc7396 8286056: AArch64: clarify uses of MacroAssembler::far_call/MacroAssembler::far_jump
Reviewed-by: aph, kvn, phh
2022-05-05 20:55:55 +00:00
Alexey Semenyuk
e7adc283c6 8284675: "jpackage.exe" creates application launcher without Windows Application Manfiest
Reviewed-by: erikj
2022-05-05 20:25:32 +00:00
Alexey Semenyuk
9644a314cf 8285616: [macos] Incorrect path for launcher-as-service.txt in .cfg file
Reviewed-by: almatvee
2022-05-05 20:21:47 +00:00
Roger Riggs
2f995c8d2b 8286199: ProblemList jdk/jshell/ExternalEditorTest.java
Reviewed-by: dcubed
2022-05-05 20:03:42 +00:00
Naoto Sato
2293448531 8272352: Java launcher can not parse Chinese character when system locale is set to UTF-8
Reviewed-by: rriggs
2022-05-05 19:59:58 +00:00
Alex Menkov
1bba64070e 8284027: vmTestbase/nsk/jvmti/GetAllThreads/allthr001/ is failing
Reviewed-by: sspitsyn, cjplummer
2022-05-05 19:41:41 +00:00
Hannes Wallnöfer
5ac7186c9e 8282559: Allow multiple search terms in javadoc search
Reviewed-by: jjg
2022-05-05 14:46:43 +00:00
Roger Riggs
7022543fcf 8286195: ProblemList test/lib-test/jdk/test/lib/TestMutuallyExclusivePlatformPredicates.java
Reviewed-by: dcubed, lancea
2022-05-05 14:45:14 +00:00
Athijegannathan Sundararajan
ede06c3c5f 8282060: RemoteRuntimeImageTest is not actually testing on JDK 8
Reviewed-by: alanb, erikj
2022-05-05 13:24:00 +00:00
Andrey Turbanov
dce860aa8a 8285947: Avoid redundant HashMap.containsKey calls in ZoneName
Reviewed-by: scolebourne, naoto, rriggs
2022-05-05 13:19:14 +00:00
Matthias Baesken
9d2f591e6a 8285987: executing shell scripts without #! fails on Alpine linux
Reviewed-by: mdoerr, goetz
2022-05-05 12:45:32 +00:00
Albert Mingkun Yang
fd41e65fa8 8286115: G1: G1RemSetArrayOfCardsEntriesBase off-by-one error
Reviewed-by: iwalulya, tschatzl
2022-05-05 12:31:41 +00:00
Zdenek Zambersky
7e88ff8a82 8282600: SSLSocketImpl should not use user_canceled workaround when not necessary
Reviewed-by: xuelei, wetmore
2022-05-05 12:13:20 +00:00
Prasanta Sadhukhan
81d7475d20 7132796: [macosx] closed/javax/swing/JComboBox/4517214/bug4517214.java fails on MacOS
Reviewed-by: serb
2022-05-05 08:50:07 +00:00
Emanuel Peter
4a5e7a1ada 8282555: Missing memory edge when spilling MoveF2I, MoveD2L etc
Reviewed-by: kvn, thartmann, jbhateja
2022-05-05 08:15:53 +00:00
Tyler Steele
1bb4de2e28 8285956: (fs) Excessive default poll interval in PollingWatchService
Reviewed-by: stuefe, bpb
2022-05-05 04:05:55 +00:00
Jatin Bhateja
3092b5615d 8284813: x86 Code cleanup related to move instructions.
Reviewed-by: kvn, sviswanathan
2022-05-05 03:20:01 +00:00
Yasumasa Suenaga
d43ae723b8 8286105: SourceRevision.gmk should respect GIT variable
Reviewed-by: sgehwolf, erikj
2022-05-05 00:27:42 +00:00
Vikey Chen
7d545084f4 8283606: Tests may fail with zh locale on MacOS
Reviewed-by: iklam, rriggs
2022-05-05 00:06:24 +00:00
Srinivas Mandalika
158d871d05 8285693: Create an automated test for JDK-4702199
Reviewed-by: serb
2022-05-04 23:32:51 +00:00
Pavel Rappo
bb022b24cf 8285470: Improve handling of @inheritDoc
Reviewed-by: jjg
2022-05-04 20:55:01 +00:00
Hai-May Chao
09e6ee96bd 8255552: Add DES/3DES/MD5 to jdk.security.legacyAlgorithms
Reviewed-by: mullan, weijun
2022-05-04 20:35:16 +00:00
Liam Miller-Cushon
4d30a1e8d1 8284220: TypeMirror#toString omits enclosing class names after JDK-8281238
Reviewed-by: darcy
2022-05-04 20:25:36 +00:00
Jonathan Gibbons
28e6d805f4 8285869: Selective cleanup in doclint Checker class
Reviewed-by: iris, prappo
2022-05-04 20:23:23 +00:00
Doug Lea
00e6c63cd1 8277090: jsr166 refresh for jdk19
Reviewed-by: alanb, psandoz
2022-05-04 19:24:19 +00:00
Xin Liu
c5a0687f80 8285976: compiler/exceptions/OptimizeImplicitExceptions.java can't pass with -XX:+DeoptimizeALot
Reviewed-by: kvn, thartmann, simonis
2022-05-04 17:59:39 +00:00
Yasser Bazzi Bordonal
df8c2be5fe 8279598: Provide adapter from RandomGenerator to Random
Reviewed-by: smarks, darcy
2022-05-04 17:55:50 +00:00
Daniel D. Daugherty
497a94fead 8286138: ProblemList javax/swing/JInternalFrame/8146321/JInternalFrameIconTest.java on macosx-aarch64
Reviewed-by: bpb
2022-05-04 16:38:09 +00:00
Aleksey Shipilev
7b7207a45a 8280003: C1: Reconsider uses of logical_and immediates in LIRGenerator::do_getObjectSize
Co-authored-by: Sergey Nazarkin <snazarki@openjdk.org>
Reviewed-by: snazarki, dlong, iveresov
2022-05-04 15:39:56 +00:00
Brian Burkhalter
17cc7131ab 8274112: (fc) Tune FileChannel.transferTo()
Reviewed-by: alanb, lancea, rriggs
2022-05-04 14:33:16 +00:00
Matthias Baesken
7424f47557 8286114: [test] show real exception in bomb call in sun/rmi/runtime/Log/checkLogging/CheckLogging.java
Reviewed-by: rriggs, mdoerr
2022-05-04 14:30:48 +00:00
Coleen Phillimore
29c2e54cf6 8286092: Remove dead windows stack code
Reviewed-by: iklam, dholmes
2022-05-04 12:51:20 +00:00
Lutz Schmidt
4e1e76acfb 8278757: [s390] Implement AES Counter Mode Intrinsic
Reviewed-by: mdoerr, stuefe
2022-05-04 09:39:19 +00:00
Johannes Bechberger
4b2c82200f 8282477: [x86, aarch64] vmassert(_last_Java_pc == NULL, "already walkable"); fails with async profiler
Reviewed-by: dholmes, mdoerr, dlong
2022-05-04 07:54:52 +00:00
Albert Mingkun Yang
ca9d039fd3 8285934: Remove unimplemented MemTracker::init_tracking_level
Reviewed-by: coleenp
2022-05-04 07:53:04 +00:00
Sibabrata Sahoo
0462d5a252 8285452: Add a new test library API to replace a file content using FileUtils.java
Co-authored-by: Weijun Wang <weijun@openjdk.org>
Reviewed-by: weijun, dfuchs
2022-05-04 06:56:16 +00:00
Doug Simon
4282fb2b0d 8286063: check compiler queue after calling AbstractCompiler::on_empty_queue
Reviewed-by: kvn
2022-05-04 04:55:27 +00:00
Weijun Wang
075ce8a0d0 8286069: keytool prints out wrong key algorithm for -importpass command
Reviewed-by: hchao, valeriep
2022-05-04 02:56:18 +00:00
Daniel D. Daugherty
efcd3d3a8f 8286088: add comment to InstallAsyncExceptionHandshake destructor
Reviewed-by: dholmes
2022-05-03 21:26:53 +00:00
Dean Long
f82dd76614 8285885: Replay compilation fails with assert(is_valid()) failed: check invoke
Reviewed-by: thartmann, kvn
2022-05-03 21:00:37 +00:00
Coleen Phillimore
be67acdf5c 8285832: runtime/Thread/TooSmallStackSize.java failed "assert(k->is_initialized()) failed: need to increase java_thread_min_stack_allowed calculation"
Reviewed-by: dholmes, fparain, iklam
2022-05-03 17:43:12 +00:00
Alexander Zuev
39e50c2d69 8273506: java Robot API did the 'm' keypress and caused /awt/event/KeyEvent/KeyCharTest/KeyCharTest.html is timing out on macOS 12
Reviewed-by: serb
2022-05-03 17:08:17 +00:00
Joe Darcy
3cbf769f55 8285977: Add links to IEEE 754 specification
Reviewed-by: jjg, iris, bpb
2022-05-03 16:58:19 +00:00
Igor Veresov
4434c7df03 8265360: several compiler/whitebox tests fail with "private compiler.whitebox.SimpleTestCaseHelper(int) must be compiled"
Reviewed-by: kvn, thartmann
2022-05-03 16:02:22 +00:00
Xue-Lei Andrew Fan
ffca23a531 8284490: Remove finalizer method in java.security.jgss
Reviewed-by: rriggs, dfuchs, weijun
2022-05-03 14:14:09 +00:00
Matthias Baesken
0f62cb6fcc 8285921: serviceability/dcmd/jvmti/AttachFailed/AttachReturnError.java fails on Alpine
Reviewed-by: stuefe, dholmes
2022-05-03 11:21:57 +00:00
Roberto Castañeda Lozano
6fcd322258 8279622: C2: miscompilation of map pattern as a vector reduction
Reviewed-by: roland, kvn, thartmann
2022-05-03 11:08:48 +00:00
Roberto Castañeda Lozano
af1ee1cc55 8283684: IGV: speed up filter application
Reviewed-by: thartmann, kvn
2022-05-03 07:42:18 +00:00
Roberto Castañeda Lozano
7a4835178d 8280568: IGV: Phi inputs and pinned nodes are not scheduled correctly
Reviewed-by: kvn, thartmann
2022-05-03 07:27:50 +00:00
Ioi Lam
64b5b2b0b3 8282828: CDS uncompressed oops archive is not deterministic
Reviewed-by: erikj, ihse, ccheung
2022-05-03 04:06:56 +00:00
Jaikiran Pai
45ca81ff5f 8285915: failure_handler: gather the contents of /etc/hosts file
Reviewed-by: dfuchs, erikj
2022-05-03 01:23:01 +00:00
Jie Fu
3420a1aa70 8286013: Incorrect test configurations for compiler/stable/TestStableShort.java
Reviewed-by: shade, thartmann
2022-05-02 22:41:59 +00:00
Jie Fu
fbcd874907 8285979: G1: G1SegmentedArraySegment::header_size() is incorrect since JDK-8283368
Reviewed-by: tschatzl, iwalulya
2022-05-02 22:41:06 +00:00
Weijun Wang
50a4df87c8 8286024: PKCS12 keystore shows "DES/CBC" as the algorithm of a DES SecretKeyEntry
Reviewed-by: valeriep
2022-05-02 22:37:32 +00:00
Jonathan Gibbons
f973b78383 8286028: Some -Xlint keys are missing in javac man page
Co-authored-by: Ethan McCue <emccue@live.com>
Reviewed-by: darcy
2022-05-02 21:12:04 +00:00
Brian Burkhalter
9d8c3bf9f8 8285745: Re-examine PushbackInputStream mark/reset
Reviewed-by: jpai, alanb
2022-05-02 18:19:36 +00:00
Daniel D. Daugherty
41de506ed6 8285507: revert fix for JDK-8282704 now that JDK-8282952 is fixed
Reviewed-by: dholmes, pchilanomate
2022-05-02 15:39:06 +00:00
Thomas Schatzl
7a95a40e03 8285970: gc/arguments/TestUseCompressedOopsFlagsWithUlimit.java still fails after JDK-8285011
Reviewed-by: ayang, dcubed
2022-05-02 15:30:35 +00:00
Daniel D. Daugherty
4a79270c01 8284632: runtime/Thread/StopAtExit.java possibly leaking memory again
Reviewed-by: pchilanomate, rehn
2022-05-02 15:23:03 +00:00
Weijun Wang
cfcba1fccc 8285827: Describe the keystore.pkcs12.legacy system property in the java.security file
Reviewed-by: mullan
2022-05-02 14:03:24 +00:00
Thomas Schatzl
7020595631 8284435: Add dedicated filler objects for known dead Java heap areas
Reviewed-by: iklam, iwalulya
2022-05-02 11:03:57 +00:00
Jie Fu
1f9f8738f3 8285980: Several tests in compiler/c2/irTests miss @requires vm.compiler2.enabled
Reviewed-by: thartmann
2022-05-02 10:38:31 +00:00
Johan Sjölén
cf81f6cf5b 8285712: LogMessageBuffer doesn't check vsnprintf return value
Reviewed-by: dholmes, iklam
2022-05-02 10:19:54 +00:00
Aleksey Shipilev
9795ef5dd3 8285851: Cleanup C2AtomicParseAccess::needs_pinning()
Reviewed-by: thartmann
2022-05-02 07:05:39 +00:00
Pavel Rappo
3eb661bbe7 8285890: Fix some @param tags
Reviewed-by: dfuchs, mullan, darcy, mchung, wetmore
2022-04-30 21:21:17 +00:00
Johan Sjölén
d9541c5e9f 8276202: LogFileOutput.invalid_file_vm asserts when being executed from a read only working directory
Reviewed-by: dholmes, stuefe
2022-04-30 08:00:26 +00:00
Fei Gao
df7fba1cda 8284981: Support the vectorization of some counting-down loops in SLP
Reviewed-by: roland, kvn
2022-04-30 07:39:16 +00:00
Jie Fu
e54f26aa3d 8284992: Fix misleading Vector API doc for LSHR operator
Reviewed-by: psandoz
2022-04-29 23:01:37 +00:00
Damon Nguyen
2dd882af08 8254759: [TEST_BUG] [macosx] javax/swing/JInternalFrame/4202966/IntFrameCoord.html fails
Reviewed-by: prr, kizune
2022-04-29 20:26:26 +00:00
Daniel D. Daugherty
23f022bd37 8285945: [BACKOUT] JDK-8285802 AArch64: Consistently handle offsets in MacroAssembler as 64-bit quantities
Reviewed-by: kvn
2022-04-29 20:16:17 +00:00
Kevin Walls
116763cb5d 8284331: Add sanity check for signal handler modification warning.
Reviewed-by: dholmes, amenkov
2022-04-29 20:14:55 +00:00
Leonid Mesnik
95d38bbd6b 8285773: Replace Algorithms.eatMemory(...) with WB.fullGC() in vmTestbase/gc/gctests/ReferencesGC/ReferencesGC.java
Reviewed-by: tschatzl, kbarrett
2022-04-29 19:33:41 +00:00
Dean Long
cd8709e8e0 8284883: JVM crash: guarantee(sect->end() <= sect->limit()) failed: sanity on AVX512
Reviewed-by: kvn, jbhateja
2022-04-29 19:09:58 +00:00
Naoto Sato
3d07b3c7f0 8282227: Locale information for nb is not working properly
Reviewed-by: rriggs
2022-04-29 17:20:41 +00:00
Daniel D. Daugherty
cfe67af209 8285938: ProblemList jdk/jshell/HighlightUITest.java on linux-x64
Reviewed-by: darcy, azvegint
2022-04-29 17:11:14 +00:00
Phil Race
67dd8a8d6a 8285686: Upgrade to FreeType 2.12.0
Reviewed-by: serb, jdv
2022-04-29 16:40:06 +00:00
Magnus Ihse Bursie
64225e1999 8285919: Remove debug printout from JDK-8285093
Reviewed-by: erikj
2022-04-29 13:26:10 +00:00
Andrew Haley
df4d5cf5f5 8285802: AArch64: Consistently handle offsets in MacroAssembler as 64-bit quantities
Reviewed-by: ngasson, adinn
2022-04-29 13:01:05 +00:00
Sean Mullan
694556e137 8225433: Clarify behavior of PKIXParameters.setRevocationEnabled when PKIXRevocationChecker is used
Reviewed-by: xuelei, hchao
2022-04-29 12:27:43 +00:00
Roland Westrelin
e98ac23553 8285793: C2: optimization of mask checks in counted loops fail in the presence of cast nodes
Reviewed-by: kvn, thartmann
2022-04-29 11:19:27 +00:00
Manukumar V S
669ac611b2 8274597: Some of the dnd tests time out and fail intermittently
8028998: [TEST_BUG] [macosx] java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java failed

Reviewed-by: serb
2022-04-29 10:33:44 +00:00
Jaikiran Pai
269eae6189 8285515: (dc) DatagramChannel.disconnect fails with "Invalid argument" on macOS 12.4 beta2
Reviewed-by: dfuchs, alanb
2022-04-29 09:15:56 +00:00
Jie Fu
c4f7a850c6 8285828: runtime/execstack/TestCheckJDK.java fails with zipped debug symbols
Reviewed-by: dholmes, stuefe
2022-04-29 08:50:06 +00:00
Martin Doerr
d3606a34fa 8285390: PPC64: Handle integral division overflow during parsing
Reviewed-by: lucy
2022-04-29 08:33:23 +00:00
Sergey Bylokhov
f42631e354 8285523: Improve test java/io/FileOutputStream/OpenNUL.java
Reviewed-by: andrew, bpb
2022-04-29 07:34:46 +00:00
Xiaolin Zheng
b71e8c1649 8285711: riscv: RVC: Support disassembler show-bytes option
Reviewed-by: fyang
2022-04-29 06:45:49 +00:00
Jatin Bhateja
e4066628ad 8282711: Accelerate Math.signum function for AVX and AVX512 target.
Reviewed-by: sviswanathan, thartmann
2022-04-29 06:34:09 +00:00
Tobias Hartmann
0a4a6403bb 8285301: C2: assert(!requires_atomic_access) failed: can't ensure atomicity
Reviewed-by: kvn, dlong
2022-04-29 06:12:43 +00:00
Sergey Bylokhov
40f19c014f 8264666: Change implementation of safeAdd/safeMult in the LCMSImageLayout class
Reviewed-by: prr
2022-04-29 05:53:31 +00:00
Srikanth Adayapalam
1e28fcbc5f 8155701: The compiler fails with an AssertionError: typeSig ERROR
Reviewed-by: vromero
2022-04-29 05:04:23 +00:00
Manukumar V S
99388eff8d 8283624: Create an automated regression test for RFE-4390885
Reviewed-by: serb
2022-04-29 04:09:55 +00:00
Yadong Wang
94b533a94c 8285699: riscv: Provide information when hitting a HaltNode
Reviewed-by: fyang
2022-04-29 03:19:29 +00:00
Joe Darcy
e2e943adcb 8285688: Add links to JEPs and JSRs to SourceVersion
Reviewed-by: vromero, jjg, iris
2022-04-29 01:05:26 +00:00
Jonathan Gibbons
80cf59ff0b 8285610: TreeInfo.pathFor and its uses appear to be dead code
Reviewed-by: vromero
2022-04-29 00:35:24 +00:00
Jonathan Gibbons
21b62fef33 8195589: T6587786.java failed after JDK-8189997
Reviewed-by: iris, vromero
2022-04-29 00:34:26 +00:00
Jonathan Gibbons
8190217971 8285496: DocLint does not check for missing @param tags for type parameters on classes and interfaces
Reviewed-by: darcy, iris
2022-04-29 00:32:56 +00:00
Phil Race
64d98ba100 8285094: Test java/awt/Frame/InvisibleOwner/InvisibleOwner.java failing on Linux
Reviewed-by: psadhukhan, serb
2022-04-29 00:06:36 +00:00
Mark Powers
573eaceca5 8285504: Minor cleanup could be done in javax.net
Reviewed-by: wetmore
2022-04-28 22:18:36 +00:00
Joe Darcy
bba456a8db 8285676: Add missing @param tags for type parameters on classes and interfaces
Reviewed-by: wetmore, smarks, dfuchs, prr, alanb, mchung
2022-04-28 18:00:34 +00:00
Xue-Lei Andrew Fan
b9d1e85151 8285785: CheckCleanerBound test fails with PasswordCallback object is not released
Reviewed-by: dfuchs, mullan, rriggs
2022-04-28 16:10:39 +00:00
Thomas Schatzl
b7185780ff 8285011: gc/arguments/TestUseCompressedOopsFlagsWithUlimit.java fails after JDK-8280761
Co-authored-by: Albert Mingkun Yang <ayang@openjdk.org>
Reviewed-by: ayang, lkorinth
2022-04-28 15:49:27 +00:00
Kim Barrett
2d8d140214 8285690: CloneableReference subtest should not throw CloneNotSupportedException
Reviewed-by: rriggs, mchung
2022-04-28 15:15:17 +00:00
Pengfei Li
ea83b4455b 8280510: AArch64: Vectorize operations with loop induction variable
Reviewed-by: adinn, thartmann
2022-04-28 14:13:24 +00:00
Matthias Baesken
36bf6fbe08 8285728: Alpine Linux build fails with busybox tar
Reviewed-by: erikj, stuefe
2022-04-28 13:33:32 +00:00
Pengfei Li
091637c826 8285630: Fix a configure error in RISC-V cross build
Reviewed-by: erikj, shade, fyang, fjiang
2022-04-28 12:59:38 +00:00
Erik Joelsson
ccf0e8bf90 8285755: JDK-8285093 changed the default for --with-output-sync
Reviewed-by: mikael, mcimadamore
2022-04-28 12:46:57 +00:00
Ron Pressler
d7514b068f 8285595: Assert frame anchor doesn't change in safepoints/handshakes
Reviewed-by: rehn, coleenp
2022-04-28 09:56:31 +00:00
Aleksey Shipilev
5629c7555f 8284848: C2: Compiler blackhole arguments should be treated as globally escaping
Reviewed-by: kvn, thartmann
2022-04-28 08:32:44 +00:00
Aleksey Shipilev
85f8d14edf 8283994: Make Xerces DatatypeException stackless
Reviewed-by: joehw, jpai
2022-04-28 08:30:24 +00:00
Ivan Walulya
4f2e4c7c24 8178969: [TESTBUG] Wrong reporting of gc/g1/humongousObjects/TestHeapCounters test.
Reviewed-by: tschatzl, ayang
2022-04-28 08:04:19 +00:00
Daniel Jeliński
47951655ac 8285696: AlgorithmConstraints:permits not throwing IllegalArgumentException when 'alg' is null
Reviewed-by: jpai, xuelei
2022-04-28 06:20:34 +00:00
Weijun Wang
c1173c24bf 8285493: ECC calculation error
Reviewed-by: xuelei, ascarpino
2022-04-28 02:52:41 +00:00
Xue-Lei Andrew Fan
89fd6d34f8 8284910: Buffer clean in PasswordCallback
Reviewed-by: mullan
2022-04-28 02:48:20 +00:00
Bradford Wetmore
cf1b00a604 8285683: Missing @ since 11 in java.security.spec.MGF1ParameterSpec fields
Reviewed-by: hchao, valeriep, xuelei, mullan
2022-04-27 23:54:37 +00:00
Jonathan Gibbons
3312d8c620 8285756: clean up use of bad arguments for @clean in langtools tests
Reviewed-by: darcy
2022-04-27 22:22:28 +00:00
Chris Plummer
5c0934931b 8285032: vmTestbase/nsk/jdi/EventSet/suspendPolicy/suspendpolicy008/ fails with "eventSet.suspendPolicy() != policyExpected"
Reviewed-by: sspitsyn, amenkov
2022-04-27 20:38:18 +00:00
Raffaello Giulietti
1f868f1d09 8285658: Fix two typos in the spec of j.u.random.RandomGenerator
Reviewed-by: bpb, darcy
2022-04-27 19:19:29 +00:00
jeremy
8a16842b4e 8176501: Method Shape.getBounds2D() incorrectly includes Bezier control points in bounding box
Reviewed-by: prr
2022-04-27 18:37:42 +00:00
Maxim Kartashev
05dac5a23e 8280468: Crashes in getConfigColormap, getConfigVisualId, XVisualIDFromVisual on Linux
Reviewed-by: serb, prr
2022-04-27 18:19:55 +00:00
Srinivas Mandalika
6db2e16b94 8284077: Create an automated test for JDK-4170173
Reviewed-by: serb
2022-04-27 18:15:36 +00:00
Srinivas Mandalika
a0b984a778 8282933: Create a test for JDK-4529616
Reviewed-by: serb
2022-04-27 18:14:31 +00:00
Chris Plummer
716a80a838 8283179: SA tests fail with "ERROR: catch_mach_exception_raise: Message doesn't denote a Unix soft signal."
Reviewed-by: dholmes, amenkov
2022-04-27 17:57:34 +00:00
Claes Redestad
6c79671e50 8285633: Take better advantage of generic MethodType cache
Reviewed-by: jvernee
2022-04-27 17:54:21 +00:00
Daniel D. Daugherty
5b42747ba1 8285736: JDK-8236128 causes validate-source failures
Reviewed-by: mikael, asemenyuk
2022-04-27 17:16:45 +00:00
Thomas Stuefe
6ce4e755a4 8284726: Print active locale settings in hs_err reports and in VM.info
Reviewed-by: dholmes, mbaesken, kevinw
2022-04-27 16:50:22 +00:00
Alexey Semenyuk
b675c597e3 8236128: Allow jpackage create installers for services
Reviewed-by: almatvee
2022-04-27 16:32:29 +00:00
Michael McMahon
ef27081fe7 8285671: java/nio/channels/etc/PrintSupportedOptions.java and java/nio/channels/DatagramChannel/AfterDisconnect.java are failing
Reviewed-by: dfuchs
2022-04-27 16:14:57 +00:00
Johnny Lim
4919525ddb 8285440: Typo in Collections.addAll method javadoc
Reviewed-by: jpai, rriggs
2022-04-27 14:18:51 +00:00
lawrence.andrews
e7c3b9de64 8285617: Fix java/awt/print/PrinterJob/ImagePrinting/PrintARGBImage.java manual test
Reviewed-by: prr, psadhukhan
2022-04-27 12:23:20 +00:00
Thomas Stuefe
16a8ebbf05 8285675: Temporary fix for arm32 SafeFetch
Reviewed-by: mdoerr
2022-04-27 11:28:55 +00:00
Prasanta Sadhukhan
72f82dd723 8208565: [TEST_BUG] javax\swing\PopupFactory\6276087\NonOpaquePopupMenuTest.java throws NPE
8065099: [macos] javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java fails: no background shine through

Reviewed-by: jdv
2022-04-27 07:15:46 +00:00
Ioi Lam
4714fdcd6a 8285279: ArgumentsTest.set_numeric_flag_double_vm fails on some locales (again)
Reviewed-by: dholmes
2022-04-27 04:58:13 +00:00
Alisen Chung
cc89f1bc61 8198622: java/awt/Focus/TypeAhead/TestFocusFreeze.java fails on mac
6447537: EnqueueWithDialogTest & TestFocusFreeze fail

Reviewed-by: jdv
2022-04-27 04:34:21 +00:00
Eric Liu
d3ea4b7bb4 8283435: AArch64: [vectorapi] Optimize SVE lane/withLane operations for 64/128-bit vector sizes
Reviewed-by: njian, ngasson
2022-04-27 01:22:27 +00:00
Harshitha Onkar
16ebe40a1b 8251177: [macosx] The text "big" is truncated in JTabbedPane
Reviewed-by: psadhukhan, kizune, serb
2022-04-26 22:55:43 +00:00
Alexander Zuev
e574cc0e2b 8196367: java/awt/List/SingleModeDeselect/SingleModeDeselect.java times out
Reviewed-by: prr
2022-04-26 20:54:53 +00:00
Weijun Wang
14e7d91199 8285404: RSA signature verification should reject non-DER OCTET STRING
Reviewed-by: valeriep
2022-04-26 20:47:59 +00:00
Phil Race
110edd9999 8284965: closed test sun/java2d/OpenGL/XORPaint.java is unstable
Reviewed-by: serb
2022-04-26 20:31:44 +00:00
Alisen Chung
dbcf38932e 8198666: Many java/awt/Modal/OnTop/ test fails on mac
Reviewed-by: kizune, serb
2022-04-26 20:30:45 +00:00
Alisen Chung
102a305f73 8202790: DnD test DisposeFrameOnDragTest.java does not clean up
Reviewed-by: serb, kizune, prr
2022-04-26 20:29:48 +00:00
Daniel D. Daugherty
e3d714d37e 8285677: ProblemList two tests from JDK-8285671 on macosx-x64
Reviewed-by: dfuchs
2022-04-26 19:40:32 +00:00
Harold Seigel
975a060ade 8284642: Unexpected behavior of -XX:MaxDirectMemorySize=0
Reviewed-by: stuefe, dholmes
2022-04-26 19:01:09 +00:00
Naoto Sato
03bcf7b6d1 8283620: System.out does not use the encoding/charset specified in the Javadoc
Reviewed-by: alanb
2022-04-26 16:05:20 +00:00
Jonathan Gibbons
20a132d460 8284994: -Xdoclint:all returns warning for records, even when documented properly
Reviewed-by: vromero
2022-04-26 15:42:18 +00:00
Brian Burkhalter
a3b788144e 8284930: Re-examine FilterInputStream mark/reset
Reviewed-by: alanb, jpai, dfuchs, lancea
2022-04-26 15:35:45 +00:00
Tyler Steele
97a0a292a6 8283643: [AIX, testbug] MachCodeFramesInErrorFile test fails to find 'Native frames' text
Reviewed-by: dnsimon, dholmes
2022-04-26 15:26:21 +00:00
Michael McMahon
67755edd6f 8284890: Support for Do not fragment IP socket options
Reviewed-by: erikj, ihse, dfuchs
2022-04-26 13:49:58 +00:00
Andrew Haley
a7b5157375 8282541: AArch64: Auto-vectorize Math.round API
Reviewed-by: njian, ngasson, adinn
2022-04-26 13:43:12 +00:00
Tobias Hartmann
8de3c65545 8284951: Compile::flatten_alias_type asserts with "indeterminate pointers come only from unsafe ops"
Reviewed-by: kvn, roland
2022-04-26 12:05:24 +00:00
Daniel Fuchs
552e1b0b8a 8284779: Test java/util/logging/Logger/logrb/TestLogrbResourceBundle.java fails intermittently with vthreads wrapper
Reviewed-by: alanb
2022-04-26 11:55:20 +00:00
Pavel Rappo
e333cd33d1 8285611: Retrofit (Doc)Pretty with java.io.UncheckedIOException
Reviewed-by: jjg
2022-04-26 07:48:37 +00:00
Dean Long
947869609c 8283441: C2: segmentation fault in ciMethodBlocks::make_block_at(int)
Reviewed-by: kvn, thartmann
2022-04-26 07:25:47 +00:00
Daniel Jeliński
00e9c96d51 8285398: Cache the results of constraint checks
Reviewed-by: coffeys, xuelei
2022-04-26 05:55:52 +00:00
Xiaolin Zheng
4bf2c18d6c 8285435: Show file and line in MacroAssembler::verify_oop for AArch64 and RISC-V platforms (Port from x86)
Reviewed-by: ngasson, fyang
2022-04-25 23:57:08 +00:00
Joe Darcy
d435d692b0 8285614: Fix typo in java.lang.Float
Reviewed-by: naoto, lancea, iris
2022-04-25 23:03:11 +00:00
Smita Kamath
3416bfa256 8283022: com/sun/crypto/provider/Cipher/AEAD/GCMBufferTest.java failing with -Xcomp after 8273297
Reviewed-by: ascarpino
2022-04-25 22:45:00 +00:00
Jonathan Gibbons
80a7f7becf 8267690: Revisit (Doc)Tree search implemented by throwing an exception
Reviewed-by: vromero, prappo
2022-04-25 20:54:11 +00:00
Calvin Cheung
9b8270895e 8284319: Test runtime/cds/appcds/TestParallelGCWithCDS.java fails in repo-loom
Reviewed-by: iklam
2022-04-25 20:50:56 +00:00
Raffaello Giulietti
fb605944b5 8285477: Add a PRECISION public static field to j.l.Float and j.l.Double
Reviewed-by: darcy
2022-04-25 17:18:46 +00:00
Calvin Cheung
1e79ded98a 8284889: runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java#custom-cl-zgc timed out
Reviewed-by: iklam
2022-04-25 16:54:44 +00:00
Anthony Scarpino
414918d911 8285389: EdDSA trimming zeros
Reviewed-by: xuelei
2022-04-25 15:31:49 +00:00
Alexander Zvegintsev
293bc5e5cd 8129778: Few awt test fail for Solaris 11 with RuntimeException
Reviewed-by: serb, prr
2022-04-25 10:02:56 +00:00
Alexander Zvegintsev
36f2e5240b 8225777: java/awt/Mixing/MixingOnDialog.java fails on Ubuntu
Reviewed-by: prr, serb
2022-04-25 10:01:26 +00:00
Roland Westrelin
32593df392 8279888: Local variable independently used by multiple loops can interfere with loop optimizations
Co-authored-by: Claes Redestad <redestad@openjdk.org>
Reviewed-by: thartmann, kvn
2022-04-25 09:30:00 +00:00
Jan Lahoda
4c22a9bcf9 8282823: javac should constrain more uses of preview APIs
Reviewed-by: jlaskey, mcimadamore, vromero
2022-04-25 09:10:44 +00:00
Roland Westrelin
dc6358444b 8273115: CountedLoopEndNode::stride_con crash in debug build with -XX:+TraceLoopOpts
Reviewed-by: kvn, thartmann
2022-04-25 08:32:50 +00:00
Matthias Baesken
c5aa75dd81 8285439: remove unused os::fsync
Reviewed-by: hseigel, dholmes
2022-04-25 06:43:56 +00:00
Xiaolin Zheng
9d9f4e502f 8285437: riscv: Fix MachNode size mismatch for MacroAssembler::verify_oops*
Reviewed-by: shade, fyang
2022-04-24 02:17:03 +00:00
Alexander Zvegintsev
08024d9583 8193543: Regression automated test '/open/test/jdk/java/awt/TrayIcon/SystemTrayInstance/SystemTrayInstanceTest.java' fails
Reviewed-by: serb
2022-04-23 20:41:55 +00:00
Alexander Zvegintsev
a1efb95536 8129827: [TEST_BUG] Test java/awt/Robot/RobotWheelTest/RobotWheelTest.java fails
Reviewed-by: psadhukhan
2022-04-23 20:39:39 +00:00
Brian Burkhalter
03cbb48e6a 8285445: cannot open file "NUL:"
Reviewed-by: mikael
2022-04-23 15:51:04 +00:00
Xue-Lei Andrew Fan
e9d604a3e5 8285431: Assertion in NativeGSSContext constructor
Reviewed-by: djelinski, valeriep
2022-04-23 14:28:18 +00:00
Doug Simon
357b1b18c2 8242440: use separate, destroyable JavaVM instances per libgraal compiler thread
Reviewed-by: kvn, thartmann
2022-04-23 06:08:11 +00:00
Feilong Jiang
b10833bbf3 8285303: riscv: Incorrect register mask in call_native_base
Co-authored-by: Dingli Zhang <dingli@iscas.ac.cn>
Reviewed-by: fyang, yadongwang
2022-04-22 23:48:57 +00:00
Aleksey Shipilev
ce8db2c403 8285394: Compiler blackholes can be eliminated due to stale ciMethod::intrinsic_id()
Reviewed-by: kvn, dlong
2022-04-22 17:11:34 +00:00
Magnus Ihse Bursie
4e252cf3c4 8285370: Fix typo in jdk.charsets
Reviewed-by: alanb, naoto
2022-04-22 14:04:13 +00:00
Matthias Baesken
d8025c95cd 8285362: unify os::pause platform coding
Reviewed-by: dholmes, lucy
2022-04-22 13:41:08 +00:00
Thomas Schatzl
82f0ac02e0 8284995: G1: Do not mark through Closed Archive regions during concurrent mark
Reviewed-by: iwalulya, ayang
2022-04-22 09:04:42 +00:00
Tobias Holenstein
165f516101 8277056: Combining several C2 Print* flags asserts in xmlStream::pop_tag
Reviewed-by: kvn, thartmann, xliu, dlong
2022-04-22 08:40:12 +00:00
Roberto Castañeda Lozano
139615b181 8285369: C2: emit reduction flag value in node and loop dumps
Reviewed-by: kvn
2022-04-22 07:38:01 +00:00
Prasanta Sadhukhan
80219a48c3 8284993: Replace System.exit call in swing tests with RuntimeException
Reviewed-by: azvegint
2022-04-22 06:48:01 +00:00
Jie Fu
d84b9c5489 8285342: Zero build failure with clang due to values not handled in switch
Reviewed-by: shade, aph
2022-04-21 23:46:59 +00:00
Stuart Marks
58155a723e 8285386: java/util/HashMap/WhiteBoxResizeTest.java fails in tier7 after JDK-8186958
Reviewed-by: lancea
2022-04-21 22:28:14 +00:00
Naoto Sato
f6e9ca0cbe 8283324: CLDRConverter run time increased by 3x
Reviewed-by: ihse
2022-04-21 22:23:24 +00:00
Alexey Ivanov
ec4fb47b90 8284189: Replace usages of 'a the' in java.desktop
Reviewed-by: jdv, prr, dmarkov
2022-04-21 19:12:57 +00:00
Martin Doerr
e955cacb91 8285040: PPC64 intrinsics for divideUnsigned and remainderUnsigned methods in java.lang.Integer and java.lang.Long
Reviewed-by: kvn, lucy
2022-04-21 16:00:28 +00:00
Calvin Cheung
73f3e17ea7 8213445: jcmd VM.symboltable and VM.stringtable -verbose output contains no shared symbols or strings
Reviewed-by: iklam, dholmes
2022-04-21 15:40:29 +00:00
Matthias Baesken
f166b5b13b 8285307: remove unused os::available
Reviewed-by: dholmes, zgu, lucy
2022-04-21 14:02:51 +00:00
Jim Laskey
85641c651d 8283084: RandomGenerator nextDouble(double, double) is documented incorrectly
Reviewed-by: bpb, darcy
2022-04-21 13:45:50 +00:00
Jim Laskey
4732b1d038 8274683: Code example provided by RandomGeneratorFactory does not compile
Reviewed-by: darcy
2022-04-21 13:40:02 +00:00
Alexander Zvegintsev
42baaa3bb8 8023814: Test java/awt/im/memoryleak/InputContextMemoryLeakTest.java fails
Reviewed-by: psadhukhan
2022-04-21 13:03:30 +00:00
Jaikiran Pai
9a905ccc5e 8285361: ClassCastExceptionForInvalidSurface.java has an incorrect copyright header
Reviewed-by: dholmes
2022-04-21 10:38:40 +00:00
Prasanta Sadhukhan
994a439e09 8277816: Client tests fail on macos-Aarch64 host
Reviewed-by: serb, azvegint
2022-04-21 10:15:51 +00:00
Alexey Ushakov
90983431c5 8283794: CCE in XRTextRenderer.drawGlyphList and XRMaskFill.MaskFill
Reviewed-by: serb, aghaisas
2022-04-21 09:56:39 +00:00
Pavel Rappo
d6b5a63577 8284908: Refine diagnostic positions for DCErroneous
Reviewed-by: jjg
2022-04-21 08:57:16 +00:00
Feilong Jiang
fa04d1f832 8284949: riscv: Add Zero support for the 32-bit RISC-V architecture
Co-authored-by: Junfeng Xie <xiejunfeng3@huawei.com>
Reviewed-by: erikj, stuefe, ihse, yadongwang
2022-04-21 07:35:32 +00:00
Joe Wang
994f2e9271 8284548: Invalid XPath expression causes StringIndexOutOfBoundsException
Reviewed-by: naoto, lancea
2022-04-20 23:08:07 +00:00
Vladimir Kozlov
691c5da593 8285266: compiler/intrinsics/sha/cli/TestUseSHA256IntrinsicsOptionOnUnsupportedCPU.java fails after JDK-8284563
Reviewed-by: mikael
2022-04-20 22:41:17 +00:00
Magnus Ihse Bursie
94afb366b2 8285093: Introduce UTIL_ARG_WITH
Reviewed-by: erikj
2022-04-20 21:05:01 +00:00
Doug Simon
8543aaa7eb 8283839: [JVMCI] add support for querying indy bootstrap method target and arguments
Reviewed-by: psandoz, kvn
2022-04-20 20:25:00 +00:00
Joe Wang
81a8e2f8b3 8284920: Incorrect Token type causes XPath expression to return incorrect results
Reviewed-by: naoto, lancea
2022-04-20 19:22:12 +00:00
Weijun Wang
05ae7ed1aa 8284291: sun/security/krb5/auto/Renew.java fails intermittently on Windows 11
Reviewed-by: aturbanov, ascarpino
2022-04-20 18:57:55 +00:00
Stuart Marks
b2c33f0f86 8282120: optimal capacity tests and test library need to be cleaned up
Reviewed-by: naoto
2022-04-20 18:43:54 +00:00
Daniel Jeliński
d8446b4f60 8284694: Avoid evaluating SSLAlgorithmConstraints twice
Reviewed-by: redestad, xuelei, coffeys
2022-04-20 18:15:16 +00:00
Xin Liu
cb16e41089 8283541: Add Statical counters and some comments in PhaseStringOpts
Reviewed-by: thartmann, kvn
2022-04-20 17:38:24 +00:00
Valerie Peng
15ce8c6195 8284553: Deprecate the DEFAULT static field of OAEPParameterSpec
Reviewed-by: mullan
2022-04-20 17:23:06 +00:00
Tim Prinzing
e8016f7443 8281006: Module::getResourceAsStream should check if the resource is open unconditionally when caller is null
Reviewed-by: alanb, erikj, mchung
2022-04-20 17:02:31 +00:00
Alexander Zuev
018017a917 8266247: Swing test bug7154030.java sometimes fails on macOS 11 ARM
Reviewed-by: psadhukhan
2022-04-20 16:47:59 +00:00
Joe Darcy
e6c5f2886c 8280594: Refactor annotation invocation handler handling to use Objects.toIdentityString
Reviewed-by: bpb
2022-04-20 16:20:36 +00:00
Quan Anh Mai
b4a85cdae1 8284742: x86: Handle integral division overflow during parsing
Reviewed-by: kvn, mdoerr
2022-04-20 16:17:01 +00:00
Daniel Fuchs
5291ec8d56 8277969: HttpClient SelectorManager shuts down when custom Executor rejects a task
Reviewed-by: jpai, michaelm
2022-04-20 13:09:45 +00:00
Matthias Baesken
6c6d5223df 8284758: [linux] improve print_container_info
Reviewed-by: stuefe, lucy, sgehwolf
2022-04-20 11:08:43 +00:00
Tobias Holenstein
46b2e547a9 8075816: Deprecate AliasLevel flag since it is broken
Reviewed-by: thartmann, kvn
2022-04-20 09:41:53 +00:00
Prasanta Sadhukhan
1b71621008 8042381: Test javax/swing/JRootPane/4670486/bug4670486.java fails with Action has not been received
Reviewed-by: azvegint, kizune
2022-04-20 09:03:48 +00:00
Xue-Lei Andrew Fan
0f81d8fcc3 8284933: Improve debug in jdk.crypto.cryptoki
Reviewed-by: valeriep
2022-04-20 04:36:12 +00:00
Eric Liu
72726c4182 8284563: AArch64: bitperm feature detection for SVE2 on Linux
Reviewed-by: aph, njian
2022-04-20 00:55:56 +00:00
Brian Burkhalter
98d54e8eb2 8282397: createTempFile method of java.io.File is failing when called with suffix of spaces character
Reviewed-by: alanb
2022-04-19 22:18:33 +00:00
Daniel Fuchs
8d456ac0ec 8282300: Throws NamingException instead of InvalidNameException after JDK-8278972
Reviewed-by: coffeys, akolarkunnu
2022-04-19 22:18:33 +00:00
Anthony Scarpino
f61d121124 8281388: Change wrapping of EncryptedPrivateKeyInfo
Reviewed-by: jnimeh
2022-04-19 22:18:33 +00:00
Daniel Fuchs
9e051d5396 8278972: Improve URL supports
Reviewed-by: skoivu, rhalade, alanb
2022-04-19 22:18:33 +00:00
Brian Burkhalter
395bb5b7f9 8278356: Improve file creation
Reviewed-by: alanb, rhalade
2022-04-19 22:18:33 +00:00
Joe Darcy
ee0743801e 8277672: Better invocation handler handling
Reviewed-by: skoivu, mchung, rhalade
2022-04-19 22:18:33 +00:00
Weijun Wang
9ce2d75d0b 8278449: Improve keychain support
Reviewed-by: ahgross, rhalade, mullan
2022-04-19 22:18:33 +00:00
Jayathirth D V
74318dfb9d 8278805: Enhance BMP image loading
Reviewed-by: prr, azvegint, rhalade, mschoene
2022-04-19 22:18:33 +00:00
Joe Wang
616ea1692e 8270504: Better Xpath expression handling
Reviewed-by: naoto, lancea, mschoene, rhalade
2022-04-19 22:18:32 +00:00
Tobias Hartmann
3268aba925 8278798: Improve supported intrinsic
Reviewed-by: kvn, vlivanov, ahgross, rhalade
2022-04-19 22:18:32 +00:00
Valerie Peng
e6c926e028 8277227: Better identification of OIDs
Reviewed-by: ahgross, weijun, rhalade
2022-04-19 22:18:32 +00:00
Weijun Wang
e2f8ce9c3f 8277233: Improve ECDSA signature support
Reviewed-by: ascarpino, ahgross, rhalade
2022-04-19 22:18:32 +00:00
Erik Gahlin
f0f0ddbf6d 8272588: Enhanced recording parsing
Reviewed-by: mgronlun, rhalade, mschoene
2022-04-19 22:18:32 +00:00
Erik Gahlin
4d4ba814ae 8272594: Better record of recordings
Reviewed-by: mgronlun, rhalade, mschoene
2022-04-19 22:18:32 +00:00
Erik Gahlin
e7cc235df4 8272261: Improve JFR recording file processing
Reviewed-by: mgronlun, ahgross, rhalade
2022-04-19 22:18:32 +00:00
Alexander Zuev
d492b07f11 8272255: Completely handle MIDI files
Reviewed-by: jdv, rhalade, mschoene, ahgross, prr
2022-04-19 22:18:31 +00:00
Anthony Scarpino
11faf5395f 8275151: Improved Object Identification
Reviewed-by: rhalade, jnimeh
2022-04-19 22:18:31 +00:00
Weijun Wang
0592e71b72 8274221: More definite BER encodings
Reviewed-by: valeriep, rhalade
2022-04-19 22:18:31 +00:00
Joe Wang
c4cf4df4f3 8269938: Enhance XML processing passes redux
Reviewed-by: naoto, lancea, rhalade, ahgross
2022-04-19 22:18:31 +00:00
Xue-Lei Andrew Fan
60446746d4 8284855: Update needed to Cleaners added to jdk.crypto.cryptoki
Reviewed-by: valeriep
2022-04-19 21:53:08 +00:00
lawrence.andrews
ed23033dc6 8283803: Remove jtreg tag manual=yesno for java/awt/print/PrinterJob/PrintGlyphVectorTest.java and fix test
8284898: Enhance PassFailJFrame

Reviewed-by: prr, aivanov
2022-04-19 21:07:38 +00:00
Claes Redestad
5df8bd6b4e 8284880: Re-examine sun.invoke.util.Wrapper hash tables
Reviewed-by: erikj, mchung
2022-04-19 20:34:45 +00:00
Claes Redestad
e307bc8694 8285001: Simplify StringLatin1.regionMatches
Reviewed-by: rriggs, naoto
2022-04-19 20:29:16 +00:00
Claes Redestad
5d1ec54d6c 8285007: Use correct lookup mode for MethodHandleStatics.UNSAFE
Reviewed-by: psandoz, mchung
2022-04-19 20:26:02 +00:00
Magnus Ihse Bursie
fb469fb894 8284893: Fix typos in java.base
Reviewed-by: iris, wetmore, lancea, mullan, naoto
2022-04-19 20:07:57 +00:00
Magnus Ihse Bursie
4594696f54 8284903: Fix typos in hotspot
Reviewed-by: cjplummer, coleenp, kvn, lucy, stefank
2022-04-19 19:10:52 +00:00
Pavel Rappo
13fb1eed52 8284697: Avoid parsing the doc comment of an element that is not documented
Reviewed-by: jjg
2022-04-19 16:27:13 +00:00
Naoto Sato
eb9c457b41 8284856: Add a test case for checking UnicodeScript entity numbers
Reviewed-by: iris, smarks
2022-04-19 15:51:57 +00:00
Thomas Schatzl
a5bb210589 8285012: Problemlist gc/arguments/TestUseCompressedOopsFlagsWithUlimit.java
Reviewed-by: ayang, dcubed
2022-04-19 15:31:42 +00:00
Andrew Leonard
da3d8b1d1e 8284539: Configure --with-source-date=version fails on MacOS
Reviewed-by: erikj, ihse
2022-04-19 14:25:33 +00:00
Roman Kennke
ac77b63018 8284725: Fix include guard in jfrbitset.hpp
Reviewed-by: stuefe
2022-04-19 14:20:36 +00:00
Magnus Ihse Bursie
595c8b8598 8284999: Remove remaining files in src/samples
Reviewed-by: erikj
2022-04-19 14:07:18 +00:00
KIRIYAMA Takuya
8d96ab0f36 8280761: UseCompressedOops should be set after limit_heap_by_allocatable_memory
Reviewed-by: ayang, tschatzl
2022-04-19 12:54:08 +00:00
Albert Mingkun Yang
b9f513c624 8283790: G1: Remove redundant card/heap-address transition
Reviewed-by: tschatzl, iwalulya
2022-04-19 11:56:06 +00:00
Albert Mingkun Yang
647aa2aedd 8284572: Remove unneeded null check in ReferenceProcessor::discover_reference
Reviewed-by: tschatzl, kbarrett
2022-04-19 09:26:43 +00:00
Andrew Leonard
ab83bceda1 8284661: Reproducible assembly builds without relative linking
Reviewed-by: ihse
2022-04-19 08:29:38 +00:00
Prasanta Sadhukhan
c5e9719c40 8266246: Swing test PressedIconTest.java sometimes fails on macOS 11 ARM
Reviewed-by: jdv
2022-04-19 06:59:24 +00:00
Manukumar V S
447c2d13d0 8284521: Write an automated regression test for RFE 4371575
Reviewed-by: prr, serb
2022-04-19 05:50:57 +00:00
Yanhong Zhu
145dfed03c 8284937: riscv: should not allocate special register for temp
Reviewed-by: fyang, fjiang, yadongwang
2022-04-19 01:15:07 +00:00
XenoAmess
87faa85c59 8186958: Need method to create pre-sized HashMap
Reviewed-by: chegar, naoto, joehw, lancea, wetmore, smarks
2022-04-19 00:03:56 +00:00
Mark Powers
41fc078323 8284112: Minor cleanup could be done in javax.crypto
Reviewed-by: wetmore
2022-04-18 23:48:22 +00:00
Roger Riggs
897d6c0dc7 8282008: Incorrect handling of quoted arguments in ProcessBuilder
Reviewed-by: bchristi
2022-04-18 19:03:50 +00:00
Joe Darcy
ffdeb32062 8284928: Add links from SourceVersion to specific JLS versions
Reviewed-by: iris
2022-04-18 17:42:23 +00:00
Pavel Rappo
d3d71ea289 8284922: Fix some doc-comment issues on methods with package access in JDK API
Reviewed-by: darcy, iris, bpb
2022-04-18 17:35:48 +00:00
Joe Darcy
6e36c4550a 8284923: Update description of SourceVersion.RELEASE_18
Reviewed-by: jjg, iris
2022-04-18 17:17:29 +00:00
Xue-Lei Andrew Fan
c63fabe3d5 8284935: Improve debug in java.security.jgss
Reviewed-by: mullan
2022-04-18 14:07:56 +00:00
Koichi Sakata
ef25e189c7 8283870: jdeprscan --help causes an exception when the locale is ja, zh_CN or de
Reviewed-by: naoto
2022-04-18 12:51:55 +00:00
Sergey Bylokhov
21ea740e1d 8284699: Include all image types to the J2DBench.ColorConvertOpTests
Reviewed-by: prr
2022-04-18 03:34:32 +00:00
Alexander Zvegintsev
e5041ae3d4 8144030: [macosx] test java/awt/Frame/ShapeNotSetSometimes/ShapeNotSetSometimes.java fails (again)
Reviewed-by: serb
2022-04-16 10:02:25 +00:00
Alexander Zvegintsev
f5beafa53f 8159599: [TEST_BUG] java/awt/Modal/ModalInternalFrameTest/ModalInternalFrameTest.java
Reviewed-by: serb, aivanov
2022-04-16 09:52:27 +00:00
Boris Ulasevich
21de4e55b8 8284681: compiler/c2/aarch64/TestFarJump.java fails with "RuntimeException: for CodeHeap < 250MB the far jump is expected to be encoded with a single branch instruction"
Reviewed-by: kvn
2022-04-16 05:57:00 +00:00
Dongbo He
9695283458 8240903: Add test to check that jmod hashes are reproducible
Reviewed-by: alanb
2022-04-16 01:33:44 +00:00
Doug Simon
dce72402b5 8284921: tier1 test failures after JDK-8284909
Reviewed-by: kvn
2022-04-15 22:16:47 +00:00
Phil Race
9f97f5de68 8283704: Add sealed modifier to java.awt.MultipleGradientPaint
Reviewed-by: darcy, serb, aivanov
2022-04-15 18:03:41 +00:00
Doug Simon
1ebf2f0d37 8284909: [JVMCI] remove remnants of AOT support
Reviewed-by: kvn
2022-04-15 17:30:00 +00:00
Phil Race
6199008dbd 8284914: Problem list test(s) failing due to extra repaints with D3D pipeline.
Reviewed-by: dcubed
2022-04-15 17:26:47 +00:00
Tagir F. Valeev
4cc8eccfca 8280915: Better parallelization for AbstractSpliterator and IteratorSpliterator when size is unknown
Reviewed-by: psandoz
2022-04-15 15:18:38 +00:00
Alexey Ivanov
53580b336a 8284884: Replace polling with waiting in javax/swing/text/html/parser/Parser/8078268/bug8078268.java
Reviewed-by: serb, psadhukhan
2022-04-15 13:55:06 +00:00
Thomas Stuefe
bdf8a2a205 8283326: Implement SafeFetch statically
Reviewed-by: dholmes, mdoerr, akozlov, lucy
2022-04-15 10:39:19 +00:00
Thomas Stuefe
bb7c97bddf 8284874: Add comment to ProcessHandle/OnExitTest to describe zombie problem
Reviewed-by: rriggs
2022-04-15 09:08:18 +00:00
Daniel Fuchs
1e22c70ff2 8284892: java/net/httpclient/http2/TLSConnection.java fails intermittently
Reviewed-by: djelinski, jpai, michaelm
2022-04-15 09:07:09 +00:00
Prasanta Sadhukhan
510003cfe3 8042380: Test javax/swing/JFileChooser/4524490/bug4524490.java fails with InvocationTargetException
Reviewed-by: serb
2022-04-15 08:32:13 +00:00
Feilong Jiang
ea0706de82 8284863: riscv: missing side effect for result in instruct vcount_positives
Reviewed-by: fyang, shade
2022-04-15 06:12:48 +00:00
John Jiang
d970820616 8284796: sun.security.ssl.Finished::toString misses a line feed in the message format pattern
Reviewed-by: xuelei
2022-04-15 02:09:30 +00:00
Phil Race
d41331e6f2 8223543: [TESTBUG] Regression test java/awt/Graphics2D/DrawString/LCDTextSrcEa.java has issues
Reviewed-by: serb, azvegint, aivanov
2022-04-15 01:03:44 +00:00
Magnus Ihse Bursie
3084921d7a 8284894: Fix typos in langtools
Reviewed-by: jjg
2022-04-14 21:41:45 +00:00
Paul Sandoz
fbb0916090 8283892: Compress and expand bits
Reviewed-by: alanb, redestad
2022-04-14 20:27:12 +00:00
Magnus Ihse Bursie
160eb2bd39 8284891: Fix typos in build system files
Reviewed-by: erikj
2022-04-14 19:33:28 +00:00
Andrey Turbanov
48c7549806 8284853: Fix various 'expected' typo
Reviewed-by: bpb, ihse
2022-04-14 18:05:49 +00:00
vamsi-parasa
a81c5d3a23 8284635: Crashes after 8282221: assert(ctrl == kit.control()) failed: Control flow was added although the intrinsic bailed out
Reviewed-by: kvn
2022-04-14 16:24:29 +00:00
Raffaello Giulietti
3ffec3a50b 8284866: Add test to JDK-8273056
Reviewed-by: jlaskey
2022-04-14 15:36:20 +00:00
Pavel Rappo
1cc3c330e3 8283864: Clean up DocFinder and friends
Reviewed-by: jjg
2022-04-14 15:09:47 +00:00
Aleksey Shipilev
9a00b432ea 8284584: Avoid duplicate node_idx_t definitions
Reviewed-by: kvn, redestad
2022-04-14 11:11:56 +00:00
Tejesh R
f26403172f 8236987: Remove call to System.out.println from ImageIcon.loadImage
Reviewed-by: aivanov, psadhukhan, prr
2022-04-14 11:10:22 +00:00
Roman Kennke
339005dbc9 8284816: Make markWord::has_monitor() more robust
Reviewed-by: stuefe, zgu, dcubed
2022-04-14 09:33:37 +00:00
Roman Kennke
2ba5cc4163 8284760: Correct type/array element offset in LibraryCallKit::get_state_from_digest_object()
Reviewed-by: roland, kvn
2022-04-14 09:31:29 +00:00
Alexander Zvegintsev
c3938ec18b 8159694: HiDPI, Unity, java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java
Reviewed-by: serb
2022-04-14 07:54:35 +00:00
Alexander Zvegintsev
23c6817c1a 6626492: Event time in future part 2, now on X
Reviewed-by: serb
2022-04-14 07:53:41 +00:00
Aleksey Shipilev
2241a05705 8284578: Relax InterpreterCodelet stub alignment
Reviewed-by: kvn, dlong
2022-04-14 07:30:37 +00:00
Swati Sharma
bf85b0095f 8284564: Extend VectorAPI validation tests for SHIFTs and ROTATE operations with constant shift values.
Reviewed-by: psandoz, jbhateja
2022-04-14 04:06:15 +00:00
Andrey Turbanov
bf1c3ef02b 8284775: Simplify String.substring(_, length()) calls
Reviewed-by: bpb, serb
2022-04-13 19:08:44 +00:00
Andrey Turbanov
249d54f93d 8284673: Collapse identical catch branches in java.management
Reviewed-by: cjplummer, dholmes
2022-04-13 17:47:35 +00:00
Zhiqiang Zang
c7755b815d 8283094: Add Ideal transformation: x + (con - y) -> (x - y) + con
Reviewed-by: kvn, thartmann
2022-04-13 16:01:10 +00:00
Coleen Phillimore
e245f9d200 8284274: Error reporting crashes because missing ResourceMarks
Reviewed-by: dholmes, stuefe
2022-04-13 14:46:27 +00:00
Matthias Baesken
8ee2944cc4 8284754: print more interesting env variables in hs_err and VM.info
Reviewed-by: stuefe
2022-04-13 11:49:00 +00:00
Prasanta Sadhukhan
70251b064d 8194946: Regression automated Test 'javax/swing/JFileChooser/6738668/bug6738668.java' fails
Reviewed-by: aivanov
2022-04-13 10:58:36 +00:00
Daniel Jeliński
507dc41a53 8284720: IntelliJ: JIRA integration
Reviewed-by: mcimadamore, ihse
2022-04-13 10:33:48 +00:00
Claes Redestad
280aa42880 8284579: Improve VarHandle checks for interpreter
Reviewed-by: mcimadamore, mchung
2022-04-13 07:21:24 +00:00
Eric Liu
c35590282d 8282528: AArch64: Incorrect replicate2L_zero rule
Reviewed-by: aph
2022-04-13 04:21:43 +00:00
Glavo
5691a3b6af 8284702: Add @since for java.time.LocalDate.EPOCH
Reviewed-by: rriggs, bpb, iris, darcy, naoto
2022-04-13 02:17:45 +00:00
Jonathan Gibbons
7920e8ba42 8283714: REDO - Unexpected TypeElement in ANALYZE TaskEvent
8284030: Standard Doclet should not attempt to link to primitive types

Reviewed-by: vromero, jlahoda, prappo
2022-04-12 23:33:26 +00:00
Johannes Bechberger
bc12e8616d 8284752: Zero does not build on Mac OS X due to missing os::current_thread_enable_wx implementation
Reviewed-by: dholmes
2022-04-12 23:23:51 +00:00
Johannes Bechberger
cafde7fe00 8284732: FFI_GO_CLOSURES macro not defined but required for zero build on Mac OS X
Reviewed-by: dholmes
2022-04-12 23:20:12 +00:00
Ravi Reddy
7891085a87 8284771: java/util/zip/CloseInflaterDeflaterTest.java failed with "AssertionError: Expected IOException to be thrown, but nothing was thrown"
Reviewed-by: lancea
2022-04-12 20:39:05 +00:00
Raffaello Giulietti
19b140a7f3 8283083: java.util.random L128X256MixRandom constructor fails to use byte[] seed
Reviewed-by: jlaskey, bpb
2022-04-12 17:36:16 +00:00
lawrence.andrews
3f26d84f6a 8284535: Fix PrintLatinCJKTest.java test that is failing with Parse Exception
8283712: Create a manual test framework class

Reviewed-by: prr, aivanov
2022-04-12 13:49:43 +00:00
Eric Liu
a5378fb8c0 8284125: AArch64: Remove partial masked operations for SVE
Reviewed-by: njian, ngasson
2022-04-12 13:17:27 +00:00
Prasanta Sadhukhan
83466434fd 8196465: javax/swing/JComboBox/8182031/ComboPopupTest.java fails on Linux
Reviewed-by: azvegint
2022-04-12 13:08:35 +00:00
Christoph Langer
5851631de2 8284622: Update versions of some Github Actions used in JDK workflow
Reviewed-by: ihse
2022-04-12 12:11:18 +00:00
Albert Mingkun Yang
4cd0921cf6 8284653: Serial: Inline GenCollectedHeap::collect_locked
Reviewed-by: kbarrett, tschatzl
2022-04-12 08:00:27 +00:00
Prasanta Sadhukhan
9545ba7dd9 8282716: [macos] Enable javax/swing/JScrollPane/TestMouseWheelScroll.java on macos
Reviewed-by: serb
2022-04-12 07:30:10 +00:00
Srinivas Mandalika
4ce3cf12bf 8283245: Create a test for JDK-4670319
Reviewed-by: serb
2022-04-12 04:21:48 +00:00
Srinivas Mandalika
fad3b94786 8282640: Create a test for JDK-4740761
Reviewed-by: prr, serb
2022-04-12 01:30:47 +00:00
Vicente Romero
4e165f66a9 8284308: mismatch between key and content in compiler error message
Reviewed-by: mcimadamore
2022-04-11 20:57:24 +00:00
Zhengyu Gu
4d45c3ebc4 8284620: CodeBuffer may leak _overflow_arena
Reviewed-by: thartmann, kvn
2022-04-11 19:04:45 +00:00
Daniel D. Daugherty
73aa5551e1 8284689: ProblemList java/lang/Integer/Unsigned.java in -Xcomp mode
Reviewed-by: rriggs
2022-04-11 18:56:55 +00:00
Daniel D. Daugherty
929f58714a 8284691: ProblemList javax/swing/JTable/8236907/LastVisibleRow.java on macosx
Reviewed-by: azvegint, rriggs
2022-04-11 18:56:05 +00:00
Sean Mullan
dc6ec2a467 8284105: Update security libraries to use sealed classes
Reviewed-by: darcy, weijun, xuelei
2022-04-11 18:01:47 +00:00
Daniel D. Daugherty
470a66840c 8284687: validate-source failure after JDK-8283710
Reviewed-by: iris
2022-04-11 16:25:44 +00:00
Naoto Sato
523899e36c 8265315: Support for CLDR version 41
Reviewed-by: joehw, iris, ihse
2022-04-11 15:59:12 +00:00
Roman Kennke
abfd2f98dc 8283710: JVMTI: Use BitSet for object marking
Reviewed-by: stuefe, coleenp
2022-04-11 14:50:29 +00:00
Manukumar V S
7edd186121 8283507: Create a regression test for RFE 4287690
Reviewed-by: serb, aivanov
2022-04-11 14:00:46 +00:00
Daniel Fuchs
74835f7389 8283719: java/util/logging/CheckZombieLockTest.java failing intermittently
Reviewed-by: alanb
2022-04-11 13:43:03 +00:00
Zhengyu Gu
205cfb8496 8284093: Memory leak: X11SD_DisposeXImage should also free obdata
Reviewed-by: prr, andrew
2022-04-11 13:36:20 +00:00
Andrey Turbanov
f4edb59a6e 8284567: Collapse identical catch branches in java.base
Reviewed-by: darcy, iris, wetmore
2022-04-11 09:32:24 +00:00
John Jiang
40ddb7558c 8284641: Doc errors in sun.security.ssl.SSLSessionContextImpl
Reviewed-by: xuelei, ssahoo
2022-04-11 06:39:18 +00:00
Roberto Castañeda Lozano
8ebea443f3 8270090: C2: LCM may prioritize CheckCastPP nodes over projections
Reviewed-by: thartmann, kvn
2022-04-11 06:37:57 +00:00
Albert Mingkun Yang
755bfcb2d4 8284581: Serial: Remove unused GenCollectedHeap::collect_locked
Reviewed-by: tschatzl
2022-04-11 06:25:23 +00:00
Wu Yan
0c04bf8e59 8284198: Undo JDK-8261137: Optimization of Box nodes in uncommon_trap
Reviewed-by: kvn, thartmann
2022-04-11 06:23:09 +00:00
Jaikiran Pai
eb3ead96b3 8284036: Make ConcurrentHashMap.CollectionView a sealed hierarchy
Reviewed-by: smarks
2022-04-11 01:24:18 +00:00
Zhengyu Gu
92f5e42696 8284549: JFR: FieldTable leaks FieldInfoTable member
Reviewed-by: mgronlun, stuefe
2022-04-11 00:58:30 +00:00
Thomas Stuefe
34914f12be 8284178: os::commit_memory() should assert the given range
Reviewed-by: shade
2022-04-10 16:58:49 +00:00
vamsi-parasa
37e28aea27 8282221: x86 intrinsics for divideUnsigned and remainderUnsigned methods in java.lang.Integer and java.lang.Long
Reviewed-by: sviswanathan, kvn, jbhateja
2022-04-10 03:47:18 +00:00
Yasumasa Suenaga
0b867b5e73 8284330: jcmd may not be able to find processes in the container
Reviewed-by: kevinw, iklam, stuefe
2022-04-10 02:12:08 +00:00
Phil Race
eab4c0c499 8283706: Add final or sealed modifier to appropriate javax.swing API classes
Reviewed-by: darcy, psadhukhan, aivanov, serb
2022-04-08 21:30:12 +00:00
Magnus Ihse Bursie
3357d9a168 8284588: Remove GensrcCommonLangtools.gmk
Reviewed-by: erikj
2022-04-08 20:33:24 +00:00
Leonid Mesnik
a8c8752602 8284556: Ensure reachability of classes in runtime/whitebox/TestHiddenClassIsAlive.java and serviceability/dcmd/vm/ClassLoaderHierarchyTest.java
Reviewed-by: cjplummer
2022-04-08 19:24:55 +00:00
Ioi Lam
662320a0ec 8284336: CDS SignedJar.java test fails due to archived Reference object
Reviewed-by: alanb, ccheung
2022-04-08 17:20:10 +00:00
Vicente Romero
1bd8975caf 8284361: Updating ASM to 9.3 for JDK 19
Reviewed-by: mchung
2022-04-08 17:01:15 +00:00
Joe Wang
0a0267590f 8279876: Clean up: isAssignableFrom usages in xpath and jdk internal classes
Reviewed-by: naoto, lancea
2022-04-08 16:34:09 +00:00
Naoto Sato
d6b4693c05 8283698: Refactor Locale constructors used in src/test
Reviewed-by: iris, joehw
2022-04-08 15:23:25 +00:00
Aleksey Shipilev
61698bd137 8284533: Improve InterpreterCodelet data footprint
Reviewed-by: redestad, coleenp
2022-04-08 15:18:59 +00:00
Ajit Ghaisas
3a0ddeba52 8284378: Make Metal the default Java 2D rendering pipeline for macOS
Reviewed-by: kcr, avu, prr, jdv
2022-04-08 15:11:29 +00:00
Zhengyu Gu
b55c32f5fe 8284532: Memory leak in BitSet::BitMapFragmentTable in JFR leak profiler
Reviewed-by: stuefe, mgronlun, shade
2022-04-08 14:58:05 +00:00
Christoph Langer
8eac3427b1 8284507: GHA: Only check test results if testing was not skipped
Reviewed-by: shade, ihse
2022-04-08 13:29:40 +00:00
Roberto Castañeda Lozano
6028181071 8283930: IGV: add toggle button to show/hide empty blocks in CFG view
Reviewed-by: kvn, chagedorn
2022-04-08 08:41:30 +00:00
Stefan Karlsson
a445ecd1e9 8284297: Move FILE_AND_LINE to a platform independent header
Reviewed-by: tschatzl
2022-04-08 07:53:32 +00:00
Roberto Castañeda Lozano
003aa2ee76 8282043: IGV: speed up schedule approximation
Reviewed-by: chagedorn, kvn
2022-04-08 07:16:40 +00:00
Xiaolin Zheng
8c18705218 8284433: Cleanup Disassembler::find_prev_instr() on all platforms
Reviewed-by: lucy, kvn
2022-04-08 03:23:04 +00:00
Fei Gao
e572a525f5 8280511: AArch64: Combine shift and negate to a single instruction
Reviewed-by: njian, ngasson
2022-04-08 01:25:13 +00:00
Feilong Jiang
de9596c290 8284495: [testbug] Adapt nsk tests to the RISC-V platform
Reviewed-by: lmesnik, cjplummer
2022-04-08 00:58:53 +00:00
Zhengyu Gu
d4a4884385 8284458: CodeHeapState::aggregate() leaks blob_name
Reviewed-by: lucy, lmesnik
2022-04-07 20:36:46 +00:00
Chris Plummer
e98c32d6b6 8284043: com/sun/jdi/MethodInvokeWithTraceOnTest.java failing with com.sun.jdi.ObjectCollectedException
Reviewed-by: sspitsyn, amenkov
2022-04-07 19:01:42 +00:00
Calvin Cheung
343e5f09d4 8282040: Remove unnecessary check made obsolete by JDK-8261941
Reviewed-by: iklam
2022-04-07 16:41:32 +00:00
Mark Powers
d6f01e9d6f 8234128: jarsigner will not show not-signed-by-alias warning if an intermediate cert is in this keystore
Reviewed-by: jnimeh
2022-04-07 15:52:43 +00:00
Daniel Jeliński
5bafcfdc17 8284444: Sting typo
Reviewed-by: kcr, aivanov, mgronlun
2022-04-07 14:55:05 +00:00
Mahendra Chhipa
ec73c61d8f 8284353: Update java/net and sun/net/www tests to eliminate dependency on sun.net.www.MessageHeader
Reviewed-by: dfuchs
2022-04-07 10:19:12 +00:00
Andrey Turbanov
8e58d4a589 8284415: Collapse identical catch branches in security libs
Reviewed-by: coffeys, xuelei, wetmore
2022-04-07 10:00:08 +00:00
Pavel Rappo
4f36229c96 8284446: Miscellaneous doc-comment fixes in jdk.javadoc
Reviewed-by: jjg
2022-04-07 09:38:42 +00:00
Prasanta Sadhukhan
192886546b 8284166: [macos] Replace deprecated alternateSelectedControlColor with selectedContentBackgroundColor
Reviewed-by: prr
2022-04-07 09:11:56 +00:00
Conor Cleary
4d2cd26ab5 8263031: HttpClient throws Exception if it receives a Push Promise that is too large
Reviewed-by: dfuchs
2022-04-07 08:42:38 +00:00
Christoph Langer
61fcf2f67f 8284389: Improve stability of GHA Pre-submit testing by caching cygwin installer
Reviewed-by: shade
2022-04-07 06:02:59 +00:00
Alexander Zuev
d5cd4a3a28 8283387: [macos] a11y : Screen magnifier does not show selected Tab
Reviewed-by: prr, aivanov
2022-04-07 04:00:56 +00:00
Pavel Rappo
5a21397f70 8284387: Fix formatting of doc comments in jdk.javadoc
Reviewed-by: jjg
2022-04-06 22:14:21 +00:00
Andrew Leonard
4451257b14 8284437: Building from different users/workspace is not always deterministic
Reviewed-by: erikj
2022-04-06 19:11:49 +00:00
Pavel Rappo
dd4a1bba91 8284299: Handle inheritDoc misuse more gracefully
Reviewed-by: jjg
2022-04-06 18:56:06 +00:00
Mikael Vidstedt
46ce2ef1d2 8277517: Bump minimum boot jdk to JDK 18
Reviewed-by: darcy, erikj, iris
2022-04-06 18:49:29 +00:00
Xue-Lei Andrew Fan
77388eaf25 8284368: Remove finalizer method in jdk.crypto.cryptoki
Reviewed-by: valeriep
2022-04-06 17:07:35 +00:00
Patricio Chilano Mateo
8e4fab0c89 8284303: runtime/Thread/AsyncExceptionTest.java timed out
Reviewed-by: dcubed, kvn
2022-04-06 16:47:55 +00:00
Aleksey Shipilev
3cd3a83647 8284167: Make internal javac exceptions stackless
Reviewed-by: mcimadamore
2022-04-06 15:47:35 +00:00
Claes Redestad
a385142398 8177107: Reduce memory footprint of java.lang.reflect.Constructor/Method
Reviewed-by: darcy, shade, coleenp
2022-04-06 14:26:58 +00:00
Zhengyu Gu
ec205f68a8 8284023: java.sun.awt.X11GraphicsDevice.getDoubleBufferVisuals() leaks XdbeScreenVisualInfo
Reviewed-by: prr, serb
2022-04-06 12:50:43 +00:00
Alexey Semenyuk
b9cc3bc1bf 8284067: jpackage'd launcher reports non-zero exit codes with error prompt
Reviewed-by: almatvee
2022-04-06 11:49:36 +00:00
Alexey Ivanov
bbe894fc81 8284288: Use SVG images for FocusSpec.html and Modality.html
Reviewed-by: prr, serb
2022-04-06 10:26:52 +00:00
Boris Ulasevich
e524107a74 8280872: Reorder code cache segments to improve code density
Reviewed-by: simonis, kvn
2022-04-06 09:32:12 +00:00
Artem Semenov
e18414a322 8284014: Menu items with submenus in JPopupMEnu are not spoken on macOS
Reviewed-by: prr, serb, ant
2022-04-06 09:29:36 +00:00
Thomas Schatzl
b56df2808d 8283935: Parallel: Crash during pretouch after large pages allocation failure
Reviewed-by: kbarrett, ayang
2022-04-06 08:01:47 +00:00
Manukumar V S
0a67d68670 8284294: Create an automated regression test for RFE 4138746
Reviewed-by: serb
2022-04-06 07:21:33 +00:00
Tobias Hartmann
955d61df30 8284369: TestFailedAllocationBadGraph fails with -XX:TieredStopAtLevel < 4
Reviewed-by: chagedorn
2022-04-06 06:51:02 +00:00
Daniel Jeliński
4ffe96a857 8282506: Clean up remaining references to TwoStacksPlain*SocketImpl
Reviewed-by: dfuchs
2022-04-06 06:43:18 +00:00
Pengfei Li
741be46138 8183390: Fix and re-enable post loop vectorization
Reviewed-by: roland, thartmann, kvn
2022-04-05 23:50:13 +00:00
Dean Long
500f9a577b 8283396: Null pointer dereference in loopnode.cpp:2851
Reviewed-by: chagedorn, kvn
2022-04-05 21:07:29 +00:00
Joe Darcy
e9e3aa7b82 8283730: Improve discussion of modeling of packages and modules
Reviewed-by: jjg, jlahoda
2022-04-05 18:21:54 +00:00
Pavel Rappo
20acea41cc 8284362: Remove the "unsupported API" warning from jdk.javadoc
Reviewed-by: jjg
2022-04-05 17:45:39 +00:00
Daniel D. Daugherty
ff1daa85b0 8284380: ProblemList jdk/jshell/HighlightUITest.java on more platforms
Reviewed-by: bpb
2022-04-05 17:44:43 +00:00
Naoto Sato
526e73498e 8282819: Deprecate Locale class constructors
Reviewed-by: lancea, rriggs
2022-04-05 15:38:36 +00:00
Andrey Turbanov
648efd7abc 8284275: Remove unused sun.nio.fs.Reflect
Reviewed-by: alanb, bpb
2022-04-05 13:08:54 +00:00
Tejesh R
f20ed33618 8284278: Diagnostic Fix Updated.
Reviewed-by: prr, psadhukhan
2022-04-05 11:09:11 +00:00
Manukumar V S
632825c6d2 8283621: Write a regression test for CCC4400728
Reviewed-by: aivanov, serb
2022-04-05 04:42:32 +00:00
Thomas Stuefe
9561b5e041 8284165: Add pid to process reaper thread name
Reviewed-by: rriggs
2022-04-05 03:39:39 +00:00
Zhengyu Gu
36b3bbc53d 8284033: Leak XVisualInfo in getAllConfigs in awt_GraphicsEnv.c
Reviewed-by: serb, prr
2022-04-05 00:39:02 +00:00
Magnus Ihse Bursie
59fe31a090 8284170: Add "make doctor" to the make help
Reviewed-by: erikj
2022-04-04 21:43:34 +00:00
Alexander Zuev
9440b39193 8283215: [macos] Screen Magnifier: Getting java.awt.IllegalComponentStateException when menu item is selected
Reviewed-by: serb, prr
2022-04-04 21:22:44 +00:00
Phil Race
86caf606ff 8283703: Add sealed modifier to java.awt.geom.Path2D
Reviewed-by: bpb, kizune, aivanov
2022-04-04 21:20:12 +00:00
Alex Menkov
0cd46f655a 8283597: [REDO] Invalid generic signature for redefined classes
Reviewed-by: sspitsyn, coleenp
2022-04-04 20:39:44 +00:00
Ioi Lam
e29707493e 8284181: ArgumentsTest.set_numeric_flag_double_vm fails on some locales
Reviewed-by: stuefe
2022-04-04 20:08:07 +00:00
Andrey Turbanov
732f7ae0aa 8284071: Collapse identical catch branches in jdk.console
Reviewed-by: cjplummer
2022-04-04 20:05:22 +00:00
Joe Wang
61d06c2d28 8276050: XMLInputFactoryImpl.getProperty() returns null
Reviewed-by: rriggs
2022-04-04 20:00:36 +00:00
Manukumar V S
7381868afe 8283623: Create an automated regression test for JDK-4525475
Reviewed-by: aivanov, serb
2022-04-04 18:58:05 +00:00
Brian Burkhalter
f76f5da016 5087440: java.io bulk read(...) end-of-stream return value descriptions ambiguous
Reviewed-by: rriggs, lancea
2022-04-04 18:54:36 +00:00
Vicente Romero
36b9baa70d 8282508: Updating ASM to 9.2 for JDK 19
Reviewed-by: lancea, egahlin, mchung
2022-04-04 15:05:00 +00:00
Patricio Chilano Mateo
4e20a03786 8283044: Use asynchronous handshakes to deliver asynchronous exceptions
Reviewed-by: dcubed, dholmes, rehn
2022-04-04 14:00:26 +00:00
Pavel Rappo
9d200d6e7a 8282756: Make ElementKind checks more specific
Reviewed-by: jjg
2022-04-04 09:28:04 +00:00
Lutz Schmidt
1012d59e64 8281079: [s390] Unify Address Operand Encoding in Instruction Emitters
Reviewed-by: mdoerr, mbaesken
2022-04-04 07:51:50 +00:00
Jatin Bhateja
003ec21f3c 8279508: Auto-vectorize Math.round API
Reviewed-by: sviswanathan, aph
2022-04-02 18:00:33 +00:00
Ioi Lam
c1e67b6603 8283474: Include detailed heap object info in CDS map file
Reviewed-by: ccheung, stuefe
2022-04-02 03:23:49 +00:00
Feilong Jiang
060a188733 8283865: riscv: Break down -XX:+UseRVB into seperate options for each bitmanip extension
Reviewed-by: fyang, shade
2022-04-02 02:55:50 +00:00
Fei Yang
e5e1aab459 8284068: riscv: should call Atomic::release_store in JavaThread::set_thread_state
Reviewed-by: shade
2022-04-02 02:46:26 +00:00
Bradford Wetmore
0b09f70a73 8273553: sun.security.ssl.SSLEngineImpl.closeInbound also has similar error of JDK-8253368
Reviewed-by: xuelei, rhalade, coffeys
2022-04-02 00:30:48 +00:00
Daniel D. Daugherty
afd0f5a904 8284190: disable G1RegionToSpaceMapper.largeStressAdjacent_vm on windows
Reviewed-by: tschatzl
2022-04-01 20:26:34 +00:00
Valerie Peng
028fbf474b 8254935: Deprecate the PSSParameterSpec(int) constructor
Reviewed-by: mullan
2022-04-01 18:37:39 +00:00
Roman Kennke
1dfa1eaea0 8284094: Memory leak in invoker_completeInvokeRequest()
Reviewed-by: cjplummer, shade
2022-04-01 16:28:26 +00:00
Coleen Phillimore
943d4ee18f 8284180: Some files missing newlines
Reviewed-by: alanb, pchilanomate, stefank
2022-04-01 16:14:53 +00:00
Jan Lahoda
96179c8975 8284146: Disable jdk/jshell/HighlightUITest.java on macosx-aarch64
Reviewed-by: dcubed
2022-04-01 14:36:52 +00:00
Luis Pinto
63fec5da27 8283525: http://tools.ietf.org/html/* URLs return 404
Reviewed-by: coffeys
2022-04-01 13:26:20 +00:00
Pavel Rappo
dbfac3c99c 8283269: Improve definition and use of jdk.javadoc.internal.doclets.toolkit.Content
Reviewed-by: jjg
2022-04-01 13:05:48 +00:00
Dan Heidinga
fc7a17c79b 8284103: AsVarargsCollector::asCollectorCache incorrectly marked @stable
Reviewed-by: jvernee, shade
2022-04-01 12:50:21 +00:00
Xiaohong Gong
05ea7a51e1 8282431: AArch64: Add optimized rules for masked vector multiply-add/sub for SVE
Reviewed-by: njian, ngasson
2022-04-01 09:33:46 +00:00
Jan Lahoda
9156c0b213 8274148: can jshell show deprecated classes, methods and fields as strikethrough text?
Reviewed-by: vromero
2022-04-01 06:37:46 +00:00
Xin Liu
bab431cc12 8282429: StringBuilder/StringBuffer.toString() skip compressing for UTF16 strings
Reviewed-by: djelinski, redestad
2022-04-01 04:42:03 +00:00
Coleen Phillimore
8eff80682a 8284116: Rename serializePropertiesToByteArray_signature
Co-authored-by: Alan Bateman <alanb@openjdk.org>
Reviewed-by: sspitsyn
2022-04-01 01:01:04 +00:00
Alisen Chung
38df5701ff 8283805: [REDO] JDK 19 L10n resource files update - msgdrop 10
Reviewed-by: naoto
2022-03-31 22:59:21 +00:00
Sergey Bylokhov
ad83ec7e28 8283422: Create a new test for JDK-8254790
Reviewed-by: kvn, thartmann
2022-03-31 18:17:38 +00:00
Aleksey Shipilev
6ebf845ff7 8283566: G1: Improve G1BarrierSet::enqueue performance
Reviewed-by: tschatzl, ayang
2022-03-31 17:49:14 +00:00
Aleksey Shipilev
d276da5a38 8281469: aarch64: Improve interpreter stack banging
Reviewed-by: aph, xliu
2022-03-31 17:48:17 +00:00
Naoto Sato
a41550b9e3 8283842: TestZoneTextPrinterParser.test_roundTripAtOverlap fails: DateTimeParseException
Reviewed-by: iris, rriggs, scolebourne
2022-03-31 16:05:16 +00:00
Frederic Parain
207b099858 8283890: Changes in CFG file format break C1Visualizer
Reviewed-by: chagedorn, thartmann
2022-03-31 15:54:51 +00:00
Ioi Lam
49fcc7a5c3 8283013: Simplify Arguments::parse_argument()
Reviewed-by: dholmes, ccheung
2022-03-31 15:46:34 +00:00
Pavel Rappo
73cb922bfc 8284026: Use unmodifiable collections where practical
Reviewed-by: jjg
2022-03-31 15:23:40 +00:00
Jie Fu
77a205aa4c 8284090: com/sun/security/auth/module/AllPlatforms.java fails to compile
Reviewed-by: mullan
2022-03-31 13:51:12 +00:00
Magnus Ihse Bursie
64025b0e47 8283901: Introduce "make doctor" to diagnose build environment problems
Reviewed-by: erikj
2022-03-31 13:30:16 +00:00
James Nord
5740a3b6e6 8280193: summary javadoc for java.awt.GraphicsEnvironment#preferProportionalFonts broken
Reviewed-by: prr, aivanov
2022-03-31 11:45:56 +00:00
Tobias Hartmann
a11cc97439 8283997: Unused argument in GraphKit::builtin_throw
Reviewed-by: roland, redestad, chagedorn
2022-03-31 10:52:50 +00:00
Prasanta Sadhukhan
067b2581d9 8224977: [macos] On AquaLookAndFeel, Iconified JInternalFrame does not restore when Control + F5 is used.
Reviewed-by: serb
2022-03-31 09:06:13 +00:00
Prasanta Sadhukhan
0a9a7b6abc 8283642: JavaDoc of JFileChooser() need to be updated for default directory in Windows
Reviewed-by: aivanov
2022-03-31 09:01:52 +00:00
Claes Redestad
1a5f5da050 8283996: Reduce cost of year and month calculations
Reviewed-by: bpb, scolebourne, naoto, rriggs
2022-03-31 08:45:06 +00:00
Kevin Walls
45d4d7da23 8283337: Posix signal handler modification warning triggering incorrectly
Reviewed-by: stuefe, dholmes
2022-03-31 08:37:50 +00:00
Alexander Scherbatiy
3d4be14eba 8181571: printing to CUPS fails on mac sandbox app
Reviewed-by: prr
2022-03-31 08:32:22 +00:00
Albert Mingkun Yang
ef51dfd153 8283791: Parallel: Remove unnecessary condition in PSKeepAliveClosure
Reviewed-by: tschatzl, iwalulya
2022-03-31 08:24:41 +00:00
Andrey Turbanov
3e643f4599 8283799: Collapse identical catch branches in jdk.hotspot.agent
Reviewed-by: lmesnik, amenkov
2022-03-31 07:56:44 +00:00
David Holmes
1ca0ede60d 8283725: Launching java with "-Xlog:gc*=trace,safepoint*=trace,class*=trace" crashes the JVM
Reviewed-by: iklam, rehn
2022-03-31 06:55:45 +00:00
David Holmes
c9a469a459 8283784: java_lang_String::as_platform_dependent_str stores to oop in native state
Reviewed-by: kbarrett, shade, stefank
2022-03-31 06:53:26 +00:00
Sibabrata Sahoo
fbb8ca55a8 8281717: Cover logout method for several LoginModule
Reviewed-by: rhalade
2022-03-31 06:17:00 +00:00
Conor Cleary
e0a86699b3 8281223: Improve the API documentation of HttpRequest.Builder::build to state that the default implementation provided by the JDK returns immutable objects.
Reviewed-by: dfuchs, jpai, chegar
2022-03-31 04:28:22 +00:00
Joe Wang
eeca3a3155 8253569: javax.xml.catalog.Catalog.matchURI() implementation should reset state variables
Reviewed-by: lancea, naoto
2022-03-31 01:50:41 +00:00
Jaikiran Pai
ec0897ab80 8281705: SourceLauncherTest.testSystemProperty isn't being run
Reviewed-by: jjg
2022-03-31 01:09:39 +00:00
Mandy Chung
1ddab6fe4e 8283060: RawNativeLibraries should allow multiple clients to load/unload the same library
Reviewed-by: sundar, jvernee, jpai
2022-03-31 00:51:11 +00:00
Fei Yang
835c7e8d6d 8283907: Fix Huawei copyright in various files
Reviewed-by: mli
2022-03-31 00:46:44 +00:00
Andrey Turbanov
b8dd21b790 8283801: Cleanup confusing String.toString calls
Reviewed-by: bpb
2022-03-30 21:09:55 +00:00
Thomas Schatzl
ce27d9dd5e 8283494: Factor out calculation of actual number of XMM registers
Reviewed-by: dlong, kvn
2022-03-30 18:13:54 +00:00
Mandy Chung
e61ccfba7f 8283470: Update java.lang.invoke.VarHandle to use sealed classes
Reviewed-by: darcy, psandoz
2022-03-30 17:37:42 +00:00
Phil Race
e85fa2f04b 8283700: Add final or sealed modifier to appropriate java.awt API classes
Reviewed-by: darcy, aivanov, serb, psadhukhan
2022-03-30 17:26:03 +00:00
Alexander Zvegintsev
ec9ab558a3 8282374: Java_sun_awt_X11_XlibWrapper_XSynchronize is wrong and unused
Reviewed-by: serb, prr
2022-03-30 17:09:17 +00:00
bobpengxie
a625bfdba4 8283903: GetContainerCpuLoad does not return the correct result in share mode
Reviewed-by: jiefu, sgehwolf, kevinw, dholmes
2022-03-30 17:06:38 +00:00
Srinivas Mandalika
97c7298a39 8282046: Create a regression test for JDK-8000326
Reviewed-by: aivanov
2022-03-30 16:05:31 +00:00
Stuart Marks
ae57258b46 8283715: Update ObjectStreamClass to be final
Reviewed-by: darcy, jpai, mchung, dfuchs
2022-03-30 15:50:31 +00:00
Daniel D. Daugherty
d9d19e96b1 8284015: ProblemList containers/docker/TestJcmd.java on linux-x64
Reviewed-by: bpb, hseigel
2022-03-30 15:17:33 +00:00
Aleksey Shipilev
a3223cb683 8283999: Update JMH devkit to 1.35
Reviewed-by: erikj, redestad
2022-03-30 15:15:13 +00:00
Eric Liu
e8e9b8dc89 8282926: AArch64: Optimize out WHILELO with PTRUE
Reviewed-by: njian, ngasson
2022-03-30 14:57:50 +00:00
Xiaolin Zheng
720e751f35 8283937: riscv: RVC: Fix c_beqz to c_bnez
Reviewed-by: shade
2022-03-30 10:01:39 +00:00
Ningsheng Jian
51c05e8219 8282764: AArch64: compiler/vectorapi/reshape/TestVectorCastNeon.java failed with incorrect result
Reviewed-by: psandoz, ngasson, eliu
2022-03-30 09:47:20 +00:00
Xiaolin Zheng
b82b009047 8283737: riscv: MacroAssembler::stop() should emit fixed-length instruction sequence
Reviewed-by: fyang, shade
2022-03-30 09:04:55 +00:00
Roberto Castañeda Lozano
edb42d7b0a 8282547: IGV: add control-flow graph view
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Reviewed-by: chagedorn, xliu, thartmann
2022-03-30 07:14:39 +00:00
Aleksey Shipilev
7418373674 8283788: Remove unused VM_DeoptimizeAll::_dependee
Reviewed-by: dholmes
2022-03-30 07:13:40 +00:00
Aleksey Shipilev
aa3352588b 8283787: C1: Remove unused ArrayStoreExceptionStub::_info
Reviewed-by: thartmann, chagedorn
2022-03-30 07:12:54 +00:00
Aleksey Shipilev
8b656117dd 8283789: CompilerPhaseTypeHelper::to_bitmask should operate on uint64_t
Reviewed-by: chagedorn, thartmann
2022-03-30 07:11:59 +00:00
Andrey Turbanov
9bb916db0a 8283800: Simplify String.indexOf/lastIndexOf calls
Reviewed-by: xuelei, bpb, lmesnik
2022-03-30 07:07:56 +00:00
Andrey Turbanov
b323f54fee 8283846: Remove unused jdk.internal.reflect.SignatureIterator
Reviewed-by: bpb, mchung, iris
2022-03-30 06:56:08 +00:00
Phil Race
eb5b7128a0 8283701: Add final or sealed modifier to appropriate java.awt.color ICC_Profile API classes
Reviewed-by: bpb, aivanov, serb
2022-03-30 03:00:19 +00:00
Xiaohong Gong
d06685680c 8282162: [vector] Optimize integral vector negation API
Reviewed-by: jiefu, psandoz, njian
2022-03-30 01:36:51 +00:00
Srinivas Mandalika
bfd9c2b30f 8283015: Create a test for JDK-4715496
Reviewed-by: serb
2022-03-29 22:26:01 +00:00
Ioi Lam
8cdabea0ab 8207025: JvmtiEnv::SetSystemProperty() does not handle OOM
Reviewed-by: dholmes, sspitsyn
2022-03-29 21:18:31 +00:00
Lance Andersen
272d6531ef 8283889: Fix Typo in open/src/java.sql/share/classes/java/sql/package-info.java
Reviewed-by: joehw, iris
2022-03-29 20:39:24 +00:00
Mikael Vidstedt
a9a9b901b4 8283723: Update Visual Studio 2022 to version 17.1.0 for Oracle builds on Windows
Reviewed-by: erikj, ihse
2022-03-29 19:58:53 +00:00
Mandy Chung
489b27d2c0 8282776: Bad NullPointerException message when invoking an interface MethodHandle on a null receiver
Reviewed-by: psandoz
2022-03-29 19:57:53 +00:00
Claes Redestad
072f2c461e 8283782: Redundant verification of year in LocalDate::ofEpochDay
Reviewed-by: rriggs, naoto
2022-03-29 19:48:43 +00:00
Chris Plummer
2fef5d4a33 8281853: serviceability/sa/ClhsdbThreadContext.java failed with NullPointerException: Cannot invoke "sun.jvm.hotspot.gc.shared.GenCollectedHeap.getGen(int)" because "this.heap" is null
Reviewed-by: kevinw, sspitsyn
2022-03-29 18:38:42 +00:00
Chris Plummer
f9f439a19d 8283717: vmTestbase/nsk/jdi/ThreadStartEvent/thread/thread001 failed due to SocketTimeoutException
Reviewed-by: lmesnik, amenkov, sspitsyn
2022-03-29 18:37:27 +00:00
Aleksei Efimov
9591306760 8283772: Make sun.net.dns.ResolverConfiguration sealed
Reviewed-by: jpai, dfuchs
2022-03-29 17:06:20 +00:00
Damon Nguyen
5359387220 8024624: [TEST_BUG] [macosx] CTRL+RIGHT(LEFT) doesn't move selection on next cell in JTable on Aqua L&F
Reviewed-by: kizune, prr, serb
2022-03-29 16:52:37 +00:00
lawrence.andrews
f074775f6c 8281284: Write JSlider accessibility test
Reviewed-by: prr, kizune
2022-03-29 16:48:45 +00:00
Nils Eliasson
fe670ff403 8283692: Add PrintIdealPhase that includes block scheduling
Reviewed-by: kvn, chagedorn
2022-03-29 15:32:52 +00:00
Evgeny Astigeevich
ab17f88f6c 8283626: AArch64: Set relocInfo::offset_unit to 4
Reviewed-by: simonis, aph
2022-03-29 13:48:18 +00:00
Manukumar V S
c3d903a55a 8282936: Write a regression test for JDK-4615365
Reviewed-by: serb
2022-03-29 11:13:26 +00:00
Claes Redestad
cc598e03de 8283774: TestZoneOffset::test_immutable should ignore ZoneOffset::rules
Reviewed-by: rriggs, naoto
2022-03-29 09:38:58 +00:00
Claes Redestad
0e788e0ecb 8283781: Avoid allocating unused lastRulesCaches
Reviewed-by: rriggs, naoto
2022-03-29 09:33:07 +00:00
Alexey Ushakov
043b0a7ffe 8273355: Flickering on tooltip appearance IntelliJ IDEA 2021.2.1
Reviewed-by: serb, aghaisas
2022-03-29 07:57:35 +00:00
Tobias Hartmann
2367228835 8283834: Unmappable character for US-ASCII encoding in TestPredicateInputBelowLoopPredicate
Reviewed-by: chagedorn
2022-03-29 07:21:23 +00:00
Thomas Stuefe
2e9fd56524 8283670: gtest os.release_multi_mappings_vm is still racy
Reviewed-by: mdoerr, dholmes
2022-03-29 07:09:27 +00:00
Ian Graves
f01cce235b 8264160: Regex \b is not consistent with \w without UNICODE_CHARACTER_CLASS
Reviewed-by: lancea, bpb, naoto
2022-03-29 00:01:57 +00:00
Alisen Chung
634800a536 8283806: [BACKOUT] JDK 19 L10n resource files update - msgdrop 10
Reviewed-by: kcr, naoto
2022-03-28 23:37:35 +00:00
Julian Waters
9b49900b58 8283603: Remove redundant qualifier in Windows specific Attach Operation
Reviewed-by: dholmes
2022-03-28 23:30:24 +00:00
Olga Mikhaltsova
d8fd22239b 8282538: PKCS11 tests fail on CentOS Stream 9
Reviewed-by: mullan, xuelei
2022-03-28 19:27:26 +00:00
Andrey Turbanov
d472c01934 8283711: Remove redundant 'new String' calls after concatenation
Reviewed-by: wetmore, vromero, xuelei
2022-03-28 19:13:07 +00:00
Alisen Chung
c0aecd15ae 8280400: JDK 19 L10n resource files update - msgdrop 10
Reviewed-by: naoto, kizune
2022-03-28 18:31:17 +00:00
Roger Riggs
f0282d7def 8279488: ProcessBuilder inherits contextClassLoader when spawning a process reaper thread
Reviewed-by: alanb
2022-03-28 15:44:54 +00:00
Jan Lahoda
a577656772 8282943: Unused weird key in compiler.properties
Reviewed-by: vromero
2022-03-28 14:53:14 +00:00
Michael McMahon
7f2a3ca289 8281561: Disable http DIGEST mechanism with MD5 and SHA-1 by default
Reviewed-by: weijun, dfuchs
2022-03-28 13:51:55 +00:00
Volker Simonis
0c472c8a4f 8283756: (zipfs) ZipFSOutputStreamTest.testOutputStream should only check inflated bytes
Reviewed-by: jpai, alanb, lancea
2022-03-28 13:41:18 +00:00
Zhengyu Gu
d6fa8b004b 8283469: Don't use memset to initialize members in FileMapInfo and fix memory leak
Reviewed-by: iklam, kbarrett
2022-03-28 12:28:18 +00:00
Jaikiran Pai
8567266795 8283683: Make ThreadLocalRandom a final class
Reviewed-by: smarks, chegar
2022-03-28 11:07:14 +00:00
Christoph Langer
f4eaa16c0f 8283728: jdk.hotspot.agent: Wrong location for RISCV64ThreadContext.java
Reviewed-by: fyang, jiefu, dholmes
2022-03-28 09:59:40 +00:00
Christoph Langer
cdef087aae 8283727: P11KeyGenerator has import statement with two semicolons after JDK-8267319
Reviewed-by: mullan
2022-03-28 09:49:05 +00:00
Albert Mingkun Yang
7f125373a7 8283558: Parallel: Pass PSIsAliveClosure to ReferenceProcessor constructor
Reviewed-by: tschatzl, kbarrett
2022-03-28 07:59:52 +00:00
Rickard Bäckman
66f1da1885 8281222: ciTypeFlow::profiled_count fails "assert(0 <= i && i < _len) failed: illegal index"
Reviewed-by: roland, chagedorn, thartmann
2022-03-28 07:34:11 +00:00
Kim Barrett
c2c0cb2a43 8282668: HotSpot Style Guide should permit unrestricted unions
Reviewed-by: dholmes, dcubed, tschatzl, kvn
2022-03-26 21:55:33 +00:00
Kim Barrett
b0daf70a25 8263134: HotSpot Style Guide should disallow inheriting constructors
Reviewed-by: dholmes, dcubed, kvn
2022-03-26 21:46:22 +00:00
Daniel D. Daugherty
c587b29bc9 8283720: ProblemList java/time/test/java/time/TestZoneOffset.java
Reviewed-by: alanb
2022-03-26 13:32:10 +00:00
Tyler Steele
d5f9059032 8283695: [AIX] Build failure due to name conflict in test_arguments.cpp
Reviewed-by: iklam, stuefe
2022-03-26 07:37:42 +00:00
Joe Darcy
f520b4f891 8283668: Update IllegalFormatException to use sealed classes
Reviewed-by: iris, jpai
2022-03-25 23:29:56 +00:00
Jonathan Gibbons
5ca8b91898 8283713: [BACKOUT] Unexpected TypeElement in ANALYZE TaskEvent
Reviewed-by: prr
2022-03-25 23:21:08 +00:00
Claes Redestad
7bac0a878d 8283681: Improve ZonedDateTime offset handling
Reviewed-by: scolebourne, naoto, rriggs
2022-03-25 22:37:55 +00:00
Calvin Cheung
2600f99fec 8282685: fileToEncodedURL_[name|signature] symbols are unused
Reviewed-by: hseigel
2022-03-25 21:31:21 +00:00
Weijun Wang
e97cf157cf 8283691: Classes in java.security still reference deprecated classes in spec
Reviewed-by: hchao, mullan, wetmore
2022-03-25 21:21:05 +00:00
Jonathan Gibbons
cb012a5b62 8283648: Improve the snippet "file not found" message.
Reviewed-by: prappo
2022-03-25 21:20:02 +00:00
Jonathan Gibbons
36b36efa12 8283661: Unexpected TypeElement in ANALYZE TaskEvent
Reviewed-by: vromero, jlahoda
2022-03-25 21:16:51 +00:00
Joe Wang
f4fd53d0ae 8273370: Preferences.exportSubtree() generates invalid XML if value contains control char
Reviewed-by: lancea, naoto
2022-03-25 18:10:45 +00:00
Valerie Peng
3b5dfee939 8283665: Two Jarsigner tests needs to be updated with JDK-8267319
Reviewed-by: xuelei, ascarpino, hchao, weijun
2022-03-25 17:10:59 +00:00
Brent Christian
656cba7af3 8283349: Robustness improvements to java/util/prefs/AddNodeChangeListener.jar
Reviewed-by: dfuchs, naoto, lancea
2022-03-25 17:08:25 +00:00
Phil Race
f8a164915f 8274735: javax.imageio.IIOException: Unsupported Image Type while processing a valid JPEG image
Reviewed-by: kizune, serb
2022-03-25 15:07:44 +00:00
Ivan Walulya
70648a6a15 8283368: G1: Remove G1SegmentedArraySegment MEMFLAGS template parameter
Reviewed-by: tschatzl, ayang
2022-03-25 09:41:20 +00:00
Stefan Karlsson
636225b815 8283607: Rename KlassID to KlassKind
Reviewed-by: dholmes, tschatzl
2022-03-25 08:17:45 +00:00
Prasanta Sadhukhan
6b59760da6 8283608: Refactor 2d, beans classes javadoc to use @throws instead of @exception
Reviewed-by: iris, prr
2022-03-25 05:18:26 +00:00
Valerie Peng
313bc7f64f 8267319: Use larger default key sizes and algorithms based on CNSA
Reviewed-by: weijun, xuelei
2022-03-24 22:50:26 +00:00
Ioi Lam
c1048021fe 8283641: Large value for CompileThresholdScaling causes assert
Reviewed-by: kvn
2022-03-24 21:42:35 +00:00
Andrey Turbanov
dc5a65ab37 8283426: Fix 'exeption' typo
Reviewed-by: xuelei, iris, dholmes, wetmore, aivanov
2022-03-24 19:52:16 +00:00
Joe Darcy
f16244509d 8283416: Update java.lang.invoke.MethodHandle to use sealed classes
Reviewed-by: sundar, mchung
2022-03-24 19:08:23 +00:00
Lance Andersen
90750decb4 8272477: Additional cleanup of test/jdk/java/nio/file/spi/SetDefaultProvider.java
Reviewed-by: bpb
2022-03-24 18:35:13 +00:00
Daniel D. Daugherty
a7e988343c 8283467: runtime/Thread/StopAtExit.java needs updating
Reviewed-by: dholmes, pchilanomate
2022-03-24 17:06:35 +00:00
Brian Burkhalter
b36cf35ad9 8283417: Update java.nio buffers to use sealed classes
Reviewed-by: rriggs, darcy, iris, alanb
2022-03-24 16:11:57 +00:00
Thomas Schatzl
19f01ab701 8283555: G1: Concurrent mark accesses uninitialized BOT of closed archive regions
Reviewed-by: ayang, iwalulya
2022-03-24 14:35:39 +00:00
Aleksei Efimov
929b6a3556 8282917: Remove InetAddressImplFactory from InetAddress
Reviewed-by: dfuchs, jpai
2022-03-24 13:50:50 +00:00
Roland Westrelin
14c20bc0e0 8283187: C2: loop candidate for superword not always unrolled fully if superword fails
Reviewed-by: thartmann, chagedorn
2022-03-24 12:53:44 +00:00
Erik Joelsson
1c4f5fcb88 8283575: Check for GNU time fails for version >1.7
Reviewed-by: shade, ihse
2022-03-24 12:48:12 +00:00
Magnus Ihse Bursie
2c43ecb43f 8283323: libharfbuzz optimization level results in extreme build times
Reviewed-by: erikj, prr
2022-03-24 09:49:33 +00:00
Fei Yang
5905b02c0e 8276799: Implementation of JEP 422: Linux/RISC-V Port
Co-authored-by: Yadong Wang <yadonn.wang@huawei.com>
Co-authored-by: Yanhong Zhu <zhuyanhong2@huawei.com>
Co-authored-by: Feilong Jiang <jiangfeilong@huawei.com>
Co-authored-by: Kun Wang <wangkun49@huawei.com>
Co-authored-by: Zhuxuan Ni <nizhuxuan@huawei.com>
Co-authored-by: Taiping Guo <guotaiping1@huawei.com>
Co-authored-by: Kang He <hekang6@huawei.com>
Co-authored-by: Aleksey Shipilev <shade@openjdk.org>
Co-authored-by: Xiaolin Zheng <yunyao.zxl@alibaba-inc.com>
Co-authored-by: Kuai Wei <kuaiwei.kw@alibaba-inc.com>
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Reviewed-by: ihse, dholmes, rriggs, kvn, shade
2022-03-24 09:22:46 +00:00
Yoshiki Sato
b05d4ccf8e 8283350: (tz) Update Timezone Data to 2022a
Reviewed-by: coffeys
2022-03-24 09:13:25 +00:00
Daniel Jeliński
a35afe84c3 8283519: Hsdis with capstone should annotate output
Reviewed-by: jvernee
2022-03-24 07:53:14 +00:00
Prasanta Sadhukhan
e6f707aa76 8283437: Refactor imageio classes javadoc to use @throws instead of @exception
Reviewed-by: serb
2022-03-24 06:31:12 +00:00
Stefan Karlsson
af18b1111a 8283574: Use Klass::_id for type checks in the C++ code
Reviewed-by: tschatzl, kbarrett
2022-03-24 06:02:09 +00:00
Alex Menkov
5cf580e0fb 8283587: [BACKOUT] Invalid generic signature for redefined classes
Reviewed-by: lmesnik, dcubed, sspitsyn
2022-03-24 04:41:38 +00:00
lawrence.andrews
2ef9767aae 8270331: [TESTBUG] Error: Not a test or directory containing tests: java/awt/print/PrinterJob/InitToBlack.java
Reviewed-by: prr
2022-03-24 02:55:21 +00:00
Pengfei Li
a6740c010b 8283408: Fix a C2 crash when filling arrays with unsafe
Reviewed-by: roland, thartmann
2022-03-24 01:50:04 +00:00
Joe Darcy
1a84d7590a 8283594: Improve docs of ElementScanner classes
Reviewed-by: jjg
2022-03-24 00:57:54 +00:00
Manukumar V S
8a044649bd 8282860: Write a regression test for JDK-4164779
Reviewed-by: serb
2022-03-23 23:46:58 +00:00
Manukumar V S
6917c39e45 8283493: Create an automated regression test for RFE 4231298
Reviewed-by: serb
2022-03-23 23:42:39 +00:00
Naoto Sato
0ee65e1ff3 8283465: Character.UnicodeBlock.NUM_ENTITIES is out of date
Reviewed-by: bpb, iris, smarks
2022-03-23 19:44:04 +00:00
Andrey Turbanov
f9137cb7b7 8280896: java/nio/file/Files/probeContentType/Basic.java fails on Windows 11
Reviewed-by: jpai, bpb
2022-03-23 19:27:56 +00:00
Daniel D. Daugherty
0b11b576a2 8283222: improve diagnosability of runtime/8176717/TestInheritFD.java timeouts
Reviewed-by: dholmes, hseigel
2022-03-23 19:18:57 +00:00
Sean Mullan
138460c004 8163327: Remove 3DES from the default enabled cipher suites list
Reviewed-by: xuelei
2022-03-23 18:32:55 +00:00
Alex Menkov
f01773956f 8282241: Invalid generic signature for redefined classes
Reviewed-by: coleenp, sspitsyn
2022-03-23 18:31:34 +00:00
liach
3e73a0b726 8283237: CallSite should be a sealed class
Reviewed-by: jkuhn, mchung
2022-03-23 16:43:06 +00:00
Severin Gehwolf
a77160065b 8283279: [Testbug] Improve TestGetSwapSpaceSize
Reviewed-by: jiefu
2022-03-23 15:00:05 +00:00
Aleksei Efimov
2b291d837e 8282536: java.net.InetAddress should be a sealed class
Reviewed-by: dfuchs, jpai, rriggs, michaelm
2022-03-23 14:57:36 +00:00
Albert Mingkun Yang
dc45b0ac58 8283513: Parallel: Skip the card marking in PSRootsClosure
Reviewed-by: tschatzl, iwalulya
2022-03-23 14:09:01 +00:00
Thomas Stuefe
78ef2fdef6 8283562: JDK-8282306 breaks gtests on zero
Reviewed-by: shade
2022-03-23 12:55:28 +00:00
Kevin Walls
61d7d868db 8283254: Remove redundant class jdk/internal/agent/spi/AgentProvider
Reviewed-by: mchung, redestad, dfuchs
2022-03-23 11:03:25 +00:00
Vicente Romero
6ed0ba2f8a 8283543: indentation error at com.sun.tools.javac.comp.Enter::visitTopLevel
Reviewed-by: darcy, iris
2022-03-23 10:34:09 +00:00
Jaikiran Pai
91fab6ad59 8283411: InflaterInputStream holds on to a temporary byte array of 512 bytes
Reviewed-by: lancea, vtewari, alanb
2022-03-23 09:47:44 +00:00
Quan Anh Mai
d8c55725e0 8282204: Use lea instructions for arithmetic operations on x86_64
Reviewed-by: jiefu, sviswanathan, thartmann
2022-03-23 09:45:23 +00:00
Jie Fu
026b85303c 8283298: Make CodeCacheSegmentSize a product flag
Reviewed-by: dlong, kvn
2022-03-23 08:48:17 +00:00
Thomas Stuefe
58487ddc17 8283249: CompressedClassPointers.java fails on ppc with 'Narrow klass shift: 0' missing
Reviewed-by: iklam
2022-03-23 06:46:55 +00:00
Sibabrata Sahoo
86015e15a5 8282293: Domain value for system property jdk.https.negotiate.cbt should be case-insensitive
Reviewed-by: weijun, rhalade
2022-03-23 06:45:37 +00:00
Aleksey Shipilev
1443f6b919 8283199: Linux os::cpu_microcode_revision() stalls cold startup
Reviewed-by: dholmes, redestad, stuefe
2022-03-23 06:31:36 +00:00
Aleksey Shipilev
82e1a1cf8b 8283257: x86: Clean up invocation/branch counter updates code
Reviewed-by: redestad, kvn
2022-03-23 06:30:19 +00:00
Thomas Stuefe
b035fda459 8283497: [windows] print TMP and TEMP in hs_err and VM.info
Reviewed-by: ysuenaga, dholmes
2022-03-23 06:06:51 +00:00
Ichiroh Takiguchi
6ea996c205 8282422: JTable.print() failed with UnsupportedCharsetException on AIX ko_KR locale
Reviewed-by: prr, serb
2022-03-23 01:39:20 +00:00
David Holmes
8cc1235029 8282952: Thread::exit should be immune to Thread.stop
Reviewed-by: dcubed, pchilanomate, alanb
2022-03-23 00:06:53 +00:00
Phil Race
33eb89dfeb 8283457: [macos] libpng build failures with Xcode13.3
Reviewed-by: erikj
2022-03-22 21:48:42 +00:00
Joe Darcy
f7d21c3523 8283480: Make AbstractStringBuilder sealed
Reviewed-by: jjg, rriggs, jlaskey, dfuchs
2022-03-22 16:26:23 +00:00
Emanuel Peter
d29c7e740d 8282590: C2: assert(addp->is_AddP() && addp->outcnt() > 0) failed: Don't process dead nodes
Reviewed-by: thartmann, chagedorn
2022-03-22 16:23:23 +00:00
Jim Laskey
557ff4b355 8282625: Formatter caches Locale/DecimalFormatSymbols poorly
Reviewed-by: naoto, rriggs, jpai
2022-03-22 15:32:46 +00:00
Roland Westrelin
fabde3b7b8 8283451: C2: assert(_base == Long) failed: Not a Long
Reviewed-by: thartmann, chagedorn
2022-03-22 14:06:49 +00:00
Zhengyu Gu
c0f984e5fb 8283456: Make CompiledICHolder::live_count/live_not_claimed_count debug only
Reviewed-by: dholmes
2022-03-22 13:30:26 +00:00
Roland Westrelin
85628a871d 8282592: C2: assert(false) failed: graph should be schedulable
Reviewed-by: chagedorn, thartmann
2022-03-22 10:34:33 +00:00
Srinivas Mandalika
a6fd0b21dd 8283087: Create a test or JDK-4715503
Reviewed-by: serb
2022-03-22 09:20:12 +00:00
Kevin Walls
37fc77ef60 8283092: JMX subclass permission check redundant with strong encapsulation
Reviewed-by: dfuchs, mchung
2022-03-22 07:54:41 +00:00
Manukumar V S
849b19523a 8282937: Write a regression test for JDK-4820080
Reviewed-by: serb
2022-03-22 01:28:06 +00:00
David Holmes
81d63734bc 8282469: Allow considered use of C++ thread_local in Hotspot
Reviewed-by: kbarrett, dcubed
2022-03-22 01:20:31 +00:00
David Holmes
f3dc0c88ea 8282721: HotSpot Style Guide should allow considered use of C++ thread_local
Reviewed-by: kbarrett, jrose, dcubed, stuefe, mdoerr, kvn
2022-03-22 01:12:29 +00:00
Magnus Ihse Bursie
f8878cb0cc 8257733: Move module-specific data from make to respective module
Reviewed-by: jjg, weijun, naoto, erikj, prr, alanb, mchung
2022-03-21 21:34:09 +00:00
Joe Darcy
14b9e80b8a 8283415: Update java.lang.ref to use sealed classes
Reviewed-by: kbarrett, alanb
2022-03-21 16:57:17 +00:00
Albert Mingkun Yang
f4f87284cb 8283097: Parallel: Move filler object logic inside PSPromotionLAB::unallocate_object
Reviewed-by: tschatzl, iwalulya
2022-03-21 16:21:30 +00:00
Albert Mingkun Yang
19d34bdf99 8281879: Serial: Merge CardGeneration into TenuredGeneration
Reviewed-by: tschatzl, iwalulya
2022-03-21 16:20:20 +00:00
Johannes Bechberger
999da9bfc5 8282306: os::is_first_C_frame(frame*) crashes on invalid link access
Reviewed-by: stuefe, mdoerr
2022-03-21 15:49:59 +00:00
Naoto Sato
c4dc58e12e 8283277: ISO 4217 Amendment 171 Update
Reviewed-by: iris, joehw
2022-03-21 15:33:09 +00:00
Zhengyu Gu
cb576da575 8283379: Memory leak in FileHeaderHelper
Reviewed-by: dholmes, iklam, stuefe
2022-03-21 12:28:17 +00:00
Zhengyu Gu
909986c7e1 8283217: Leak FcObjectSet in getFontConfigLocations() in fontpath.c
Reviewed-by: prr, aivanov
2022-03-21 12:26:58 +00:00
Thomas Schatzl
b617f1db4e 8283447: Remove unused LIR_Assembler::_bs
Reviewed-by: redestad
2022-03-21 11:30:26 +00:00
Thomas Schatzl
eb4849e561 8283327: Add methods to save/restore registers when calling into the VM from C1/interpreter barrier code
Reviewed-by: eosterlund, dlong
2022-03-21 10:42:38 +00:00
Albert Mingkun Yang
fd9301514e 8283332: G1: Stricter assertion in G1BlockOffsetTablePart::forward_to_block_containing_addr
Reviewed-by: kbarrett, iwalulya
2022-03-21 08:40:14 +00:00
Albert Mingkun Yang
ec62d90db2 8283365: G1: Remove duplicate assertions in HeapRegion::oops_on_memregion_seq_iterate_careful
Reviewed-by: kbarrett, tschatzl
2022-03-21 08:39:17 +00:00
Thomas Schatzl
e709cb05dc 8283186: Explicitly pass a third temp register to MacroAssembler::store_heap_oop
Reviewed-by: eosterlund
2022-03-21 08:25:33 +00:00
Manukumar V S
83a1c90433 8282789: Create a regression test for the JTree usecase of JDK-4618767
Reviewed-by: aivanov
2022-03-21 07:36:21 +00:00
Manukumar V S
b451273d20 8282548: Create a regression test for JDK-4330998
Reviewed-by: aivanov
2022-03-21 07:33:20 +00:00
Maxim Kartashev
8a2d5ab07e 8282270: java/awt/Robot Screen Capture tests fail after 8280861
Reviewed-by: aivanov
2022-03-21 07:21:00 +00:00
Xue-Lei Andrew Fan
4df67426ed 8282723: Add constructors taking a cause to JSSE exceptions
Reviewed-by: wetmore, iris
2022-03-20 06:46:13 +00:00
Daniel D. Daugherty
3f923b82c3 8282704: runtime/Thread/StopAtExit.java may leak memory
Reviewed-by: dholmes, alanb
2022-03-19 13:43:06 +00:00
Andrey Turbanov
80415e04c5 8282534: Remove redundant null check in ChaCha20Cipher.engineInit
Reviewed-by: xuelei
2022-03-19 13:31:50 +00:00
Andrey Turbanov
e8caf84fb9 8282574: Cleanup unnecessary calls to Throwable.initCause() in jdk.compiler
Reviewed-by: darcy
2022-03-19 13:29:49 +00:00
Jie Fu
10ccfffae1 8283352: [CDS] SharedBaseAddress.java fails on x86_32
Reviewed-by: dholmes, iklam, stuefe
2022-03-19 07:08:47 +00:00
Tyler Steele
3e58a438e9 8283287: ClassLoader.c cleanups
Reviewed-by: stuefe, alanb, rriggs
2022-03-19 07:06:47 +00:00
Ichiroh Takiguchi
0c3094c818 8204541: Correctly support AIX xlC 16.1 symbol visibility flags
Reviewed-by: ihse, stuefe
2022-03-19 04:43:20 +00:00
Mikael Vidstedt
8384ac4ed3 8283057: Update GCC to version 11.2 for Oracle builds on Linux
Reviewed-by: erikj
2022-03-18 22:01:27 +00:00
Mikael Vidstedt
d8893fad23 8283059: Uninitialized warning in check_code.c with GCC 11.2
Reviewed-by: dholmes
2022-03-18 20:28:39 +00:00
Ravi Reddy
ff0b0927a2 8278794: Infinite loop in DeflaterOutputStream.finish()
Reviewed-by: coffeys, lancea
2022-03-18 15:31:30 +00:00
Erik Gahlin
b2aa085e67 8283378: JFR: Checkpoint classes not renamed properly
Reviewed-by: dcubed
2022-03-18 14:54:56 +00:00
Andrew Leonard
85cc6f1440 8283315: jrt-fs.jar not always deterministically built
Reviewed-by: ihse
2022-03-18 13:40:35 +00:00
Erik Gahlin
c72bcfc1b2 8283289: JFR: Rename CheckPoint
Reviewed-by: mgronlun
2022-03-18 13:27:49 +00:00
Erik Gahlin
4b5079b983 8283202: Potential off-read when checking JFR's status in awaitFinished
Reviewed-by: mgronlun
2022-03-18 13:18:38 +00:00
Jie Fu
b96cb048f1 8283353: compiler/c2/cr6865031/Test.java and compiler/runtime/Test6826736.java fails on x86_32
Reviewed-by: chagedorn
2022-03-18 07:58:58 +00:00
Tyler Steele
cab4ff6454 8283225: ClassLoader.c produces incorrect OutOfMemory Exception when length is 0 (aix)
Reviewed-by: stuefe, rriggs, dholmes
2022-03-18 07:02:26 +00:00
Alexander Matveev
d83cee98b5 8282407: Missing ')' in MacResources.properties
Reviewed-by: naoto
2022-03-18 03:14:32 +00:00
Claes Redestad
002e366744 8283325: US_ASCII decoder relies on String.decodeASCII being exhaustive
Reviewed-by: rriggs, dcubed
2022-03-17 21:15:36 +00:00
Ioi Lam
b004fb0550 8282773: Refactor parsing of integer VM options
Reviewed-by: dholmes, kbarrett
2022-03-17 17:50:20 +00:00
Joe Darcy
5ef1990d6c 8283274: Improve @jvms usage in java.base
Reviewed-by: iris
2022-03-17 16:37:20 +00:00
Albert Mingkun Yang
31df6a60a8 8283188: Build time regression caused by JDK-8278917
Reviewed-by: kbarrett, tschatzl
2022-03-17 16:17:18 +00:00
Julian Waters
0f1766dff6 8283320: Error message for Windows libraries always points to --with-msvcr-dll no matter the actual file name
Reviewed-by: erikj, ihse
2022-03-17 15:30:17 +00:00
Doug Simon
69e4e338b1 8283056: show abstract machine code in hs-err for all VM crashes
Reviewed-by: thartmann, dholmes
2022-03-17 12:51:10 +00:00
Albert Mingkun Yang
bad658e8e9 8282727: Parallel: Remove PSPromotionManager::_totally_drain
Reviewed-by: tschatzl, kbarrett
2022-03-17 09:47:51 +00:00
Claes Redestad
beedae1141 8281146: Replace StringCoding.hasNegatives with countPositives
Co-authored-by: Lutz Schmidt <lucy@openjdk.org>
Co-authored-by: Martin Doerr <mdoerr@openjdk.org>
Reviewed-by: kvn, lucy, rriggs
2022-03-17 09:20:24 +00:00
Prasanta Sadhukhan
249d553659 8282602: Refactor awt classes javadoc to use @throws instead of @exception
Reviewed-by: aivanov, prr
2022-03-17 09:15:54 +00:00
Prasanta Sadhukhan
096bca4a9c 8282473: Refactor swing classes javadoc to use @throws instead of @exception
Reviewed-by: aivanov, dmarkov, prr
2022-03-17 09:10:08 +00:00
Ivan Walulya
a5ebcc0c04 8282072: G1: Rename CardSetPtr to CardSetContainerPtr
Reviewed-by: ayang, tschatzl
2022-03-17 08:54:29 +00:00
Jie Fu
3da5204b3c 8283229: compiler/arguments/TestCodeEntryAlignment.java fails with release VMs
Reviewed-by: dlong
2022-03-17 00:05:57 +00:00
XenoAmess
3e393047e1 8281631: HashMap copy constructor and putAll can over-allocate table
Reviewed-by: smarks
2022-03-16 16:48:49 +00:00
Joe Darcy
0cf291bc31 8283234: Improve @jls usage in java.base
Reviewed-by: iris
2022-03-16 16:17:50 +00:00
Magnus Ihse Bursie
9b8afce379 8283260: gcc is not supported on mac
Reviewed-by: erikj
2022-03-16 16:07:32 +00:00
Swati Sharma
08cadb4754 8271195: Use largest available large page size smaller than LargePageSizeInBytes when available
Co-authored-by: Jatin Bhateja <jbhateja@openjdk.org>
Reviewed-by: ayang, tschatzl
2022-03-16 09:48:09 +00:00
Ioi Lam
de4f04cb71 8253495: CDS generates non-deterministic output
Reviewed-by: erikj, kbarrett, ccheung, ihse
2022-03-16 03:12:48 +00:00
Joe Darcy
4df24c5df3 8283230: Improve @jls usage in ElementType
Reviewed-by: jjg, iris
2022-03-16 02:02:10 +00:00
Toshio Nakamura
27fe3d7f8d 8240756: [macos] SwingSet2:TableDemo:Printed Japanese characters were garbled
Reviewed-by: prr, serb
2022-03-16 01:11:40 +00:00
Quan Anh Mai
bacfaa3ee1 8282414: x86: Enhance the assembler to generate more compact instructions
Reviewed-by: thartmann, sviswanathan
2022-03-16 01:10:22 +00:00
Dean Long
1465ea98b7 8282355: compiler/arguments/TestCodeEntryAlignment.java failed "guarantee(sect->end() <= tend) failed: sanity"
Reviewed-by: jiefu, thartmann, shade
2022-03-15 20:17:36 +00:00
Man Cao
ac06bdb123 8282507: Add a separate license file for hsdis
Reviewed-by: ihse
2022-03-15 20:05:33 +00:00
Joe Darcy
32f8437d85 8283075: Bad IllegalArgumentException message for out of range rank from ClassDesc.arrayType(int)
Reviewed-by: vromero, alanb
2022-03-15 17:33:45 +00:00
Tobias Hartmann
12dca36c73 8283189: Bad copyright header in UnsafeCopyMemory.java
Reviewed-by: chagedorn, dcubed
2022-03-15 16:28:54 +00:00
Joe Darcy
05a83e03ca 8283124: Add constant for tau to Math and StrictMath
Reviewed-by: bpb, iris
2022-03-15 16:22:11 +00:00
Joe Darcy
671b6efd61 8283143: Use minimal-length literals to initialize PI and E constants
Reviewed-by: smarks
2022-03-15 16:05:37 +00:00
Hai-May Chao
f43ffe211f 8282633: jarsigner output does not explain why an EC key is disabled if its curve has been disabled
Reviewed-by: weijun
2022-03-15 15:54:47 +00:00
Tyler Steele
4de72014d3 8283122: [AIX, s390] UnsafeCopyMemory 'Mismatched' Tests Fail on Big Endian Systems
Reviewed-by: thartmann, stuefe
2022-03-15 14:52:27 +00:00
Zhengyu Gu
2cddf3f539 8282887: Potential memory leak in sun.util.locale.provider.HostLocaleProviderAdapterImpl.getNumberPattern() on Windows
Reviewed-by: naoto, alanb
2022-03-15 14:16:35 +00:00
Daniel Fuchs
710653ce18 8254786: java/net/httpclient/CancelRequestTest.java failing intermittently
Reviewed-by: jpai, michaelm
2022-03-15 12:59:54 +00:00
Dean Long
34d4ffcea5 8279317: compiler/jvmci/compilerToVM/DisassembleCodeBlobTest.java assumes immutable code
Reviewed-by: dnsimon, iveresov
2022-03-15 07:24:50 +00:00
Hannes Wallnöfer
6013d09e82 8268866: Javascript when used in an iframe cannot display search results
Reviewed-by: jjg
2022-03-14 20:29:15 +00:00
Hannes Wallnöfer
5ba5e21fd2 8282214: Upgrade JQuery to version 3.6.0
Reviewed-by: jjg
2022-03-14 20:28:07 +00:00
Mikael Vidstedt
a244051a8c 8283062: Uninitialized warnings in libgtest with GCC 11.2
Reviewed-by: jiefu, erikj
2022-03-14 18:37:41 +00:00
Chris Plummer
5bf6a7f7d7 8282691: add jdb "-R" option for passing any argument to the launched debuggee process
Reviewed-by: alanb, kevinw
2022-03-14 18:15:40 +00:00
Phil Race
f66070b00d 8282577: ICC_Profile.setData(int, byte[]) invalidates the profile
Reviewed-by: serb
2022-03-14 18:05:38 +00:00
Carter Kozak
70bd57ed35 8283049: Fix non-singleton LoggerFinder error message: s/on/one
Reviewed-by: dfuchs
2022-03-14 17:54:19 +00:00
Emanuel Peter
7833667f0e 8282881: Print exception message in VM crash with -XX:AbortVMOnException
Reviewed-by: dholmes, hseigel
2022-03-14 17:35:09 +00:00
Naoto Sato
c96085eaab 8282929: Localized monetary symbols are not reflected in toLocalizedPattern return value
Reviewed-by: joehw, lancea
2022-03-14 16:28:15 +00:00
Brian Burkhalter
13cebffe61 8058924: FileReader(String) documentation is insufficient
Reviewed-by: naoto, lancea
2022-03-14 16:10:15 +00:00
Zdenek Zambersky
08573cc3b2 8282529: Fix API Note in javadoc for javax.net.ssl.SSLSocket
Reviewed-by: wetmore, xuelei
2022-03-14 14:21:58 +00:00
Roland Westrelin
ea9eeea8ff 8281322: C2: always construct strip mined loop initially (even if strip mining is disabled)
Reviewed-by: chagedorn, thartmann
2022-03-14 13:59:13 +00:00
Ahmed Muhsin
5f3d4032f3 8272735: Add missing SubL node transformations
Reviewed-by: thartmann, chagedorn
2022-03-14 09:05:53 +00:00
Aleksey Shipilev
01570ca92d 8283017: GHA: Workflows break with update release versions
Reviewed-by: erikj, ihse
2022-03-14 09:03:05 +00:00
Thomas Schatzl
c0e3d107f6 8283008: KRegister documentation out of date
Reviewed-by: dlong, sviswanathan, jiefu, jbhateja
2022-03-14 09:02:12 +00:00
Jatin Bhateja
fde3149896 8281375: Accelerate bitCount operation for AVX2 and AVX512 target.
Reviewed-by: sviswanathan, thartmann
2022-03-14 07:11:23 +00:00
Jaikiran Pai
3cf83a671e 8282572: EnumSet should be a sealed class
Reviewed-by: sundar
2022-03-14 03:17:57 +00:00
Joshua Zhu
5c408c1410 8282874: Bad performance on gather/scatter API caused by different IntSpecies of indexMap
Reviewed-by: psandoz
2022-03-12 04:04:28 +00:00
Pavel Rappo
374193b6d2 8283041: [javadoc] Crashes using {@return} with @param
Reviewed-by: jjg
2022-03-11 22:41:47 +00:00
Zhengyu Gu
0fd09d383b 8282978: Wrong parameter passed to GetStringXXXChars in various places
Reviewed-by: alanb, dfuchs
2022-03-11 13:25:09 +00:00
Mahendra Chhipa
95ca94436d 8282354: Remove dependancy of TestHttpServer, HttpTransaction, HttpCallback from open/test/jdk/ tests
Reviewed-by: dfuchs
2022-03-11 10:48:57 +00:00
Christian Stein
f99193ae3f 8282811: Typo in IAE details message of RecordedObject.getValueDescriptor
Reviewed-by: egahlin
2022-03-11 09:58:22 +00:00
Julian Waters
cab9def1c1 8282700: Properly handle several --without options during configure
Reviewed-by: ihse
2022-03-11 09:12:19 +00:00
Ivan Walulya
1a5a496aee 8282763: G1: G1CardSetContainer remove intrusive-list details.
Reviewed-by: tschatzl, kbarrett, ayang
2022-03-11 08:43:04 +00:00
Yi Yang
88f0938c94 8272493: Suboptimal code generation around Preconditions.checkIndex intrinsic with AVX2
Reviewed-by: redestad, thartmann
2022-03-11 02:28:07 +00:00
Yi Yang
a5a1a32db6 8282883: Use JVM_LEAF to avoid ThreadStateTransition for some simple JVM entries
Reviewed-by: dholmes, shade
2022-03-11 02:27:01 +00:00
Daniel D. Daugherty
bb7ee5a04a 8282314: nsk/jvmti/SuspendThread/suspendthrd003 may leak memory
Reviewed-by: dholmes, cjplummer, amenkov, lmesnik, mseledtsov
2022-03-10 19:13:55 +00:00
Chris Plummer
f5217b475e 8282852: Debug agent asserts in classTrack_addPreparedClass()
Reviewed-by: amenkov, lmesnik
2022-03-10 19:08:10 +00:00
Aleksey Shipilev
7b91bbba82 8282170: JVMTI SetBreakpoint metaspace allocation test
Reviewed-by: cjplummer, lmesnik
2022-03-10 18:53:59 +00:00
Brian Burkhalter
b13cacc575 8254574: PrintWriter handling of InterruptedIOException should be removed
Reviewed-by: alanb
2022-03-10 18:25:53 +00:00
John Jiang
1f295239b9 8282932: a space is needed for the unsupported protocol exception message in ProtocolVersion
Reviewed-by: xuelei, mullan
2022-03-10 18:25:06 +00:00
Zhengyu Gu
879b6445e3 8282897: Fix call parameter to GetStringChars() in HostLocaleProviderAdapter_md.c
Reviewed-by: shade, naoto
2022-03-10 18:23:41 +00:00
Brian Burkhalter
fdce97df5f 8267820: (fs) Files.copy should attempt to copy POSIX attributes when target file in custom file system
Reviewed-by: lancea, alanb
2022-03-10 17:36:51 +00:00
Brian Burkhalter
e8a1ce00b2 8280881: (fs) UnixNativeDispatcher.close0 may throw UnixException
Reviewed-by: alanb
2022-03-10 16:38:44 +00:00
Anton Litvinov
1668c02ee8 8277922: Unable to click JCheckBox in JTable through Java Access Bridge
Reviewed-by: aivanov, serb
2022-03-10 16:37:55 +00:00
Alex Blewitt
2674799005 8282878: Removed _JavaThread from PhaseTraceTime
Reviewed-by: shade, thartmann
2022-03-10 15:27:29 +00:00
Tyler Steele
7c8ea9f05b 8282509: [exploded image] ResolvedClassTest fails with similar output
Reviewed-by: mdoerr, dlong
2022-03-10 15:09:19 +00:00
Magnus Ihse Bursie
9c88c5bb63 8282948: JDK-8274980 missed correct handling of MACOSX_BUNDLE_BUILD_VERSION
Reviewed-by: erikj
2022-03-10 13:50:05 +00:00
Thomas Schatzl
83d7718690 8282893: Remove MacroAssembler::push/pop_callee_saved_registers
Reviewed-by: redestad
2022-03-10 11:28:29 +00:00
Prasanta Sadhukhan
6a3a7b94a4 6218162: DefaultTableColumnModel.getColumn() method should mention ArrayIndexOutOfBoundsException
Reviewed-by: aivanov, prr
2022-03-10 09:26:36 +00:00
Prasanta Sadhukhan
5b78a82e9d 7017094: ParsedSynthStyle: parameter name "direction" should be changed to "tabIndex"
Reviewed-by: jdv, aivanov, prr
2022-03-10 09:22:21 +00:00
Rajat Mahajan
8aba4de984 8249592: Robot.mouseMove moves cursor to incorrect location when display scale varies and Java runs in DPI Unaware mode
Reviewed-by: serb, aivanov
2022-03-10 05:09:29 +00:00
Chris Plummer
ff76620487 8282641: Make jdb "threadgroup" command with no args reset the current threadgroup back to the default
Reviewed-by: kevinw, amenkov
2022-03-09 19:42:47 +00:00
Weijun Wang
70318e1d17 8282884: Provide OID aliases for MD2, MD5, and OAEP
Reviewed-by: xuelei
2022-03-09 16:47:03 +00:00
Xue-Lei Andrew Fan
6d8d156c97 8280494: (D)TLS signature schemes
Reviewed-by: mullan
2022-03-09 16:11:07 +00:00
Zhengyu Gu
5df2a05770 8282628: Potential memory leak in sun.font.FontConfigManager.getFontConfig()
Reviewed-by: stuefe, dholmes, aivanov
2022-03-09 13:27:11 +00:00
Emanuel Peter
d07f7c76c5 8282665: [REDO] ByteBufferTest.java: replace endless recursion with RuntimeException in void ck(double x, double y)
Reviewed-by: psandoz, thartmann
2022-03-09 08:59:37 +00:00
Tim Prinzing
31ad80a229 8280902: ResourceBundle::getBundle may throw NPE when invoked by JNI code with no caller frame
Reviewed-by: naoto, mchung, ihse
2022-03-09 04:02:17 +00:00
Xiaohong Gong
12693a6cf3 8282432: Optimize masked "test" Vector API with predicate feature
Reviewed-by: psandoz
2022-03-09 01:02:25 +00:00
Hao Sun
49245131e9 8265263: AArch64: Combine vneg with right shift count
Reviewed-by: adinn, dlong
2022-03-09 00:52:01 +00:00
Rajan Halade
ea19114e66 8282832: Update file path for HostnameMatcher/cert5.crt in test sun/security/util/Pem/encoding.sh
Reviewed-by: mullan
2022-03-08 20:34:02 +00:00
Sean Mullan
72e987e3b4 7192189: Support endpoint identification algorithm in RFC 6125
Reviewed-by: xuelei, rhalade
2022-03-08 18:18:57 +00:00
Xin Liu
288d1afc5a 8282715: typo compileony in test Test8005033.java
Reviewed-by: jiefu, dholmes, thartmann
2022-03-08 17:33:15 +00:00
Manukumar V S
6b34884b34 8282234: Create a regression test for JDK-4532513
Reviewed-by: aivanov
2022-03-08 17:01:03 +00:00
Ian Graves
3fc009be8a 8281560: Matcher.hitEnd returns unexpected results in presence of CANON_EQ flag.
Reviewed-by: rriggs, lancea
2022-03-08 16:32:18 +00:00
Daniel Jeliński
2549e55038 8275640: (win) java.net.NetworkInterface issues with IPv6-only environments
Reviewed-by: msheppar, dfuchs
2022-03-08 16:15:24 +00:00
Coleen Phillimore
3e4dfc63e7 8282295: SymbolPropertyEntry::set_method_type fails with assert
Reviewed-by: hseigel
2022-03-08 16:10:26 +00:00
Foivos Zakkak
0cbc4b85bf 8281266: [JVMCI] MetaUtil.toInternalName() doesn't handle hidden classes correctly
Reviewed-by: sgehwolf, dnsimon
2022-03-08 15:35:55 +00:00
Magnus Ihse Bursie
0f88fc180c 8282769: BSD date cannot handle all ISO 8601 formats
Reviewed-by: erikj
2022-03-08 14:04:59 +00:00
Magnus Ihse Bursie
c6d743fb92 8282770: Set source date in jib profiles from buildId
Reviewed-by: erikj
2022-03-08 13:57:59 +00:00
Jim Laskey
5fab27e1b8 8282144: RandomSupport.convertSeedBytesToLongs sign extension overwrites previous bytes
Reviewed-by: bpb
2022-03-08 13:25:34 +00:00
Markus Grönlund
65ca0a5776 8276333: jdk/jfr/event/oldobject/TestLargeRootSet.java failed "assert(!contains(edge->reference())) failed: invariant"
Reviewed-by: egahlin
2022-03-08 09:28:46 +00:00
Albert Mingkun Yang
e607287204 8282728: Serial: Remove unused BlockOffsetArray::Action
Reviewed-by: tschatzl
2022-03-08 08:24:10 +00:00
Jamil Nimeh
8b45dbdae6 8282312: Minor corrections to evbroadcasti32x4 intrinsic on x86
Reviewed-by: dlong
2022-03-08 05:50:41 +00:00
Yi Yang
3f0684d0b8 8275775: Add jcmd VM.classes to print details of all classes
Reviewed-by: dholmes, iklam, stuefe
2022-03-08 03:14:21 +00:00
Ioi Lam
cde923dd47 8282690: runtime/CommandLine/VMDeprecatedOptions.java fails after JDK-8281181
Reviewed-by: dholmes, dcubed
2022-03-08 00:19:07 +00:00
Andrey Turbanov
50eb915a74 8282632: Cleanup unnecessary calls to Throwable.initCause() in java.security.jgss
Reviewed-by: mullan, rhalade
2022-03-07 22:00:11 +00:00
Matteo Baccan
ccad39237a 8282657: Code cleanup: removing double semicolons at the end of lines
Reviewed-by: lancea, rriggs, ihse, prr, iris, wetmore, darcy, dholmes
2022-03-07 21:33:40 +00:00
Magnus Ihse Bursie
5d5bf16b0a 8282567: Improve source-date handling in build system
Reviewed-by: erikj, sgehwolf
2022-03-07 19:40:34 +00:00
Ravi Reddy
3996782c5a 8281093: Violating Attribute-Value Normalization in the XML specification 1.0
Reviewed-by: joehw
2022-03-07 19:36:54 +00:00
Kim Barrett
2e298b8bf4 8272691: Fix HotSpot style guide terminology for "non-local variables"
Reviewed-by: dcubed, dholmes
2022-03-07 18:20:01 +00:00
Kim Barrett
5953b229bf 8257589: HotSpot Style Guide should link to rfc7282
Reviewed-by: dcubed, dholmes
2022-03-07 18:12:14 +00:00
Joe Darcy
1faa5c8092 8282686: Add constructors taking a cause to SocketException
Reviewed-by: alanb, xuelei, lancea, dfuchs
2022-03-07 17:52:04 +00:00
Kim Barrett
7194097bca 8252577: HotSpot Style Guide should link to One-True-Brace-Style description
Reviewed-by: stuefe, dcubed, dholmes
2022-03-07 17:35:21 +00:00
Roland Westrelin
ef266d77b6 8278296: Generalize long range check transformation
Reviewed-by: jrose, thartmann
2022-03-07 16:26:19 +00:00
Lance Andersen
f0995abe62 8280404: Unexpected exception thrown when CEN file entry comment length is not valid
Reviewed-by: alanb
2022-03-07 16:10:31 +00:00
Aleksey Shipilev
8e70f4c3dc 8282224: Correct TIG::bang_stack_shadow_pages comments
Reviewed-by: coleenp
2022-03-07 15:23:10 +00:00
Ivan Walulya
e544e354a4 8282621: G1: G1SegmentedArray remove unnecessary template parameter
Reviewed-by: kbarrett, tschatzl
2022-03-07 15:05:42 +00:00
Joe Darcy
104e3cb24b 8282696: Add constructors taking a cause to InvalidObjectException and InvalidClassException
Reviewed-by: lancea
2022-03-07 14:47:52 +00:00
Thomas Schatzl
6fc73f709b 8282620: G1/Parallel: Constify is_in_young() predicates
Reviewed-by: iwalulya, ayang
2022-03-07 13:52:19 +00:00
Masanori Yano
894ffb098c 8282713: Invalid copyright notice in new test added by JDK-8275715
Reviewed-by: dholmes
2022-03-07 01:33:41 +00:00
Masanori Yano
415bf44191 8275715: D3D pipeline processes multiple PaintEvent at initial drawing
Reviewed-by: prr
2022-03-06 23:53:50 +00:00
Jaikiran Pai
974ef5542f 8282617: sun.net.www.protocol.https.HttpsClient#putInKeepAliveCache() doesn't use a lock while dealing with "inCache" field
Reviewed-by: dfuchs, michaelm
2022-03-06 08:16:39 +00:00
Thomas Stuefe
bc42e7cbbf 8282382: Report glibc malloc tunables in error reports
Reviewed-by: zgu, dholmes
2022-03-05 06:37:39 +00:00
Mikael Vidstedt
52278b80c4 8282694: ProblemList runtime/CommandLine/VMDeprecatedOptions.java
Reviewed-by: jjg
2022-03-05 01:36:02 +00:00
wanghaomin
c459f8f406 8282142: [TestCase] compiler/inlining/ResolvedClassTest.java will fail when --with-jvm-features=-compiler1
Reviewed-by: jiefu, kvn
2022-03-05 00:01:49 +00:00
TejeshR13
bae0d5e717 8236907: JTable added to nested panels does not paint last visible row
Reviewed-by: psadhukhan, prr
2022-03-04 22:50:32 +00:00
Jonathan Gibbons
b0028a459c 8272853: improve JavadocTester.runTests
Reviewed-by: hannesw
2022-03-04 21:01:52 +00:00
Ioi Lam
e07fd395bd 8281181: Do not use CPU Shares to compute active processor count
Reviewed-by: dholmes, sgehwolf
2022-03-04 20:14:11 +00:00
Damon Nguyen
9c817d3880 8015854: [macosx] JButton's HTML ImageView adding unwanted padding
Reviewed-by: psadhukhan, aivanov
2022-03-04 19:26:12 +00:00
Naoto Sato
733c7907b0 8282081: java.time.DateTimeFormatter: wrong definition of symbol F
Reviewed-by: joehw, scolebourne, lancea, rriggs
2022-03-04 16:57:54 +00:00
Magnus Ihse Bursie
f9f9c0a855 8252769: Warn in configure if git config autocrlf has invalid value
Reviewed-by: erikj
2022-03-04 16:32:58 +00:00
Emanuel Peter
603050bfe0 8282661: [BACKOUT] ByteBufferTest.java: replace endless recursion with RuntimeException in void ck(double x, double y)
Reviewed-by: chagedorn, psandoz
2022-03-04 16:26:14 +00:00
Thomas Schatzl
52471539c0 8282615: G1: Fix some includes
Reviewed-by: ayang, iwalulya
2022-03-04 13:40:57 +00:00
Emanuel Peter
a584c904a9 8282573: ByteBufferTest.java: replace endless recursion with RuntimeException in void ck(double x, double y)
Reviewed-by: psandoz, thartmann
2022-03-04 12:55:57 +00:00
Julian Waters
d5e8e52f02 8282532: Allow explicitly setting build platform alongside --openjdk-target
Reviewed-by: ihse
2022-03-04 12:42:07 +00:00
Manukumar V S
b3837808bf 8282343: Create a regression test for JDK-4518432
Reviewed-by: aivanov
2022-03-04 10:56:11 +00:00
Igor Veresov
b629782b8d 8279886: C1: Turn off SelectivePhiFunctions in presence of irreducible loops
Reviewed-by: kvn, dlong
2022-03-04 03:49:37 +00:00
Mandy Chung
7e1c67d4af 8282608: RawNativeLibraryImpl can't be passed to NativeLibraries::findEntry0
Reviewed-by: mcimadamore, dholmes
2022-03-04 03:41:41 +00:00
Joe Wang
8478173d83 8282583: Update BCEL md to include the copyright notice
Reviewed-by: lancea, iris, naoto
2022-03-04 03:15:35 +00:00
Hai-May Chao
fb6b929e6e 8277474: jarsigner does not check if algorithm parameters are disabled
Reviewed-by: mullan, weijun
2022-03-03 23:01:26 +00:00
Manukumar V S
1581e3faa0 8282402: Create a regression test for JDK-4666101
Reviewed-by: aivanov
2022-03-03 19:30:07 +00:00
Xue-Lei Andrew Fan
268fa69318 8282511: Use fixed certificate validation date in SSLExampleCert template
Reviewed-by: rhalade
2022-03-03 19:20:16 +00:00
Thomas Schatzl
c777bb3df3 8282619: G1: Fix indentation in G1CollectedHeap::mark_evac_failure_object
Reviewed-by: ayang, iwalulya
2022-03-03 16:16:44 +00:00
Pavel Rappo
080baffa6e 8282483: Ensure that Utils.getAllInterfaces returns unique instances
Reviewed-by: jjg
2022-03-03 16:10:18 +00:00
Jonathan Gibbons
57020fd582 8282582: Unused methods in Utils
Reviewed-by: prappo
2022-03-03 14:54:02 +00:00
Thomas Stuefe
5c187e34a5 8282593: JDK-8281472 breaks 32-bit builds and gtests
Reviewed-by: jiefu, dholmes
2022-03-03 13:25:10 +00:00
Coleen Phillimore
7822cbce10 8276711: compiler/codecache/cli tests failing when SegmentedCodeCache used with -Xint
Reviewed-by: kvn, dholmes
2022-03-03 13:20:58 +00:00
Prasanta Sadhukhan
832729b41e 6911375: mouseWheel has no effect without vertical scrollbar
Reviewed-by: aivanov
2022-03-03 09:53:14 +00:00
Prasanta Sadhukhan
0402a288f3 8037965: NullPointerException in TextLayout.getBaselineFromGraphic() for JTextComponents
Reviewed-by: prr, aivanov
2022-03-03 09:51:08 +00:00
Thomas Schatzl
d4d1fbc27a 8282484: G1: Predicted old time in log always zero
Reviewed-by: ayang, iwalulya
2022-03-03 09:26:41 +00:00
Tobias Holenstein
b1f935c1d0 8277055: Assert "missing inlining msg" with -XX:+PrintIntrinsics
Reviewed-by: roland, thartmann
2022-03-03 07:59:45 +00:00
Christian Hagedorn
2da677793f 8281122: [IR Framework] Cleanup IR matching code in preparation for JDK-8280378
Reviewed-by: thartmann, kvn
2022-03-03 07:17:56 +00:00
Srinivas Mandalika
d0eb6fa220 8281569: Create tests for Frame.setMinimumSize() method
Reviewed-by: aivanov
2022-03-03 03:26:10 +00:00
Mandy Chung
02aa7cef0a 8282515: More clean up on NativeLibraries just for JNI library use
Reviewed-by: mcimadamore
2022-03-03 01:50:02 +00:00
Weijun Wang
1485883c9e 8281628: KeyAgreement : generateSecret intermittently not resetting
Reviewed-by: valeriep
2022-03-03 00:39:39 +00:00
Magnus Ihse Bursie
b6c35ae44a 8209784: Include hsdis in the JDK
Reviewed-by: erikj
2022-03-02 18:17:47 +00:00
Devin Smith
ce18ff8527 8282551: Properly initialize L32X64MixRandom state
Reviewed-by: jlaskey
2022-03-02 16:41:13 +00:00
Calvin Cheung
234c17e8ff 8274788: Support archived heap objects in ParallelGC
Reviewed-by: iklam, ayang, tschatzl
2022-03-02 16:17:21 +00:00
Weijun Wang
fc918a73d0 8281234: The -protected option is not always checked in keytool and jarsigner
Reviewed-by: hchao, mullan
2022-03-02 14:07:26 +00:00
Andrey Turbanov
d80f697182 8282523: Fix 'hierachy' typo
Reviewed-by: jiefu, kbarrett, dholmes
2022-03-02 13:05:12 +00:00
Alex Menkov
f12200cd11 8267796: vmTestbase/nsk/jvmti/scenarios/hotswap/HS201/hs201t002/TestDescription.java fails with NoClassDefFoundError
Reviewed-by: kevinw, cjplummer
2022-03-02 10:54:25 +00:00
Albert Mingkun Yang
12a822a287 8282381: Parallel: Remove unnecessary PCReferenceProcessor
Reviewed-by: kbarrett, tschatzl
2022-03-02 09:12:20 +00:00
Christian Hagedorn
ed3496e6c0 8282480: IGV: Use description instead of enum name for phases
Reviewed-by: redestad, thartmann
2022-03-02 08:57:55 +00:00
Quan Anh Mai
fc52a2182a 8282143: Objects.requireNonNull should be ForceInline
Reviewed-by: psandoz
2022-03-02 00:46:35 +00:00
Joe Darcy
732d891f9f 8282411: Add useful predicates to ElementKind
Reviewed-by: prappo
2022-03-01 18:48:43 +00:00
Xue-Lei Andrew Fan
eac80214ae 8282320: Remove case conversion for debugging log in SSLCipher
Reviewed-by: weijun
2022-03-01 18:10:39 +00:00
Alexey Ivanov
b86a8c004f 8282150: Drop redundant <br> elements from tables in java.desktop HTML files
Reviewed-by: jdv, dmarkov
2022-03-01 17:01:06 +00:00
Manukumar V S
941e97c4eb 8281738: Create a regression test for checking the 'Space' key activation of focused Button
Reviewed-by: aivanov
2022-03-01 16:55:22 +00:00
Jorn Vernee
8fec7b87c1 8281548: Add escape analysis tracing flag
Reviewed-by: kvn, thartmann, xliu
2022-03-01 16:26:19 +00:00
Jan Lahoda
b03d66c501 8282452: Use of Preview API in preview methods should not trigger preview warning for the enclosing class
Reviewed-by: jlaskey
2022-03-01 15:54:10 +00:00
Coleen Phillimore
76398c8400 8279573: compiler/codecache/CodeCacheFullCountTest.java fails with "RuntimeException: the value of full_count is wrong."
Reviewed-by: thartmann, eosterlund
2022-03-01 15:28:21 +00:00
Pavel Rappo
31b61f982c 8282311: Fix a typo in javax.lang.model.type.NullType
Reviewed-by: jjg
2022-03-01 15:21:19 +00:00
Roland Westrelin
2c5d266f9f 8282045: When loop strip mining fails, safepoints are removed from loop anyway
Reviewed-by: thartmann, chagedorn
2022-03-01 14:43:05 +00:00
Ivan Walulya
341c8bd7f2 8267834: Refactor G1CardSetAllocator and BufferNode::Allocator to use a common base class
Reviewed-by: kbarrett, tschatzl
2022-03-01 14:14:47 +00:00
Roland Westrelin
fcce24c5b3 8281811: assert(_base == Tuple) failed: Not a Tuple after JDK-8280799
Reviewed-by: kvn, thartmann
2022-03-01 14:09:15 +00:00
Harold Seigel
a95edee634 8281472: JVM options processing silently truncates large illegal options values
Reviewed-by: dholmes, iklam
2022-03-01 13:21:57 +00:00
David Holmes
44d599aad3 8227369: pd_disjoint_words_atomic() needs to be atomic
Reviewed-by: eosterlund, mikael, shade, kbarrett, mdoerr
2022-03-01 12:07:21 +00:00
Pavel Rappo
eff396f397 8280713: Related to comment inheritance jdk.javadoc cleanup and refactoring
Reviewed-by: jjg
2022-03-01 12:06:11 +00:00
Chris Hegarty
369291b265 8282444: Module finder incorrectly assumes default file system path-separator character
Reviewed-by: alanb
2022-03-01 10:37:35 +00:00
Claes Redestad
d4d12ad1d9 8282047: Enhance StringDecode/Encode microbenchmarks
Reviewed-by: bchristi
2022-03-01 10:20:22 +00:00
Albert Mingkun Yang
22b93a31c9 8282094: [REDO] Parallel: Refactor PSCardTable::scavenge_contents_parallel
Reviewed-by: iwalulya, tschatzl
2022-03-01 09:32:01 +00:00
Dean Long
d3022f87b5 8282467: add extra diagnostics for JDK-8268184
Reviewed-by: stuefe
2022-03-01 08:25:31 +00:00
Jaikiran Pai
e4d9fc811e 8282023: PropertiesStoreTest and StoreReproducibilityTest jtreg failures due to en_CA locale
Reviewed-by: naoto, rriggs
2022-03-01 03:49:18 +00:00
Alan Hayward
c1a28aa04a 8282392: [zero] Build broken on AArch64
Reviewed-by: aph, shade
2022-03-01 02:23:29 +00:00
David Holmes
77432663be 8281210: Add manpage changes for PAC-RET protection on Linux/AArch64
Reviewed-by: iklam
2022-03-01 01:17:50 +00:00
Joe Darcy
1f89acd849 8282464: Remove author tags from java.compiler
Reviewed-by: jjg
2022-02-28 23:28:21 +00:00
Joe Darcy
9d9618a3dd 8282462: Remove unnecessary use of @SuppressWarnings("preview")
Reviewed-by: vromero
2022-02-28 22:14:14 +00:00
Ioi Lam
d983d108c5 8275731: CDS archived enums objects are recreated at runtime
Reviewed-by: coleenp, ccheung
2022-02-28 20:33:18 +00:00
Coleen Phillimore
c7cd1487fe 8282240: Add _name field to Method for NOT_PRODUCT only
Reviewed-by: pchilanomate, hseigel
2022-02-28 20:31:41 +00:00
Weijun Wang
59b3ecc591 8277976: Break up SEQUENCE in X509Certificate::getSubjectAlternativeNames and X509Certificate::getIssuerAlternativeNames in otherName
6776681: Invalid encoding of an OtherName in X509Certificate.getAlternativeNames()

Reviewed-by: mullan
2022-02-28 17:00:47 +00:00
Aleksey Shipilev
4e7fb41daf 8282172: CompileBroker::log_metaspace_failure is called from non-Java/compiler threads
Reviewed-by: kvn, thartmann
2022-02-28 13:29:23 +00:00
Naoto Sato
0ae3d1d59c 8282131: java.time.ZoneId should be a sealed abstract class
Reviewed-by: iris, rriggs, bpb, lancea, mchung, scolebourne
2022-02-28 13:22:15 +00:00
Harold Seigel
c58f5c67d1 8282360: Merge POSIX implementations of ThreadCritical
Reviewed-by: stuefe, coleenp, dholmes
2022-02-28 13:18:45 +00:00
Emanuel Peter
06cadb36e0 8230382: Clean up ConvI2L, CastII and CastLL::Ideal methods
Reviewed-by: thartmann, roland
2022-02-28 12:13:35 +00:00
John Tortugo
efd3967b54 8267265: Use new IR Test Framework to create tests for C2 Ideal transformations
Reviewed-by: chagedorn
2022-02-28 10:01:24 +00:00
Aleksey Shipilev
86723d4892 8281507: Two javac tests have bad jtreg @clean tags
Reviewed-by: darcy
2022-02-28 07:35:19 +00:00
Daniel D. Daugherty
630ad1acb2 8282428: ProblemList jdk/jfr/jvm/TestWaste.java
Reviewed-by: mikael
2022-02-27 03:45:49 +00:00
Rajan Halade
afd4bcbc1d 8282398: EndingDotHostname.java test fails because SSL cert expired
Reviewed-by: xuelei
2022-02-26 17:10:08 +00:00
Erik Gahlin
cf6d2565e9 8282153: JFR: Check for recording waste
Reviewed-by: mgronlun
2022-02-26 08:57:23 +00:00
Ichiroh Takiguchi
c5c6058fd5 8282219: jdk/java/lang/ProcessBuilder/Basic.java fails on AIX
Reviewed-by: rriggs
2022-02-26 03:33:29 +00:00
Alexander Matveev
fb8bf81842 8279995: jpackage --add-launcher option should allow overriding description
Reviewed-by: asemenyuk
2022-02-25 20:49:59 +00:00
Erik Gahlin
441e48509c 8281739: JFR: Use message with Objects.requireNonNull
Reviewed-by: mgronlun
2022-02-25 18:36:11 +00:00
Erik Gahlin
e96c599ed2 8271232: JFR: Scrub recording data
Reviewed-by: mgronlun
2022-02-25 12:56:09 +00:00
Matthias Baesken
735e86b0f7 8282345: handle latest VS2022 in abstract_vm_version
Reviewed-by: dholmes, mdoerr
2022-02-25 12:26:44 +00:00
Thomas Stuefe
b96b743727 8281015: Further simplify NMT backend
Reviewed-by: zgu, mbaesken
2022-02-25 12:25:46 +00:00
KIRIYAMA Takuya
9471f24ca1 8280684: JfrRecorderService failes with guarantee(num_written > 0) when no space left on device.
Reviewed-by: mgronlun
2022-02-25 11:39:11 +00:00
Claes Redestad
3efd6aa4c9 8282347: AARCH64: Untaken branch in has_negatives stub
Reviewed-by: aph, haosun, thartmann
2022-02-25 08:55:46 +00:00
Kevin Walls
cd36be42c2 8206187: javax/management/remote/mandatory/connection/DefaultAgentFilterTest.java fails with Port already in use
Reviewed-by: msheppar, amenkov
2022-02-25 07:56:56 +00:00
Roger Riggs
bf19fc65c7 8280357: user.home = "?" when running with systemd DynamicUser=true
Reviewed-by: naoto, alanb
2022-02-24 20:12:48 +00:00
Yi-Fan Tsai
b6843a1624 8005885: enhance PrintCodeCache to print more data
Reviewed-by: xliu, phh
2022-02-24 19:42:16 +00:00
Daniel Jeliński
23995f822e 8281525: Enable Zc:strictStrings flag in Visual Studio build
Reviewed-by: dholmes, ihse
2022-02-24 18:18:52 +00:00
Albert Mingkun Yang
20e78f7a8e 8282307: Parallel: Incorrect discovery mode in PCReferenceProcessor
Reviewed-by: tschatzl, kbarrett
2022-02-24 17:48:20 +00:00
Albert Mingkun Yang
0b6862e803 8282348: Remove unused CardTable::dirty_card_iterate
Reviewed-by: kbarrett
2022-02-24 17:47:30 +00:00
Alan Hayward
6fab8a2d6a 8277204: Implement PAC-RET branch protection on Linux/AArch64
Reviewed-by: erikj, ihse, adinn, ngasson
2022-02-24 16:38:56 +00:00
Xue-Lei Andrew Fan
abc0ce11df 8282316: Operation before String case conversion
Reviewed-by: valeriep
2022-02-24 16:25:47 +00:00
Jonathan Gibbons
0796620b07 8281944: JavaDoc throws java.lang.IllegalStateException: ERRONEOUS
Reviewed-by: hannesw
2022-02-24 14:50:06 +00:00
Johannes Bechberger
231e48fa63 8282200: ShouldNotReachHere() reached by AsyncGetCallTrace after JDK-8280422
Reviewed-by: dholmes, mdoerr, kevinw
2022-02-24 14:32:22 +00:00
Coleen Phillimore
f4486a190e 8262400: runtime/exceptionMsgs/AbstractMethodError/AbstractMethodErrorTest.java fails in test_ame5_compiled_vtable_stub with wrapper
Reviewed-by: dholmes, lmesnik
2022-02-24 12:59:15 +00:00
Andrey Turbanov
3cfffa4f8e 8282188: Unused static field MathContext.DEFAULT_DIGITS
Reviewed-by: darcy, bpb
2022-02-24 11:03:29 +00:00
Prasanta Sadhukhan
379fd85932 8277369: Strange behavior of JMenuBar with RIGHT_TO_LEFT orientation, arrow keys behaves opposite traversing through keyboard
Reviewed-by: prr, naoto, serb
2022-02-24 09:52:17 +00:00
Albert Mingkun Yang
cd3e59ef88 8282299: Remove unused PartialArrayScanTask default constructor
Reviewed-by: tschatzl
2022-02-24 09:16:04 +00:00
Chris Plummer
a6610031e2 8281614: serviceability/sa/ClhsdbFindPC.java fails with java.lang.RuntimeException: 'In code in NMethod for jdk/test/lib/apps/LingeredApp.steadyState' missing from stdout/stderr
Reviewed-by: dcubed, dholmes
2022-02-23 22:55:39 +00:00
Manukumar V S
43dc9ef619 8281988: Create a regression test for JDK-4618767
Reviewed-by: aivanov
2022-02-23 21:13:23 +00:00
Chris Plummer
253cf7852f 8282076: Merge some debug agent changes from the loom repo
Reviewed-by: amenkov, lmesnik
2022-02-23 21:09:41 +00:00
Vladimir Ivanov
f86f38a8af 8280901: MethodHandle::linkToNative stub is missing w/ -Xint
Reviewed-by: shade, kvn
2022-02-23 20:29:23 +00:00
Michael McMahon
e540e0a81b 8282296: (se) Pipe.open() creates a Pipe implementation that uses Unix domain sockets (win)
Reviewed-by: dfuchs, lancea, bpb
2022-02-23 20:02:11 +00:00
Xue-Lei Andrew Fan
7dc7184c10 8282309: Operation before upper case conversion
Reviewed-by: valeriep, wetmore
2022-02-23 18:32:29 +00:00
Lance Andersen
a020b6ba8f 8280409: JarFile::getInputStream can fail with NPE accessing ze.getName()
Reviewed-by: mullan, alanb
2022-02-23 16:56:50 +00:00
Jonathan Gibbons
99b8ed9dbf 8281217: Source file launch with security manager enabled fails
Reviewed-by: sundar
2022-02-23 16:49:28 +00:00
Pavel Rappo
35076af13a 8281376: Consider polymorphic methods when looking for overrides
Reviewed-by: hannesw
2022-02-23 16:17:23 +00:00
Xue-Lei Andrew Fan
340a35d835 8282279: Interpret case-insensitive string locale independently
Reviewed-by: weijun
2022-02-23 15:43:06 +00:00
Nils Eliasson
5035bf5e6c 8282208: Reduce MachNode size
Reviewed-by: kvn, thartmann, jiefu
2022-02-23 12:48:22 +00:00
Aleksey Shipilev
aaab2cb416 8282225: GHA: Allow one concurrent run per PR only
Reviewed-by: ihse
2022-02-23 12:34:12 +00:00
David Holmes
d017e98856 8255577: Possible issues with SR_initialize
Reviewed-by: shade, stuefe
2022-02-23 11:30:43 +00:00
Vladimir Ivanov
9332071784 8282194: C1: Missing side effects of dynamic constant linkage
Reviewed-by: kvn, thartmann
2022-02-23 10:17:01 +00:00
Andrew Haley
ecd85e6f0f 8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers
Reviewed-by: shade, jiefu
2022-02-23 10:15:25 +00:00
Volker Simonis
378fa507a2 8281962: Avoid unnecessary native calls in InflaterInputStream
Reviewed-by: clanger, redestad, alanb, lancea
2022-02-23 08:36:13 +00:00
Zhengyu Gu
e1060bee2a 8281615: Deadlock caused by jdwp agent
Reviewed-by: dholmes, cjplummer
2022-02-23 03:04:34 +00:00
Phil Race
6f882deddc 8280964: [Linux aarch64] : drawImage dithers TYPE_BYTE_INDEXED images incorrectly
Reviewed-by: serb, dmarkov
2022-02-23 01:03:09 +00:00
Phil Race
2557ef8a02 8282276: Problem list failing two Robot Screen Capture tests
Reviewed-by: dcubed
2022-02-22 20:27:00 +00:00
Brian Burkhalter
6445ee46b5 5041655: (ch) FileLock: negative param and overflow issues
Reviewed-by: alanb
2022-02-22 17:24:15 +00:00
liach
7feabee426 8261407: ReflectionFactory.checkInitted() is not thread-safe
Co-authored-by: Peter Levart <plevart@openjdk.org>
Reviewed-by: dholmes, mchung, plevart
2022-02-22 16:57:23 +00:00
Tyler Steele
58e1882f3c 8282042: [testbug] FileEncodingTest.java depends on default encoding
Adds expected encoding "ISO-8859-1" for AIX in FileEncodingTest.java

Reviewed-by: naoto
2022-02-22 16:50:48 +00:00
Ian Graves
3cb38678aa 8281315: Unicode, (?i) flag and backreference throwing IndexOutOfBounds Exception
Reviewed-by: naoto
2022-02-22 16:31:57 +00:00
Thomas Schatzl
957dae02b1 8280958: G1/Parallel: Unify marking code structure
Reviewed-by: ayang, kbarrett
2022-02-22 16:25:12 +00:00
Magnus Ihse Bursie
e44d0670a6 8244593: Clean up GNM/NM after JEP 381
Reviewed-by: erikj
2022-02-22 16:06:52 +00:00
Ian Graves
41355e2daa 8276686: Malformed Javadoc inline tags in JDK source in /java/util/regex/Pattern.java
Reviewed-by: iris, bpb, lancea
2022-02-22 15:38:52 +00:00
Coleen Phillimore
022d80707c 8271008: appcds/*/MethodHandlesAsCollectorTest.java tests time out because of excessive GC (CodeCache GC Threshold) in loom
Reviewed-by: thartmann, eosterlund
2022-02-22 13:42:56 +00:00
Alexey Ivanov
ab6d8e6424 8260328: Drop redundant CSS properties from java.desktop HTML files
Reviewed-by: serb, dmarkov
2022-02-22 13:19:43 +00:00
John Jiang
b95310b090 8282220: contentType should not be a PKCS7's member
Reviewed-by: xuelei
2022-02-22 09:35:48 +00:00
Emanuel Peter
bc43320fd3 8281543: Remove unused code/headerfile dtraceAttacher.hpp
Reviewed-by: thartmann
2022-02-22 07:55:04 +00:00
Manukumar V S
f9539521ae 8281745: Create a regression test for JDK-4514331
Reviewed-by: serb
2022-02-22 07:31:55 +00:00
Jaikiran Pai
e0b49629e9 8282190: Typo in javadoc of java.time.format.DateTimeFormatter#getDecimalStyle
Reviewed-by: dfuchs, rriggs, lancea, iris
2022-02-22 01:39:28 +00:00
Daniel Jeliński
e1c98bd1f2 8281523: Accessibility: Conversion from string literal loses const qualifier
Reviewed-by: prr, aivanov, kizune
2022-02-21 17:40:27 +00:00
Maxim Kartashev
cc7cf81256 8280861: Robot color picker broken on Linux with scaling above 100%
Reviewed-by: serb
2022-02-21 11:39:29 +00:00
Magnus Ihse Bursie
d7a706a540 8253757: Add LLVM-based backend for hsdis
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Co-authored-by: Ludovic Henry <luhenry@openjdk.org>
Co-authored-by: Jorn Vernee <jvernee@openjdk.org>
Co-authored-by: Nick Gasson <ngasson@openjdk.org>
Reviewed-by: erikj, luhenry
2022-02-21 10:37:44 +00:00
Manukumar V S
bdae1d87c1 8282147: [TESTBUG] waitForIdle after creating frame in JSpinnerMouseAndKeyPressTest.java
Reviewed-by: aivanov
2022-02-21 10:08:50 +00:00
Andrey Turbanov
51f4420711 8282130: (bf) Remove unused ARRAY_BASE_OFFSET, ARRAY_INDEX_SCALE from read-only Heap Buffers
Reviewed-by: bpb, alanb
2022-02-21 09:03:16 +00:00
John Jiang
34aae32de6 8282166: JDK-8282158 changed ECParameters' package by accident
Reviewed-by: xuelei
2022-02-21 08:27:03 +00:00
Albert Mingkun Yang
c5d9142a84 8282096: G1: Remove redundant checks in G1CardSet::free_mem_object
Reviewed-by: tschatzl, iwalulya
2022-02-21 08:14:59 +00:00
John Jiang
52a85d8048 8282158: ECParameters InvalidParameterSpecException messages missed ECKeySizeParameterSpec
Reviewed-by: xuelei
2022-02-21 07:55:39 +00:00
Emanuel Peter
4e0b81c596 8281544: assert(VM_Version::supports_avx512bw()) failed for Tests jdk/incubator/vector/
Reviewed-by: kvn, neliasso, thartmann
2022-02-21 07:05:04 +00:00
Tobias Hartmann
8563d86f2c 8282085: The REGISTER_DEFINITION macro is useless after JDK-8269122
Reviewed-by: jiefu, chagedorn, kvn
2022-02-21 07:02:44 +00:00
Aleksey Shipilev
d28b048f35 8281815: x86: Use short jumps in TIG::generate_slow_signature_handler
Reviewed-by: rrich, dholmes, jiefu
2022-02-21 06:14:43 +00:00
Valerie Peng
d7f31d0d53 8282077: PKCS11 provider C_sign() impl should handle CKR_BUFFER_TOO_SMALL error
Reviewed-by: mikael
2022-02-19 06:40:30 +00:00
Rajan Halade
d3749de478 8277488: Add expiry exception for Digicert (geotrustglobalca) expiring in May 2022
Reviewed-by: weijun
2022-02-18 20:17:37 +00:00
Yudi Zheng
3943c89b9b 8282044: [JVMCI] Export _sha3_implCompress, _md5_implCompress and aarch64::_has_negatives stubs to JVMCI compiler.
Reviewed-by: kvn
2022-02-18 18:00:40 +00:00
Weijun Wang
7ce75afbbc 8255266: Update Public Suffix List to 3c213aa
Reviewed-by: xuelei
2022-02-18 16:34:59 +00:00
Daniel D. Daugherty
cfbfd9bf41 8282103: fix macosx-generic typo in ProblemList
Reviewed-by: rriggs
2022-02-18 16:25:24 +00:00
Dmitry Chuyko
413bef6890 8282049: AArch64: Use ZR for integer zero immediate volatile stores
Reviewed-by: adinn, phh
2022-02-18 16:02:46 +00:00
Magnus Ihse Bursie
cf6984ddaa 8282086: Update jib profile to not set build to 0
Reviewed-by: erikj
2022-02-18 14:49:34 +00:00
Pavel Rappo
f5120b764c 8282056: Clean up com.sun.tools.javac.util.GraphUtils
Reviewed-by: jjg, mcimadamore, vromero
2022-02-18 13:09:44 +00:00
Jan Lahoda
e3365041bd 8280866: SuppressWarnings does not work properly in package-info and module-info
Reviewed-by: darcy, vromero
2022-02-18 11:04:11 +00:00
Albert Mingkun Yang
e8224f7de9 8282089: [BACKOUT] Parallel: Refactor PSCardTable::scavenge_contents_parallel
Reviewed-by: tschatzl
2022-02-18 09:54:28 +00:00
Jan Lahoda
834d55c59f 8277300: Issues with javadoc support for preview features
Reviewed-by: prappo, jjg
2022-02-18 09:41:12 +00:00
Alex Menkov
138a17195d 8281267: VM HeapDumper dumps array classes several times
Reviewed-by: cjplummer, coleenp
2022-02-18 09:21:48 +00:00
Roberto Castañeda Lozano
7bcca7692b 8279068: IGV: Update to work with JDK 16 and 17
Reviewed-by: kvn, neliasso, chagedorn
2022-02-18 08:35:52 +00:00
Jie Fu
c9289583eb 8281936: compiler/arguments/TestCodeEntryAlignment.java fails on AVX512 machines
Reviewed-by: shade, kvn
2022-02-18 05:02:19 +00:00
Prasanta Sadhukhan
a22f422b7f 8037573: Typo in DefaultTreeModel docs: askAllowsChildren instead of asksAllowsChildren
Reviewed-by: prr, jdv, azvegint
2022-02-18 04:56:05 +00:00
Jie Fu
fdce35f3a1 8282025: assert(ctrl != __null) failed: control out is assumed to be unique after JDK-8281732
Reviewed-by: kvn, thartmann, chagedorn
2022-02-17 22:53:53 +00:00
Magnus Ihse Bursie
f830cbec90 8188073: Add Capstone as backend for hsdis
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Co-authored-by: Jorn Vernee <jvernee@openjdk.org>
Reviewed-by: erikj
2022-02-17 21:18:15 +00:00
Daniel D. Daugherty
69fc273f20 8282075: ProblemList 3 compiler/whitebox tests on macosx-x64
Reviewed-by: mikael, bpb
2022-02-17 20:56:46 +00:00
Naoto Sato
129277653e 8281317: CompactNumberFormat displays 4-digit values when rounding to a new range
Reviewed-by: joehw
2022-02-17 19:03:08 +00:00
Mahendra Chhipa
cd9a3cf05b 8282017: sun/net/www/protocol/https/HttpsURLConnection/B6216082.java fails with "SocketException: Unexpected end of file from server"
Reviewed-by: dfuchs
2022-02-17 17:45:06 +00:00
Tim Prinzing
a6f8a386ef 8281000: ClassLoader::registerAsParallelCapable throws NPE if caller is null
Reviewed-by: erikj, ihse, mchung, bchristi
2022-02-17 17:34:39 +00:00
Joe Darcy
4c7f8b49a4 8268250: Class.arrayType() for a 255-d array throws undocumented IllegalArgumentException
Reviewed-by: sundar, alanb
2022-02-17 17:12:40 +00:00
Andrey Turbanov
d0e11808fd 8282019: Unused static fields DEGREES_TO_RADIANS, RADIANS_TO_DEGREES in StrictMath
Reviewed-by: bpb, darcy
2022-02-17 12:31:37 +00:00
Albert Mingkun Yang
3b7a3cfce3 8281971: Remove unimplemented InstanceRefKlass::do_next
Reviewed-by: dholmes
2022-02-17 11:40:43 +00:00
Julia Boes
9ca435b4c0 8281305: Test com/sun/net/httpserver/simpleserver/MapToPathTest.java fails on Windows 11
Reviewed-by: dfuchs
2022-02-17 10:35:05 +00:00
Prasanta Sadhukhan
b4900b1298 8264743: Add forRemoval for deprecated classes and method in javax/swing/plaf/basic
Reviewed-by: trebari, prr
2022-02-17 09:36:05 +00:00
Tyler Steele
c0275e18b7 8203290: [AIX] Check functionality of JDK-8199712 (Flight Recorder)
Implements JFR for AIX

Reviewed-by: erikj, mdoerr, mgronlun, stuefe, ihse
2022-02-17 08:49:22 +00:00
Ioi Lam
1864481df1 8279969: NULL return from map_bitmap_region() needs to be checked
Reviewed-by: ccheung, coleenp
2022-02-17 06:40:46 +00:00
Xiaohong Gong
1eec16b47b 8281803: AArch64: Optimize masked vector NOT/AND_NOT for SVE
Reviewed-by: aph, njian
2022-02-17 05:44:12 +00:00
Alexey Semenyuk
cd234f5dbe 8282007: Assorted enhancements to jpackage testing framework
Reviewed-by: almatvee
2022-02-17 05:27:41 +00:00
Jesper Wilhelmsson
b6e48e6782 Merge 2022-02-17 01:12:57 +00:00
Alexey Semenyuk
0b00ce17cd 8282011: test/jdk/tools/jpackage/windows/WinL10nTest.java test fails if light.exe is not in %PATH%
Reviewed-by: almatvee
2022-02-16 23:23:57 +00:00
Joe Darcy
5ec7898dbf 8281671: Class.getCanonicalName spec should explicitly cover array classes
Reviewed-by: mchung
2022-02-16 22:02:55 +00:00
Martin Desruisseaux
9ba0760cf8 8275345: RasterFormatException when drawing a tiled image made of non-writable rasters
Reviewed-by: prr, aivanov
2022-02-16 22:01:01 +00:00
Daniel Fuchs
48f6e93079 8282020: ProblemList sun/net/www/protocol/https/HttpsURLConnection/B6216082.java until JDK-8282017 is fixed
Reviewed-by: michaelm, naoto
2022-02-16 21:38:48 +00:00
Tim Prinzing
67763df4dc 8281003: MethodHandles::lookup throws NPE if caller is null
Reviewed-by: ihse, mchung, jrose, alanb
2022-02-16 20:09:46 +00:00
Aleksey Shipilev
847a99b53d 8281822: Test failures on non-DTrace builds due to incomplete DTrace* flags handling
Reviewed-by: dholmes, kvn
2022-02-16 20:08:27 +00:00
Mandy Chung
980d187891 8281335: Allow a library already loaded via System::loadLibrary to be loaded as a raw library
Reviewed-by: sundar, mcimadamore
2022-02-16 18:31:32 +00:00
Alexey Semenyuk
81645521c8 8281874: Can't unpack msi installers from test/jdk/tools/jpackage/windows/test/jdk/tools/jpackage/windows/WinShortcutPromptTest.java test
Reviewed-by: almatvee
2022-02-16 17:31:23 +00:00
Alexey Semenyuk
bb4dece246 8281170: Test jdk/tools/jpackage/windows/WinInstallerIconTest always fails on Windows 11
Reviewed-by: almatvee
2022-02-16 17:30:24 +00:00
Naoto Sato
9b74c3f2e7 8176706: Additional Date-Time Formats
Reviewed-by: joehw, rriggs
2022-02-16 16:54:53 +00:00
Mahendra Chhipa
0f3d3ac32c 8061729: Update java/net tests to eliminate dependency on sun.net.www.MessageHeader and some other internal APIs
Reviewed-by: dfuchs
2022-02-16 16:43:15 +00:00
Emanuel Peter
395bc141f2 8281732: add assert for non-NULL assumption for return of unique_ctrl_out
Reviewed-by: kvn, chagedorn, thartmann
2022-02-16 16:19:44 +00:00
Michael McMahon
d8f44aa39e 8278067: Make HttpURLConnection default keep alive timeout configurable
Reviewed-by: dfuchs
2022-02-16 16:01:01 +00:00
Erik Gahlin
7428b37696 8281948: JFR: Parser skips too many bytes for fractional types
Reviewed-by: mgronlun
2022-02-16 15:35:27 +00:00
Jie Fu
d5b466657e 8281829: runtime/CommandLine/OptionsValidation/TestOptionsWithRanges.java fails after JDK-8281467
Reviewed-by: kvn, thartmann
2022-02-16 13:46:43 +00:00
Aleksey Shipilev
fef5d74d0e 8281812: x86: Use short jumps in TemplateTable::condy_helper
Reviewed-by: redestad, neliasso
2022-02-16 09:42:56 +00:00
TheShermanTanker
a86cab8d42 8236136: tests which use CompilationMode shouldn't be run w/ TieredStopAtLevel
Reviewed-by: neliasso, kvn, thartmann
2022-02-16 07:50:07 +00:00
Quan Anh Mai
0af356bb4b 8278173: [vectorapi] Add x64 intrinsics for unsigned (zero extended) casts
Reviewed-by: psandoz, sviswanathan
2022-02-15 18:57:53 +00:00
Leonid Mesnik
a24498b777 8281771: Crash in java_lang_invoke_MethodType::print_signature
Reviewed-by: dholmes, shade
2022-02-15 18:01:15 +00:00
Leonid Mesnik
1aff44b2cf 8279949: JavaThread::_free_handle_block leaks native memory
Reviewed-by: dholmes, coleenp
2022-02-15 17:59:51 +00:00
Christian Stein
394ce5f948 8280825: Modules that "provide" ToolProvider should document the name that can be used
Reviewed-by: jjg, lancea, alanb
2022-02-15 17:55:50 +00:00
Calvin Cheung
745f7e7d92 8281186: runtime/cds/appcds/DumpingWithNoCoops.java fails
Reviewed-by: minqi, iklam, stuefe
2022-02-15 17:18:34 +00:00
Aleksey Shipilev
18704653dc 8281744: x86: Use short jumps in TIG::set_vtos_entry_points
Reviewed-by: rehn, coleenp
2022-02-15 16:42:37 +00:00
Stefan Johansson
2fe0bf66b7 8281748: runtime/logging/RedefineClasses.java failed "assert(addr != __null) failed: invariant"
Reviewed-by: ayang, kbarrett
2022-02-15 16:22:37 +00:00
Albert Mingkun Yang
bc6148407e 8280136: Serial: Remove unnecessary use of ExpandHeap_lock
Reviewed-by: iwalulya, kbarrett, sjohanss
2022-02-15 12:23:58 +00:00
Magnus Ihse Bursie
2112a9dc49 8246033: bin/print_config.js script uses nashorn jjs tool
Reviewed-by: erikj
2022-02-15 11:11:10 +00:00
Nils Eliasson
1c12b159ff 8281741: [testbug] PrintIdealPhaseTest fails with -Xcomp
Reviewed-by: kvn, chagedorn, thartmann
2022-02-15 09:49:47 +00:00
Dmitry Markov
f82866bc79 8281555: [macos] Get rid of deprecated Style Masks constants
Reviewed-by: serb, aivanov
2022-02-15 09:26:47 +00:00
Pavel Kharskii
0f2113cee7 8280415: Remove EA from JDK 18 version string starting with Initial RC promotion B35 on February 10, 2022
Reviewed-by: erikj, iris
2022-02-15 09:24:52 +00:00
Nils Eliasson
8819f45357 8281722: Removal of PrintIdealLevel
Reviewed-by: chagedorn, thartmann
2022-02-15 08:20:16 +00:00
Andrey Turbanov
622970e47c 8281728: Redundant null check in LineNumberInputStream.read
Reviewed-by: redestad
2022-02-15 07:10:10 +00:00
Tobias Hartmann
2be2a298f1 8281713: [BACKOUT] AArch64: Implement string_compare intrinsic in SVE
Reviewed-by: kvn, dlong
2022-02-15 07:07:00 +00:00
Kim Barrett
11f943d148 8280916: Simplify HotSpot Style Guide editorial changes
Reviewed-by: dcubed, dholmes, stuefe, stefank, kvn, tschatzl
2022-02-15 06:51:29 +00:00
Aleksey Shipilev
b1564624ce 8281467: Allow larger OptoLoopAlignment and CodeEntryAlignment
Reviewed-by: kvn, dlong
2022-02-15 06:19:37 +00:00
Harshitha Onkar
f33329eb7f 8016524: [macosx] Bottom line is not visible for JTableHeader
Reviewed-by: psadhukhan, prr
2022-02-15 05:03:34 +00:00
Jaikiran Pai
d4cd8dfedb 8281634: jdeps: java.lang.InternalError: Missing message: err.invalid.filters
Reviewed-by: dfuchs, naoto, mchung
2022-02-15 03:53:47 +00:00
Phil Race
1a7b70a8be 8269091: javax/sound/sampled/Clip/SetPositionHang.java failed with ArrayIndexOutOfBoundsException: Array index out of range: -4
Reviewed-by: serb
2022-02-14 23:31:13 +00:00
Ioi Lam
16f649b9c5 8281678: appcds/dynamicArchive/ArchiveConsistency.java fails after JDK-8279997
Reviewed-by: shade, dcubed
2022-02-14 18:53:50 +00:00
Vladimir Ivanov
88fc3bfdff 8280473: CI: Support unresolved JVM_CONSTANT_Dynamic constant pool entries
Reviewed-by: dlong, redestad, neliasso
2022-02-14 18:46:46 +00:00
Thomas Stuefe
f07b816523 8280940: gtest os.release_multi_mappings_vm is racy
Reviewed-by: dcubed, sjohanss
2022-02-14 16:41:47 +00:00
Brian J. Stafford
9d0a4c3f2e 8274238: Inconsistent type for young_list_target_length()
Reviewed-by: kbarrett, tschatzl
2022-02-14 12:20:46 +00:00
Leo Korinth
2604a88fbb 8281585: Remove unused imports under test/lib and jtreg/gc
Reviewed-by: dholmes, sspitsyn
2022-02-14 12:05:16 +00:00
Vladimir Ivanov
534e557874 8256368: Avoid repeated upcalls into Java to re-resolve MH/VH linkers/invokers
Reviewed-by: dlong, kvn
2022-02-14 11:57:46 +00:00
Magnus Ihse Bursie
95f198b2b1 8274980: Improve adhoc build version strings
Reviewed-by: shade, erikj
2022-02-14 10:31:42 +00:00
Emanuel Peter
c61d629add 8281553: Ensure we only require liveness from mach-nodes with barriers
Reviewed-by: neliasso, chagedorn
2022-02-14 09:52:50 +00:00
Albert Mingkun Yang
2597206242 8280783: Parallel: Refactor PSCardTable::scavenge_contents_parallel
Reviewed-by: tschatzl, iwalulya
2022-02-14 09:15:58 +00:00
Stefan Johansson
2632d40dfc 8281637: Remove unused VerifyOption_G1UseNextMarking
Reviewed-by: tschatzl, iwalulya
2022-02-14 09:03:45 +00:00
Roberto Castañeda Lozano
46f522962f 8281539: IGV: schedule approximation computes immediate dominators wrongly
Replace custom dominator computation with one from the WALA libraries.

Reviewed-by: neliasso, chagedorn
2022-02-14 08:37:31 +00:00
Roland Westrelin
1ef45c5bbd 8280799: С2: assert(false) failed: cyclic dependency prevents range check elimination
Reviewed-by: thartmann, kvn
2022-02-14 08:35:53 +00:00
Nils Eliasson
483d4b97e0 8281505: Add CompileCommand PrintIdealPhase
Reviewed-by: kvn, thartmann, chagedorn
2022-02-14 08:27:21 +00:00
Bhavana Kilambi
adbe066102 8239927: Product variable PrefetchFieldsAhead is unused and should be removed
Reviewed-by: njian, dholmes
2022-02-14 01:33:20 +00:00
Sergey Bylokhov
eff5dafba9 8274939: Incorrect size of the pixel storage is used by the robot on macOS
Reviewed-by: aivanov, prr
2022-02-12 22:10:11 +00:00
David Holmes
8acfbc2e21 8281675: VMDeprecatedOptions test fails after JDK-8278423
Reviewed-by: dcubed
2022-02-12 14:12:42 +00:00
Emanuel Peter
67077a0430 8278423: ExtendedDTraceProbes should be deprecated
Reviewed-by: dholmes, hseigel, kvn, thartmann
2022-02-12 13:08:39 +00:00
Alexey Bakhtin
58dae60da0 8274524: SSLSocket.close() hangs if it is called during the ssl handshake
Reviewed-by: xuelei
2022-02-12 11:54:22 +00:00
Alexander Zuev
aa918a6ec4 8281033: Improve ImageCheckboxTest to test all available LaF
Reviewed-by: serb
2022-02-12 09:26:47 +00:00
Joe Darcy
6fdfe0458d 8281674: tools/javac/annotations/typeAnnotations/classfile/AnonymousExtendsTest.java fails with AssertionError
Reviewed-by: vromero
2022-02-12 01:33:41 +00:00
Joe Darcy
c3179a8760 8281462: Annotation toString output for enum not reusable for source input
Reviewed-by: mchung
2022-02-11 23:24:08 +00:00
Joe Darcy
4032fe76dc 8281238: TYPE_USE annotations not printed in correct position in toString output
Reviewed-by: vromero
2022-02-11 21:52:16 +00:00
Dr Heinz M. Kabutz
83ffbd2e7a 8277175: Add a parallel multiply method to BigInteger
Reviewed-by: psandoz
2022-02-11 18:49:04 +00:00
Manukumar V S
0786ddb471 8281535: Create a regression test for JDK-4670051
Reviewed-by: aivanov
2022-02-11 17:40:25 +00:00
Calvin Cheung
c5ff6e45de 8223077: module path support for dynamic CDS archive
Reviewed-by: iklam, minqi
2022-02-11 17:39:20 +00:00
Erik Gahlin
8886839779 8281622: JFR: Improve documentation of jdk.jfr.Relational
Reviewed-by: jbachorik
2022-02-11 17:15:04 +00:00
Yumin Qi
e75e8cd708 8279997: check_for_dynamic_dump should not exit vm
Reviewed-by: ccheung, iklam
2022-02-11 16:42:07 +00:00
Daniel Jeliński
e73ee0ca10 8281259: MutableBigInteger subtraction could be simplified
Reviewed-by: bpb
2022-02-11 16:24:43 +00:00
lawrence.andrews
f399ae558e 8202836: [macosx] test java/awt/Graphics/TextAAHintsTest.java fails
Reviewed-by: prr, aivanov
2022-02-11 15:33:17 +00:00
Jan Lahoda
4ff5824f5b 8281100: Spurious "variable might not have been initialized" with sealed class switch
Reviewed-by: vromero
2022-02-11 12:11:29 +00:00
Jie Fu
d254cf28c5 8281638: jfr/event/allocation tests fail with release VMs after JDK-8281318 due to lack of -XX:+UnlockDiagnosticVMOptions
Reviewed-by: shade
2022-02-11 11:39:54 +00:00
Prasanta Sadhukhan
4d64076058 8047749: javadoc for getPathBounds() in TreeUI and BasicTreeUI is incorrect
Reviewed-by: aivanov
2022-02-11 09:39:10 +00:00
Kim Barrett
90939cb801 8281626: NonblockingQueue should use nullptr
Reviewed-by: shade, dholmes
2022-02-11 09:05:50 +00:00
Aleksey Shipilev
3a13425bc9 8072070: Improve interpreter stack banging
Reviewed-by: xliu, coleenp, mdoerr
2022-02-11 08:46:55 +00:00
Sergey Bylokhov
8441d51e71 8281419: The source data for the color conversion can be discarded
Reviewed-by: prr, aivanov
2022-02-11 07:41:18 +00:00
Thomas Stuefe
a037b3c358 8281460: Let ObjectMonitor have its own NMT category
Reviewed-by: dholmes, dcubed, shade
2022-02-11 07:21:04 +00:00
Aleksey Shipilev
65831eb294 8281318: Improve jfr/event/allocation tests reliability
Reviewed-by: mgronlun
2022-02-11 06:45:13 +00:00
Thomas Stuefe
eee6a5622d 8281522: Rename ADLC classes which have the same name as hotspot variants
Reviewed-by: neliasso, kvn
2022-02-11 05:34:27 +00:00
David Holmes
84868e39be 8281275: Upgrading from 8 to 11 no longer accepts '/' as filepath separator in gc paths
Reviewed-by: shade, dcubed
2022-02-10 23:23:48 +00:00
Erik Gahlin
58c2bd3158 8281536: JFR: Improve jdk.jfr.ContentType documentation
Reviewed-by: mgronlun
2022-02-10 22:51:39 +00:00
Paul Sandoz
83b6e4bc04 8281294: [vectorapi] FIRST_NONZERO reduction operation throws IllegalArgumentExcept on zero vectors
Reviewed-by: jrose
2022-02-10 18:37:21 +00:00
Prasanta Sadhukhan
039313d65d 8054449: Incompatible type in example code in TreePath
Reviewed-by: aivanov, dmarkov
2022-02-10 12:02:05 +00:00
Kim Barrett
3ce1c5b6ce 8280832: Update usage docs for NonblockingQueue
Reviewed-by: iwalulya, dholmes
2022-02-10 11:28:04 +00:00
Maxim Kartashev
d442328bc2 8281262: Windows builds in different directories are not fully reproducible
Co-authored-by: Erik Joelsson <erikj@openjdk.org>
Reviewed-by: erikj, ihse
2022-02-10 10:46:35 +00:00
Leo Korinth
c820d1acb7 8281379: Assign package declarations to all jtreg test cases under gc
Reviewed-by: kbarrett, tschatzl
2022-02-10 10:34:16 +00:00
Emanuel Peter
fa0a72c030 8252496: C2: Useless code in MergeMemNode::Ideal
Reviewed-by: thartmann, chagedorn, vlivanov
2022-02-10 09:29:53 +00:00
John Jiang
7218d8449b 8281567: Remove @throws IOException from X509CRLImpl::getExtension docs
Reviewed-by: xuelei, jiefu
2022-02-10 08:11:08 +00:00
Alexey Ivanov
fd8a3dcc52 8280820: Clean up bug8033699 and bug8075609.java tests: regtesthelpers aren't used
Reviewed-by: prr
2022-02-09 19:12:20 +00:00
Hai-May Chao
178b962e01 8265765: DomainKeyStore may stop enumerating aliases if a constituting KeyStore is empty
Reviewed-by: weijun
2022-02-09 16:53:48 +00:00
Vladimir Ivanov
c5c8c0644d 8279822: CI: Constant pool entries in error state are not supported
Reviewed-by: kvn, thartmann
2022-02-09 13:56:23 +00:00
Bhavana Kilambi
f823bed043 8280007: Enable Neoverse N1 optimizations for Arm Neoverse V1 & N2
Reviewed-by: phh
2022-02-09 13:18:29 +00:00
Christian Stein
8b384b986a 8281470: tools/jar/CreateMissingParentDirectories.java fails with "Should have failed creating jar file"
Reviewed-by: lancea
2022-02-09 11:34:22 +00:00
Matthias Baesken
bb2e10ccea 8281274: deal with ActiveProcessorCount in os::Linux::print_container_info
Reviewed-by: stuefe, sgehwolf, dholmes, iklam
2022-02-09 11:33:16 +00:00
Roland Westrelin
69e390a0e8 8262721: Add Tests to verify single iteration loops are properly optimized
Reviewed-by: neliasso, chagedorn, kvn
2022-02-09 10:18:27 +00:00
Alexey Pavlyutkin
f092babafb 8281195: Mistakenly used logging causes significant overhead in interpreter
Reviewed-by: shade, dholmes
2022-02-09 09:33:35 +00:00
Daniel Jeliński
f924e50c42 8281440: AWT: Conversion from string literal loses const qualifier
Reviewed-by: prr, aivanov
2022-02-09 08:34:47 +00:00
Kim Barrett
072e7b4da0 8272807: Permit use of memory concurrent with pretouch
Reviewed-by: shade, stuefe
2022-02-09 06:53:09 +00:00
Artem Semenov
cb2f8caed2 8281338: NSAccessibilityPressAction action for tree node and NSAccessibilityShowMenuAcgtion action not working
Reviewed-by: ant, kizune
2022-02-09 06:50:35 +00:00
Aleksey Shipilev
fc77217814 8281168: Micro-optimize VarForm.getMemberName for interpreter
Reviewed-by: redestad, vlivanov, mchung
2022-02-09 06:28:00 +00:00
Kim Barrett
bce5dd1766 8280438: Improve BufferNode::Allocator::release to avoid walking pending list
Reviewed-by: iwalulya, tschatzl
2022-02-09 04:38:11 +00:00
Kim Barrett
13f739d330 8280830: Change NonblockingQueue::try_pop variable named "result"
Reviewed-by: dholmes
2022-02-09 04:10:37 +00:00
Sergey Bylokhov
2f46af05ce 8280132: Incorrect comparator com.sun.beans.introspect.MethodInfo.MethodOrder
Reviewed-by: prr
2022-02-09 01:26:42 +00:00
Quan Anh Mai
fb17a8ece0 8278947: Support for array constants in constant table
Reviewed-by: kvn, vlivanov
2022-02-08 23:38:09 +00:00
8817 changed files with 556618 additions and 125601 deletions

File diff suppressed because it is too large Load Diff

2
.gitignore vendored
View File

@@ -18,3 +18,5 @@ NashornProfile.txt
/src/utils/LogCompilation/target/
/.project/
/.settings/
*.class
.idea/workspace.xml

180
README.md
View File

@@ -1,11 +1,175 @@
# Welcome to the JDK!
[![official JetBrains project](http://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
For build instructions please see the
[online documentation](https://openjdk.java.net/groups/build/doc/building.html),
or either of these files:
# Welcome to JetBrains Runtime!
- [doc/building.html](doc/building.html) (html version)
- [doc/building.md](doc/building.md) (markdown version)
JetBrains Runtime is a fork of [OpenJDK](https://github.com/openjdk/jdk) available for Windows, Mac OS X, and Linux.
It includes a number of enhancements in font rendering, HiDPI support, windowing/focus subsystems, performance
improvements and bugfixes.
See <https://openjdk.java.net/> for more information about
the OpenJDK Community and the JDK.
> **_NOTE_**: This is a **development** branch that is periodically synchronized with
> the [OpenJDK master](https://github.com/openjdk/jdk/tree/master) branch.
>
> Release builds are based on these branches:
> * [master](https://github.com/JetBrains/JetBrainsRuntime/tree/master) (JDK 11)
> * [master17](https://github.com/JetBrains/JetBrainsRuntime/tree/master17) (JDK 17)
## Contents
- [Welcome to JetBrains Runtime](#jetbrains-runtime)
- [Products Built on JetBrains Runtime](#products-built-on-jetbrains-runtime)
- [Getting Sources](#getting-sources)
- [macOS, Linux](#macos-linux)
- [Windows](#sources-windows)
- [Configuring the Build Environment](#configuring-the-build-environment)
- [Linux (Docker)](#linux-docker)
- [Ubuntu Linux](#ubuntu-linux)
- [Windows](#build-windows)
- [macOS](#macos)
- [Developing](#developing)
- [Contributing](#contributing)
- [Resources](#resources)
## Products Built on JetBrains Runtime
* [Android Studio](https://developer.android.com/studio). The official IDE for Google's Android operating system.
* [CLion](https://www.jetbrains.com/clion/). A cross-platform IDE for C and C++ from JetBrains.
* [DataGrip](https://www.jetbrains.com/datagrip/). The IDE for Databases and SQL from JetBrains.
* [GoLand](https://www.jetbrains.com/go/). The cross-platform Go IDE from JetBrains.
* [IntelliJ IDEA](https://www.jetbrains.com/idea/). The IDE for JVM from JetBrains.
* [JProfiler](https://www.ej-technologies.com/products/jprofiler/overview.html). The Java profiler.
* [PhpStorm](https://www.jetbrains.com/phpstorm/). The PHP IDE from JetBrains.
* [PyCharm](https://www.jetbrains.com/pycharm/). The Python IDE from JetBrains.
* [Rider](https://www.jetbrains.com/rider/). The cross-platform .NET IDE from JetBrains.
* [RubyMine](https://www.jetbrains.com/ruby/). The Ruby and Rails IDE from JetBrains.
* [WebStorm](https://www.jetbrains.com/webstorm/). The JavaScript IDE from JetBrains.
* [YourKit](https://www.yourkit.com/). Java and .NET profilers.
## Getting Sources
### macOS, Linux
```
git config --global core.autocrlf input
git clone git@github.com:JetBrains/JetBrainsRuntime.git
```
### Windows
<a name="sources-windows"></a>
```
git config --global core.autocrlf false
git clone git@github.com:JetBrains/JetBrainsRuntime.git
```
## Configuring the Build Environment
Here are quick per-platform instructions for those who can't wait to get started.
Please refer to [OpenJDK build docs](https://openjdk.java.net/groups/build/doc/building.html) for in-depth
coverage of all the details.
> **_TIP:_** To get a preliminary report of what's missing, run `./configure` and check its output.
> It would usually have a meaningful advice on how to solve the problem.
### Linux (Docker)
Create a container:
```
$ cd jb/project/docker
$ docker build .
...
Successfully built 942ea9900054
```
Run these commands in the new container:
```
$ docker run -v `pwd`../../../../:/JetBrainsRuntime -it 942ea9900054
# cd /JetBrainsRuntime
# sh ./configure
# make images CONF=linux-x86_64-normal-server-release
```
### Ubuntu Linux
Install the necessary tools, libraries, and headers with:
```
$ sudo apt-get install autoconf make build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev \
libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev
```
Get Java 17 (for instance, [Azul Zulu Builds of OpenJDK 17](https://www.azul.com/downloads/?version=java-17-ea&package=jdk)).
Then run the following:
```
$ cd JetBrainsRuntime
$ git checkout jbr-dev
$ sh ./configure
$ make images
```
This will build the release configuration under `./build/linux-x86_64-server-release/`.
### Windows
<a name="build-windows"></a>
Install the following:
* [Cygwin x64](http://www.cygwin.com/).
Required packages: `autoconf`, `binutils`, `cpio`, `diffutils`, `file`, `gawk`, `gcc-core`, `make`, `m4`, `unzip`, `zip`.
Install those together with Cygwin.
* [Visual Studio compiler toolset](https://visualstudio.microsoft.com/downloads/).
Install with the desktop development kit, which includes Windows SDK and compilers.
Visual Studio 2019 is supported by default.
* Java 17 (for instance, [Azul Zulu Builds of OpenJDK 17](https://www.azul.com/downloads/?version=java-17-ea&os=windows&architecture=x86-64-bit&package=jdk).
If you have problems while configuring, read [Java tips on Cygwin](http://horstmann.com/articles/cygwin-tips.html).
From the command line:
```
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
"c:\Program_Files\cygwin64\bin\mintty.exe" /bin/bash -l
```
The first command sets up environment variables, the second starts a Cygwin shell with the proper environment.
In the Cygwin shell:
```
$ cd JetBrainsRuntime
$ git checkout jbr-dev
$ bash configure --with-toolchain-version=2019
$ make images
```
This will build the release configuration under `./build/windows-x86_64-server-release/`.
### macOS
Install the following:
* Xcode command line developer tools and `autoconf` via [Homebrew](https://brew.sh/).
* Java 17 (for instance, [Azul Zulu Builds of OpenJDK 17](https://www.azul.com/downloads/?version=java-17-ea&package=jdk)).
From the command line:
```
$ cd JetBrainsRuntime
$ git checkout jbr-dev
$ sh ./configure
$ make images
```
This will build the release configuration under `./build/macosx-x86_64-server-release/`.
## Developing
You can use [CLion](https://www.jetbrains.com/clion/) to develop native parts of the JetBrains Runtime and
[IntelliJ IDEA](https://www.jetbrains.com/idea/) for the parts written in Java.
Both require projects to be created.
### CLion
Run
```
$ make compile-commands
```
in the git root and open the resulting `build/.../compile_commands.json` file as a project.
Then use `Tools | Compilation Database | Change Project Root` to point to git root of this repository.
See also this detailed step-by-step tutorial for all platforms:
[How to develop OpenJDK with CLion](https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/).
### IDEA
Run
```
$ sh ./bin/idea.sh
```
in the git root to generate project files (add `--help` for options). If you have multiple
configurations (for example, `release` and `fastdebug`), supply the `--conf <conf_name>` argument.
Then open the git root directory as a project in IDEA.
## Contributing
We are happy to receive your pull requests!
Before you submit one, please sign our [Contributor License Agreement (CLA)](https://www.jetbrains.com/agreements/cla/).
## Resources
* [JetBrains Runtime on github](https://github.com/JetBrains/JetBrainsRuntime).
* [OpenJDK build instructions](https://openjdk.java.net/groups/build/doc/building.html).
* [OpenJDK test instructions](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk/master/doc/building.html#running-tests).

View File

@@ -25,7 +25,26 @@
# Shell script for generating an IDEA project from a given list of modules
usage() {
echo "usage: $0 [-h|--help] [-v|--verbose] [-o|--output <path>] [-c|--conf <conf_name>] [modules]+"
echo "Usage: $0 [-h|--help] [-q|--quiet] [-a|--absolute-paths] [-r|--root <path>] [-o|--output <path>] [-c|--conf <conf_name>] [modules...]"
echo " -h | --help"
echo " -q | --quiet
No stdout output"
echo " -a | --absolute-paths
Use absolute paths to this jdk, so that generated .idea
project files can be moved independently of jdk sources"
echo " -r | --root <path>
Project content root
Default: $TOPLEVEL_DIR"
echo " -o | --output <path>
Where .idea directory with project files will be generated
(e.g. using '-o .' will place project files in './.idea')
Default: same as --root"
echo " -c | --conf <conf_name>
make configuration (release, slowdebug etc)"
echo " [modules...]
Generate project modules for specific java modules
(e.g. 'java.base java.desktop')
Default: all existing modules (java.* and jdk.*)"
exit 1
}
@@ -33,10 +52,13 @@ SCRIPT_DIR=`dirname $0`
#assume TOP is the dir from which the script has been called
TOP=`pwd`
cd $SCRIPT_DIR; SCRIPT_DIR=`pwd`
if [ "x$TOPLEVEL_DIR" = "x" ] ; then
cd .. ; TOPLEVEL_DIR=`pwd`
fi
cd $TOP;
IDEA_OUTPUT=$TOP/.idea
VERBOSE="false"
VERBOSE=true
ABSOLUTE_PATHS=false
CONF_ARG=
while [ $# -gt 0 ]
do
@@ -45,14 +67,24 @@ do
usage
;;
-v | --vebose )
VERBOSE="true"
-q | --quiet )
VERBOSE=false
;;
-a | --absolute-paths )
ABSOLUTE_PATHS=true
;;
-r | --root )
TOPLEVEL_DIR="$2"
shift
;;
-o | --output )
IDEA_OUTPUT=$2/.idea
IDEA_OUTPUT="$2/.idea"
shift
;;
-c | --conf )
CONF_ARG="CONF_NAME=$2"
shift
@@ -69,23 +101,21 @@ do
shift
done
if [ -e $IDEA_OUTPUT ] ; then
rm -r $IDEA_OUTPUT
if [ "x$IDEA_OUTPUT" = "x" ] ; then
IDEA_OUTPUT="$TOPLEVEL_DIR/.idea"
fi
mkdir -p $IDEA_OUTPUT || exit 1
cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
cd "$TOP" ; cd $TOPLEVEL_DIR; TOPLEVEL_DIR=`pwd`
cd "$TOP" ; cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
cd ..; IDEA_OUTPUT_PARENT=`pwd`
cd "$SCRIPT_DIR/.." ; OPENJDK_DIR=`pwd`
if [ "x$TOPLEVEL_DIR" = "x" ] ; then
cd $SCRIPT_DIR/..
TOPLEVEL_DIR=`pwd`
cd $IDEA_OUTPUT
fi
MAKE_DIR="$SCRIPT_DIR/../make"
IDEA_MAKE="$MAKE_DIR/ide/idea/jdk"
IDEA_MAKE="$OPENJDK_DIR/make/ide/idea/jdk"
IDEA_TEMPLATE="$IDEA_MAKE/template"
cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
cp -rn "$TOPLEVEL_DIR/jb/project/idea-project-files"/* "$IDEA_OUTPUT"
cp -rn "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
#override template
if [ -d "$TEMPLATES_OVERRIDE" ] ; then
@@ -94,31 +124,31 @@ if [ -d "$TEMPLATES_OVERRIDE" ] ; then
done
fi
if [ "$VERBOSE" = "true" ] ; then
echo "output dir: $IDEA_OUTPUT"
echo "idea template dir: $IDEA_TEMPLATE"
if [ "$VERBOSE" = true ] ; then
echo "Will generate IDEA project files in \"$IDEA_OUTPUT\" for project \"$TOPLEVEL_DIR\""
fi
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I $MAKE_DIR/.. idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" $CONF_ARG || exit 1
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I "$OPENJDK_DIR" idea TOPLEVEL_DIR="$TOPLEVEL_DIR" \
MAKEOVERRIDES= IDEA_OUTPUT_PARENT="$IDEA_OUTPUT_PARENT" OUT="$IDEA_OUTPUT/env.cfg" MODULES="$*" $CONF_ARG || exit 1
cd $SCRIPT_DIR
. $IDEA_OUTPUT/env.cfg
# Expect MODULE_ROOTS, MODULE_NAMES, BOOT_JDK & SPEC to be set
if [ "x$MODULE_ROOTS" = "x" ] ; then
echo "FATAL: MODULE_ROOTS is empty" >&2; exit 1
# Expect MODULES, MODULE_NAMES, RELATIVE_PROJECT_DIR, RELATIVE_BUILD_DIR to be set
if [ "xMODULES" = "x" ] ; then
echo "FATAL: MODULES is empty" >&2; exit 1
fi
if [ "x$MODULE_NAMES" = "x" ] ; then
echo "FATAL: MODULE_NAMES is empty" >&2; exit 1
fi
if [ "x$BOOT_JDK" = "x" ] ; then
echo "FATAL: BOOT_JDK is empty" >&2; exit 1
if [ "x$RELATIVE_PROJECT_DIR" = "x" ] ; then
echo "FATAL: RELATIVE_PROJECT_DIR is empty" >&2; exit 1
fi
if [ "x$SPEC" = "x" ] ; then
echo "FATAL: SPEC is empty" >&2; exit 1
if [ "x$RELATIVE_BUILD_DIR" = "x" ] ; then
echo "FATAL: RELATIVE_BUILD_DIR is empty" >&2; exit 1
fi
if [ -d "$TOPLEVEL_DIR/.hg" ] ; then
@@ -129,6 +159,43 @@ if [ -d "$TOPLEVEL_DIR/.git" ] ; then
VCS_TYPE="Git"
fi
if [ "$ABSOLUTE_PATHS" = true ] ; then
if [ "x$PATHTOOL" != "x" ]; then
PROJECT_DIR="`$PATHTOOL -am $OPENJDK_DIR`"
TOPLEVEL_PROJECT_DIR="`$PATHTOOL -am $TOPLEVEL_DIR`"
else
PROJECT_DIR="$OPENJDK_DIR"
TOPLEVEL_PROJECT_DIR="$TOPLEVEL_DIR"
fi
MODULE_DIR="$PROJECT_DIR"
TOPLEVEL_MODULE_DIR="$TOPLEVEL_PROJECT_DIR"
cd "$IDEA_OUTPUT_PARENT" && cd "$RELATIVE_BUILD_DIR" && BUILD_DIR="`pwd`"
CLION_SCRIPT_TOPDIR="$OPENJDK_DIR"
CLION_PROJECT_DIR="$PROJECT_DIR"
else
if [ "$RELATIVE_PROJECT_DIR" = "." ] ; then
PROJECT_DIR=""
else
PROJECT_DIR="/$RELATIVE_PROJECT_DIR"
fi
if [ "$RELATIVE_TOPLEVEL_PROJECT_DIR" = "." ] ; then
TOPLEVEL_PROJECT_DIR=""
else
TOPLEVEL_PROJECT_DIR="/$RELATIVE_TOPLEVEL_PROJECT_DIR"
fi
MODULE_DIR="\$MODULE_DIR\$$PROJECT_DIR"
PROJECT_DIR="\$PROJECT_DIR\$$PROJECT_DIR"
TOPLEVEL_MODULE_DIR="\$MODULE_DIR\$$TOPLEVEL_PROJECT_DIR"
TOPLEVEL_PROJECT_DIR="\$PROJECT_DIR\$$TOPLEVEL_PROJECT_DIR"
BUILD_DIR="\$PROJECT_DIR\$/$RELATIVE_BUILD_DIR"
CLION_SCRIPT_TOPDIR="$CLION_RELATIVE_PROJECT_DIR"
CLION_PROJECT_DIR="\$PROJECT_DIR\$/$CLION_SCRIPT_TOPDIR"
fi
if [ "$VERBOSE" = true ] ; then
echo "Project root: $PROJECT_DIR"
echo "Generating IDEA project files..."
fi
### Replace template variables
NUM_REPLACEMENTS=0
@@ -152,112 +219,106 @@ add_replacement() {
eval TO$NUM_REPLACEMENTS='$2'
}
add_replacement "###PATHTOOL###" "$PATHTOOL"
add_replacement "###CLION_SCRIPT_TOPDIR###" "$CLION_SCRIPT_TOPDIR"
add_replacement "###CLION_PROJECT_DIR###" "$CLION_PROJECT_DIR"
add_replacement "###PROJECT_DIR###" "$PROJECT_DIR"
add_replacement "###MODULE_DIR###" "$MODULE_DIR"
add_replacement "###TOPLEVEL_PROJECT_DIR###" "$TOPLEVEL_PROJECT_DIR"
add_replacement "###TOPLEVEL_MODULE_DIR###" "$TOPLEVEL_MODULE_DIR"
add_replacement "###MODULE_NAMES###" "$MODULE_NAMES"
add_replacement "###VCS_TYPE###" "$VCS_TYPE"
SPEC_DIR=`dirname $SPEC`
if [ "x$CYGPATH" != "x" ]; then
add_replacement "###BUILD_DIR###" "`$CYGPATH -am $SPEC_DIR`"
add_replacement "###IMAGES_DIR###" "`$CYGPATH -am $SPEC_DIR`/images/jdk"
add_replacement "###ROOT_DIR###" "`$CYGPATH -am $TOPLEVEL_DIR`"
add_replacement "###IDEA_DIR###" "`$CYGPATH -am $IDEA_OUTPUT`"
add_replacement "###BUILD_DIR###" "$BUILD_DIR"
add_replacement "###RELATIVE_BUILD_DIR###" "$RELATIVE_BUILD_DIR"
if [ "x$PATHTOOL" != "x" ]; then
add_replacement "###BASH_RUNNER_PREFIX###" "\$PROJECT_DIR\$/.idea/bash.bat"
else
add_replacement "###BASH_RUNNER_PREFIX###" ""
fi
if [ "x$PATHTOOL" != "x" ]; then
if [ "x$JT_HOME" = "x" ]; then
add_replacement "###JTREG_HOME###" ""
else
add_replacement "###JTREG_HOME###" "`$CYGPATH -am $JT_HOME`"
fi
elif [ "x$WSL_DISTRO_NAME" != "x" ]; then
add_replacement "###BUILD_DIR###" "`wslpath -am $SPEC_DIR`"
add_replacement "###IMAGES_DIR###" "`wslpath -am $SPEC_DIR`/images/jdk"
add_replacement "###ROOT_DIR###" "`wslpath -am $TOPLEVEL_DIR`"
add_replacement "###IDEA_DIR###" "`wslpath -am $IDEA_OUTPUT`"
if [ "x$JT_HOME" = "x" ]; then
add_replacement "###JTREG_HOME###" ""
else
add_replacement "###JTREG_HOME###" "`wslpath -am $JT_HOME`"
add_replacement "###JTREG_HOME###" "`$PATHTOOL -am $JT_HOME`"
fi
else
add_replacement "###BUILD_DIR###" "$SPEC_DIR"
add_replacement "###JTREG_HOME###" "$JT_HOME"
add_replacement "###IMAGES_DIR###" "$SPEC_DIR/images/jdk"
add_replacement "###ROOT_DIR###" "$TOPLEVEL_DIR"
add_replacement "###IDEA_DIR###" "$IDEA_OUTPUT"
fi
SOURCE_PREFIX="<sourceFolder url=\"file://"
SOURCE_POSTFIX="\" isTestSource=\"false\" />"
for root in $MODULE_ROOTS; do
if [ "x$CYGPATH" != "x" ]; then
root=`$CYGPATH -am $root`
elif [ "x$WSL_DISTRO_NAME" != "x" ]; then
root=`wslpath -am $root`
fi
VM_CI="jdk.internal.vm.ci/share/classes"
VM_COMPILER="src/jdk.internal.vm.compiler/share/classes"
if test "${root#*$VM_CI}" != "$root" || test "${root#*$VM_COMPILER}" != "$root"; then
for subdir in "$root"/*; do
if [ -d "$subdir" ]; then
SOURCES=$SOURCES" $SOURCE_PREFIX""$subdir"/src"$SOURCE_POSTFIX"
fi
done
else
SOURCES=$SOURCES" $SOURCE_PREFIX""$root""$SOURCE_POSTFIX"
fi
MODULE_IMLS=""
TEST_MODULE_DEPENDENCIES=""
for module in $MODULE_NAMES; do
MODULE_IMLS="$MODULE_IMLS<module fileurl=\"file://\$PROJECT_DIR$/.idea/$module.iml\" filepath=\"\$PROJECT_DIR$/.idea/$module.iml\" /> "
TEST_MODULE_DEPENDENCIES="$TEST_MODULE_DEPENDENCIES<orderEntry type=\"module\" module-name=\"$module\" scope=\"TEST\" /> "
done
add_replacement "###SOURCE_ROOTS###" "$SOURCES"
add_replacement "###MODULE_IMLS###" "$MODULE_IMLS"
add_replacement "###TEST_MODULE_DEPENDENCIES###" "$TEST_MODULE_DEPENDENCIES"
replace_template_dir "$IDEA_OUTPUT"
### Compile the custom Logger
### Generate module project files
CLASSES=$IDEA_OUTPUT/classes
if [ "$VERBOSE" = true ] ; then
echo "Generating project modules:"
fi
(
DEFAULT_IFS="$IFS"
IFS='#'
for value in $MODULES; do
(
eval "$value"
if [ "$VERBOSE" = true ] ; then
echo " $module"
fi
MAIN_SOURCE_DIRS=""
CONTENT_ROOTS=""
IFS=' '
for dir in $moduleSrcDirs; do
case $dir in
"src/"*) MAIN_SOURCE_DIRS="$MAIN_SOURCE_DIRS <sourceFolder url=\"file://$MODULE_DIR/$dir\" isTestSource=\"false\" />" ;;
*"/support/gensrc/$module") ;; # Exclude generated sources to avoid module-info conflicts, see https://youtrack.jetbrains.com/issue/IDEA-185108
*) CONTENT_ROOTS="$CONTENT_ROOTS <content url=\"file://$MODULE_DIR/$dir\">\
<sourceFolder url=\"file://$MODULE_DIR/$dir\" isTestSource=\"false\" generated=\"true\" /></content>" ;;
esac
done
if [ "x$MAIN_SOURCE_DIRS" != "x" ] ; then
CONTENT_ROOTS="<content url=\"file://$MODULE_DIR/src/$module\">$MAIN_SOURCE_DIRS</content>$CONTENT_ROOTS"
fi
add_replacement "###MODULE_CONTENT_ROOTS###" "$CONTENT_ROOTS"
DEPENDENCIES=""
for dep in $moduleDependencies; do
case $MODULE_NAMES in # Exclude skipped modules from dependencies
*"$dep"*) DEPENDENCIES="$DEPENDENCIES<orderEntry type=\"module\" module-name=\"$dep\" /> "
esac
done
add_replacement "###DEPENDENCIES###" "$DEPENDENCIES"
cp "$IDEA_OUTPUT/module.iml" "$IDEA_OUTPUT/$module.iml"
IFS="$DEFAULT_IFS"
replace_template_file "$IDEA_OUTPUT/$module.iml"
)
done
)
rm "$IDEA_OUTPUT/module.iml"
if [ "x$ANT_HOME" = "x" ] ; then
# try some common locations, before giving up
if [ -f "/usr/share/ant/lib/ant.jar" ] ; then
ANT_HOME="/usr/share/ant"
elif [ -f "/usr/local/Cellar/ant/1.9.4/libexec/lib/ant.jar" ] ; then
ANT_HOME="/usr/local/Cellar/ant/1.9.4/libexec"
else
echo "FATAL: cannot find ant. Try setting ANT_HOME." >&2; exit 1
fi
fi
CP=$ANT_HOME/lib/ant.jar
rm -rf $CLASSES; mkdir $CLASSES
### Create shell script runner for Windows
# If we have a Windows boot JDK, we need a .exe suffix
if [ -e "$BOOT_JDK/bin/java.exe" ] ; then
JAVAC=javac.exe
else
JAVAC=javac
if [ "x$PATHTOOL" != "x" ]; then
echo "@echo off" > "$IDEA_OUTPUT/bash.bat"
if [ "x$WSL_DISTRO_NAME" != "x" ] ; then
echo "wsl -d $WSL_DISTRO_NAME --cd \"%cd%\" -e %*" >> "$IDEA_OUTPUT/bash.bat"
else
echo "$WINENV_ROOT\bin\bash.exe -l -c \"cd %CD:\=/%/ && %*\"" >> "$IDEA_OUTPUT/bash.bat"
fi
fi
# If we are on WSL, the boot JDK might be either Windows or Linux,
# and we need to use realpath instead of CYGPATH to make javac work on both.
# We need to handle this case first since CYGPATH might be set on WSL.
if [ "x$WSL_DISTRO_NAME" != "x" ]; then
JAVAC_SOURCE_FILE=`realpath --relative-to=./ $IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java`
JAVAC_SOURCE_PATH=`realpath --relative-to=./ $IDEA_OUTPUT/src`
JAVAC_CLASSES=`realpath --relative-to=./ $CLASSES`
ANT_TEMP=`mktemp -d -p ./`
cp $ANT_HOME/lib/ant.jar $ANT_TEMP/ant.jar
JAVAC_CP=$ANT_TEMP/ant.jar
elif [ "x$CYGPATH" != "x" ] ; then ## CYGPATH may be set in env.cfg
JAVAC_SOURCE_FILE=`$CYGPATH -am $IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java`
JAVAC_SOURCE_PATH=`$CYGPATH -am $IDEA_OUTPUT/src`
JAVAC_CLASSES=`$CYGPATH -am $CLASSES`
JAVAC_CP=`$CYGPATH -am $CP`
else
JAVAC_SOURCE_FILE=$IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java
JAVAC_SOURCE_PATH=$IDEA_OUTPUT/src
JAVAC_CLASSES=$CLASSES
JAVAC_CP=$CP
fi
$BOOT_JDK/bin/$JAVAC -d $JAVAC_CLASSES -sourcepath $JAVAC_SOURCE_PATH -cp $JAVAC_CP $JAVAC_SOURCE_FILE
if [ "x$WSL_DISTRO_NAME" != "x" ]; then
rm -rf $ANT_TEMP
if [ "$VERBOSE" = true ] ; then
IDEA_PROJECT_DIR="`dirname $IDEA_OUTPUT`"
if [ "x$PATHTOOL" != "x" ]; then
IDEA_PROJECT_DIR="`$PATHTOOL -am $IDEA_PROJECT_DIR`"
fi
echo "
Now you can open \"$IDEA_PROJECT_DIR\" as IDEA project
You can also run 'bash \"$IDEA_OUTPUT/jdk-clion/update-project.sh\"' to generate Clion project"
fi

0
configure vendored Normal file → Executable file
View File

View File

@@ -163,6 +163,8 @@
<h3 id="building-on-aarch64">Building on aarch64</h3>
<p>At a minimum, a machine with 8 cores is advisable, as well as 8 GB of RAM. (The more cores to use, the more memory you need.) At least 6 GB of free disk space is required.</p>
<p>If you do not have access to sufficiently powerful hardware, it is also possible to use <a href="#cross-compiling">cross-compiling</a>.</p>
<h4 id="branch-protection">Branch Protection</h4>
<p>In order to use Branch Protection features in the VM, <code>--enable-branch-protection</code> must be used. This option requires C++ compiler support (GCC 9.1.0+ or Clang 10+). The resulting build can be run on both machines with and without support for branch protection in hardware. Branch Protection is only supported for Linux targets.</p>
<h3 id="building-on-32-bit-arm">Building on 32-bit arm</h3>
<p>This is not recommended. Instead, see the section on <a href="#cross-compiling">Cross-compiling</a>.</p>
<h2 id="operating-system-requirements">Operating System Requirements</h2>
@@ -214,7 +216,7 @@
<p>Unfortunately, Cygwin can be unreliable in certain circumstances. If you experience build tool crashes or strange issues when building on Windows, please check the Cygwin FAQ on the <a href="https://cygwin.com/faq/faq.html#faq.using.bloda">&quot;BLODA&quot; list</a> and the section on <a href="https://cygwin.com/faq/faq.html#faq.using.fixing-fork-failures">fork() failures</a>.</p>
<h4 id="windows-subsystem-for-linux-wsl">Windows Subsystem for Linux (WSL)</h4>
<p>Windows 10 1809 or newer is supported due to a dependency on the wslpath utility and support for environment variable sharing through WSLENV. Version 1803 can work but intermittent build failures have been observed.</p>
<p>It's possible to build both Windows and Linux binaries from WSL. To build Windows binaries, you must use a Windows boot JDK (located in a Windows-accessible directory). To build Linux binaries, you must use a Linux boot JDK. The default behavior is to build for Windows. To build for Linux, pass <code>--build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu</code> to <code>configure</code>.</p>
<p>It's possible to build both Windows and Linux binaries from WSL. To build Windows binaries, you must use a Windows boot JDK (located in a Windows-accessible directory). To build Linux binaries, you must use a Linux boot JDK. The default behavior is to build for Windows. To build for Linux, pass <code>--build=x86_64-unknown-linux-gnu --openjdk-target=x86_64-unknown-linux-gnu</code> to <code>configure</code>.</p>
<p>If building Windows binaries, the source code must be located in a Windows- accessible directory. This is because Windows executables (such as Visual Studio and the boot JDK) must be able to access the source code. Also, the drive where the source is stored must be mounted as case-insensitive by changing either /etc/fstab or /etc/wsl.conf in WSL. Individual directories may be corrected using the fsutil tool in case the source was cloned before changing the mount options.</p>
<p>Note that while it's possible to build on WSL, testing is still not fully supported.</p>
<h3 id="macos">macOS</h3>
@@ -271,7 +273,7 @@
<tbody>
<tr class="odd">
<td style="text-align: left;">Linux</td>
<td style="text-align: left;">gcc 10.2.0</td>
<td style="text-align: left;">gcc 11.2.0</td>
</tr>
<tr class="even">
<td style="text-align: left;">macOS</td>
@@ -279,14 +281,14 @@
</tr>
<tr class="odd">
<td style="text-align: left;">Windows</td>
<td style="text-align: left;">Microsoft Visual Studio 2019 update 16.7.2</td>
<td style="text-align: left;">Microsoft Visual Studio 2022 update 17.1.0</td>
</tr>
</tbody>
</table>
<p>All compilers are expected to be able to compile to the C99 language standard, as some C99 features are used in the source code. Microsoft Visual Studio doesn't fully support C99 so in practice shared code is limited to using C99 features that it does support.</p>
<h3 id="gcc">gcc</h3>
<p>The minimum accepted version of gcc is 5.0. Older versions will generate a warning by <code>configure</code> and are unlikely to work.</p>
<p>The JDK is currently known to be able to compile with at least version 10.2 of gcc.</p>
<p>The JDK is currently known to be able to compile with at least version 11.2 of gcc.</p>
<p>In general, any version between these two should be usable.</p>
<h3 id="clang">clang</h3>
<p>The minimum accepted version of clang is 3.5. Older versions will not be accepted by <code>configure</code>.</p>
@@ -568,7 +570,8 @@ x86_64-linux-gnu-to-ppc64le-linux-gnu</code></pre>
<p>To be able to build, we need a &quot;Build JDK&quot;, which is a JDK built from the current sources (that is, the same as the end result of the entire build process), but able to run on the <em>build</em> system, and not the <em>target</em> system. (In contrast, the Boot JDK should be from an older release, e.g. JDK 8 when building JDK 9.)</p>
<p>The build process will create a minimal Build JDK for you, as part of building. To speed up the build, you can use <code>--with-build-jdk</code> to <code>configure</code> to point to a pre-built Build JDK. Please note that the build result is unpredictable, and can possibly break in subtle ways, if the Build JDK does not <strong>exactly</strong> match the current sources.</p>
<h3 id="specifying-the-target-platform">Specifying the Target Platform</h3>
<p>You <em>must</em> specify the target platform when cross-compiling. Doing so will also automatically turn the build into a cross-compiling mode. The simplest way to do this is to use the <code>--openjdk-target</code> argument, e.g. <code>--openjdk-target=arm-linux-gnueabihf</code>. or <code>--openjdk-target=aarch64-oe-linux</code>. This will automatically set the <code>--build</code>, <code>--host</code> and <code>--target</code> options for autoconf, which can otherwise be confusing. (In autoconf terminology, the &quot;target&quot; is known as &quot;host&quot;, and &quot;target&quot; is used for building a Canadian cross-compiler.)</p>
<p>You <em>must</em> specify the target platform when cross-compiling. Doing so will also automatically turn the build into a cross-compiling mode. The simplest way to do this is to use the <code>--openjdk-target</code> argument, e.g. <code>--openjdk-target=arm-linux-gnueabihf</code>. or <code>--openjdk-target=aarch64-oe-linux</code>. This will automatically set the <code>--host</code> and <code>--target</code> options for autoconf, which can otherwise be confusing. (In autoconf terminology, the &quot;target&quot; is known as &quot;host&quot;, and &quot;target&quot; is used for building a Canadian cross-compiler.)</p>
<p>If <code>--build</code> has not been explicitly passed to configure, <code>--openjdk-target</code> will autodetect the build platform and internally set the flag automatically, otherwise the platform that was explicitly passed to <code>--build</code> will be used instead.</p>
<h3 id="toolchain-considerations">Toolchain Considerations</h3>
<p>You will need two copies of your toolchain, one which generates output that can run on the target system (the normal, or <em>target</em>, toolchain), and one that generates output that can run on the build system (the <em>build</em> toolchain). Note that cross-compiling is only supported for gcc at the time being. The gcc standard is to prefix cross-compiling toolchains with the target denominator. If you follow this standard, <code>configure</code> is likely to pick up the toolchain correctly.</p>
<p>The <em>build</em> toolchain will be autodetected just the same way the normal <em>build</em>/<em>target</em> toolchain will be autodetected when not cross-compiling. If this is not what you want, or if the autodetection fails, you can specify a devkit containing the <em>build</em> toolchain using <code>--with-build-devkit</code> to <code>configure</code>, or by giving <code>BUILD_CC</code> and <code>BUILD_CXX</code> arguments.</p>
@@ -887,30 +890,28 @@ spawn failed</code></pre>
<p>If you need general help or advice about developing for the JDK, you can also contact the Adoption Group. See the section on <a href="#contributing-to-openjdk">Contributing to OpenJDK</a> for more information.</p>
<h2 id="reproducible-builds">Reproducible Builds</h2>
<p>Build reproducibility is the property of getting exactly the same bits out when building, every time, independent on who builds the product, or where. This is for many reasons a harder goal than it initially appears, but it is an important goal, for security reasons and others. Please see <a href="https://reproducible-builds.org">Reproducible Builds</a> for more information about the background and reasons for reproducible builds.</p>
<p>Currently, it is not possible to build OpenJDK fully reproducibly, but getting there is an ongoing effort. There are some things you can do to minimize non-determinism and make a larger part of the build reproducible:</p>
<p>Currently, it is not possible to build OpenJDK fully reproducibly, but getting there is an ongoing effort.</p>
<p>An absolute prerequisite for building reproducible is to speficy a fixed build time, since time stamps are embedded in many file formats. This is done by setting the <code>SOURCE_DATE_EPOCH</code> environment variable, which is an <a href="https://reproducible-builds.org/docs/source-date-epoch/">industry standard</a>, that many tools, such as gcc, recognize, and use in place of the current time when generating output.</p>
<p>To generate reproducible builds, you must set <code>SOURCE_DATE_EPOCH</code> before running <code>configure</code>. The value in <code>SOURCE_DATE_EPOCH</code> will be stored in the configuration, and used by <code>make</code>. Setting <code>SOURCE_DATE_EPOCH</code> before running <code>make</code> will have no effect on the build.</p>
<p>You must also make sure your build does not rely on <code>configure</code>'s default adhoc version strings. Default adhoc version strings <code>OPT</code> segment include user name and source directory. You can either override just the <code>OPT</code> segment using <code>--with-version-opt=&lt;any fixed string&gt;</code>, or you can specify the entire version string using <code>--with-version-string=&lt;your version&gt;</code>.</p>
<p>This is a typical example of how to build the JDK in a reproducible way:</p>
<pre><code>export SOURCE_DATE_EPOCH=946684800
bash configure --with-version-opt=adhoc
make</code></pre>
<p>Note that regardless if you specify a source date for <code>configure</code> or not, the JDK build system will set <code>SOURCE_DATE_EPOCH</code> for all build tools when building. If <code>--with-source-date</code> has the value <code>updated</code> (which is the default unless <code>SOURCE_DATE_EPOCH</code> is found by in the environment by <code>configure</code>), the source date value will be determined at build time.</p>
<p>There are several aspects of reproducible builds that can be individually adjusted by <code>configure</code> arguments. If any of these are given, they will override the value derived from <code>SOURCE_DATE_EPOCH</code>. These arguments are:</p>
<ul>
<li>Turn on build system support for reproducible builds</li>
<li><p><code>--with-source-date</code></p>
<p>This option controls how the JDK build sets <code>SOURCE_DATE_EPOCH</code> when building. It can be set to a value describing a date, either an epoch based timestamp as an integer, or a valid ISO-8601 date.</p>
<p>It can also be set to one of the special values <code>current</code>, <code>updated</code> or <code>version</code>. <code>current</code> means that the time of running <code>configure</code> will be used. <code>version</code> will use the nominal release date for the current JDK version. <code>updated</code>, which means that <code>SOURCE_DATE_EPOCH</code> will be set to the current time each time you are running <code>make</code>. All choices, except for <code>updated</code>, will set a fixed value for the source date timestamp.</p>
<p>When <code>SOURCE_DATE_EPOCH</code> is set, the default value for <code>--with-source-date</code> will be the value given by <code>SOURCE_DATE_EPOCH</code>. Otherwise, the default value is <code>updated</code>.</p></li>
<li><p><code>--with-hotspot-build-time</code></p>
<p>This option controls the build time string that will be included in the hotspot library (<code>libjvm.so</code> or <code>jvm.dll</code>). When the source date is fixed (e.g. by setting <code>SOURCE_DATE_EPOCH</code>), the default value for <code>--with-hotspot-build-time</code> will be an ISO 8601 representation of that time stamp. Otherwise the default value will be the current time when building hotspot.</p></li>
<li><p><code>--with-copyright-year</code></p>
<p>This option controls the copyright year in some generated text files. When the source date is fixed (e.g. by setting <code>SOURCE_DATE_EPOCH</code>), the default value for <code>--with-copyright-year</code> will be the year of that time stamp. Otherwise the default is the current year at the time of running configure. This can be overridden by <code>--with-copyright-year=&lt;year&gt;</code>.</p></li>
<li><p><code>--enable-reproducible-build</code></p>
<p>This option controls some additional behavior needed to make the build reproducible. When the source date is fixed (e.g. by setting <code>SOURCE_DATE_EPOCH</code>), this flag will be turned on by default. Otherwise, the value is determined by heuristics. If it is explicitly turned off, the build might not be reproducible.</p></li>
</ul>
<p>Add the flag <code>--enable-reproducible-build</code> to your <code>configure</code> command line. This will turn on support for reproducible builds where it could otherwise be lacking.</p>
<ul>
<li>Do not rely on <code>configure</code>'s default adhoc version strings</li>
</ul>
<p>Default adhoc version strings OPT segment include user name, source directory and timestamp. You can either override just the OPT segment using <code>--with-version-opt=&lt;any fixed string&gt;</code>, or you can specify the entire version string using <code>--with-version-string=&lt;your version&gt;</code>.</p>
<ul>
<li>Specify how the build sets <code>SOURCE_DATE_EPOCH</code></li>
</ul>
<p>The JDK build system will set the <code>SOURCE_DATE_EPOCH</code> environment variable during building, depending on the value of the <code>--with-source-date</code> option for <code>configure</code>. The default value is <code>updated</code>, which means that <code>SOURCE_DATE_EPOCH</code> will be set to the current time each time you are running <code>make</code>.</p>
<p>The <a href="https://reproducible-builds.org/docs/source-date-epoch/"><code>SOURCE_DATE_EPOCH</code> environment variable</a> is an industry standard, that many tools, such as gcc, recognize, and use in place of the current time when generating output.</p>
<p>For reproducible builds, you need to set this to a fixed value. You can use the special value <code>version</code> which will use the nominal release date for the current JDK version, or a value describing a date, either an epoch based timestamp as an integer, or a valid ISO-8601 date.</p>
<p><strong>Hint:</strong> If your build environment already sets <code>SOURCE_DATE_EPOCH</code>, you can propagate this using <code>--with-source-date=$SOURCE_DATE_EPOCH</code>.</p>
<ul>
<li>Specify a hotspot build time</li>
</ul>
<p>Set a fixed hotspot build time. This will be included in the hotspot library (<code>libjvm.so</code> or <code>jvm.dll</code>) and defaults to the current time when building hotspot. Use <code>--with-hotspot-build-time=&lt;any fixed string&gt;</code> for reproducible builds. It's a string so you don't need to format it specifically, so e.g. <code>n/a</code> will do. Another solution is to use the <code>SOURCE_DATE_EPOCH</code> variable, e.g. <code>--with-hotspot-build-time=$(date --date=@$SOURCE_DATE_EPOCH)</code>.</p>
<ul>
<li>Copyright year</li>
</ul>
<p>The copyright year in some generated text files are normally set to the current year. This can be overridden by <code>--with-copyright-year=&lt;year&gt;</code>. For fully reproducible builds, this needs to be set to a fixed value.</p>
<h2 id="hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</h2>
<h3 id="bash-completion">Bash Completion</h3>
<p>The <code>configure</code> and <code>make</code> commands tries to play nice with bash command-line completion (using <code>&lt;tab&gt;</code> or <code>&lt;tab&gt;&lt;tab&gt;</code>). To use this functionality, make sure you enable completion in your <code>~/.bashrc</code> (see instructions for bash in your operating system).</p>

View File

@@ -135,6 +135,14 @@ space is required.
If you do not have access to sufficiently powerful hardware, it is also
possible to use [cross-compiling](#cross-compiling).
#### Branch Protection
In order to use Branch Protection features in the VM, `--enable-branch-protection`
must be used. This option requires C++ compiler support (GCC 9.1.0+ or Clang
10+). The resulting build can be run on both machines with and without support
for branch protection in hardware. Branch Protection is only supported for
Linux targets.
### Building on 32-bit arm
This is not recommended. Instead, see the section on [Cross-compiling](
@@ -236,8 +244,8 @@ It's possible to build both Windows and Linux binaries from WSL. To build
Windows binaries, you must use a Windows boot JDK (located in a
Windows-accessible directory). To build Linux binaries, you must use a Linux
boot JDK. The default behavior is to build for Windows. To build for Linux, pass
`--build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu` to
`configure`.
`--build=x86_64-unknown-linux-gnu --openjdk-target=x86_64-unknown-linux-gnu`
to `configure`.
If building Windows binaries, the source code must be located in a Windows-
accessible directory. This is because Windows executables (such as Visual Studio
@@ -321,9 +329,9 @@ issues.
Operating system Toolchain version
------------------ -------------------------------------------------------
Linux gcc 10.2.0
Linux gcc 11.2.0
macOS Apple Xcode 10.1 (using clang 10.0.0)
Windows Microsoft Visual Studio 2019 update 16.7.2
Windows Microsoft Visual Studio 2022 update 17.1.0
All compilers are expected to be able to compile to the C99 language standard,
as some C99 features are used in the source code. Microsoft Visual Studio
@@ -335,7 +343,7 @@ features that it does support.
The minimum accepted version of gcc is 5.0. Older versions will generate a warning
by `configure` and are unlikely to work.
The JDK is currently known to be able to compile with at least version 10.2 of
The JDK is currently known to be able to compile with at least version 11.2 of
gcc.
In general, any version between these two should be usable.
@@ -374,9 +382,9 @@ available for this update.
### Microsoft Visual Studio
For aarch64 machines running Windows the minimum accepted version is Visual Studio 2019
(16.8 or higher). For all other platforms the minimum accepted version of
Visual Studio is 2017. Older versions will not be accepted by `configure` and will
For aarch64 machines running Windows the minimum accepted version is Visual Studio 2019
(16.8 or higher). For all other platforms the minimum accepted version of
Visual Studio is 2017. Older versions will not be accepted by `configure` and will
not work. For all platforms the maximum accepted version of Visual Studio is 2022.
If you have multiple versions of Visual Studio installed, `configure` will by
@@ -978,11 +986,16 @@ You *must* specify the target platform when cross-compiling. Doing so will also
automatically turn the build into a cross-compiling mode. The simplest way to
do this is to use the `--openjdk-target` argument, e.g.
`--openjdk-target=arm-linux-gnueabihf`. or `--openjdk-target=aarch64-oe-linux`.
This will automatically set the `--build`, `--host` and `--target` options for
This will automatically set the `--host` and `--target` options for
autoconf, which can otherwise be confusing. (In autoconf terminology, the
"target" is known as "host", and "target" is used for building a Canadian
cross-compiler.)
If `--build` has not been explicitly passed to configure, `--openjdk-target`
will autodetect the build platform and internally set the flag automatically,
otherwise the platform that was explicitly passed to `--build` will be used
instead.
### Toolchain Considerations
You will need two copies of your toolchain, one which generates output that can
@@ -1514,57 +1527,85 @@ https://reproducible-builds.org) for more information about the background and
reasons for reproducible builds.
Currently, it is not possible to build OpenJDK fully reproducibly, but getting
there is an ongoing effort. There are some things you can do to minimize
non-determinism and make a larger part of the build reproducible:
there is an ongoing effort.
* Turn on build system support for reproducible builds
An absolute prerequisite for building reproducible is to speficy a fixed build
time, since time stamps are embedded in many file formats. This is done by
setting the `SOURCE_DATE_EPOCH` environment variable, which is an [industry
standard]( https://reproducible-builds.org/docs/source-date-epoch/), that many
tools, such as gcc, recognize, and use in place of the current time when
generating output.
Add the flag `--enable-reproducible-build` to your `configure` command line.
This will turn on support for reproducible builds where it could otherwise be
lacking.
To generate reproducible builds, you must set `SOURCE_DATE_EPOCH` before running
`configure`. The value in `SOURCE_DATE_EPOCH` will be stored in the
configuration, and used by `make`. Setting `SOURCE_DATE_EPOCH` before running
`make` will have no effect on the build.
* Do not rely on `configure`'s default adhoc version strings
Default adhoc version strings OPT segment include user name, source directory
and timestamp. You can either override just the OPT segment using
You must also make sure your build does not rely on `configure`'s default adhoc
version strings. Default adhoc version strings `OPT` segment include user name
and source directory. You can either override just the `OPT` segment using
`--with-version-opt=<any fixed string>`, or you can specify the entire version
string using `--with-version-string=<your version>`.
* Specify how the build sets `SOURCE_DATE_EPOCH`
This is a typical example of how to build the JDK in a reproducible way:
The JDK build system will set the `SOURCE_DATE_EPOCH` environment variable
during building, depending on the value of the `--with-source-date` option for
`configure`. The default value is `updated`, which means that
`SOURCE_DATE_EPOCH` will be set to the current time each time you are running
`make`.
```
export SOURCE_DATE_EPOCH=946684800
bash configure --with-version-opt=adhoc
make
```
The [`SOURCE_DATE_EPOCH` environment variable](
https://reproducible-builds.org/docs/source-date-epoch/) is an industry
standard, that many tools, such as gcc, recognize, and use in place of the
current time when generating output.
Note that regardless if you specify a source date for `configure` or not, the
JDK build system will set `SOURCE_DATE_EPOCH` for all build tools when building.
If `--with-source-date` has the value `updated` (which is the default unless
`SOURCE_DATE_EPOCH` is found by in the environment by `configure`), the source
date value will be determined at build time.
For reproducible builds, you need to set this to a fixed value. You can use the
special value `version` which will use the nominal release date for the current
JDK version, or a value describing a date, either an epoch based timestamp as an
integer, or a valid ISO-8601 date.
There are several aspects of reproducible builds that can be individually
adjusted by `configure` arguments. If any of these are given, they will override
the value derived from `SOURCE_DATE_EPOCH`. These arguments are:
**Hint:** If your build environment already sets `SOURCE_DATE_EPOCH`, you can
propagate this using `--with-source-date=$SOURCE_DATE_EPOCH`.
* `--with-source-date`
* Specify a hotspot build time
This option controls how the JDK build sets `SOURCE_DATE_EPOCH` when
building. It can be set to a value describing a date, either an epoch based
timestamp as an integer, or a valid ISO-8601 date.
Set a fixed hotspot build time. This will be included in the hotspot library
(`libjvm.so` or `jvm.dll`) and defaults to the current time when building
hotspot. Use `--with-hotspot-build-time=<any fixed string>` for reproducible
builds. It's a string so you don't need to format it specifically, so e.g. `n/a`
will do. Another solution is to use the `SOURCE_DATE_EPOCH` variable, e.g.
`--with-hotspot-build-time=$(date --date=@$SOURCE_DATE_EPOCH)`.
It can also be set to one of the special values `current`, `updated` or
`version`. `current` means that the time of running `configure` will be
used. `version` will use the nominal release date for the current JDK
version. `updated`, which means that `SOURCE_DATE_EPOCH` will be set to the
current time each time you are running `make`. All choices, except for
`updated`, will set a fixed value for the source date timestamp.
* Copyright year
When `SOURCE_DATE_EPOCH` is set, the default value for `--with-source-date`
will be the value given by `SOURCE_DATE_EPOCH`. Otherwise, the default value
is `updated`.
The copyright year in some generated text files are normally set to the current
year. This can be overridden by `--with-copyright-year=<year>`. For fully
reproducible builds, this needs to be set to a fixed value.
* `--with-hotspot-build-time`
This option controls the build time string that will be included in the
hotspot library (`libjvm.so` or `jvm.dll`). When the source date is fixed
(e.g. by setting `SOURCE_DATE_EPOCH`), the default value for
`--with-hotspot-build-time` will be an ISO 8601 representation of that time
stamp. Otherwise the default value will be the current time when building
hotspot.
* `--with-copyright-year`
This option controls the copyright year in some generated text files. When
the source date is fixed (e.g. by setting `SOURCE_DATE_EPOCH`), the default
value for `--with-copyright-year` will be the year of that time stamp.
Otherwise the default is the current year at the time of running configure.
This can be overridden by `--with-copyright-year=<year>`.
* `--enable-reproducible-build`
This option controls some additional behavior needed to make the build
reproducible. When the source date is fixed (e.g. by setting
`SOURCE_DATE_EPOCH`), this flag will be turned on by default. Otherwise, the
value is determined by heuristics. If it is explicitly turned off, the build
might not be reproducible.
## Hints and Suggestions for Advanced Users

View File

@@ -51,6 +51,7 @@
<li><a href="#atomic">&lt;atomic&gt;</a></li>
<li><a href="#uniform-initialization">Uniform Initialization</a></li>
<li><a href="#local-function-objects">Local Function Objects</a></li>
<li><a href="#inheriting-constructors">Inheriting constructors</a></li>
<li><a href="#additional-permitted-features">Additional Permitted Features</a></li>
<li><a href="#excluded-features">Excluded Features</a></li>
<li><a href="#undecided-features">Undecided Features</a></li>
@@ -67,7 +68,9 @@
<h3 id="counterexamples-and-updates">Counterexamples and Updates</h3>
<p>Many of the guidelines mentioned here have (sometimes widespread) counterexamples in the HotSpot code base. Finding a counterexample is not sufficient justification for new code to follow the counterexample as a precedent, since readers of your code will rightfully expect your code to follow the greater bulk of precedents documented here.</p>
<p>Occasionally a guideline mentioned here may be just out of synch with the actual HotSpot code base. If you find that a guideline is consistently contradicted by a large number of counterexamples, please bring it up for discussion and possible change. The architectural rule, of course, is &quot;When in Rome do as the Romans&quot;. Sometimes in the suburbs of Rome the rules are a little different; these differences can be pointed out here.</p>
<p>Proposed changes should be discussed on the <a href="mailto:hotspot-dev@openjdk.java.net">HotSpot Developers</a> mailing list, and approved by <a href="https://en.wikipedia.org/wiki/Rough_consensus">rough consensus</a> of the <a href="https://openjdk.java.net/census#hotspot">HotSpot Group</a> Members. The Group Lead determines whether consensus has been reached. Changes are likely to be cautious and incremental, since HotSpot coders have been using these guidelines for years.</p>
<p>Proposed changes should be discussed on the <a href="mailto:hotspot-dev@openjdk.java.net">HotSpot Developers</a> mailing list. Changes are likely to be cautious and incremental, since HotSpot coders have been using these guidelines for years.</p>
<p>Substantive changes are approved by <a href="https://www.rfc-editor.org/rfc/rfc7282.html">rough consensus</a> of the <a href="https://openjdk.java.net/census#hotspot">HotSpot Group</a> Members. The Group Lead determines whether consensus has been reached.</p>
<p>Editorial changes (changes that only affect the description of HotSpot style, not its substance) do not require the full consensus gathering process. The normal HotSpot pull request process may be used for editorial changes, with the additional requirement that the requisite reviewers are also HotSpot Group Members.</p>
<h2 id="structure-and-formatting">Structure and Formatting</h2>
<h3 id="factoring-and-class-design">Factoring and Class Design</h3>
<ul>
@@ -151,7 +154,7 @@
<h3 id="whitespace">Whitespace</h3>
<ul>
<li><p>In general, don't change whitespace unless it improves readability or consistency. Gratuitous whitespace changes will make integrations and backports more difficult.</p></li>
<li><p>Use One-True-Brace-Style. The opening brace for a function or class is normally at the end of the line; it is sometimes moved to the beginning of the next line for emphasis. Substatements are enclosed in braces, even if there is only a single statement. Extremely simple one-line statements may drop braces around a substatement.</p></li>
<li><p>Use <a href="https://en.wikipedia.org/wiki/Indentation_style#Variant:_1TBS_(OTBS)">One-True-Brace-Style</a>. The opening brace for a function or class is normally at the end of the line; it is sometimes moved to the beginning of the next line for emphasis. Substatements are enclosed in braces, even if there is only a single statement. Extremely simple one-line statements may drop braces around a substatement.</p></li>
<li><p>Indentation levels are two columns.</p></li>
<li><p>There is no hard line length limit. That said, bear in mind that excessively long lines can cause difficulties. Some people like to have multiple side-by-side windows in their editors, and long lines may force them to choose among unpleasant options. They can use wide windows, reducing the number that can fit across the screen, and wasting a lot of screen real estate because most lines are not that long. Alternatively, they can have more windows across the screen, with long lines wrapping (or worse, requiring scrolling to see in their entirety), which is harder to read. Similar issues exist for side-by-side code reviews.</p></li>
<li><p>Tabs are not allowed in code. Set your editor accordingly.<br> (Emacs: <code>(setq-default indent-tabs-mode nil)</code>.)</p></li>
@@ -208,7 +211,7 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<p>Rationale: Other than to implement exceptions (which HotSpot doesn't use), most potential uses of <a href="https://en.wikipedia.org/wiki/Run-time_type_information" title="Runtime Type Information">RTTI</a> are better done via virtual functions. Some of the remainder can be replaced by bespoke mechanisms. The cost of the additional runtime data structures needed to support <a href="https://en.wikipedia.org/wiki/Run-time_type_information" title="Runtime Type Information">RTTI</a> are deemed not worthwhile, given the alternatives.</p>
<h3 id="memory-allocation">Memory Allocation</h3>
<p>Do not use the standard global allocation and deallocation functions (operator new and related functions). Use of these functions by HotSpot code is disabled for some platforms.</p>
<p>Rationale: HotSpot often uses &quot;resource&quot; or &quot;arena&quot; allocation. Even where heap allocation is used, the standard global functions are avoided in favor of wrappers around malloc and free that support the VM's Native Memory Tracking (NMT) feature.</p>
<p>Rationale: HotSpot often uses &quot;resource&quot; or &quot;arena&quot; allocation. Even where heap allocation is used, the standard global functions are avoided in favor of wrappers around malloc and free that support the VM's Native Memory Tracking (NMT) feature. Typically, uses of the global operator new are inadvertent and therefore often associated with memory leaks.</p>
<p>Native memory allocation failures are often treated as non-recoverable. The place where &quot;out of memory&quot; is (first) detected may be an innocent bystander, unrelated to the actual culprit.</p>
<h3 id="class-inheritance">Class Inheritance</h3>
<p>Use public single inheritance.</p>
@@ -268,8 +271,8 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<p>The underlying type of a <em>scoped-enum</em> should also be specified explicitly if conversions may be applied to values of that type.</p>
<p>Due to bugs in certain (very old) compilers, there is widespread use of enums and avoidance of in-class initialization of static integral constant members. Compilers having such bugs are no longer supported. Except where an enum is semantically appropriate, new code should use integral constants.</p>
<h3 id="thread_local">thread_local</h3>
<p>Do not use <code>thread_local</code> (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm">n2659</a>); instead, use the HotSpot macro <code>THREAD_LOCAL</code>. The initializer must be a constant expression.</p>
<p>As was discussed in the review for <a href="https://mail.openjdk.java.net/pipermail/hotspot-dev/2019-September/039487.html">JDK-8230877</a>, <code>thread_local</code> allows dynamic initialization and destruction semantics. However, that support requires a run-time penalty for references to non-function-local <code>thread_local</code> variables defined in a different translation unit, even if they don't need dynamic initialization. Dynamic initialization and destruction of namespace-scoped thread local variables also has the same ordering problems as for ordinary namespace-scoped variables.</p>
<p>Avoid use of <code>thread_local</code> (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm">n2659</a>); and instead, use the HotSpot macro <code>THREAD_LOCAL</code>, for which the initializer must be a constant expression. When <code>thread_local</code> must be used, use the Hotspot macro <code>APPROVED_CPP_THREAD_LOCAL</code> to indicate that the use has been given appropriate consideration.</p>
<p>As was discussed in the review for <a href="https://mail.openjdk.java.net/pipermail/hotspot-dev/2019-September/039487.html">JDK-8230877</a>, <code>thread_local</code> allows dynamic initialization and destruction semantics. However, that support requires a run-time penalty for references to non-function-local <code>thread_local</code> variables defined in a different translation unit, even if they don't need dynamic initialization. Dynamic initialization and destruction of non-local <code>thread_local</code> variables also has the same ordering problems as for ordinary non-local variables. So we avoid use of <code>thread_local</code> in general, limiting its use to only those cases where dynamic initialization or destruction are essential. See <a href="https://bugs.openjdk.java.net/browse/JDK-8282469">JDK-8282469</a> for further discussion.</p>
<h3 id="nullptr">nullptr</h3>
<p>Prefer <code>nullptr</code> (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf">n2431</a>) to <code>NULL</code>. Don't use (constexpr or literal) 0 for pointers.</p>
<p>For historical reasons there are widespread uses of both <code>NULL</code> and of integer 0 as a pointer value.</p>
@@ -403,6 +406,10 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<ul>
<li>Make () more optional for lambdas (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1102r2.html">p1102r2</a>)</li>
</ul>
<h3 id="inheriting-constructors">Inheriting constructors</h3>
<p>Do not use <em>inheriting constructors</em> (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm">n2540</a>).</p>
<p>C++11 provides simple syntax allowing a class to inherit the constructors of a base class. Unfortunately there are a number of problems with the original specification, and C++17 contains significant revisions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0136r1.html" title="p0136r1">p0136r1</a> opens with a list of 8 Core Issues). Since HotSpot doesn't support use of C++17, use of inherited constructors could run into those problems. Such uses might also change behavior in a future HotSpot update to use C++17 or later, potentially in subtle ways that could lead to hard to diagnose problems. Because of this, HotSpot code must not use inherited constructors.</p>
<p>Note that gcc7 provides the <code>-fnew-inheriting-ctors</code> option to use the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0136r1.html" title="p0136r1">p0136r1</a> semantics. This is enabled by default when using C++17 or later. It is also enabled by default for <code>fabi-version=11</code> (introduced by gcc7) or higher when using C++11/14, as the change is considered a Defect Report that applies to those versions. Earlier versions of gcc don't have that option, and other supported compilers may not have anything similar.</p>
<h3 id="additional-permitted-features">Additional Permitted Features</h3>
<ul>
<li><p><code>constexpr</code> (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf">n2235</a>) (<a href="https://isocpp.org/files/papers/N3652.html">n3652</a>)</p></li>
@@ -421,6 +428,7 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<li><p><code>final</code> virtual specifiers for classes and virtual functions (<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm">n2928</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm">n3206</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm">n3272</a>)</p></li>
<li><p><code>override</code> virtual specifiers for virtual functions (<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm">n2928</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm">n3206</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm">n3272</a>)</p></li>
<li><p>Range-based <code>for</code> loops (<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html">n2930</a>) (<a href="https://en.cppreference.com/w/cpp/language/range-for">range-for</a>)</p></li>
<li><p>Unrestricted Unions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf">n2544</a>)</p></li>
</ul>
<h3 id="excluded-features">Excluded Features</h3>
<ul>
@@ -436,7 +444,7 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<li><p>Inline namespaces (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm">n2535</a>) — HotSpot makes very limited use of namespaces.</p></li>
<li><p><code>using namespace</code> directives. In particular, don't use <code>using namespace std;</code> to avoid needing to qualify Standard Library names.</p></li>
<li><p>Propagating exceptions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html">n2179</a>) — HotSpot does not permit the use of exceptions, so this feature isn't useful.</p></li>
<li><p>Avoid namespace-scoped variables with non-constexpr initialization. In particular, avoid variables with types requiring non-trivial initialization or destruction. Initialization order problems can be difficult to deal with and lead to surprises, as can destruction ordering. HotSpot doesn't generally try to cleanup on exit, and running destructors at exit can also lead to problems.</p></li>
<li><p>Avoid non-local variables with non-constexpr initialization. In particular, avoid variables with types requiring non-trivial initialization or destruction. Initialization order problems can be difficult to deal with and lead to surprises, as can destruction ordering. HotSpot doesn't generally try to cleanup on exit, and running destructors at exit can also lead to problems.</p></li>
<li><p><code>[[deprecated]]</code> attribute (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html">n3760</a>) — Not relevant in HotSpot code.</p></li>
<li><p>Avoid most operator overloading, preferring named functions. When operator overloading is used, ensure the semantics conform to the normal expected behavior of the operation.</p></li>
<li><p>Avoid most implicit conversion constructors and (implicit or explicit) conversion operators. (Note that conversion to <code>bool</code> isn't needed in HotSpot code because of the &quot;no implicit boolean&quot; guideline.)</p></li>

View File

@@ -56,12 +56,19 @@ can be pointed out here.
Proposed changes should be discussed on the
[HotSpot Developers](mailto:hotspot-dev@openjdk.java.net) mailing
list, and approved by
[rough consensus](https://en.wikipedia.org/wiki/Rough_consensus) of
list. Changes are likely to be cautious and incremental, since HotSpot
coders have been using these guidelines for years.
Substantive changes are approved by
[rough consensus](https://www.rfc-editor.org/rfc/rfc7282.html) of
the [HotSpot Group](https://openjdk.java.net/census#hotspot) Members.
The Group Lead determines whether consensus has been reached.
Changes are likely to be cautious and incremental, since HotSpot
coders have been using these guidelines for years.
Editorial changes (changes that only affect the description of HotSpot
style, not its substance) do not require the full consensus gathering
process. The normal HotSpot pull request process may be used for
editorial changes, with the additional requirement that the requisite
reviewers are also HotSpot Group Members.
## Structure and Formatting
@@ -287,7 +294,9 @@ well.
or consistency. Gratuitous whitespace changes will make integrations
and backports more difficult.
* Use One-True-Brace-Style. The opening brace for a function or class
* Use [One-True-Brace-Style](
https://en.wikipedia.org/wiki/Indentation_style#Variant:_1TBS_(OTBS)).
The opening brace for a function or class
is normally at the end of the line; it is sometimes moved to the
beginning of the next line for emphasis. Substatements are enclosed
in braces, even if there is only a single statement. Extremely simple
@@ -462,7 +471,9 @@ code is disabled for some platforms.
Rationale: HotSpot often uses "resource" or "arena" allocation. Even
where heap allocation is used, the standard global functions are
avoided in favor of wrappers around malloc and free that support the
VM's Native Memory Tracking (NMT) feature.
VM's Native Memory Tracking (NMT) feature. Typically, uses of the global
operator new are inadvertent and therefore often associated with memory
leaks.
Native memory allocation failures are often treated as non-recoverable.
The place where "out of memory" is (first) detected may be an innocent
@@ -622,7 +633,7 @@ Here are a few closely related example bugs:<br>
### enum
Where appropriate, _scoped-enums_ should be used.
([n2347](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf))
([n2347](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf))
Use of _unscoped-enums_ is permitted, though ordinary constants may be
preferable when the automatic initializer feature isn't used.
@@ -642,10 +653,12 @@ integral constants.
### thread_local
Do not use `thread_local`
Avoid use of `thread_local`
([n2659](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm));
instead, use the HotSpot macro `THREAD_LOCAL`. The initializer must
be a constant expression.
and instead, use the HotSpot macro `THREAD_LOCAL`, for which the initializer must
be a constant expression. When `thread_local` must be used, use the Hotspot macro
`APPROVED_CPP_THREAD_LOCAL` to indicate that the use has been given appropriate
consideration.
As was discussed in the review for
[JDK-8230877](https://mail.openjdk.java.net/pipermail/hotspot-dev/2019-September/039487.html),
@@ -654,14 +667,18 @@ semantics. However, that support requires a run-time penalty for
references to non-function-local `thread_local` variables defined in a
different translation unit, even if they don't need dynamic
initialization. Dynamic initialization and destruction of
namespace-scoped thread local variables also has the same ordering
problems as for ordinary namespace-scoped variables.
non-local `thread_local` variables also has the same ordering
problems as for ordinary non-local variables. So we avoid use of
`thread_local` in general, limiting its use to only those cases where dynamic
initialization or destruction are essential. See
[JDK-8282469](https://bugs.openjdk.java.net/browse/JDK-8282469)
for further discussion.
### nullptr
Prefer `nullptr`
([n2431](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf))
to `NULL`. Don't use (constexpr or literal) 0 for pointers.
to `NULL`. Don't use (constexpr or literal) 0 for pointers.
For historical reasons there are widespread uses of both `NULL` and of
integer 0 as a pointer value.
@@ -930,7 +947,7 @@ References:
* Generalized lambda capture (init-capture) ([N3648])
* Generic (polymorphic) lambda expressions ([N3649])
[n2657]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm
[n2657]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm
[n2927]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2927.pdf
[N3648]: https://isocpp.org/files/papers/N3648.html
[N3649]: https://isocpp.org/files/papers/N3649.html
@@ -968,10 +985,34 @@ References from C++23
[p1102r2]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1102r2.html
### Inheriting constructors
Do not use _inheriting constructors_
([n2540](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm)).
C++11 provides simple syntax allowing a class to inherit the constructors of a
base class. Unfortunately there are a number of problems with the original
specification, and C++17 contains significant revisions ([p0136r1] opens with
a list of 8 Core Issues). Since HotSpot doesn't support use of C++17, use of
inherited constructors could run into those problems. Such uses might also
change behavior in a future HotSpot update to use C++17 or later, potentially
in subtle ways that could lead to hard to diagnose problems. Because of this,
HotSpot code must not use inherited constructors.
Note that gcc7 provides the `-fnew-inheriting-ctors` option to use the
[p0136r1] semantics. This is enabled by default when using C++17 or later.
It is also enabled by default for `fabi-version=11` (introduced by gcc7) or
higher when using C++11/14, as the change is considered a Defect Report that
applies to those versions. Earlier versions of gcc don't have that option,
and other supported compilers may not have anything similar.
[p0136r1]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0136r1.html
"p0136r1"
### Additional Permitted Features
* `constexpr`
([n2235](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf))
([n2235](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf))
([n3652](https://isocpp.org/files/papers/N3652.html))
* Sized deallocation
@@ -1026,6 +1067,9 @@ References from C++23
([n2930](http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html))
([range-for](https://en.cppreference.com/w/cpp/language/range-for))
* Unrestricted Unions
([n2544](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf))
### Excluded Features
* New string and character literals
@@ -1057,7 +1101,7 @@ namespace std;` to avoid needing to qualify Standard Library names.
([n2179](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html)) &mdash;
HotSpot does not permit the use of exceptions, so this feature isn't useful.
* Avoid namespace-scoped variables with non-constexpr initialization.
* Avoid non-local variables with non-constexpr initialization.
In particular, avoid variables with types requiring non-trivial
initialization or destruction. Initialization order problems can be
difficult to deal with and lead to surprises, as can destruction
@@ -1078,14 +1122,14 @@ in HotSpot code because of the "no implicit boolean" guideline.)
* Avoid covariant return types.
* Avoid `goto` statements.
* Avoid `goto` statements.
### Undecided Features
This list is incomplete; it serves to explicitly call out some
features that have not yet been discussed.
* Trailing return type syntax for functions
* Trailing return type syntax for functions
([n2541](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm))
* Variable templates
@@ -1099,7 +1143,7 @@ features that have not yet been discussed.
* Rvalue references and move semantics
[ADL]: https://en.cppreference.com/w/cpp/language/adl
[ADL]: https://en.cppreference.com/w/cpp/language/adl
"Argument Dependent Lookup"
[ODR]: https://en.cppreference.com/w/cpp/language/definition

230
jb/jdkdiff.py Executable file
View File

@@ -0,0 +1,230 @@
#!/usr/bin/env python3
import argparse
import math
import os.path
import sys
import subprocess
def fatal(msg):
sys.stderr.write(f"[fatal] {msg}\n")
sys.exit(1)
def verbose(options, *msg):
if options.verbose:
sys.stdout.write(f"[verbose] ")
sys.stdout.write(*msg)
sys.stdout.write('\n')
def first_line(str):
return "" if not str else str.splitlines()[0]
class Options:
def __init__(self):
ap = argparse.ArgumentParser(description="Show bugfixes differences between JBR and OpenJDK git repos",
epilog="Example: %(prog)s --jdk ./jdk11u/ --jbr ./JetBrainsRuntime/ --path src/hotspot --limit 200")
ap.add_argument('--jdk', dest='jdkpath', help='path to OpenJDK git repo', required=True)
ap.add_argument('--jbr', dest='jbrpath', help='path to JBR git repo', required=True)
ap.add_argument('--path', dest='path', help='limit to changes in this path (relative to git root)')
ap.add_argument('--limit', dest='limit', help='limit to this many log entries in --jdk repo', type=int, default=-1)
ap.add_argument('-o', dest="output_dir", help="save patches to this directory (created if necessary)")
ap.add_argument('-v', dest='verbose', help="verbose output", default=False, action='store_true')
args = ap.parse_args()
if not os.path.isdir(args.jdkpath):
fatal(f"{args.jdkpath} not a directory")
if not os.path.isdir(args.jbrpath):
fatal(f"{args.jbrpath} not a directory")
if not git_is_available():
fatal("can't run git commands; make sure git is in PATH")
self.jdkpath = args.jdkpath
self.jbrpath = args.jbrpath
self.path = args.path
self.limit = args.limit
self.output_dir = args.output_dir
self.verbose = args.verbose
class GitRepo:
def __init__(self, rootpath):
self.rootpath = rootpath
def run_git_cmd(self, git_args):
args = ["git", "-C", self.rootpath]
args.extend(git_args)
# print(f"Runnig git cmd '{' '.join(args)}'")
p = subprocess.run(args, capture_output=True, text=True)
if p.returncode != 0:
fatal(f"git returned non-zero code in {self.rootpath} ({first_line(p.stderr)})")
return p.stdout
def save_git_cmd(self, fname, git_args):
args = ["git", "-C", self.rootpath]
args.extend(git_args)
# print(f"Runnig git cmd '{' '.join(args)}'")
with open(fname, "w") as stdout_file:
p = subprocess.run(args, stdout=stdout_file)
if p.returncode != 0:
fatal(f"git returned non-zero code in {self.rootpath} ({first_line(p.stderr)})")
def current_branch(self):
branch_name = self.run_git_cmd(["branch", "--show-current"]).strip()
return branch_name
def log(self, path=None, limit=None):
cmds = ["log", "--no-decorate"]
if limit:
cmds.extend(["-n", str(limit)])
if path:
cmds.append(path)
full_log = self.run_git_cmd(cmds)
return full_log
class Commit:
def __init__(self, lines):
self.sha = lines[0].split()[1]
self.message = ""
self.bugid = None
# Commit message starts after one blank line
read_message = False
for l in lines:
if read_message:
self.message += l + "\n"
if not read_message and l == "":
read_message = True
if self.message and self.message != "" and ":" in self.message:
maybe_bugid = self.message.split(":")[0].strip()
if 10 >= len(maybe_bugid) >= 4:
self.bugid = maybe_bugid
class History:
def __init__(self, log):
log_itr = iter(log.splitlines())
self.commits = []
commit_lines = []
for line in log_itr:
if line.startswith("commit ") and len(commit_lines) > 0:
commit = Commit(commit_lines)
self.commits.append(commit)
commit_lines = []
commit_lines.append(line)
if len(commit_lines) > 0:
commit = Commit(commit_lines)
self.commits.append(commit)
def contains(self, str):
return any(str in commit.message for commit in self.commits)
def size(self):
return len(self.commits)
def print_explanation(options, jdk, jbr):
verbose(options, f"Reading history from '{jdk.rootpath}' on branch '{jdk.current_branch()}'")
if options.path:
verbose(options, f"\t(only under '{options.path}')")
verbose(options, f"Searching for same fixes in '{jbr.rootpath}' on branch '{jbr.current_branch()}'")
def git_is_available():
p = None
try:
p = subprocess.run(["git", "--help"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
except:
pass
return p is not None and p.returncode == 0
def main():
check_python_min_requirements()
options = Options()
jdk = GitRepo(options.jdkpath)
jbr = GitRepo(options.jbrpath)
print_explanation(options, jdk, jbr)
commits_to_save = []
try:
jdk_log = jdk.log(options.path, options.limit)
jdk_history = History(jdk_log)
jbr_log = jbr.log(options.path)
jbr_history = History(jbr_log)
verbose(options, f"Read {jdk_history.size()} commits in JDK, {jbr_history.size()} in JBR")
for c in jdk_history.commits:
if c.bugid:
verbose(options, f"Looking for bugfix for {c.bugid}")
if not jbr_history.contains(c.bugid):
commits_to_save.append(c)
print(f"[note] Fix for {c.bugid} not found in JBR ({jbr.rootpath})")
print(f" commit {c.sha}")
print(f" {first_line(c.message).strip()}")
except KeyboardInterrupt:
fatal("Interrupted")
if len(commits_to_save) > 0 and options.output_dir:
print()
if not os.path.exists(options.output_dir):
verbose(options, f"Creating output directory {options.output_dir}")
os.makedirs(options.output_dir)
nzeroes = len(str(len(commits_to_save)))
for i, c in enumerate(reversed(commits_to_save)):
fname = os.path.join(options.output_dir, f"{str(i).zfill(nzeroes)}-{c.bugid}.patch")
print(f"[note] {c.bugid} saved as {fname}")
fname = os.path.abspath(fname)
jdk.save_git_cmd(fname, ["format-patch", "-1", c.sha, "--stdout"])
script_fname = os.path.join(options.output_dir, "apply.sh")
with open(script_fname, "w") as script_file:
print(apply_script_code.format(os.path.abspath(jbr.rootpath), os.path.abspath(options.output_dir)),
file=script_file)
print(f"[note] Execute 'bash {script_fname}' to apply patches to {jbr.rootpath}")
def check_python_min_requirements():
if sys.version_info < (3, 6):
fatal("Minimum version 3.6 is required to run this script")
apply_script_code = """
#!/bin/bash
GITROOT={0}
PATCHROOT={1}
cd $PATCHROOT || exit 1
PATCHES=$(find $PATCHROOT -name '*.patch' | sort -n)
for P in $PATCHES; do
git -C $GITROOT am $P
if [ $? != 0 ]; then
mv "$P" "$P.failed"
echo "[ERROR] Patch $P did not apply cleanly. Try applying it manually."
echo "[NOTE] Execute this script to apply the remaining patches."
exit 1
else
mv "$P" "$P.done"
fi
done
echo "[NOTE] Done applying patches; check $PATCHROOT for .patch and .patch.failed to see if all have been applied."
"""
if __name__ == '__main__':
main()

View File

@@ -0,0 +1,13 @@
# jetbrains/runtime:jbr15env
FROM centos:7
RUN yum -y install centos-release-scl
RUN yum -y install devtoolset-8
RUN yum -y install zip bzip2 unzip tar wget make autoconf automake libtool gcc gcc-c++ libstdc++-devel alsa-devel cups-devel xorg-x11-devel libjpeg62-devel giflib-devel freetype-devel file which libXtst-devel libXt-devel libXrender-devel alsa-lib-devel fontconfig-devel libXrandr-devel libXi-devel git
# Install Java 16
RUN wget https://cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-linux_x64.tar.gz \
-O - | tar xz -C /
RUN mv /zulu17.28.13-ca-jdk17.0.0-linux_x64 /jdk17.0.0
ENV PATH /opt/rh/devtoolset-8/root/usr/bin:$PATH
RUN mkdir .git
RUN git config user.email "teamcity@jetbrains.com"
RUN git config user.name "builduser"

View File

@@ -0,0 +1,47 @@
# NOTE: This Dockerfile is meant to be used from the mkdocker_aarch64.sh script.
# Pull a concrete version of Linux that does NOT recieve updates after it's
# been created. This is so that the image is as stable as possible to make
# image creation reproducible.
# NB: this also means there may be no security-related fixes there, need to
# move the version to the next manually.
FROM arm64v8/ubuntu:focal-20211006
# Install the necessary build tools
RUN export DEBIAN_FRONTEND=noninteractive \
export DEBCONF_NONINTERACTIVE_SEEN=true && \
echo 'tzdata tzdata/Areas select Etc' | debconf-set-selections; \
echo 'tzdata tzdata/Zones/Etc select UTC' | debconf-set-selections; \
apt-get update -qy && \
apt-get install -qy \
autoconf \
build-essential \
bzip2 \
file \
g++-10=10.3.0-1ubuntu1~20.04 \
gcc-10=10.3.0-1ubuntu1~20.04 \
git \
libasound2-dev \
libcups2-dev \
libfontconfig1-dev \
libx11-dev \
libxext-dev \
libxrandr-dev \
libxrender-dev \
libxt-dev \
libxtst-dev \
make \
tar \
unzip \
zip && \
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 && \
apt-get clean -qy && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Set up boot JDK for building
COPY boot_jdk.tar.gz /jdk17/
RUN cd /jdk17 && tar --strip-components=1 -xzf boot_jdk.tar.gz && rm /jdk17/boot_jdk.tar.gz
ENV BOOT_JDK=/jdk17
RUN git config --global user.email "teamcity@jetbrains.com" && \
git config --global user.name "builduser"

View File

@@ -0,0 +1,22 @@
# NOTE: This Dockerfile is meant to be used from the mkdocker_musl_aarch64.sh script.
# Pull a concrete version of Linux that does NOT recieve updates after it's
# been created. This is so that the image is as stable as possible to make
# image creation reproducible.
# NB: this also means there may be no security-related fixes there, need to
# move the version to the next manually.
FROM arm64v8/alpine:3.12
# Install the necessary build tools
RUN apk --no-cache add --update bash grep tar zip bzip2 fontconfig build-base \
git libx11-dev libxext-dev libxrandr-dev libxrender-dev libxt-dev \
libxtst-dev autoconf freetype-dev cups-dev alsa-lib-dev file \
fontconfig fontconfig-dev linux-headers
# Set up boot JDK for building
COPY boot_jdk_musl_aarch64.tar.gz /jdk17/
RUN cd /jdk17 && tar --strip-components=1 -xzf boot_jdk_musl_aarch64.tar.gz && rm /jdk17/boot_jdk_musl_aarch64.tar.gz
ENV BOOT_JDK=/jdk17
RUN git config --global user.email "teamcity@jetbrains.com" && \
git config --global user.name "builduser"

View File

@@ -0,0 +1,22 @@
# NOTE: This Dockerfile is meant to be used from the mkdocker_musl_x64.sh script.
# Pull a concrete version of Linux that does NOT recieve updates after it's
# been created. This is so that the image is as stable as possible to make
# image creation reproducible.
# NB: this also means there may be no security-related fixes there, need to
# move the version to the next manually.
FROM alpine:3.5
# Install the necessary build tools
RUN apk --no-cache add --update bash grep tar zip bzip2 fontconfig build-base \
git libx11-dev libxext-dev libxrandr-dev libxrender-dev libxt-dev \
libxtst-dev autoconf freetype-dev cups-dev alsa-lib-dev file \
fontconfig fontconfig-dev linux-headers
# Set up boot JDK for building
COPY boot_jdk_musl_amd64.tar.gz /jdk17/
RUN cd /jdk17 && tar --strip-components=1 -xzf boot_jdk_musl_amd64.tar.gz && rm /jdk17/boot_jdk_musl_amd64.tar.gz
ENV BOOT_JDK=/jdk17
RUN git config --global user.email "teamcity@jetbrains.com" && \
git config --global user.name "builduser"

View File

@@ -0,0 +1,7 @@
FROM i386/ubuntu:xenial
RUN linux32 apt-get update && apt-get install -y --no-install-recommends apt-utils
COPY jbrsdk-11.0.5-b1 /jbrsdk-11.0.5-b1
RUN linux32 apt-get -y install file build-essential zip unzip curl libx11-dev libxext-dev \
libxrender-dev libxrandr-dev libxtst-dev libxt-dev libcups2-dev libasound2-data \
libpng12-0 libasound2 libfreetype6 libfontconfig1-dev libasound2-dev autoconf

View File

@@ -0,0 +1,26 @@
#!/bin/bash -x
# This script creates a Docker image suitable for building AArch64 variant
# of the JetBrains Runtime "dev" version.
BOOT_JDK_REMOTE_FILE=zulu17.30.15-ca-jdk17.0.1-linux_aarch64.tar.gz
BOOT_JDK_SHA=4d9c9116eb0cdd2d7fb220d6d27059f4bf1b7e95cc93d5512bd8ce3791af86c7
BOOT_JDK_LOCAL_FILE=boot_jdk.tar.gz
if [ ! -f $BOOT_JDK_LOCAL_FILE ]; then
# Obtain "boot JDK" from outside of the container.
wget -nc https://cdn.azul.com/zulu/bin/${BOOT_JDK_REMOTE_FILE} -O $BOOT_JDK_LOCAL_FILE
else
echo "boot JDK \"$BOOT_JDK_LOCAL_FILE\" present, skipping download"
fi
# Verify that what we've downloaded can be trusted.
sha256sum -c - <<EOF
$BOOT_JDK_SHA *$BOOT_JDK_LOCAL_FILE
EOF
docker build -t jbrdevenv_arm64v8 -f Dockerfile.aarch64 .
# NB: the resulting container can (and should) be used without the network
# connection (--network none) during build in order to reduce the chance
# of build contamination.

View File

@@ -0,0 +1,26 @@
#!/bin/bash -x
# This script creates a Docker image suitable for building musl AArch64 variant
# of the JetBrains Runtime version 17.
BOOT_JDK_REMOTE_FILE=zulu17.32.13-ca-jdk17.0.2-linux_musl_aarch64.tar.gz
BOOT_JDK_SHA=6b920559abafbe9bdef386a20ecf3a2f318bc1f0d8359eb1f95aee26606bbc70
BOOT_JDK_LOCAL_FILE=boot_jdk_musl_aarch64.tar.gz
if [ ! -f $BOOT_JDK_LOCAL_FILE ]; then
# Obtain "boot JDK" from outside of the container.
wget -nc https://cdn.azul.com/zulu/bin/${BOOT_JDK_REMOTE_FILE} -O $BOOT_JDK_LOCAL_FILE
else
echo "boot JDK \"$BOOT_JDK_LOCAL_FILE\" present, skipping download"
fi
# Verify that what we've downloaded can be trusted.
sha256sum -c - <<EOF
$BOOT_JDK_SHA *$BOOT_JDK_LOCAL_FILE
EOF
docker build -t jbr17buildenv -f Dockerfile.musl_aarch64 .
# NB: the resulting container can (and should) be used without the network
# connection (--network none) during build in order to reduce the chance
# of build contamination.

View File

@@ -0,0 +1,26 @@
#!/bin/bash -x
# This script creates a Docker image suitable for building musl-x64 variant
# of the JetBrains Runtime version 17.
BOOT_JDK_REMOTE_FILE=zulu17.32.13-ca-jdk17.0.2-linux_musl_x64.tar.gz
BOOT_JDK_SHA=bcc5342011bd9f3643372aadbdfa68d47463ff0d8621668a0bdf2910614d95c6
BOOT_JDK_LOCAL_FILE=boot_jdk_musl_amd64.tar.gz
if [ ! -f $BOOT_JDK_LOCAL_FILE ]; then
# Obtain "boot JDK" from outside of the container.
wget -nc https://cdn.azul.com/zulu/bin/${BOOT_JDK_REMOTE_FILE} -O $BOOT_JDK_LOCAL_FILE
else
echo "boot JDK \"$BOOT_JDK_LOCAL_FILE\" present, skipping download"
fi
# Verify that what we've downloaded can be trusted.
sha256sum -c - <<EOF
$BOOT_JDK_SHA *$BOOT_JDK_LOCAL_FILE
EOF
docker build -t jbr17buildenv -f Dockerfile.musl_x64 .
# NB: the resulting container can (and should) be used without the network
# connection (--network none) during build in order to reduce the chance
# of build contamination.

View File

@@ -0,0 +1,9 @@
<component name="CopyrightManager">
<copyright>
<option name="notice" value="Copyright &amp;#36;originalComment.match(&quot;Copyright (\d+)&quot;, 1, &quot;-&quot;)&amp;#36;today.year JetBrains s.r.o.&#10;DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.&#10;&#10;This code is free software; you can redistribute it and/or modify it&#10;under the terms of the GNU General Public License version 2 only, as&#10;published by the Free Software Foundation.&#10;&#10;This code is distributed in the hope that it will be useful, but WITHOUT&#10;ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or&#10;FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License&#10;version 2 for more details (a copy is included in the LICENSE file that&#10;accompanied this code).&#10;&#10;You should have received a copy of the GNU General Public License version&#10;2 along with this work; if not, write to the Free Software Foundation,&#10;Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.&#10;&#10;Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA&#10;or visit www.oracle.com if you need additional information or have any&#10;questions." />
<option name="keyword" value="Copyright" />
<option name="allowReplaceKeyword" value="JetBrains" />
<option name="myName" value="JetBrains" />
<option name="myLocal" value="true" />
</copyright>
</component>

View File

@@ -0,0 +1,3 @@
<component name="CopyrightManager">
<settings default="JetBrains" />
</component>

View File

@@ -0,0 +1 @@
JetBrainsRuntime

View File

@@ -0,0 +1,9 @@
<component name="CopyrightManager">
<copyright>
<option name="notice" value="Copyright 2000-&amp;#36;today.year JetBrains s.r.o.&#10;&#10;Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);&#10;you may not use this file except in compliance with the License.&#10;You may obtain a copy of the License at&#10;&#10;http://www.apache.org/licenses/LICENSE-2.0&#10;&#10;Unless required by applicable law or agreed to in writing, software&#10;distributed under the License is distributed on an &quot;AS IS&quot; BASIS,&#10;WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&#10;See the License for the specific language governing permissions and&#10;limitations under the License." />
<option name="keyword" value="Copyright" />
<option name="allowReplaceKeyword" value="JetBrains" />
<option name="myName" value="JetBrains" />
<option name="myLocal" value="true" />
</copyright>
</component>

View File

@@ -0,0 +1,3 @@
<component name="CopyrightManager">
<settings default="JetBrains" />
</component>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="IssueNavigationConfiguration">
<option name="links">
<list>
<IssueNavigationLink>
<option name="issueRegexp" value="(?:^|\s|\p{Punct})([A-Z]+\-\d+)(?=$|\s|\p{Punct})" />
<option name="linkRegexp" value="https://youtrack.jetbrains.com/issue/$1" />
</IssueNavigationLink>
<IssueNavigationLink>
<option name="issueRegexp" value="(?:^|\s|\p{Punct})(?:JDK-)?(\d{7})(?=$|\s|\p{Punct})" />
<option name="linkRegexp" value="https://bugs.openjdk.java.net/browse/JDK-$1" />
</IssueNavigationLink>
</list>
</option>
</component>
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$/src/jetbrains.api">
<sourceFolder url="file://$MODULE_DIR$/src/jetbrains.api/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/jetbrains.api/templates" isTestSource="false" />
</content>
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="inheritedJdk" />
</component>
</module>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/jdk.iml" filepath="$PROJECT_DIR$/.idea/jdk.iml" />
###MODULE_IMLS###
<module fileurl="file://$PROJECT_DIR$/.idea/jetbrains.api.iml" filepath="$PROJECT_DIR$/.idea/jetbrains.api.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/test.iml" filepath="$PROJECT_DIR$/.idea/test.iml" />
</modules>
</component>
</project>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="IssueNavigationConfiguration">
<option name="links">
<list>
<IssueNavigationLink>
<option name="issueRegexp" value="(?:^|\s|\p{Punct})([A-Z]+\-\d+)(?=$|\s|\p{Punct})" />
<option name="linkRegexp" value="https://youtrack.jetbrains.com/issue/$1" />
</IssueNavigationLink>
<IssueNavigationLink>
<option name="issueRegexp" value="(?:^|\s|\p{Punct})(?:JDK-)?(\d{7})(?=$|\s|\p{Punct})" />
<option name="linkRegexp" value="https://bugs.openjdk.java.net/browse/JDK-$1" />
</IssueNavigationLink>
</list>
</option>
</component>
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -0,0 +1,135 @@
apply plugin: 'java'
import org.gradle.internal.os.OperatingSystem
repositories {
mavenCentral()
}
def test_jvm = {
if (project.hasProperty('jbsdkhome')) {
file(jbsdkhome + (OperatingSystem.current().isWindows()?"/bin/java.exe" : "/bin/java")).absolutePath
} else {
if (OperatingSystem.current().isMacOsX()) {
file('../../../build/macosx-x86_64-normal-server-release/images/jdk-bundle/jdk-11.0.4.jdk/Contents/Home/bin/java').absolutePath
} else if (OperatingSystem.current().isLinux()) {
file('../../../build/linux-x86_64-normal-server-release/images/jdk/bin/java').absolutePath
} else {
file('../../../build/windows-x86_64-normal-server-release/images/jdk/bin/java.exe').absolutePath
}
}
}
dependencies {
testCompile('junit:junit:4.12'){
exclude group: 'org.hamcrest'
}
testCompile 'org.hamcrest:hamcrest-library:1.3'
testCompile 'net.java.dev.jna:jna:4.4.0'
testCompile 'com.twelvemonkeys.imageio:imageio-tiff:3.3.2'
testCompile 'org.apache.commons:commons-lang3:3.0'
}
def jdk_modules = ["java.base", "java.logging", "java.prefs",
"java.se.ee", "java.sql", "java.datatransfer",
"java.management", "java.rmi", "java.security.jgss",
"java.sql.rowset", "java.desktop", "java.management.rmi",
"java.scripting", "java.security.sasl", "java.transaction",
"java.instrument", "java.naming", "java.se",
"java.smartcardio", "java.xml.crypto"]
def jdk_class_dirs = []
jdk_modules.collect(jdk_class_dirs) {
new File("../../../src/" + it + "/share/classes")
}
if (OperatingSystem.current().isMacOsX())
jdk_modules.collect(jdk_class_dirs) {
"../../../src/" + it + "/macosx/classes"
}
else if (OperatingSystem.current().isLinux()) {
jdk_modules.collect(jdk_class_dirs) {
"../../../src/" + it + "/solaris/classes"
}
jdk_modules.collect(jdk_class_dirs) {
"../../../src/" + it + "/unix/classes"
}
} else
jdk_modules.collect(jdk_class_dirs) {
"../../../src/" + it + "/windows/classes"
}
sourceSets.main.java.srcDirs = jdk_class_dirs
sourceSets {
test {
java {
srcDir "../../../test/jdk/jbu"
}
}
}
test.dependsOn.clear()
test.dependsOn tasks.compileTestJava
test {
systemProperty "jb.java2d.metal", "true"
systemProperty "testdata", file('../../../test/jdk/jbu/testdata').absolutePath
// Generate golden images for DroidFontTest and MixedTextTest
// systemProperty "gentestdata", ""
// Enable Java2D logging (https://confluence.jetbrains.com/display/JRE/Java2D+Rendering+Logging)
// systemProperty "sun.java2d.trace", "log"
// systemProperty "sun.java2d.trace", "log,pimpl"
outputs.upToDateWhen { false }
executable = test_jvm()
// Enable async/dtrace profiler
jvmArgs "-XX:+PreserveFramePointer"
// Enable native J2D logging (only in debug build)
// Can be turned on for J2D by adding "#define DEBUG 1" into jdk/src/share/native/sun/java2d/Trace.h
// environment 'J2D_TRACE_LEVEL', '4'
}
def buildDir = project.buildscript.sourceFile.parentFile.parentFile.parentFile.parentFile
def make_cmd = "make"
if (OperatingSystem.current().isWindows()) {
def cyg_make_cmd = new File("c:/cygwin64/bin/make.exe")
if (cyg_make_cmd.exists()) make_cmd = cyg_make_cmd.absolutePath
}
def test_run = false
task make_images {
doLast {
if (!test_run) {
def pb = new ProcessBuilder().command(make_cmd.toString(), "-C", buildDir.absolutePath, "images")
def proc = pb.redirectErrorStream(true).start()
proc.inputStream.eachLine { println it }
assert proc.waitFor() == 0
}
}
}
task make_clean {
doLast {
def pb = new ProcessBuilder().command(make_cmd.toString(), "-C", buildDir.absolutePath, "clean")
def proc = pb.redirectErrorStream(true).start()
proc.inputStream.eachLine { println it }
assert proc.waitFor() == 0
}
}
task run_test {
doLast {
test_run = true
}
}
tasks.cleanTest.dependsOn tasks.run_test
classes.dependsOn.clear()
classes.dependsOn tasks.make_images
tasks.cleanClasses.dependsOn tasks.make_clean

View File

@@ -0,0 +1,54 @@
java.base,
java.compiler,
java.datatransfer,
java.desktop,
java.instrument,
java.logging,
java.management,
java.management.rmi,
java.naming,
java.net.http,
java.prefs,
java.rmi,
java.scripting,
java.se,
java.security.jgss,
java.security.sasl,
java.smartcardio,
java.sql,
java.sql.rowset,
java.transaction.xa,
java.xml,
java.xml.crypto,
jdk.accessibility,
jdk.attach,
jdk.charsets,
jdk.compiler,
jdk.crypto.cryptoki,
jdk.crypto.ec,
jdk.dynalink,
jdk.httpserver,
jdk.internal.ed,
jdk.internal.le,
jdk.internal.vm.ci,
jdk.javadoc,
jdk.jdi,
jdk.jdwp.agent,
jdk.jfr,
jdk.jsobject,
jdk.localedata,
jdk.management,
jdk.management.agent,
jdk.management.jfr,
jdk.naming.dns,
jdk.naming.rmi,
jdk.net,
jdk.sctp,
jdk.security.auth,
jdk.security.jgss,
jdk.unsupported,
jdk.unsupported.desktop,
jdk.xml.dom,
jdk.zipfs,
jdk.hotspot.agent,
jdk.jcmd

View File

@@ -0,0 +1,16 @@
#!/bin/sh
# $1 - Boot JDK
# $2 - JBR part of API version
cd "`dirname "$0"`/../../../../.."
PWD="`pwd`"
CONF="$PWD/build/jbr-api.conf"
./configure --with-debug-level=release --with-boot-jdk=$1 || exit $?
make jbr-api CONF=release MAKEOVERRIDES= "JBR_API_CONF_FILE=$CONF" JBR_API_JBR_VERSION=$2 || exit $?
. $CONF || exit $?
echo "##teamcity[buildNumber '$VERSION']"
cp "$JAR" ./jbr-api-${VERSION}.jar || exit $?
cp "$SOURCES_JAR" ./jbr-api-${VERSION}-sources.jar || exit $?
echo "##teamcity[publishArtifacts '$PWD/jbr-api-${VERSION}.jar']"
echo "##teamcity[publishArtifacts '$PWD/jbr-api-${VERSION}-sources.jar']"

View File

@@ -0,0 +1,138 @@
#!/bin/bash -x
function do_maketest() {
if [ "${bundle_type: -1}" == "t" ]; then
echo ${bundle_type%?}
return 1
else
echo ${bundle_type}
return 0
fi
}
function getVersionProp() {
grep "^${1}" make/conf/version-numbers.conf | cut -d'=' -f2
}
while getopts ":i?" o; do
case "${o}" in
i)
i="incremental build"
INC_BUILD=1
;;
esac
done
shift $((OPTIND-1))
build_number=$1
bundle_type=$2
architecture=$3 # aarch64 or x64
bundle_type=$(do_maketest)
do_maketest=$?
tag_prefix="jdk-"
OPENJDK_TAG=$(git log --simplify-by-decoration --decorate=short --pretty=short | grep "$tag_prefix" | cut -d "(" -f2 | cut -d ")" -f1 | awk '{print $2}' | sort -t "-" -k 2 -g | tail -n 1)
VERSION_FEATURE=$(getVersionProp "DEFAULT_VERSION_FEATURE")
VERSION_INTERIM=$(getVersionProp "DEFAULT_VERSION_INTERIM")
VERSION_UPDATE=$(getVersionProp "DEFAULT_VERSION_UPDATE")
[[ $VERSION_UPDATE = 0 ]] && JBSDK_VERSION="$VERSION_FEATURE" || JBSDK_VERSION="${VERSION_FEATURE}.${VERSION_INTERIM}.${VERSION_UPDATE}"
echo "##teamcity[setParameter name='env.JBSDK_VERSION' value='${JBSDK_VERSION}']"
JDK_BUILD_NUMBER=${JDK_BUILD_NUMBER:=$(echo $OPENJDK_TAG | awk -F "-|[+]" '{print $3}')}
[ -z $JDK_BUILD_NUMBER ] && JDK_BUILD_NUMBER=1
echo "##teamcity[setParameter name='env.JDK_UPDATE_NUMBER' value='${JDK_BUILD_NUMBER}']"
VENDOR_NAME="JetBrains s.r.o."
VENDOR_VERSION_STRING="JBR-${JBSDK_VERSION}+${JDK_BUILD_NUMBER}-${build_number}"
[ -z "$bundle_type" ] || VENDOR_VERSION_STRING="${VENDOR_VERSION_STRING}-${bundle_type}"
do_reset_changes=0
do_reset_dcevm=0
HEAD_REVISION=0
OS_NAME=$(uname -s)
# Enable reproducible builds
TZ=UTC
export TZ
SOURCE_DATE_EPOCH="$(git log -1 --pretty=%ct)"
export SOURCE_DATE_EPOCH
case "$OS_NAME" in
Linux)
COPYRIGHT_YEAR="$(date --utc --date=@$SOURCE_DATE_EPOCH +%Y)"
BUILD_TIME="$(date --utc --date=@$SOURCE_DATE_EPOCH +%F)"
REPRODUCIBLE_TAR_OPTS="--mtime=@$SOURCE_DATE_EPOCH --owner=0 --group=0 --numeric-owner --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime"
;;
Darwin)
COPYRIGHT_YEAR="$(date -u -r $SOURCE_DATE_EPOCH +%Y)"
BUILD_TIME="$(date -u -r $SOURCE_DATE_EPOCH +%F)"
TOUCH_TIME="$(date -u -r $SOURCE_DATE_EPOCH +%Y%m%d%H%M.%S)"
REPRODUCIBLE_TAR_OPTS="--uid 0 --gid 0 --numeric-owner"
;;
*)
# TODO: Windows
;;
esac
REPRODUCIBLE_BUILD_OPTS="--enable-reproducible-build
--with-source-date=$SOURCE_DATE_EPOCH
--with-hotspot-build-time=$BUILD_TIME
--with-copyright-year=$COPYRIGHT_YEAR
--disable-absolute-paths-in-output
--with-build-user=builduser"
function do_exit() {
exit_code=$1
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
if [ $do_reset_dcevm -eq 1 ]; then
[ ! -z $HEAD_REVISION ] && git reset --hard $HEAD_REVISION
fi
exit "$exit_code"
}
function update_jsdk_mods() {
__jsdk=$1
__jcef_mods=$2
__orig_jsdk_mods=$3
__updated_jsdk_mods=$4
# re-create java.desktop.jmod with updated module-info.class
tmp=.java.desktop.$$.tmp
mkdir "$tmp" || exit $?
"$__jsdk"/bin/jmod extract --dir "$tmp" "$__orig_jsdk_mods"/java.desktop.jmod || exit $?
"$__jsdk"/bin/javac \
--patch-module java.desktop="$__orig_jsdk_mods"/java.desktop.jmod \
--module-path "$__jcef_mods" -d "$tmp"/classes src/java.desktop/share/classes/module-info.java || exit $?
"$__jsdk"/bin/jmod \
create --class-path "$tmp"/classes --config "$tmp"/conf --header-files "$tmp"/include --legal-notice "$tmp"/legal --libs "$tmp"/lib \
java.desktop.jmod || exit $?
mv java.desktop.jmod "$__updated_jsdk_mods" || exit $?
rm -rf "$tmp"
# re-create java.base.jmod with updated hashes
tmp=.java.base.$$.tmp
mkdir "$tmp" || exit $?
hash_modules=$("$JSDK"/bin/jmod describe "$__orig_jsdk_mods"/java.base.jmod | grep hashes | awk '{print $2}' | tr '\n' '|' | sed s/\|$//) || exit $?
"$__jsdk"/bin/jmod extract --dir "$tmp" "$__orig_jsdk_mods"/java.base.jmod || exit $?
rm "$__updated_jsdk_mods"/java.base.jmod || exit $? # temp exclude from path
"$__jsdk"/bin/jmod \
create --module-path "$__updated_jsdk_mods" --hash-modules "$hash_modules" \
--class-path "$tmp"/classes --cmds "$tmp"/bin --config "$tmp"/conf --header-files "$tmp"/include --legal-notice "$tmp"/legal --libs "$tmp"/lib \
java.base.jmod || exit $?
mv java.base.jmod "$__updated_jsdk_mods" || exit $?
rm -rf "$tmp"
}
function get_mods_list() {
__mods=$1
echo $(ls $__mods) | sed s/\.jmod/,/g | sed s/,$//g | sed s/' '//g
}
function copy_jmods() {
__mods_list=$1
__jmods_from=$2
__jmods_to=$3
mkdir -p $__jmods_to
echo "${__mods_list}," | while read -d, mod; do cp $__jmods_from/$mod.jmod $__jmods_to/; done
}

View File

@@ -0,0 +1,159 @@
#!/bin/bash -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
#
# Environment variables:
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
# to configure
# By default JDK_BUILD_NUMBER is set zero
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_linux_aarch64
source jb/project/tools/common/scripts/common.sh
JCEF_PATH=${JCEF_PATH:=./jcef_linux_aarch64}
function do_configure {
sh configure \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build="$JDK_BUILD_NUMBER" \
--with-version-opt=b"$build_number" \
--with-boot-jdk="$BOOT_JDK" \
--enable-cds=yes \
$REPRODUCIBLE_BUILD_OPTS \
|| do_exit $?
}
function is_musl {
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -z $libc ]; then
# This is not Musl, return 1 == false
return 1
fi
return 0
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
libc_type_suffix=''
if is_musl; then libc_type_suffix='musl-' ; fi
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}aarch64-${fastdebug_infix}b${build_number}
echo Running jlink....
[ -d "$IMAGES_DIR"/"$__arch_name" ] && rm -rf "${IMAGES_DIR:?}"/"$__arch_name"
$JSDK/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__arch_name"
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__arch_name"/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__arch_name"/release > release
mv release "$IMAGES_DIR"/"$__arch_name"/release
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__arch_name"/lib
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__arch_name"/jmods
fi
# jmod does not preserve file permissions (JDK-8173610)
[ -f "$IMAGES_DIR"/"$__arch_name"/lib/jcef_helper ] && chmod a+x "$IMAGES_DIR"/"$__arch_name"/lib/jcef_helper
echo Creating "$JBR".tar.gz ...
(cd "$IMAGES_DIR" &&
find "$__arch_name" -print0 | LC_ALL=C sort -z | \
tar $REPRODUCIBLE_TAR_OPTS \
--no-recursion --null -T - -cf "$JBR".tar) || do_exit $?
mv "$IMAGES_DIR"/"$JBR".tar ./"$JBR".tar
[ -f "$JBR".tar.gz ] && rm "$JBR.tar.gz"
touch -c -d "@$SOURCE_DATE_EPOCH" "$JBR".tar
gzip "$JBR".tar || do_exit $?
rm -rf "${IMAGES_DIR:?}"/"$__arch_name"
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=linux-aarch64-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=1
do_maketest=1
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=0
do_reset_changes=0
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=linux-aarch64-server-fastdebug
;;
esac
if [ -z "$INC_BUILD" ]; then
do_configure || do_exit $?
make clean CONF=$RELEASE_NAME || do_exit $?
fi
make images CONF=$RELEASE_NAME || do_exit $?
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$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
jbr_name_postfix="_${bundle_type}"
[ "$bundle_type" != "fd" ] && jbrsdk_name_postfix="_${bundle_type}"
fi
# create runtime image bundle
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat $JSDK/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $?
if [ $do_maketest -eq 1 ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-${libc_type_suffix}test-aarch64-b${build_number}
echo Creating "$JBRSDK_TEST" ...
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
make test-image CONF=$RELEASE_NAME || do_exit $?
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
gzip "$JBRSDK_TEST".tar || do_exit $?
fi
do_exit 0

View File

@@ -0,0 +1,159 @@
#!/bin/bash -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
#
# Environment variables:
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
# to configure
# By default JDK_BUILD_NUMBER is set zero
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_linux_x64
source jb/project/tools/common/scripts/common.sh
JCEF_PATH=${JCEF_PATH:=./jcef_linux_x64}
function do_configure {
sh configure \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build="$JDK_BUILD_NUMBER" \
--with-version-opt=b"$build_number" \
--with-boot-jdk="$BOOT_JDK" \
--enable-cds=yes \
$REPRODUCIBLE_BUILD_OPTS \
|| do_exit $?
}
function is_musl {
libc=$(ldd /bin/ls | grep 'musl' | head -1 | cut -d ' ' -f1)
if [ -z $libc ]; then
# This is not Musl, return 1 == false
return 1
fi
return 0
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
libc_type_suffix=''
if is_musl; then libc_type_suffix='musl-' ; fi
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}x64-${fastdebug_infix}b${build_number}
echo Running jlink....
[ -d "$IMAGES_DIR"/"$__arch_name" ] && rm -rf "${IMAGES_DIR:?}"/"$__arch_name"
$JSDK/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__arch_name"
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__arch_name"/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__arch_name"/release > release
mv release "$IMAGES_DIR"/"$__arch_name"/release
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__arch_name"/lib
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__arch_name"/jmods
fi
# jmod does not preserve file permissions (JDK-8173610)
[ -f "$IMAGES_DIR"/"$__arch_name"/lib/jcef_helper ] && chmod a+x "$IMAGES_DIR"/"$__arch_name"/lib/jcef_helper
echo Creating "$JBR".tar.gz ...
(cd "$IMAGES_DIR" &&
find "$__arch_name" -print0 | LC_ALL=C sort -z | \
tar $REPRODUCIBLE_TAR_OPTS \
--no-recursion --null -T - -cf "$JBR".tar) || do_exit $?
mv "$IMAGES_DIR"/"$JBR".tar ./"$JBR".tar
[ -f "$JBR".tar.gz ] && rm "$JBR.tar.gz"
touch -c -d "@$SOURCE_DATE_EPOCH" "$JBR".tar
gzip "$JBR".tar || do_exit $?
rm -rf "${IMAGES_DIR:?}"/"$__arch_name"
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=linux-x86_64-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=1
do_maketest=1
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=0
do_reset_changes=0
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=linux-x86_64-server-fastdebug
;;
esac
if [ -z "$INC_BUILD" ]; then
do_configure || do_exit $?
make clean CONF=$RELEASE_NAME || do_exit $?
fi
make images CONF=$RELEASE_NAME || do_exit $?
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$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
jbr_name_postfix="_${bundle_type}"
[ "$bundle_type" != "fd" ] && jbrsdk_name_postfix="_${bundle_type}"
fi
# create runtime image bundle
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat $JSDK/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $?
if [ $do_maketest -eq 1 ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-${libc_type_suffix}test-x64-b${build_number}
echo Creating "$JBRSDK_TEST" ...
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
make test-image CONF=$RELEASE_NAME || do_exit $?
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
gzip "$JBRSDK_TEST".tar || do_exit $?
fi
do_exit 0

View File

@@ -0,0 +1,80 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
source jb/project/tools/common/scripts/common.sh
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
[ -z "$bundle_type" ] && (git apply -p0 < jb/project/tools/patches/exclude_jcef_module.patch || exit $?)
linux32 bash configure \
--with-debug-level=release \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-opt=b${build_number} \
--with-boot-jdk=${BOOT_JDK} \
--enable-cds=yes || exit $?
make clean CONF=linux-x86-server-release || exit $?
make images CONF=linux-x86-server-release test-image || exit $?
JBSDK=${JBRSDK_BASE_NAME}-linux-x86-b${build_number}
BASE_DIR=build/linux-x86-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
echo Creating $JBSDK.tar.gz ...
sed 's/JBR/JBRSDK/g' ${BASE_DIR}/${JBRSDK_BUNDLE}/release > release
mv release ${BASE_DIR}/${JBRSDK_BUNDLE}/release
tar -pcf $JBSDK.tar --exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man -C $BASE_DIR ${JBRSDK_BUNDLE} || exit $?
gzip $JBSDK.tar || exit $?
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-$JBSDK_VERSION
rm -rf $BASE_DIR/$JBR_BUNDLE
JBR=$JBR_BASE_NAME-linux-x86-b$build_number
grep -v javafx jb/project/tools/common/modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.x86
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.x86 | sed s/" "//g | sed s/,$//g) --output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
echo Creating $JBR.tar.gz ...
tar -pcf $JBR.tar -C $BASE_DIR $JBR_BUNDLE || exit $?
gzip $JBR.tar || exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-x86-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' --exclude='test/hotspot/gtest' test || exit $?
gzip $JBRSDK_TEST.tar || exit $?

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.cs.disable-executable-page-protection</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,178 @@
#!/bin/bash -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
#
# Environment variables:
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
# to configure
# By default JDK_BUILD_NUMBER is set zero
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_mac
source jb/project/tools/common/scripts/common.sh
JCEF_PATH=${JCEF_PATH:=./jcef_mac}
architecture=${architecture:=x64}
BOOT_JDK=${BOOT_JDK:=$(/usr/libexec/java_home -v 17)}
function do_configure {
if [[ "${architecture}" == *aarch64* ]]; then
sh configure \
$WITH_DEBUG_LEVEL \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-macosx-bundle-name-base=${VENDOR_VERSION_STRING} \
--with-macosx-bundle-id-base="com.jetbrains.jbr" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build="${JDK_BUILD_NUMBER}" \
--with-version-opt=b"${build_number}" \
--with-boot-jdk="$BOOT_JDK" \
--disable-hotspot-gtest --disable-javac-server --disable-full-docs --disable-manpages \
--enable-cds=no \
--with-extra-cflags="-F$(pwd)/Frameworks" \
--with-extra-cxxflags="-F$(pwd)/Frameworks" \
--with-extra-ldflags="-F$(pwd)/Frameworks" \
$REPRODUCIBLE_BUILD_OPTS \
|| do_exit $?
else
sh configure \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-macosx-bundle-name-base=${VENDOR_VERSION_STRING} \
--with-macosx-bundle-id-base="com.jetbrains.jbr" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build="$JDK_BUILD_NUMBER" \
--with-version-opt=b"$build_number" \
--with-boot-jdk="$BOOT_JDK" \
--enable-cds=yes \
$REPRODUCIBLE_BUILD_OPTS \
|| do_exit $?
fi
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
tmp=.bundle.$$.tmp
mkdir "$tmp" || do_exit $?
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-osx-${architecture}-${fastdebug_infix}b${build_number}
JRE_CONTENTS=$tmp/$__arch_name/Contents
mkdir -p "$JRE_CONTENTS" || do_exit $?
echo Running jlink...
"$JSDK"/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
--add-modules "$__modules" --output "$JRE_CONTENTS/Home" || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$JRE_CONTENTS/Home/release"
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $JRE_CONTENTS/Home/release > release
mv release $JRE_CONTENTS/Home/release
cp $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home/lib/src.zip $JRE_CONTENTS/Home/lib
copy_jmods "$__modules" "$__modules_path" "$JRE_CONTENTS"/Home/jmods
fi
cp -R "$JSDK"/../MacOS "$JRE_CONTENTS"
cp "$JSDK"/../Info.plist "$JRE_CONTENTS"
[ -n "$bundle_type" ] && (cp -a $JCEF_PATH/Frameworks "$JRE_CONTENTS" || do_exit $?)
echo Creating "$JBR".tar.gz ...
# Normalize timestamp
find "$tmp"/"$__arch_name" -print0 | xargs -0 touch -c -h -t "$TOUCH_TIME"
(cd "$tmp" &&
find "$__arch_name" -print0 | LC_ALL=C sort -z | \
COPYFILE_DISABLE=1 tar $REPRODUCIBLE_TAR_OPTS --no-recursion --null -T - \
-czf "$JBR".tar.gz --exclude='*.dSYM' --exclude='man') || do_exit $?
mv "$tmp"/"$JBR".tar.gz "$JBR".tar.gz
rm -rf "$tmp"
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
CONF_ARCHITECTURE=x86_64
if [[ "${architecture}" == *aarch64* ]]; then
CONF_ARCHITECTURE=aarch64
fi
RELEASE_NAME=macosx-${CONF_ARCHITECTURE}-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=1
do_maketest=1
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=0
do_reset_changes=0
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=macosx-${CONF_ARCHITECTURE}-server-fastdebug
JBSDK=macosx-${architecture}-server-release
;;
esac
if [ -z "$INC_BUILD" ]; then
do_configure || do_exit $?
make clean CONF=$RELEASE_NAME || do_exit $?
fi
make images CONF=$RELEASE_NAME || do_exit $?
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$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
jbr_name_postfix="_${bundle_type}"
fi
# create runtime image bundle
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat "$JSDK"/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
if [ $do_maketest -eq 1 ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-osx-test-${architecture}-b${build_number}
echo Creating "$JBRSDK_TEST" ...
[ $do_reset_changes -eq 1 ] && git checkout HEAD jb/project/tools/common/modules.list src/java.desktop/share/classes/module-info.java
make test-image CONF=$RELEASE_NAME || do_exit $?
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
COPYFILE_DISABLE=1 tar -pczf "$JBRSDK_TEST".tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
fi
do_exit 0

View File

@@ -0,0 +1,118 @@
#!/bin/bash -x
APP_DIRECTORY=$1
APPL_USER=$2
APPL_PASSWORD=$3
APP_NAME=$4
BUNDLE_ID=$5
FAKE_ROOT="${6:-fake-root}"
if [[ -z "$APP_DIRECTORY" ]] || [[ -z "$APPL_USER" ]] || [[ -z "$APPL_PASSWORD" ]]; then
echo "Usage: $0 AppDirectory Username Password"
exit 1
fi
if [[ ! -d "$APP_DIRECTORY" ]]; then
echo "AppDirectory '$APP_DIRECTORY' does not exist or not a directory"
exit 1
fi
function log() {
echo "$(date '+[%H:%M:%S]') $*"
}
function publish-log() {
id=$1
file=$2
curl -T "$file" "$ARTIFACTORY_URL/$id" || true
}
function altool-upload() {
# Since altool uses same file for upload token we have to trick it into using different folders for token file location
# Also it copies zip into TMPDIR so we override it too, to simplify cleanup
OLD_HOME="$HOME"
export HOME="$FAKE_ROOT/home"
export TMPDIR="$FAKE_ROOT/tmp"
mkdir -p "$HOME"
mkdir -p "$TMPDIR"
export _JAVA_OPTIONS="-Duser.home=$HOME -Djava.io.tmpdir=$TMPDIR"
# Reduce amount of downloads, cache transporter libraries
shared_itmstransporter="$OLD_HOME/shared-itmstransporter"
if [[ -f "$shared_itmstransporter" ]]; then
cp -r "$shared_itmstransporter" "$HOME/.itmstransporter"
fi
# For some reason altool prints everything to stderr, not stdout
set +e
xcrun altool --notarize-app \
--username "$APPL_USER" --password "$APPL_PASSWORD" \
--primary-bundle-id "$BUNDLE_ID" \
--asc-provider JetBrainssro --file "$1" 2>&1 | tee "altool.init.out"
unset TMPDIR
export HOME="$OLD_HOME"
set -e
}
#immediately exit script with an error if a command fails
set -euo pipefail
#file="$APP_NAME.zip"
#log "Zipping $file..."
#rm -rf "$file"
#ditto -c -k --sequesterRsrc --keepParent "$APP_DIRECTORY" "$file"
log "Notarizing $APP_NAME..."
rm -rf "altool.init.out" "altool.check.out"
altool-upload "$APP_NAME"
notarization_info="$(grep -e "RequestUUID" "altool.init.out" | grep -oE '([0-9a-f-]{36})')"
if [ -z "$notarization_info" ]; then
log "Faile to read RequestUUID from altool.init.out"
exit 10
fi
PATH="$PATH:/usr/local/bin/"
log "Notarization request sent, awaiting response"
spent=0
while true; do
# For some reason altool prints everything to stderr, not stdout
xcrun altool --username "$APPL_USER" --notarization-info "$notarization_info" --password "$APPL_PASSWORD" >"altool.check.out" 2>&1 || true
status="$(grep -oe 'Status: .*' "altool.check.out" | cut -c 9- || true)"
log "Current status: $status"
if [ "$status" = "invalid" ]; then
log "Notarization failed"
ec=1
elif [ "$status" = "success" ]; then
log "Notarization succeeded"
ec=0
else
if [ "$status" != "in progress" ]; then
log "Unknown notarization status, waiting more, altool output:"
cat "altool.check.out"
fi
if [[ $spent -gt 60 ]]; then
log "Waiting time out (apx 60 minutes)"
ec=2
break
fi
sleep 60
((spent += 1))
continue
fi
developer_log="developer_log.json"
log "Fetching $developer_log"
# TODO: Replace cut with trim or something better
url="$(grep -oe 'LogFileURL: .*' "altool.check.out" | cut -c 13-)"
wget "$url" -O "$developer_log" && cat "$developer_log" || true
if [ $ec != 0 ]; then
log "Publishing $developer_log"
publish-log "$notarization_info" "$developer_log"
fi
break
done
cat "altool.check.out"
rm -rf "altool.init.out" "altool.check.out"
exit $ec

View File

@@ -0,0 +1,111 @@
#!/bin/bash -x
APPLICATION_PATH=$1
APP_NAME=$2
BUNDLE_ID=$3
JB_DEVELOPER_CERT=$4
JB_INSTALLER_CERT=$5
if [[ -z "$APPLICATION_PATH" ]] || [[ -z "$JB_DEVELOPER_CERT" ]]; then
echo "Usage: $0 AppDirectory CertificateID"
exit 1
fi
if [[ ! -d "$APPLICATION_PATH" ]]; then
echo "AppDirectory '$APPLICATION_PATH' does not exist or not a directory"
exit 1
fi
function log() {
echo "$(date '+[%H:%M:%S]') $*"
}
#immediately exit script with an error if a command fails
set -euo pipefail
# Cleanup files left from previous sign attempt (if any)
find "$APPLICATION_PATH" -name '*.cstemp' -exec rm '{}' \;
log "Signing libraries and executables..."
# -perm +111 searches for executables
for f in \
"Contents/Home/lib" "Contents/MacOS" \
"Contents/Home/Frameworks" \
"Contents/Frameworks"; do
if [ -d "$APPLICATION_PATH/$f" ]; then
find "$APPLICATION_PATH/$f" \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "*.tbd" -o -name "*.node" -o -perm +111 \) \
-exec codesign --timestamp \
-v -s "$JB_DEVELOPER_CERT" --options=runtime --force \
--entitlements entitlements.xml {} \;
fi
done
log "Signing libraries in jars in $PWD"
# todo: add set -euo pipefail; into the inner sh -c
# `-e` prevents `grep -q && printf` loginc
# with `-o pipefail` there's no input for 'while' loop
find "$APPLICATION_PATH" -name '*.jar' \
-exec sh -c "set -u; unzip -l \"\$0\" | grep -q -e '\.dylib\$' -e '\.jnilib\$' -e '\.so\$' -e '\.tbd\$' -e '^jattach\$' && printf \"\$0\0\" " {} \; |
while IFS= read -r -d $'\0' file; do
log "Processing libraries in $file"
rm -rf jarfolder jar.jar
mkdir jarfolder
filename="${file##*/}"
log "Filename: $filename"
cp "$file" jarfolder && (cd jarfolder && jar xf "$filename" && rm "$filename")
find jarfolder \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "*.tbd" -o -name "jattach" \) \
-exec codesign --timestamp \
--force \
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
--entitlements entitlements.xml {} \;
(cd jarfolder; zip -q -r -o -0 ../jar.jar .)
mv jar.jar "$file"
done
rm -rf jarfolder jar.jar
log "Signing other files..."
for f in \
"Contents/Home/bin"; do
if [ -d "$APPLICATION_PATH/$f" ]; then
find "$APPLICATION_PATH/$f" \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "*.tbd" -o -perm +111 \) \
-exec codesign --timestamp \
-v -s "$JB_DEVELOPER_CERT" --options=runtime --force \
--entitlements entitlements.xml {} \;
fi
done
#log "Signing executable..."
#codesign --timestamp \
# -v -s "$JB_DEVELOPER_CERT" --options=runtime \
# --force \
# --entitlements entitlements.xml "$APPLICATION_PATH/Contents/MacOS/idea"
log "Signing whole app..."
codesign --timestamp \
-v -s "$JB_DEVELOPER_CERT" --options=runtime \
--force \
--entitlements entitlements.xml "$APPLICATION_PATH"
BUILD_NAME=$(echo $APPLICATION_PATH | awk -F"/" '{ print $2 }')
log "Creating $APP_NAME.pkg..."
rm -rf "$APP_NAME.pkg"
pkgbuild --identifier $BUNDLE_ID --sign "$JB_INSTALLER_CERT" --root $APPLICATION_PATH \
--install-location /Library/Java/JavaVirtualMachines/${BUILD_NAME} ${APP_NAME}.pkg
#log "Signing whole app..."
#codesign --timestamp \
# -v -s "$JB_DEVELOPER_CERT" --options=runtime \
# --force \
# --entitlements entitlements.xml $APP_NAME.pkg
log "Verifying java is not broken"
find "$APPLICATION_PATH" \
-type f -name 'java' -perm +111 -exec {} -version \;

View File

@@ -0,0 +1,138 @@
#!/bin/bash -x
#immediately exit script with an error if a command fails
set -euo pipefail
export COPY_EXTENDED_ATTRIBUTES_DISABLE=true
export COPYFILE_DISABLE=true
INPUT_FILE=$1
EXPLODED=$2.exploded
BACKUP_JMODS=$2.backup
USERNAME=$3
PASSWORD=$4
CODESIGN_STRING=$5
JB_INSTALLER_CERT=$6
NOTARIZE=$7
BUNDLE_ID=$8
cd "$(dirname "$0")"
function log() {
echo "$(date '+[%H:%M:%S]') $*"
}
log "Deleting $EXPLODED ..."
if test -d "$EXPLODED"; then
find "$EXPLODED" -mindepth 1 -maxdepth 1 -exec chmod -R u+wx '{}' \;
fi
rm -rf "$EXPLODED"
mkdir "$EXPLODED"
rm -rf "$BACKUP_JMODS"
mkdir "$BACKUP_JMODS"
log "Unzipping $INPUT_FILE to $EXPLODED ..."
tar -xzvf "$INPUT_FILE" --directory $EXPLODED
BUILD_NAME="$(ls "$EXPLODED")"
#sed -i '' s/BNDL/APPL/ $EXPLODED/$BUILD_NAME/Contents/Info.plist
rm -f $EXPLODED/$BUILD_NAME/Contents/CodeResources
rm "$INPUT_FILE"
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/jmods; then
mv $EXPLODED/$BUILD_NAME/Contents/Home/jmods $BACKUP_JMODS
fi
log "$INPUT_FILE extracted and removed"
APP_NAME=$(echo ${INPUT_FILE} | awk -F".tar" '{ print $1 }')
APPLICATION_PATH=$(sed "s/osx-//" <<< "$EXPLODED/$APP_NAME")
mv $EXPLODED/$BUILD_NAME $APPLICATION_PATH
find "$APPLICATION_PATH/Contents/Home/bin" \
-maxdepth 1 -type f -name '*.jnilib' -print0 |
while IFS= read -r -d $'\0' file; do
if [ -f "$file" ]; then
log "Linking $file"
b="$(basename "$file" .jnilib)"
ln -sf "$b.jnilib" "$(dirname "$file")/$b.dylib"
fi
done
find "$APPLICATION_PATH/Contents/" \
-maxdepth 1 -type f -name '*.txt' -print0 |
while IFS= read -r -d $'\0' file; do
if [ -f "$file" ]; then
log "Moving $file"
mv "$file" "$APPLICATION_PATH/Contents/Resources"
fi
done
non_plist=$(find "$APPLICATION_PATH/Contents/" -maxdepth 1 -type f -and -not -name 'Info.plist' | wc -l)
if [[ $non_plist -gt 0 ]]; then
log "Only Info.plist file is allowed in Contents directory but found $non_plist file(s):"
log "$(find "$APPLICATION_PATH/Contents/" -maxdepth 1 -type f -and -not -name 'Info.plist')"
exit 1
fi
log "Unlocking keychain..."
# Make sure *.p12 is imported into local KeyChain
security unlock-keychain -p "$PASSWORD" "/Users/$USERNAME/Library/Keychains/login.keychain"
attempt=1
limit=3
set +e
while [[ $attempt -le $limit ]]; do
log "Signing (attempt $attempt) $APPLICATION_PATH ..."
./sign.sh "$APPLICATION_PATH" "$APP_NAME" "$BUNDLE_ID" "$CODESIGN_STRING" "$JB_INSTALLER_CERT"
ec=$?
if [[ $ec -ne 0 ]]; then
((attempt += 1))
if [ $attempt -eq $limit ]; then
set -e
fi
log "Signing failed, wait for 30 sec and try to sign again"
sleep 30
else
log "Signing done"
codesign -v "$APPLICATION_PATH" -vvvvv
log "Check sign done"
spctl -a -v $APPLICATION_PATH
((attempt += limit))
fi
done
set -e
if [ "$NOTARIZE" = "yes" ]; then
log "Notarizing..."
# shellcheck disable=SC1090
source "$HOME/.notarize_token"
# Since notarization tool uses same file for upload token we have to trick it into using different folders, hence fake root
# Also it leaves copy of zip file in TMPDIR, so notarize.sh overrides it and uses FAKE_ROOT as location for temp TMPDIR
FAKE_ROOT="$(pwd)/fake-root"
mkdir -p "$FAKE_ROOT"
echo "Notarization will use fake root: $FAKE_ROOT"
./notarize.sh "$APPLICATION_PATH" "$APPLE_USERNAME" "$APPLE_PASSWORD" "$APP_NAME.pkg" "$BUNDLE_ID" "$FAKE_ROOT"
rm -rf "$FAKE_ROOT"
set +e
log "Stapling..."
xcrun stapler staple "$APPLICATION_PATH"
else
log "Notarization disabled"
log "Stapling disabled"
fi
log "Zipping $BUILD_NAME to $INPUT_FILE ..."
(
#cd "$EXPLODED"
#ditto -c -k --sequesterRsrc --keepParent "$BUILD_NAME" "../$INPUT_FILE"
if test -d $BACKUP_JMODS/jmods; then
mv $BACKUP_JMODS/jmods $APPLICATION_PATH/Contents/Home
fi
mv $APPLICATION_PATH $EXPLODED/$BUILD_NAME
tar -pczvf $INPUT_FILE --exclude='man' -C $EXPLODED $BUILD_NAME
log "Finished zipping"
)
rm -rf "$EXPLODED"
log "Done"

View File

@@ -0,0 +1,30 @@
diff --git jb/project/tools/common/modules.list jb/project/tools/common/modules.list
index 522acb7cb43..c40e689d5de 100644
--- jb/project/tools/common/modules.list
+++ jb/project/tools/common/modules.list
@@ -51,4 +51,7 @@ jdk.unsupported.desktop,
jdk.xml.dom,
jdk.zipfs,
jdk.hotspot.agent,
-jdk.jcmd
+jdk.jcmd,
+jcef,
+gluegen.rt,
+jogl.all
diff --git src/java.desktop/share/classes/module-info.java src/java.desktop/share/classes/module-info.java
index 897647ee368..781d1809493 100644
--- src/java.desktop/share/classes/module-info.java
+++ src/java.desktop/share/classes/module-info.java
@@ -116,7 +116,11 @@ module java.desktop {
// see make/GensrcModuleInfo.gmk
exports sun.awt to
jdk.accessibility,
- jdk.unsupported.desktop;
+ jdk.unsupported.desktop,
+ jcef,
+ jogl.all;
+
+ exports java.awt.peer to jcef;
exports java.awt.dnd.peer to jdk.unsupported.desktop;
exports sun.awt.dnd to jdk.unsupported.desktop;

View File

@@ -0,0 +1,30 @@
diff --git jb/project/tools/common/modules.list jb/project/tools/common/modules.list
index 522acb7..c40e689 100644
--- jb/project/tools/common/modules.list
+++ jb/project/tools/common/modules.list
@@ -51,4 +51,7 @@ jdk.unsupported.desktop,
jdk.xml.dom,
jdk.zipfs,
jdk.hotspot.agent,
-jdk.jcmd
+jdk.jcmd,
+jcef,
+gluegen.rt,
+jogl.all
diff --git src/java.desktop/share/classes/module-info.java src/java.desktop/share/classes/module-info.java
index 897647e..781d180 100644
--- src/java.desktop/share/classes/module-info.java
+++ src/java.desktop/share/classes/module-info.java
@@ -116,7 +116,11 @@ module java.desktop {
// see make/GensrcModuleInfo.gmk
exports sun.awt to
jdk.accessibility,
- jdk.unsupported.desktop;
+ jdk.unsupported.desktop,
+ jcef,
+ jogl.all;
+
+ exports java.awt.peer to jcef;
exports java.awt.dnd.peer to jdk.unsupported.desktop;
exports sun.awt.dnd to jdk.unsupported.desktop;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,29 @@
From 960dafbeeba190911955c208b611fecc15d66738 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 11 Mar 2020 14:19:34 +0100
Subject: [PATCH 03/34] Fix class cast exception on redefinition of class A,
that is superclass of B that has anonymous class C
---
src/hotspot/share/oops/instanceKlass.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index 994fc8a3bc8..3be3a09ef8f 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -953,7 +953,10 @@ bool InstanceKlass::link_class_impl(TRAPS) {
if (!is_linked()) {
if (!is_rewritten()) {
- {
+ // (DCEVM): If class A is being redefined and class B->A (B is extended from A) and B is host class of anonymous class C
+ // then second redefinition fails with cannot cast klass exception. So we currently turn off bytecode verification
+ // on redefinition.
+ if (!AllowEnhancedClassRedefinition || !newest_version()->is_redefining()) {
bool verify_ok = verify_code(THREAD);
if (!verify_ok) {
return false;
--
2.23.0

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,240 @@
From 39df5f163d4a0f1fd6b92313a5570808f19d5e20 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 4 Oct 2020 21:12:12 +0200
Subject: [PATCH 05/34] Support for Lambda class redefinition
---
.../share/classfile/classLoaderData.cpp | 9 +++
.../share/classfile/classLoaderData.hpp | 2 +-
.../share/classfile/systemDictionary.cpp | 12 +++-
.../share/classfile/systemDictionary.hpp | 1 +
.../prims/jvmtiEnhancedRedefineClasses.cpp | 65 +++++++++++++++++--
.../prims/jvmtiEnhancedRedefineClasses.hpp | 1 +
.../share/prims/resolvedMethodTable.cpp | 2 +
src/hotspot/share/prims/unsafe.cpp | 1 +
8 files changed, 83 insertions(+), 10 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 0cd90bb8c27..4d64c6b454a 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -593,6 +593,15 @@ Dictionary* ClassLoaderData::create_dictionary() {
return new Dictionary(this, size, resizable);
}
+void ClassLoaderData::exchange_holders(ClassLoaderData* cld) {
+ oop holder_oop = _holder.peek();
+ _holder.replace(cld->_holder.peek());
+ cld->_holder.replace(holder_oop);
+ WeakHandle<vm_class_loader_data> exchange = _holder;
+ _holder = cld->_holder;
+ cld->_holder = exchange;
+}
+
// Tell the GC to keep this klass alive while iterating ClassLoaderDataGraph
oop ClassLoaderData::holder_phantom() const {
// A klass that was previously considered dead can be looked up in the
diff --git a/src/hotspot/share/classfile/classLoaderData.hpp b/src/hotspot/share/classfile/classLoaderData.hpp
index ba2393f8dd0..e2ae0a77351 100644
--- a/src/hotspot/share/classfile/classLoaderData.hpp
+++ b/src/hotspot/share/classfile/classLoaderData.hpp
@@ -181,7 +181,7 @@ class ClassLoaderData : public CHeapObj<mtClass> {
bool has_accumulated_modified_oops() { return _accumulated_modified_oops; }
oop holder_no_keepalive() const;
oop holder_phantom() const;
-
+ void exchange_holders(ClassLoaderData* cld);
private:
void unload();
bool keep_alive() const { return _keep_alive > 0; }
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index bd0cae7cb9b..8f2b46add4d 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -1062,10 +1062,14 @@ InstanceKlass* SystemDictionary::parse_stream(Symbol* class_name,
Handle class_loader,
ClassFileStream* st,
const ClassLoadInfo& cl_info,
+ InstanceKlass* old_klass,
TRAPS) {
EventClassLoad class_load_start_event;
ClassLoaderData* loader_data;
+
+ bool is_redefining = (old_klass != NULL);
+
bool is_unsafe_anon_class = cl_info.unsafe_anonymous_host() != NULL;
// - for unsafe anonymous class: create a new CLD whith a class holder that uses
@@ -1094,8 +1098,12 @@ InstanceKlass* SystemDictionary::parse_stream(Symbol* class_name,
class_name,
loader_data,
cl_info,
- false, // pick_newest
+ is_redefining, // pick_newest
CHECK_NULL);
+ if (is_redefining && k != NULL) {
+ k->set_redefining(true);
+ k->set_old_version(old_klass);
+ }
if ((cl_info.is_hidden() || is_unsafe_anon_class) && k != NULL) {
// Hidden classes that are not strong and unsafe anonymous classes must update
@@ -1998,7 +2006,7 @@ void SystemDictionary::remove_from_hierarchy(InstanceKlass* k) {
k->remove_from_sibling_list();
}
-// (DCEVM)
+// (DCEVM)
void SystemDictionary::update_constraints_after_redefinition() {
constraints()->update_after_redefinition();
}
diff --git a/src/hotspot/share/classfile/systemDictionary.hpp b/src/hotspot/share/classfile/systemDictionary.hpp
index 4547449dbec..931e655d631 100644
--- a/src/hotspot/share/classfile/systemDictionary.hpp
+++ b/src/hotspot/share/classfile/systemDictionary.hpp
@@ -329,6 +329,7 @@ public:
Handle class_loader,
ClassFileStream* st,
const ClassLoadInfo& cl_info,
+ InstanceKlass* old_klass,
TRAPS);
// Resolve from stream (called by jni_DefineClass and JVM_DefineClass)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 92ce6c27b8a..8b765623dcd 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -494,6 +494,8 @@ void VM_EnhancedRedefineClasses::doit() {
ClassLoaderDataGraph::classes_do(&clear_cpool_cache);
+ // SystemDictionary::methods_do(fix_invoke_method);
+
// JSR-292 support
if (_any_class_has_resolved_methods) {
bool trace_name_printed = false;
@@ -756,12 +758,34 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
// load hook event.
state->set_class_being_redefined(the_class, _class_load_kind);
- InstanceKlass* k = SystemDictionary::resolve_from_stream(the_class_sym,
- the_class_loader,
- protection_domain,
- &st,
- the_class,
- THREAD);
+ InstanceKlass* k;
+
+ if (InstanceKlass::cast(the_class)->is_anonymous()) {
+ const InstanceKlass* host_class = the_class->host_klass();
+
+ // Make sure it's the real host class, not another anonymous class.
+ while (host_class != NULL && host_class->is_anonymous()) {
+ host_class = host_class->host_klass();
+ }
+
+ k = SystemDictionary::parse_stream(the_class_sym,
+ the_class_loader,
+ protection_domain,
+ &st,
+ host_class,
+ the_class,
+ NULL,
+ THREAD);
+ k->class_loader_data()->exchange_holders(the_class->class_loader_data());
+ the_class->class_loader_data()->inc_keep_alive();
+ } else {
+ k = SystemDictionary::resolve_from_stream(the_class_sym,
+ the_class_loader,
+ protection_domain,
+ &st,
+ the_class,
+ THREAD);
+ }
// Clear class_being_redefined just to be sure.
state->clear_class_being_redefined();
@@ -1442,6 +1466,30 @@ void VM_EnhancedRedefineClasses::MethodDataCleaner::do_klass(Klass* k) {
}
}
+void VM_EnhancedRedefineClasses::fix_invoke_method(Method* method) {
+
+ constantPoolHandle other_cp = constantPoolHandle(method->constants());
+
+ for (int i = 0; i < other_cp->length(); i++) {
+ if (other_cp->tag_at(i).is_klass()) {
+ Klass* klass = other_cp->resolved_klass_at(i);
+ if (klass->new_version() != NULL) {
+ // Constant pool entry points to redefined class -- update to the new version
+ other_cp->klass_at_put(i, klass->newest_version());
+ }
+ assert(other_cp->resolved_klass_at(i)->new_version() == NULL, "Must be new klass!");
+ }
+ }
+
+ ConstantPoolCache* cp_cache = other_cp->cache();
+ if (cp_cache != NULL) {
+ cp_cache->clear_entries();
+ }
+
+}
+
+
+
void VM_EnhancedRedefineClasses::update_jmethod_ids() {
for (int j = 0; j < _matching_methods_length; ++j) {
Method* old_method = _matching_old_methods[j];
@@ -1979,7 +2027,10 @@ jvmtiError VM_EnhancedRedefineClasses::find_sorted_affected_classes(TRAPS) {
// Find classes not directly redefined, but affected by a redefinition (because one of its supertypes is redefined)
AffectedKlassClosure closure(_affected_klasses);
// Updated in j10, from original SystemDictionary::classes_do
- ClassLoaderDataGraph::dictionary_classes_do(&closure);
+
+ ClassLoaderDataGraph::classes_do(&closure);
+ //ClassLoaderDataGraph::dictionary_classes_do(&closure);
+
log_trace(redefine, class, load)("%d classes affected", _affected_klasses->length());
// Sort the affected klasses such that a supertype is always on a smaller array index than its subtype.
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 60b62c3170a..d8a11b51fe9 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -116,6 +116,7 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
void rollback();
static void mark_as_scavengable(nmethod* nm);
static void unpatch_bytecode(Method* method);
+ static void fix_invoke_method(Method* method);
// Figure out which new methods match old methods in name and signature,
// which methods have been added, and which are no longer present
diff --git a/src/hotspot/share/prims/resolvedMethodTable.cpp b/src/hotspot/share/prims/resolvedMethodTable.cpp
index 122bb8c186b..81b3aa96564 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -414,6 +414,8 @@ void ResolvedMethodTable::adjust_method_entries_dcevm(bool * trace_name_printed)
InstanceKlass* newer_klass = InstanceKlass::cast(old_method->method_holder()->new_version());
Method* newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
+ log_info(redefine, class, load, exceptions)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
+
assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
assert(newer_method != NULL, "method_with_idnum() should not be NULL");
assert(old_method != newer_method, "sanity check");
diff --git a/src/hotspot/share/prims/unsafe.cpp b/src/hotspot/share/prims/unsafe.cpp
index 72d81ec9d6c..027afa3fabd 100644
--- a/src/hotspot/share/prims/unsafe.cpp
+++ b/src/hotspot/share/prims/unsafe.cpp
@@ -865,6 +865,7 @@ Unsafe_DefineAnonymousClass_impl(JNIEnv *env,
host_loader,
&st,
cl_info,
+ NULL,
CHECK_NULL);
if (anonk == NULL) {
return NULL;
--
2.23.0

View File

@@ -0,0 +1,135 @@
From 5af1daedc86b5fec0f222cbdda3afbdf518985ea Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 23 May 2020 10:02:15 +0200
Subject: [PATCH 06/34] Fix "no original bytecode found" error if method with
bkp is missing
Sometimes IDE can deploy class with erroneous method, such method has
n bytecode, but breakpoint position can still exist.
---
src/hotspot/share/interpreter/bytecodes.cpp | 2 +-
.../share/interpreter/interpreterRuntime.cpp | 2 +-
src/hotspot/share/oops/method.cpp | 8 ++++----
src/hotspot/share/oops/method.hpp | 4 ++--
.../prims/jvmtiEnhancedRedefineClasses.cpp | 18 ++++++++++--------
5 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/src/hotspot/share/interpreter/bytecodes.cpp b/src/hotspot/share/interpreter/bytecodes.cpp
index e377e36b88c..262ecc021b2 100644
--- a/src/hotspot/share/interpreter/bytecodes.cpp
+++ b/src/hotspot/share/interpreter/bytecodes.cpp
@@ -84,7 +84,7 @@ Bytecodes::Code Bytecodes::code_at(Method* method, int bci) {
Bytecodes::Code Bytecodes::non_breakpoint_code_at(const Method* method, address bcp) {
assert(method != NULL, "must have the method for breakpoint conversion");
assert(method->contains(bcp), "must be valid bcp in method");
- return method->orig_bytecode_at(method->bci_from(bcp));
+ return method->orig_bytecode_at(method->bci_from(bcp), false);
}
int Bytecodes::special_length_at(Bytecodes::Code code, address bcp, address end) {
diff --git a/src/hotspot/share/interpreter/interpreterRuntime.cpp b/src/hotspot/share/interpreter/interpreterRuntime.cpp
index ed3cc3eb6a2..504e59caf51 100644
--- a/src/hotspot/share/interpreter/interpreterRuntime.cpp
+++ b/src/hotspot/share/interpreter/interpreterRuntime.cpp
@@ -814,7 +814,7 @@ JRT_END
// Invokes
JRT_ENTRY(Bytecodes::Code, InterpreterRuntime::get_original_bytecode_at(JavaThread* thread, Method* method, address bcp))
- return method->orig_bytecode_at(method->bci_from(bcp));
+ return method->orig_bytecode_at(method->bci_from(bcp), false);
JRT_END
JRT_ENTRY(void, InterpreterRuntime::set_original_bytecode_at(JavaThread* thread, Method* method, address bcp, Bytecodes::Code new_code))
diff --git a/src/hotspot/share/oops/method.cpp b/src/hotspot/share/oops/method.cpp
index 516f2bb8f2f..1c88511a5fc 100644
--- a/src/hotspot/share/oops/method.cpp
+++ b/src/hotspot/share/oops/method.cpp
@@ -1853,14 +1853,14 @@ bool CompressedLineNumberReadStream::read_pair() {
#if INCLUDE_JVMTI
-Bytecodes::Code Method::orig_bytecode_at(int bci) const {
+Bytecodes::Code Method::orig_bytecode_at(int bci, bool no_fatal) const {
BreakpointInfo* bp = method_holder()->breakpoints();
for (; bp != NULL; bp = bp->next()) {
if (bp->match(this, bci)) {
return bp->orig_bytecode();
}
}
- {
+ if (!no_fatal) {
ResourceMark rm;
fatal("no original bytecode found in %s at bci %d", name_and_sig_as_C_string(), bci);
}
@@ -2006,7 +2006,7 @@ BreakpointInfo::BreakpointInfo(Method* m, int bci) {
_signature_index = m->signature_index();
_orig_bytecode = (Bytecodes::Code) *m->bcp_from(_bci);
if (_orig_bytecode == Bytecodes::_breakpoint)
- _orig_bytecode = m->orig_bytecode_at(_bci);
+ _orig_bytecode = m->orig_bytecode_at(_bci, false);
_next = NULL;
}
@@ -2015,7 +2015,7 @@ void BreakpointInfo::set(Method* method) {
{
Bytecodes::Code code = (Bytecodes::Code) *method->bcp_from(_bci);
if (code == Bytecodes::_breakpoint)
- code = method->orig_bytecode_at(_bci);
+ code = method->orig_bytecode_at(_bci, false);
assert(orig_bytecode() == code, "original bytecode must be the same");
}
#endif
diff --git a/src/hotspot/share/oops/method.hpp b/src/hotspot/share/oops/method.hpp
index 83ed2d9c3c1..4d4cc6dc012 100644
--- a/src/hotspot/share/oops/method.hpp
+++ b/src/hotspot/share/oops/method.hpp
@@ -230,7 +230,7 @@ class Method : public Metadata {
// JVMTI breakpoints
#if !INCLUDE_JVMTI
- Bytecodes::Code orig_bytecode_at(int bci) const {
+ Bytecodes::Code orig_bytecode_at(int bci, bool no_fatal) const {
ShouldNotReachHere();
return Bytecodes::_shouldnotreachhere;
}
@@ -239,7 +239,7 @@ class Method : public Metadata {
};
u2 number_of_breakpoints() const {return 0;}
#else // !INCLUDE_JVMTI
- Bytecodes::Code orig_bytecode_at(int bci) const;
+ Bytecodes::Code orig_bytecode_at(int bci, bool no_fatal) const;
void set_orig_bytecode_at(int bci, Bytecodes::Code code);
void set_breakpoint(int bci);
void clear_breakpoint(int bci);
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 8b765623dcd..a859b8e1162 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -1362,14 +1362,16 @@ void VM_EnhancedRedefineClasses::unpatch_bytecode(Method* method) {
if (code == Bytecodes::_breakpoint) {
int bci = method->bci_from(bcp);
- code = method->orig_bytecode_at(bci);
- java_code = Bytecodes::java_code(code);
- if (code != java_code &&
- (java_code == Bytecodes::_getfield ||
- java_code == Bytecodes::_putfield ||
- java_code == Bytecodes::_aload_0)) {
- // Let breakpoint table handling unpatch bytecode
- method->set_orig_bytecode_at(bci, java_code);
+ code = method->orig_bytecode_at(bci, true);
+ if (code != Bytecodes::_shouldnotreachhere) {
+ java_code = Bytecodes::java_code(code);
+ if (code != java_code &&
+ (java_code == Bytecodes::_getfield ||
+ java_code == Bytecodes::_putfield ||
+ java_code == Bytecodes::_aload_0)) {
+ // Let breakpoint table handling unpatch bytecode
+ method->set_orig_bytecode_at(bci, java_code);
+ }
}
} else {
java_code = Bytecodes::java_code(code);
--
2.23.0

View File

@@ -0,0 +1,57 @@
From 19d2274a5dff6e6b31474252b45e5e7484f0180b Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 24 May 2020 12:07:42 +0200
Subject: [PATCH 07/34] Replace deleted method with
Universe::throw_no_such_method_error
---
.../share/prims/resolvedMethodTable.cpp | 28 +++++++++----------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/hotspot/share/prims/resolvedMethodTable.cpp b/src/hotspot/share/prims/resolvedMethodTable.cpp
index 81b3aa96564..caf03ffe56d 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -404,25 +404,25 @@ void ResolvedMethodTable::adjust_method_entries_dcevm(bool * trace_name_printed)
if (old_method->is_old()) {
+ InstanceKlass* newer_klass = InstanceKlass::cast(old_method->method_holder()->new_version());
+ Method* newer_method;
+
// Method* new_method;
if (old_method->is_deleted()) {
- // FIXME:(DCEVM) - check if exception can be thrown
- // new_method = Universe::throw_no_such_method_error();
- continue;
- }
-
- InstanceKlass* newer_klass = InstanceKlass::cast(old_method->method_holder()->new_version());
- Method* newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
+ newer_method = Universe::throw_no_such_method_error();
+ } else {
+ newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
- log_info(redefine, class, load, exceptions)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
+ log_info(redefine, class, load, exceptions)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
- assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
- assert(newer_method != NULL, "method_with_idnum() should not be NULL");
- assert(old_method != newer_method, "sanity check");
+ assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
+ assert(newer_method != NULL, "method_with_idnum() should not be NULL");
+ assert(old_method != newer_method, "sanity check");
- if (_the_table->lookup(newer_method) != NULL) {
- // old method was already adjusted if new method exists in _the_table
- continue;
+ if (_the_table->lookup(newer_method) != NULL) {
+ // old method was already adjusted if new method exists in _the_table
+ continue;
+ }
}
java_lang_invoke_ResolvedMethodName::set_vmtarget(mem_name, newer_method);
--
2.23.0

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,50 @@
From ca47ab5a0a6ce8e2644736f323a335a957311af9 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 13 Jun 2020 18:50:59 +0200
Subject: [PATCH 09/34] Change log level in advanced redefinition
- Change log level for "Comparing different class ver.." to debug
- Fix adjust_method_entries_dcevm logging levels and severity
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 2 +-
src/hotspot/share/prims/resolvedMethodTable.cpp | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 6c9eb40ecf5..b09ba554e07 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -916,7 +916,7 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
// Calculated the difference between new and old class (field change, method change, supertype change, ...).
int VM_EnhancedRedefineClasses::calculate_redefinition_flags(InstanceKlass* new_class) {
int result = Klass::NoRedefinition;
- log_info(redefine, class, load)("Comparing different class versions of class %s",new_class->name()->as_C_string());
+ log_debug(redefine, class, load)("Comparing different class versions of class %s",new_class->name()->as_C_string());
assert(new_class->old_version() != NULL, "must have old version");
InstanceKlass* the_class = InstanceKlass::cast(new_class->old_version());
diff --git a/src/hotspot/share/prims/resolvedMethodTable.cpp b/src/hotspot/share/prims/resolvedMethodTable.cpp
index caf03ffe56d..eb9fcda44f3 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -413,7 +413,7 @@ void ResolvedMethodTable::adjust_method_entries_dcevm(bool * trace_name_printed)
} else {
newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
- log_info(redefine, class, load, exceptions)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
+ log_debug(redefine, class, update)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
assert(newer_method != NULL, "method_with_idnum() should not be NULL");
@@ -433,7 +433,7 @@ void ResolvedMethodTable::adjust_method_entries_dcevm(bool * trace_name_printed)
ResourceMark rm;
if (!(*trace_name_printed)) {
- log_info(redefine, class, update)("adjust: name=%s", old_method->method_holder()->external_name());
+ log_debug(redefine, class, update)("adjust: name=%s", old_method->method_holder()->external_name());
*trace_name_printed = true;
}
log_debug(redefine, class, update, constantpool)
--
2.23.0

View File

@@ -0,0 +1,26 @@
From 7e236beee0375656d1955fc1168143c1639fb7f1 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Tue, 6 Oct 2020 22:15:31 +0200
Subject: [PATCH 10/34] AllowEnhancedClassRedefinition is false (disabled) by
default
---
src/hotspot/share/runtime/globals.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/runtime/globals.hpp b/src/hotspot/share/runtime/globals.hpp
index 5b367704800..2710c6ea0e5 100644
--- a/src/hotspot/share/runtime/globals.hpp
+++ b/src/hotspot/share/runtime/globals.hpp
@@ -2466,7 +2466,7 @@ const size_t minimumSymbolTableSize = 1024;
diagnostic(bool, DeoptimizeNMethodBarriersALot, false, \
"Make nmethod barriers deoptimise a lot.") \
\
- product(bool, AllowEnhancedClassRedefinition, true, \
+ product(bool, AllowEnhancedClassRedefinition, false, \
"Allow enhanced class redefinition beyond swapping method " \
"bodies") \
\
--
2.23.0

View File

@@ -0,0 +1,25 @@
From d56e73885111b386771f564ec6beb305338993df Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 19 Oct 2020 20:00:04 +0200
Subject: [PATCH 12/34] Set HOTSPOT_VM_DISTRO=Dynamic Code Evolution
---
make/autoconf/version-numbers | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/make/autoconf/version-numbers b/make/autoconf/version-numbers
index aabdc5bed20..df8025a2e84 100644
--- a/make/autoconf/version-numbers
+++ b/make/autoconf/version-numbers
@@ -45,7 +45,7 @@ PRODUCT_NAME=OpenJDK
PRODUCT_SUFFIX="Runtime Environment"
JDK_RC_PLATFORM_NAME=Platform
COMPANY_NAME=N/A
-HOTSPOT_VM_DISTRO="OpenJDK"
+HOTSPOT_VM_DISTRO="Dynamic Code Evolution"
VENDOR_URL=https://openjdk.java.net/
VENDOR_URL_BUG=https://bugreport.java.com/bugreport/
VENDOR_URL_VM_BUG=https://bugreport.java.com/bugreport/crash.jsp
--
2.23.0

View File

@@ -0,0 +1,71 @@
From 7ebad43ed45805b0a3736c510f708ff17697ba7e Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 11 Oct 2020 10:43:28 +0200
Subject: [PATCH 13/34] Fix G1 nmethod registration
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 19 ++++++++++++++++---
.../prims/jvmtiEnhancedRedefineClasses.hpp | 3 ++-
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index b09ba554e07..718426f2819 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -216,7 +216,14 @@ void VM_EnhancedRedefineClasses::mark_as_scavengable(nmethod* nm) {
}
}
-void VM_EnhancedRedefineClasses::mark_as_scavengable_g1(nmethod* nm) {
+void VM_EnhancedRedefineClasses::unregister_nmethod_g1(nmethod* nm) {
+ // It should work not only for G1 but also for another GCs, but this way is safer now
+ if (!nm->is_zombie() && !nm->is_unloaded()) {
+ Universe::heap()->unregister_nmethod(nm);
+ }
+}
+
+void VM_EnhancedRedefineClasses::register_nmethod_g1(nmethod* nm) {
// It should work not only for G1 but also for another GCs, but this way is safer now
if (!nm->is_zombie() && !nm->is_unloaded()) {
Universe::heap()->register_nmethod(nm);
@@ -521,8 +528,9 @@ void VM_EnhancedRedefineClasses::doit() {
// For now, mark all nmethod's as scavengable that are not scavengable already
if (ScavengeRootsInCode) {
if (UseG1GC) {
- // this should work also for other GCs
- CodeCache::nmethods_do(mark_as_scavengable_g1);
+ // G1 holds references to nmethods in regions based on oops values. Since oops in nmethod can be changed in ChangePointers* closures
+ // we unregister nmethods from G1 heap, then closures are processed (oops are changed) and finally we register nmethod to G1 again
+ CodeCache::nmethods_do(unregister_nmethod_g1);
} else {
CodeCache::nmethods_do(mark_as_scavengable);
}
@@ -545,6 +553,11 @@ void VM_EnhancedRedefineClasses::doit() {
Universe::root_oops_do(&oopClosureNoBarrier);
+ if (UseG1GC) {
+ // this should work also for other GCs
+ CodeCache::nmethods_do(register_nmethod_g1);
+ }
+
}
log_trace(redefine, class, obsolete, metadata)("After updating instances");
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 9755944d70b..4c0412d343d 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -116,7 +116,8 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
void rollback();
static void mark_as_scavengable(nmethod* nm);
- static void mark_as_scavengable_g1(nmethod* nm);
+ static void unregister_nmethod_g1(nmethod* nm);
+ static void register_nmethod_g1(nmethod* nm);
static void unpatch_bytecode(Method* method);
static void fix_invoke_method(Method* method);
--
2.23.0

View File

@@ -0,0 +1,26 @@
From 5c7e5f245f79d7e8575461dab0c356ed74c8e9a3 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Thu, 22 Oct 2020 20:15:20 +0200
Subject: [PATCH 14/34] Initialize method's _new_version/_old_version to NULL
---
src/hotspot/share/oops/method.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/oops/method.cpp b/src/hotspot/share/oops/method.cpp
index 1c88511a5fc..ce940cf10a9 100644
--- a/src/hotspot/share/oops/method.cpp
+++ b/src/hotspot/share/oops/method.cpp
@@ -91,7 +91,8 @@ Method* Method::allocate(ClassLoaderData* loader_data,
return new (loader_data, size, MetaspaceObj::MethodType, THREAD) Method(cm, access_flags);
}
-Method::Method(ConstMethod* xconst, AccessFlags access_flags) {
+Method::Method(ConstMethod* xconst, AccessFlags access_flags) : _new_version(NULL),
+ _old_version(NULL) {
NoSafepointVerifier no_safepoint;
set_constMethod(xconst);
set_access_flags(access_flags);
--
2.23.0

View File

@@ -0,0 +1,193 @@
From 6ffac6e5064ec6633fdbeb8520333dca00bc6a62 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 23 Oct 2020 10:20:26 +0200
Subject: [PATCH 15/34] Clear dcevm code separation
---
src/hotspot/share/classfile/systemDictionary.cpp | 4 ++--
src/hotspot/share/gc/serial/genMarkSweep.cpp | 8 +++++---
src/hotspot/share/interpreter/linkResolver.cpp | 16 +++++++++++-----
.../instrumentation/jfrEventClassTransformer.cpp | 2 +-
src/hotspot/share/oops/instanceKlass.cpp | 10 ++++++----
src/hotspot/share/oops/method.cpp | 2 +-
.../share/prims/jvmtiGetLoadedClasses.cpp | 2 +-
src/hotspot/share/runtime/reflection.cpp | 2 +-
8 files changed, 28 insertions(+), 18 deletions(-)
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index 8f2b46add4d..9ac6ec96cb5 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -1241,7 +1241,7 @@ InstanceKlass* SystemDictionary::resolve_from_stream(Symbol* class_name,
MutexLocker mu(THREAD, SystemDictionary_lock);
Klass* check = find_class(h_name, k->class_loader_data());
- assert((check == k && !k->is_redefining()) || (k->is_redefining() && check == k->old_version()), "should be present in the dictionary");
+ assert(check == k && !k->is_redefining() || k->is_redefining() && check == k->old_version(), "should be present in the dictionary");
} );
return k;
@@ -2290,7 +2290,7 @@ void SystemDictionary::check_constraints(unsigned int d_hash,
// also hold array classes.
assert(check->is_instance_klass(), "noninstance in systemdictionary");
- if ((defining == true) || ((k != check) && k->old_version() != check)) {
+ if ((defining == true) || (k != check && (!AllowEnhancedClassRedefinition || k->old_version() != check))) {
throwException = true;
ss.print("loader %s", loader_data->loader_name_and_id());
ss.print(" attempted duplicate %s definition for %s. (%s)",
diff --git a/src/hotspot/share/gc/serial/genMarkSweep.cpp b/src/hotspot/share/gc/serial/genMarkSweep.cpp
index 1d13c647452..548df01e557 100644
--- a/src/hotspot/share/gc/serial/genMarkSweep.cpp
+++ b/src/hotspot/share/gc/serial/genMarkSweep.cpp
@@ -334,7 +334,9 @@ void GenMarkSweep::mark_sweep_phase4() {
GenCompactClosure blk;
gch->generation_iterate(&blk, true);
- DcevmSharedGC::copy_rescued_objects_back(MarkSweep::_rescued_oops, true);
- DcevmSharedGC::clear_rescued_objects_resource(MarkSweep::_rescued_oops);
- MarkSweep::_rescued_oops = NULL;
+ if (AllowEnhancedClassRedefinition) {
+ DcevmSharedGC::copy_rescued_objects_back(MarkSweep::_rescued_oops, true);
+ DcevmSharedGC::clear_rescued_objects_resource(MarkSweep::_rescued_oops);
+ MarkSweep::_rescued_oops = NULL;
+ }
}
diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
index b6e9e0a308d..b2f24ddbeda 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -282,9 +282,14 @@ void LinkResolver::check_klass_accessibility(Klass* ref_klass, Klass* sel_klass,
if (!base_klass->is_instance_klass()) {
return; // no relevant check to do
}
-
- Reflection::VerifyClassAccessResults vca_result =
- Reflection::verify_class_access(ref_klass->newest_version(), InstanceKlass::cast(base_klass->newest_version()), true);
+ Klass* refKlassNewest = ref_klass;
+ Klass* baseKlassNewest = base_klass;
+ if (AllowEnhancedClassRedefinition) {
+ refKlassNewest = ref_klass->newest_version();
+ baseKlassNewest = base_klass->newest_version();
+ }
+ Reflection::VerifyClassAccessResults vca_result =
+ Reflection::verify_class_access(refKlassNewest, InstanceKlass::cast(baseKlassNewest), true);
if (vca_result != Reflection::ACCESS_OK) {
ResourceMark rm(THREAD);
char* msg = Reflection::verify_class_access_msg(ref_klass,
@@ -566,7 +571,8 @@ void LinkResolver::check_method_accessability(Klass* ref_klass,
// We'll check for the method name first, as that's most likely
// to be false (so we'll short-circuit out of these tests).
if (sel_method->name() == vmSymbols::clone_name() &&
- sel_klass->newest_version() == SystemDictionary::Object_klass()->newest_version() &&
+ ( !AllowEnhancedClassRedefinition && sel_klass == SystemDictionary::Object_klass() ||
+ AllowEnhancedClassRedefinition && sel_klass->newest_version() == SystemDictionary::Object_klass()->newest_version()) &&
resolved_klass->is_array_klass()) {
// We need to change "protected" to "public".
assert(flags.is_protected(), "clone not protected?");
@@ -1011,7 +1017,7 @@ void LinkResolver::resolve_field(fieldDescriptor& fd,
// or by the <init> method (in case of an instance field).
if (is_put && fd.access_flags().is_final()) {
- if (sel_klass != current_klass && sel_klass != current_klass->active_version()) {
+ if (sel_klass != current_klass && (!AllowEnhancedClassRedefinition || sel_klass != current_klass->active_version())) {
ResourceMark rm(THREAD);
stringStream ss;
ss.print("Update to %s final field %s.%s attempted from a different class (%s) than the field's declaring class",
diff --git a/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp b/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
index 96fc139bea3..f7284197c5a 100644
--- a/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
+++ b/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
@@ -1471,7 +1471,7 @@ static InstanceKlass* create_new_instance_klass(InstanceKlass* ik, ClassFileStre
cld,
&cl_info,
ClassFileParser::INTERNAL, // internal visibility
- false,
+ false,
THREAD);
if (HAS_PENDING_EXCEPTION) {
log_pending_exception(PENDING_EXCEPTION);
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index 3be3a09ef8f..f8e60941046 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -199,7 +199,9 @@ bool InstanceKlass::has_nest_member(InstanceKlass* k, TRAPS) const {
// able to perform that loading but we can't exclude the compiler threads from
// executing this logic. But it should actually be impossible to trigger loading here.
Klass* k2 = _constants->klass_at(cp_index, THREAD);
- k2 = k2->newest_version();
+ if (AllowEnhancedClassRedefinition) {
+ k2 = k2->newest_version();
+ }
assert(!HAS_PENDING_EXCEPTION || PENDING_EXCEPTION->is_a(SystemDictionary::VirtualMachineError_klass()),
"Exceptions should not be possible here");
if (k2 == k) {
@@ -1003,7 +1005,7 @@ bool InstanceKlass::link_class_impl(TRAPS) {
#endif
set_init_state(linked);
// (DCEVM) Must check for old version in order to prevent infinite loops.
- if (JvmtiExport::should_post_class_prepare() && old_version() == NULL /* JVMTI deadlock otherwise */) {
+ if (JvmtiExport::should_post_class_prepare() && (!AllowEnhancedClassRedefinition || old_version() == NULL) /* JVMTI deadlock otherwise */) {
Thread *thread = THREAD;
assert(thread->is_Java_thread(), "thread->is_Java_thread()");
JvmtiExport::post_class_prepare((JavaThread *) thread, this);
@@ -1084,7 +1086,7 @@ void InstanceKlass::initialize_impl(TRAPS) {
// we might end up throwing IE from link/symbol resolution sites
// that aren't expected to throw. This would wreak havoc. See 6320309.
while ((is_being_initialized() && !is_reentrant_initialization(jt))
- || (old_version() != NULL && InstanceKlass::cast(old_version())->is_being_initialized())) {
+ || (AllowEnhancedClassRedefinition && old_version() != NULL && InstanceKlass::cast(old_version())->is_being_initialized())) {
wait = true;
jt->set_class_to_be_initialized(this);
ol.wait_uninterruptibly(jt);
@@ -3782,7 +3784,7 @@ void InstanceKlass::verify_on(outputStream* st) {
guarantee(sib->is_klass(), "should be klass");
// TODO: (DCEVM) explain
- guarantee(sib->super() == super || super->newest_version() == SystemDictionary::Object_klass(), "siblings should have same superklass");
+ guarantee(sib->super() == super || AllowEnhancedClassRedefinition && super->newest_version() == SystemDictionary::Object_klass(), "siblings should have same superklass");
}
// Verify local interfaces
diff --git a/src/hotspot/share/oops/method.cpp b/src/hotspot/share/oops/method.cpp
index ce940cf10a9..2d8e5b0256b 100644
--- a/src/hotspot/share/oops/method.cpp
+++ b/src/hotspot/share/oops/method.cpp
@@ -2208,7 +2208,7 @@ void Method::ensure_jmethod_ids(ClassLoaderData* loader_data, int capacity) {
// Add a method id to the jmethod_ids
jmethodID Method::make_jmethod_id(ClassLoaderData* loader_data, Method* m) {
// FIXME: (DCEVM) ???
- if (m != m->newest_version()) {
+ if (AllowEnhancedClassRedefinition && m != m->newest_version()) {
m = m->newest_version();
}
ClassLoaderData* cld = loader_data;
diff --git a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
index 1c7677f270f..6c12ee64a6e 100644
--- a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
@@ -75,7 +75,7 @@ public:
// the new version (SystemDictionary stores only new versions). But the LoadedClassesClosure's functionality was
// changed in java8 where jvmtiLoadedClasses collects all classes from all classloaders, therefore we
// must use new versions only.
- if (k->new_version()==NULL) {
+ if (AllowEnhancedClassRedefinition && k->new_version()==NULL) {
_classStack.push((jclass) _env->jni_reference(Handle(_cur_thread, k->java_mirror())));
if (_dictionary_walk) {
// Collect array classes this way when walking the dictionary (because array classes are
diff --git a/src/hotspot/share/runtime/reflection.cpp b/src/hotspot/share/runtime/reflection.cpp
index 0e7722dba7d..d67457f02ac 100644
--- a/src/hotspot/share/runtime/reflection.cpp
+++ b/src/hotspot/share/runtime/reflection.cpp
@@ -628,7 +628,7 @@ bool Reflection::verify_member_access(const Klass* current_class,
TRAPS) {
// (DCEVM) Decide accessibility based on active version
- if (current_class != NULL) {
+ if (AllowEnhancedClassRedefinition && current_class != NULL) {
current_class = current_class->active_version();
}
--
2.23.0

View File

@@ -0,0 +1,26 @@
From dc675de6ac42819b8536827ea450fcad13a97448 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 11 Nov 2020 18:45:15 +0100
Subject: [PATCH 16/34] Fix LoadedClassesClosure - fixes problems with remote
debugging
---
src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
index 6c12ee64a6e..2a469555dbd 100644
--- a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
@@ -75,7 +75,7 @@ public:
// the new version (SystemDictionary stores only new versions). But the LoadedClassesClosure's functionality was
// changed in java8 where jvmtiLoadedClasses collects all classes from all classloaders, therefore we
// must use new versions only.
- if (AllowEnhancedClassRedefinition && k->new_version()==NULL) {
+ if (!AllowEnhancedClassRedefinition || k->new_version()==NULL) {
_classStack.push((jclass) _env->jni_reference(Handle(_cur_thread, k->java_mirror())));
if (_dictionary_walk) {
// Collect array classes this way when walking the dictionary (because array classes are
--
2.23.0

View File

@@ -0,0 +1,183 @@
From 1d682efa88c716e1849163d5abff3a3367581d16 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 16 Nov 2020 21:11:19 +0100
Subject: [PATCH 18/34] pre dcevm15 - fix GC spaces originally in removed CMS
patch
---
src/hotspot/share/gc/shared/space.cpp | 16 ++++++++--------
src/hotspot/share/gc/shared/space.hpp | 6 +++---
src/hotspot/share/gc/shared/space.inline.hpp | 14 ++++++++------
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 6 ++----
4 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/src/hotspot/share/gc/shared/space.cpp b/src/hotspot/share/gc/shared/space.cpp
index 875a6dc854f..9772c32c42e 100644
--- a/src/hotspot/share/gc/shared/space.cpp
+++ b/src/hotspot/share/gc/shared/space.cpp
@@ -375,11 +375,11 @@ HeapWord* CompactibleSpace::forward_compact_top(size_t size, CompactPoint* cp, H
}
HeapWord* CompactibleSpace::forward(oop q, size_t size,
- CompactPoint* cp, HeapWord* compact_top) {
+ CompactPoint* cp, HeapWord* compact_top, bool force_forward) {
compact_top = forward_compact_top(size, cp, compact_top);
// store the forwarding pointer into the mark word
- if (cast_from_oop<HeapWord*>(q) != compact_top || (size_t)q->size() != size) {
+ if (force_forward || cast_from_oop<HeapWord*>(q) != compact_top || (size_t)q->size() != size) {
q->forward_to(oop(compact_top));
assert(q->is_gc_marked(), "encoding the pointer should preserve the mark");
} else {
@@ -501,7 +501,7 @@ bool CompactibleSpace::must_rescue(oop old_obj, oop new_obj) {
} else {
assert(space_index(old_obj) != space_index(new_obj), "old_obj and new_obj must be in different spaces");
- if (tenured_gen->is_in_reserved(new_obj)) {
+ if (new_in_tenured) {
// Must never rescue when moving from the new into the old generation.
assert(GenCollectedHeap::heap()->young_gen()->is_in_reserved(old_obj), "old_obj must be in DefNewGeneration");
assert(space_index(old_obj) > space_index(new_obj), "must be");
@@ -824,14 +824,14 @@ void OffsetTableContigSpace::verify() const {
// Compute the forward sizes and leave out objects whose position could
// possibly overlap other objects.
HeapWord* CompactibleSpace::forward_with_rescue(HeapWord* q, size_t size,
- CompactPoint* cp, HeapWord* compact_top) {
+ CompactPoint* cp, HeapWord* compact_top, bool force_forward) {
size_t forward_size = size;
// (DCEVM) There is a new version of the class of q => different size
if (oop(q)->klass()->new_version() != NULL) {
size_t new_size = oop(q)->size_given_klass(oop(q)->klass()->new_version());
- assert(size != new_size, "instances without changed size have to be updated prior to GC run");
+ // assert(size != new_size, "instances without changed size have to be updated prior to GC run");
forward_size = new_size;
}
@@ -845,7 +845,7 @@ HeapWord* CompactibleSpace::forward_with_rescue(HeapWord* q, size_t size,
return compact_top;
}
- return forward(oop(q), forward_size, cp, compact_top);
+ return forward(oop(q), forward_size, cp, compact_top, force_forward);
}
// Compute the forwarding addresses for the objects that need to be rescued.
@@ -861,11 +861,11 @@ HeapWord* CompactibleSpace::forward_rescued(CompactPoint* cp, HeapWord* compact_
// (DCEVM) There is a new version of the class of q => different size
if (oop(q)->klass()->new_version() != NULL) {
size_t new_size = oop(q)->size_given_klass(oop(q)->klass()->new_version());
- assert(size != new_size, "instances without changed size have to be updated prior to GC run");
+ // assert(size != new_size, "instances without changed size have to be updated prior to GC run");
size = new_size;
}
- compact_top = cp->space->forward(oop(q), size, cp, compact_top);
+ compact_top = cp->space->forward(oop(q), size, cp, compact_top, true);
assert(compact_top <= end(), "must not write over end of space!");
}
MarkSweep::_rescued_oops->clear();
diff --git a/src/hotspot/share/gc/shared/space.hpp b/src/hotspot/share/gc/shared/space.hpp
index c9bfc365f0f..f7648995454 100644
--- a/src/hotspot/share/gc/shared/space.hpp
+++ b/src/hotspot/share/gc/shared/space.hpp
@@ -405,7 +405,7 @@ public:
virtual void prepare_for_compaction(CompactPoint* cp) = 0;
// MarkSweep support phase3
DEBUG_ONLY(int space_index(oop obj));
- bool must_rescue(oop old_obj, oop new_obj);
+ virtual bool must_rescue(oop old_obj, oop new_obj);
HeapWord* rescue(HeapWord* old_obj);
virtual void adjust_pointers();
// MarkSweep support phase4
@@ -436,11 +436,11 @@ public:
// function of the then-current compaction space, and updates "cp->threshold
// accordingly".
virtual HeapWord* forward(oop q, size_t size, CompactPoint* cp,
- HeapWord* compact_top);
+ HeapWord* compact_top, bool force_forward);
// (DCEVM) same as forwad, but can rescue objects. Invoked only during
// redefinition runs
HeapWord* forward_with_rescue(HeapWord* q, size_t size, CompactPoint* cp,
- HeapWord* compact_top);
+ HeapWord* compact_top, bool force_forward);
HeapWord* forward_rescued(CompactPoint* cp, HeapWord* compact_top);
diff --git a/src/hotspot/share/gc/shared/space.inline.hpp b/src/hotspot/share/gc/shared/space.inline.hpp
index 5a93e93471b..fa645423685 100644
--- a/src/hotspot/share/gc/shared/space.inline.hpp
+++ b/src/hotspot/share/gc/shared/space.inline.hpp
@@ -163,6 +163,8 @@ inline void CompactibleSpace::scan_and_forward(SpaceType* space, CompactPoint* c
HeapWord* cur_obj = space->bottom();
HeapWord* scan_limit = space->scan_limit();
+ bool force_forward = false;
+
while (cur_obj < scan_limit) {
assert(!space->scanned_block_is_obj(cur_obj) ||
oop(cur_obj)->mark_raw().is_marked() || oop(cur_obj)->mark_raw().is_unlocked() ||
@@ -174,14 +176,15 @@ inline void CompactibleSpace::scan_and_forward(SpaceType* space, CompactPoint* c
size_t size = space->scanned_block_size(cur_obj);
if (redefinition_run) {
- compact_top = cp->space->forward_with_rescue(cur_obj, size, cp, compact_top);
+ compact_top = cp->space->forward_with_rescue(cur_obj, size, cp, compact_top, force_forward);
if (first_dead == NULL && oop(cur_obj)->is_gc_marked()) {
/* Was moved (otherwise, forward would reset mark),
set first_dead to here */
first_dead = cur_obj;
+ force_forward = true;
}
} else {
- compact_top = cp->space->forward(oop(cur_obj), size, cp, compact_top);
+ compact_top = cp->space->forward(oop(cur_obj), size, cp, compact_top, false);
}
cur_obj += size;
@@ -197,9 +200,9 @@ inline void CompactibleSpace::scan_and_forward(SpaceType* space, CompactPoint* c
// see if we might want to pretend this object is alive so that
// we don't have to compact quite as often.
- if (cur_obj == compact_top && dead_spacer.insert_deadspace(cur_obj, end)) {
+ if (!redefinition_run && cur_obj == compact_top && dead_spacer.insert_deadspace(cur_obj, end)) {
oop obj = oop(cur_obj);
- compact_top = cp->space->forward(obj, obj->size(), cp, compact_top);
+ compact_top = cp->space->forward(obj, obj->size(), cp, compact_top, force_forward);
end_of_live = end;
} else {
// otherwise, it really is a free region.
@@ -362,8 +365,7 @@ inline void CompactibleSpace::scan_and_compact(SpaceType* space, bool redefiniti
Prefetch::write(compaction_top, copy_interval);
// copy object and reinit its mark
- assert(cur_obj != compaction_top || oop(cur_obj)->klass()->new_version() != NULL,
- "everything in this pass should be moving");
+ assert(redefinition_run || cur_obj != compaction_top, "everything in this pass should be moving");
if (redefinition_run && oop(cur_obj)->klass()->new_version() != NULL) {
Klass* new_version = oop(cur_obj)->klass()->new_version();
if (new_version->update_information() == NULL) {
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 718426f2819..1da6661dd3e 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -431,13 +431,11 @@ public:
Klass* new_klass = obj->klass()->new_version();
if (new_klass->update_information() != NULL) {
- int size_diff = obj->size() - obj->size_given_klass(new_klass);
-
- // Either new size is bigger or gap is to small to be filled
- if (size_diff < 0 || (size_diff > 0 && (size_t) size_diff < CollectedHeap::min_fill_size())) {
+ if (obj->size() - obj->size_given_klass(new_klass) != 0) {
// We need an instance update => set back to old klass
_needs_instance_update = true;
} else {
+ // Either new size is bigger or gap is to small to be filled
oop src = obj;
if (new_klass->is_copying_backwards()) {
copy_to_tmp(obj);
--
2.23.0

View File

@@ -0,0 +1,942 @@
From 297f564f6af79fb824f5b4e9119f1d3d0c827fb0 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 16 Nov 2020 20:20:12 +0100
Subject: [PATCH 19/34] dcevm15 - fix java15 patch compilation issues
---
.../share/classfile/classFileParser.hpp | 8 +-
.../share/classfile/classLoaderData.cpp | 2 +-
src/hotspot/share/classfile/dictionary.hpp | 10 +-
src/hotspot/share/classfile/javaClasses.hpp | 2 +
.../share/gc/g1/g1FullGCCompactTask.cpp | 4 +-
.../share/gc/g1/g1FullGCCompactionPoint.cpp | 8 +-
.../share/gc/g1/g1FullGCPrepareTask.cpp | 4 +-
src/hotspot/share/gc/shared/dcevmSharedGC.cpp | 14 +-
src/hotspot/share/gc/shared/dcevmSharedGC.hpp | 2 +-
src/hotspot/share/gc/shared/gcConfig.cpp | 2 +-
src/hotspot/share/gc/shared/space.cpp | 4 +-
.../share/interpreter/linkResolver.cpp | 2 +-
src/hotspot/share/oops/instanceKlass.cpp | 17 ++-
src/hotspot/share/oops/instanceKlass.hpp | 1 +
src/hotspot/share/oops/klass.cpp | 8 +-
src/hotspot/share/prims/jvm.cpp | 2 +
.../prims/jvmtiEnhancedRedefineClasses.cpp | 129 +++++++++---------
.../prims/jvmtiEnhancedRedefineClasses.hpp | 14 +-
src/hotspot/share/prims/jvmtiEnv.cpp | 11 +-
.../share/prims/jvmtiRedefineClasses.cpp | 1 +
src/hotspot/share/prims/methodHandles.hpp | 3 +
src/hotspot/share/runtime/arguments.cpp | 22 +--
src/hotspot/share/runtime/mutexLocker.cpp | 2 +-
23 files changed, 159 insertions(+), 113 deletions(-)
diff --git a/src/hotspot/share/classfile/classFileParser.hpp b/src/hotspot/share/classfile/classFileParser.hpp
index e5761e61767..0d266b9047e 100644
--- a/src/hotspot/share/classfile/classFileParser.hpp
+++ b/src/hotspot/share/classfile/classFileParser.hpp
@@ -150,9 +150,6 @@ class ClassFileParser {
const intArray* _method_ordering;
GrowableArray<Method*>* _all_mirandas;
- // Enhanced class redefinition
- const bool _pick_newest;
-
enum { fixed_buffer_size = 128 };
u_char _linenumbertable_buffer[fixed_buffer_size];
@@ -206,6 +203,9 @@ class ClassFileParser {
bool _has_vanilla_constructor;
int _max_bootstrap_specifier_index; // detects BSS values
+ // (DCEVM) Enhanced class redefinition
+ const bool _pick_newest;
+
void parse_stream(const ClassFileStream* const stream, TRAPS);
void mangle_hidden_class_name(InstanceKlass* const ik);
@@ -582,7 +582,7 @@ class ClassFileParser {
ClassLoaderData* loader_data() const { return _loader_data; }
const Symbol* class_name() const { return _class_name; }
const InstanceKlass* super_klass() const { return _super_klass; }
- Array<Klass*>* local_interfaces() const { return _local_interfaces; }
+ Array<InstanceKlass*>* local_interfaces() const { return _local_interfaces; }
ReferenceType reference_type() const { return _rt; }
AccessFlags access_flags() const { return _access_flags; }
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 4d64c6b454a..aadcd50ef4a 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -597,7 +597,7 @@ void ClassLoaderData::exchange_holders(ClassLoaderData* cld) {
oop holder_oop = _holder.peek();
_holder.replace(cld->_holder.peek());
cld->_holder.replace(holder_oop);
- WeakHandle<vm_class_loader_data> exchange = _holder;
+ WeakHandle<vm_weak_data> exchange = _holder;
_holder = cld->_holder;
cld->_holder = exchange;
}
diff --git a/src/hotspot/share/classfile/dictionary.hpp b/src/hotspot/share/classfile/dictionary.hpp
index 114a983e783..a50f4ff84d2 100644
--- a/src/hotspot/share/classfile/dictionary.hpp
+++ b/src/hotspot/share/classfile/dictionary.hpp
@@ -84,6 +84,11 @@ public:
void print_on(outputStream* st) const;
void verify();
+ // (DCEVM) Enhanced class redefinition
+ bool update_klass(unsigned int hash, Symbol* name, ClassLoaderData* loader_data, InstanceKlass* k, InstanceKlass* old_klass);
+
+ void rollback_redefinition();
+
private:
DictionaryEntry* new_entry(unsigned int hash, InstanceKlass* klass);
@@ -106,11 +111,6 @@ public:
void free_entry(DictionaryEntry* entry);
- // Enhanced class redefinition
- bool update_klass(unsigned int hash, Symbol* name, ClassLoaderData* loader_data, InstanceKlass* k, InstanceKlass* old_klass);
-
- void rollback_redefinition();
-
// (DCEVM) return old class if redefining in AllowEnhancedClassRedefinition, otherwise return "k"
static InstanceKlass* old_if_redefined(InstanceKlass* k) {
return (k != NULL && k->is_redefining()) ? ((InstanceKlass* )k->old_version()) : k;
diff --git a/src/hotspot/share/classfile/javaClasses.hpp b/src/hotspot/share/classfile/javaClasses.hpp
index a68c5139151..9abf2e1d105 100644
--- a/src/hotspot/share/classfile/javaClasses.hpp
+++ b/src/hotspot/share/classfile/javaClasses.hpp
@@ -255,7 +255,9 @@ class java_lang_Class : AllStatic {
static void set_init_lock(oop java_class, oop init_lock);
static void set_protection_domain(oop java_class, oop protection_domain);
static void set_class_loader(oop java_class, oop class_loader);
+ public: // DCEVM
static void set_component_mirror(oop java_class, oop comp_mirror);
+ private:
static void initialize_mirror_fields(Klass* k, Handle mirror, Handle protection_domain,
Handle classData, TRAPS);
static void initialize_mirror_fields(Klass* k, Handle mirror, Handle protection_domain, TRAPS);
diff --git a/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp b/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
index f70f4606dc8..a22ed48560d 100644
--- a/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
@@ -157,14 +157,14 @@ void G1FullGCCompactTask::serial_compaction_dcevm() {
size_t G1FullGCCompactTask::G1CompactRegionClosureDcevm::apply(oop obj) {
size_t size = obj->size();
- HeapWord* destination = (HeapWord*)obj->forwardee();
+ HeapWord* destination = cast_from_oop<HeapWord*>(obj->forwardee());
if (destination == NULL) {
// Object not moving
return size;
}
// copy object and reinit its mark
- HeapWord* obj_addr = (HeapWord*) obj;
+ HeapWord* obj_addr = cast_from_oop<HeapWord*>(obj);
if (!_rescue_oops_it->at_end() && **_rescue_oops_it == obj_addr) {
++(*_rescue_oops_it);
diff --git a/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp b/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp
index 1e49571c999..755935a2c91 100644
--- a/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp
@@ -174,7 +174,7 @@ void G1FullGCCompactionPoint::forward_dcevm(oop object, size_t size, bool force_
assert(_current_region != NULL, "Must have been initialized");
// Store a forwarding pointer if the object should be moved.
- if ((HeapWord*)object != _compaction_top || force_forward) {
+ if (cast_from_oop<HeapWord*>(object) != _compaction_top || force_forward) {
object->forward_to(oop(_compaction_top));
} else {
if (object->forwardee() != NULL) {
@@ -188,11 +188,11 @@ void G1FullGCCompactionPoint::forward_dcevm(oop object, size_t size, bool force_
} else {
// Make sure object has the correct mark-word set or that it will be
// fixed when restoring the preserved marks.
- assert(object->mark_raw() == markOopDesc::prototype_for_object(object) || // Correct mark
- object->mark_raw()->must_be_preserved(object) || // Will be restored by PreservedMarksSet
+ assert(object->mark_raw() == markWord::prototype_for_klass(object->klass()) || // Correct mark
+ object->mark_must_be_preserved() || // Will be restored by PreservedMarksSet
(UseBiasedLocking && object->has_bias_pattern_raw()), // Will be restored by BiasedLocking
"should have correct prototype obj: " PTR_FORMAT " mark: " PTR_FORMAT " prototype: " PTR_FORMAT,
- p2i(object), p2i(object->mark_raw()), p2i(markOopDesc::prototype_for_object(object)));
+ p2i(object), object->mark_raw().value(), markWord::prototype_for_klass(object->klass()).value());
}
assert(object->forwardee() == NULL, "should be forwarded to NULL");
}
diff --git a/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp b/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
index a45681b60cf..2f06b9617e4 100644
--- a/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
@@ -269,7 +269,7 @@ size_t G1FullGCPrepareTask::G1PrepareCompactLiveClosureDcevm::apply(oop object)
HeapWord* compact_top = _cp->forward_compact_top(forward_size);
if (compact_top == NULL || must_rescue(object, oop(compact_top))) {
- _cp->rescued_oops()->append((HeapWord*)object);
+ _cp->rescued_oops()->append(cast_from_oop<HeapWord*>(object));
} else {
_cp->forward_dcevm(object, forward_size, (size != forward_size));
}
@@ -295,7 +295,7 @@ bool G1FullGCPrepareTask::G1PrepareCompactLiveClosureDcevm::must_rescue(oop old_
int new_size = old_obj->size_given_klass(oop(old_obj)->klass()->new_version());
int original_size = old_obj->size();
- bool overlap = ((HeapWord*)old_obj + original_size < (HeapWord*)new_obj + new_size);
+ bool overlap = (cast_from_oop<HeapWord*>(old_obj) + original_size < cast_from_oop<HeapWord*>(new_obj) + new_size);
return overlap;
}
diff --git a/src/hotspot/share/gc/shared/dcevmSharedGC.cpp b/src/hotspot/share/gc/shared/dcevmSharedGC.cpp
index 803e645f843..3dee097f1d3 100644
--- a/src/hotspot/share/gc/shared/dcevmSharedGC.cpp
+++ b/src/hotspot/share/gc/shared/dcevmSharedGC.cpp
@@ -58,10 +58,10 @@ void DcevmSharedGC::copy_rescued_objects_back(GrowableArray<HeapWord*>* rescued_
DcevmSharedGC::update_fields(rescued_obj, new_obj);
} else {
rescued_obj->set_klass(new_klass);
- Copy::aligned_disjoint_words((HeapWord*)rescued_obj, (HeapWord*)new_obj, size);
+ Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(rescued_obj), cast_from_oop<HeapWord*>(new_obj), size);
}
} else {
- Copy::aligned_disjoint_words((HeapWord*)rescued_obj, (HeapWord*)new_obj, size);
+ Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(rescued_obj), cast_from_oop<HeapWord*>(new_obj), size);
}
new_obj->init_mark_raw();
@@ -111,11 +111,11 @@ void DcevmSharedGC::update_fields(oop q, oop new_location) {
// Save object somewhere, there is an overlap in fields
if (new_klass_oop->is_copying_backwards()) {
- if (((HeapWord *)q >= (HeapWord *)new_location && (HeapWord *)q < (HeapWord *)new_location + new_size) ||
- ((HeapWord *)new_location >= (HeapWord *)q && (HeapWord *)new_location < (HeapWord *)q + size)) {
+ if ((cast_from_oop<HeapWord*>(q) >= cast_from_oop<HeapWord*>(new_location) && cast_from_oop<HeapWord*>(q) < cast_from_oop<HeapWord*>(new_location) + new_size) ||
+ (cast_from_oop<HeapWord*>(new_location) >= cast_from_oop<HeapWord*>(q) && cast_from_oop<HeapWord*>(new_location) < cast_from_oop<HeapWord*>(q) + size)) {
tmp = NEW_RESOURCE_ARRAY(HeapWord, size);
q = (oop) tmp;
- Copy::aligned_disjoint_words((HeapWord*)tmp_obj, (HeapWord*)q, size);
+ Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(tmp_obj), cast_from_oop<HeapWord*>(q), size);
}
}
@@ -131,13 +131,13 @@ void DcevmSharedGC::update_fields(oop q, oop new_location) {
void DcevmSharedGC::update_fields(oop new_location, oop tmp_obj, int *cur) {
assert(cur != NULL, "just checking");
- char* to = (char*)(HeapWord*)new_location;
+ char* to = (char*)cast_from_oop<HeapWord*>(new_location);
while (*cur != 0) {
int size = *cur;
if (size > 0) {
cur++;
int offset = *cur;
- HeapWord* from = (HeapWord*)(((char *)(HeapWord*)tmp_obj) + offset);
+ HeapWord* from = (HeapWord*)(((char *)cast_from_oop<HeapWord*>(tmp_obj)) + offset);
if (size == HeapWordSize) {
*((HeapWord*)to) = *from;
} else if (size == HeapWordSize * 2) {
diff --git a/src/hotspot/share/gc/shared/dcevmSharedGC.hpp b/src/hotspot/share/gc/shared/dcevmSharedGC.hpp
index e2ef0171fb2..a4e27e00280 100644
--- a/src/hotspot/share/gc/shared/dcevmSharedGC.hpp
+++ b/src/hotspot/share/gc/shared/dcevmSharedGC.hpp
@@ -29,7 +29,7 @@
#include "gc/shared/genOopClosures.hpp"
#include "gc/shared/taskqueue.hpp"
#include "memory/iterator.hpp"
-#include "oops/markOop.hpp"
+#include "oops/markWord.hpp"
#include "oops/oop.hpp"
#include "runtime/timer.hpp"
#include "utilities/growableArray.hpp"
diff --git a/src/hotspot/share/gc/shared/gcConfig.cpp b/src/hotspot/share/gc/shared/gcConfig.cpp
index f01d64d1434..5c1a09390f1 100644
--- a/src/hotspot/share/gc/shared/gcConfig.cpp
+++ b/src/hotspot/share/gc/shared/gcConfig.cpp
@@ -100,7 +100,7 @@ void GCConfig::fail_if_non_included_gc_is_selected() {
void GCConfig::select_gc_ergonomically() {
if (AllowEnhancedClassRedefinition && !UseG1GC) {
// Enhanced class redefinition only supports serial GC at the moment
- FLAG_SET_ERGO(bool, UseSerialGC, true);
+ FLAG_SET_ERGO(UseSerialGC, true);
} else if (os::is_server_class_machine()) {
#if INCLUDE_G1GC
FLAG_SET_ERGO_IF_DEFAULT(UseG1GC, true);
diff --git a/src/hotspot/share/gc/shared/space.cpp b/src/hotspot/share/gc/shared/space.cpp
index 9772c32c42e..e8e3d7884c2 100644
--- a/src/hotspot/share/gc/shared/space.cpp
+++ b/src/hotspot/share/gc/shared/space.cpp
@@ -440,7 +440,7 @@ int CompactibleSpace::space_index(oop obj) {
index++;
}
- tty->print_cr("could not compute space_index for %08xh", (HeapWord*)obj);
+ tty->print_cr("could not compute space_index for %08xh", cast_from_oop<HeapWord*>(obj));
index = 0;
Generation* gen = heap->old_gen();
@@ -485,7 +485,7 @@ bool CompactibleSpace::must_rescue(oop old_obj, oop new_obj) {
bool new_in_tenured = tenured_gen->is_in_reserved(new_obj);
if (old_in_tenured == new_in_tenured) {
// Rescue if object may overlap with a higher memory address.
- bool overlap = ((HeapWord*)old_obj + original_size < (HeapWord*)new_obj + new_size);
+ bool overlap = (cast_from_oop<HeapWord*>(old_obj) + original_size < cast_from_oop<HeapWord*>(new_obj) + new_size);
if (old_in_tenured) {
// Old and new address are in same space, so just compare the address.
// Must rescue if object moves towards the top of the space.
diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
index b2f24ddbeda..9daeeb70b34 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -1031,7 +1031,7 @@ void LinkResolver::resolve_field(fieldDescriptor& fd,
assert(m != NULL, "information about the current method must be available for 'put' bytecodes");
bool is_initialized_static_final_update = (byte == Bytecodes::_putstatic &&
fd.is_static() &&
- !(m()->is_static_initializer() || m()->name() == vmSymbols::ha_class_initializer_name()));
+ !(m->is_static_initializer() || m->name() == vmSymbols::ha_class_initializer_name()));
bool is_initialized_instance_final_update = ((byte == Bytecodes::_putfield || byte == Bytecodes::_nofast_putfield) &&
!fd.is_static() &&
!m->is_object_initializer());
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index f8e60941046..5e40d78a87e 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -1316,7 +1316,7 @@ void InstanceKlass::init_implementor() {
// (DCEVM) - init_implementor() for dcevm
void InstanceKlass::init_implementor_from_redefine() {
assert(is_interface(), "not interface");
- Klass** addr = adr_implementor();
+ Klass* volatile* addr = adr_implementor();
assert(addr != NULL, "null addr");
if (addr != NULL) {
*addr = NULL;
@@ -1659,6 +1659,21 @@ void InstanceKlass::methods_do(void f(Method* method)) {
}
}
+void InstanceKlass::methods_do(void f(Method* method, TRAPS), TRAPS) {
+ // Methods aren't stable until they are loaded. This can be read outside
+ // a lock through the ClassLoaderData for profiling
+ if (!is_loaded()) {
+ return;
+ }
+
+ int len = methods()->length();
+ for (int index = 0; index < len; index++) {
+ Method* m = methods()->at(index);
+ assert(m->is_method(), "must be method");
+ f(m, CHECK);
+ }
+}
+
// (DCEVM) Update information contains mapping of fields from old class to the new class.
// Info is stored on HEAP, you need to call clear_update_information to free the space.
void InstanceKlass::store_update_information(GrowableArray<int> &values) {
diff --git a/src/hotspot/share/oops/instanceKlass.hpp b/src/hotspot/share/oops/instanceKlass.hpp
index 6ead9426728..b56d42cb177 100644
--- a/src/hotspot/share/oops/instanceKlass.hpp
+++ b/src/hotspot/share/oops/instanceKlass.hpp
@@ -1069,6 +1069,7 @@ public:
void clear_update_information();
void methods_do(void f(Method* method));
+ void methods_do(void f(Method* method, TRAPS), TRAPS);
void array_klasses_do(void f(Klass* k));
void array_klasses_do(void f(Klass* k, TRAPS), TRAPS);
diff --git a/src/hotspot/share/oops/klass.cpp b/src/hotspot/share/oops/klass.cpp
index 352d8f84631..88f5ec9ba4a 100644
--- a/src/hotspot/share/oops/klass.cpp
+++ b/src/hotspot/share/oops/klass.cpp
@@ -200,13 +200,13 @@ void* Klass::operator new(size_t size, ClassLoaderData* loader_data, size_t word
Klass::Klass(KlassID id) : _id(id),
_java_mirror(NULL),
_prototype_header(markWord::prototype()),
- _shared_class_path_index(-1),
- _new_version(NULL),
_old_version(NULL),
+ _new_version(NULL),
+ _redefinition_flags(Klass::NoRedefinition),
_is_redefining(false),
+ _update_information(NULL),
_is_copying_backwards(false),
- _redefinition_flags(Klass::NoRedefinition),
- _update_information(NULL) {
+ _shared_class_path_index(-1) {
CDS_ONLY(_shared_class_flags = 0;)
CDS_JAVA_HEAP_ONLY(_archived_mirror = 0;)
_primary_supers[0] = this;
diff --git a/src/hotspot/share/prims/jvm.cpp b/src/hotspot/share/prims/jvm.cpp
index 333b65ccfc1..13bcac352fb 100644
--- a/src/hotspot/share/prims/jvm.cpp
+++ b/src/hotspot/share/prims/jvm.cpp
@@ -1054,6 +1054,7 @@ static jclass jvm_lookup_define_class(JNIEnv *env, jclass lookup, const char *na
class_loader,
protection_domain,
&st,
+ NULL,
CHECK_NULL);
if (log_is_enabled(Debug, class, resolve) && defined_k != NULL) {
@@ -1074,6 +1075,7 @@ static jclass jvm_lookup_define_class(JNIEnv *env, jclass lookup, const char *na
class_loader,
&st,
cl_info,
+ NULL,
CHECK_NULL);
if (defined_k == NULL) {
THROW_MSG_0(vmSymbols::java_lang_Error(), "Failure to define a hidden class");
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 1da6661dd3e..619e3988e3a 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -24,11 +24,14 @@
#include "precompiled.hpp"
#include "aot/aotLoader.hpp"
+#include "classfile/classFileParser.hpp"
#include "classfile/classFileStream.hpp"
#include "classfile/metadataOnStackMark.hpp"
#include "classfile/systemDictionary.hpp"
#include "classfile/verifier.hpp"
#include "classfile/dictionary.hpp"
+#include "classfile/classLoaderDataGraph.hpp"
+#include "interpreter/linkResolver.hpp"
#include "interpreter/oopMapCache.hpp"
#include "interpreter/rewriter.hpp"
#include "logging/logStream.hpp"
@@ -37,17 +40,22 @@
#include "memory/resourceArea.hpp"
#include "memory/iterator.inline.hpp"
#include "oops/fieldStreams.hpp"
+#include "oops/fieldStreams.inline.hpp"
#include "oops/klassVtable.hpp"
#include "oops/oop.inline.hpp"
#include "oops/constantPool.inline.hpp"
+#include "oops/metadata.hpp"
+#include "oops/methodData.hpp"
#include "prims/jvmtiImpl.hpp"
#include "prims/jvmtiClassFileReconstituter.hpp"
#include "prims/jvmtiEnhancedRedefineClasses.hpp"
#include "prims/methodComparator.hpp"
#include "prims/resolvedMethodTable.hpp"
+#include "prims/methodHandles.hpp"
#include "runtime/deoptimization.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/relocator.hpp"
+#include "runtime/fieldDescriptor.hpp"
#include "runtime/fieldDescriptor.inline.hpp"
#include "utilities/bitMap.inline.hpp"
#include "prims/jvmtiThreadState.inline.hpp"
@@ -55,6 +63,8 @@
#include "oops/constantPool.inline.hpp"
#include "gc/g1/g1CollectedHeap.hpp"
#include "gc/shared/dcevmSharedGC.hpp"
+#include "gc/shared/scavengableNMethods.hpp"
+#include "ci/ciObjectFactory.hpp"
Array<Method*>* VM_EnhancedRedefineClasses::_old_methods = NULL;
Array<Method*>* VM_EnhancedRedefineClasses::_new_methods = NULL;
@@ -66,6 +76,7 @@ int VM_EnhancedRedefineClasses::_matching_methods_length = 0;
int VM_EnhancedRedefineClasses::_deleted_methods_length = 0;
int VM_EnhancedRedefineClasses::_added_methods_length = 0;
Klass* VM_EnhancedRedefineClasses::_the_class_oop = NULL;
+u8 VM_EnhancedRedefineClasses::_id_counter = 0;
//
// Create new instance of enhanced class redefiner.
@@ -88,6 +99,7 @@ VM_EnhancedRedefineClasses::VM_EnhancedRedefineClasses(jint class_count, const j
_class_load_kind = class_load_kind;
_res = JVMTI_ERROR_NONE;
_any_class_has_resolved_methods = false;
+ _id = next_id();
}
static inline InstanceKlass* get_ik(jclass def) {
@@ -211,9 +223,7 @@ class FieldCopier : public FieldClosure {
// TODO: review...
void VM_EnhancedRedefineClasses::mark_as_scavengable(nmethod* nm) {
- if (!nm->on_scavenge_root_list()) {
- CodeCache::add_scavenge_root_nmethod(nm);
- }
+ ScavengableNMethods::register_nmethod(nm);
}
void VM_EnhancedRedefineClasses::unregister_nmethod_g1(nmethod* nm) {
@@ -414,7 +424,7 @@ public:
_tmp_obj_size = size;
_tmp_obj = (oop)resource_allocate_bytes(size * HeapWordSize);
}
- Copy::aligned_disjoint_words((HeapWord*)o, (HeapWord*)_tmp_obj, size);
+ Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(o), cast_from_oop<HeapWord*>(_tmp_obj), size);
}
virtual void do_object(oop obj) {
@@ -505,9 +515,6 @@ void VM_EnhancedRedefineClasses::doit() {
ClearCpoolCacheAndUnpatch clear_cpool_cache(thread);
ClassLoaderDataGraph::classes_do(&clear_cpool_cache);
-
- // SystemDictionary::methods_do(fix_invoke_method);
-
// JSR-292 support
if (_any_class_has_resolved_methods) {
bool trace_name_printed = false;
@@ -564,8 +571,8 @@ void VM_EnhancedRedefineClasses::doit() {
InstanceKlass* old = InstanceKlass::cast(cur->old_version());
// Swap marks to have same hashcodes
- markOop cur_mark = cur->prototype_header();
- markOop old_mark = old->prototype_header();
+ markWord cur_mark = cur->prototype_header();
+ markWord old_mark = old->prototype_header();
cur->set_prototype_header(old_mark);
old->set_prototype_header(cur_mark);
@@ -579,14 +586,14 @@ void VM_EnhancedRedefineClasses::doit() {
// Revert pool holder for old version of klass (it was updated by one of ours closure!)
old->constants()->set_pool_holder(old);
- Klass* array_klasses = old->array_klasses();
+ ObjArrayKlass* array_klasses = old->array_klasses();
if (array_klasses != NULL) {
assert(cur->array_klasses() == NULL, "just checking");
// Transfer the array classes, otherwise we might get cast exceptions when casting array types.
// Also, set array klasses element klass.
cur->set_array_klasses(array_klasses);
- ObjArrayKlass::cast(array_klasses)->set_element_klass(cur);
+ array_klasses->set_element_klass(cur);
java_lang_Class::release_set_array_klass(cur->java_mirror(), array_klasses);
java_lang_Class::set_component_mirror(array_klasses->java_mirror(), cur->java_mirror());
}
@@ -641,11 +648,15 @@ void VM_EnhancedRedefineClasses::doit() {
//ClassLoaderDataGraph::classes_do(&clean_weak_method_links);
// Disable any dependent concurrent compilations
- SystemDictionary::notice_modification();
+ // SystemDictionary::notice_modification();
+
+ JvmtiExport::increment_redefinition_count();
// Set flag indicating that some invariants are no longer true.
// See jvmtiExport.hpp for detailed explanation.
- JvmtiExport::set_has_redefined_a_class();
+
+ // dcevm15: handled by _redefinition_count
+ // JvmtiExport::set_has_redefined_a_class();
#ifdef PRODUCT
if (log_is_enabled(Trace, redefine, class, obsolete, metadata)) {
@@ -718,7 +729,7 @@ bool VM_EnhancedRedefineClasses::is_modifiable_class(oop klass_mirror) {
}
// Cannot redefine or retransform an anonymous class.
- if (InstanceKlass::cast(k)->is_anonymous()) {
+ if (InstanceKlass::cast(k)->is_unsafe_anonymous()) {
return false;
}
return true;
@@ -804,22 +815,30 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
InstanceKlass* k;
- if (InstanceKlass::cast(the_class)->is_anonymous()) {
- const InstanceKlass* host_class = the_class->host_klass();
+ if (InstanceKlass::cast(the_class)->is_unsafe_anonymous()) {
+ const InstanceKlass* host_class = the_class->unsafe_anonymous_host();
// Make sure it's the real host class, not another anonymous class.
- while (host_class != NULL && host_class->is_anonymous()) {
- host_class = host_class->host_klass();
+ while (host_class != NULL && host_class->is_unsafe_anonymous()) {
+ host_class = host_class->unsafe_anonymous_host();
}
+ ClassLoadInfo cl_info(protection_domain,
+ host_class,
+ NULL, // dynamic_nest_host
+ NULL, // cp_patches
+ Handle(), // classData
+ false, // is_hidden
+ false, // is_strong_hidden
+ true); // FIXME: check if correct. can_access_vm_annotations
+
k = SystemDictionary::parse_stream(the_class_sym,
the_class_loader,
- protection_domain,
&st,
- host_class,
+ cl_info,
the_class,
- NULL,
THREAD);
+
k->class_loader_data()->exchange_holders(the_class->class_loader_data());
the_class->class_loader_data()->inc_keep_alive();
} else {
@@ -966,7 +985,7 @@ int VM_EnhancedRedefineClasses::calculate_redefinition_flags(InstanceKlass* new_
// Check interfaces
// Interfaces removed?
- Array<Klass*>* old_interfaces = the_class->transitive_interfaces();
+ Array<InstanceKlass*>* old_interfaces = the_class->transitive_interfaces();
for (i = 0; i < old_interfaces->length(); i++) {
InstanceKlass* old_interface = InstanceKlass::cast(old_interfaces->at(i));
if (!new_class->implements_interface_any_version(old_interface)) {
@@ -976,7 +995,7 @@ int VM_EnhancedRedefineClasses::calculate_redefinition_flags(InstanceKlass* new_
}
// Interfaces added?
- Array<Klass*>* new_interfaces = new_class->transitive_interfaces();
+ Array<InstanceKlass*>* new_interfaces = new_class->transitive_interfaces();
for (i = 0; i<new_interfaces->length(); i++) {
if (!the_class->implements_interface_any_version(new_interfaces->at(i))) {
result = result | Klass::ModifyClass;
@@ -1389,8 +1408,8 @@ void VM_EnhancedRedefineClasses::rollback() {
// Rewrite faster byte-codes back to their slower equivalent. Undoes rewriting happening in templateTable_xxx.cpp
// The reason is that once we zero cpool caches, we need to re-resolve all entries again. Faster bytecodes do not
// do that, they assume that cache entry is resolved already.
-void VM_EnhancedRedefineClasses::unpatch_bytecode(Method* method) {
- RawBytecodeStream bcs(method);
+void VM_EnhancedRedefineClasses::unpatch_bytecode(Method* method, TRAPS) {
+ RawBytecodeStream bcs(methodHandle(THREAD, method));
Bytecodes::Code code;
Bytecodes::Code java_code;
while (!bcs.is_last_bytecode()) {
@@ -1454,11 +1473,11 @@ void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
HandleMark hm(_thread);
InstanceKlass *ik = InstanceKlass::cast(k);
- constantPoolHandle other_cp = constantPoolHandle(ik->constants());
+ constantPoolHandle other_cp = constantPoolHandle(_thread, ik->constants());
// Update host klass of anonymous classes (for example, produced by lambdas) to newest version.
- if (ik->is_anonymous() && ik->host_klass()->new_version() != NULL) {
- ik->set_host_klass(InstanceKlass::cast(ik->host_klass()->newest_version()));
+ if (ik->is_unsafe_anonymous() && ik->unsafe_anonymous_host()->new_version() != NULL) {
+ ik->set_unsafe_anonymous_host(InstanceKlass::cast(ik->unsafe_anonymous_host()->newest_version()));
}
// Update implementor if there is only one, in this case implementor() can reference old class
@@ -1492,7 +1511,18 @@ void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
// If bytecode rewriting is enabled, we also need to unpatch bytecode to force resolution of zeroed entries
if (RewriteBytecodes) {
- ik->methods_do(unpatch_bytecode);
+ ik->methods_do(unpatch_bytecode, _thread);
+ }
+}
+
+u8 VM_EnhancedRedefineClasses::next_id() {
+ while (true) {
+ u8 id = _id_counter;
+ u8 next_id = id + 1;
+ u8 result = Atomic::cmpxchg(&_id_counter, id, next_id);
+ if (result == id) {
+ return next_id;
+ }
}
}
@@ -1512,31 +1542,8 @@ void VM_EnhancedRedefineClasses::MethodDataCleaner::do_klass(Klass* k) {
}
}
-void VM_EnhancedRedefineClasses::fix_invoke_method(Method* method) {
-
- constantPoolHandle other_cp = constantPoolHandle(method->constants());
-
- for (int i = 0; i < other_cp->length(); i++) {
- if (other_cp->tag_at(i).is_klass()) {
- Klass* klass = other_cp->resolved_klass_at(i);
- if (klass->new_version() != NULL) {
- // Constant pool entry points to redefined class -- update to the new version
- other_cp->klass_at_put(i, klass->newest_version());
- }
- assert(other_cp->resolved_klass_at(i)->new_version() == NULL, "Must be new klass!");
- }
- }
-
- ConstantPoolCache* cp_cache = other_cp->cache();
- if (cp_cache != NULL) {
- cp_cache->clear_entries();
- }
-
-}
-
-
-void VM_EnhancedRedefineClasses::update_jmethod_ids() {
+void VM_EnhancedRedefineClasses::update_jmethod_ids(TRAPS) {
for (int j = 0; j < _matching_methods_length; ++j) {
Method* old_method = _matching_old_methods[j];
jmethodID jmid = old_method->find_jmethod_id_or_null();
@@ -1547,10 +1554,10 @@ void VM_EnhancedRedefineClasses::update_jmethod_ids() {
if (jmid != NULL) {
// There is a jmethodID, change it to point to the new method
- methodHandle new_method_h(_matching_new_methods[j]);
+ methodHandle new_method_h(THREAD, _matching_new_methods[j]);
if (old_method->new_version() == NULL) {
- methodHandle old_method_h(_matching_old_methods[j]);
+ methodHandle old_method_h(THREAD, _matching_old_methods[j]);
jmethodID new_jmethod_id = Method::make_jmethod_id(old_method_h->method_holder()->class_loader_data(), old_method_h());
bool result = InstanceKlass::cast(old_method_h->method_holder())->update_jmethod_id(old_method_h(), new_jmethod_id);
} else {
@@ -1887,7 +1894,7 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
// track number of methods that are EMCP for add_previous_version() call below
check_methods_and_mark_as_obsolete();
- update_jmethod_ids();
+ update_jmethod_ids(THREAD);
_any_class_has_resolved_methods = the_class->has_resolved_methods() || _any_class_has_resolved_methods;
@@ -2119,12 +2126,12 @@ jvmtiError VM_EnhancedRedefineClasses::do_topological_class_sorting(TRAPS) {
Handle protection_domain(THREAD, klass->protection_domain());
+ ClassLoadInfo cl_info(protection_domain);
+
ClassFileParser parser(&st,
klass->name(),
klass->class_loader_data(),
- protection_domain,
- NULL, // host_klass
- NULL, // cp_patches
+ &cl_info,
ClassFileParser::INTERNAL, // publicity level
true,
THREAD);
@@ -2134,7 +2141,7 @@ jvmtiError VM_EnhancedRedefineClasses::do_topological_class_sorting(TRAPS) {
links.append(KlassPair(super_klass, klass));
}
- Array<Klass*>* local_interfaces = parser.local_interfaces();
+ Array<InstanceKlass*>* local_interfaces = parser.local_interfaces();
for (int j = 0; j < local_interfaces->length(); j++) {
Klass* iface = local_interfaces->at(j);
if (iface != NULL && _affected_klasses->contains(iface)) {
@@ -2157,7 +2164,7 @@ jvmtiError VM_EnhancedRedefineClasses::do_topological_class_sorting(TRAPS) {
links.append(KlassPair(super_klass, klass));
}
- Array<Klass*>* local_interfaces = klass->local_interfaces();
+ Array<InstanceKlass*>* local_interfaces = klass->local_interfaces();
for (int j = 0; j < local_interfaces->length(); j++) {
Klass* interfaceKlass = local_interfaces->at(j);
if (_affected_klasses->contains(interfaceKlass)) {
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 4c0412d343d..0066088b3b0 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -32,7 +32,7 @@
#include "memory/resourceArea.hpp"
#include "oops/objArrayKlass.hpp"
#include "oops/objArrayOop.hpp"
-#include "gc/shared/vmGCOperations.hpp"
+#include "gc/shared/gcVMOperations.hpp"
#include "../../../java.base/unix/native/include/jni_md.h"
//
@@ -59,6 +59,7 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
static int _deleted_methods_length;
static int _added_methods_length;
static Klass* _the_class_oop;
+ static u8 _id_counter;
// The instance fields are used to pass information from
// doit_prologue() to doit() and doit_epilogue().
@@ -91,6 +92,9 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
elapsedTimer _timer_heap_iterate;
elapsedTimer _timer_heap_full_gc;
+ // Redefinition id used by JFR
+ u8 _id;
+
// These routines are roughly in call order unless otherwise noted.
// Load and link new classes (either redefined or affected by redefinition - subclass, ...)
@@ -118,15 +122,14 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
static void mark_as_scavengable(nmethod* nm);
static void unregister_nmethod_g1(nmethod* nm);
static void register_nmethod_g1(nmethod* nm);
- static void unpatch_bytecode(Method* method);
- static void fix_invoke_method(Method* method);
+ static void unpatch_bytecode(Method* method, TRAPS);
// Figure out which new methods match old methods in name and signature,
// which methods have been added, and which are no longer present
void compute_added_deleted_matching_methods();
// Change jmethodIDs to point to the new methods
- void update_jmethod_ids();
+ void update_jmethod_ids(TRAPS);
// marking methods as old and/or obsolete
void check_methods_and_mark_as_obsolete();
@@ -141,6 +144,8 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
void flush_dependent_code(InstanceKlass* k_h, TRAPS);
+ u8 next_id();
+
static void check_class(InstanceKlass* k_oop, TRAPS);
static void dump_methods();
@@ -181,6 +186,7 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
bool allow_nested_vm_operations() const { return true; }
jvmtiError check_error() { return _res; }
+ u8 id() { return _id; }
// Modifiable test must be shared between IsModifiableClass query
// and redefine implementation
diff --git a/src/hotspot/share/prims/jvmtiEnv.cpp b/src/hotspot/share/prims/jvmtiEnv.cpp
index b6838ac034d..fba0f48abd7 100644
--- a/src/hotspot/share/prims/jvmtiEnv.cpp
+++ b/src/hotspot/share/prims/jvmtiEnv.cpp
@@ -456,20 +456,23 @@ JvmtiEnv::RetransformClasses(jint class_count, const jclass* classes) {
EventRetransformClasses event;
jvmtiError error;
+ u8 op_id;
if (AllowEnhancedClassRedefinition) {
MutexLocker sd_mutex(EnhancedRedefineClasses_lock);
VM_EnhancedRedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_retransform);
VMThread::execute(&op);
+ op_id = op.id();
error = (op.check_error());
} else {
VM_RedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_retransform);
VMThread::execute(&op);
+ op_id = op.id();
error = op.check_error();
}
if (error == JVMTI_ERROR_NONE) {
event.set_classCount(class_count);
- event.set_redefinitionId(op.id());
+ event.set_redefinitionId(op_id);
event.commit();
}
return error;
@@ -484,19 +487,23 @@ JvmtiEnv::RedefineClasses(jint class_count, const jvmtiClassDefinition* class_de
EventRedefineClasses event;
jvmtiError error;
+ u8 op_id;
+
if (AllowEnhancedClassRedefinition) {
MutexLocker sd_mutex(EnhancedRedefineClasses_lock);
VM_EnhancedRedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_redefine);
VMThread::execute(&op);
+ op_id = op.id();
error = (op.check_error());
} else {
VM_RedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_redefine);
VMThread::execute(&op);
+ op_id = op.id();
error = op.check_error();
}
if (error == JVMTI_ERROR_NONE) {
event.set_classCount(class_count);
- event.set_redefinitionId(op.id());
+ event.set_redefinitionId(op_id);
event.commit();
}
return error;
diff --git a/src/hotspot/share/prims/jvmtiRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiRedefineClasses.cpp
index a7840848e10..346eac7c431 100644
--- a/src/hotspot/share/prims/jvmtiRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiRedefineClasses.cpp
@@ -1271,6 +1271,7 @@ jvmtiError VM_RedefineClasses::load_new_class_versions(TRAPS) {
the_class_loader,
&st,
cl_info,
+ NULL,
THREAD);
// Clear class_being_redefined just to be sure.
state->clear_class_being_redefined();
diff --git a/src/hotspot/share/prims/methodHandles.hpp b/src/hotspot/share/prims/methodHandles.hpp
index 54f36202a5f..917d31efd77 100644
--- a/src/hotspot/share/prims/methodHandles.hpp
+++ b/src/hotspot/share/prims/methodHandles.hpp
@@ -180,6 +180,9 @@ public:
assert(ref_kind_is_valid(ref_kind), "");
return (ref_kind & 1) != 0;
}
+ static bool ref_kind_is_static(int ref_kind) {
+ return !ref_kind_has_receiver(ref_kind) && (ref_kind != JVM_REF_newInvokeSpecial);
+ }
static int ref_kind_to_flags(int ref_kind);
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index d05a2893498..3a92b8869dc 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -2128,13 +2128,15 @@ bool Arguments::check_gc_consistency() {
// of collectors.
uint i = 0;
if (UseSerialGC) i++;
- if (UseConcMarkSweepGC) i++;
- if (UseParallelGC || UseParallelOldGC) i++;
+ if (UseParallelGC) i++;
if (UseG1GC) i++;
+ if (UseEpsilonGC) i++;
+ if (UseZGC) i++;
+ if (UseShenandoahGC) i++;
if (AllowEnhancedClassRedefinition) {
// Must use serial GC. This limitation applies because the instance size changing GC modifications
// are only built into the mark and compact algorithm.
- if ((!UseSerialGC && !UseG1GC) && i >= 1) {
+ if (!UseSerialGC && !UseG1GC && i >= 1) {
jio_fprintf(defaultStream::error_stream(),
"Must use the Serial or G1 GC with enhanced class redefinition.\n");
return false;
@@ -4494,18 +4496,18 @@ void Arguments::setup_hotswap_agent() {
// TODO: open it only for org.hotswap.agent module
// Use to access java.lang.reflect.Proxy/proxyCache
- create_numbered_property("jdk.module.addopens", "java.base/java.lang=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.base/java.lang=ALL-UNNAMED", addopens_count++);
// Class of field java.lang.reflect.Proxy/proxyCache
- create_numbered_property("jdk.module.addopens", "java.base/jdk.internal.loader=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.base/jdk.internal.loader=ALL-UNNAMED", addopens_count++);
// Use to access java.io.Reader, java.io.InputStream, java.io.FileInputStream
- create_numbered_property("jdk.module.addopens", "java.base/java.io=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.base/java.io=ALL-UNNAMED", addopens_count++);
// java.beans.Introspector access
- create_numbered_property("jdk.module.addopens", "java.desktop/java.beans=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.desktop/java.beans=ALL-UNNAMED", addopens_count++);
// java.beans.Introspector access
- create_numbered_property("jdk.module.addopens", "java.desktop/com.sun.beans=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.desktop/com.sun.beans=ALL-UNNAMED", addopens_count++);
// com.sun.beans.introspect.ClassInfo access
- create_numbered_property("jdk.module.addopens", "java.desktop/com.sun.beans.introspect=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.desktop/com.sun.beans.introspect=ALL-UNNAMED", addopens_count++);
// com.sun.beans.introspect.util.Cache access
- create_numbered_property("jdk.module.addopens", "java.desktop/com.sun.beans.util=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.desktop/com.sun.beans.util=ALL-UNNAMED", addopens_count++);
}
diff --git a/src/hotspot/share/runtime/mutexLocker.cpp b/src/hotspot/share/runtime/mutexLocker.cpp
index 6f982072909..14a3ed730fe 100644
--- a/src/hotspot/share/runtime/mutexLocker.cpp
+++ b/src/hotspot/share/runtime/mutexLocker.cpp
@@ -287,7 +287,7 @@ void mutex_init() {
def(InitCompleted_lock , PaddedMonitor, leaf, true, _safepoint_check_never);
def(VtableStubs_lock , PaddedMutex , nonleaf, true, _safepoint_check_never);
def(Notify_lock , PaddedMonitor, nonleaf, true, _safepoint_check_always);
- def(EnhancedRedefineClasses_lock , PaddedMutex , nonleaf+7, false, Monitor::_safepoint_check_always); // for ensuring that class redefinition is not done in parallel
+ def(EnhancedRedefineClasses_lock , PaddedMutex , nonleaf+7, false, _safepoint_check_always); // for ensuring that class redefinition is not done in parallel
def(JNICritical_lock , PaddedMonitor, nonleaf, true, _safepoint_check_always); // used for JNI critical regions
def(AdapterHandlerLibrary_lock , PaddedMutex , nonleaf, true, _safepoint_check_always);
--
2.23.0

View File

@@ -0,0 +1,25 @@
From 336cab4f72c6e642e3077ea8d1a4860de33f5a4d Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Tue, 17 Nov 2020 17:40:24 +0100
Subject: [PATCH 20/34] dcevm15 - G1 fixes
---
src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp b/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
index 2f06b9617e4..476728a5d26 100644
--- a/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
@@ -240,7 +240,7 @@ void G1FullGCPrepareTask::prepare_serial_compaction_dcevm() {
// collect remaining, not forwarded rescued oops using serial compact point
while (cp->last_rescued_oop() < cp->rescued_oops()->length()) {
- HeapRegion* hr = G1CollectedHeap::heap()->new_region(HeapRegion::GrainBytes / HeapWordSize, false, true);
+ HeapRegion* hr = G1CollectedHeap::heap()->new_region(HeapRegion::GrainBytes / HeapWordSize, HeapRegionType::Eden, true, G1NUMA::AnyNodeIndex);
if (hr == NULL) {
vm_exit_out_of_memory(0, OOM_MMAP_ERROR, "G1 - not enough of free regions after redefinition.");
}
--
2.23.0

View File

@@ -0,0 +1,133 @@
From cea4e2cca3c37233c728be7235f8f9d8be136cb5 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Tue, 17 Nov 2020 18:52:57 +0100
Subject: [PATCH 21/34] dcevm15 - Fix flush dependent code
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 57 +++++++------------
.../prims/jvmtiEnhancedRedefineClasses.hpp | 4 +-
2 files changed, 25 insertions(+), 36 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 619e3988e3a..efaf11e1666 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -508,7 +508,7 @@ void VM_EnhancedRedefineClasses::doit() {
// Deoptimize all compiled code that depends on this class (do only once, because it clears whole cache)
// if (_max_redefinition_flags > Klass::ModifyClass) {
- flush_dependent_code(NULL, thread);
+ flush_dependent_code(thread);
// }
// Adjust constantpool caches for all classes that reference methods of the evolved class.
@@ -647,17 +647,8 @@ void VM_EnhancedRedefineClasses::doit() {
//MethodDataCleaner clean_weak_method_links;
//ClassLoaderDataGraph::classes_do(&clean_weak_method_links);
- // Disable any dependent concurrent compilations
- // SystemDictionary::notice_modification();
-
JvmtiExport::increment_redefinition_count();
- // Set flag indicating that some invariants are no longer true.
- // See jvmtiExport.hpp for detailed explanation.
-
- // dcevm15: handled by _redefinition_count
- // JvmtiExport::set_has_redefined_a_class();
-
#ifdef PRODUCT
if (log_is_enabled(Trace, redefine, class, obsolete, metadata)) {
#endif
@@ -1746,6 +1737,18 @@ void VM_EnhancedRedefineClasses::transfer_old_native_function_registrations(Inst
transfer.transfer_registrations(_matching_old_methods, _matching_methods_length);
}
+// First step is to walk the code cache for each class redefined and mark
+// dependent methods. Wait until all classes are processed to deoptimize everything.
+void VM_EnhancedRedefineClasses::mark_dependent_code(InstanceKlass* ik) {
+ assert_locked_or_safepoint(Compile_lock);
+
+ // All dependencies have been recorded from startup or this is a second or
+ // subsequent use of RedefineClasses
+ if (0 && JvmtiExport::all_dependencies_are_recorded()) {
+ CodeCache::mark_for_evol_deoptimization(ik);
+ }
+}
+
// DCEVM - it always deoptimizes everything! (because it is very difficult to find only correct dependencies)
// Deoptimize all compiled code that depends on this class.
//
@@ -1762,33 +1765,21 @@ void VM_EnhancedRedefineClasses::transfer_old_native_function_registrations(Inst
// subsequent calls to RedefineClasses need only throw away code
// that depends on the class.
//
-void VM_EnhancedRedefineClasses::flush_dependent_code(InstanceKlass* k_h, TRAPS) {
+void VM_EnhancedRedefineClasses::flush_dependent_code(TRAPS) {
assert_locked_or_safepoint(Compile_lock);
// All dependencies have been recorded from startup or this is a second or
// subsequent use of RedefineClasses
// FIXME: for now, deoptimize all!
- if (0 && k_h != NULL && JvmtiExport::all_dependencies_are_recorded()) {
- CodeCache::flush_evol_dependents_on(k_h);
- Klass* superCl = k_h->super();
- // Deoptimize super classes since redefined class can has a new method override
- while (superCl != NULL && !superCl->is_redefining()) {
- CodeCache::flush_evol_dependents_on(InstanceKlass::cast(superCl));
- superCl = superCl->super();
+ if (0 && JvmtiExport::all_dependencies_are_recorded()) {
+ int deopt = CodeCache::mark_dependents_for_evol_deoptimization();
+ log_debug(redefine, class, nmethod)("Marked %d dependent nmethods for deopt", deopt);
+ if (deopt != 0) {
+ CodeCache::flush_evol_dependents();
}
} else {
- CodeCache::mark_all_nmethods_for_deoptimization();
-
- ResourceMark rm(THREAD);
- DeoptimizationMarker dm;
-
- // Deoptimize all activations depending on marked nmethods
- Deoptimization::deoptimize_dependents();
-
- // Make the dependent methods not entrant
- CodeCache::make_marked_nmethods_not_entrant();
-
- // From now on we know that the dependency information is complete
+ CodeCache::mark_all_nmethods_for_evol_deoptimization();
+ CodeCache::flush_evol_dependents();
JvmtiExport::set_all_dependencies_are_recorded(true);
}
}
@@ -1881,11 +1872,7 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
JvmtiBreakpoints& jvmti_breakpoints = JvmtiCurrentBreakpoints::get_jvmti_breakpoints();
jvmti_breakpoints.clearall_in_class_at_safepoint(the_class);
- // DCEVM Deoptimization is always for whole java world, call only once after all classes are redefined
- // Deoptimize all compiled code that depends on this class
-// if (_max_redefinition_flags <= Klass::ModifyClass) {
-// flush_dependent_code(the_class, THREAD);
-// }
+ mark_dependent_code(the_class);
_old_methods = the_class->methods();
_new_methods = new_class->methods();
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 0066088b3b0..bd5e7d153be 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -142,7 +142,9 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
// and in all direct and indirect subclasses.
void increment_class_counter(InstanceKlass *ik, TRAPS);
- void flush_dependent_code(InstanceKlass* k_h, TRAPS);
+ void mark_dependent_code(InstanceKlass* ik);
+
+ void flush_dependent_code(TRAPS);
u8 next_id();
--
2.23.0

View File

@@ -0,0 +1,211 @@
From 4f88dcec830d39452f69d1117729469fdb768a8f Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 12:05:26 +0100
Subject: [PATCH 22/34] dcevm15 - fix ResolvedMethodTable
---
src/hotspot/share/classfile/javaClasses.cpp | 5 -
src/hotspot/share/classfile/javaClasses.hpp | 1 -
.../share/prims/resolvedMethodTable.cpp | 139 +++++++++++-------
3 files changed, 84 insertions(+), 61 deletions(-)
diff --git a/src/hotspot/share/classfile/javaClasses.cpp b/src/hotspot/share/classfile/javaClasses.cpp
index 9b086a241f7..9a627786d0f 100644
--- a/src/hotspot/share/classfile/javaClasses.cpp
+++ b/src/hotspot/share/classfile/javaClasses.cpp
@@ -3996,11 +3996,6 @@ void java_lang_invoke_ResolvedMethodName::set_vmholder(oop resolved_method, oop
resolved_method->obj_field_put(_vmholder_offset, holder);
}
-void java_lang_invoke_ResolvedMethodName::set_vmholder_offset(oop resolved_method, Method* m) {
- assert(is_instance(resolved_method), "wrong type");
- resolved_method->obj_field_put(_vmholder_offset, m->method_holder()->java_mirror());
-}
-
oop java_lang_invoke_ResolvedMethodName::find_resolved_method(const methodHandle& m, TRAPS) {
const Method* method = m();
diff --git a/src/hotspot/share/classfile/javaClasses.hpp b/src/hotspot/share/classfile/javaClasses.hpp
index 9abf2e1d105..8f5993b7225 100644
--- a/src/hotspot/share/classfile/javaClasses.hpp
+++ b/src/hotspot/share/classfile/javaClasses.hpp
@@ -1107,7 +1107,6 @@ class java_lang_invoke_ResolvedMethodName : AllStatic {
static Method* vmtarget(oop resolved_method);
static void set_vmtarget(oop resolved_method, Method* method);
- static void set_vmholder_offset(oop resolved_method, Method* method);
static void set_vmholder(oop resolved_method, oop holder);
diff --git a/src/hotspot/share/prims/resolvedMethodTable.cpp b/src/hotspot/share/prims/resolvedMethodTable.cpp
index eb9fcda44f3..d0f1667b967 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -375,6 +375,67 @@ public:
}
};
+class AdjustMethodEntriesDcevm : public StackObj {
+ bool* _trace_name_printed;
+ GrowableArray<oop>* _oops_to_add;
+public:
+ AdjustMethodEntriesDcevm(GrowableArray<oop>* oops_to_add, bool* trace_name_printed) : _trace_name_printed(trace_name_printed), _oops_to_add(oops_to_add) {};
+ bool operator()(WeakHandle<vm_resolved_method_table_data>* entry) {
+ oop mem_name = entry->peek();
+ if (mem_name == NULL) {
+ // Removed
+ return true;
+ }
+
+ Method* old_method = (Method*)java_lang_invoke_ResolvedMethodName::vmtarget(mem_name);
+
+ if (old_method->is_old()) {
+
+ InstanceKlass* newer_klass = InstanceKlass::cast(old_method->method_holder()->new_version());
+ Method* newer_method;
+
+ // Method* new_method;
+ if (old_method->is_deleted()) {
+ newer_method = Universe::throw_no_such_method_error();
+ } else {
+ newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
+
+ log_debug(redefine, class, update)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
+
+ assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
+ assert(newer_method != NULL, "method_with_idnum() should not be NULL");
+ assert(old_method != newer_method, "sanity check");
+
+ Thread* thread = Thread::current();
+ ResolvedMethodTableLookup lookup(thread, method_hash(newer_method), newer_method);
+ ResolvedMethodGet rmg(thread, newer_method);
+
+ if (_local_table->get(thread, lookup, rmg)) {
+ // old method was already adjusted if new method exists in _the_table
+ return true;
+ }
+ }
+
+ java_lang_invoke_ResolvedMethodName::set_vmtarget(mem_name, newer_method);
+ java_lang_invoke_ResolvedMethodName::set_vmholder(mem_name, newer_method->method_holder()->java_mirror());
+
+ newer_klass->set_has_resolved_methods();
+ _oops_to_add->append(mem_name);
+
+ ResourceMark rm;
+ if (!(*_trace_name_printed)) {
+ log_debug(redefine, class, update)("adjust: name=%s", old_method->method_holder()->external_name());
+ *_trace_name_printed = true;
+ }
+ log_debug(redefine, class, update, constantpool)
+ ("ResolvedMethod method update: %s(%s)",
+ newer_method->name()->as_C_string(), newer_method->signature()->as_C_string());
+ }
+
+ return true;
+ }
+};
+
// It is called at safepoint only for RedefineClasses
void ResolvedMethodTable::adjust_method_entries(bool * trace_name_printed) {
assert(SafepointSynchronize::is_at_safepoint(), "only called at safepoint");
@@ -382,73 +443,41 @@ void ResolvedMethodTable::adjust_method_entries(bool * trace_name_printed) {
AdjustMethodEntries adjust(trace_name_printed);
_local_table->do_safepoint_scan(adjust);
}
-#endif // INCLUDE_JVMTI
-// (DCEVM) It is called at safepoint only for RedefineClasses
+// It is called at safepoint only for RedefineClasses
void ResolvedMethodTable::adjust_method_entries_dcevm(bool * trace_name_printed) {
assert(SafepointSynchronize::is_at_safepoint(), "only called at safepoint");
// For each entry in RMT, change to new method
- GrowableArray<oop>* oops_to_add = new GrowableArray<oop>();
-
- for (int i = 0; i < _the_table->table_size(); ++i) {
- for (ResolvedMethodEntry* entry = _the_table->bucket(i);
- entry != NULL;
- entry = entry->next()) {
-
- oop mem_name = entry->object_no_keepalive();
- // except ones removed
- if (mem_name == NULL) {
- continue;
- }
- Method* old_method = (Method*)java_lang_invoke_ResolvedMethodName::vmtarget(mem_name);
-
- if (old_method->is_old()) {
-
- InstanceKlass* newer_klass = InstanceKlass::cast(old_method->method_holder()->new_version());
- Method* newer_method;
-
- // Method* new_method;
- if (old_method->is_deleted()) {
- newer_method = Universe::throw_no_such_method_error();
- } else {
- newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
-
- log_debug(redefine, class, update)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
-
- assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
- assert(newer_method != NULL, "method_with_idnum() should not be NULL");
- assert(old_method != newer_method, "sanity check");
-
- if (_the_table->lookup(newer_method) != NULL) {
- // old method was already adjusted if new method exists in _the_table
- continue;
- }
- }
+ GrowableArray<oop> oops_to_add(0);
+ AdjustMethodEntriesDcevm adjust(&oops_to_add, trace_name_printed);
+ _local_table->do_safepoint_scan(adjust);
+ Thread* thread = Thread::current();
+ for (int i = 0; i < oops_to_add.length(); i++) {
+ oop mem_name = oops_to_add.at(i);
+ Method* method = (Method*)java_lang_invoke_ResolvedMethodName::vmtarget(mem_name);
- java_lang_invoke_ResolvedMethodName::set_vmtarget(mem_name, newer_method);
- java_lang_invoke_ResolvedMethodName::set_vmholder_offset(mem_name, newer_method);
+ // The hash table takes ownership of the WeakHandle, even if it's not inserted.
- newer_klass->set_has_resolved_methods();
- oops_to_add->append(mem_name);
+ ResolvedMethodTableLookup lookup(thread, method_hash(method), method);
+ ResolvedMethodGet rmg(thread, method);
- ResourceMark rm;
- if (!(*trace_name_printed)) {
- log_debug(redefine, class, update)("adjust: name=%s", old_method->method_holder()->external_name());
- *trace_name_printed = true;
- }
- log_debug(redefine, class, update, constantpool)
- ("ResolvedMethod method update: %s(%s)",
- newer_method->name()->as_C_string(), newer_method->signature()->as_C_string());
+ while (true) {
+ if (_local_table->get(thread, lookup, rmg)) {
+ break;
+ }
+ WeakHandle<vm_resolved_method_table_data> wh = WeakHandle<vm_resolved_method_table_data>::create(Handle(thread, mem_name));
+ // The hash table takes ownership of the WeakHandle, even if it's not inserted.
+ if (_local_table->insert(thread, lookup, wh)) {
+ log_insert(method);
+ wh.resolve();
+ break;
}
- }
- for (int i = 0; i < oops_to_add->length(); i++) {
- oop mem_name = oops_to_add->at(i);
- Method* method = (Method*)java_lang_invoke_ResolvedMethodName::vmtarget(mem_name);
- _the_table->basic_add(method, Handle(Thread::current(), mem_name));
}
}
}
+#endif // INCLUDE_JVMTI
+
// Verification
class VerifyResolvedMethod : StackObj {
public:
--
2.23.0

View File

@@ -0,0 +1,88 @@
From 5379e56465d3d3930ec7ea91b1c64db2cdf70170 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 12:05:50 +0100
Subject: [PATCH 23/34] dcevm15 - fix Universe::root_oops_do
---
src/hotspot/share/memory/universe.cpp | 38 +++++++++------------------
1 file changed, 12 insertions(+), 26 deletions(-)
diff --git a/src/hotspot/share/memory/universe.cpp b/src/hotspot/share/memory/universe.cpp
index f6e4253b5a5..8dad437bd51 100644
--- a/src/hotspot/share/memory/universe.cpp
+++ b/src/hotspot/share/memory/universe.cpp
@@ -39,6 +39,7 @@
#include "gc/shared/gcConfig.hpp"
#include "gc/shared/gcLogPrecious.hpp"
#include "gc/shared/gcTraceTime.inline.hpp"
+#include "gc/shared/weakProcessor.hpp"
#include "interpreter/interpreter.hpp"
#include "logging/log.hpp"
#include "logging/logStream.hpp"
@@ -75,6 +76,7 @@
#include "runtime/thread.inline.hpp"
#include "runtime/timerTrace.hpp"
#include "runtime/vmOperations.hpp"
+#include "services/management.hpp"
#include "services/memoryService.hpp"
#include "utilities/align.hpp"
#include "utilities/copy.hpp"
@@ -180,45 +182,29 @@ void Universe::basic_type_classes_do(KlassClosure *closure) {
// FIXME: (DCEVM) This method should iterate all pointers that are not within heap objects.
void Universe::root_oops_do(OopClosure *oopClosure) {
-
- class AlwaysTrueClosure: public BoolObjectClosure {
- public:
- void do_object(oop p) { ShouldNotReachHere(); }
- bool do_object_b(oop p) { return true; }
- };
- AlwaysTrueClosure always_true;
-
Universe::oops_do(oopClosure);
// ReferenceProcessor::oops_do(oopClosure); (tw) check why no longer there
JNIHandles::oops_do(oopClosure); // Global (strong) JNI handles
Threads::oops_do(oopClosure, NULL);
ObjectSynchronizer::oops_do(oopClosure);
- // TODO: review, flat profiler was removed in j10
- // FlatProfiler::oops_do(oopClosure);
- JvmtiExport::oops_do(oopClosure);
+ // (DCEVM) TODO: Check if this is correct?
+ Management::oops_do(oopClosure);
+ OopStorageSet::vm_global()->oops_do(oopClosure);
+ CLDToOopClosure cld_closure(oopClosure, ClassLoaderData::_claim_none);
+ ClassLoaderDataGraph::cld_do(&cld_closure);
// Now adjust pointers in remaining weak roots. (All of which should
// have been cleared if they pointed to non-surviving objects.)
// Global (weak) JNI handles
- JNIHandles::weak_oops_do(&always_true, oopClosure);
+ WeakProcessor::oops_do(oopClosure);
CodeBlobToOopClosure blobClosure(oopClosure, CodeBlobToOopClosure::FixRelocations);
CodeCache::blobs_do(&blobClosure);
- StringTable::oops_do(oopClosure);
+ AOT_ONLY(AOTLoader::oops_do(oopClosure);)
+ // StringTable::oops_do was removed in j15
+ // StringTable::oops_do(oopClosure);
- // (DCEVM) TODO: Check if this is correct?
- //CodeCache::scavenge_root_nmethods_oops_do(oopClosure);
- //Management::oops_do(oopClosure);
- //ref_processor()->weak_oops_do(&oopClosure);
- //PSScavenge::reference_processor()->weak_oops_do(&oopClosure);
-
-#if INCLUDE_AOT
- if (UseAOT) {
- AOTLoader::oops_do(oopClosure);
- }
-#endif
- // SO_AllClasses
- SystemDictionary::oops_do(oopClosure);
+ // PSScavenge::reference_processor()->weak_oops_do(oopClosure);
}
void Universe::oops_do(OopClosure* f) {
--
2.23.0

View File

@@ -0,0 +1,67 @@
From c6ea68e66d37d70739f7b0ee74131322b4526a68 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 12:03:32 +0100
Subject: [PATCH 24/34] Cleanup dcevm comments
---
src/hotspot/share/classfile/classLoaderDataGraph.hpp | 2 +-
src/hotspot/share/classfile/systemDictionary.hpp | 2 +-
src/hotspot/share/gc/shared/gcConfig.cpp | 2 +-
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderDataGraph.hpp b/src/hotspot/share/classfile/classLoaderDataGraph.hpp
index f380aa3fa34..8ce94cccb47 100644
--- a/src/hotspot/share/classfile/classLoaderDataGraph.hpp
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.hpp
@@ -104,7 +104,7 @@ class ClassLoaderDataGraph : public AllStatic {
static void dictionary_classes_do(KlassClosure* klass_closure);
- // Enhanced class redefinition
+ // (DCEVM) Enhanced class redefinition
static void rollback_redefinition();
// VM_CounterDecay iteration support
diff --git a/src/hotspot/share/classfile/systemDictionary.hpp b/src/hotspot/share/classfile/systemDictionary.hpp
index 931e655d631..1019dbd0d04 100644
--- a/src/hotspot/share/classfile/systemDictionary.hpp
+++ b/src/hotspot/share/classfile/systemDictionary.hpp
@@ -455,7 +455,7 @@ public:
static bool is_well_known_klass(Symbol* class_name);
#endif
- // Enhanced class redefinition
+ // (DCEVM) Enhanced class redefinition
static void remove_from_hierarchy(InstanceKlass* k);
static void update_constraints_after_redefinition();
diff --git a/src/hotspot/share/gc/shared/gcConfig.cpp b/src/hotspot/share/gc/shared/gcConfig.cpp
index 5c1a09390f1..23fbf715378 100644
--- a/src/hotspot/share/gc/shared/gcConfig.cpp
+++ b/src/hotspot/share/gc/shared/gcConfig.cpp
@@ -99,7 +99,7 @@ void GCConfig::fail_if_non_included_gc_is_selected() {
void GCConfig::select_gc_ergonomically() {
if (AllowEnhancedClassRedefinition && !UseG1GC) {
- // Enhanced class redefinition only supports serial GC at the moment
+ // (DCEVM) Enhanced class redefinition only supports serial GC at the moment
FLAG_SET_ERGO(UseSerialGC, true);
} else if (os::is_server_class_machine()) {
#if INCLUDE_G1GC
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index bd5e7d153be..5de375fb888 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -78,7 +78,7 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
// have any entries.
bool _any_class_has_resolved_methods;
- // Enhanced class redefinition, affected klasses contain all classes which should be redefined
+ // (DCEVM) Enhanced class redefinition, affected klasses contain all classes which should be redefined
// either because of redefine, class hierarchy or interface change
GrowableArray<Klass*>* _affected_klasses;
--
2.23.0

View File

@@ -0,0 +1,43 @@
From 507d97966c7145d0ae2533459cc504c7b0d6d5b6 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 18:49:05 +0100
Subject: [PATCH 25/34] Fix cpCache in not AllowEnhancedClassRedefinition mode
---
src/hotspot/share/oops/cpCache.hpp | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/hotspot/share/oops/cpCache.hpp b/src/hotspot/share/oops/cpCache.hpp
index 121a13b1dda..64dcf6223f5 100644
--- a/src/hotspot/share/oops/cpCache.hpp
+++ b/src/hotspot/share/oops/cpCache.hpp
@@ -148,13 +148,13 @@ class ConstantPoolCacheEntry {
void set_bytecode_2(Bytecodes::Code code);
void set_f1(Metadata* f1) {
Metadata* existing_f1 = _f1; // read once
- //assert(existing_f1 == NULL || existing_f1 == f1, "illegal field change");
+ assert(AllowEnhancedClassRedefinition || existing_f1 == NULL || existing_f1 == f1, "illegal field change");
_f1 = f1;
}
void release_set_f1(Metadata* f1);
void set_f2(intx f2) {
intx existing_f2 = _f2; // read once
- //assert(existing_f2 == 0 || existing_f2 == f2, "illegal field change");
+ assert(AllowEnhancedClassRedefinition || existing_f2 == 0 || existing_f2 == f2, "illegal field change");
_f2 = f2;
}
void set_f2_as_vfinal_method(Method* f2) {
@@ -215,7 +215,9 @@ class ConstantPoolCacheEntry {
void initialize_resolved_reference_index(int ref_index) {
assert(_f2 == 0, "set once"); // note: ref_index might be zero also
_f2 = ref_index;
- _flags = 1 << is_resolved_ref_shift;
+ if (AllowEnhancedClassRedefinition) {
+ _flags = 1 << is_resolved_ref_shift;
+ }
}
void set_field( // sets entry to resolved field state
--
2.23.0

View File

@@ -0,0 +1,32 @@
From b516b615c20fafa2094dfb9f4cb08245b26418d0 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 19:51:46 +0100
Subject: [PATCH 26/34] dcevm15 - add ClassLoaderDataGraph_lock on
ClassLoaderDataGraph::classes_do
ClassLoaderDataGraph::classes_do need safepoint or lock,
find_sorted_affected_classes is not in safepoint therefore it must be
locked
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index efaf11e1666..197e1c0029f 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -2063,7 +2063,10 @@ jvmtiError VM_EnhancedRedefineClasses::find_sorted_affected_classes(TRAPS) {
AffectedKlassClosure closure(_affected_klasses);
// Updated in j10, from original SystemDictionary::classes_do
- ClassLoaderDataGraph::classes_do(&closure);
+ {
+ MutexLocker mcld(ClassLoaderDataGraph_lock);
+ ClassLoaderDataGraph::classes_do(&closure);
+ }
//ClassLoaderDataGraph::dictionary_classes_do(&closure);
log_trace(redefine, class, load)("%d classes affected", _affected_klasses->length());
--
2.23.0

View File

@@ -0,0 +1,29 @@
From c6498946006879314bdc6218ee72da5d9c88f237 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 28 Nov 2020 19:29:42 +0100
Subject: [PATCH 27/34] dcevm15 - check if has_nestmate_access_to has newest
host class
---
src/hotspot/share/oops/instanceKlass.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index 5e40d78a87e..1d9623f2446 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -445,6 +445,11 @@ bool InstanceKlass::has_nestmate_access_to(InstanceKlass* k, TRAPS) {
return false;
}
+ if (AllowEnhancedClassRedefinition) {
+ // TODO: (DCEVM) check if it correct. It fix problems with lambdas (hidden)
+ cur_host = InstanceKlass::cast(cur_host->newest_version());
+ }
+
Klass* k_nest_host = k->nest_host(CHECK_false);
if (k_nest_host == NULL) {
return false;
--
2.23.0

View File

@@ -0,0 +1,24 @@
From 86c27155386c1c40642c99c63a242d1f5d8601a5 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 28 Nov 2020 19:31:08 +0100
Subject: [PATCH 28/34] Remove unused fieldType
---
src/hotspot/share/classfile/vmSymbols.hpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/hotspot/share/classfile/vmSymbols.hpp b/src/hotspot/share/classfile/vmSymbols.hpp
index 6a3b234b222..eb06684a288 100644
--- a/src/hotspot/share/classfile/vmSymbols.hpp
+++ b/src/hotspot/share/classfile/vmSymbols.hpp
@@ -465,7 +465,6 @@
template(static_offset_name, "staticOffset") \
template(static_base_name, "staticBase") \
template(field_offset_name, "fieldOffset") \
- template(field_type_name, "fieldType") \
\
/* name symbols needed by intrinsics */ \
\
--
2.23.0

View File

@@ -0,0 +1,54 @@
From 025d0d2903963fb79f83cf0d90418783d3ef6813 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 17:18:16 +0100
Subject: [PATCH 29/34] mark_as_scavengable only alive methods
---
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 197e1c0029f..e00fac1f693 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -223,19 +223,21 @@ class FieldCopier : public FieldClosure {
// TODO: review...
void VM_EnhancedRedefineClasses::mark_as_scavengable(nmethod* nm) {
- ScavengableNMethods::register_nmethod(nm);
+ if (nm->is_alive()) {
+ ScavengableNMethods::register_nmethod(nm);
+ }
}
void VM_EnhancedRedefineClasses::unregister_nmethod_g1(nmethod* nm) {
// It should work not only for G1 but also for another GCs, but this way is safer now
- if (!nm->is_zombie() && !nm->is_unloaded()) {
+ if (nm->is_alive()) {
Universe::heap()->unregister_nmethod(nm);
}
}
void VM_EnhancedRedefineClasses::register_nmethod_g1(nmethod* nm) {
// It should work not only for G1 but also for another GCs, but this way is safer now
- if (!nm->is_zombie() && !nm->is_unloaded()) {
+ if (nm->is_alive()) {
Universe::heap()->register_nmethod(nm);
}
}
@@ -511,9 +513,9 @@ void VM_EnhancedRedefineClasses::doit() {
flush_dependent_code(thread);
// }
- // Adjust constantpool caches for all classes that reference methods of the evolved class.
- ClearCpoolCacheAndUnpatch clear_cpool_cache(thread);
- ClassLoaderDataGraph::classes_do(&clear_cpool_cache);
+ // Adjust constantpool caches for all classes that reference methods of the evolved class.
+ ClearCpoolCacheAndUnpatch clear_cpool_cache(thread);
+ ClassLoaderDataGraph::classes_do(&clear_cpool_cache);
// JSR-292 support
if (_any_class_has_resolved_methods) {
--
2.23.0

View File

@@ -0,0 +1,28 @@
From 27aabfefe7d799545049bb81ba19d4ed2ff6379c Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 17:20:11 +0100
Subject: [PATCH 30/34] dcevm15 - lock on
ClassLoaderDataGraph::rollback_redefinition
rollback is not in safepoint, therefore must be locked
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index e00fac1f693..db5fb1c472b 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -1382,7 +1382,9 @@ void VM_EnhancedRedefineClasses::calculate_instance_update_information(Klass* ne
// Rollback all changes - clear new classes from the system dictionary, return old classes to directory, free memory.
void VM_EnhancedRedefineClasses::rollback() {
log_info(redefine, class, load)("Rolling back redefinition, result=%d", _res);
+ ClassLoaderDataGraph_lock->lock();
ClassLoaderDataGraph::rollback_redefinition();
+ ClassLoaderDataGraph_lock->unlock();
for (int i = 0; i < _new_classes->length(); i++) {
SystemDictionary::remove_from_hierarchy(_new_classes->at(i));
--
2.23.0

View File

@@ -0,0 +1,28 @@
From 9b405cb642d5935c39c8dbd522ea2fdecfc29ef3 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 19:59:50 +0100
Subject: [PATCH 31/34] ResourceMark in G1IterateObjectClosureTask fixing
memory leaks
G1IterateObjectClosureTask is used only in redefinition full GC run
---
src/hotspot/share/gc/g1/g1CollectedHeap.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp
index a29d2dddc2d..2af6df6c1e4 100644
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp
@@ -2362,6 +2362,9 @@ class G1IterateObjectClosureTask : public AbstractGangTask {
_cl(cl), _g1h(g1h), _hrclaimer(g1h->workers()->active_workers()) { }
virtual void work(uint worker_id) {
+ Thread *thread = Thread::current();
+ HandleMark hm(thread); // make sure any handles created are deleted
+ ResourceMark rm(thread);
IterateObjectClosureRegionClosure blk(_cl);
_g1h->heap_region_par_iterate_from_worker_offset(&blk, &_hrclaimer, worker_id);
}
--
2.23.0

View File

@@ -0,0 +1,91 @@
From 40fe40884d4efc50864bb3f2dd88f0a2e7122d5a Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 20:05:03 +0100
Subject: [PATCH 32/34] dcevm15 - fix hidded classes
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 41 ++++++++++++++-----
1 file changed, 30 insertions(+), 11 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index db5fb1c472b..590f7fdfafe 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -722,7 +722,8 @@ bool VM_EnhancedRedefineClasses::is_modifiable_class(oop klass_mirror) {
}
// Cannot redefine or retransform an anonymous class.
- if (InstanceKlass::cast(k)->is_unsafe_anonymous()) {
+ // TODO: check if is correct in j15
+ if (InstanceKlass::cast(k)->is_unsafe_anonymous() || InstanceKlass::cast(k)->is_hidden()) {
return false;
}
return true;
@@ -808,21 +809,27 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
InstanceKlass* k;
- if (InstanceKlass::cast(the_class)->is_unsafe_anonymous()) {
- const InstanceKlass* host_class = the_class->unsafe_anonymous_host();
+ if (the_class->is_unsafe_anonymous() || the_class->is_hidden()) {
+ InstanceKlass* dynamic_host_class = NULL;
+ InstanceKlass* unsafe_anonymous_host = NULL;
- // Make sure it's the real host class, not another anonymous class.
- while (host_class != NULL && host_class->is_unsafe_anonymous()) {
- host_class = host_class->unsafe_anonymous_host();
+ if (the_class->is_hidden()) {
+ log_debug(redefine, class, load)("loading hidden class %s", the_class->name()->as_C_string());
+ dynamic_host_class = the_class->nest_host(THREAD);
+ }
+
+ if (the_class->is_unsafe_anonymous()) {
+ log_debug(redefine, class, load)("loading usafe anonymous %s", the_class->name()->as_C_string());
+ unsafe_anonymous_host = the_class->unsafe_anonymous_host();
}
ClassLoadInfo cl_info(protection_domain,
- host_class,
- NULL, // dynamic_nest_host
+ unsafe_anonymous_host,
NULL, // cp_patches
+ dynamic_host_class, // dynamic_nest_host
Handle(), // classData
- false, // is_hidden
- false, // is_strong_hidden
+ the_class->is_hidden(), // is_hidden
+ !the_class->is_non_strong_hidden(), // is_strong_hidden
true); // FIXME: check if correct. can_access_vm_annotations
k = SystemDictionary::parse_stream(the_class_sym,
@@ -833,7 +840,17 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
THREAD);
k->class_loader_data()->exchange_holders(the_class->class_loader_data());
- the_class->class_loader_data()->inc_keep_alive();
+
+ if (the_class->is_hidden()) {
+ // from jvm_lookup_define_class() (jvm.cpp):
+ // The hidden class loader data has been artificially been kept alive to
+ // this point. The mirror and any instances of this class have to keep
+ // it alive afterwards.
+ the_class->class_loader_data()->dec_keep_alive();
+ } else {
+ the_class->class_loader_data()->inc_keep_alive();
+ }
+
} else {
k = SystemDictionary::resolve_from_stream(the_class_sym,
the_class_loader,
@@ -1475,6 +1492,8 @@ void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
ik->set_unsafe_anonymous_host(InstanceKlass::cast(ik->unsafe_anonymous_host()->newest_version()));
}
+ // FIXME: check new nest_host for hidden
+
// Update implementor if there is only one, in this case implementor() can reference old class
if (ik->is_interface()) {
Klass* implKlass = ik->implementor();
--
2.23.0

View File

@@ -0,0 +1,27 @@
From 29920b076b4ad96d85adbce0a1d947e5022ba3ad Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 20:08:57 +0100
Subject: [PATCH 33/34] dcevm15 - DON'T clear F2 in CP cache after indy
unevolving
It's not clear why it was cleared in dcevm7-11
---
src/hotspot/share/oops/cpCache.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/oops/cpCache.cpp b/src/hotspot/share/oops/cpCache.cpp
index 79a38dbeff0..650e6fab42d 100644
--- a/src/hotspot/share/oops/cpCache.cpp
+++ b/src/hotspot/share/oops/cpCache.cpp
@@ -650,7 +650,7 @@ void ConstantPoolCacheEntry::clear_entry() {
if (clearData) {
if (!is_resolved_reference()) {
- _f2 = 0;
+ // _f2 = 0;
}
// FIXME: (DCEVM) we want to clear flags, but parameter size is actually used
// after we return from the method, before entry is re-initialized. So let's
--
2.23.0

View File

@@ -0,0 +1,49 @@
From 1f13b20ab5553182680045b7d7324ff92da7e7f0 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 21:28:06 +0100
Subject: [PATCH 34/34] dcevm15 - fix Universe::root_oops_do
Removed ClassLoaderDataGraph::cld_do was cause of crashes due multiple
oop patching. ClassLoaderDataGraph::cld_do replaced in dcevm15
previously used and removed SystemDictionary:oops_do
---
src/hotspot/share/memory/universe.cpp | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/hotspot/share/memory/universe.cpp b/src/hotspot/share/memory/universe.cpp
index 8dad437bd51..0199962a684 100644
--- a/src/hotspot/share/memory/universe.cpp
+++ b/src/hotspot/share/memory/universe.cpp
@@ -190,21 +190,26 @@ void Universe::root_oops_do(OopClosure *oopClosure) {
// (DCEVM) TODO: Check if this is correct?
Management::oops_do(oopClosure);
OopStorageSet::vm_global()->oops_do(oopClosure);
- CLDToOopClosure cld_closure(oopClosure, ClassLoaderData::_claim_none);
- ClassLoaderDataGraph::cld_do(&cld_closure);
+ // CLDToOopClosure cld_closure(oopClosure, ClassLoaderData::_claim_none);
+ // ClassLoaderDataGraph::cld_do(&cld_closure);
// Now adjust pointers in remaining weak roots. (All of which should
// have been cleared if they pointed to non-surviving objects.)
// Global (weak) JNI handles
WeakProcessor::oops_do(oopClosure);
+ JvmtiExport::oops_do(oopClosure);
+
CodeBlobToOopClosure blobClosure(oopClosure, CodeBlobToOopClosure::FixRelocations);
CodeCache::blobs_do(&blobClosure);
+
AOT_ONLY(AOTLoader::oops_do(oopClosure);)
+
// StringTable::oops_do was removed in j15
// StringTable::oops_do(oopClosure);
- // PSScavenge::reference_processor()->weak_oops_do(oopClosure);
+ // OopStorageSet::vm_global()->oops_do(oopClosure);
+
}
void Universe::oops_do(OopClosure* f) {
--
2.23.0

View File

@@ -0,0 +1,83 @@
#!/bin/bash -x
usage ()
{
echo "Usage: perfcmp.sh [options] <test_results_cur> <test_results_ref> <results> <test_prefix> <noHeaders>"
echo "Options:"
echo -e " -h, --help\tdisplay this help"
echo -e " -tc\tprint teacmity statistic"
echo -e "test_results_cur - the file with metrics values for the current measuring"
echo -e "test_results_ref - the file with metrics values for the reference measuring"
echo -e "results - results of comaprison"
echo -e "test_prefix - specifys measuring type, makes sense for enabled -tc, by default no prefixes"
echo -e "noHeaders - by default 1-st line contains headers"
echo -e ""
echo -e "test_results_* files content should be in csv format with header and tab separator:"
echo -e "The 1-st column is the test name"
echo -e "The 2-st column is the test value"
echo -e ""
echo -e "Example:"
echo -e "Test Value"
echo -e "Testname 51.54"
}
while [ -n "$1" ]
do
case "$1" in
-h | --help) usage
exit 1 ;;
-tc) tc=1
shift
break ;;
*) break;;
esac
done
if [[ "$#" < "3" ]]; then
echo "Error: Invalid arguments"
usage
exit 1
fi
curFile=$1
refFile=$2
resFile=$3
testNamePrefix=$4
noHeaders=$5
echo $curFile
echo $refFile
echo $resFile
curValues=`cat "$curFile" | cut -f 2 | tr -d '\t'`
if [ -z $noHeaders ]; then
curValuesHeader=`echo "$curValues" | head -n +1`_cur
header=`cat "$refFile" | head -n +1 | awk -F'\t' -v x=$curValuesHeader '{print " "$1"\t"$2"_ref\t"x"\tratio"}'`
testContent=`paste -d '\t' $refFile <(echo "$curValues") | tail -n +2`
else
testContent=`paste -d '\t' $refFile <(echo "$curValues") | tail -n +1`
fi
testContent=`echo "$testContent" | awk -F'\t' '{ if ($3>$2+$2*0.1) {print "* "$1"\t"$2"\t"$3"\t"(($2==0)?"-":$3/$2)} else {print " "$1"\t"$2"\t"$3"\t"(($2==0)?"-":$3/$2)} }'`
if [ -z $noHeaders ]; then
echo "$header" > $resFile
fi
echo "$testContent" >> $resFile
cat "$resFile" | tr '\t' ';' | column -t -s ';' | tee $resFile
if [ -z $tc ]; then
exit 0
fi
echo "$testContent" 2>&1 | (
while read -r s; do
testname=`echo "$s" | cut -f 1 | tr -d "[:space:]" | tr -d "*"`
duration=`echo "$s" | cut -f 3`
failed=`echo "$s" | cut -c1 | grep -c "*"`
echo \#\#teamcity[testStarted name=\'$testNamePrefix$testname\']
echo "===>$s"
echo \#\#teamcity[buildStatisticValue key=\'$testNamePrefix$testname\' value=\'$duration\']
[ $failed -eq 1 ] && echo \#\#teamcity[testFailed name=\'$testNamePrefix$testname\' message=\'$s\']
echo \#\#teamcity[testFinished name=\'$testNamePrefix$testname\' duration=\'$duration\']
failed=0
done
)

View File

@@ -0,0 +1,131 @@
#!/bin/bash -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# This script makes test-image along with JDK images when bundle_type is set to "jcef".
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
#
# Environment variables:
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument
# to configure
# By default JDK_BUILD_NUMBER is set zero
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_win_x64
source jb/project/tools/common/scripts/common.sh
WORK_DIR=$(pwd)
JCEF_PATH=${JCEF_PATH:=$WORK_DIR/jcef_win_x64}
function do_configure {
sh ./configure \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-opt=b${build_number} \
--with-toolchain-version=$TOOLCHAIN_VERSION \
--with-boot-jdk=$BOOT_JDK \
--disable-ccache \
--enable-cds=yes || do_exit $?
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
echo Running jlink ...
${JSDK}/bin/jlink \
--module-path $__modules_path --no-man-pages --compress=2 \
--add-modules $__modules --output $__arch_name || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__arch_name/release
if [ "$__arch_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $__arch_name/release > release
mv release $__arch_name/release
cp $IMAGES_DIR/jdk/lib/src.zip $__arch_name/lib
copy_jmods "$__modules" "$__modules_path" "$__arch_name"/jmods
fi
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=windows-x86_64-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=0
do_maketest=1
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=0
do_reset_changes=0
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=0
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=windows-x86_64-server-fastdebug
;;
esac
if [ -z "$INC_BUILD" ]; then
do_configure || do_exit $?
if [ $do_maketest -eq 1 ]; then
make LOG=info CONF=$RELEASE_NAME clean images test-image || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
fi
else
if [ $do_maketest -eq 1 ]; then
make LOG=info CONF=$RELEASE_NAME images test-image || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME images || do_exit $?
fi
fi
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
where cygpath
if [ $? -eq 0 ]; then
JCEF_PATH="$(cygpath -w $JCEF_PATH | sed 's/\\/\//g')"
fi
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$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
jbr_name_postfix="_${bundle_type}"
fi
# create runtime image bundlef
modules=$(xargs < jb/project/tools/common/modules.list | sed s/" "//g) || do_exit $?
modules+=",jdk.crypto.mscapi"
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat ${JSDK}/release | grep MODULES | sed s/MODULES=//g | sed s/' '/','/g | sed s/\"//g | sed s/\\r//g | sed s/\\n//g)
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE${jbr_name_postfix}" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
do_exit 0

View File

@@ -0,0 +1,63 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
source jb/project/tools/common/scripts/common.sh
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WORK_DIR=$(pwd)
[ -z "$bundle_type" ] && (git apply -p0 < jb/project/tools/patches/exclude_jcef_module.patch || exit $?)
PATH="/usr/local/bin:/usr/bin:${PATH}"
./configure \
--with-target-bits=32 \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-toolchain-version=${TOOLCHAIN_VERSION} \
--with-boot-jdk=${BOOT_JDK} \
--disable-ccache \
--enable-cds=yes || exit 1
make clean CONF=windows-x86-server-release || exit 1
make LOG=info images CONF=windows-x86-server-release test-image || exit 1
JBSDK=${JBRSDK_BASE_NAME}-windows-x86-b${build_number}
BASE_DIR=build/windows-x86-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
rm -rf ${BASE_DIR}/${JBRSDK_BUNDLE} && rsync -a --exclude demo --exclude sample ${JSDK}/ ${JBRSDK_BUNDLE} || exit 1
sed 's/JBR/JBRSDK/g' ${JSDK}/release > release
mv release ${JBRSDK_BUNDLE}/release
JBR_BUNDLE=jbr
rm -rf ${JBR_BUNDLE}
grep -v javafx jb/project/tools/common/modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.x86
echo ",jdk.crypto.mscapi" >> modules.list.x86
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.x86 | sed s/" "//g) --output ${JBR_BUNDLE} || exit $?
echo Modifying release info ...
#grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${JBR_BUNDLE}/release

View File

@@ -0,0 +1,48 @@
#!/bin/bash -x
# The following parameters must be specified:
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built;possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# This script packs test-image along with JDK images when bundle_type is set to "jcef".
# If the character 't' is added at the end of bundle_type then it also makes test-image along with JDK images.
#
source jb/project/tools/common/scripts/common.sh
[ "$bundle_type" == "jcef" ] && do_maketest=1
function pack_jbr {
__bundle_name=$1
__arch_name=$2
[ "$bundle_type" == "fd" ] && [ "$__arch_name" == "$JBRSDK_BUNDLE" ] && __bundle_name=$__arch_name && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-windows-x64-${fastdebug_infix}b${build_number}
echo Creating $JBR.tar.gz ...
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR $__arch_name || do_exit $?
}
[ "$bundle_type" == "nomod" ] && bundle_type=""
JBRSDK_BUNDLE=jbrsdk
RELEASE_NAME=windows-x86_64-server-release
IMAGES_DIR=build/$RELEASE_NAME/images
BASE_DIR=.
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
jbr_name_postfix="_${bundle_type}"
fi
pack_jbr jbr${jbr_name_postfix} jbr
pack_jbr jbrsdk${jbr_name_postfix} jbrsdk
if [ $do_maketest -eq 1 ]; then
JBRSDK_TEST=$JBRSDK_BUNDLE-$JBSDK_VERSION-windows-test-x64-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
fi

View File

@@ -0,0 +1,42 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
JBR_BASE_NAME=jbr-$JBSDK_VERSION
IMAGES_DIR=build/windows-x86-server-release/images
JSDK=$IMAGES_DIR/jdk
JBSDK=$JBRSDK_BASE_NAME-windows-x86-b$build_number
BASE_DIR=.
JBRSDK_BUNDLE=jbrsdk
echo Creating $JBSDK.tar.gz ...
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || exit 1
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
JBR=$JBR_BASE_NAME-windows-x86-b$build_number
echo Creating $JBR.tar.gz ...
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR ${JBR_BUNDLE} || exit 1
JBRSDK_TEST=$JBRSDK_BASE_NAME-windows-test-x86-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || exit 1

View File

@@ -29,7 +29,7 @@ include $(SPEC)
include MakeBase.gmk
# When FIXPATH is set, let it process the file to make sure all paths are usable
# by system native tools. The FIXPATH tool assumes arguments preceeded by an @
# by system native tools. The FIXPATH tool assumes arguments preceded by an @
# character points to a text file containing further arguments (similar to a
# linker). It replaces any such arguments with a different temporary filename,
# whose contents has been processed to make any paths native. To obtain a

View File

@@ -104,7 +104,7 @@ define SetupBuildDemoBody
ifneq ($$($1_SRC_SUB_DIR), )
$1_MAIN_SRC := $$($1_SRC_BASE)/$$($1_SRC_SUB_DIR)
else
# for allmost all
# for almost all
$1_MAIN_SRC := $$($1_SRC_BASE)
endif

View File

@@ -131,7 +131,7 @@ JAVA_PLATFORM := Java Platform
ifeq ($(IS_DRAFT), true)
DRAFT_MARKER_STR := <br><strong>DRAFT $(VERSION_STRING)</strong>
ifeq ($(VERSION_BUILD), 0)
ifeq ($(VERSION_BUILD), )
DRAFT_MARKER_TITLE := $(SPACE)[ad-hoc build]
else
DRAFT_MARKER_TITLE := $(SPACE)[build $(VERSION_BUILD)]

148
make/Doctor.gmk Normal file
View File

@@ -0,0 +1,148 @@
#
# Copyright (c) 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. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# 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.
#
default: all
include $(SPEC)
include MakeBase.gmk
# Hook to include the corresponding custom file, if present.
$(eval $(call IncludeCustomExtension, Doctor.gmk))
################################################################################
#
# Help user diagnose possible errors and problems with the build environment.
#
prologue:
$(ECHO)
$(ECHO) '"make doctor" will help you analyze your build environment. It can highlight'
$(ECHO) 'certain well-known problems, but it can never find all possible errors.'
TARGETS += prologue
check-git: prologue
$(ECHO)
$(ECHO) '* Verifying that configure has picked up git...'
ifeq ($(GIT), )
$(ECHO) 'WARNING: "git" is not present. This will disable several checks.'
$(ECHO) '! Correct by installing git and verifying that it is in the PATH'
endif
TARGETS += check-git
ifneq ($(GIT), )
AUTOCRLF := $(shell $(GIT) config core.autocrlf)
endif
check-autocrlf: check-git
ifneq ($(GIT), )
ifeq ($(call isBuildOs, windows), true)
$(ECHO)
$(ECHO) '* Verifying git core.autocrlf value...'
ifneq ($(AUTOCRLF), false)
$(ECHO) 'WARNING: core.autocrlf is not "false". HIGH RISK of build failure!'
$(ECHO) '! Correct by running 'git config --global core.autocrlf false' and re-cloning the repo'
endif
endif
endif
TARGETS += check-autocrlf
check-configure-warnings: check-autocrlf
$(ECHO)
$(ECHO) '* Checking for warnings from configure...'
warning_output=`$(GREP) -e "^\* Memory limit:" -A 300 $(OUTPUTDIR)/configure.log | $(TAIL) -n +3 | $(SED) -e '$(DOLLAR){/^$(DOLLAR)/d;}'` && \
if test -n "$$warning_output" ; then \
$(ECHO) ' ---' ; \
$(GREP) -e "^\* Memory limit:" -A 300 $(OUTPUTDIR)/configure.log | $(TAIL) -n +3 | $(SED) -e '$(DOLLAR){/^$(DOLLAR)/d;}' ; \
$(ECHO) ' ---' ; \
$(ECHO) '! Inspect the warnings, fix any problems, and re-run configure' ; \
fi
TARGETS += check-configure-warnings
ifneq ($(GIT), )
# This might have been set by custom component
UNTRACKED_FILES ?= $(shell $(GIT) status --porcelain --ignored | $(CUT) -c 4-)
endif
check-core-files: check-configure-warnings
ifneq ($(GIT), )
$(ECHO)
$(ECHO) '* Checking for left-over core files...'
core_files_found=`echo "$(UNTRACKED_FILES)" | $(TR) ' ' '\n' | $(GREP) core` && \
if test -n "$$core_files_found" ; then \
$(ECHO) 'Found these potential core files. They might interfere with the build process:' ; \
$(ECHO) ' ---' ; \
$(ECHO) $$core_files_found | $(TR) ' ' '\n'; \
$(ECHO) ' ---' ; \
$(ECHO) '! Remove left-over core files' ; \
fi || : # do nothing if grep returns non-0 value
endif
TARGETS += check-core-files
check-bad-file-names: check-core-files
ifneq ($(GIT), )
$(ECHO)
$(ECHO) '* Checking for untracked files with illegal names...'
core_files_found=`echo "$(UNTRACKED_FILES)" | $(TR) ' ' '\n' | $(GREP) '#'` && \
if test -n "$$core_files_found" ; then \
$(ECHO) 'Found these files with illegal names. They *will* cause build failures:' ; \
$(ECHO) ' ---' ; \
$(ECHO) $$core_files_found | $(TR) ' ' '\n'; \
$(ECHO) ' ---' ; \
$(ECHO) '! Remove all files with '#' in their name from the JDK source tree' ; \
fi || : # do nothing if grep returns non-0 value
endif
TARGETS += check-bad-file-names
epilogue: check-bad-file-names
$(ECHO)
$(ECHO) '* If all else fails, try removing the entire build directory and re-creating'
$(ECHO) 'the same configuration using:'
$(ECHO) ' ---' ; \
$(ECHO) configure_command_line=\$$\(make print-configuration\)
$(ECHO) make dist-clean
$(ECHO) bash configure \$$configure_command_line
$(ECHO) ' ---' ; \
$(ECHO)
$(ECHO) '* The build README (doc/building.md) is a great source of information,'
$(ECHO) 'especially the chapter "Fixing Unexpected Build Failures". Check it out!'
$(ECHO)
$(ECHO) '* If you still need assistance please contact build-dev@openjdk.java.net.'
$(ECHO)
TARGETS += epilogue
################################################################################
doctor: $(TARGETS)
all: doctor
.PHONY: default all doctor $(TARGETS)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 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
@@ -53,14 +53,17 @@ help:
$(info $(_) make docs-jdk-api # Create just JDK javadocs)
$(info $(_) make bootcycle-images # Build images twice, second time with newly built JDK)
$(info $(_) make install # Install the generated images locally)
$(info $(_) make reconfigure # Rerun configure with the same arguments as last time)
$(info $(_) make help # Give some help on using make)
$(info $(_) make check # Run basic testing (currently tier1))
$(info $(_) make test-<test> # Run test, e.g. test-tier1)
$(info $(_) make test TEST=<t> # Run test(s) given by TEST specification)
$(info $(_) make exploded-test TEST=<t> # Run test(s) on the exploded image instead of)
$(info $(_) # the full jdk image)
$(info )
$(info Targets for troubleshooting)
$(info $(_) make help # Give some help on using make)
$(info $(_) make doctor # Diagnose build environment problems)
$(info $(_) make reconfigure # Rerun configure with the same arguments as last time)
$(info )
$(info Targets for cleaning)
$(info $(_) make clean # Remove all files generated by make, but not those)
$(info $(_) # generated by configure)

View File

@@ -23,7 +23,7 @@
# questions.
#
# This makefile creates a jdk image overlayed with statically linked core
# This makefile creates a jdk image overlaid with statically linked core
# libraries.
default: all

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2020, 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
@@ -35,107 +35,165 @@ include JdkNativeCompilation.gmk
################################################################################
HSDIS_OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/hsdis
REAL_HSDIS_NAME := hsdis-$(OPENJDK_TARGET_CPU_LEGACY_LIB)$(SHARED_LIBRARY_SUFFIX)
BUILT_HSDIS_LIB := $(HSDIS_OUTPUT_DIR)/$(REAL_HSDIS_NAME)
ifeq ($(call isTargetOs, windows), true)
INSTALLED_HSDIS_DIR := $(JDK_OUTPUTDIR)/bin
HSDIS_TOOLCHAIN := TOOLCHAIN_DEFAULT
HSDIS_TOOLCHAIN_CFLAGS := $(CFLAGS_JDKLIB)
HSDIS_TOOLCHAIN_LDFLAGS := $(LDFLAGS_JDKLIB)
# On windows, we need to "fake" a completely different toolchain using gcc
# instead of the normal microsoft toolchain. This is quite hacky...
MINGW_BASE := x86_64-w64-mingw32
MINGW_SYSROOT = $(shell $(MINGW_BASE)-gcc -print-sysroot)
ifeq ($(wildcard $(MINGW_SYSROOT)), )
# Use fallback path
MINGW_SYSROOT := /usr/$(MINGW_BASE)
ifeq ($(wildcard $(MINGW_SYSROOT)), )
$(error mingw sysroot not found)
endif
ifeq ($(HSDIS_BACKEND), capstone)
ifeq ($(call isTargetCpuArch, x86), true)
CAPSTONE_ARCH := CS_ARCH_X86
CAPSTONE_MODE := CS_MODE_$(OPENJDK_TARGET_CPU_BITS)
else ifeq ($(call isTargetCpuArch, aarch64), true)
CAPSTONE_ARCH := CS_ARCH_ARM64
CAPSTONE_MODE := CS_MODE_ARM
else
$(error No support for Capstone on this platform)
endif
$(eval $(call DefineNativeToolchain, TOOLCHAIN_MINGW, \
CC := $(MINGW_BASE)-gcc, \
LD := $(MINGW_BASE)-ld, \
OBJCOPY := $(MINGW_BASE)-objcopy, \
RC := $(RC), \
SYSROOT_CFLAGS := --sysroot=$(MINGW_SYSROOT), \
SYSROOT_LDFLAGS := --sysroot=$(MINGW_SYSROOT), \
))
MINGW_SYSROOT_LIB_PATH := $(MINGW_SYSROOT)/mingw/lib
ifeq ($(wildcard $(MINGW_SYSROOT_LIB_PATH)), )
# Try without mingw
MINGW_SYSROOT_LIB_PATH := $(MINGW_SYSROOT)/lib
ifeq ($(wildcard $(MINGW_SYSROOT_LIB_PATH)), )
$(error mingw sysroot lib path not found)
endif
endif
MINGW_VERSION = $(shell $(MINGW_BASE)-gcc -v 2>&1 | $(GREP) "gcc version" | $(CUT) -d " " -f 3)
MINGW_GCC_LIB_PATH := /usr/lib/gcc/$(MINGW_BASE)/$(MINGW_VERSION)
ifeq ($(wildcard $(MINGW_GCC_LIB_PATH)), )
# Try using only major version number
MINGW_VERSION_MAJOR := $(firstword $(subst ., , $(MINGW_VERSION)))
MINGW_GCC_LIB_PATH := /usr/lib/gcc/$(MINGW_BASE)/$(MINGW_VERSION_MAJOR)
ifeq ($(wildcard $(MINGW_GCC_LIB_PATH)), )
$(error mingw gcc lib path not found)
endif
endif
TOOLCHAIN_TYPE := gcc
OPENJDK_TARGET_OS := linux
CC_OUT_OPTION := -o$(SPACE)
LD_OUT_OPTION := -o$(SPACE)
GENDEPS_FLAGS := -MMD -MF
CFLAGS_DEBUG_SYMBOLS := -g
DISABLED_WARNINGS :=
DISABLE_WARNING_PREFIX := -Wno-
CFLAGS_WARNINGS_ARE_ERRORS := -Werror
SHARED_LIBRARY_FLAGS := -shared
HSDIS_TOOLCHAIN := TOOLCHAIN_MINGW
HSDIS_TOOLCHAIN_CFLAGS :=
HSDIS_TOOLCHAIN_LDFLAGS := -L$(MINGW_GCC_LIB_PATH) -L$(MINGW_SYSROOT_LIB_PATH)
MINGW_DLLCRT := $(MINGW_SYSROOT_LIB_PATH)/dllcrt2.o
HSDIS_TOOLCHAIN_LIBS := $(MINGW_DLLCRT) -lmingw32 -lgcc -lgcc_eh -lmoldname \
-lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32
else
INSTALLED_HSDIS_DIR := $(JDK_OUTPUTDIR)/lib
HSDIS_TOOLCHAIN := TOOLCHAIN_DEFAULT
HSDIS_TOOLCHAIN_CFLAGS := $(CFLAGS_JDKLIB)
HSDIS_TOOLCHAIN_LDFLAGS := $(LDFLAGS_JDKLIB)
HSDIS_TOOLCHAIN_LIBS := -ldl
HSDIS_CFLAGS += -DCAPSTONE_ARCH=$(CAPSTONE_ARCH) \
-DCAPSTONE_MODE=$(CAPSTONE_MODE)
endif
ifeq ($(HSDIS_BACKEND), llvm)
# Use C++ instead of C
HSDIS_TOOLCHAIN_CFLAGS := $(CXXFLAGS_JDKLIB)
HSDIS_TOOLCHAIN := TOOLCHAIN_LINK_CXX
ifeq ($(call isTargetOs, linux), true)
LLVM_OS := pc-linux-gnu
else ifeq ($(call isTargetOs, macosx), true)
LLVM_OS := apple-darwin
else ifeq ($(call isTargetOs, windows), true)
LLVM_OS := pc-windows-msvc
else
$(error No support for LLVM on this platform)
endif
HSDIS_CFLAGS += -DLLVM_DEFAULT_TRIPLET='"$(OPENJDK_TARGET_CPU)-$(LLVM_OS)"'
endif
ifeq ($(HSDIS_BACKEND), binutils)
ifeq ($(call isTargetOs, windows), true)
# On windows, we need to "fake" a completely different toolchain using gcc
# instead of the normal microsoft toolchain. This is quite hacky...
MINGW_BASE := x86_64-w64-mingw32
MINGW_SYSROOT = $(shell $(MINGW_BASE)-gcc -print-sysroot)
ifeq ($(wildcard $(MINGW_SYSROOT)), )
# Use fallback path
MINGW_SYSROOT := /usr/$(MINGW_BASE)
ifeq ($(wildcard $(MINGW_SYSROOT)), )
$(error mingw sysroot not found)
endif
endif
$(eval $(call DefineNativeToolchain, TOOLCHAIN_MINGW, \
CC := $(MINGW_BASE)-gcc, \
LD := $(MINGW_BASE)-ld, \
OBJCOPY := $(MINGW_BASE)-objcopy, \
RC := $(RC), \
SYSROOT_CFLAGS := --sysroot=$(MINGW_SYSROOT), \
SYSROOT_LDFLAGS := --sysroot=$(MINGW_SYSROOT), \
))
MINGW_SYSROOT_LIB_PATH := $(MINGW_SYSROOT)/mingw/lib
ifeq ($(wildcard $(MINGW_SYSROOT_LIB_PATH)), )
# Try without mingw
MINGW_SYSROOT_LIB_PATH := $(MINGW_SYSROOT)/lib
ifeq ($(wildcard $(MINGW_SYSROOT_LIB_PATH)), )
$(error mingw sysroot lib path not found)
endif
endif
MINGW_VERSION = $(shell $(MINGW_BASE)-gcc -v 2>&1 | $(GREP) "gcc version" | $(CUT) -d " " -f 3)
MINGW_GCC_LIB_PATH := /usr/lib/gcc/$(MINGW_BASE)/$(MINGW_VERSION)
ifeq ($(wildcard $(MINGW_GCC_LIB_PATH)), )
# Try using only major version number
MINGW_VERSION_MAJOR := $(firstword $(subst ., , $(MINGW_VERSION)))
MINGW_GCC_LIB_PATH := /usr/lib/gcc/$(MINGW_BASE)/$(MINGW_VERSION_MAJOR)
ifeq ($(wildcard $(MINGW_GCC_LIB_PATH)), )
$(error mingw gcc lib path not found)
endif
endif
TOOLCHAIN_TYPE := gcc
OPENJDK_TARGET_OS := linux
CC_OUT_OPTION := -o$(SPACE)
LD_OUT_OPTION := -o$(SPACE)
GENDEPS_FLAGS := -MMD -MF
CFLAGS_DEBUG_SYMBOLS := -g
DISABLED_WARNINGS :=
DISABLE_WARNING_PREFIX := -Wno-
CFLAGS_WARNINGS_ARE_ERRORS := -Werror
SHARED_LIBRARY_FLAGS := -shared
HSDIS_TOOLCHAIN := TOOLCHAIN_MINGW
HSDIS_TOOLCHAIN_CFLAGS :=
HSDIS_TOOLCHAIN_LDFLAGS := -L$(MINGW_GCC_LIB_PATH) -L$(MINGW_SYSROOT_LIB_PATH)
MINGW_DLLCRT := $(MINGW_SYSROOT_LIB_PATH)/dllcrt2.o
HSDIS_TOOLCHAIN_LIBS := $(MINGW_DLLCRT) -lmingw32 -lgcc -lgcc_eh -lmoldname \
-lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32
else
HSDIS_TOOLCHAIN_LIBS := -ldl
endif
endif
$(eval $(call SetupJdkLibrary, BUILD_HSDIS, \
NAME := hsdis, \
SRC := $(TOPDIR)/src/utils/hsdis, \
SRC := $(TOPDIR)/src/utils/hsdis/$(HSDIS_BACKEND), \
EXTRA_HEADER_DIRS := $(TOPDIR)/src/utils/hsdis, \
TOOLCHAIN := $(HSDIS_TOOLCHAIN), \
OUTPUT_DIR := $(HSDIS_OUTPUT_DIR), \
OBJECT_DIR := $(HSDIS_OUTPUT_DIR), \
DISABLED_WARNINGS_gcc := undef format-nonliteral sign-compare, \
DISABLED_WARNINGS_clang := undef format-nonliteral, \
CFLAGS := $(HSDIS_TOOLCHAIN_CFLAGS) $(HSDIS_CFLAGS), \
LDFLAGS := $(HSDIS_TOOLCHAIN_LDFLAGS) $(SHARED_LIBRARY_FLAGS), \
LDFLAGS := $(HSDIS_TOOLCHAIN_LDFLAGS) $(HSDIS_LDFLAGS) $(SHARED_LIBRARY_FLAGS), \
LIBS := $(HSDIS_LIBS) $(HSDIS_TOOLCHAIN_LIBS), \
))
build: $(BUILD_HSDIS)
$(BUILT_HSDIS_LIB): $(BUILD_HSDIS_TARGET)
$(install-file)
build: $(BUILD_HSDIS) $(BUILT_HSDIS_LIB)
TARGETS += build
INSTALLED_HSDIS_NAME := hsdis-$(OPENJDK_TARGET_CPU_LEGACY_LIB)$(SHARED_LIBRARY_SUFFIX)
ifeq ($(ENABLE_HSDIS_BUNDLING), false)
INSTALLED_HSDIS := $(INSTALLED_HSDIS_DIR)/$(INSTALLED_HSDIS_NAME)
ifeq ($(call isTargetOs, windows), true)
JDK_HSDIS_DIR := $(JDK_OUTPUTDIR)/bin
IMAGE_HSDIS_DIR := $(JDK_IMAGE_DIR)/bin
else
JDK_HSDIS_DIR := $(JDK_OUTPUTDIR)/lib
IMAGE_HSDIS_DIR := $(JDK_IMAGE_DIR)/lib
endif
$(INSTALLED_HSDIS): $(BUILD_HSDIS_TARGET)
$(call LogWarn, NOTE: The resulting build might not be redistributable. Seek legal advice before distibuting.)
INSTALLED_HSDIS_JDK := $(JDK_HSDIS_DIR)/$(REAL_HSDIS_NAME)
INSTALLED_HSDIS_IMAGE := $(IMAGE_HSDIS_DIR)/$(REAL_HSDIS_NAME)
$(INSTALLED_HSDIS_JDK): $(BUILT_HSDIS_LIB)
ifeq ($(HSDIS_BACKEND), binutils)
$(call LogWarn, NOTE: The resulting build might not be redistributable. Seek legal advice before distributing.)
endif
$(install-file)
$(INSTALLED_HSDIS_IMAGE): $(BUILT_HSDIS_LIB)
$(install-file)
install: $(INSTALLED_HSDIS)
install: $(INSTALLED_HSDIS_JDK) $(INSTALLED_HSDIS_IMAGE)
else
install:
$(ECHO) NOTE: make install-hsdis is a no-op with --enable-hsdis-bundling
endif
TARGETS += install

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 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
@@ -352,7 +352,7 @@ else # HAS_SPEC=true
$(call PrintFailureReports)
$(call PrintBuildLogFailures)
$(call ReportProfileTimes)
$(PRINTF) "Hint: See doc/building.html#troubleshooting for assistance.\n\n"
$(PRINTF) "HELP: Run 'make doctor' to diagnose build problems.\n\n"
ifneq ($(COMPARE_BUILD), )
$(call CleanupCompareBuild)
endif

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 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
@@ -310,17 +310,9 @@ else # $(HAS_SPEC)=true
# level of reproducible builds
define SetupReproducibleBuild
ifeq ($$(SOURCE_DATE), updated)
SOURCE_DATE := $$(shell $$(DATE) +"%s")
endif
export SOURCE_DATE_EPOCH := $$(SOURCE_DATE)
ifeq ($$(IS_GNU_DATE), yes)
export SOURCE_DATE_ISO_8601 := $$(shell $$(DATE) --utc \
--date="@$$(SOURCE_DATE_EPOCH)" \
+"%Y-%m-%dT%H:%M:%SZ" 2> /dev/null)
else
export SOURCE_DATE_ISO_8601 := $$(shell $$(DATE) -u \
-j -f "%s" "$$(SOURCE_DATE_EPOCH)" \
+"%Y-%m-%dT%H:%M:%SZ" 2> /dev/null)
# For static values of SOURCE_DATE (not "updated"), these are set in spec.gmk
export SOURCE_DATE_EPOCH := $$(shell $$(DATE) +"%s")
export SOURCE_DATE_ISO_8601 := $$(call EpochToISO8601, $$(SOURCE_DATE_EPOCH))
endif
endef
@@ -469,10 +461,10 @@ else # $(HAS_SPEC)=true
$(PRINTF) "\n=== Make failed targets repeated here ===\n" ; \
$(GREP) "recipe for target .* failed" $(BUILD_LOG) ; \
$(PRINTF) "=== End of repeated output ===\n" ; \
$(PRINTF) "\nHint: Try searching the build log for the name of the first failed target.\n" ; \
$(PRINTF) "\nHELP: Try searching the build log for the name of the first failed target.\n" ; \
else \
$(PRINTF) "\nNo indication of failed target found.\n" ; \
$(PRINTF) "Hint: Try searching the build log for '] Error'.\n" ; \
$(PRINTF) "HELP: Try searching the build log for '] Error'.\n" ; \
fi \
)
endef

84
make/JBRApi.gmk Normal file
View File

@@ -0,0 +1,84 @@
#
# Copyright 2000-2021 JetBrains s.r.o.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
include $(SPEC)
include MakeBase.gmk
include JavaCompilation.gmk
JBR_API_ROOT_DIR := $(TOPDIR)/src/jetbrains.api
JBR_API_TOOLS_DIR := $(JBR_API_ROOT_DIR)/tools
JBR_API_SRC_DIR := $(JBR_API_ROOT_DIR)/src
JBR_API_OUTPUT_DIR := $(OUTPUTDIR)/jbr-api
JBR_API_GENSRC_DIR := $(JBR_API_OUTPUT_DIR)/gensrc
JBR_API_BIN_DIR := $(JBR_API_OUTPUT_DIR)/bin
JBR_API_VERSION_PROPERTIES := $(JBR_API_ROOT_DIR)/version.properties
JBR_API_VERSION_GENSRC := $(JBR_API_OUTPUT_DIR)/jbr-api.version
JBR_API_GENSRC_BATCH := $(JBR_API_VERSION_GENSRC)
JBR_API_SRC_FILES := $(call FindFiles, $(JBR_API_SRC_DIR))
JBR_API_GENSRC_FILES := $(foreach f, $(call FindFiles, $(JBR_API_SRC_DIR)), \
$(JBR_API_GENSRC_DIR)/$(call RelativePath, $f, $(JBR_API_SRC_DIR)))
ifeq ($(JBR_API_JBR_VERSION),)
JBR_API_JBR_VERSION := <DEVELOPMENT>
JBR_API_FAIL_ON_HASH_MISMATCH := false
else
.PHONY: $(JBR_API_VERSION_PROPERTIES)
JBR_API_FAIL_ON_HASH_MISMATCH := true
endif
ARCHIVE_BUILD_JBR_API_BIN := $(JBR_API_BIN_DIR)
$(eval $(call SetupJavaCompilation, BUILD_JBR_API, \
SMALL_JAVA := true, \
COMPILER := bootjdk, \
SRC := $(JBR_API_GENSRC_DIR), \
EXTRA_FILES := $(JBR_API_GENSRC_FILES), \
BIN := $(JBR_API_BIN_DIR), \
JAR := $(JBR_API_OUTPUT_DIR)/jbr-api.jar, \
))
$(eval $(call SetupJarArchive, BUILD_JBR_API_SOURCES_JAR, \
DEPENDENCIES := $(JBR_API_GENSRC_FILES), \
SRCS := $(JBR_API_GENSRC_DIR), \
JAR := $(JBR_API_OUTPUT_DIR)/jbr-api-sources.jar, \
SUFFIXES := .java, \
BIN := $(JBR_API_BIN_DIR), \
))
# Grouped targets may not be supported, so hack dependencies: sources -> version file -> generated sources
$(JBR_API_VERSION_GENSRC): $(JBR_API_SRC_FILES) $(JBR_API_VERSION_PROPERTIES) $(JBR_API_TOOLS_DIR)/Gensrc.java
$(ECHO) Generating sources for JBR API
$(JAVA_CMD) $(JAVA_FLAGS_SMALL) "$(JBR_API_TOOLS_DIR)/Gensrc.java" \
"$(TOPDIR)/src" "$(JBR_API_OUTPUT_DIR)" "$(JBR_API_JBR_VERSION)"
$(JBR_API_GENSRC_FILES): $(JBR_API_VERSION_GENSRC)
$(TOUCH) $@
jbr-api-check-version: $(JBR_API_GENSRC_FILES) $(JBR_API_VERSION_PROPERTIES)
$(JAVA_CMD) $(JAVA_FLAGS_SMALL) "$(JBR_API_TOOLS_DIR)/CheckVersion.java" \
"$(JBR_API_ROOT_DIR)" "$(JBR_API_GENSRC_DIR)" "$(JBR_API_FAIL_ON_HASH_MISMATCH)"
jbr-api: $(BUILD_JBR_API) $(BUILD_JBR_API_SOURCES_JAR) jbr-api-check-version
.PHONY: jbr-api jbr-api-check-version
ifneq ($(JBR_API_CONF_FILE),)
$(JBR_API_CONF_FILE): $(JBR_API_GENSRC_FILES)
$(ECHO) "VERSION=`$(CAT) $(JBR_API_VERSION_GENSRC)`" > $(JBR_API_CONF_FILE)
$(ECHO) "JAR=$(JBR_API_OUTPUT_DIR)/jbr-api.jar" >> $(JBR_API_CONF_FILE)
$(ECHO) "SOURCES_JAR=$(JBR_API_OUTPUT_DIR)/jbr-api-sources.jar" >> $(JBR_API_CONF_FILE)
jbr-api: $(JBR_API_CONF_FILE)
.PHONY: $(JBR_API_CONF_FILE)
endif

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 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
@@ -260,6 +260,13 @@ $(eval $(call SetupTarget, hotspot-ide-project, \
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
$(HOTSPOT_VARIANT_LIBS_TARGETS)
################################################################################
# Help and user support
$(eval $(call SetupTarget, doctor, \
MAKEFILE := Doctor, \
))
################################################################################
# Generate libs and launcher targets for creating compile_commands.json fragments
define DeclareCompileCommandsRecipe
@@ -535,6 +542,7 @@ ifneq ($(HSDIS_BACKEND), none)
$(eval $(call SetupTarget, install-hsdis, \
MAKEFILE := Hsdis, \
TARGET := install, \
DEPS := jdk-image, \
))
endif
@@ -861,6 +869,10 @@ else
$(foreach t, $(filter-out java.base-libs, $(LIBS_TARGETS)), \
$(eval $t: java.base-libs))
ifeq ($(ENABLE_HSDIS_BUNDLING), true)
java.base-copy: build-hsdis
endif
# jdk.accessibility depends on java.desktop
jdk.accessibility-libs: java.desktop-libs
@@ -1337,6 +1349,14 @@ create-main-targets-include:
@$(ECHO) ALL_MAIN_TARGETS := $(sort $(ALL_TARGETS)) > \
$(MAKESUPPORT_OUTPUTDIR)/main-targets.gmk
################################################################################
# JBR API
$(eval $(call SetupTarget, jbr-api, \
MAKEFILE := JBRApi, \
TARGET := jbr-api \
))
################################################################################
# Hook to include the corresponding custom file, if present.
$(eval $(call IncludeCustomExtension, Main-post.gmk))

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 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
@@ -35,6 +35,8 @@ default: all
include $(SPEC)
include MakeBase.gmk
MODULE_SRC := $(TOPDIR)/src/$(MODULE)
# All makefiles should add the targets to be built to this variable.
TARGETS :=

View File

@@ -139,7 +139,7 @@ endif
################################################################################
# Each factor variable comes in 3 variants. The first one is reserved for users
# to use on command line. The other two are for predifined configurations in JDL
# to use on command line. The other two are for predefined configurations in JDL
# and for machine specific configurations respectively.
TEST_JOBS_FACTOR ?= 1
TEST_JOBS_FACTOR_JDL ?= 1
@@ -524,7 +524,7 @@ define SetupRunGtestTestBody
$$(subst $$(TOPDIR)/, , $$($1_TEST_RESULTS_DIR))))
$$(if $$(wildcard $$($1_RESULT_FILE)), \
$$(eval $1_TOTAL := $$(shell $$(AWK) '/==========.* tests? from .* \
test cases? ran/ { print $$$$2 }' $$($1_RESULT_FILE))) \
test (cases?|suites?) ran/ { print $$$$2 }' $$($1_RESULT_FILE))) \
$$(if $$($1_TOTAL), , $$(eval $1_TOTAL := 0)) \
$$(eval $1_PASSED := $$(shell $$(AWK) '/\[ PASSED \] .* tests?./ \
{ print $$$$4 }' $$($1_RESULT_FILE))) \
@@ -782,8 +782,6 @@ define SetupRunJtregTestBody
# Make it possible to specify the JIB_DATA_DIR for tests using the
# JIB Artifact resolver
$1_JTREG_BASIC_OPTIONS += -e:JIB_DATA_DIR
# Some tests needs to find a boot JDK using the JDK8_HOME variable.
$1_JTREG_BASIC_OPTIONS += -e:JDK8_HOME=$$(BOOT_JDK)
# If running on Windows, propagate the _NT_SYMBOL_PATH to enable
# symbol lookup in hserr files
ifeq ($$(call isTargetOs, windows), true)
@@ -799,6 +797,15 @@ define SetupRunJtregTestBody
$1_JTREG_BASIC_OPTIONS += -ea -esa
endif
ifeq ($$(ASAN_ENABLED), yes)
$1_JTREG_BASIC_OPTIONS += -e:ASAN_OPTIONS=handle_segv=0:handle_sigfpe=0:detect_leaks=false
$1_JTREG_BASIC_OPTIONS += -e:LD_PRELOAD=libasan.so.5
endif
ifeq ($$(USAN_ENABLED), yes)
$1_JTREG_BASIC_OPTIONS += -e:LD_PRELOAD=libubsan.so.1
endif
ifneq ($$($1_JTREG_NATIVEPATH), )
$1_JTREG_BASIC_OPTIONS += -nativepath:$$($1_JTREG_NATIVEPATH)
endif

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
# 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
@@ -50,8 +50,8 @@ else ifneq ($(and $(GIT), $(wildcard $(TOPDIR)/.git)), )
USE_SCM := true
SCM_DIR := .git
ID_COMMAND := $(PRINTF) "git:%s%s\n" \
"$$(git log -n1 --format=%H | cut -c1-12)" \
"$$(if test -n "$$(git status --porcelain)"; then printf '+'; fi)"
"$$($(GIT) log -n1 --format=%H | cut -c1-12)" \
"$$(if test -n "$$($(GIT) status --porcelain)"; then printf '+'; fi)"
endif
ifeq ($(USE_SCM), true)

View File

@@ -35,8 +35,8 @@ BUILD_INFO_PROPERTIES := $(TEST_IMAGE_DIR)/build-info.properties
$(BUILD_INFO_PROPERTIES):
$(call MakeTargetDir)
$(ECHO) "# Build info properties for JDK tests" > $@
$(ECHO) "build.workspace.root=$(call FixPath, $(WORKSPACE_ROOT))" >> $@
$(ECHO) "build.output.root=$(call FixPath, $(OUTPUTDIR))" >> $@
$(ECHO) 'build.workspace.root=$(call FixPath, $(WORKSPACE_ROOT))' >> $@
$(ECHO) 'build.output.root=$(call FixPath, $(OUTPUTDIR))' >> $@
README := $(TEST_IMAGE_DIR)/Readme.txt

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 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
@@ -44,16 +44,13 @@ TOOL_COMPILEFONTCONFIG = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_cla
--add-exports java.desktop/sun.awt=ALL-UNNAMED \
build.tools.compilefontconfig.CompileFontConfig
TOOL_COMPILEPROPERTIES = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.compileproperties.CompileProperties
TOOL_GENERATECHARACTER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.generatecharacter.GenerateCharacter
TOOL_CHARACTERNAME = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.generatecharacter.CharacterName
TOOL_DTDBUILDER = $(JAVA_SMALL) -Ddtd_home=$(TOPDIR)/make/data/dtdbuilder \
TOOL_DTDBUILDER = $(JAVA_SMALL) -Ddtd_home=$(TOPDIR)/src/java.desktop/share/data/dtdbuilder \
-Djava.awt.headless=true \
-cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes build.tools.dtdbuilder.DTDBuilder

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 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
@@ -50,7 +50,7 @@ endif
X11WRAPPERS_OUTPUT := $(SUPPORT_OUTPUTDIR)/x11wrappers
GENERATOR_SOURCE_FILE := $(X11WRAPPERS_OUTPUT)/src/data_generator.c
GENSRC_X11WRAPPERS_DATADIR := $(TOPDIR)/make/data/x11wrappergen
GENSRC_X11WRAPPERS_DATADIR := $(TOPDIR)/src/java.desktop/unix/data/x11wrappergen
WRAPPER_OUTPUT_FILE := $(GENSRC_X11WRAPPERS_DATADIR)/sizes-$(BITS).txt
BITS := $(OPENJDK_TARGET_CPU_BITS)

View File

@@ -172,7 +172,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_DEVKIT],
UTIL_PREPEND_TO_PATH([TOOLCHAIN_PATH],$DEVKIT_TOOLCHAIN_PATH)
# If DEVKIT_SYSROOT is set, use that, otherwise try a couple of known
# places for backwards compatiblity.
# places for backwards compatibility.
if test "x$DEVKIT_SYSROOT" != x; then
SYSROOT="$DEVKIT_SYSROOT"
elif test -d "$DEVKIT_ROOT/$host_alias/libc"; then
@@ -193,7 +193,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_DEVKIT],
# You can force the sysroot if the sysroot encoded into the compiler tools
# is not correct.
AC_ARG_WITH(sys-root, [AS_HELP_STRING([--with-sys-root],
[alias for --with-sysroot for backwards compatability])],
[alias for --with-sysroot for backwards compatibility])],
[SYSROOT=$with_sys_root]
)
@@ -496,7 +496,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_DEFAULT_MAKE_TARGET],
AC_DEFUN_ONCE([BASIC_SETUP_DEFAULT_LOG],
[
AC_ARG_WITH(log, [AS_HELP_STRING([--with-log],
[[default vaue for make LOG argument [warn]]])])
[[default value for make LOG argument [warn]]])])
AC_MSG_CHECKING([for default LOG value])
if test "x$with_log" = x; then
DEFAULT_LOG=""

View File

@@ -80,6 +80,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
# Optional tools, we can do without them
UTIL_LOOKUP_PROGS(DF, df)
UTIL_LOOKUP_PROGS(GIT, git)
UTIL_LOOKUP_PROGS(NICE, nice)
UTIL_LOOKUP_PROGS(READLINK, greadlink readlink)
@@ -160,25 +161,23 @@ AC_DEFUN([BASIC_CHECK_MAKE_VERSION],
AC_DEFUN([BASIC_CHECK_MAKE_OUTPUT_SYNC],
[
# Check if make supports the output sync option and if so, setup using it.
AC_MSG_CHECKING([if make --output-sync is supported])
if $MAKE --version -O > /dev/null 2>&1; then
OUTPUT_SYNC_SUPPORTED=true
AC_MSG_RESULT([yes])
AC_MSG_CHECKING([for output-sync value])
AC_ARG_WITH([output-sync], [AS_HELP_STRING([--with-output-sync],
[set make output sync type if supported by make. @<:@recurse@:>@])],
[OUTPUT_SYNC=$with_output_sync])
if test "x$OUTPUT_SYNC" = "x"; then
OUTPUT_SYNC=none
fi
AC_MSG_RESULT([$OUTPUT_SYNC])
if ! $MAKE --version -O$OUTPUT_SYNC > /dev/null 2>&1; then
AC_MSG_ERROR([Make did not the support the value $OUTPUT_SYNC as output sync type.])
fi
else
OUTPUT_SYNC_SUPPORTED=false
AC_MSG_RESULT([no])
fi
UTIL_ARG_WITH(NAME: output-sync, TYPE: literal,
VALID_VALUES: [none recurse line target], DEFAULT: none,
OPTIONAL: true, ENABLED_DEFAULT: true,
ENABLED_RESULT: OUTPUT_SYNC_SUPPORTED,
CHECKING_MSG: [for make --output-sync value],
DESC: [set make --output-sync type if supported by make],
CHECK_AVAILABLE:
[
AC_MSG_CHECKING([if make --output-sync is supported])
if ! $MAKE --version -O > /dev/null 2>&1; then
AC_MSG_RESULT([no])
AVAILABLE=false
else
AC_MSG_RESULT([yes])
fi
]
)
AC_SUBST(OUTPUT_SYNC_SUPPORTED)
AC_SUBST(OUTPUT_SYNC)
])
@@ -270,6 +269,8 @@ AC_DEFUN([BASIC_CHECK_TAR],
TAR_TYPE="bsd"
elif test "x$($TAR -v | $GREP "bsdtar")" != "x"; then
TAR_TYPE="bsd"
elif test "x$($TAR --version | $GREP "busybox")" != "x"; then
TAR_TYPE="busybox"
elif test "x$OPENJDK_BUILD_OS" = "xaix"; then
TAR_TYPE="aix"
fi
@@ -281,9 +282,12 @@ AC_DEFUN([BASIC_CHECK_TAR],
TAR_SUPPORTS_TRANSFORM="true"
elif test "x$TAR_TYPE" = "aix"; then
# -L InputList of aix tar: name of file listing the files and directories
# that need to be archived or extracted
# that need to be archived or extracted
TAR_INCLUDE_PARAM="L"
TAR_SUPPORTS_TRANSFORM="false"
elif test "x$TAR_TYPE" = "xbusybox"; then
TAR_INCLUDE_PARAM="T"
TAR_SUPPORTS_TRANSFORM="false"
else
TAR_INCLUDE_PARAM="I"
TAR_SUPPORTS_TRANSFORM="false"
@@ -339,7 +343,6 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
UTIL_LOOKUP_PROGS(READELF, greadelf readelf)
UTIL_LOOKUP_PROGS(DOT, dot)
UTIL_LOOKUP_PROGS(HG, hg)
UTIL_LOOKUP_PROGS(GIT, git)
UTIL_LOOKUP_PROGS(STAT, stat)
UTIL_LOOKUP_PROGS(TIME, time)
UTIL_LOOKUP_PROGS(FLOCK, flock)
@@ -348,7 +351,7 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
UTIL_LOOKUP_PROGS(DTRACE, dtrace, $PATH:/usr/sbin)
UTIL_LOOKUP_PROGS(PATCH, gpatch patch)
# Check if it's GNU time
IS_GNU_TIME=`$TIME --version 2>&1 | $GREP 'GNU time'`
[ IS_GNU_TIME=`$TIME --version 2>&1 | $GREP 'GNU [Tt]ime'` ]
if test "x$IS_GNU_TIME" != x; then
IS_GNU_TIME=yes
else
@@ -374,17 +377,15 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
UTIL_REQUIRE_PROGS(XATTR, xattr)
UTIL_LOOKUP_PROGS(CODESIGN, codesign)
# Check for user provided code signing identity.
UTIL_ARG_WITH(NAME: macosx-codesign-identity, TYPE: string,
DEFAULT: openjdk_codesign, CHECK_VALUE: UTIL_CHECK_STRING_NON_EMPTY,
DESC: [specify the macosx code signing identity],
CHECKING_MSG: [for macosx code signing identity]
)
AC_SUBST(MACOSX_CODESIGN_IDENTITY)
if test "x$CODESIGN" != "x"; then
# Check for user provided code signing identity.
# If no identity was provided, fall back to "openjdk_codesign".
AC_ARG_WITH([macosx-codesign-identity], [AS_HELP_STRING([--with-macosx-codesign-identity],
[specify the code signing identity])],
[MACOSX_CODESIGN_IDENTITY=$with_macosx_codesign_identity],
[MACOSX_CODESIGN_IDENTITY=openjdk_codesign]
)
AC_SUBST(MACOSX_CODESIGN_IDENTITY)
# Verify that the codesign certificate is present
AC_MSG_CHECKING([if codesign certificate is present])
$RM codesign-testfile

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 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
@@ -185,6 +185,16 @@ AC_DEFUN([BASIC_SETUP_PATHS_WINDOWS],
AC_MSG_RESULT([unknown])
AC_MSG_WARN([It seems that your find utility is non-standard.])
fi
if test "x$GIT" != x && test -e $TOPDIR/.git; then
git_autocrlf=`$GIT config core.autocrlf`
if test "x$git_autocrlf" != x && test "x$git_autocrlf" != "xfalse"; then
AC_MSG_NOTICE([Your git configuration does not set core.autocrlf to false.])
AC_MSG_NOTICE([If you checked out this code using that setting, the build WILL fail.])
AC_MSG_NOTICE([To correct, run "git config --global core.autocrlf false" and re-clone the repo.])
AC_MSG_WARN([Code is potentially incorrectly cloned. HIGH RISK of build failure!])
fi
fi
])
# Verify that the directory is usable on Windows

Some files were not shown because too many files have changed in this diff Show More