Compare commits

..

1954 Commits

Author SHA1 Message Date
Vitaly Provodin
b2cbcbeeef add exclude list for Scale2 test runs 2021-12-17 15:22:18 +07:00
Vitaly Provodin
aba2a258bb exclude java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java due to 8134231 2021-12-17 15:22:15 +07:00
Vladimir Dvorak
53c9198350 JBR-3167 update os.version for tests crashing GNOME on Ubuntu-21.04 2021-12-15 10:21:54 +07:00
Prasanta Sadhukhan
e27b2fbf84 8272232: javax/swing/JTable/4275046/bug4275046.java failed with "Expected value in the cell: 'rededited' but found 'redEDITED'."
8257540: javax/swing/JFileChooser/8041694/bug8041694.java failed with "RuntimeException: The selected directory name is not the expected 'd ' but 'D '."

Reviewed-by: serb
(cherry picked from commit cec6c068b0)
2021-12-13 10:37:53 +07:00
Vitaly Provodin
a5c9a208ed enable fixed hotspot tests to regular runs 2021-12-11 08:24:07 +07:00
Leonid Mesnik
86b93a57af 8225313: serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatObjectCorrectnessTest.java failed with Unexpected high difference percentage
Reviewed-by: dholmes, kevinw

(cherry picked from commit 09e5321763)
2021-12-11 08:21:52 +07:00
Vitaly Provodin
c838f55dd9 enable fixed tests to regular runs 2021-12-11 06:52:53 +07:00
Alexander Zuev
8d188ad27f 8017175: [TESTBUG] javax/swing/JPopupMenu/4634626/bug4634626.java sometimes failed on mac
Reviewed-by: serb
(cherry picked from commit 4c3491bfa5)
2021-12-11 06:47:13 +07:00
Alexander Zuev
d87fc06c41 8268284: javax/swing/JComponent/7154030/bug7154030.java fails with "Exception: Failed to hide opaque button"
Reviewed-by: serb
(cherry picked from commit 534f00510e)
2021-12-11 06:46:08 +07:00
Naoto Sato
b17c748949 7008363: TEST_BUG: test/java/lang/StringCoding/CheckEncodings.sh does nothing and is very slow at that
Reviewed-by: iris, lancea, bpb, whuang
(cherry picked from commit 8a3e0a1fc1)
2021-12-11 06:44:15 +07:00
Alexander Zvegintsev
03783189d0 8233648: [TESTBUG] DefaultMenuBarTest.java failing on macos
Reviewed-by: pbansal, serb, psadhukhan, prr
(cherry picked from commit 46b5bfbc38)
2021-12-11 06:43:21 +07:00
Alisen Chung
05fbf8507c 8233558: [TESTBUG] WindowOwnedByEmbeddedFrameTest.java fails on macos
Reviewed-by: serb, kizune, prr
(cherry picked from commit d1e3ca4ee3)
2021-12-11 06:41:56 +07:00
Jayathirth D V
80de7efe15 8213120: java/awt/TextArea/AutoScrollOnSelectAndAppend/AutoScrollOnSelectAndAppend.java fails on mac10.13
Reviewed-by: psadhukhan

(cherry picked from commit 2f979ecb5b)
2021-12-11 06:40:20 +07:00
Alexander Zuev
6d1add0393 8169468: NoResizeEventOnDMChangeTest.java fails because FS Window didn't receive all resizes!
Reviewed-by: serb

(cherry picked from commit b0a463fa59)
2021-12-11 06:39:03 +07:00
Jayathirth D V
f57241bcf8 8255898: Test java/awt/FileDialog/FilenameFilterTest/FilenameFilterTest.java fails on Mac OS
Reviewed-by: prr, serb
(cherry picked from commit 947d52c4c3)
2021-12-11 06:36:28 +07:00
Alexander Zuev
3fca5bee90 8202667: java/awt/Debug/DumpOnKey/DumpOnKey.java times out on Windows
Reviewed-by: prr
(cherry picked from commit cd778f5b04)
2021-12-11 06:35:00 +07:00
Jayathirth D V
60330c9b3e 8255724: [XRender] the BlitRotateClippedArea test fails on Linux in the XR pipeline
Reviewed-by: psadhukhan
(cherry picked from commit dcd6e0da24)
2021-12-11 06:30:30 +07:00
Phil Race
4a16c3b8c8 8192931: Regression test java/awt/font/TextLayout/CombiningPerf.java fails
Reviewed-by: serb, jdv, kizune
(cherry picked from commit 54a29a4470)
2021-12-11 06:26:37 +07:00
Alexander Zvegintsev
2ece56c057 8196440: Regression automated Test 'java/awt/TrayIcon/PopupMenuLeakTest/PopupMenuLeakTest.java' fails
Reviewed-by: serb, psadhukhan
(cherry picked from commit f610ef0dbc)
2021-12-11 06:23:54 +07:00
Alexander Zuev
c3a506172b 8196017: java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java fails
Reviewed-by: serb
(cherry picked from commit b7104ba9a9)
2021-12-11 06:23:19 +07:00
Alexander Zvegintsev
c81d4030eb 6854300: [TEST_BUG] java/awt/event/MouseEvent/SpuriousExitEnter/SpuriousExitEnter_3.java fails in jdk6u14 & jdk7
Reviewed-by: serb
(cherry picked from commit a1ec4f9618)
2021-12-11 06:21:28 +07:00
Alexander Zuev
32fb930e85 8168388: GetMousePositionTest fails with the message "Mouse position should not be null"
Reviewed-by: psadhukhan, serb
(cherry picked from commit 0c3eaea11c)
2021-12-11 06:18:53 +07:00
Pankaj Bansal
0ef1d9a4a9 8198626: java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html fails on mac
Reviewed-by: serb
(cherry picked from commit a60e91259b)
2021-12-11 06:18:21 +07:00
Vitaly Provodin
07ee0a2471 exclude javax/swing tests on mac-aarch64 due to 8277816 2021-12-11 05:48:20 +07:00
Aleksandr Veselov
c4cb87ff06 JBR-4107 A11y: macOS - wrong frame position if window is not on primary screen 2021-12-10 18:26:06 +03:00
Alexander Lobas
6b36a9227d JBR-3442 Native file dialog on OSX (for open file) doesn't allow pasting path
(cherry-picked from commit 7d8cc524ca)
2021-12-10 07:28:14 +07:00
Vitaly Provodin
83ca27f8b2 exclude javax/swing/border/TestTitledBorderLeak.java on windows due to 8213531 2021-12-10 05:23:35 +07:00
Maxim Kartashev
c539ca4ddf fixup! JBR-4061 Specify build user for the build
Specify build user via the environment variable rather than the
configure option because the latter isn't supported for OpenJDK17u.
2021-12-09 09:31:09 +03:00
Mandy Chung
51ec2c610e JBR-4062 8276650: GenGraphs does not produce deterministic output
Reviewed-by: iris
(cherry picked from commit e21b5c7b37)
2021-12-08 16:44:46 +03:00
Jaikiran Pai
2b8ee942e0 JBR-4062 8258117: jar tool sets the time stamp of module-info.class entries to the current time
Reviewed-by: lancea, ihse, alanb
(cherry picked from commit a81e4fc07b)
2021-12-08 16:31:20 +03:00
Andrew Leonard
9b17148ef4 JBR-4062 8276764: Enable deterministic file content ordering for Jar and Jmod
Reviewed-by: mchung, ihse
(cherry picked from commit 24e586a043)
2021-12-08 15:10:06 +03:00
Magnus Ihse Bursie
02289f478f JBR-4062 8277069: [REDO] JDK-8276743 Make openjdk build Zip Archive generation "reproducible"
Co-authored-by: Andrew Leonard <aleonard@openjdk.org>
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Reviewed-by: erikj
(cherry picked from commit c93552c8bb)
2021-12-08 14:55:59 +03:00
Vitaly Provodin
2f0eb2bba8 JBR-4067 fix misprint with applying obsolete exclude_jcef_module.patch 2021-12-08 15:17:32 +07:00
Vitaly Provodin
740bf2b3e5 JBR-3756 remove JNF from mac-aarch64 binaries 2021-12-08 15:17:32 +07:00
Denis Fokin
88d7361bd9 JBR-4038 [JBR17] Force Touch events are not supported on macOS
Added missing files and handlers from JBR11
2021-12-07 19:31:12 +01:00
Dmitry Batrak
87c6482c0e JBR-4084 Default font '. AppleSystemUIFont' does not have bold weight on Chinese characters
(cherry picked from commit 4fde082d53)
2021-12-06 19:22:24 +03:00
Maxim Kartashev
b2a9372d70 JBR-3899 SIGSEGV at [libjvm] _ZN23JfrNetworkInterfaceName11on_rotationEv
Prevent JfrNetworkInterfaceName::on_rotation() to dereference a
potentially NULL pointer.
2021-12-06 19:03:53 +03:00
Dmitry Batrak
d0d8a63e0b JBR-4072 Migrate font fallback implementation on macOS to cascade lists
(cherry picked from commit a155760e94)
2021-12-06 17:59:44 +03:00
Maxim Kartashev
09c200ccfd fixup! JBR-3833 ServerSocketChannel.open(StandardProtocolFamily.UNIX) fails with IAE with non-standard filesystems on JBR17
Windows implementation of PipeImpl (that is used in the
ServerSockerChannel implementation) probes for the availability of Unix
Domain Sockets by trying to bind to a unique temporary name.  That call
throws IAE when a non-default Java file system is installed while the
probing code (PipeImpl.createListener()) only expects
UnsupportedOperationException or IOException.

The fix is to re-throw UOE instead of IAE in
UnixDomainSockets.genrateTempName(). This is more consistent with the
definition of the excpetion purpose ("requested operation is not
supported"). So with this change, a loopback network socket will be used
to implement a pipe on a non-default Java file system. Also, pipes do
not rely on the default Java file system on other platforms (Linux,
MacOS) as well.
2021-12-06 11:44:54 +03:00
Vitaly Provodin
42a22e0cc4 JBR-4082 create JBR & JBRSDK installer packages 2021-12-06 05:16:12 +07:00
Artem Semenov
71d54051d2 JBR-4012 On Idea Vo often speeks selected element of tables, lists, and trees. 2021-12-03 13:57:07 +03:00
Alexey Ushakov
d4fc6bc380 JBR-4060 [JBR17+Metal] Flickering on button's shadow
Removed unnecessary global flag. Optimized mask cache texture clearing code.
2021-12-03 01:38:41 +01:00
Vitaly Provodin
1e1f71f907 exclude failing tests #198.2 cycle 2021-12-03 07:24:05 +07:00
Prasanta Sadhukhan
6d26c9353f 8273578: javax/swing/JMenu/4515762/bug4515762.java fails on macOS 12
Reviewed-by: jdv, serb

(cherry picked from commit 45adc9227a)
2021-12-03 07:24:05 +07:00
Alexander Zvegintsev
adabf8c677 8202932: java/awt/Component/NativeInLightShow/NativeInLightShow.java fails
Reviewed-by: serb
(cherry picked from commit 7cf68b1901)
2021-12-03 04:40:30 +07:00
Maxim Kartashev
5e0ec47ce9 JBR-4061 Specify build user for the build 2021-12-02 08:56:21 +03:00
Andrew Leonard
9ec9457d8b JBR-4062 8277762: Allow configuration of HOTSPOT_BUILD_USER
Reviewed-by: erikj
2021-12-02 08:29:16 +03:00
Maxim Kartashev
e1a1b6814d 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.
2021-12-01 14:33:59 +03:00
Maxim Kartashev
944797005c 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.
2021-12-01 14:33:59 +03:00
Ioi Lam
507f4d716a JBR-4032 8273092: Sort classlist in JDK image
NB: this commit has been adopted for version 17.

Reviewed-by: redestad, ihse, dfuchs
(based on commit 1996f649a3)
2021-12-01 14:33:59 +03:00
Ioi Lam
67c24c9b88 JBR-4032 8272113: Build compare script fails with differences in classlist
Reviewed-by: tschatzl, hseigel
(cherry picked from commit 272fcb423a)
2021-12-01 14:33:59 +03:00
Andrew Leonard
2ef4de692d JBR-4032 8276654: element-list order is non deterministic
Reviewed-by: ihse
(cherry picked from commit 14d66bd438)
2021-12-01 14:33:59 +03:00
Jaikiran Pai
f20b2dca0f JBR-4032 8231640: (prop) Canonical property storage
Reviewed-by: rriggs, smarks, dfuchs, ihse
(cherry picked from commit af50772d39)
2021-12-01 14:33:59 +03:00
Maxim Kartashev
0b9397cf4c JBR-4032 Correct reproducible builds documentation 2021-12-01 14:33:59 +03:00
Magnus Ihse Bursie
392cf1c31a JBR-4032 8275745: Reproducible copyright headers
Reviewed-by: ihse, erikj
(cherry picked from commit a0227965bb)
2021-12-01 14:33:59 +03:00
Magnus Ihse Bursie
b269750318 JBR-4032 8276746: Add section on reproducible builds in building.md
Reviewed-by: erikj, sgehwolf, aleonard
(cherry picked from commit 59c3dcc761)
2021-12-01 14:33:58 +03:00
Jaikiran Pai
0676b50884 JBR-4032 8275509: ModuleDescriptor.hashCode isn't reproducible across builds
Reviewed-by: alanb, ihse
(cherry picked from commit 396132ff1e)
2021-12-01 14:33:58 +03:00
Maxim Kartashev
4df6fbd251 JBR-4059 Create Dockerfile for building on AArch64 Linux 2021-12-01 08:27:52 +03:00
bobpengxie
006cd74964 8274293: Build failure on macOS with Xcode 13.0 as vfork is deprecated
Reviewed-by: alanb, stuefe, rriggs
(cherry picked from commit 252aaa9249)
2021-11-30 09:19:46 +01:00
Alexey Ushakov
57289a0ad5 8272392 Lanai: SwingSet2. Black background on expanding tree node
Removed creation of the separate encoder depending on destination properties as we don't use this info to customize the encoder properties
Fixed incorrect addition of the values into pipeline state cache. Refactored index initialization. Removed unused flags from MTLClip.
2021-11-26 14:02:58 +01:00
Dmitry Batrak
4916d26f47 JBR-4021 Unexpected focus event order on window showing
(cherry picked from commit 2a398ebb24)
2021-11-24 09:47:53 +03:00
Nikita Gubarkov
2daed21814 JBR-4017 Open com.jetbrains.bootstrap package only for reflection 2021-11-23 11:22:08 +03:00
Ivan Lopatin
d99872c962 IDEA-229577: Marked i3wm as GravityBuggy 2021-11-22 21:21:05 +07:00
Maxim Kartashev
ae5963a094 JBR-4020 Test ObsoleteFlagErrorMessage fails after +IgnoreUnrecognizedVMOptions has become the default 2021-11-22 11:12:32 +03:00
Maxim Kartashev
9d8433f220 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)
2021-11-22 10:05:53 +03:00
Artem Semenov
2f4a7f66ab JBR-3868 Combobox list is not voiced of VoiceOver 2021-11-18 20:01:34 +03:00
Jayathirth D V
28289bcf00 JBR-3908 8276905: Use appropriate macosx_version_minimum value while compiling metal shaders
Reviewed-by: ihse, kcr, erikj, prr
(cherry picked from commit 9a9a157a7d)
2021-11-17 04:25:27 +07:00
Dmitry Batrak
71597c1b0e JBR-4007 [JCK] javax.swing.text.GlyphView.calcBreakSpots method breaks public API
(cherry picked from commit 1002eff4f3)
2021-11-16 19:52:25 +03:00
Dmitry Batrak
80efac6e25 JBR-4006 [JCK] javax.swing.text.html.CSS$Attribute.OVERFLOW_WRAP field breaks public API
(cherry picked from commit f20a3d8679)
2021-11-16 19:21:32 +03:00
Dmitry Batrak
641688b88a JBR-4005 [JCK] java.awt.Font.LAYOUT_NO_PAIRED_CHARS_AT_SCRIPT_SPLIT field breaks public API
(cherry picked from commit 961e036158)
2021-11-16 16:44:50 +03:00
Vitaly Provodin
b6699ce7a2 update the link to JBR17 for IDEA 2021.3 EAP 2021-11-16 04:26:13 +07:00
Dmitry Batrak
cf7d0ecb1f JBR-3989 Broken focus state after a quick succession of activation/deactivation events on Windows
(cherry picked from commit cafb374afc)
2021-11-15 16:08:52 +03:00
Alexey Ushakov
93fe26f579 JBR-3954 Transparent text color rendering (needed for experimental UI)
Performed conversion from ARGB_PRE to ARGB in the grayscale text shader
2021-11-11 20:06:45 +01:00
Dmitry Batrak
f4ecc22b1b JBR-3979 Focus is not transferred to parent window
(cherry picked from commit 25e087d269)
2021-11-11 09:58:53 +03:00
Nikita Gubarkov
290f700127 JBR-3982 Fixed non-antialiased text rendering on macOS 2021-11-11 01:27:46 +03:00
Vitaly Provodin
acdb9fccbd update the link to JBR17 for IDEA 2021.3 EAP 2021-11-11 04:19:31 +07:00
Nikita Gubarkov
1e79cf4924 JBR-3976 fix emoji scaling on macOS 2021-11-10 15:49:48 +03:00
Nikita Gubarkov
00ce50d5d9 JBR-3957 Disable hinting when retrieving outline via freetype and fix negative bounds size for text rotated by 180 degrees. 2021-11-10 13:54:10 +03:00
Vitaly Provodin
17acd28d7c JBR-3937 Fix crashes in C1/C2 compilers &
G1 fixes, code cleanup &
JBR-3867 fix dcevm redefinition stops due the not updated weak oops
2021-11-10 06:54:16 +07:00
Nikita Gubarkov
c6f3522d16 fixup! JBR-2135 Use CoreText api to select the font with the most recent version 2021-11-09 14:11:59 +03:00
Nikita Gubarkov
8b35a7e88c JBR-2917 disable GDI rendering on Windows for colored fonts & select glyph rendering loop depending on actual glyph format instead of antialiasing mode
JBR-3951 Pass real glyph type from native code instead of guessing it by rowBytes & width
2021-11-09 14:11:58 +03:00
Pavel
6e15088b7e 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)
2021-11-08 17:11:48 +03:00
Vitaly Provodin
3a0d06b873 update the link to JBR17 for IDEA 2021.3 EAP 2021-11-08 12:32:21 +07:00
Vitaly Provodin
531f97d905 JBR-3908 add MACOSX_VERSION_MAX parameter into cofnigure 2021-11-06 09:34:49 +07:00
Vitaly Provodin
32a8087610 exclude java/awt/Window/GetScreenLocation/GetScreenLocationTest.java & java/awt/image/multiresolution/MultiresolutionIconTest.java on linux-aarch64 2021-11-05 17:56:34 +07:00
Sergey Bylokhov
0cd0b7ff8e 8273638: javax/swing/JTable/4235420/bug4235420.java fails in GTK L&F
Reviewed-by: pbansal, psadhukhan, azvegint
(cherry picked from commit 6cf70f5f08)
2021-11-05 09:04:41 +07:00
Vitaly Provodin
4bdaf472a8 exclude java/awt/Graphics2D/CopyAreaOOB.java on linux-all due to 7001973 2021-11-04 09:08:21 +07:00
Alexey Ushakov
8ba4251ad5 JBR-3952 [bkp JBR17] JBR-3924 CMD+Tilda does not switch app windows
Introduced vm property to disable capturing of next app window shortcut
2021-11-03 15:14:15 +01:00
Nikita Gubarkov
2d029761c2 fixup! JBR-2917 Added emoji support for Windows 2021-11-03 00:03:30 +03:00
Nikita Gubarkov
91a5488284 JBR-2917 Added emoji support for Windows 2021-11-02 21:48:21 +03:00
Nikita Gubarkov
49536a0988 JBR-3915 Fix comment about subpixel glyph resolution in freetype implementation 2021-11-02 21:48:12 +03:00
Ivan Lopatin
3641a3d262 JBR-3388: Fixed wrong graphic config in Component on primary display change 2021-11-01 23:19:21 +07:00
Nikita Gubarkov
c3c844caab fixup! JBR-3915 Render glyph multiple times instead of downscaling when subpixel resolution is enabled to preserve hinting (Windows, Linux) 2021-10-29 14:01:51 +03:00
Nikita Gubarkov
4165302aed JBR-3915 Render glyph multiple times instead of downscaling when subpixel resolution is enabled to preserve hinting (Windows, Linux) 2021-10-29 02:18:09 +03:00
Maxim Kartashev
d6600f1ccd 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)
2021-10-28 19:35:33 +03:00
Phil Race
8c8728873a 8273358: macOS Monterey does not have the font Times needed by Serif
Backport-of: efe3ed1e70
(cherry picked from commit 75240a5872)
2021-10-28 11:45:06 +07:00
Christoph Langer
e4f6f6308c 8269993: [Test]: java/net/httpclient/DigestEchoClientSSL.java contains redundant @run tags
Backport-of: 4e18ec26dd
(cherry picked from commit 5e04e45271)
2021-10-28 11:45:06 +07:00
Abdul Kolarkunnu
db1699c5eb 8272581: sun/security/pkcs11/Provider/MultipleLogins.sh fails after JDK-8266182
Backport-of: a199ebc017
(cherry picked from commit ff6a9382f5)
2021-10-28 11:45:05 +07:00
Abdul Kolarkunnu
e11878c0b8 8266182: Automate manual steps listed in the test jdk/sun/security/pkcs12/ParamsTest.java
Backport-of: ed57cf1cf3
(cherry picked from commit 9248bd08cf)
2021-10-28 11:45:05 +07:00
David Holmes
b2d03d5cb9 8269934: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status
Backport-of: 7e518f42c9
(cherry picked from commit 671dab6154)
2021-10-28 11:45:04 +07:00
Phil Race
07afb903e6 8272806: [macOS] "Apple AWT Internal Exception" when input method is changed
Backport-of: f681d6544a
(cherry picked from commit 71a6aae38d)
2021-10-28 11:45:04 +07:00
Sean Coffey
fc24e5fa7b 8270344: Session resumption errors
Backport-of: 04a806ec86
(cherry picked from commit 20d00ebaf7)
2021-10-28 11:45:03 +07:00
Aleksey Shipilev
56c82ffa44 8269897: Shenandoah: Resolve UNKNOWN access strength, where possible
Backport-of: 7ac08161a8
(cherry picked from commit 37de147bea)
2021-10-28 11:45:03 +07:00
Jie Fu
9409bc69f7 8272700: [macos] Build failure with Xcode 13.0 after JDK-8264848
Backport-of: d007be0952
(cherry picked from commit 648f3f6a8f)
2021-10-28 11:45:02 +07:00
Christoph Langer
19f159ede7 8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm Setup
Backport-of: 67869b491a
(cherry picked from commit 9a7046d649)
2021-10-28 11:45:02 +07:00
David Holmes
81ff7dee0c 8272472: StackGuardPages test doesn't build with glibc 2.34
Backport-of: f77a1a156f
(cherry picked from commit bb7c412e25)
2021-10-28 11:45:01 +07:00
Thejasvi Voniadka
7f094b020e 8272708: [Test]: Cleanup: test/jdk/security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java no longer needs ocspEnabled
Backport-of: 4bd37c3153
(cherry picked from commit 567fdbf4b5)
2021-10-28 11:45:01 +07:00
Aleksey Shipilev
12bb636c5f 8270096: Shenandoah: Optimize gc/shenandoah/TestRefprocSanity.java for interpreter mode
Backport-of: 4f322a9b6c
(cherry picked from commit 7d6c3adef3)
2021-10-28 11:45:00 +07:00
Aleksey Shipilev
d4aa4cef24 8270094: Shenandoah: Provide human-readable labels for test configurations
Backport-of: 676f1d76ca
(cherry picked from commit 3c1023c1b9)
2021-10-28 11:45:00 +07:00
Aleksey Shipilev
a0582f582d 8269478: Shenandoah: gc/shenandoah/mxbeans tests should be more resilient
Backport-of: 23d2996fee
(cherry picked from commit 9554fba495)
2021-10-28 11:44:59 +07:00
Ravi Reddy
fed7797313 8265776: Improve Stream handling for SSL
Backport-of: 345c6d3045e4e37e4f8dca30f5b1104c5eb403a9
(cherry picked from commit 0a08534703)
2021-10-28 11:44:59 +07:00
Joe Darcy
181652c300 8272326: java/util/Random/RandomTestMoments.java had two Gaussian fails
Backport-of: cf64c3e7e2
(cherry picked from commit 24e5c1a040)
2021-10-28 11:42:58 +07:00
Thejasvi Voniadka
0cf709a181 8248899: security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java fails, Certificate has been revoked
Backport-of: d6bb846159
(cherry picked from commit 704e6b93aa)
2021-10-28 11:42:57 +07:00
Thejasvi Voniadka
a1de736544 8243543: jtreg test security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java fails
Backport-of: 45abbeed2f
(cherry picked from commit efeb10b5ca)
2021-10-28 11:42:57 +07:00
Harold Seigel
c4652d8ab4 8272124: Cgroup v1 initialization causes NullPointerException when cgroup path contains colon
Backport-of: 4d6593ce02
(cherry picked from commit f0028333d8)
2021-10-28 11:42:56 +07:00
Tobias Hartmann
5ff1f7fae4 8272131: PhaseMacroExpand::generate_slow_arraycopy crash when clone null CallProjections.fallthrough_ioproj
Backport-of: 5350b9901c
(cherry picked from commit 790d9a9fda)
2021-10-28 11:42:56 +07:00
Tobias Hartmann
5c5b3b032a 8271203: C2: assert(iff->Opcode() == Op_If || iff->Opcode() == Op_CountedLoopEnd || iff->Opcode() == Op_RangeCheck) failed: Check this code when new subtype is added
Backport-of: 3f38a50c52
(cherry picked from commit 8a20dfe546)
2021-10-28 11:42:55 +07:00
Tobias Hartmann
3b52ea1aa3 8271276: C2: Wrong JVM state used for receiver null check
Backport-of: e8f1219d6f
(cherry picked from commit 66bd0d57ee)
2021-10-28 11:42:55 +07:00
Tobias Hartmann
ceef54ac0a 8268963: [IR Framework] Some default regexes matching on PrintOptoAssembly in IRNode.java do not work on all platforms
Backport-of: 9856ace828
(cherry picked from commit 32f026ab74)
2021-10-28 11:42:54 +07:00
Tobias Hartmann
85b8bac5e1 8271925: ZGC: Arraycopy stub passes invalid oop to load barrier
Backport-of: d53d94b14d
(cherry picked from commit 9489ab7b8b)
2021-10-28 11:42:54 +07:00
Tobias Hartmann
727fcd37a7 8268019: C2: assert(no_dead_loop) failed: dead loop detected
Backport-of: 489e5fd12a
(cherry picked from commit 90341dbccd)
2021-10-28 11:42:53 +07:00
Tobias Hartmann
9a610ddc73 8270098: ZGC: ZBarrierSetC2::clone_at_expansion fails with "Guard against surprises" assert
Backport-of: 2384e12888
(cherry picked from commit 52c3e7dcf1)
2021-10-28 11:42:53 +07:00
Joe Darcy
f0c0b86f90 8261088: Repeatable annotations without @Target cannot have containers that target module declarations
Backport-of: 60c11fef00
(cherry picked from commit cb7e311dc6)
2021-10-28 11:42:52 +07:00
Severin Gehwolf
9a7c6bea31 8272332: --with-harfbuzz=system doesn't add -lharfbuzz after JDK-8255790
Backport-of: d38b31438d
(cherry picked from commit e506cb23cf)
2021-10-28 11:42:52 +07:00
Vladimir Kozlov
f9a9101f57 8271589: fatal error with variable shift count integer rotate operation.
Backport-of: 392fcc9df7
(cherry picked from commit 9c213825ae)
2021-10-28 11:42:51 +07:00
Sean Coffey
fb847c4826 8271730: Client authentication using RSASSA-PSS fails after correct certificate requests
Backport-of: 5891fccf178797ef12e429637897d4149a7ae59a
(cherry picked from commit 7d799fe4e7)
2021-10-28 11:42:51 +07:00
Jamsheed Mohammed C M
80601bbc19 8271723: Unproblemlist runtime/InvocationTests/invokevirtualTests.java
Backport-of: 058379cdf91fd46793744a6bd7450c669f3bf787
(cherry picked from commit 5e8b87038b)
2021-10-28 11:42:50 +07:00
Evan Whelan
acd17c74c4 8267712: Better LDAP reference processing
Backport-of: 0d2a239cb4b7fdc88adb54eb66b36f5f5157418f
(cherry picked from commit eac2c999f2)
2021-10-28 11:42:50 +07:00
Prajwal Kumaraswamy
462f3efa87 8263314: Enhance XML Dsig modes
Reviewed-by: coffeys, pkoppula
Backport-of: fe318432e184c2df95d802212b4eb510d3729459
(cherry picked from commit c3bbf5bd28)
2021-10-28 11:42:49 +07:00
Prasadrao Koppula
08a4d41204 8266103: Better specified spec values
Backport-of: 9bd20b57e1d79bd2bb386fb5df48e681fbbbd981
(cherry picked from commit 55c8adf6c6)
2021-10-28 11:42:49 +07:00
Prasadrao Koppula
126a349e06 8266689: More Constrained Delegation
Backport-of: 723438b38868c373d1b8d7e6db576835be392932
(cherry picked from commit 2cb686567b)
2021-10-28 11:42:48 +07:00
Evgeny Astigeevich
1ba0d66607 8268427: Improve AlgorithmConstraints:checkAlgorithm performance
Backport-of: 3b83bc1bc3
(cherry picked from commit 456735f772)
2021-10-28 11:42:48 +07:00
Severin Gehwolf
0ac93f103b 8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu usage in containers
Backport-of: 25f00d787c
(cherry picked from commit 02ea80a6f0)
2021-10-28 11:42:47 +07:00
Christoph Langer
34095d9e40 8267625: AARCH64: typo in LIR_Assembler::emit_profile_type
Reviewed-by: aph
Backport-of: 3d090e7ee5
(cherry picked from commit 9175a8d217)
2021-10-28 11:42:47 +07:00
Jamsheed Mohammed C M
6164766ac8 8269624: Enhance method selection support
Backport-of: acd1fa5d8fabd424ec3b125b56e5ca482b25f2d9
(cherry picked from commit c38902db6b)
2021-10-28 11:42:46 +07:00
Richard Reingruber
d45fb152cd 8269574: C2: Avoid redundant uncommon traps in GraphKit::builtin_throw() for JVMTI exception events
Backport-of: 72530ef666
(cherry picked from commit a575f5c090)
2021-10-28 11:42:46 +07:00
Vladimir Kozlov
0eb220c53f 8268261: C2: assert(n != __null) failed: Bad immediate dominator info.
Backport-of: 4ed548b3ee
(cherry picked from commit de808a5e92)
2021-10-28 11:42:45 +07:00
Rajan Halade
c70fb9a9f0 8225082: Remove IdenTrust certificate that is expiring in September 2021
Backport-of: 2ec45dc2dd
(cherry picked from commit 9b97129e8c)
2021-10-28 11:42:44 +07:00
Harold Seigel
5b5a1ec040 8270398: Enhance canonicalization
Backport-of: 0a6c6a2c954d7889934d3caa4256124a1c5662a0
(cherry picked from commit fc8f959e6b)
2021-10-28 11:39:57 +07:00
Harold Seigel
042e9bde60 8270404: Better canonicalization
Backport-of: a0a8a41bb1da9261b2d3c4a43a6738fbf3286b5d
(cherry picked from commit b6003a87e4)
2021-10-28 11:39:56 +07:00
Christoph Langer
983c12795d 8267666: Add option to jcmd GC.heap_dump to use existing file
Backport-of: 7cbb67a3f8
(cherry picked from commit 9b6aa5304c)
2021-10-28 11:39:55 +07:00
Christoph Langer
94b02105aa 8263531: Remove unused buffer int
Backport-of: ca806ef319
(cherry picked from commit 00ffb8f1b9)
2021-10-28 11:39:55 +07:00
Prasanta Sadhukhan
665dc9f72c 8269763: The JEditorPane is blank after JDK-8265167
Backport-of: 36aac3987938688c97c06f34fdc8688e0b24a4fa
(cherry picked from commit da18f64548)
2021-10-28 11:39:54 +07:00
Prasanta Sadhukhan
e4a5f15a17 8265580: Enhanced style for RTF kit
Backport-of: dd4a17f711b0027ed6377ca57c43a7d68d4df566
(cherry picked from commit 4fa8b8fd54)
2021-10-28 11:39:53 +07:00
Prasanta Sadhukhan
5e4c9fa497 8265574: Improve handling of sheets
Backport-of: a20f56155d675fd606ed57fddb153aeb9dc270ae
(cherry picked from commit 4fcc43dce7)
2021-10-28 11:39:53 +07:00
Prajwal Kumaraswamy
3b442f1387 8266115: More Manifest Jar Loading
Reviewed-by: coffeys, weijun
Backport-of: 1834a749a1d51c82fb1a1c34770c7ab5b4ff9fce
(cherry picked from commit 78cb6a1e6c)
2021-10-28 11:39:52 +07:00
Jamil Nimeh
2bc5573c0d 8268199: Correct certificate requests
Backport-of: afeccc7639d3d09041b58cf0f5672eb7310b2cbd
(cherry picked from commit da5e349088)
2021-10-28 11:39:52 +07:00
Hai-May Chao
97fe70e623 8268500: Better specified ParameterSpecs
Backport-of: 04ba2a665d4f2af34ed7896e2f1b2b5f9cdf31a4
(cherry picked from commit 82d44a79de)
2021-10-28 11:39:51 +07:00
Jamil Nimeh
4bf5b250e8 8268193: Improve requests of certificates
Reviewed-by: ascarpino
Backport-of: ce8b2eac4f9643575a87617ae8091657e9458c22
(cherry picked from commit 33cd383a96)
2021-10-28 11:39:50 +07:00
Xue-Lei Andrew Fan
6a6b306d4b 8268205: Enhance DTLS client handshake
Reviewed-by: jnimeh
Backport-of: 4a0c4038401e48d5111449ca35c0795d94f9ab83
(cherry picked from commit 5adbf765a2)
2021-10-28 11:39:50 +07:00
Xue-Lei Andrew Fan
d1f850624e 8269618: Better session identification
Reviewed-by: jnimeh
Backport-of: 116b77755f0a5d8c786a0c0ead4fc557ce359e6e
(cherry picked from commit cf73d51d77)
2021-10-28 11:39:49 +07:00
Kiran Sidhartha Ravikumar
f3fdcb0714 8268506: More Manifest Digests
Backport-of: 306a51b13f5307b0de9d2f04daa983ccd8f92284
(cherry picked from commit b3054c8168)
2021-10-28 11:39:49 +07:00
pavel_kharskii
4880125640 8269297: Bump version numbers for JDK 17.0.1
Reviewed-by: robm, erikj
(cherry picked from commit 040f1053aa)
2021-10-28 11:39:48 +07:00
Jayathirth D V
0c68210497 8267735: Better BMP support
Backport-of: 67ddc7e7f3b178998ea59f68758a5fa510624e12
(cherry picked from commit b24dff5fef)
2021-10-28 11:39:47 +07:00
Weijun Wang
7541d7b433 8267086: ArrayIndexOutOfBoundsException in java.security.KeyFactory.generatePublic
Backport-of: 2e375ae9ed459527393f9dd13d15d1031ad6095f
(cherry picked from commit 87b5f1bd82)
2021-10-28 11:39:47 +07:00
Prajwal Kumaraswamy
5927fc769b 8266137: Improve Keystore integrity
Reviewed-by: coffeys, hchao
Backport-of: 06acda364f1483c15adca105d612a24f1d50112c
(cherry picked from commit 0102000658)
2021-10-28 11:39:46 +07:00
Julia Boes
8236ede496 8266097: Better hashing support
Reviewed-by: chegar, dfuchs, ahgross, smarks, rhalade
(cherry picked from commit 8f31f0d343)
2021-10-28 11:39:45 +07:00
Weijun Wang
d67378295f 8266109: More Resilient Classloading
Reviewed-by: rhalade
Backport-of: 00c10ed10286a1989a339bc35cb64302630427ae
(cherry picked from commit 4b289d6ab5)
2021-10-28 11:39:45 +07:00
Xue-Lei Andrew Fan
7d0ad85c28 8267729: Improve TLS client handshaking
Reviewed-by: jnimeh, ahgross, rhalade
(cherry picked from commit 80dd63d0d7)
2021-10-28 11:39:44 +07:00
Prasanta Sadhukhan
9b692eeaf0 8265167: Richer Text Editors
Backport-of: c59311d94c3f010b9017825d767db8241c69a2a7
(cherry picked from commit 3888c76ac3)
2021-10-28 11:39:44 +07:00
Maxim Kartashev
3a15dfad37 JBR-3623 SIGSEGV at [libawt_xawt] Java_sun_awt_X11GraphicsDevice_getConfigColormap
This fix addresses two possible causes of crashes:
1. makeDefaultConfig() returning NULL. The fix is to die gracefully
instead of crashing in an attempt to de-reference the NULL pointer.

2. A race condition when the number of screens change (this is only an
issue with the number of xinerama screens; the number of X11 screens is
static for the duration of the X session).

The race scenario: X11GraphisDevice.makeDefaultConfiguration() is called
on EDT so the call can race with X11GraphisDevice.invalidate() that
re-sets the screen number of the device; the latter is invoked on the
"AWT-XAWT" thread from X11GraphicsEnvironment.rebuildDevices(). So by
the time makeDefaultConfiguration() makes a native call with the
device's current screen number, the x11Screens array maintained by the
native code could have become shorter. And the native methods like
Java_sun_awt_X11GraphicsDevice_getConfigColormap() assume that the
screen number passed to them is always current and valid. The AWT lock
only protects against the changes during the native methods invocation,
but does not protect against them being called with an outdated screen
number.

The fix is to eliminate the race by protecting X11GraphisDevice.screen
with the AWT lock.

(cherry picked from commit 0b53cd291f)
2021-10-27 11:35:11 +03:00
Nikita Gubarkov
b3ce2ef163 JBR-3915 Render glyph multiple times instead of downscaling when subpixel resolution is enabled to preserve hinting (macOS) 2021-10-27 02:14:15 +03:00
Maxim Kartashev
4517168648 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)
2021-10-26 18:31:58 +03:00
Vitaly Provodin
3bae514df5 JBR-3905 add incremental JBR building 2021-10-24 08:53:21 +07:00
Vitaly Provodin
68cfc784e7 JBR-3904 fix the image directory name of macos builds 2021-10-24 07:16:55 +07:00
Anton Tarasov
4bc0b1e833 include a11y test into regular runs after fixing JBR-3730 & JBR-3733 2021-10-23 08:31:12 +07:00
Vitaly Provodin
a87d48867a JBR-3902 create jbr_all test group 2021-10-23 08:28:25 +07:00
Vitaly Provodin
de10f3a55e port dcevm fixes for JBR-3867 and JBR-3887
JBR-3867 update keys of jvmti TAG map after redefinition

JBR-3887 fix M1 dcevm SIGBUS crash by using correct var arg processing
2021-10-23 04:52:26 +07:00
Vitaly Provodin
18e1552b9d 8267887 exclude javax/management/remote/mandatory/connection/RMIConnector_NPETest.java 2021-10-22 19:32:10 +07:00
Thejasvi Voniadka
7714eca9e2 8270280: security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA.java OCSP response error
Backport-of: f4b3ee5dca
(cherry picked from commit e9fd4b9fc4)
2021-10-22 19:32:10 +07:00
Alexander Zuev
5b559a8764 8269269: [macos11] SystemIconTest fails with ClassCastException
Reviewed-by: jdv
(cherry picked from commit eab959cbfa)
2021-10-22 19:32:09 +07:00
Thomas Schatzl
34b306300d 8263461: jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java uses wrong mechanism to cause evacuation failure
Reviewed-by: kbarrett, iwalulya, ayang

(cherry-picked from commit ee0247f056)
2021-10-22 19:32:09 +07:00
Alexander Lobas
0cf6d2da8d 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)
2021-10-21 14:10:37 +02:00
Artem Semenov
67ab7032c8 JBR-3881 8271071: accessibility of a table on macOS lacks cell navigation
Reviewed-by: ant, kizune, pbansal
2021-10-18 11:06:11 +07:00
Alexey Ushakov
cd4ef878a0 JBR-3843 IDE text is misaligned vertically when using Consolas font
Use usWinAscent/usWinDescent for metrics on Windows
2021-10-14 18:58:52 +02:00
Alexey Ushakov
5b43a3aef3 JBR-3872 [JBR17+Metal] Wrong color for scrollbars and inlay hints
Corrected typo in setTxtUniforms and fixed alpha blending in frag_gmc_text shader
2021-10-14 18:58:52 +02:00
Nikita Gubarkov
ce2a99a6ec JBR-3876 Changed visibility of FontUtilities#getSubpixelResolution and FontUtilities#subpixelResolution to package-private 2021-10-14 14:41:29 +03:00
Matthias Baesken
882d1064e7 JBR-3874 8274840: Update OS detection code to recognize Windows 11
Co-authored-by: Arno Zeller <arno.zeller@sap.com>
Reviewed-by: clanger, dholmes
(cherry picked from commit 51a590b2e8)
2021-10-14 15:47:51 +07:00
Nikita Gubarkov
45ca486b96 Fixed text spacing on macOS 2021-10-14 07:09:20 +03:00
Vitaly Provodin
a3bfa02ec0 move the script comparing performance results from jdk8u_test 2021-10-14 09:23:35 +07:00
Vitaly Provodin
a9ed023347 JBR-3167 exclude java/awt/Frame/HugeFrame/HugeFrame.java & sun/java2d/ClassCastExceptionForInvalidSurface.java crashing GNOME on Ubuntu-21.04 2021-10-13 10:00:52 +07:00
Maxim Kartashev
92c7e3a9c3 JBR-3871 Disable remote.x11.workaround by default
-Dremote.x11.workaround=true can still be used to enabled it, but
there's no automatic on switch anymore.

(cherry picked from commit fb12f6d7f1)
2021-10-12 00:59:17 -07:00
Vitaly Provodin
e1724ac304 exclude image/multiresolution/MultiresolutionIconTest.java and Window/GetScreenLocation/GetScreenLocationTest.java failing on linux 2021-10-10 05:50:35 +07:00
Nikita Gubarkov
51bb3ddb2f Fixed JBR API JTreg tests 2021-10-09 19:26:37 +03:00
Nikita Provotorov
10c7694d60 fixup! JBR-3838 AltGr on Polish keyboard triggers Ctrl+Alt shortcut.
Workaround for the regression test when it misses a focus for the awt.Component.
2021-10-06 18:09:50 +07:00
Maxim Kartashev
59ea9d809d JBR-3833 ServerSocketChannel.open(StandardProtocolFamily.UNIX) fails with IAE with non-standard filesystems on JBR17
Lazy-initialize the static member UNNAMED of UnixDomainSockets so that this
initialization doesn't throw unless actually used. This is only
necessary when using a non-default file system.
2021-10-05 16:00:27 +03:00
Alexey Ushakov
ab146e18bd JBR-3740 JBR17: Font metrics problem in text fields
Aligned code with openjdk (JDK-8263583)
2021-10-05 13:45:03 +02:00
Nikita Gubarkov
0ca9b169b0 Added JBR API 2021-10-05 02:21:20 +03:00
Maxim Kartashev
289f756f70 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.
2021-10-04 12:15:04 -07:00
Nikita Provotorov
ba84093c7d JBR-3838 AltGr on Polish keyboard triggers Ctrl+Alt shortcut.
Add regression test.

(cherry picked from commit 8df43eef4b)
2021-10-03 13:24:39 +07:00
Vitaly Provodin
46702cad3c fix name for -windows-test-x64 tarball 2021-10-03 05:44:17 +07:00
Artem Semenov
ac8ffa0ba7 8274381: missing CAccessibility definitions in JNI code
Reviewed-by: pbansal, ant, kizune
2021-10-02 08:55:36 +07:00
Alexey Ushakov
fae062d45f 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). Applied some optimisations to shader code.
2021-10-01 14:11:10 +02:00
Artem Semenov
0e87047b7e 8274383: JNI call of getAccessibleSelection on a wrong thread
Reviewed-by: kizune, ant
2021-09-30 16:17:18 +07:00
Vitaly Provodin
0106ef8fef add the link to the latest JBR release 2021-09-29 11:27:53 +07:00
Vitaly Provodin
a69031c54b a11y: exclude tests crashing JBR in the runs with enabled Voice Over 2021-09-29 05:49:39 +07:00
Nikita Gubarkov
8b96b1e115 Remove old JBR API 2021-09-29 00:04:48 +03:00
Maxim Kartashev
48186ebbfb 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)
2021-09-27 11:53:08 -07:00
Maxim Kartashev
6877bb6cd1 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)
2021-09-24 16:50:53 +03:00
Lance Andersen
aab6c2301d 8273935: (zipfs) Files.getFileAttributeView() throws UOE instead of returning null when view not supported
Reviewed-by: alanb, bpb, sgehwolf

(Cherry-picked from 161fdb4afb)
(AKA JBR-3680 Cherry-pick Google's NIO patches to get faster file listing)
2021-09-24 16:50:53 +03:00
Renaud Paquay
8b63dd1c22 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)
2021-09-24 16:50:53 +03:00
Renaud Paquay
9baaee86b0 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)
2021-09-24 16:50:53 +03:00
Artem Semenov
9e0ff20be5 8274056: JavaAccessibilityUtilities leaks JNI objects
Reviewed-by: aivanov, ant
2021-09-24 16:07:18 +07:00
Roger Riggs
f51e55a20f 8269850: Most JDK releases report macOS version 12 as 10.16 instead of 12.0
Reviewed-by: naoto, clanger
(cherry picked from commit 3b1b8fc646)
(AKA JBR-3804 Cherry-pick 8269850 from OpenJDK11)
2021-09-24 09:09:10 +03:00
Dmitry Batrak
e68d154a63 JBR-3799 Broken input of supplementary plane Unicode characters on macOS
apply upstream fix (JDK-8272602)

(cherry picked from commit 7d915be754)
2021-09-22 15:20:21 +03:00
Dmitry
b526f948ff JBR-3793 Accept unrecognized options and make them available in Java
This patch:

- Change default behavior to ignore unrecognized options (+IgnoreUnrecognizedVMOptions)

- Store all ignored values to: "java.vm.unrecognized.options" as "+BogusOption01 +BogusOption02" (space separated), see testcase

- Explicitly set -IgnoreUnrecognizedVMOptions for couple of tests, that rely on default behavior
2021-09-21 18:47:56 +03:00
Dmitry Batrak
fdbb6f02b8 improve the stability of TypeaheadRequestFocusTest
it failed sometimes under MATE desktop environment on Linux

(cherry picked from commit 37901295e1)
2021-09-21 13:04:10 +03:00
Ivan Migalev
6743f36c32 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)
2021-09-21 09:45:55 +01:00
Vitaly Provodin
f706b93717 exclude tests failing due to JDK-8253184 2021-09-21 12:04:20 +07:00
Dmitry Batrak
6f046e9f68 make NestedDialogHideTest more reliable
currently, if fails on KDE, if multiple workspaces are configured, because mouse cursor happens to be located over 'pin' button in window title bar,
and that hover causes a tooltip to be shown, which blocks mouse clicks

(cherry picked from commit ad1595b5c2)
2021-09-20 18:21:26 +03:00
Dmitry Batrak
bac641fe77 JBR-3786 javax/swing/plaf/aqua/CustomComboBoxFocusTest.java fails on MacOS by timeout
(cherry picked from commit f5c5388fb5)
2021-09-20 17:27:07 +03:00
Dmitry Batrak
8dfcb3fd5a JBR-3779 Unexpected Alt+Tab behaviour for Java frames on Cinnamon DE
(cherry picked from commit 0bf13985d5)
2021-09-20 12:27:42 +03:00
Maxim Kartashev
ef651ca1bb 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.
2021-09-20 10:55:38 +03:00
Maxim Kartashev
3092ca0461 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.
2021-09-16 09:19:54 +03:00
Dmitry Batrak
3caa06a639 JBR-3726 Modal windows 'disappear' on minimize in KDE
revert changes not needed anymore

(cherry picked from commit f0ed32fca4)
2021-09-14 18:41:53 +03:00
Dmitry Batrak
6c50ed6690 JBR-3726 Modal windows 'disappear' on minimize in KDE
re-implement the fix without using _NET_WM_STATE_MODAL - it causes other issues

(cherry picked from commit 5c4fd9ceaf)
2021-09-14 18:41:45 +03:00
Nikita Gubarkov
805a5b4f75 Add ExtendedGlyphCache and remove SampleJBRApi from JBR API 2021-09-13 16:47:25 +03:00
Artem Semenov
efabfd0370 8267385: Create NSAccessibilityElement implementation for JavaComponentAccessibility
8262031: Create implementation for NSAccessibilityNavigableStaticText protocol
8264287: Create implementation for NSAccessibilityComboBox protocol peer
8264303: Create implementation for NSAccessibilityTabGroup protocol peer
8264292: Create implementation for NSAccessibilityList protocol peer
8267387: Create implementation for NSAccessibilityOutline protocol
8267388: Create implementation for NSAccessibilityTable protocol
8264286: Create implementation for NSAccessibilityColumn protocol peer
8264298: Create implementation for NSAccessibilityRow protocol peer
8264291: Create implementation for NSAccessibilityCell protocol peer

Reviewed-by: kizune, pbansal, serb
2021-09-11 06:08:56 +07:00
Dmitry Batrak
f757a39090 JBR-3504 a11y focus is set on the wrong element when opening popups
(cherry-picked from commit a69e12e0d2)
2021-09-10 17:49:14 +03:00
Dmitry Batrak
1039653b97 JBR-3726 Modal windows 'disappear' on minimize in KDE
restrict change to KDE only, as it causes problems on GNOME (JBR-3750)

(cherry picked from commit 9c2841028f)
2021-09-10 17:49:09 +03:00
Maxim Kartashev
65fa801231 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().
2021-09-10 12:35:45 +03:00
Nikita Gubarkov
3d9ae4dbe8 JBR-3638 Adjust subpixel glyph positions for correct rounding in CStrike#getGlyphImageBounds 2021-09-08 04:23:24 +03:00
Maxim Kartashev
ef8e01b0d4 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)
2021-09-07 15:02:17 +03:00
Alexey Ushakov
eaa9c1618e JBR-3727 JBR17-Metal: Flickering on tooltip appearance
Used setOpaque() method to set correct background of platform window
2021-09-03 15:14:58 +02:00
Maxim Kartashev
ee3c7edd84 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)
2021-09-01 23:02:37 -07:00
Dmitry Batrak
8a19c38728 JBR-3726 Modal windows 'disappear' on minimize in KDE
(cherry picked from commit d9baf2d9db)
2021-09-01 16:19:38 +03:00
Maxim Kartashev
4fcd80acf0 JBR-3712 Add project creation instructions to JBR README 2021-08-31 14:21:38 +03:00
Maxim Kartashev
6f5dd836de 8269223: -Xcheck:jni WARNINGs working with fonts on Linux
Reviewed-by: prr, serb

(AKA JBR-3542 Fix -Xcheck:jni warnings)
(Based on commit 9bc023220f, includes additional fixes for JBR-specific code)
2021-08-31 13:12:36 +03:00
Maxim Kartashev
2ff21b425e 8267307: Introduce new client property for XAWT: xawt.mwm_decor_title
Reviewed-by: azvegint, serb

(AKA JBR-3416 Introduce new client property for Linux: xawt.mwm_decor_title)
2021-08-30 06:50:11 -07:00
Dmitry Batrak
28e26bc344 JBR-3706 Toggling full screen mode for two frames doesn't work on macOS if invoked without delay
(cherry picked from commit 28cfc4815f)
2021-08-26 16:10:48 +03:00
Dmitry Batrak
1333261006 JBR-3695 JNF removal issue
(cherry picked from commit 83556f56e7)
2021-08-20 10:46:41 +03:00
Vitaly Provodin
519d67cd4c exclude FullScreenInsets test on macosx-aarch64 due to 8266245
exclude bug6596966 test on windows-all due to 8197552
2021-08-18 10:47:41 +07:00
Vladimir Kempik
096484d199 exclude FullScreenInsets test on macosx-aarch64 due to 8266245 2021-08-18 08:40:33 +07:00
Jonathan Gibbons
56dd7358a3 8270872: Final nroff manpage update for JDK 17
Reviewed-by: darcy, mr, iris, naoto
(cherry picked from commit dfacda488b)
2021-08-17 09:58:51 +07:00
Markus Grönlund
bf33424c15 8271588: JFR Recorder Thread crashed with SIGSEGV in write_klass
Reviewed-by: egahlin
(cherry picked from commit 90f85ff70f)
2021-08-17 09:58:51 +07:00
Daniel D. Daugherty
a2405cbfee 8271863: ProblemList serviceability/sa/TestJmapCore.java on linux-x64 with ZGC
Backport-of: a007cb1a1d
(cherry picked from commit f312f28b8b)
2021-08-17 09:58:50 +07:00
Daniel D. Daugherty
a09d00d0bc 8271894: ProblemList javax/swing/JComponent/7154030/bug7154030.java in JDK17
Reviewed-by: darcy
(cherry picked from commit cebcc07b1b)
2021-08-17 09:58:50 +07:00
Daniel D. Daugherty
6105c96011 8271877: ProblemList jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java in JDK17
Reviewed-by: darcy
(cherry picked from commit 5f547e8c11)
2021-08-17 09:58:49 +07:00
Erik Österlund
8c77e17444 8271064: ZGC several jvm08 perf regressions after JDK-8268372
Reviewed-by: ayang, pliden, tschatzl
(cherry picked from commit 181483b90b)
2021-08-17 09:58:48 +07:00
Igor Ignatyev
9a0069f134 8067223: [TESTBUG] Rename Whitebox API package
Reviewed-by: dholmes, kvn
(cherry picked from commit ada58d13f7)
2021-08-17 09:58:48 +07:00
Saravana Kumar Vijayasekaran
fc79bda8dd 8271150: Remove EA from JDK 17 version string starting with Initial RC promotion on Aug 5, 2021(B34)
Reviewed-by: iris, mikael
(cherry picked from commit f8fb571307)
2021-08-17 09:58:47 +07:00
Roland Westrelin
ce8bb4ce8b 8271272: C2: assert(!had_error) failed: bad dominance
Reviewed-by: kvn, thartmann, chagedorn
(cherry picked from commit e351de3bd6)
2021-08-17 09:58:47 +07:00
Chris Plummer
6bb0b6266a 8271512: ProblemList serviceability/sa/sadebugd/DebugdConnectTest.java due to 8270326
Reviewed-by: dcubed
(cherry picked from commit 6180cf1f0d)
2021-08-17 09:58:46 +07:00
Chris Plummer
4b4310ed38 8271507: ProblemList SA tests that are failing with ZGC due to JDK-8248912
Reviewed-by: dcubed
(cherry picked from commit a1b5b818c5)
2021-08-17 09:58:45 +07:00
Roger Riggs
d221c5484e 8271489: (doc) Clarify Filter Factory example
Reviewed-by: iris, kcr, naoto, bpb
(cherry picked from commit 286d313635)
2021-08-17 09:58:45 +07:00
Igor Ignatyev
d31f71ece1 8271403: mark hotspot runtime/memory tests which ignore external VM flags
Reviewed-by: dholmes
(cherry picked from commit 20d2dc1f35)
2021-08-17 09:58:44 +07:00
Igor Ignatyev
b5c9d1299d 8271402: mark hotspot runtime/os tests which ignore external VM flags
Reviewed-by: dholmes
(cherry picked from commit e593e3de4c)
2021-08-17 09:58:44 +07:00
Daniel D. Daugherty
61a3a7b8e8 8271412: ProblemList javax/sound/midi/Sequencer/Looping.java
8271413: ProblemList 2 locale tests on macOS-x64

Reviewed-by: naoto
(cherry picked from commit 7bf72ce301)
2021-08-17 09:58:43 +07:00
Patricio Chilano Mateo
7b936ee500 8271251: JavaThread::java_suspend() fails with "fatal error: Illegal threadstate encountered: 6"
Reviewed-by: dholmes, dcubed
(cherry picked from commit 6878b05f8f)
2021-08-17 09:58:43 +07:00
Igor Ignatyev
5e807aadd3 8271174: runtime/ClassFile/UnsupportedClassFileVersion.java can be run in driver mode
Reviewed-by: mseledtsov, dholmes
(cherry picked from commit c8ae7e5b03)
2021-08-17 09:58:42 +07:00
Kim Barrett
9c224d7db0 8271352: Extend jcc erratum mitigation to additional processors
Reviewed-by: thartmann, eosterlund
(cherry picked from commit 5fcf72086f)
2021-08-17 09:58:42 +07:00
Christoph Göttschkes
b5e58a8c3b 8270908: TestParallelRefProc fails on single core machines
Reviewed-by: tschatzl, kbarrett
(cherry picked from commit 6e1da6440b)
2021-08-17 09:58:41 +07:00
Igor Ignatyev
af6b251d65 8271350: runtime/Safepoint tests use OutputAnalyzer::shouldMatch instead of shouldContaint
Reviewed-by: mseledtsov, dholmes
(cherry picked from commit f1e15c8c8f)
2021-08-17 09:58:40 +07:00
Hannes Wallnöfer
4500eca7d1 8270866: NPE in DocTreePath.getTreePath()
Reviewed-by: jjg
(cherry picked from commit fbe28e4ee1)
2021-08-17 09:58:40 +07:00
Markus Grönlund
24b37db586 8270491: SEGV at read_string_field(oopDesc*, char const*, JavaThread*)+0x54
Reviewed-by: egahlin
(cherry picked from commit f662127390)
2021-08-17 09:58:39 +07:00
Igor Ignatyev
c60f4a2a24 8271223: two runtime/ClassFile tests don't check exit code
Reviewed-by: dholmes
(cherry picked from commit cea7bc2dea)
2021-08-17 09:58:39 +07:00
Jim Laskey
eec8b0fa8c 8269150: UnicodeReader not translating \u005c\\u005d to \\]
Reviewed-by: jjg, jlahoda, darcy
(cherry picked from commit b76a83888b)
2021-08-17 09:58:38 +07:00
Igor Ignatyev
5c43e5aab7 8271175: runtime/jni/FindClassUtf8/FindClassUtf8.java doesn't have to be run in othervm
Reviewed-by: dholmes
(cherry picked from commit 7ddabbff74)
2021-08-17 09:58:38 +07:00
Igor Ignatyev
5867250cfd 8271222: two runtime/Monitor tests don't check exit code
Reviewed-by: dholmes
(cherry picked from commit 3c27f91986)
2021-08-17 09:58:37 +07:00
Alexander Zvegintsev
a48389b346 8015886: java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.java sometimes failed on ubuntu
Reviewed-by: kizune, serb
(cherry picked from commit 049b2ad4df)
2021-08-17 09:58:36 +07:00
Alexander Zuev
6a6a9ad953 8269984: [macos] JTabbedPane title looks like disabled
Reviewed-by: kcr, psadhukhan
(cherry picked from commit 8adf008b15)
2021-08-17 09:58:36 +07:00
Igor Ignatyev
b5781d975c 8271173: serviceability/jvmti/GetObjectSizeClass.java doesn't check exit code
Reviewed-by: dholmes
(cherry picked from commit e90ed6cc38)
2021-08-17 09:58:35 +07:00
Igor Ignatyev
c8f7de81c2 8271189: runtime/handshake/HandshakeTimeoutTest.java can be run in driver mode
Reviewed-by: dholmes
(cherry picked from commit b4c6229fd4)
2021-08-17 09:58:35 +07:00
Igor Ignatyev
8f58bb84d6 8271162: runtime/StackTrace/LargeClassTest.java can be run in driver mode
Reviewed-by: dholmes
(cherry picked from commit e3800e6497)
2021-08-17 09:58:34 +07:00
Igor Ignatyev
cdeb52b3e6 8271158: runtime/handshake/HandshakeTimeoutTest.java test doesn't check exit code
Reviewed-by: dcubed
(cherry picked from commit ee93cef8aa)
2021-08-17 09:58:34 +07:00
Igor Ignatyev
658dff0901 8271169: runtime/Safepoint/TestAbortVMOnSafepointTimeout.java can be run in driver mode
Reviewed-by: dholmes
(cherry picked from commit 84be910e1d)
2021-08-17 09:58:33 +07:00
Igor Ignatyev
61a02261ed 8271160: runtime/jni/checked/TestCheckedJniExceptionCheck.java doesn't set -Djava.library.path
Reviewed-by: dcubed, dholmes
(cherry picked from commit 2d165a2bdf)
2021-08-17 09:58:33 +07:00
Alexey Semenyuk
7863913daf 8271155: Wrong path separator in env variable
Reviewed-by: herrick, kcr, iris, almatvee
(cherry picked from commit 7165b3f105)
2021-08-17 09:58:32 +07:00
Joe Darcy
4cfbbdad3e 8270916: Update java.lang.annotation.Target for changes in JLS 9.6.4.1
Reviewed-by: bpb, naoto
(cherry picked from commit ecc37b06f2)
2021-08-17 09:58:31 +07:00
Igor Ignatyev
c21ea4475c 8271094: runtime/duplAttributes/DuplAttributesTest.java doesn't check exit code
Reviewed-by: jiefu, dholmes
(cherry picked from commit 4812e53791)
2021-08-17 09:58:31 +07:00
Igor Ignatyev
adc2dc1924 8271093: remove deadcode from runtime/Thread/TestThreadDumpSMRInfo.java test
Reviewed-by: jiefu, dholmes, dcubed
(cherry picked from commit 6a9ab6a2cf)
2021-08-17 09:58:30 +07:00
Patricio Chilano Mateo
591834dd4f 8270085: Suspend during block transition may deadlock if lock held
Co-authored-by: Robbin Ehn <rehn@openjdk.org>
Co-authored-by: Patricio Chilano Mateo <pchilanomate@openjdk.org>
Reviewed-by: dcubed, dholmes, coleenp
(cherry picked from commit e7f9009315)
2021-08-17 09:58:30 +07:00
Daniel D. Daugherty
90a5f1b1f0 8271126: ProblemList runtime/InvocationTests/invokevirtualTests.java
Backport-of: d1257d54f9
(cherry picked from commit 39b486db6d)
2021-08-17 09:58:29 +07:00
Tobias Hartmann
e965842e27 8270461: ZGC: Invalid oop passed to ZBarrierSetRuntime::load_barrier_on_oop_array
Reviewed-by: chagedorn, kvn
(cherry picked from commit 4119a52c4b)
2021-08-17 09:58:29 +07:00
Jamsheed Mohammed C M
e2bf64a981 8266347: assert(Dependencies::is_concrete_root_method(fm, ctxk) == Dependencies::is_concrete_method(m, ctxk)) failed: mismatch
Reviewed-by: vlivanov, thartmann
(cherry picked from commit 89f7998aa7)
2021-08-17 09:58:28 +07:00
Igor Veresov
385892a4cc 8264066: Enhance compiler validation
Reviewed-by: ahgross, kvn, rhalade, thartmann
(cherry picked from commit e1051ae069)
2021-08-17 09:58:27 +07:00
Sean Mullan
58ab9627eb 8265201: JarFile.getInputStream not validating invalid signed jars
Reviewed-by: pkoppula, coffeys
(cherry picked from commit add995be46)
2021-08-17 09:58:27 +07:00
Rahul Yadav
37bf4ef3e2 8258432: Improve File Transfers
Reviewed-by: michaelm, aefimov, dfuchs, chegar, ahgross, rhalade
(cherry picked from commit ca6b222c97)
2021-08-17 09:58:26 +07:00
Jamsheed Mohammed C M
9493774cb7 8264079: Improve abstractions
Reviewed-by: vlivanov, ahgross, thartmann, rhalade
(cherry picked from commit a3acce5210)
2021-08-17 09:58:26 +07:00
Joe Wang
f974f69c59 8262380: Enhance XML processing passes
Reviewed-by: lancea, naoto, ahgross, rhalade
(cherry picked from commit 138f59806f)
2021-08-17 09:58:25 +07:00
Conor Cleary
4dbf97b0ae 8262967: Improve Zip file support
Reviewed-by: ahgross, rhalade, aefimov
(cherry picked from commit 0e6c01163f)
2021-08-17 09:58:25 +07:00
Weijun Wang
7694dc9b9a 8264460: Improve NTLM support
Reviewed-by: xuelei
(cherry picked from commit e48af0069e)
2021-08-17 09:58:24 +07:00
Patrick Concannon
141ef26706 8256491: Better HTTP transport
Reviewed-by: dfuchs, michaelm, rhalade, ahgross
(cherry picked from commit b87e526af1)
2021-08-17 09:58:23 +07:00
Phil Race
46eefed923 8262477: Enhance String Conclusions
Reviewed-by: rhalade, mschoene, psadhukhan, jdv, serb
(cherry picked from commit 1c8b9727b7)
2021-08-17 09:58:23 +07:00
Sergey Bylokhov
bc88a4f828 8262403: Enhanced data transfers
Reviewed-by: rhalade, prr, vdyakov, ahgross
(cherry picked from commit 9accf7c894)
2021-08-17 09:58:22 +07:00
Weijun Wang
30364d564d 8260967: Better jar file validation
Reviewed-by: hchao, valeriep
(cherry picked from commit ef9315bead)
2021-08-17 09:58:22 +07:00
Hai-May Chao
36e35cd187 8260960: Signs of jarsigner signing
Reviewed-by: weijun, rhalade
(cherry picked from commit fc38331f44)
2021-08-17 09:58:21 +07:00
Naoto Sato
3a158aa101 8262410: Enhanced rules for zones
Reviewed-by: rriggs, rhalade
(cherry picked from commit 175b65c0a1)
2021-08-17 09:58:21 +07:00
Phil Race
a78f7f9944 8260453: Improve Font Bounding
Reviewed-by: rhalade, psadhukhan, mschoene, serb
(cherry picked from commit 7b6410f213)
2021-08-17 09:58:20 +07:00
Vicente Romero
7c75a911f7 8256157: Improve bytecode assembly
Reviewed-by: jlahoda, rhalade, mschoene
(cherry picked from commit 7ad6c23c32)
2021-08-17 09:58:20 +07:00
Igor Ignatyev
4fa577e6f4 8268612: a few runtime/memory tests don't check exit code
Reviewed-by: dholmes, mseledtsov
(cherry picked from commit 9b177a7486)
2021-08-17 09:58:19 +07:00
Alexander Zvegintsev
f6b7b7c042 8159904: [TEST_BUG] Failure on solaris of java/awt/Window/MultiWindowApp/MultiWindowAppTest.java
Reviewed-by: prr
(cherry picked from commit 6ce52e6277)
2021-08-17 09:58:18 +07:00
Daniel D. Daugherty
1357d8d714 8271070: ProblemList 3 client tests on Linux-X64
Reviewed-by: prr
(cherry picked from commit 08c52fd33c)
2021-08-17 09:58:18 +07:00
Jesper Wilhelmsson
3649fdd3ff 8270993: Missing forward declaration of ZeroFrame
Reviewed-by: kvn
(cherry picked from commit 61359c46a7)
2021-08-17 09:55:58 +07:00
Daniel D. Daugherty
861b487f85 8268223: Problemlist vmTestbase/nsk/jdi/HiddenClass/events/events001.java
Backport-of: 1e1039a7c8
(cherry picked from commit 8e8e87a765)
2021-08-17 09:55:57 +07:00
Jorn Vernee
8ea9d44f2c 8269240: java/foreign/stackwalk/TestAsyncStackWalk.java test failed with concurrent GC
Reviewed-by: vlivanov, dholmes
(cherry picked from commit 845c31dc4b)
2021-08-17 09:55:57 +07:00
Yi Yang
d5b55f9a38 8270307: C2: assert(false) failed: bad AD file after JDK-8267687
Co-authored-by: Kuai Wei <kuaiwei.kw@alibaba-inc.com>
Reviewed-by: kvn, thartmann
(cherry picked from commit 0cec11d3eb)
2021-08-17 09:55:56 +07:00
Roland Westrelin
8837d9f313 8269752: C2: assert(false) failed: Bad graph detected in build_loop_late
Reviewed-by: chagedorn, kvn
(cherry picked from commit c1304519b5)
2021-08-17 09:55:56 +07:00
Phil Race
77e740e5b3 8270858: Problem List java/awt/Window/MultiWindowApp/MultiWindowAppTest.java on Linux
Reviewed-by: mikael, pbansal
(cherry picked from commit 2dddcce29b)
2021-08-17 09:55:55 +07:00
Christoph Langer
702b2b2891 8270556: Exclude security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA
Reviewed-by: mbaesken
(cherry picked from commit 1350e2bd22)
2021-08-17 09:55:05 +07:00
Dmitry Batrak
b59c13b2ff JBR-3686 Background window steals focus when converted to full screen on macOS
(cherry-picked from commit 07a5b9672e)
2021-08-16 16:09:21 +03:00
Dmitry Batrak
3b8c9e6177 JBR-3676 WINDOW_ACTIVATED/DEACTIVATED events sent to a frame when child window closes on macOS
fix cherry-pick issue
2021-08-10 19:23:04 +03:00
Dmitry Batrak
baf3c2335c JBR-3676 WINDOW_ACTIVATED/DEACTIVATED events sent to a frame when child window closes on macOS
(cherry-picked from commit 824f9ebec3)
2021-08-10 16:30:14 +03:00
Dmitry Batrak
1d23636724 JBR-3672 jb/java/awt/Focus/WrongFrameFocusedOnModalDialogClosing.java fails on linux by timeout
(cherry picked from commit 2a71dc5981)
2021-08-09 13:15:26 +03:00
Dmitry Batrak
2f3090185b JBR-3673 jb/java/awt/Window/FullScreenChildWindowShownBefore.java fails on MacOS
make test for JBR-3666 more reliable (not depending on macOS color display policy)

(cherry picked from commit 94a3885bbe)
2021-08-09 13:15:22 +03:00
Dmitry Batrak
978413cf09 JBR-3663, JBR-3671 Problems on macOS space switching
(cherry picked from commit 93588d0738)
2021-08-09 13:15:16 +03:00
Dmitry Batrak
1b373fe80d JBR-3666 Child window stays on default space when full-screen mode is activated for parent window on macOS
(cherry-picked from commit 1dcc612a81)
2021-08-05 10:16:19 +03:00
Dmitry Batrak
ad0ce132e9 JBR-3662 Focus jumps to another project tab after closing modal dialog
(cherry picked from commit bfd01081c3)
2021-08-04 12:35:33 +03:00
Dmitry Batrak
e915da51db JBR-3640 java/awt/Modal/ModalFocusTransferTests/FocusTransferDWFAppModalTest.java: window Open button lost focus when it should not 2021-08-03 19:56:56 +03:00
Dmitry Batrak
c640f098dd JBR-3633 Modal dialog is shown not at the same space as its parent
fix the case when space switch is performed by clicking on app icon in dock, or using Cmd+Tab

(cherry-picked from commit 9fdc75969b)
2021-07-30 20:34:55 +03:00
Nikita Gubarkov
afa513bf99 JBR-3648 Replace CacheCellInfo usages with MTLCacheCellInfo in metal rendering code 2021-07-30 10:45:06 +03:00
Dmitry Batrak
e992826344 JBR-3642 java/awt/Window/8159168/SetShapeTest.java fails on macOS-x64 & macOS-aarch64
make sure jb/java/awt/Focus/Typeahead* tests still pass
2021-07-29 11:13:54 +03:00
Dmitry Batrak
9d1b6ab67f JBR-3642 java/awt/Window/8159168/SetShapeTest.java fails on macOS-x64 & macOS-aarch64
revert JBR-1417 fix (JBR 11 does not support chain of popups)
2021-07-29 11:13:54 +03:00
Vitaly Provodin
d217c0224c JBR-3646 Remove duplicated lambdaFormInvokers.cpp 2021-07-28 11:08:34 +07:00
Vitaly Provodin
f18aaed3ce fixup! JBR-3639 add jbrsdk tarballs for dcevm, jcef builds (windows followup) 2021-07-28 06:56:42 +07:00
Vitaly Provodin
cede9b40a0 fixup! JBR-3639 add jbrsdk tarballs for dcevm, jcef builds 2021-07-27 17:53:58 +07:00
Vitaly Provodin
e7acf5cd13 JBR-3639 add jbrsdk tarballs for dcevm, jcef builds 2021-07-27 03:27:57 +07:00
Anton Tarasov
9813ac154e JBR-3627 include jmods in jbrsdk bundle for jbr-dev 2021-07-27 03:27:53 +07:00
David Holmes
f68f262fbd JBR-3520 AddressSanitizer: stack-use-after-scope in java.desktop/share/native/libawt/java2d/loops/FillRect.c:72 on jtreg tests with IDEA VM options
8269882: stack-use-after-scope in NewObjectA

Reviewed-by: kbarrett
(cherry picked from commit 20eba35515)
2021-07-23 12:33:51 +03:00
Nikita Gubarkov
8612216f60 Add line breaks to jshell script in mkjbrapi.sh 2021-07-21 20:28:44 +03:00
Dmitry Batrak
815e51804e JBR-3633 Modal dialog is shown not at the same space as its parent
(cherry-picked from commit a156c6b9bf)
2021-07-21 17:19:26 +03:00
Dmitry Batrak
f7c4619f5e JBR-3611 Unexpected workspace switch with dialog in full-screen mode on macOS
make test pass with jtreg

(cherry picked from commit 75335543f2)
2021-07-21 14:58:18 +03:00
Maxim Kartashev
90c3971d74 fixup! JBR-3597 Update project README for Java 17 2021-07-19 16:13:44 +03:00
Dmitry Batrak
f6edc4234d JBR-3611 Unexpected workspace switch with dialog in full-screen mode on macOS
(cherry-picked from commit 43fdd6cd26)
2021-07-19 10:36:12 +03:00
Maxim Kartashev
6bfa198ee9 JBR-3597 Update project README for Java 17 2021-07-16 15:53:08 +03:00
William Kemper
da0fcc518a 8268635: Corrupt oop in ClassLoaderData
Reviewed-by: coleenp
Backport-of: 3586a233a4
(cherry picked from commit e104dede6e)
2021-07-16 16:48:41 +07:00
Sibabrata Sahoo
7a7cdd3b68 8269276: Additional tests for MessageDigest with different providers
Reviewed-by: valeriep, wetmore
(cherry picked from commit a32d2eefea)
2021-07-16 16:48:37 +07:00
Erik Joelsson
5acc501904 8270422: Test build/AbsPathsInImage.java fails after JDK-8259848
Reviewed-by: mikael
(cherry picked from commit 7b4d84c654)
2021-07-16 16:48:34 +07:00
Jim Laskey
d4bc283f20 8266313: (JEP-356) - RandomGenerator spec implementation requirements tightly coupled to JDK internal classes
Reviewed-by: rriggs
(cherry picked from commit 72db09b1f3)
2021-07-16 16:48:32 +07:00
Jim Laskey
70b9911d53 8270075: SplittableRandom extends AbstractSplittableGenerator
Reviewed-by: rriggs, bpb
(cherry picked from commit 3bbd2332bd)
2021-07-16 16:48:12 +07:00
Anton Kozlov
023bb10f71 8266889: [macosx-aarch64] Crash with SIGBUS in MarkActivationClosure::do_code_blob during vmTestbase/nsk/jvmti/.../bi04t002 test run
Reviewed-by: dholmes, aph, sspitsyn
(cherry picked from commit 381bd62107)
2021-07-16 16:47:13 +07:00
Hannes Wallnöfer
5bf5168c92 8259499: Handling type arguments from outer classes for inner class in javadoc
Reviewed-by: jjg
(cherry picked from commit 82c256eb61)
2021-07-16 16:47:08 +07:00
Christoph Langer
e388ccea61 8268620: InfiniteLoopException test may fail on x86 platforms
Backport-of: 0b09129fae
(cherry picked from commit e5db9a9405)
2021-07-16 16:46:36 +07:00
Xin Liu
d0d118bb55 8269865: Async UL needs to handle ERANGE on exceeding SEM_VALUE_MAX
Reviewed-by: dholmes, pchilanomate
(cherry picked from commit 67273ae63c)
2021-07-16 16:46:08 +07:00
Yi Yang
aa01e45ca6 8270056: Generated lambda class can not access protected static method of target class
Reviewed-by: mchung
Backport-of: 07e9052457
(cherry picked from commit 0f5470715e)
2021-07-16 16:45:29 +07:00
Vicente Romero
5c1e58b79f 8270025: DynamicCallSiteDesc::withArgs doesn't throw NPE
Reviewed-by: jvernee, mchung
(cherry picked from commit 8583aab374)
2021-07-16 16:45:26 +07:00
Severin Gehwolf
803ac22b6b 8270184: [TESTBUG] Add coverage for jvmci ResolvedJavaType.toJavaName() for lambdas
Backport-of: 6a9bc10873
(cherry picked from commit d32e42cdd4)
2021-07-16 16:45:24 +07:00
Maurizio Cimadamore
9909566102 8269281: java/foreign/Test{Down,Up}call.java time out
Reviewed-by: jvernee
(cherry picked from commit b2416b60fb)
2021-07-16 16:44:53 +07:00
Markus Grönlund
388a1416f7 8269635: Stress test SEGV while emitting OldObjectSample
Reviewed-by: jbachorik
(cherry picked from commit bd95c0c9e0)
2021-07-16 16:44:23 +07:00
Markus Grönlund
b862093dac 8269525: Deadlock during Volano with JFR
Reviewed-by: egahlin
(cherry picked from commit 00ef65f34d)
2021-07-16 16:44:21 +07:00
Erik Joelsson
a4454856fd 8259848: Interim javadoc build does not support platform links
Reviewed-by: hannesw, jjg, ihse
(cherry picked from commit e631addd70)
2021-07-16 16:43:54 +07:00
Christian Hagedorn
bab149d8b1 8269795: C2: Out of bounds array load floats above its range check in loop peeling resulting in SEGV
Reviewed-by: thartmann, roland, kvn
(cherry picked from commit 040c02b942)
2021-07-16 16:43:22 +07:00
Erik Joelsson
d1d91195d9 8270203: Missing build dependency between jdk.jfr-gendata and buildtools-hotspot
Reviewed-by: tbell
(cherry picked from commit 0f32982872)
2021-07-16 16:42:48 +07:00
Sean Mullan
d4620dbb86 8266345: (fs) Custom DefaultFileSystemProvider security related loops
Co-authored-by: Brian Burkhalter <bpb@openjdk.org>
Reviewed-by: bpb, chegar
(cherry picked from commit 4fc3180f75)
2021-07-16 16:42:43 +07:00
Christoph Göttschkes
e4df27e296 8269873: serviceability/sa/Clhsdb tests are using a C2 specific VMStruct field
Reviewed-by: cjplummer, dholmes, sspitsyn
(cherry picked from commit 999ced03cc)
2021-07-16 16:42:13 +07:00
Alexey Bakhtin
6f3c06da75 8268965: TCP Connection Reset when connecting simple socket to SSL server
Reviewed-by: xuelei
Backport-of: 6f171b9f0d
(cherry picked from commit e1d3e73d4e)
2021-07-16 16:41:47 +07:00
Serguei Spitsyn
b364b5cf9d 8269558: fix of JDK-8252657 missed to update history at the end of JVM TI spec
Reviewed-by: dcubed, cjplummer
(cherry picked from commit 3d82b0e634)
2021-07-16 16:41:43 +07:00
Phil Race
9ba8f9c9ed 8270216: [macOS] Update named used for Java run loop mode
Reviewed-by: serb
(cherry picked from commit 254600658a)
2021-07-16 16:41:35 +07:00
Roger Riggs
ca438e64c5 8268826: Cleanup Override in Context-Specific Deserialization Filters
Reviewed-by: dfuchs, bchristi
(cherry picked from commit 6889a39a3f)
2021-07-16 16:40:44 +07:00
Christian Hagedorn
a8cfa4294c 8261147: C2: Node is wrongly marked as reduction resulting in a wrong execution due to wrong vector instructions
Reviewed-by: thartmann, kvn
(cherry picked from commit f791fdf23e)
2021-07-16 16:40:41 +07:00
Jan Lahoda
1e6ea40764 8270151: IncompatibleClassChangeError on empty pattern switch statement case
Reviewed-by: mcimadamore
(cherry picked from commit 1196b35684)
2021-07-16 16:40:07 +07:00
Jan Lahoda
63f8516aeb 8269146: Missing unreported constraints on pattern and other case label combination
8269301: Switch statement with a pattern, constant and default label elements crash javac

Reviewed-by: mcimadamore
(cherry picked from commit 885f7b1141)
2021-07-16 16:40:04 +07:00
Jatin Bhateja
f96765e155 8269952: compiler/vectorapi/VectorCastShape*Test.java tests failed on avx2 machines
Reviewed-by: kvn, dlong
(cherry picked from commit 62ff55d383)
2021-07-16 16:40:03 +07:00
Mikhailo Seledtsov
a48118e7ef 8269840: Update Platform.isDefaultCDSArchiveSupported() to return true for aarch64 platforms
Reviewed-by: minqi, iklam
(cherry picked from commit 46c610cbd8)
2021-07-16 16:39:02 +07:00
Jonathan Gibbons
a26f53bdf1 8269722: NPE in HtmlDocletWriter
Reviewed-by: hannesw
(cherry picked from commit 6401633800)
2021-07-16 16:38:25 +07:00
Daniel D. Daugherty
479a31ac0c 8270109: ProblemList 4 SA tests on macOS-aarch64
Reviewed-by: mikael
(cherry picked from commit 9acb2a69a9)
2021-07-16 16:38:24 +07:00
Brian Burkhalter
e1a1dfbbe6 6766844: ByteArrayInputStream#read with a byte array of length 0 not consistent with InputStream when at EOF
Reviewed-by: naoto, lancea, joehw
(cherry picked from commit f46a917270)
2021-07-16 16:38:15 +07:00
Guoxiong Li
5fa7692e35 8269738: AssertionError when combining pattern matching and function closure
Reviewed-by: jlahoda, vromero
(cherry picked from commit 9e75f922b1)
2021-07-16 16:37:15 +07:00
Jatin Bhateja
aaec4f2632 8269828: corrections in some instruction patterns for KNL x86 platform
Reviewed-by: kvn, dlong
(cherry picked from commit 168af2e6b2)
2021-07-16 16:36:38 +07:00
Jan Lahoda
7e75265125 8268766: Desugaring of pattern matching enum switch should be improved
Reviewed-by: mcimadamore, psandoz
(cherry picked from commit fa08cc62df)
2021-07-16 16:35:43 +07:00
Jan Lahoda
f6e0c51f4e 8270006: Switches with 'case null:' should be exhaustive
Reviewed-by: vromero
(cherry picked from commit 4f70759175)
2021-07-16 16:35:38 +07:00
Roland Westrelin
90c72465df 8269746: C2: assert(!in->is_CFG()) failed: CFG Node with no controlling input?
Reviewed-by: chagedorn, thartmann
(cherry picked from commit 8f798b8222)
2021-07-16 16:34:50 +07:00
Roger Riggs
11d8b4c79e 8269929: (test) Add diagnostic info to ProceessBuilder/Basic.java for unexpected output
Reviewed-by: iris, bpb, naoto
(cherry picked from commit c812bbbe8f)
2021-07-16 16:34:45 +07:00
Alexey Semenyuk
095240f421 8269185: Directories in /opt/runtimepackagetest and /path/to/jdk-17 are different
Reviewed-by: almatvee, herrick
(cherry picked from commit 6000950b33)
2021-07-16 16:34:22 +07:00
Martin Doerr
6dbe81fb17 8269879: [PPC64] C2: Math.rint intrinsic uses wrong rounding mode
Reviewed-by: lucy, goetz
(cherry picked from commit 1f2bf1d194)
2021-07-16 16:33:49 +07:00
Jan Lahoda
953b61ad5b 8266036: class file for sun.misc.Contended not found
8258421: (jdeprscan) tools/jdeprscan/tests/jdk/jdeprscan/TestRelease.java failed with "error: cannot access jdk.internal.ValueBased"

Reviewed-by: darcy
(cherry picked from commit 7fcd5ca025)
2021-07-16 16:33:46 +07:00
Daniel Fuchs
70fa9155fa 8269772: [macos-aarch64] test compilation failed with "SocketException: No buffer space available"
Reviewed-by: chegar, vtewari
(cherry picked from commit a49b1dc704)
2021-07-16 16:33:21 +07:00
Jan Lahoda
761faa1298 8268859: jshell throws exception while parsing illegal "case true"
Reviewed-by: mcimadamore
(cherry picked from commit 820f2900d8)
2021-07-16 16:31:50 +07:00
Jan Lahoda
6ec1bb5f41 8269802: javac fails to compile nested pattern matching switches
8269808: javac generates class with invalid stack map

Reviewed-by: mcimadamore
(cherry picked from commit 815e4af35d)
2021-07-16 16:31:45 +07:00
Chris Plummer
9fa5548588 8269830: SA's vm object vtable matching code sometimes matches on incorrect type
Reviewed-by: kevinw, sspitsyn
(cherry picked from commit 2daf39a59b)
2021-07-16 16:30:58 +07:00
Ioi Lam
d815eb0d7a 8268778: CDS check_excluded_classes needs DumpTimeTable_lock
Reviewed-by: minqi, ccheung
(cherry picked from commit 0ebf8aa9d7)
2021-07-16 16:30:54 +07:00
Vladimir Kozlov
177cbdd112 8269825: [TESTBUG] Missing testing for x86 KNL platforms
Reviewed-by: dlong, jbhateja
(cherry picked from commit 0d1cd3a745)
2021-07-16 16:30:26 +07:00
Vladimir Kozlov
0cee20e65f 8269955: ProblemList compiler/vectorapi/VectorCastShape[64|128]Test.java tests on x86
Reviewed-by: iignatyev, dlong
(cherry picked from commit e0c130f484)
2021-07-16 16:29:50 +07:00
Eric Liu
e435aad3c9 8268966: AArch64: 'bad AD file' in some vector conversion tests
Reviewed-by: aph
(cherry picked from commit 1166ef25e9)
2021-07-16 16:28:32 +07:00
Mandy Chung
dd28f92425 8225667: Clarify the behavior of System::gc w.r.t. reference processing
Reviewed-by: rriggs, kbarrett, tschatzl
(cherry picked from commit 3a69024033)
2021-07-16 16:28:26 +07:00
Xiaohong Gong
c678e99e32 8269568: JVM crashes when running VectorMask query tests
Co-authored-by: Sandhya Viswanathan <sviswanathan@openjdk.org>
Reviewed-by: psandoz, jiefu, jbhateja, sviswanathan
(cherry picked from commit 2b20778225)
2021-07-16 16:27:31 +07:00
Kim Barrett
4c27978cbc 8269661: JNI_GetStringCritical does not lock char array
8269650: Optimize gc-locker in [Get|Release]StringCritical for latin string

Reviewed-by: dholmes, tschatzl
(cherry picked from commit 0f4e07b7d9)
2021-07-16 16:27:23 +07:00
Roland Westrelin
be37a60ed6 8269575: C2: assert(false) failed: graph should be schedulable after JDK-8252372
Reviewed-by: kvn, thartmann
(cherry picked from commit df1364b508)
2021-07-16 16:26:15 +07:00
Roland Westrelin
31dee4fb83 8268883: C2: assert(false) failed: unscheduable graph
Reviewed-by: chagedorn, kvn, yyang
(cherry picked from commit 6d8fc7249a)
2021-07-16 16:25:54 +07:00
Tobias Hartmann
f8685a7abc 8268369: SIGSEGV in PhaseCFG::implicit_null_check due to missing null check
Reviewed-by: chagedorn, kvn
(cherry picked from commit 4ad8b04421)
2021-07-16 16:25:06 +07:00
Erik Gahlin
4aa623e53b 8266595: jdk/jfr/jcmd/TestJcmdDump.java with slowdebug bits fails with AttachNotSupportedException
Reviewed-by: mseledtsov, dholmes
(cherry picked from commit 5b8e1a266e)
2021-07-16 16:25:00 +07:00
Severin Gehwolf
3f1cace058 8269668: [aarch64] java.library.path not including /usr/lib64
Reviewed-by: aph, dholmes
(cherry picked from commit e14801cdd9)
2021-07-16 16:24:09 +07:00
Alexander Zuev
debea16d3d 8268775: Password is being converted to String in AccessibleJPasswordField
Reviewed-by: prr
(cherry picked from commit 97e0e9e73d)
2021-07-16 16:24:03 +07:00
Mikael Vidstedt
a01037bdff 8269768: JFR Terminology Refresh
Reviewed-by: iignatyev, egahlin
(cherry picked from commit 1c18f91438)
2021-07-16 16:23:17 +07:00
Sandhya Viswanathan
340db3385e 8269775: compiler/codegen/ClearArrayTest.java failed with "assert(false) failed: bad AD file"
Reviewed-by: kvn, dlong
(cherry picked from commit 6f0e8e79aa)
2021-07-16 16:23:13 +07:00
Weijun Wang
d36101f251 8269543: The warning for System::setSecurityManager should only appear once for each caller
Reviewed-by: lancea, alanb, dfuchs
(cherry picked from commit c4ea13edd0)
2021-07-16 16:22:21 +07:00
Christian Hagedorn
e1e0ae826c 8262017: C2: assert(n != __null) failed: Bad immediate dominator info.
Reviewed-by: roland, neliasso, kvn
(cherry picked from commit 2db9005c07)
2021-07-16 16:21:49 +07:00
Nils Eliasson
ee6ea9ef15 8269771: assert(tmp == _callprojs.fallthrough_catchproj) failed: allocation control projection
Reviewed-by: rbackman, kvn
(cherry picked from commit 7bc96dbc02)
2021-07-16 16:21:47 +07:00
Jamsheed Mohammed C M
4b8a63e362 8265132: C2 compilation fails with assert "missing precedence edge"
Reviewed-by: iveresov, kvn
(cherry picked from commit 5644c4f942)
2021-07-16 16:21:44 +07:00
Vladimir Kozlov
3655420bff 8269745: [JVMCI] restore original qualified exports to Graal
Reviewed-by: dnsimon, iveresov
(cherry picked from commit a4d2a9a77f)
2021-07-16 16:21:42 +07:00
Maurizio Cimadamore
fbcff00d33 8268566: java/foreign/TestResourceScope.java timed out
Reviewed-by: jvernee
(cherry picked from commit e3773977cf)
2021-07-16 16:21:17 +07:00
Kim Barrett
3ca10f742d 8260684: vmTestbase/gc/gctests/PhantomReference/phantom002/TestDescription.java timed out
Reviewed-by: pliden, lkorinth
(cherry picked from commit 6c76e77158)
2021-07-16 16:20:46 +07:00
Jatin Bhateja
e923c2d1f3 8269580: assert(is_valid()) failed: invalid register (-1)
Reviewed-by: kvn, dlong
(cherry picked from commit 4bbf11d4a9)
2021-07-16 16:20:45 +07:00
Naoto Sato
61cdd9d052 8269704: Typo in j.t.Normalizer.normalize()
Reviewed-by: joehw, prappo, iris
(cherry picked from commit 54dd510bd5)
2021-07-16 16:20:19 +07:00
Jan Lahoda
34dcccd5ed 8269354: javac crashes when processing parenthesized pattern in instanceof
Reviewed-by: vromero
(cherry picked from commit a8385feb30)
2021-07-16 16:19:40 +07:00
Aleksey Shipilev
4ec6d1e9ab 8269285: Crash/miscompile in CallGenerator::for_method_handle_inline after JDK-8191998
Reviewed-by: kvn, iveresov, vlivanov
(cherry picked from commit c16d1fc981)
2021-07-16 16:18:47 +07:00
Roland Westrelin
b26d081b93 8269088: C2 fails with assert(!n->is_Store() && !n->is_LoadStore()) failed: no node with a side effect
Reviewed-by: kvn, iveresov, neliasso
(cherry picked from commit ad27d9b3ec)
2021-07-16 16:18:40 +07:00
Roland Westrelin
f205149794 8269230: C2: main loop in micro benchmark never executed
Co-authored-by: Maurizio Cimadamore <mcimadamore@openjdk.org>
Reviewed-by: kvn, iveresov
(cherry picked from commit c67a7b039d)
2021-07-16 16:18:13 +07:00
Hannes Wallnöfer
230e39283d 8262886: javadoc generates broken links with {@inheritDoc}
Reviewed-by: jjg
(cherry picked from commit 962f1c1a9b)
2021-07-16 16:17:36 +07:00
Jayathirth D V
470b7c4988 8267602: [macos] [lanai] java/awt/PrintJob/Text/stringwidth.sh doesn't exit on cancelling print dialog
Reviewed-by: aghaisas, serb
(cherry picked from commit f7ffd5872d)
2021-07-16 16:16:39 +07:00
Liam Miller-Cushon
5868c93f64 8268592: JDK-8262891 causes an NPE in Lint.augment
Reviewed-by: vromero
(cherry picked from commit 4930ae96d8)
2021-07-16 16:16:03 +07:00
Mandy Chung
dabbf2615a 8262841: Clarify the behavior of PhantomReference::refersTo
Reviewed-by: kbarrett, rriggs
(cherry picked from commit 9ac63a6e08)
2021-07-16 16:15:58 +07:00
Daniel D. Daugherty
6e8b41c964 8269703: ProblemList vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t002/TestDescription.java on Windows-X64 with -Xcomp
Reviewed-by: dholmes
(cherry picked from commit aba6c55dac)
2021-07-16 16:15:09 +07:00
Naoto Sato
a4ba3f2dad 8269513: Clarify the spec wrt useOldISOCodes system property
Reviewed-by: lancea, bpb, iris, joehw
(cherry picked from commit 3e022247d2)
2021-07-16 16:15:05 +07:00
Nils Eliasson
cb9ef412b0 8268897: [TESTBUG] compiler/compilercontrol/mixed/RandomCommandsTest.java must not fail on Command.quiet
Reviewed-by: kvn
(cherry picked from commit 0dc65d3c74)
2021-07-16 16:14:03 +07:00
Hannes Wallnöfer
1327635718 8268557: Module page uses unstyled table class
Reviewed-by: jjg
(cherry picked from commit 3826012281)
2021-07-16 16:13:35 +07:00
Daniel D. Daugherty
91ef0bcc74 8269691: ProblemList sun/management/jdp/JdpDefaultsTest.java on Linux-aarch64
Reviewed-by: kvn, darcy
(cherry picked from commit 2b17e95e20)
2021-07-16 16:12:37 +07:00
Christoph Göttschkes
5cfeb00814 8269486: CallerAccessTest fails for non server variant
Reviewed-by: dholmes, stuefe, mchung, jvernee
(cherry picked from commit 1da5d4bb78)
2021-07-16 16:12:26 +07:00
Martin Doerr
bc5b89f2dc 8269614: [s390] Interpreter checks wrong bit for slow path instance allocation
Reviewed-by: shade, rrich
(cherry picked from commit be0ac92e18)
2021-07-16 16:12:00 +07:00
Zhengyu Gu
ff5fe2d979 8269594: assert(_handle_mark_nesting > 1) failed: memory leak: allocating handle outside HandleMark
Reviewed-by: coleenp, jvernee
(cherry picked from commit 4b4bef4e1e)
2021-07-16 16:10:54 +07:00
Jan Lahoda
b3644582ab 8268320: Better error recovery for broken patterns in switch
Reviewed-by: vromero
(cherry picked from commit 4ee400ae43)
2021-07-16 16:09:59 +07:00
Wang Huang
859283a07c 8265907: JVM crashes when matching VectorMaskCmp Node
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Ai Jiaming <aijiaming1@huawei.com>
Reviewed-by: njian, jbhateja, sviswanathan, dlong, adinn
(cherry picked from commit ca283c3ac0)
2021-07-16 16:09:53 +07:00
Jan Lahoda
9e9fcfbaa4 8269141: Switch statement containing pattern case label element gets in the loop during execution
Reviewed-by: vromero
(cherry picked from commit c3c918928c)
2021-07-16 16:09:51 +07:00
Leo Korinth
23d3fb6be2 8268350: Remove assert that ensures thread identifier remains the same
Reviewed-by: tschatzl, kbarrett
(cherry picked from commit 6b64a7956c)
2021-07-16 16:09:49 +07:00
Jatin Bhateja
32058159aa 8269528: VectorAPI Long512VectorTest fails on X86 KNL target
Reviewed-by: kvn, sviswanathan
(cherry picked from commit 90eb1189ae)
2021-07-16 16:09:46 +07:00
Jie Fu
06fbd5c211 8269065: [REDO] vmTestbase/vm/mlvm/anonloader/stress/oome/metaspace/Test.java failed with OutOfMemoryError
Reviewed-by: stuefe, iignatyev
(cherry picked from commit a661686e1e)
2021-07-16 16:09:42 +07:00
Sean Coffey
6a5ab3d595 8269034: AccessControlException for SunPKCS11 daemon threads
Reviewed-by: valeriep
(cherry picked from commit 0d745ae8fd)
2021-07-16 16:09:40 +07:00
Christoph Langer
9b4eab82e9 8269529: javax/swing/reliability/HangDuringStaticInitialization.java fails in Windows debug build
Reviewed-by: serb, psadhukhan, pbansal
(cherry picked from commit d042029509)
2021-07-16 16:09:37 +07:00
Chris Plummer
93e2c94ee0 8269232: assert(!is_jweak(handle)) failed: wrong method for detroying jweak
Reviewed-by: rkennke, amenkov, sspitsyn, sgehwolf
(cherry picked from commit 401cb0ad55)
2021-07-16 16:08:40 +07:00
Nils Eliasson
cbebd8b51d 8268884: C2: Compile::remove_speculative_types must iterate top-down
Reviewed-by: roland, kvn
(cherry picked from commit b8a16e931b)
2021-07-16 16:08:35 +07:00
Jonathan Gibbons
a5a7892de4 8249646: Runtime.exec(String, String[], File) documentation contains literal {@link ...}
Reviewed-by: sundar, iris
(cherry picked from commit 25f9f19af9)
2021-07-16 16:07:35 +07:00
Zhengyu Gu
ddf6d7811f 8268699: Shenandoah: Add test for JDK-8268127
Backport-of: e59acd9860
(cherry picked from commit 0d83dc2411)
2021-07-16 16:07:25 +07:00
Jie Fu
46f1f2ed10 8269517: compiler/loopopts/TestPartialPeelingSinkNodes.java crashes with -XX:+VerifyGraphEdges
Reviewed-by: kvn, dlong
(cherry picked from commit 7010dfdffa)
2021-07-16 16:06:54 +07:00
Thomas Schatzl
6c6693cb46 8269126: Rename G1AllowPreventiveGC option to G1UsePreventiveGC
Reviewed-by: kbarrett, iwalulya
(cherry picked from commit fc0fd96a5f)
2021-07-16 16:06:10 +07:00
Mandy Chung
8403603dc8 8269426: Rename test/jdk/java/lang/invoke/t8150782 to accessClassAndFindClass
Reviewed-by: jvernee
(cherry picked from commit 56240690f6)
2021-07-16 16:05:12 +07:00
Xin Liu
2a33a67003 8267952: async logging supports to dynamically change tags and decorators
Reviewed-by: dholmes, phh
(cherry picked from commit 09bb84685f)
2021-07-16 16:05:01 +07:00
Daniel D. Daugherty
6948b8d749 8269534: Remove java/util/concurrent/locks/Lock/TimedAcquireLeak.java from ProblemList.txt
Reviewed-by: iignatyev, tschatzl
(cherry picked from commit 20640a57f3)
2021-07-16 16:04:02 +07:00
Alexey Semenyuk
1ffc3f9840 8269403: Fix jpackage tests to gracefully handle jpackage app launcher crashes
Reviewed-by: almatvee, herrick
(cherry picked from commit efe8423d8c)
2021-07-16 16:03:56 +07:00
Vladimir Kozlov
68011d4190 8269304: Regression ~5% in 2005 in b27
Reviewed-by: dlong, roland
(cherry picked from commit 8d09596f27)
2021-07-16 16:02:54 +07:00
Jim Laskey
e9a70a8ab3 8268236: The documentation of the String.regionMatches method contains error
Reviewed-by: rriggs, dfuchs
(cherry picked from commit e4c5446340)
2021-07-16 16:02:49 +07:00
Dean Long
d81ce2f65c 8258746: illegal access to global field _jvmci_old_thread_counters by terminated thread causes crash
Reviewed-by: dholmes, kvn
(cherry picked from commit d9cb068f4b)
2021-07-16 16:01:07 +07:00
Mandy Chung
6c41e2ee42 8266269: Lookup::accessClass fails with IAE when accessing an arrayClass with a protected inner class as component class
Reviewed-by: chegar, alanb
(cherry picked from commit 6eb734a60f)
2021-07-16 16:00:57 +07:00
Mandy Chung
4c2e112513 8269351: Proxy::newProxyInstance and MethodHandleProxies::asInterfaceInstance should reject sealed interfaces
Reviewed-by: darcy, alanb
(cherry picked from commit 3d0d27ce57)
2021-07-16 16:00:01 +07:00
Vladimir Kozlov
c5e9f9e5b8 8269260: Add AVX512 and other SSE + AVX combinations testing for tests which generate vector instructions
Reviewed-by: iveresov, dlong
(cherry picked from commit 824a51693e)
2021-07-16 15:59:55 +07:00
Alex Menkov
658fb51f14 8269302: serviceability/dcmd/framework/InvalidCommandTest.java still fails after JDK-8268433
Reviewed-by: kevinw, dcubed
(cherry picked from commit 1404e4bf44)
2021-07-16 15:59:13 +07:00
Alexander Matveev
2659fbfca9 8269036: tools/jpackage/share/AppImagePackageTest.java failed with "hdiutil: create failed - Resource busy"
Reviewed-by: asemenyuk, herrick
(cherry picked from commit fb0a95fed4)
2021-07-16 15:58:07 +07:00
Brian Burkhalter
897f0afd57 8269074: (fs) Files.copy fails to copy from /proc on some linux kernel versions
Reviewed-by: alanb, vtewari
(cherry picked from commit 5ebed06e8a)
2021-07-16 15:55:43 +07:00
Joe Wang
0168f4f3d4 8256919: BCEL: Utility.encode forget to close
Reviewed-by: lancea, bpb, naoto
(cherry picked from commit d799563ac0)
2021-07-16 15:55:34 +07:00
Sandhya Viswanathan
de359bd9dd 8269335: Unable to load svml library
Reviewed-by: psandoz
(cherry picked from commit 1e3b418a53)
2021-07-16 15:55:29 +07:00
Jan Lahoda
ff82205e88 8268871: Adjust javac to updated exhaustiveness specification
Reviewed-by: vromero
(cherry picked from commit 4eb321298a)
2021-07-16 15:55:21 +07:00
Vitaly Provodin
0c86ae72f1 enabling dtrace-tests: added dtrace keyword
(cherry picked from commit 0b5119ca89)
2021-07-15 05:49:34 +07:00
Vitaly.Provodin
f4a2bb8896 add 32-sizes for native data types
(cherry picked from commit 3a79870da8)
2021-07-15 05:49:31 +07:00
Vitaly.Provodin
6cd4d74fa3 add dockerfile for x86
(cherry picked from commit 8fb2341ea8)
2021-07-15 05:49:28 +07:00
Maxim Kartashev
b83badc8be 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.
2021-07-15 05:49:25 +07:00
Nikita Gubarkov
7067da9803 Added JBR-specific .idea project files 2021-07-15 05:48:19 +07:00
Nikita Gubarkov
fe9d001c4d Added Clion project setup 2021-07-15 05:48:16 +07:00
Nikita Gubarkov
736917f300 Updated IDEA project setup 2021-07-15 05:48:13 +07:00
Alexey Ushakov
d38d8d43ae 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)
2021-07-15 05:47:41 +07:00
Anton Tarasov
286c96e606 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)
2021-07-15 05:47:36 +07:00
Anton Tarasov
5b6c64c6f7 JBR-3545 Window.setMinimumSize does not respect DPI scaling
(cherry picked from commit 9b4f72ad18)
2021-07-15 05:47:33 +07:00
Denis Fokin
84d66eab71 JRE-408 JBR-3515 fix NullPointerException in MetalRootPaneUI.installWindowListeners
(cherry picked from commit 584d554af529cff445b0f09bc2d57be55e138b7a)
(cherry picked from commit 6a42bb54bd)
2021-07-15 05:47:30 +07:00
Alexey Ushakov
dca1987fb5 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)
2021-07-15 05:47:26 +07:00
Elena Sayapina
089e6ac746 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)
2021-07-15 05:47:23 +07:00
Maxim Kartashev
2da9bf356d JBR-3590 Update JetBrains Runtime README 2021-07-15 05:47:20 +07:00
Maxim Kartashev
c6ddafe42b 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.
2021-07-15 05:47:17 +07:00
Denis Konoplev
702dc54df1 EA-252361: Check window for null
(cherry picked from commit 23a7dbd486)
2021-07-15 05:46:47 +07:00
Artem Bochkarev
bb2915684a JBR-3131: support custom view for system menu items
(cherry picked from commit 78d509ac0f)
2021-07-15 05:46:44 +07:00
Artem Bochkarev
5cdc76b6b4 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)
2021-07-15 05:46:41 +07:00
Nikita Gubarkov
6e1a887629 JBR-3376 Added check for -1 glyph info pointer in OGLTextRenderer.c 2021-07-15 05:46:38 +07:00
Denis Fokin
df2255dc38 JBR-1417 JBR 11 does not support chain of popups
Adopted version of "JRE-864  Multiple child windows opened and closed in sequence"

(cherry picked from commits 54bb2dd097, 68c2fd0e3b, part of 1a9838082e)
2021-07-15 05:46:36 +07:00
Dmitry Batrak
daa33b828f JBR-3024 Popups are shown with 1x1 size sometimes
test case only

(cherry picked part of commit ee298f5287)
2021-07-15 05:46:32 +07:00
Vitaly Provodin
6d971e656e JBR-3314 add regression test
(cherry picked from commit c81adfed61)
2021-07-15 05:46:27 +07:00
Ivan Migalev
e7ecf5f164 JBR-3227 Reload type of required native file dialogs each time a file dialog is requested
(cherry picked from commit 26dd87ab7c)
2021-07-15 05:46:23 +07:00
Vitaly Provodin
2b805791d8 JBR-1505 add jdk.jcmd module into JBR
(cherry picked from commit c40b9c8b9e)
2021-07-15 05:46:20 +07:00
Ivan Migalev
2b88d5f79f JBR-3068 Update path selector behavior when sun.awt.windows.useCommonItemDialog is enabled
(cherry picked from commit 442bb7eecc)
2021-07-15 05:46:18 +07:00
Alexey Ushakov
3235582a15 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)
2021-07-15 05:46:15 +07:00
Alexey Ushakov
7daa88599a 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)
2021-07-15 05:46:12 +07:00
Dmitry Batrak
c1c2294526 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)
2021-07-15 05:46:09 +07:00
Dmitry Batrak
80cb66e92c JBR-3072 Deadlock on nested dialog hiding
(cherry picked from commit 99242748ee)
2021-07-15 05:46:06 +07:00
Dmitry Batrak
83c9e70a81 fix occasional freezes of JBR-3017 reproducer after the fix
(cherry picked from commit 7e6db54f77)
2021-07-15 05:46:01 +07:00
Dmitry Batrak
efa74fc5bf refactor nativeCreateNSWindow call wrapping
as part of JBR-3017

(cherry picked from commit eeef67a335)
2021-07-15 05:45:58 +07:00
Dmitry Batrak
d4d5831465 remove excessive wrapping with AccessController (AWTThreading does it internally now)
as part of JBR-3017

(cherry picked from commit f1dd523ba8)
2021-07-15 05:45:56 +07:00
Dmitry Batrak
42214ff9e8 log LWCToolkit invokeAndWait requests
as part of JBR-3017, to make investigation of similar issues simpler in the future

(cherry picked from commit a7fd723e43)
2021-07-15 05:45:53 +07:00
Dmitry Batrak
73ee629668 JBR-2971 Log more information about window creation and property changes
(cherry picked from commit 9d86b4d235)
2021-07-15 05:45:47 +07:00
Dmitry Batrak
5d4576306a JBR-2819 Create API to determine typographic family/subfamily for available fonts
(cherry picked from commit 89e519a4ef)
2021-07-15 05:45:42 +07:00
Dmitry Batrak
c072e7f84d 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, parts of 7d5ac56b6c, cd6dd5c3cf, e8bbd8ffdd)
2021-07-15 05:45:40 +07:00
Nikita Gubarkov
d6569503d5 Added jetbrains.api & jetbrains.api.impl modules 2021-07-15 05:45:36 +07:00
Nikita Gubarkov
5f74c7d374 JBR-2924 Do not try to create native italic font when we're going to make it fake italic 2021-07-15 05:45:33 +07:00
Nikita Gubarkov
7faec92ebe JBR-3269 Disabled subpixel antialiasing for macOS Big Sur and newer 2021-07-15 05:45:30 +07:00
Dmitry Batrak
d7e51fe60c JBR-3017 Focus issue in presence of third-party accessibility tool
(cherry picked from commit 88ead5d9e3)
2021-07-15 05:45:27 +07:00
Vitaly Provodin
84d33b36d9 JBR-1718 add a regression test
(cherry picked from commit 84ff4eab21)
2021-07-15 05:45:24 +07:00
Vitaly Provodin
2fc7d6a06e JBR-2957 notarize JBR and JBRSDK as APPL
(cherry picked from commit 0e7f9ce4ca)
2021-07-15 05:45:21 +07:00
Elena Sayapina
6be375b1cb JBR-2890 [TESTUPDATE] Enable jcef tests on macOS aarch64 platform
(cherry picked from commit 1714d7b627)
2021-07-15 05:45:18 +07:00
Vitaly Provodin
1428d2222c JBR-667 add shenandoahgc feature
(cherry picked from commit e15dad04)
2021-07-15 05:45:16 +07:00
Artem Bochkarev
66aa78a29d 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)
2021-07-15 05:45:13 +07:00
Mikhail Grishchenko
baa0e2b390 JBR-2890 Disable jcef tests on 32-bit and aarch64 platforms
(cherry picked from commit d34d6528fe)
2021-07-15 05:45:10 +07:00
Alexey Ushakov
a190730b65 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)
2021-07-15 05:45:08 +07:00
Nikita Gubarkov
666fb34a50 JBR-2910 Implemented extended glyph cache for macOS 2021-07-15 05:45:05 +07:00
Alexey Ushakov
6f3533688d 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)
2021-07-15 05:45:02 +07:00
Alexey Ushakov
b2dc10b682 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)
2021-07-15 05:45:00 +07:00
Alexey Ushakov
37197303c8 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)
2021-07-15 05:44:57 +07:00
Alexey Ushakov
fd8be6da0e 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)
2021-07-15 05:44:55 +07:00
Vitaly Provodin
0f742d7307 exclude bug7154030 on macosx-aarch64 due to 8268284 2021-07-15 05:44:52 +07:00
Vitaly Provodin
1d59e7a82d exclude SharedMemoryPixmapsTest on macosx-all due to 8221451 2021-07-15 05:44:50 +07:00
Vyacheslav Moklev
e0f51f967a JBR-2442 fix memory leak of fileBuffer
fix was suggested by Nikita Gubarkov
2021-07-15 05:44:46 +07:00
Andrey Starovoyt
90452c5d8d 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)
2021-07-15 05:44:43 +07:00
Sergey Malenkov
6c49aff129 EA-235126 - CME: HighlightableComponent.getPreferredSize
(cherry picked from commit 523d80cafd)
2021-07-15 05:44:41 +07:00
Kirill Kirichenko
b73ffc9f8a JBR-2667 Post review: rename win.darkTheme.on to win.lightTheme.on and reversed the logic
(cherry picked from commit eeab5252e6)
2021-07-15 05:44:39 +07:00
Kirill Kirichenko
5ed0df1831 JBR-2667 Add new AWT desktop property for light/dark theme detection on Windows 10
(cherry picked from commit 0e4ad056dd)
2021-07-15 05:44:37 +07:00
Alexey Ushakov
4d09bd3585 JBR-2593 Wide ligatures not rendered in Grayscale mode
Added missing flush of cached vertices

(cherry picked from commit ad409b4370)
2021-07-15 05:44:35 +07:00
Nikita Gubarkov
ef38f08cf3 JBR-2910 Implemented extended glyph cache for Linux 2021-07-15 05:44:33 +07:00
Nikita Gubarkov
58e65f63ec JBR-2910 Implemented extended glyph cache for Windows 2021-07-15 05:44:31 +07:00
Nikita Gubarkov
6776019bf6 JBR-2614 Fixed LCD glyph width to include both left & right padding, so that rowBytes = width * 3 2021-07-15 05:44:29 +07:00
Alexey Ushakov
d8a9899adb JBR-2463 Font rendering problem on macOS Mojave
Use adjusted advances for glyphs

(cherry picked from commit 1af5dd4aae)
2021-07-15 05:44:27 +07:00
Denis Konoplev
26c3855d83 JBR-3544: Generate popup invoked instead of New in this directory 2021-07-15 05:44:25 +07:00
Vitaly Provodin
2023dd87ef JBR-2545 Clean up the list of ignored Render tests
(cherry picked from commit f7b4c42e1d)
2021-07-15 05:44:22 +07:00
Jayathirth D V
652904e67b 8241490: Add large text performance tests in RenderPerfTest
(cherry picked from commit 803ee2f2b5)
2021-07-15 05:44:20 +07:00
Alexey Ushakov
5c42b00ddc 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)
2021-07-15 05:44:18 +07:00
Konstantin Bulenkov
49e44238ce Update FiraCode to 5.2
(cherry picked from commit 71e2a8d8ad)
2021-07-15 05:44:15 +07:00
Alexey Ushakov
8f05a1ce68 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)
2021-07-15 05:44:13 +07:00
Alexey Ushakov
1d45486ac6 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)
2021-07-15 05:44:10 +07:00
Alexey Ushakov
bfe00c828d JBR-2463 Font rendering problem on macOS Mojave
Use adjusted advances for glyphs

(cherry picked from commit 1af5dd4aae)
2021-07-15 05:44:07 +07:00
Anton Tarasov
69c11fceae JBR-3413 use timeout in CAccessibility.invokeAndWait 2021-07-15 05:44:05 +07:00
Anton Tarasov
93aededb81 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)
2021-07-15 05:44:03 +07:00
Anton Tarasov
60e75803ac JBR-2872 improve: JBR-2866 JCEF: Markdown editor steals focus from a different frame
(cherry picked from commit bad748e3d0)
2021-07-15 05:43:59 +07:00
Anton Tarasov
a6aa8067d0 JBR-2866 JCEF: Markdown editor steals focus from a different frame 2021-07-15 05:43:56 +07:00
Anton Tarasov
425ac11443 JBR-2645 enable CefBrowser.close(true) in jcef reg tests
(cherry picked from commit 492c217125)
2021-07-15 05:43:54 +07:00
Anton Tarasov
f4afe449dc JBR-2259 WebSite isn't loaded with .loadUrl method if browser isn't shown in UI
(cherry picked from commit 57bbddf071)
2021-07-15 05:43:51 +07:00
Anton Tarasov
a0aa5648bc JBR-2557 use com.jetbrains.cef.JCefAppConfig in JCEF tests
(cherry picked from commit e30a309f92)
2021-07-15 05:43:44 +07:00
Anton Tarasov
e71b914cb8 JBR-2489 Git branch operations (switch to another branch, rebase) sometimes crash WebStorm 202.5428.27
(cherry picked from commit 81d2156fb1)
2021-07-15 05:43:42 +07:00
Anton Tarasov
b2d4f0797c JBR-2282 [jcef] update to JCEF/80.0.4+g74f7b0c+chromium-80.0.3987.122
(cherry picked from commit a5adc725df)
2021-07-15 05:43:36 +07:00
Anton Tarasov
0d69196a64 JBR-2305 jcef: jb/java/jcef/JCEFStartupTest.java throws java.lang.ExceptionInInitializerError
(cherry picked from commit f0385f01ec)
2021-07-15 05:43:31 +07:00
Anton Tarasov
61a1b99c13 JBR-2306 jcef: jb/java/jcef/JCEFStartupTest.java unexpectedly exits with the exit code: 0
(cherry picked from commit ff7d7bd43c)
2021-07-15 05:43:28 +07:00
Anton Tarasov
85a6e859ba JBR-2299 [mac] jcef requests for "chromium safe storage" keychain access
(cherry picked from commit dd1334a352)
2021-07-15 05:43:26 +07:00
Anton Tarasov
298bf55b39 JBR-2222 Crash during closing IDE
(cherry picked from commit d0c367b31f)
2021-07-15 05:43:24 +07:00
Anton Tarasov
0d9d566017 JBR-2287 [jcef] add CefBrowser wrapper to jtreg tests
(cherry picked from commit fa961d1769)
2021-07-15 05:43:21 +07:00
Anton Tarasov
2763578a61 JBR-2169 AWTThreading: remove tracked invocation event from completion listener
(cherry picked from commit a855f3b835)
2021-07-15 05:43:18 +07:00
Anton Tarasov
5853fc0a5c JBR-2159 Native crash in thread AWT-EventQueue-0 when trying to push commit
(cherry picked from commit bba297b4a4)
2021-07-15 05:43:15 +07:00
Anton Tarasov
eee5f887d2 JBR-2148 JCEF: JBR bundle has invalid app structure
(cherry picked from commit f45f84d7ed)
2021-07-15 05:43:12 +07:00
Anton Tarasov
0b89a68acc JBR-2146 improve InvokeOnToolkitHelper to cover more generic case 2021-07-15 05:43:06 +07:00
Anton Tarasov
cd2d122aae JBR-2139 Idea freeze on dynamic plugin unloading
(cherry picked from commit e57bae4f66)
2021-07-15 05:43:03 +07:00
Anton Tarasov
a345d6bf2b JBR-2099 jb/java/jcef/JCEFStartupTest.java fails on Windows, Linux
(cherry picked from commit 3dfb0aa16a)
2021-07-15 05:42:56 +07:00
Anton Tarasov
af57a07bc9 JBR-2093 create reg test for JCEF startup
(cherry picked from commit e8c2761f5b)
2021-07-15 05:42:52 +07:00
Anton Tarasov
0f32a2912d JBR-2082 Revealing taskbar does not work when "Automatically hide the taskbar"
(cherry picked from commit b31a41fb2f)
2021-07-15 05:42:49 +07:00
Mikhail Grishchenko
bb7a6a5e99 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)
2021-07-15 05:42:45 +07:00
Mikhail Grishchenko
4c1fc5c81d JBR-2639 [win] jcef does not recognize vertical mouse wheel events
added regression test

(cherry picked from commit e8e4741bb0)
2021-07-15 05:42:41 +07:00
Mikhail Grishchenko
b126a231f2 JBR-2412 [windows] mouse listener does not work for jcef
added regression test

(cherry picked from commit d1479872f2)
2021-07-15 05:42:37 +07:00
Elena Sayapina
6c502a326a 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)
2021-07-15 05:42:33 +07:00
Mikhail Grishchenko
8e8d622b22 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)
2021-07-15 05:42:29 +07:00
Vitaly Provodin
3aea062227 exclude the new printer test 8262731 2021-07-15 05:42:24 +07:00
Alexey Ushakov
33e96a85e4 8266079: Lanai: AlphaComposite shows differences on Metal compared to OpenGL
Keep MTLLayer opacity in sync with window content view
2021-07-15 05:42:19 +07:00
Alexey Ushakov
c4e5dfaae3 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)
2021-07-15 05:42:13 +07:00
Alexey Ushakov
4b45577ac9 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)
2021-07-15 05:42:10 +07:00
Artem Bochkarev
54665fce33 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)
2021-07-15 05:42:06 +07:00
Kirill Kirichenko
aa82961a76 JBR-1874 Cursor not changing from 'default' to 'text'. Additional fix after reopening.
(cherry picked from commit 5a29d4ade9)
2021-07-15 05:42:04 +07:00
Elena Sayapina
603f214e2c JBR-1388 [TESTBUG] Regression test java/awt/Graphics2D/DrawString/LCDTextSrcEa.java fails on macOS Mojave
(cherry picked from commit 50b24a147b)
2021-07-15 05:42:00 +07:00
Elena Sayapina
6a2a16c6b1 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)
2021-07-15 05:41:56 +07:00
Alexey Ushakov
6cc7a3b84f 8266079: Lanai: AlphaComposite shows differences on Metal compared to OpenGL
Implemented blit via compute kernel
2021-07-15 05:41:53 +07:00
Denis Konoplev
7566863a4f fixup! macOS national keyboard support
Remove unused import that broke compilation
2021-07-15 05:41:51 +07:00
Elena Sayapina
c405c7acb7 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)
2021-07-15 05:41:48 +07:00
Konstantin Aleev
788e352701 fix memory leaks in AccessibleJTree
(cherry picked from commit 561a7b8def)
2021-07-15 05:41:45 +07:00
Elena Sayapina
b62f8af476 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)
2021-07-15 05:41:42 +07:00
Mikhail Grishchenko
d7fbef52ba JBR-2259 WebSite isn't loaded with .loadUrl method if browser isn't shown in UI
Added reproducer

(cherry picked from commit e875bf72c9)
2021-07-15 05:41:38 +07:00
Denis Konoplev
ed5cdfa144 JBR-2490 Add option to work with Surface Pen
(cherry picked from commit 5acc7680a1)
2021-07-15 05:41:34 +07:00
Denis Konoplev
bc5a700665 JBR-2669: set unicode for both keyCode and extendedKeyCode
(cherry picked from commit ba3f14c83a)
2021-07-15 05:41:32 +07:00
Denis Konoplev
475a2ce0a0 JBR-2554: Proper unicode values in KeyEvent.keyCode
(cherry picked from commit 703d77a927)
2021-07-15 05:41:28 +07:00
Denis Konoplev
bffbcf2a6a JBR-215: Remove SystemInfo
(cherry picked from commit 9adf77a512)
2021-07-15 05:41:25 +07:00
Denis Konoplev
2938315764 JBR-215: Separate LatinNonAlphaNumKeycodes option
(cherry picked from commit caf366f6f3)
2021-07-15 05:41:21 +07:00
Denis Konoplev
0cde0dd327 JBR-215: Windows non-alphanumeric shortcuts
(cherry picked from commit 4f60efebe2)
2021-07-15 05:41:17 +07:00
Denis Konoplev
0cf08d613a JBR-2280: Fix regression. Mode compatible with old option.
(cherry picked from commit a3e3c23cb1)
2021-07-15 05:41:13 +07:00
Denis Fokin
30da8a6373 macOS national keyboard support 2021-07-15 05:41:08 +07:00
Sergey Malenkov
493048e6c6 JBR-1929 FractionalMetricsSupport
(cherry picked from commit bbdc159762)
2021-07-15 05:41:04 +07:00
Mikhail Grishchenko
c569d6e9c8 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)
2021-07-15 05:41:01 +07:00
Mikhail Grishchenko
5547506845 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)
2021-07-15 05:40:56 +07:00
Alexey Ushakov
980b08e0b4 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)
2021-07-15 05:40:53 +07:00
Mikhail Grishchenko
48a7c6052f JBR-1414 [Test] downscale frames to run on low-dpi screens
(cherry picked from commit b46e74fe6f)
2021-07-15 05:40:50 +07:00
Elena Sayapina
7561ca52ba 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)
2021-07-15 05:40:46 +07:00
Alexey Ushakov
20583a52d7 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)
2021-07-15 05:40:44 +07:00
Alexey Ushakov
803ce276fd JBR-2137 JetBrainsMono fonts update to v1.0.3
(cherry picked from commit a6e441828a)
2021-07-15 05:40:41 +07:00
Mikhail Grishchenko
8ced002288 JBR-1414: Added regression test for dnd with HiDPI scaling
(cherry picked from commit 1f4ab12fbb)
2021-07-15 05:40:38 +07:00
Elena Sayapina
56eef5d861 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)
2021-07-15 05:40:35 +07:00
Konstantin Bulenkov
8a040acaeb Update JetBrains Mono to 1.0.2
(cherry picked from commit 6f4a13e46f)
2021-07-15 05:40:32 +07:00
Ivan Migalev
8ad5177715 Extract the DWM colorization parameters from registry (JBR-2070)
(cherry picked from commit 0330cab60b)
2021-07-15 05:40:29 +07:00
Ivan Migalev
98e5289b7f Refresh desktop properties on WM_DWMCOLORIZATIONCOLORCHANGED (JBR-2070)
(cherry picked from commit 06086f4a7e)
2021-07-15 05:40:27 +07:00
Ivan Migalev
a283748561 Fix a possible resource leak in ColorizationColorAffectsBorders
(cherry picked from commit 0c911b6ffe)
2021-07-15 05:40:23 +07:00
Elena Sayapina
b54dc58652 JBR-2086 JetBrainsMono fonts update to v1.0.1
(cherry picked from commit a4b373e631)
2021-07-15 05:40:20 +07:00
Konstantin Bulenkov
3db46764e4 JetBrains Mono 1.0
(cherry picked from commit d514f7a982)
2021-07-15 05:40:18 +07:00
Alexey Ushakov
0ea7ea90bd 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)
2021-07-15 05:40:15 +07:00
Denis Konoplev
5de9756c44 JBR-3444: Return NullSurfaceData when gc == null
(cherry picked from commit 01ad15e61c)
2021-07-15 05:40:11 +07:00
Denis Konoplev
9e49fcd052 JBR-1995: Last character issue with korean
Fix for JTextComponent

(cherry picked from commit a7c8b0b535)
2021-07-15 05:40:07 +07:00
Denis Konoplev
7aeda8cec5 JBR-2891: Post PhaseEvents in the begin and end of Magnify and Rotate
(cherry picked from commit c811c295c2)
2021-07-15 05:40:04 +07:00
Denis Konoplev
96cbcb047e JBR-2444: Turn on IM workaround by default
(cherry picked from commit 15c4ce1d3e)
2021-07-15 05:40:01 +07:00
Denis Konoplev
df09ece395 Fix build: add import & fix jwhen 2021-07-15 05:39:56 +07:00
Denis Konoplev
e50c3ec7f8 JBR-2795: Add explicit conversion
(cherry picked from commit bf3e1c0c31)
2021-07-15 05:39:53 +07:00
Denis Konoplev
8e2cb933b7 IDEA-237231: Correct signarute mask
(cherry picked from commit 6974131eec)
2021-07-15 05:39:47 +07:00
Denis Konoplev
4d2dbd2d44 IDEA-237231: Possible fix for pen interraction
(cherry picked from commit 33a8c95d39)
2021-07-15 05:39:43 +07:00
Denis Konoplev
42a5fa0d1e JBR-2347: Free memory on other exceptions, rethrow ThreadDead & log it
(cherry picked from commit 16ca839ed3)
2021-07-15 05:39:40 +07:00
Denis Konoplev
5c90093b73 JBR-2347: Don't free memory when thread is dead
(cherry picked from commit afb3303db5)
2021-07-15 05:39:36 +07:00
Denis Konoplev
776e5ecec6 JBR-2041: Project view tap fix, recovery? constants & logging
(cherry picked from commit 1e904db3b0)
2021-07-15 05:39:31 +07:00
Denis Konoplev
92d767791d IDEA-229135: Fling animation stop on tap
(cherry picked from commit 7ce0f79561)
2021-07-15 05:39:25 +07:00
Denis Konoplev
e1908fa301 Windows touch screen support
(cherry picked from commit cab3f28907)
2021-07-15 05:39:22 +07:00
Denis Konoplev
be4d5d7671 Turn off multitouch
(cherry picked from commit a2576ffa9a)
2021-07-15 05:39:18 +07:00
Denis Konoplev
0972ea48a9 Check XInput extension && touch inertia
(cherry picked from commit cca7fb97f4)
2021-07-15 05:39:13 +07:00
Denis Konoplev
83e811b64f Touch scroll handling
(cherry picked from commit 6dcec3dc31)
2021-07-15 05:39:10 +07:00
Denis Konoplev
b78d1ec333 XI2 Constants
(cherry picked from commit 588cd6ee73)
2021-07-15 05:39:06 +07:00
Denis Konoplev
85ae37da78 XLibWrapper XI2 functions
(cherry picked from commit d6bd1bfa2b)
2021-07-15 05:39:01 +07:00
Denis Konoplev
bec5276b9f X11 native get put double
(cherry picked from commit f101bc1108)
2021-07-15 05:38:57 +07:00
Denis Konoplev
cb30efb89e Native data types
(cherry picked from commit 9504574dbb)
2021-07-15 05:38:51 +07:00
Denis Konoplev
61fe1a668e XI2 headers in xlib wrapper generator
(cherry picked from commit ef108067a1)
2021-07-15 05:38:45 +07:00
Denis Konoplev
0953651f6e Revert "Turn off multitouch"
This reverts commit 90ea3bf57e4c687e9d9bf0a37f2f64c82a81f4eb.
2021-07-15 05:38:42 +07:00
Denis Konoplev
d263283326 Turn off multitouch
(cherry picked from commit a2576ffa9a)
2021-07-15 05:38:38 +07:00
Alexey Ushakov
ab0cb6a773 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)
2021-07-15 05:38:33 +07:00
Alexey Ushakov
1b99fdbe03 JBR-1962 Allow to change font config
Replaced several privileged blocks with just one

(cherry picked from commit faa8d3d258)
2021-07-15 05:38:30 +07:00
Vitaly Provodin
f25ec931ad 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)
2021-07-15 05:38:25 +07:00
Dennis Ushakov
9e71fe211a JBR-1863, JBR-1868 correct advances on Catalina 2021-07-15 05:38:18 +07:00
Dennis Ushakov
f3344cf11d JBR-1850: on macOS fonts should be sorted by weight to ensure proper population of the families 2021-07-15 05:37:33 +07:00
Dennis Ushakov
2dbce65b75 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.
2021-07-15 05:37:28 +07:00
Dennis Ushakov
b022adc3a3 JBR-1756 use CoreText for all font rendering on Catalina 2021-07-15 05:37:24 +07:00
Nikita Gubarkov
fd0d59b9cb JBR-410 Added emoji support for Linux 2021-07-15 05:37:14 +07:00
Alexey Ushakov
e4ce4ce9c2 JBR-1997 JetBrainsMono fonts update to v0.22
(cherry picked from commit 41f4fddd34)
(cherry picked from commit f5302a02f4)
(cherry picked from commit 5d7fd2e1e5)
2021-07-15 05:37:10 +07:00
Anton Tarasov
a19e846fb7 JRE-729 [windows] unreasonable IME activity consumes CPU 2021-07-15 05:37:07 +07:00
Dmitry Batrak
dfa9da928f 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)
2021-07-15 05:37:04 +07:00
Dmitry Batrak
a6b4a9237e JBR-3038 Unexpected windows z-order change on workspace switch
(cherry picked from commit ddda860f42)
2021-07-15 05:37:00 +07:00
Dmitry Batrak
957ba2a03c JBR-3035 The Confirm Exit pop-up window remains hidden behind a window of another application
(cherry picked from commit 470c3bd1b5)
2021-07-15 05:36:57 +07:00
Dmitry Batrak
e3bd483d6d JBR-2934 Serious usability issue with GoLand 2020.3 caused by JBR
(cherry picked from commit 95be4351d4)
2021-07-15 05:36:54 +07:00
Dmitry Batrak
06c43c698d JBR-2977 Opening a recent project in a new window doesn't bring this window to the front
(cherry picked from commit 2d9fb9e7b8)
2021-07-15 05:36:50 +07:00
Dmitry Batrak
206fb3cf8a JBR-2698 setAutoRequestFocus(false) breaks focus logic under i3 window manager on Linux
(cherry picked from commit ebcdeb7d80)
2021-07-15 05:36:46 +07:00
Dmitry Batrak
c63cccddc4 JBR-2696 Log focus API invocations with stack traces
(cherry picked from commits 0f038754e5, a507cab6d3)
2021-07-15 05:36:44 +07:00
Dmitry Batrak
4b84bc3b93 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)
2021-07-15 05:36:39 +07:00
Alexey Ushakov
63722ffd25 JBR-3509 Extend JDK-8267521 (Post JEP 411 refactoring: maximum covering > 50K) to JBR specific changes
Marked all the usages of SecurityManager related api
2021-07-15 05:36:35 +07:00
Artem Bochkarev
d63734bd7c JBR-1851: check NSArray length
and make more exception-safe
and minor optimization for logging (cache jobjects)

(cherry picked from commit 5839539379)
2021-07-15 05:36:32 +07:00
Artem Bochkarev
3a8cbb74ba JBR-1841: allow deferred disabling of InputMethods-support
(cherry picked from commit 969255904b)
2021-07-15 05:36:29 +07:00
Artem Bochkarev
0a9826f72e 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)
2021-07-15 05:36:25 +07:00
Artem Bochkarev
2c2e35e558 JBR-1668: add hardcoded default values for preferences node NSServicesStatus
(cherry picked from commit 8445f53d85)
2021-07-15 05:36:20 +07:00
Artem Bochkarev
b7a12ea662 JBR-1515: obtain shortcut from OS to check inside AWTView.performKeyEquivalent
(cherry picked from commit 30d479fbd4)
2021-07-15 05:36:17 +07:00
Artem Bochkarev
dcee97a48c JBR-1668: add hardcoded descriptions of system actions
and minor fixes

fix memory management

(cherry picked from commit 15f7368309)
2021-07-15 05:36:15 +07:00
Elena Sayapina
100ec5b7d8 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)
2021-07-15 05:36:11 +07:00
Alexey Ushakov
e37ac4394d 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)
2021-07-15 05:36:08 +07:00
Dmitry Batrak
2fca3d8b3b 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)
2021-07-15 05:36:05 +07:00
Dmitry Batrak
a0714881b4 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
2021-07-15 05:36:02 +07:00
Dmitry Batrak
dc7d5bd44d 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
2021-07-15 05:35:58 +07:00
Artem Bochkarev
f5c2644e2d JBR-1771: fixed compilation errors (macosx-x86_64-normal-server-fastdebug)
(cherry picked from commit 1acada7cac)
2021-07-15 05:35:54 +07:00
Artem Bochkarev
14c136bd0a JBR-1668: minor fixes
fixed review comments

(cherry picked from commit 9dbcf194c9)
2021-07-15 05:35:51 +07:00
Vitaly Provodin
4453316fa4 JBR-1618: fixed misprint, added saving screenshots in case of failure
(cherry picked from commit e4a3889cf0)
2021-07-15 05:35:48 +07:00
Alexey Ushakov
dece0a4c69 JBR-1624 Fonts rendering is broken in the 2019.2 EAP (Fira Code)
Corrected lookup for bold fonts

(cherry picked from commit 114b8af38f)
2021-07-15 05:35:45 +07:00
Alexey Ushakov
703ccf6538 JBR-1399 Improve font discovery and loading by introducing font cache
Added unit test

(cherry picked from commit b4f5bf8bd3)
2021-07-15 05:35:40 +07:00
Elena Sayapina
44bad6a17d IDEA-165950 [TEST] Added new regression test (National keyboard layouts support)
(cherry picked from commit 0900a705bc)
2021-07-15 05:35:37 +07:00
Artem Bochkarev
af4325a847 JBR-1668: read system keyboard shortcuts
initial support for OS X

(cherry picked from commit 6bbe7102e2)
2021-07-15 05:35:34 +07:00
Artem Bochkarev
37076d0944 JBR-1573: restore current input context after cleanup
(cherry picked from commit b7acd7f6f6)
2021-07-15 05:35:31 +07:00
Alexey Ushakov
882afee8bf 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)
2021-07-15 05:35:27 +07:00
Alexey Ushakov
c09469ba83 JBR-1874 Cursor not changing from 'default' to 'text'
Prevent OS from changing cursor

(cherry picked from commit 94a4eb7002)
2021-07-15 05:35:24 +07:00
Alexey Ushakov
dada50011d 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)
2021-07-15 05:35:21 +07:00
Alexey Ushakov
0fbced8b2d 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)
2021-07-15 05:35:18 +07:00
Alexey Ushakov
f1175b9b7f 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)
2021-07-15 05:35:14 +07:00
Alexey Ushakov
1d5270bce0 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)
2021-07-15 05:35:11 +07:00
Alexey Ushakov
4e8727c89b 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)
2021-07-15 05:35:08 +07:00
Alexey Ushakov
846eb23b55 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)
2021-07-15 05:35:05 +07:00
Alexey Ushakov
43a0f7d0f1 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)
2021-07-15 05:35:01 +07:00
Alexey Ushakov
decc261f32 JBR-1645 javax/swing/JTextArea/TestTabSize.java: Tab width calculation wrong
Corrected idea font filter

(cherry picked from commit 62f9d1f46a)
2021-07-15 05:34:59 +07:00
Artem Bochkarev
ec41c15e74 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)
2021-07-15 05:34:56 +07:00
Alexey Ushakov
8ed2a4ef10 JBR-1399 Improve font discovery and loading by introducing font cache
Bundle IDEA fonts to improve startup performance

(cherry picked from commit 350a3fdef3)
2021-07-15 05:34:51 +07:00
Artem Bochkarev
6387eb8a28 JBR-1541: activate menu in completion handler of modal dialog
(cherry picked from commit e57384c1d6)
2021-07-15 05:34:46 +07:00
Alexey Ushakov
aa9325096f 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)
2021-07-15 05:34:41 +07:00
Alexey Ushakov
6272a6fe04 JBR-1412 [fwp to JBR11] JBR-1393 RubyMine is hanging after log in (macOS)
Modified version of JBR8 fix

(cherry picked from commit 434166fe63)
2021-07-15 05:34:37 +07:00
Alexey Ushakov
f849f526cc JBR-1394 JBR11 does not support LCD text on Mac
Enable LCD rendering for transparent destinations

(cherry picked from commit 207c6b92ff)
2021-07-15 05:34:33 +07:00
Elena Sayapina
b7449a593a JBR-1380: [TESTBUG] Regression test java/awt/Graphics2D/DrawString/LCDTextSrcEa.java works incorrectly
(cherry picked from commit 95df9908f4)
2021-07-15 05:34:30 +07:00
Elena Sayapina
335c8f0290 JBR-1372: [TESTBUG] JDialog1054.java, MoveFocusShortcutTest.java regression tests need update
(cherry picked from commit a5948894bf)
2021-07-15 05:34:27 +07:00
Maxim Kartashev
f3d4125604 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}.
2021-07-15 05:34:23 +07:00
Vyacheslav Moklev
dd0cda9333 Fix const pointer after JDK-8225032 fix 2021-07-15 05:34:21 +07:00
Vyacheslav Moklev
31a8500fec Fix compilation on windows platform: awt_ole.h must be included before awt.h 2021-07-15 05:34:18 +07:00
Vyacheslav Moklev
5e4e0a9a43 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
2021-07-15 05:34:14 +07:00
Vyacheslav Moklev
d47131b7ab JBR-1271 Wrong parent of native windows dialogs
Set a proper parent to a dialog window
2021-07-15 05:34:10 +07:00
Vyacheslav Moklev
24508041d9 JBR-1273 Common Item Dialog does not open when wrong path to directory is passed
Handle set directory / set file properly
2021-07-15 05:34:07 +07:00
Vyacheslav Moklev
95cb510621 JBR-1274 Common Item Dialog sometimes crash the process
Prevent from freeing memory with CoTaskMemFree twice
2021-07-15 05:34:05 +07:00
Vyacheslav Moklev
280275eaae 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
2021-07-15 05:34:01 +07:00
Vyacheslav Moklev
7ca6eb25d7 JBR-1258 CommonItemDialog ignores directory to open
Fix parsing of directory path / file path
2021-07-15 05:33:58 +07:00
Vyacheslav Moklev
93261b19f9 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
2021-07-15 05:33:55 +07:00
Alexey Ushakov
ce23ff88d6 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)
2021-07-15 05:33:51 +07:00
Alexey Ushakov
285d573e76 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)
2021-07-15 05:33:47 +07:00
Elena Sayapina
6b3cf6a99b 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)
2021-07-15 05:33:44 +07:00
Elena Sayapina
c4dc813dae 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)
2021-07-15 05:33:41 +07:00
Elena Sayapina
3e64a73ed2 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)
2021-07-15 05:33:27 +07:00
Elena Sayapina
adf55cf01f 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)
2021-07-15 05:33:23 +07:00
Vitaly Provodin
dfcc8aed7a 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)
2021-07-15 05:33:19 +07:00
Vitaly Provodin
33f1eecc5b JRE-1117 J2DBench: introduced result reader for TC's charts
(cherry picked from commit 422fa59643)
2021-07-15 05:33:14 +07:00
Alexey Ushakov
6a8e099fb5 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)
2021-07-15 05:32:59 +07:00
Alexey Ushakov
283587c032 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)
2021-07-15 05:32:52 +07:00
Alexey Ushakov
280b1ae0e1 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)
2021-07-15 05:32:44 +07:00
Alexey Ushakov
81ea8eff5a 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)
2021-07-15 05:32:39 +07:00
Konstantin Bulenkov
101a3d97f8 update icons
(cherry picked from commit dfe387ff5037deda29d8d522cba6cc5370796ff4)
(cherry picked from commit de1e4a9d71)
2021-07-15 05:32:36 +07:00
Konstantin Bulenkov
713b02c036 add workspace.xml to gitignore
(cherry picked from commit bd5b9403fdca779ecc76f0b3af2918fe772f7ed1)

(cherry picked from commit 37e7661f85)
2021-07-15 05:32:32 +07:00
Vitaly Provodin
a9aa04dac1 Update README.md 2021-07-15 05:31:53 +07:00
Vitaly Provodin
d92caad2bc 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)
2021-07-15 05:31:47 +07:00
Vitaly Provodin
18d0024c30 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)
2021-07-15 05:31:40 +07:00
Vitaly Provodin
15b1c19501 JRE-9: added regression test
(cherry picked from commit 4ffb665)
(cherry picked from commit 00a29ad129)
2021-07-15 05:31:35 +07:00
Sergey Malenkov
4c56854a4c JRE-100 Scroll with inertia (Mac os) should only work in the initial component
(cherry picked from commit e79502c708)
2021-07-15 05:31:32 +07:00
Sergey Malenkov
2103e42bc5 IDEA-161965 ignore dragged event that does not change mouse location Sierra is more sensit
(cherry picked from commit ef490fa465)
2021-07-15 05:31:27 +07:00
Stanislav Dombrovsky
999b23b9cb Fix rendering of HTML list dots + better vertical align for them.
(cherry picked from commit fa4a404533ba1ef638fe523adc74391aee8a3ebf)

(cherry picked from commit 9f079c66e9)
2021-07-15 05:31:22 +07:00
Vitaly Provodin
31b97772a4 configure BOOT_JDK to use JDK 16 2021-07-15 05:31:17 +07:00
Maxim Kartashev
4144c9ddf9 JBR-1430 (8195129) Windows: use UTF16 version of Win32 API to load DLL
Also correct library name encoding in exception messages.
2021-07-15 05:31:12 +07:00
Dmitry Batrak
f1958bb005 JBR-3353 Sibling popup window is shown below dialog on macOS
(cherry picked from commit 4c6f3e4510)
2021-07-15 05:31:04 +07:00
Dmitry Batrak
1186ad23b3 JBR-3339 Window requests focus on horizontal scroll (on Linux)
(cherry picked from commit 8d74e8e30b)
2021-07-15 05:30:34 +07:00
Alexey Ushakov
3837ba418f 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)
2021-07-15 05:29:56 +07:00
Anton Tarasov
f2958638f4 JRE-166 [macOS] deadlock with JFXPanel
(cherry picked from commit a9dbb6990fac0c659297487a261ba9170e5fb3ad)

(cherry picked from commit 8a44e1bb37)
2021-07-15 05:28:53 +07:00
Alexey Ushakov
2303fcb2c6 8265445: Introduce the new client property for mac: apple.awt.windowAppearance
Implemented apple.awt.windowAppearance client property
2021-07-15 05:26:03 +07:00
Anton Tarasov
a8c58cc330 JBR-3306 jbr-dev warnings: incompatible pointer to integer conversion returning 'void *' from a function with result type 'jlong' 2021-07-15 05:25:58 +07:00
Dmitry Batrak
c712f4642d JBR-2498 Fix unexpected window raising under Mutter WM
re-implement the fix, so that ChildAlwaysOnTopTest isn't failing
2021-07-15 05:25:18 +07:00
Maxim Kartashev
178eae1c33 JBR-3323 Improve sanitizer-enabled builds
Improve usability of builds with --enable-asan.
Add the --enable-usan option to build with Undefined Behavior Sanitizer.
2021-07-15 05:24:35 +07:00
Alexey Ushakov
3398d86c5e JBR-3327 [jbr-dev] Adjust mac window appearance according to AppleInterfaceStyle property
Set window appearance according to AppleInterfaceStyle default
2021-07-15 05:24:33 +07:00
Alexey Ushakov
25ffee6d3a 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)
2021-07-15 05:23:40 +07:00
Alexey Ushakov
8a1e3fa9a2 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)
2021-07-15 05:22:57 +07:00
Dmitry Batrak
eb6f1ab945 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)
2021-07-15 05:22:27 +07:00
Dmitry Batrak
b34ea2d32f JBR-2759 Typeahead issue on Linux
(cherry picked from commits 76bdaf1131, b20c56ff3e)
2021-07-15 05:21:55 +07:00
Denis Fokin
f4e184b6da JBR-1362 Multiple child windows opened and closed in sequence result in a focus loss
(cherry picked from commit 3c9c599a2d)
2021-07-15 05:21:25 +07:00
Alexey Ushakov
6ac99f7bd4 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)
2021-07-15 05:20:54 +07:00
Alexey Ushakov
cf4430dc17 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)
2021-07-15 05:20:22 +07:00
Alexey Ushakov
af8e00fc84 JRE-193 UI freeze and 12/second thread dumps
Moved CStrikeDisposer dispose code to AppKit

(cherry picked from commit 28774d6878)
2021-07-15 05:19:52 +07:00
Alexey Ushakov
b7aac6e05d 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)
2021-07-15 05:19:20 +07:00
Alexey Ushakov
727892af71 JBR-3304 jbr-dev warnings: 'getPhysFontName' defined but not used [-Werror=unused-function]
Removed unused code
2021-07-15 05:18:49 +07:00
Vitaly Provodin
ebfdbff82b exclude javax/swing/JTabbedPane/4624207/bug4624207.java failing on windows due to 8197552 2021-07-15 05:18:18 +07:00
Alexey Ushakov
c6565a1f94 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)
2021-07-15 05:17:45 +07:00
Alexey Ushakov
d8b090823e JRE-353 Fedora 25 + XMonad rendering issues
Added support for Xmonad WM

(cherry picked from commit c690c3c7fdf1390e6b1a8d388ff752a09391ae3c)
(cherry picked from commit 6851dc3441)
2021-07-15 05:17:14 +07:00
Denis Konoplev
36733638a8 8264143: Change uint8_t to unsigned char 2021-07-15 05:16:40 +07:00
Dmitry Batrak
5995010a02 JBR-3255 Applying 'incline' transform might change character's advance
(cherry picked from commit b37f7cfdb1)
2021-07-15 05:16:03 +07:00
Dmitry Batrak
7dd1010299 JBR-3215 'deriveFont(float)' can return a different font (not just change the size)
(cherry picked from commit 8eafcaab24)
2021-07-15 05:15:03 +07:00
Dmitry Batrak
645eecc9e0 JBR-3157 Maximized window with custom decorations isn't focused on showing
(cherry picked from commit 62b04983f2)
2021-07-15 05:14:28 +07:00
Dmitry Batrak
4b77c976ca make AwtListGarbageCollectionTest pass reliably
(cherry picked from commit 304eb7f919)
2021-07-15 05:13:30 +07:00
Dmitry Batrak
245099e33b JBR-1752 Floating windows overlap modal dialogs
(cherry picked from commit 0161050077)
2021-07-15 05:13:27 +07:00
Dmitry Batrak
6b0572e738 JBR-3054 Focus is not returned to frame after closing of second-level popup on Windows
(cherry picked from commit 0c2b6e1c04)
2021-07-15 05:12:59 +07:00
Dmitry Batrak
9ecaafa2cb JBR-2702 Tooltips display through other applications on hover
(cherry picked from commits 11732c2469, 0ed7deabaa)
2021-07-15 05:12:26 +07:00
Dmitry Batrak
edacc6c4f0 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)
2021-07-15 05:12:25 +07:00
Dmitry Batrak
fb78102ab6 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)
2021-07-15 05:12:24 +07:00
Dmitry Batrak
62a5665bf7 JBR-2712 Typeahead mechanism doesn't work on Windows
(cherry picked from commits 1a9838082e, f5b6222835, acd7e3b2da, cd6dd5c3cf8556f97f3113cb7d615a92393b57bf(partially), e8bbd8ffdd90f57cd12d7d7e89188be97ee4be0b(partially))
2021-07-14 17:52:13 +07:00
Denis Konoplev
47dee01dff 8264143: Lanai: RenderPerfTest.BgrSwBlitImage has artefacts on apple M1
Add stdint include to fix x64 build
2021-07-14 17:52:12 +07:00
Dmitry Batrak
a48d7a23e2 JBR-2498 Fix unexpected window raising under Mutter WM
(cherry picked from commit 73b45fb899)
2021-07-14 17:52:12 +07:00
Dmitry Batrak
436429c870 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
2021-07-14 17:52:12 +07:00
Dmitry Batrak
1ffbb44449 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
2021-07-14 17:52:12 +07:00
Dmitry Batrak
981d03b524 JBR-2050 Issue with keycap emojis
port from JBR 11 to JBR 15 (cherry picked from commit ae91e1d7f1)

cherry picked from commit d3018a1837
2021-07-14 17:52:11 +07:00
Dmitry Batrak
1df892c53a 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
2021-07-14 17:52:11 +07:00
Dmitry Batrak
5c12770f59 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
2021-07-14 17:52:11 +07:00
Dmitry Batrak
233e4b7466 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
2021-07-14 17:52:11 +07:00
Dmitry Batrak
4a7683dd32 JBR-1248 Exception caused by broken font
port from JBR 11 to JBR 15 (cherry picked from commit 4efa7eab3e)

cherry picked from commit 6e1c514c6c
2021-07-14 17:52:10 +07:00
Alexey Ushakov
bbbfc9f661 JRE-18 CCE in XRMaskFill.MaskFill
Throwing InvalidPipeException for incompatible surfaces

(cherry picked from commit 55dab103c24bf86cf025b9ce02b67e72508d41ba)
(cherry picked from commit 0a4fdad0f2)
2021-07-14 17:52:10 +07:00
Dmitry Batrak
a40dffc1b2 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
2021-07-14 17:52:10 +07:00
Dmitry Batrak
18bfc3e241 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
2021-07-14 17:52:10 +07:00
Dmitry Batrak
bd89999539 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
2021-07-14 17:52:10 +07:00
Dmitry Batrak
7bdc16f2c5 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
2021-07-14 17:52:09 +07:00
Dmitry Batrak
7ce28495d4 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
2021-07-14 17:52:09 +07:00
Dmitry Batrak
a91dbcdeef 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
2021-07-14 17:52:09 +07:00
Dmitry Batrak
1401557381 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
2021-07-14 17:52:09 +07:00
Dmitry Batrak
18b47ed7f5 JRE-372 IntelliJ editors silently precompose diacritics
port commit f7facf1b from JBR 9

port from JBR 11 to JBR 15 (cherry picked from commit 67b1e552d8)

cherry picked from commit 51ce1d6427
2021-07-14 17:52:08 +07:00
Alexey Ushakov
4aee1f6a8d 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)
2021-07-14 17:52:08 +07:00
Alexey Ushakov
d56a66b04f 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)
2021-07-14 17:52:08 +07:00
Dmitry Batrak
1e5e7e1ab7 fix direction of vertical glyph offsets (regression introduced by backporting JDK 9 changes for JRE-33)
port commit 9b98eaf0 from JBR 9

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

cherry picked from commit e6752600a5
2021-07-14 17:52:08 +07:00
Dmitry Batrak
67d5aaf19e 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
2021-07-14 17:52:07 +07:00
Dmitry Batrak
8c14be8382 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
2021-07-14 17:52:07 +07:00
Dmitry Batrak
11311a71f0 JRE-10 Ligatures are not working sometimes when characters from multiple scripts are present
ports commit 18b3f575 from JBR 9

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

cherry picked from commit 8c9402b60b
2021-07-14 17:52:07 +07:00
Dmitry Batrak
4ba80c3f60 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
2021-07-14 17:52:07 +07:00
Vitaly Provodin
dd8fc4ea12 JRE-186 added regression test (Modal dialogs (Messages) shouldn't popup IDEA when another application is active)
(cherry picked from commit 236bd38d1b)
2021-07-14 17:52:06 +07:00
Vitaly Provodin
43f18a9559 JRE-269 added regression (JLabel doesn't scale <code>text</code> HTML fragments.)
(cherry picked from commit 1f4ad38d23)
2021-07-14 17:52:06 +07:00
Alexey Ushakov
03e8b654a5 JRE-307 Wrong dpi reported on Wayland
(cherry picked from commit 15693661cc)
2021-07-14 17:52:06 +07:00
Vitaly Provodin
127d5e05ca JRE-392 added regression (Tip of the day is not hidden while another modal window is shown)
(cherry picked from commit c7b0ac686f)
2021-07-14 17:52:06 +07:00
Vitaly Provodin
b22687d856 JRE-394 added regression test (System getenv doesn't return env var set in JNI code)
(cherry picked from commit 3a7b3c67b0)
2021-07-14 17:52:05 +07:00
Vitaly Provodin
80f6eb133a JRE-401 added regression test (AppCode freezes during autocomplete and other operations)
(cherry picked from commit cb4453b1d1)
2021-07-14 17:52:05 +07:00
Vitaly Provodin
e08a83bce2 JRE-422 added new regression test (AWTView deliverJavaMouseEvent leaks jEvent)
(cherry picked from commit 37dc13c603)
2021-07-14 17:52:05 +07:00
Vitaly Provodin
70b5ec36a2 JRE-430 added new regression test (Font fallback sometimes doesn't work in Swing text components)
(cherry picked from commit d04debc847)
2021-07-14 17:52:05 +07:00
Vitaly Provodin
d9bbf267a4 JRE-457 added new regression test (OGLTR_DisableGlyphModeState is slow)
(cherry picked from commit 3a43f4557f)
2021-07-14 17:52:04 +07:00
Vitaly Provodin
e27f2d31d1 JRE-458 added new regression test (Insufficient and inconsistent permissions on some files in Linux build)
(cherry picked from commit 82adbe9c25)
2021-07-14 17:52:04 +07:00
Vitaly Provodin
f4e6b1cc64 JRE-467 added new regression test (Wrong rendering of variation sequences)
(cherry picked from commit 0026095202)
2021-07-14 17:52:04 +07:00
Vitaly Provodin
820dec6612 JRE-468 added new regression test (Idea freezes on project loading)
(cherry picked from commit 1ce8c3ce82)
2021-07-14 17:52:04 +07:00
Vitaly Provodin
5e7c16965f JRE-501 added new regression test (Live resize is jerky for heavy java applications on Mac)
(cherry picked from commit c4a1277c1b)
2021-07-14 17:52:03 +07:00
Vitaly Provodin
50566bf303 JRE-638 added new regression test (enable unlimited cryptographic policy by default)
(cherry picked from commit 4a14c6f15a)
2021-07-14 17:52:03 +07:00
Vitaly Provodin
4f55bc2839 JRE-705 added new regression test (Z-order of child windows is broken on Mac OS)
(cherry picked from commit 82cd480619)
2021-07-14 17:52:03 +07:00
Vitaly Provodin
3c76faebbf JRE-741 added new regression test (Modal dialog stays above other process windows)
(cherry picked from commit 9ea664c299)
2021-07-14 17:52:03 +07:00
Vitaly Provodin
8b74350436 JRE-624 CThreading isAppKit() fails to detect main app thread if it was renamed
(cherry picked from commit c8f248a936)
2021-07-14 17:52:02 +07:00
Alexey Ushakov
a028fe1e49 IDEA-166173 IntelliJ freezes when returning from sleep
Fixed deadlock by removing unnecessary getScreenResolution call

(cherry picked from commit cec93cf1fd)
2021-07-14 17:52:02 +07:00
Alexey Ushakov
28600b046a Added missing fontconfig defines
(cherry picked from commit 2ac273a456)
2021-07-14 17:52:02 +07:00
Alexey Ushakov
2ac6a4aed8 JRE-12 CCE: XRTextRenderer.drawGlyphList (sun.java2d.NullSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData)
Throwing InvalidPipeException for incompatible surfaces

(cherry picked from commit f98f34c)
(cherry picked from commit fb2bbc47fe)
2021-07-14 17:52:02 +07:00
Alexey Ushakov
a205f73f8e JRE-43 Font.getFamily() does not work in headless mode
Removed unused code

(cherry picked from commit 5b523f049e)
2021-07-14 17:52:01 +07:00
Alexey Ushakov
56cdf95bb4 JRE-43 Font.getFamily() does not work in headless mode
Bundled Droid fonts to fallback in headless mode

(cherry picked from commit 5b523f049e)
2021-07-14 17:52:01 +07:00
Alexey Ushakov
2031d25572 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)
2021-07-14 17:52:01 +07:00
Alexey Ushakov
f364feb7b5 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)
2021-07-14 17:52:01 +07:00
Alexey Ushakov
236b64d8f6 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)
2021-07-14 17:52:00 +07:00
Alexey Ushakov
3f02003ed3 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)
2021-07-14 17:52:00 +07:00
Alexey Ushakov
df978a2824 JRE-29 fontconfig lib crashes CLion on OSX
Disabled fontconfig usage on OSX

(cherry picked from commit 431e14429c)
2021-07-14 17:52:00 +07:00
Vitaly Provodin
c04ca455ea exclude tests spontaneously creating windows during test execution 2021-07-14 17:52:00 +07:00
Alexey Ushakov
7774ef9ba2 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)
2021-07-14 17:51:59 +07:00
Alexey Ushakov
40a2df2a73 Added logging for freetypeScaler via env variable OPENJDK_LOG_FFS=yes
and for screen resolution in freetypeScaler

(cherry picked from commit 091d74a791)
2021-07-14 17:51:59 +07:00
Alexey Ushakov
11bff77826 JRE-34 IDE Crashes During Startup
Added validation of dpi settings coming from xserver

(cherry picked from commit b1c49c3b27)
2021-07-14 17:51:59 +07:00
Anton Tarasov
fd8ed694b8 Add build.gradle 2021-07-14 17:51:59 +07:00
Anton Tarasov
6f0bb4a82f JBR-2031 [mac] jcef deadlocks with a11y on start
(cherry picked from commit 4f44b37f08)
2021-07-14 17:51:58 +07:00
Alexey Ushakov
f492d938ed 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)
2021-07-14 17:51:58 +07:00
Anton Tarasov
a8f3411e53 JBR-2019 provide getWindowHandle method for jcef
(cherry picked from commit 7ae706b629)
2021-07-14 17:51:58 +07:00
Anton Tarasov
4341a77257 Comment assertion (originally JRE-965)
The assert line crashes debug hotspot.

(cherry picked from commit a00074a86c)
2021-07-14 17:51:58 +07:00
Anton Tarasov
990f3ece05 JBR-1976 [jcef] need mouse-transparent window on Windows
(cherry picked from commit b60fac96b4)
2021-07-14 17:51:57 +07:00
Anton Tarasov
96e1833971 JBR-1834 [linux] runtime hidpi switch is broken
(cherry picked from commit eaa04303a7)
2021-07-14 17:51:57 +07:00
Anton Tarasov
3dfc653eb6 JBR-1824 export NSWindow::setIgnoresMouseEvents to java internal API
(cherry picked from commit 4399dc382c)
2021-07-14 17:51:57 +07:00
Anton Tarasov
ce4f0a09ef JBR-1802 com/sun/java/accessibility/util/8051626/Bug8051626.java: access denied ("java.lang.RuntimePermission" "getClassLoader")
(cherry picked from commit eae772aca9)
2021-07-14 17:51:57 +07:00
Anton Tarasov
187be0e513 JBR-1795 Project opened from Welcome screen goes to backgound after loading
(cherry picked from commit 322526458a)
2021-07-14 17:51:56 +07:00
Anton Tarasov
982b63afe8 JBR-1609 Jupyter Notebook eventually causes IDEA to become unresponsive on Mac OSX
(cherry picked from commit 8ae0be8eb6)
2021-07-14 17:51:56 +07:00
Anton Tarasov
b93c17931f JBR-1786 Weird white border for IDE window
(cherry picked from commit 4b09614a0e)
2021-07-14 17:51:56 +07:00
Vyacheslav Moklev
1145299f1b JBR-1552 Invalid screen bounds in full screen mode
Check is window is not in undecorated state

(cherry picked from commit 5547701e2c)
2021-07-14 17:51:56 +07:00
Vyacheslav Moklev
51fe41504a JBR-1509 Client area size is wrong in Borderless mode
Fix client area size

(cherry picked from commit 00d32e58dc)
2021-07-14 17:51:55 +07:00
Anton Tarasov
aaaade5dae JBR-1770 [windows] frame does not open as maximized
(cherry picked from commit d9dfc3c6c5)
2021-07-14 17:51:55 +07:00
Anton Tarasov
0c94851700 JBR-1693 difficult to input Japanese text with "Fast" Key Repeat
(cherry picked from commit 12de3e287e)
2021-07-14 17:51:55 +07:00
Anton Tarasov
fc89040251 JBR-1429 Scale is huge due to GDK_SCALE
(cherry picked from commit 1c3477df2e)
2021-07-14 17:51:55 +07:00
Anton Tarasov
abfa6f0f54 JBR-1669 IDE-managed HiDPI mode is broken
(cherry picked from commit 461b0b5cd4)
2021-07-14 17:51:54 +07:00
Anton Tarasov
b11eefd25d JBR-1650 propagate custom decoration title bar height to native
(cherry picked from commit f6fc65d014)
2021-07-14 17:51:54 +07:00
Anton Tarasov
b37affa771 JBR-1629 Maximized window cut at the right and bottom
(cherry picked from commit 9e768377db)
2021-07-14 17:51:54 +07:00
Anton Tarasov
4292586fd0 JBR-1492 Not able to start Intellij Idea 2017.2.5 with modified vmoptions
(cherry picked from commit e7ca6db66b)
2021-07-14 17:51:54 +07:00
Anton Tarasov
6e62a8fcf9 JBR-1427 pycharm jupyter preview stuck and no response when click on preview.
(cherry picked from commit 1746b04686)
2021-07-14 17:51:53 +07:00
Anton Tarasov
de6b76848a IDEA-210154 Borderless UI: Top frame of IDEA window is blue
(cherry picked from commit 2dd4163bc4)
2021-07-14 17:51:53 +07:00
Anton Tarasov
5249f29b22 JBR-1365 force IDE-managed HiDPI on Linux for fractional scales
(cherry picked from commit f092ff3962)
2021-07-14 17:51:53 +07:00
Anton Tarasov
e19f4be4db JBR-1351 Borderless UI: Bold frame around IDEA window appears on non-HiDPI display
(cherry picked from commit 06d35de069)
2021-07-14 17:51:53 +07:00
Anton Tarasov
c0eb1d0ba8 JBR-1313 wrong insets for non-resizable custom-decorated frame
(cherry picked from commit 9179718cb6)
2021-07-14 17:51:52 +07:00
Anton Tarasov
1e8525ba94 JBR-1293 do not modify client bounds when custom-decorated frame is set undecorated
(cherry picked from commit cb188edaab)
2021-07-14 17:51:52 +07:00
Anton Tarasov
63e892c254 JBR-1278 allow native border and shadow for custom decoration mode
(cherry picked from commit a879ad5739)
2021-07-14 17:51:52 +07:00
Anton Tarasov
bbc3a287ab JRE-1232 forwardport: JRE-1228 support custom frame decoration
(cherry picked from commit d2820524a1)
2021-07-14 17:51:52 +07:00
Anton Tarasov
ff99281985 JRE-1162 [jdk11] support on-the-fly DPI change on linux
(cherry picked from commit c06c4c69d3)
2021-07-14 17:51:51 +07:00
Anton Tarasov
9e339dbbb8 JRE-1142 [jdk11] hidpi is not detected since Ubuntu 18.04
(cherry picked from commit be4f8c0d9d)
2021-07-14 17:51:51 +07:00
Anton Tarasov
e62006872c JRE-1111 [JDK11] java/beans/Beans/TypoInBeanDescription.java crashes at libawt_xawt.so+0x4a30d
(cherry picked from commit b89e6aed0b)
2021-07-14 17:51:51 +07:00
Anton Tarasov
844f80bac5 fix JNI_OnUnload definition
(cherry picked from the commit  3571e39071)

(cherry picked from commit 1019d8f0f2)
2021-07-14 17:51:50 +07:00
Anton Tarasov
addaa817e7 JRE-981 IM workaround does not work anymore
forward port of 2d7c29b in JetBrains/jdk8u_jdk

(cherry picked from commit f3ccc53e02)
2021-07-14 17:51:50 +07:00
Anton Tarasov
c3d3131470 JRE-938 [windows] Frame.setMaximizedBounds not hidpi-aware
(cherry picked from commit cc97899923320e1fa17f5e44975c4a0f0ba51014)
(cherry picked from commit ccfe65be7f)
2021-07-14 17:51:50 +07:00
Anton Tarasov
7bbefb58bd JRE-907 macOS: add ability to check for scaled display mode
(cherry picked from commit e496262aa1)
2021-07-14 17:51:49 +07:00
Anton Tarasov
7631a99b6c JRE-934 Diff viewer errors are not visible on HiDPI Linux
(cherry picked from commit 641a09dd52)
2021-07-14 17:51:49 +07:00
Anton Tarasov
e6a0f240ea [jdk9] HiDPI scale is not detected on some linux desktops
(cherry picked from commit 9279d80110)
2021-07-14 17:51:49 +07:00
Anton Tarasov
dccf5eca52 JRE-681 [windows] direct drawing into frame graphics may have wrong translate
(cherry picked from commit 6ea1d45fd1)
2021-07-14 17:51:49 +07:00
Anton Tarasov
18a7887f46 Read org.gnome.desktop.interface/scaling-factor
(cherry picked from commit 277357ae73)
2021-07-14 17:51:48 +07:00
Anton Tarasov
1a75b54dac 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
2021-07-14 17:51:48 +07:00
Anton Tarasov
2ed8c0f9ae Do not scale base font in HiDPI mode on Linux
(cherry picked from commit 6fb2c36529)
2021-07-14 17:51:48 +07:00
Anton Tarasov
cf35c168f8 Allow HiDPI mode on Linux
(cherry picked from commit 34234263fb)
2021-07-14 17:51:47 +07:00
Anton Tarasov
27cf8fbeb9 JRE-772 swing returns incorrect FRC when AA is off
(cherry picked from commit a161897d908aa10da6306c06452c5d6317fed2f0)
(cherry picked from commit 2bf5a7ca5c)
2021-07-14 17:51:47 +07:00
Anton Tarasov
ecdae129f6 JRE-711 Horizontal grey lines appear in every window in IntelliJ Idea
(cherry picked from commit 62000130d86e5831d81cfb24659386c6930f84cf)

(cherry picked from commit e2d1655703)
2021-07-14 17:51:47 +07:00
Anton Tarasov
e25280ba09 JRE-681 [windows] direct drawing into frame graphics may have wrong translate
(cherry picked from commit ab6dee4c1fc453ad3cb5adb69fc243e550d184ae)

(cherry picked from commit 6ea1d45fd1)
2021-07-14 17:51:47 +07:00
Anton Tarasov
8e739ea8f1 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)
2021-07-14 17:51:46 +07:00
Anton Tarasov
f5f40c7ccf JRE-616 [linux] notify when dpi correction factor is applied to fonts
(cherry picked from commit f57d41f3118bfd773c99ce32d58cfae16931be6a)
(cherry picked from commit 6246abc72f)
2021-07-14 17:51:46 +07:00
Anton Tarasov
fcadab21b6 JRE-612 [windows] icon in frame title is not dpi-aware
(cherry picked from commit dec04385177a2abb677add909d3b94f94c62a14e)

(cherry picked from commit 38466cbab0)
2021-07-14 17:51:46 +07:00
Anton Tarasov
74f544ab6b JRE-604 [fps] frame's client area is one pixel beneath frame's borders
Adopted.

(cherry picked from commit ef2870ee38)
2021-07-14 17:51:46 +07:00
Anton Tarasov
8286f1a0b6 JRE-596 [windows] popup positioning is broken with JRE-573
Adopted: moved to AwtWindow::Reshape

(cherry picked from commit c5cc28d85d)
2021-07-14 17:51:45 +07:00
Anton Tarasov
b40dc31579 JRE-577 Goland 18 displays out of memory
(cherry picked from commit 2daaf21e420d4af15d3b1bfeb3f896074bea1e61)

(cherry picked from commit 9ea2011948)
2021-07-14 17:51:45 +07:00
Anton Tarasov
f30b2bca83 JRE-573 [windows] window client area bounds mismatch
Apply only WmEraseBkgnd

(cherry picked from commit afa68f7ad6440303c6417be3f675b1c4644b6014)

(cherry picked from commit 0651b45e13)
2021-07-14 17:51:45 +07:00
Anton Tarasov
c9298c88c5 JRE-489 -Dswing.bufferPerWindow is fractional scale unfriendly
(cherry picked from commit 5e183c397b)
2021-07-14 17:51:44 +07:00
Anton Tarasov
adc99a2416 JRE-310 check for Windows8.1 when enabling ui scale
Was "don't fallback on fractional scale" in JBSDK9.

(cherry picked from commit 263d8641974d263075c93f11c4db6208754d7325)

(cherry picked from commit deeda6fada)
2021-07-14 17:51:44 +07:00
Anton Tarasov
723e423aa5 JRE-382 Three AWT-tests become hanging starting since master-875
(cherry picked from commit 7d492101db8fcbb3d285fd8e9669f74b0e0fce8f)
(cherry picked from commit b965f85c1b)
2021-07-14 17:51:44 +07:00
Anton Tarasov
950d7c4725 JRE-373 [macos] nativeCreateNSWindow deadlocks with a11y
(cherry picked from commit 72c77a992bbf1b95b82ffc08cb2f4f3bc36b3657)

(cherry picked from commit aa09fa2c85)
2021-07-14 17:51:44 +07:00
Anton Tarasov
9900fe019a IDEA-172422 Popup at the wrong place on the second monitor (new hidpi)
Adopted: moved to AwtWindow::Reshape

(cherry picked from commit 11a0911d65)
2021-07-14 17:51:43 +07:00
Anton Tarasov
acedb2b62f 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)
2021-07-14 17:51:43 +07:00
Anton Tarasov
babb384fba JRE-269 JLabel doesn't scale <code>text</code> HTML fragments.
(cherry picked from commit 9ef72b6c3a477e4225f9b98e30fa9190613520e4)
(cherry picked from commit c17bc728ee)
2021-07-14 17:51:43 +07:00
Anton Tarasov
1f5f0de751 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)
2021-07-14 17:51:43 +07:00
Anton Tarasov
f6d10cf5dc 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)
2021-07-14 17:51:42 +07:00
Anton Tarasov
ff5eb1a9ac 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)
2021-07-14 17:51:42 +07:00
Anton Tarasov
842f7296fa 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)
2021-07-14 17:51:42 +07:00
Anton Tarasov
8efc1ba172 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)
2021-07-14 17:51:42 +07:00
Anton Tarasov
afa3b96044 JRE-119 [ask if ui scale is enabled natively]
(cherry picked from commit 801f45875fd8699edcbda5896210cec191062261)
(cherry picked from commit 20edebdefa)
2021-07-14 17:51:41 +07:00
Anton Tarasov
8360c5b884 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)
2021-07-14 17:51:41 +07:00
Anton Tarasov
6658a7250b IDEA-148854: AppCode crashes randomly every 15 mins or so
(cherry picked from commit 02f9a5fbb4924ff67c8a04c15e490acfcc750003)
(cherry picked from commit b8f4b4a9ed)
2021-07-14 17:51:41 +07:00
Vitaly Provodin
63a890d6ab updated JTreg exclude list 2021-07-14 17:51:41 +07:00
Alexey Ushakov
7cbc3b072a Resolve merge compile problems on mac
(cherry picked from commit d1ed8ab118)
2021-07-14 17:51:40 +07:00
Anton Tarasov
6904200d9f IDEA-152524 can't compile fontconfig changes on Windows
(cherry picked from commit 4c8351fecf)

(cherry picked from commit 5faebc73d5)
2021-07-14 17:51:40 +07:00
Alexey Ushakov
7896275527 IDEA-57233 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

(cherry picked from commit 0456745afb)

IDEA-152816, IDEA-152454 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

(cherry picked from commit 5d704a963b)

partially rollback JBR-363 fix, to apply corresponding change from OpenJDK 12

(cherry picked from commit 3d7ac30072)
2021-07-14 17:51:40 +07:00
Vitaly Provodin
87e3ddb706 JBR-3401 enable macos-aarhc64 builds 2021-07-14 17:51:40 +07:00
Vitaly Provodin
cb2966b1b8 JBR-3305 remove the option --disable-warnings-as-errors from configure 2021-07-14 17:51:39 +07:00
Vitaly Provodin
bcad1ecd59 JBR-3398 remove the Experimental AOT and JIT Compiler (JEP 410) 2021-07-14 17:51:39 +07:00
Alexey Ushakov
49881d71d1 JBR-2807: JDK15: update modules.list to resolve jbr build failure
removed nashorn modules
2021-07-14 17:51:39 +07:00
Vitaly Provodin
8c6712d3f0 JBR-2130 remove module jdk.pack 2021-07-14 17:51:39 +07:00
Vitaly Provodin
4563419f9f 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
2021-07-14 17:51:38 +07:00
Vitaly Provodin
9f20756e4e JBR-2912 add JBR 15 builds with DCEVM 2021-07-14 17:51:38 +07:00
Vitaly Provodin
8a0f4af8b5 JBR-2864 initial commit of DCEVM patches reworked for 15 2021-07-14 17:51:38 +07:00
Vitaly Provodin
4141615700 JBR-2812 remove --with-import-modules from configure for aarch64 2021-07-14 04:50:24 +07:00
Anton Tarasov
7d8b8e4508 JBR-2812 bundle jcef in jmod format instead of modular-sdk
Build test-image with non-jcef build target
2021-07-14 04:50:01 +07:00
Vitaly Provodin
c27a6ca555 JBR-2787 fix copying jcef files into jbr/jbrsdk binaries 2021-07-14 04:49:35 +07:00
Vitaly Provodin
0735fcc76b JBR-2758 refactor building scripts to apply patches adding required modules instead of excluding
Add jogl and gluegen modules to support jcef osr mode
2021-07-14 04:49:10 +07:00
Anton Tarasov
7459a56409 JBR-2016 add jcef module and export packages to it
(cherry picked from commit cf997f71c6)
2021-07-14 04:48:41 +07:00
Vitaly Provodin
cecbb4b81a JBR-2473 modify building scripts to add dcevm clauses, add git config to docker image
(cherry picked from commit 2620c62848)
2021-07-14 04:48:16 +07:00
Vitaly Provodin
d6ee02fca5 JBR-2473 add initial set of DCEVM patches
(cherry picked from commit c0c0a96cf4)
2021-07-14 04:47:43 +07:00
Vitaly Provodin
4fefe54b4c JBR-2395 eliminate JavaFX from JBR 2021-07-14 04:47:40 +07:00
Vitaly Provodin
5adc75835e JBR-2409 fix prameters for configure 2021-07-14 04:47:13 +07:00
Vitaly Provodin
e63bc31c09 JDK14: exclude dependencies on jcef in x86, fastdebug builds 2021-07-14 04:46:47 +07:00
Vitaly Provodin
ed62a76261 JBR-2396 fix CONF names 2021-07-14 04:46:23 +07:00
Vitaly Provodin
fd4d08b584 JBR-2394 replace --disable-debug-symbols with --with-native-debug-symbols=none 2021-07-14 04:46:03 +07:00
Vitaly Provodin
e81aea6ced add exec permitions to configure 2021-07-14 04:45:36 +07:00
Vitaly Provodin
ebdd6292aa split checkout before building JBR+JFX or JBR+JCEF on two separate commands 2021-07-14 04:45:06 +07:00
Vitaly Provodin
4d091e6689 change BOOT_JDK, fix target names 2021-07-14 04:44:41 +07:00
Vitaly Provodin
f2452f01e4 JBR-2291 add vendor info into bundles 2021-07-14 04:44:21 +07:00
Vitaly Provodin
9837370712 JBR-2324 address new layout in mac jcef 80.0.4+g74f7b0c+chromium-80.0.3987.122 2021-07-14 04:43:53 +07:00
Vitaly Provodin
d0f7d81b8b JBR-2320 add jdk.attach module into JBR 2021-07-14 04:43:27 +07:00
Vitaly Provodin
53e9b1c194 JBR-2217 provide JCEF-only (no JavaFX) bundle for master/202 branches 2021-07-14 04:43:03 +07:00
Vitaly Provodin
115277c443 JBR-2212 add scripts for linux_x86, linux_aarch64, linux_x64_fastdebug, osx_fastdebug, windows_x86 2021-07-14 04:42:35 +07:00
Vitaly Provodin
5baec57d29 JBR-1643 fix intermittent fialures of Windows builds at make/Init.gmk:304
combine images and test-image into one make invocation
2021-07-14 04:41:38 +07:00
Vitaly Provodin
3dd9bf9212 JBR-2181 create two separate JBR bundles with JFX and JFX+JCEF 2021-07-14 04:41:27 +07:00
Vitaly Provodin
bdd3b0e48b JBR-2148 modify signapp&build scripts to match to the new layout 2021-07-14 04:41:00 +07:00
Vitaly Provodin
0ebf81c267 JBR-2084 modify scripts to sign Contents/MacOS/libjli.dylib as a a normal file 2021-07-14 04:40:27 +07:00
Vitaly Provodin
d6a27a168a JBR-1821 notarize JBR bundles as a standalone app 2021-07-14 04:40:03 +07:00
Vitaly Provodin
4363bc3667 JBR-2162 move building scripts from TC to JBR repo 2021-07-14 04:39:41 +07:00
Anton Tarasov
b68025ec01 JBR-2016 add jcef module and export some sun.* packages to it 2021-07-14 04:39:14 +07:00
Vitaly Provodin
0159fc4751 JBR-2014 add jdk.hotspot.agent module to jbr 2021-07-14 04:38:45 +07:00
Vitaly Provodin
cc386232d2 JBR-1286 add jdk.compiler into JBR 2021-07-14 04:38:06 +07:00
Vitaly Provodin
80b949cdb6 JBR-1199 add JBR modules list for jlink 2021-07-14 04:38:02 +07:00
Vitaly Provodin
46184bc6ca Update docker script to create jdk15 build env 2021-07-14 04:37:41 +07:00
Vitaly Provodin
3f84dac089 JBR-3045 add pressing ESC to close the dialog after test completion
(cherry picked from commit 44d8b28b0b)
2021-07-14 04:37:19 +07:00
Vitaly Provodin
2370ef5473 JBR-3040 press the button END at the beggining in order to avoid text selection
(cherry picked from commit 1c2bf33db2)
2021-07-14 04:37:18 +07:00
Vitaly.Provodin
1d71d0eb6c updated JTreg exclude list 2021-07-14 04:37:16 +07:00
Jonathan Gibbons
44691cc3b0 8268972: Add default impl for recent new Reporter.print method
Reviewed-by: prappo
2021-06-25 01:05:23 +00:00
Guoxiong Li
7ab12856c4 8267610: NPE at at jdk.compiler/com.sun.tools.javac.jvm.Code.emitop
8268748: Javac generates uncorrect bytecodes when using nested pattern variables

Reviewed-by: jlahoda, vromero
2021-06-24 23:07:43 +00:00
Daniel D. Daugherty
cfa6a995e1 8269316: ProblemList vmTestbase/vm/mlvm/mixed/stress/regression/b6969574/INDIFY_Test.java on Linux-X64 -Xcomp
Reviewed-by: ccheung
2021-06-24 20:27:56 +00:00
Daniel D. Daugherty
22d8675085 8269315: ProblemList javax/swing/JFileChooser/FileSystemView/SystemIconTest.java on Win-X64
Reviewed-by: ccheung
2021-06-24 20:27:10 +00:00
Daniel D. Daugherty
443a79aaa1 8269314: ProblemList serviceability/dcmd/gc/RunFinalizationTest.java on Win-X64 and linux-aarch64
Reviewed-by: ccheung
2021-06-24 20:26:23 +00:00
Daniel D. Daugherty
424cc50257 8269307: ProblemList java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.java on win-x64
Reviewed-by: mikael
2021-06-24 16:57:05 +00:00
Paul Sandoz
63bcd3336e 8269246: Scoped ByteBuffer vector access
Reviewed-by: mcimadamore
2021-06-24 16:02:22 +00:00
Aleksey Shipilev
3fb28d3074 8269218: GaloisCounterMode.overlapDetection misses the JDK-8263436 fix again
Reviewed-by: ascarpino
2021-06-24 06:37:21 +00:00
Yasumasa Suenaga
d3d3b221d3 8269265: ProblemList serviceability/sa/TestJmapCoreMetaspace.java with ZGC
Reviewed-by: cjplummer
2021-06-24 05:19:42 +00:00
Jatin Bhateja
0c3fc27a45 8268482: compiler/intrinsics/VectorizedMismatchTest.java failed with failed: length in range
Reviewed-by: vlivanov, neliasso
2021-06-24 03:01:01 +00:00
Jie Fu
a30141d636 8269179: Crash in TestMacroLogicVector::testSubWordBoolean: assert(_base >= VectorMask && _base <= VectorZ) failed: Not a Vector
Reviewed-by: kvn, neliasso
2021-06-24 01:17:56 +00:00
Sandhya Viswanathan
b474314342 8266854: LibraryCallKit::inline_preconditions_checkIndex modifies control flow even if the intrinsic bailed out
Reviewed-by: kvn, jbhateja, vlivanov
2021-06-23 17:25:34 +00:00
Vicente Romero
7e96318a1f 8254571: Erroneous generic type inference in a lambda expression with a checked exception
Reviewed-by: jlahoda, mcimadamore
2021-06-23 17:13:09 +00:00
Markus Grönlund
1b2147a23f 8269125: Klass enqueue element size calculation wrong when traceid value cross compress limit
Reviewed-by: jbachorik, egahlin
2021-06-23 11:49:25 +00:00
Jan Lahoda
bf70620745 8268961: Parenthesized pattern with guards does not work
8268896: Parenthesized pattern is not guarded by source level check

Reviewed-by: vromero
2021-06-23 10:16:42 +00:00
Per Liden
8128ca1381 8269066: assert(ZAddress::is_marked(addr)) failed: Should be marked
Reviewed-by: eosterlund, stefank, kbarrett, tschatzl
2021-06-23 10:14:38 +00:00
Xin Liu
1323be54d2 8269064: Dropped messages of AsyncLogWriter cause memleak
Reviewed-by: dholmes, simonis
2021-06-23 08:45:49 +00:00
Aleksey Shipilev
ce917b2359 8269148: Update minor GCC version in GitHub Actions pipeline
Reviewed-by: erikj, dholmes, xliu
2021-06-23 07:39:09 +00:00
Dean Long
ab7ff1e137 8266885: [aarch64] Crash with 'Field too big for insn' for some tests under compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/
Reviewed-by: ngasson, dnsimon, kvn
2021-06-23 01:48:19 +00:00
Andy Herrick
35e4c2720d 8268404: [TESTBUG] tools/jpackage/windows/WinInstallerIconTest.java failed "AssertionError: Failed: Check icon"
Reviewed-by: asemenyuk
2021-06-22 19:08:58 +00:00
Nils Eliasson
dc12cb78b8 8267652: c2 loop unrolling by 8 results in reading memory past array
Reviewed-by: sviswanathan, kvn, vlivanov
2021-06-22 16:21:35 +00:00
Roland Westrelin
578c55bbe6 8267399: C2: java/text/Normalizer/ConformanceTest.java test failed with assertion
Reviewed-by: kvn, neliasso
2021-06-22 15:46:44 +00:00
Jorn Vernee
8fa2520803 8268888: Upstream 8268230: Foreign Linker API & Windows user32/kernel32: String conversion seems broken
Reviewed-by: mcimadamore
2021-06-22 15:27:43 +00:00
Erik Österlund
9ec7180f1e 8268524: nmethod::post_compiled_method_load_event racingly called on zombie
Reviewed-by: kvn, neliasso, coleenp
2021-06-22 15:20:10 +00:00
Jan Lahoda
01f12fba64 8266631: StandardJavaFileManager: getJavaFileObjects() impl violates the spec
8266596: StandardJavaFileManager: default impls of setLocationFromPaths(), getJavaFileObjectsFromPaths() methods don't throw IllegalArgumentException as specified
8266591: StandardJavaFileManager::getJavaFileObjectsFromPaths() methods contain a typo in their spec
8266590: StandardJavaFileManager::setLocationFromPaths() spec contains an error

Reviewed-by: vromero, jjg
2021-06-22 07:34:30 +00:00
Vicente Romero
6b14c8a1e5 8267421: j.l.constant.DirectMethodHandleDesc.Kind.valueOf(int) implementation doesn't conform to the spec regarding REF_invokeInterface handling
Reviewed-by: mchung
2021-06-22 02:08:15 +00:00
Weijun Wang
ef4ba224c4 8268349: Provide clear run-time warnings about Security Manager deprecation
Reviewed-by: lancea, mullan, alanb
2021-06-22 02:06:59 +00:00
Jatin Bhateja
4099810b29 8268293: VectorAPI cast operation on mask and shuffle is broken
Reviewed-by: psandoz, sviswanathan
2021-06-22 01:31:48 +00:00
Weijun Wang
e2d7ec38af 8267100: [BACKOUT] JDK-8196415 Disable SHA-1 Signed JARs
Co-authored-by: Sean Mullan <mullan@openjdk.org>
Reviewed-by: hchao, xuelei
2021-06-22 00:41:45 +00:00
Roland Westrelin
d3ad8cd344 8268672: C2: assert(!loop->is_member(u_loop)) failed: can be in outer loop or out of both loops only
Reviewed-by: kvn, neliasso
2021-06-21 14:16:54 +00:00
Jorn Vernee
f25e7197fe 8268717: Upstream: 8268673: Stack walk across optimized entry frame on fresh native thread fails
Reviewed-by: mcimadamore, erikj
2021-06-21 12:06:51 +00:00
Hui Shi
22ebd1926d 8268362: [REDO] C2 crash when compile negative Arrays.copyOf length after loop
Reviewed-by: kvn, roland
2021-06-21 11:59:00 +00:00
Markus Grönlund
f8df953e61 8268702: JFR diagnostic commands lack argument descriptors when viewed using Platform MBean Server
Reviewed-by: egahlin
2021-06-21 11:16:41 +00:00
Boris Ulasevich
c294ae4fed 8267042: bug in monitor locking/unlocking on ARM32 C1 due to uninitialized BasicObjectLock::_displaced_header
Co-authored-by: Chris Cole <chris@sageembedded.com>
Reviewed-by: dsamersoff
2021-06-21 06:04:57 +00:00
Jie Fu
b358b54c4f 8269063: Build failure due to VerifyReceiverTypes was not declared after JDK-8268405
Reviewed-by: kvn
2021-06-20 22:55:49 +00:00
Erik Gahlin
b8f073be84 8268316: Typo in JFR jdk.Deserialization event
Reviewed-by: iignatyev
2021-06-18 22:05:52 +00:00
Xin Liu
b9d7337697 8268638: semaphores of AsyncLogWriter may be broken when JVM is exiting.
Backport-of: fa3b44d438
2021-06-18 21:29:55 +00:00
Chris Plummer
8caeca003e 8264775: ClhsdbFindPC still fails with java.lang.RuntimeException: 'In java stack' missing from stdout/stderr
Reviewed-by: dcubed
2021-06-18 20:27:30 +00:00
Joe Wang
7e03cf2916 8265073: XML transformation and indentation when using xml:space
Reviewed-by: naoto, lancea, iris
2021-06-18 16:03:30 +00:00
Igor Ignatyev
60389eedb3 8269025: jsig/Testjsig.java doesn't check exit code
Reviewed-by: hseigel
2021-06-18 15:25:25 +00:00
Paul Sandoz
dab00ee59b 8266518: Refactor and expand scatter/gather tests
Reviewed-by: sviswanathan
2021-06-18 14:22:16 +00:00
Erik Gahlin
f9c8c1c386 8268903: JFR: RecordingStream::dump is missing @since
Reviewed-by: mgronlun
2021-06-18 13:51:57 +00:00
Mark Sheppard
d8a0582a36 8265369: [macos-aarch64] java/net/MulticastSocket/Promiscuous.java failed with "SocketException: Cannot allocate memory"
Reviewed-by: dfuchs, michaelm, chegar
2021-06-18 10:54:23 +00:00
Igor Ignatyev
21abcc4a5a 8268564: mark hotspot serviceability/attach tests which ignore external VM flags
Reviewed-by: sspitsyn
2021-06-18 10:06:12 +00:00
Igor Ignatyev
f83c6b8a6a 8268531: mark SDTProbesGNULinuxTest as ignoring external VM flags
Reviewed-by: sspitsyn
2021-06-18 10:05:15 +00:00
Igor Ignatyev
8366c6936e 8268541: mark hotspot serviceability/sa tests which ignore external VM flags
Reviewed-by: sspitsyn
2021-06-18 10:04:25 +00:00
Igor Ignatyev
5b198986ce 8268563: mark hotspot serviceability/jvmti tests which ignore external VM flags
Reviewed-by: sspitsyn
2021-06-18 10:03:21 +00:00
Igor Ignatyev
2f65d4021f 8268599: mark hotspot runtime/sealedClasses tests which ignore external VM flags
Reviewed-by: dholmes, mseledtsov
2021-06-18 10:01:58 +00:00
Igor Ignatyev
3e1dc0a765 8268598: mark hotspot runtime/stringtable tests which ignore external VM flags
Reviewed-by: hseigel, mseledtsov
2021-06-18 10:01:03 +00:00
Igor Ignatyev
58eddc8110 8268594: runtime/handshake tests don't need WhiteBox after AOT removal
Reviewed-by: dholmes, mseledtsov
2021-06-18 10:00:21 +00:00
Igor Ignatyev
9f4f039231 8268596: mark hotspot runtime/verifier tests which ignore external VM flags
Reviewed-by: hseigel, mseledtsov
2021-06-18 09:59:34 +00:00
Igor Ignatyev
4006fe735a 8268597: mark hotspot runtime/symboltable tests which ignore external VM flags
Reviewed-by: dholmes, mseledtsov
2021-06-18 09:58:34 +00:00
Igor Ignatyev
8ccb76eb13 8268601: mark hotspot runtime/records tests which ignore external VM flags
Reviewed-by: dholmes, mseledtsov
2021-06-18 09:57:44 +00:00
Igor Ignatyev
59d84787e9 8268591: a few runtime/jni tests don't need /othervm
Reviewed-by: dholmes, mseledtsov
2021-06-18 09:56:36 +00:00
Vladimir Ivanov
7ed3634da8 8268405: Several regressions 4-17% after CHA changes
Reviewed-by: kvn, dlong
2021-06-18 07:50:22 +00:00
Rajan Halade
483f1ee211 8268678: LetsEncryptCA.java test fails as Let’s Encrypt Authority X3 is retired
Backport-of: 58e6e6d919
2021-06-18 00:59:29 +00:00
Valerie Peng
80dc262e81 8265500: Some impls of javax.crypto.Cipher.init() do not throw UnsupportedOperationExc for unsupported modes
Reviewed-by: xuelei
2021-06-17 23:27:54 +00:00
Vladimir Ivanov
9130b8a9d7 8268371: C2: assert(_gvn.type(obj)->higher_equal(tjp)) failed: cast_up is no longer needed
Reviewed-by: roland, kvn
2021-06-17 21:25:46 +00:00
Vladimir Ivanov
8545269268 8268676: assert(!ik->is_interface() && !ik->has_subklass()) failed: inconsistent klass hierarchy
Reviewed-by: kvn, roland, neliasso
2021-06-17 21:17:48 +00:00
Kim Barrett
c98d50848b 8268265: MutableSpaceUsedHelper::take_sample() hits assert(left >= right) failed: avoid overflow
Reviewed-by: tschatzl, iwalulya
2021-06-17 19:05:10 +00:00
Daniel D. Daugherty
b66001a594 8268971: ProblemList tools/jpackage/windows/WinInstallerIconTest.java on win-x64
Reviewed-by: herrick
2021-06-17 16:53:22 +00:00
Jonathan Gibbons
0011b52ee8 8264843: Javac crashes with NullPointerException when finding unencoded XML in <pre> tag
Reviewed-by: hannesw
2021-06-17 16:37:35 +00:00
Fernando Guallini
2047da7dcc 8265297: javax/net/ssl/SSLSession/TestEnabledProtocols.java failed with "RuntimeException: java.net.SocketException: Connection reset"
Reviewed-by: xuelei, rhalade
2021-06-17 16:23:56 +00:00
Paul Sandoz
091bc4a1a6 8268353: Test libsvml.so is and is not present in jdk image
Reviewed-by: sviswanathan, jiefu
2021-06-17 14:55:18 +00:00
Jonathan Gibbons
69d01b6bca 8249899: jdk/javadoc/tool/InlineTagsWithBraces.java uses @ignore w/o bug-id
8249897: jdk/javadoc/tool/LangVers.java uses @ignore w/o bug-id
8249898: jdk/javadoc/tool/6176978/T6176978.java uses @ignore w/o bug-id

Reviewed-by: hannesw
2021-06-17 14:09:11 +00:00
Patrick Concannon
7d7bdbe135 8268776: Test ADatagramSocket.java missing /othervm from @run tag
Reviewed-by: dfuchs
2021-06-17 09:35:08 +00:00
Julia Boes
344e3edf76 8268080: java/util/concurrent/forkjoin/AsyncShutdownNow.java fails with java.util.concurrent.RejectedExecutionException
Co-authored-by: Doug Lea <dl@openjdk.org>
Reviewed-by: chegar, dfuchs
2021-06-17 09:10:27 +00:00
Eric Liu
4c9aefdb61 8268739: AArch64: Build failure after JDK-8267663
Reviewed-by: aph, dholmes
2021-06-17 02:47:00 +00:00
Jie Fu
112ddb7633 8268641: [foreign] assert(allocates2(pc)) failed: not in CodeBuffer memory with ShenandoahGC
Reviewed-by: rbackman, kvn
2021-06-17 02:10:52 +00:00
David Holmes
9f7851b5f5 8260194: Update the documentation for -Xcheck:jni
Reviewed-by: coleenp, hseigel
2021-06-16 23:58:24 +00:00
Yasumasa Suenaga
ee03bc6d0a 8268863: ProblemList serviceability/sa/TestJmapCoreMetaspace.java on linux-x64 with ZGC
Reviewed-by: dcubed
2021-06-16 23:21:51 +00:00
Daniel D. Daugherty
f0f2178876 8268909: ProblemList jdk/jfr/api/consumer/streaming/TestLatestEvent.java on win-x64
Reviewed-by: mikael, dfuchs
2021-06-16 19:19:00 +00:00
Rajan Halade
54f5ffeaad 8259338: Add expiry exception for identrustdstx3 alias to VerifyCACerts.java test
Backport-of: b836b83b2a
2021-06-16 18:53:37 +00:00
Jonathan Gibbons
2c7e47e12b 8268774: Residual logging output written to STDOUT, not STDERR
Reviewed-by: prappo, hannesw
2021-06-16 18:03:48 +00:00
Daniel Fuchs
8ea0606aba 8268714: [macos-aarch64] 7 java/net/httpclient/websocket tests failed
Reviewed-by: chegar, michaelm
2021-06-16 17:24:06 +00:00
Bradford Wetmore
38dbe05e00 8268901: JDK-8268768 missed removing two files
Reviewed-by: mcimadamore
2021-06-16 16:59:02 +00:00
Christian Hagedorn
9ad19f7838 8256934: C2: assert(C->live_nodes() <= C->max_node_limit()) failed: Live Node limit exceeded limit
Reviewed-by: roland, vlivanov
2021-06-16 13:02:51 +00:00
David Holmes
19f5fab175 8268861: Disable Windows-Aarch64 build in GitHub Actions
Reviewed-by: mikael, sjohanss
2021-06-16 11:59:43 +00:00
Stefan Johansson
59de99d119 8267271: Fix gc/arguments/TestNewRatioFlag.java expectedNewSize calculation
Reviewed-by: tschatzl, kbarrett
2021-06-16 08:59:07 +00:00
Roland Westrelin
4d545a1f86 8267988: C2: assert(!addp->is_AddP() || addp->in(AddPNode::Base)->is_top() || addp->in(AddPNode::Base) == n->in(AddPNode::Base)) failed: Base pointers must match (addp 1301)
Reviewed-by: chagedorn, vlivanov, kvn
2021-06-16 07:36:07 +00:00
Daniel D. Daugherty
b18de6cf79 8268851: ProblemList jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java on linux-X64
Reviewed-by: bpb
2021-06-15 23:50:08 +00:00
Daniel D. Daugherty
10068c1bac 8268830: ProblemList 3 serviceability/dcmd/framework tests with ZGC on win-x64
Reviewed-by: kbarrett
2021-06-15 21:48:36 +00:00
Maurizio Cimadamore
788b309563 8268768: idea.sh has been updated in surprising and incompatible ways
Reviewed-by: erikj
2021-06-15 20:37:20 +00:00
Daniel D. Daugherty
9ac0609ed1 8268828: ProblemList compiler/intrinsics/VectorizedMismatchTest.java on win-x64
Reviewed-by: ccheung
2021-06-15 20:36:38 +00:00
Chris Plummer
fe7a44de63 8268723: Problem list SA core file tests on OSX when using ZGC
Reviewed-by: dholmes, dcubed, sspitsyn
2021-06-15 18:59:04 +00:00
Joe Darcy
31a055e67a 8268736: Use apiNote in AutoCloseable.close javadoc
Reviewed-by: bpb, naoto
2021-06-15 18:52:54 +00:00
Hannes Wallnöfer
76cad4b1ae 8263321: Regression 8% in javadoc-steady in 17-b11
Reviewed-by: prappo, vromero
2021-06-15 15:56:28 +00:00
Nils Eliasson
e36136fa93 8268125: ZGC: Clone oop array gets wrong acopy stub
Reviewed-by: vlivanov
2021-06-15 11:33:12 +00:00
Jan Lahoda
35d867df1f 8268663: Crash when guards contain boolean expression
Reviewed-by: vromero
2021-06-15 09:04:35 +00:00
Vladimir Kozlov
4d8b5c70df 8268347: C2: nested locks optimization may create unbalanced monitor enter/exit code
Reviewed-by: roland, vlivanov, dcubed
2021-06-14 23:41:50 +00:00
Jie Fu
4a6da99f28 8268643: SVML lib shouldn't be generated when C2 is absent
Reviewed-by: erikj
2021-06-14 23:39:41 +00:00
David Holmes
a5bf5e0e5f 8266614: update manpage for -Xlog:async
Reviewed-by: hseigel, xliu
2021-06-14 23:02:38 +00:00
Valerie Peng
f69e2d5651 8267397: AlgorithmId's OID cache is never refreshed
Reviewed-by: xuelei
2021-06-14 20:40:26 +00:00
Valerie Peng
ee3015968d 8268621: SunJCE provider may throw unexpected NPE for un-initialized AES KW/KWP Ciphers
Reviewed-by: xuelei
2021-06-14 20:34:44 +00:00
Dean Long
702e3ff054 8268366: Incorrect calculation of has_fpu_registers in C1 linear scan
Reviewed-by: kvn, chagedorn
2021-06-14 19:25:49 +00:00
Guoxiong Li
bca914b29e 8268670: yield statements doesn't allow ~ or ! unary operators in expression
Reviewed-by: vromero, jlahoda
2021-06-14 19:02:23 +00:00
Calvin Cheung
c088d093e2 8268522: InstanceKlass::can_be_verified_at_dumptime() returns opposite value
Reviewed-by: dholmes, minqi, iklam
2021-06-14 15:02:55 +00:00
Jan Lahoda
abe20c188c 8268333: javac crashes when pattern matching switch contains default case which is not last
Reviewed-by: vromero
2021-06-14 14:25:32 +00:00
Markus Grönlund
b318535452 8267579: Thread::cooked_allocated_bytes() hits assert(left >= right) failed: avoid underflow
Backport-of: c4207355d3
2021-06-14 13:11:33 +00:00
Chris Hegarty
fe48ea9d79 8268342: java/foreign/channels/TestAsyncSocketChannels.java fails with "IllegalStateException: This segment is already closed"
Reviewed-by: dfuchs
2021-06-14 08:29:49 +00:00
Daniel D. Daugherty
6171ae4552 8268630: ProblemList serviceability/jvmti/CompiledMethodLoad/Zombie.java on linux-aarch64
Reviewed-by: erikj
2021-06-11 20:24:35 +00:00
Calvin Cheung
01054e6f5a 8268470: CDS dynamic dump asserts with JFR RecordingStream
Reviewed-by: minqi, iklam
2021-06-11 16:08:18 +00:00
Weijun Wang
e39346e708 8268093: Manual Testcase: "sun/security/krb5/config/native/TestDynamicStore.java" Fails with NPE
Reviewed-by: mullan
2021-06-11 15:12:11 +00:00
Igor Ignatyev
cce8da2c60 8268602: a couple runtime/os tests don't check exit code
Reviewed-by: dholmes
2021-06-11 12:40:44 +00:00
Daniel Fuchs
da043e99b8 8268555: Update HttpClient tests that use ITestContext to jtreg 6+1
Reviewed-by: chegar
2021-06-11 08:42:14 +00:00
Igor Ignatyev
a437ce839f 8268580: runtime/memory/LargePages/TestLargePagesFlags.java should be run in driver mode
Reviewed-by: dholmes
2021-06-11 05:05:23 +00:00
Igor Ignatyev
bd9c2fa73b 8268565: runtime/records/RedefineRecord.java should be run in driver mode
Backport-of: 94d0b0f981
2021-06-11 03:12:50 +00:00
Jie Fu
e3eef3b41a 8268576: jdk/jfr/event/gc/collection/TestSystemGc.java fails
Reviewed-by: egahlin, dholmes
2021-06-11 02:47:42 +00:00
Weijun Wang
7b2e7d8bab 8268525: Some new memory leak after JDK-8248268 and JDK-8255557
Reviewed-by: valeriep, ascarpino
2021-06-10 22:18:38 +00:00
Igor Ignatyev
53b6e2c85c 8267448: Add "ulimit -a" to environment.html
Reviewed-by: cjplummer
2021-06-10 18:05:16 +00:00
Igor Ignatyev
5b8c51f59a 8268539: several serviceability/sa tests should be run in driver mode
Backport-of: 78cb6776b6
2021-06-10 17:19:37 +00:00
Igor Ignatyev
74007890bb 8268542: serviceability/logging/TestFullNames.java tests only 1st test case
Reviewed-by: sspitsyn
2021-06-10 14:43:08 +00:00
Albert Mingkun Yang
a95e64ccc1 8268443: ParallelGC Full GC should use parallel WeakProcessor
Co-authored-by: Kim Barrett <kbarrett@openjdk.org>
Reviewed-by: kbarrett, sjohanss, tschatzl
2021-06-10 14:32:46 +00:00
Igor Veresov
0a6c7d8a4b 8267424: CTW: C1 fails with "State must not be null"
Reviewed-by: kvn, roland
2021-06-10 14:18:04 +00:00
Erik Gahlin
e11f70aeb6 8003216: Add JFR event indicating explicit System.gc() call
Reviewed-by: jbachorik, mgronlun, tschatzl
2021-06-10 14:10:51 +00:00
Thomas Schatzl
2b41459e95 8267073: Race between Card Redirtying and Freeing Collection Set regions results in missing remembered set entries with G1
Reviewed-by: kbarrett, sjohanss
2021-06-10 13:28:55 +00:00
Leo Korinth
7cd5a6e7b5 8268537: (Temporary) Disable ParallelRefProcEnabled for Parallel GC
Reviewed-by: stefank, sjohanss
2021-06-10 13:19:43 +00:00
Erik Gahlin
f716711c7b 8265271: JFR: Allow use of .jfc options when starting JFR
Reviewed-by: mgronlun
2021-06-10 13:18:54 +00:00
Daniel D. Daugherty
f677163b8a 8266130: convert Thread-SMR stress tests from counter based to time based
Reviewed-by: cjplummer, dholmes
2021-06-10 13:09:26 +00:00
Igor Ignatyev
6c552a7b42 8268544: some runtime/sealedClasses tests should be run in driver mode
Reviewed-by: hseigel
2021-06-10 13:03:29 +00:00
Maurizio Cimadamore
f4b3170197 8268428: Test java/foreign/TestResourceScope.java fails: expected [M] but found [N]
Reviewed-by: dfuchs
2021-06-10 12:52:04 +00:00
Igor Ignatyev
6b6ff5360a 8268543: some runtime/verifier tests should be run in driver mode
Reviewed-by: hseigel
2021-06-10 12:29:44 +00:00
Rafael Winterhalter
09243822eb 8266766: Arrays of types that cannot be an annotation member do not yield exceptions
Reviewed-by: darcy, jfranck
2021-06-10 12:02:53 +00:00
Patrick Concannon
d43c8a74b3 8268124: Update java.lang to use switch expressions
Reviewed-by: naoto, darcy, mchung, iris, lancea, dfuchs
2021-06-10 11:12:37 +00:00
Markus Grönlund
a187fcc3ec 8238197: JFR: Rework setting and getting EventHandler
Reviewed-by: egahlin, jbachorik
2021-06-10 10:26:49 +00:00
Stefan Johansson
f770f771f8 8268390: G1 concurrent gc upgrade to full gc not working
Reviewed-by: kbarrett, tschatzl
2021-06-10 10:21:13 +00:00
Igor Ignatyev
e0c0b139d3 8268534: some serviceability/jvmti tests should be run in driver mode
Reviewed-by: sspitsyn
2021-06-10 09:52:07 +00:00
Igor Ignatyev
92f0b6d49e 8268532: several serviceability/attach tests should be run in driver mode
Reviewed-by: sspitsyn
2021-06-10 09:51:22 +00:00
Igor Ignatyev
964118f7fd 8268538: mark hotspot serviceability/logging tests which ignore external VM flags
Reviewed-by: sspitsyn
2021-06-10 09:49:23 +00:00
Igor Ignatyev
05090fc8fd 8268536: mark hotspot serviceability/dcmd tests which ignore external VM flags
Reviewed-by: sspitsyn
2021-06-10 09:48:10 +00:00
Igor Ignatyev
ae29f9cacd 8268530: resourcehogs/serviceability/jvmti/GetObjectSizeOverflow.java should be run in driver mode
Reviewed-by: sspitsyn
2021-06-10 09:42:26 +00:00
Sergey Bylokhov
ea19b0447c 8268481: Delete JAWT test files for mac
Reviewed-by: prr, pbansal
2021-06-10 09:08:43 +00:00
Markus Grönlund
f271eb8b84 8268303: Incorrect casts in JfrWriterHost::write for Ticks and Tickspan
Reviewed-by: egahlin
2021-06-10 08:58:03 +00:00
Jorn Vernee
ab01cb547d 8268339: Upstream: 8267989: Exceptions thrown during upcalls should be handled
Reviewed-by: psandoz, mcimadamore
2021-06-10 08:44:28 +00:00
Christoph Göttschkes
1fd81464ec 8268461: ARM32: vector intrinsics reaches ShouldNotReachHere
Reviewed-by: jiefu, njian
2021-06-10 08:27:54 +00:00
Matthias Baesken
78b09ab049 8268463: Windows 32bit build fails in DynamicCodeGenerated\libDynamicCodeGenerated.cpp
Reviewed-by: sspitsyn, cjplummer
2021-06-10 08:08:43 +00:00
Kim Barrett
5a666282a9 8263107: PSPromotionManager::copy_and_push_safe_barrier needs acquire memory barrier
Reviewed-by: iwalulya, tschatzl, mdoerr
2021-06-10 07:27:53 +00:00
Roland Westrelin
d4377afb99 8263303: C2 compilation fails with assert(found_sfpt) failed: no node in loop that's not input to safepoint
Reviewed-by: chagedorn, kvn
2021-06-10 06:56:04 +00:00
Serguei Spitsyn
dd1cbadc82 8268285: vmTestbase/nsk/jvmti/GetThreadState/thrstat002 failed with "Wrong thread "thr1" (...) state after SuspendThread"
Reviewed-by: lmesnik, amenkov, dholmes
2021-06-10 06:03:19 +00:00
Stefan Johansson
ece3ae3cc4 8268388: Update large pages information in Java manpage
Reviewed-by: tschatzl, lkorinth, stuefe
2021-06-10 05:32:56 +00:00
Igor Ignatyev
2623b0bf39 8268475: execute runtime/InvocationTests w/ -UseVtableBasedCHA
Reviewed-by: mseledtsov, kvn
2021-06-10 03:18:39 +00:00
Chris Plummer
f839308efa 8268407: ProblemList sun/tools/jstat/jstatLineCountsX.sh on linux-aarch64 due to JDK-8268211
Reviewed-by: amenkov
2021-06-10 02:49:58 +00:00
Dan Smith
58ba48b7b8 8268192: LambdaMetafactory with invokespecial causes VerificationError
Reviewed-by: psandoz, mchung
2021-06-09 23:57:41 +00:00
Tom Rodriguez
b41f3f8ed5 8268478: JVMCI tests failing after JDK-8268052
Reviewed-by: kvn, eosterlund
2021-06-09 23:04:45 +00:00
Yumin Qi
7ff6e7b2b1 8267954: Shared classes that failed to load should not be loaded again
Reviewed-by: iklam, ccheung
2021-06-09 21:33:28 +00:00
Phil Race
991ca14279 8267430: GraphicsDevice.setDisplayMode(REFRESH_RATE_UNKNOWN) throws IAE: Unable to set display mode!
Reviewed-by: serb
2021-06-09 20:52:43 +00:00
Kevin Walls
bf29a0115c 8228343: JCMD and attach fail to work across Linux Container boundary
Reviewed-by: ysuenaga, sspitsyn
2021-06-09 20:45:44 +00:00
Evan Whelan
408e0a9c69 8255148: Confusing log output: SSLSocket duplex close failed
Reviewed-by: mullan
2021-06-09 20:38:47 +00:00
Chris Plummer
bbd0313ac1 8263203: jconsole Online User Guide has wrong URL
Reviewed-by: mchung, dholmes
2021-06-09 19:04:11 +00:00
Chris Plummer
33d34c6b67 8263323: Debug Agent help output includes invalid URL
Reviewed-by: kevinw, alanb
2021-06-09 19:03:16 +00:00
Jorn Vernee
79010f2254 8266835: Add a --validate option to the jar tool
Reviewed-by: lancea
2021-06-09 18:15:16 +00:00
Tom Rodriguez
db45ff09ac 8268052: [JVMCI] non-default installed code must be marked as in_use
Reviewed-by: kvn, dnsimon
2021-06-09 17:34:17 +00:00
Vicente Romero
bb3d226a4e 8238213: Method resolution should stop on static error
Reviewed-by: jlahoda
2021-06-09 15:56:55 +00:00
Vladimir Kozlov
81fdeb579a 8268417: Add test from JDK-8268360
Reviewed-by: roland, chagedorn
2021-06-09 15:15:15 +00:00
Stefan Johansson
caf7f49887 8268122: Add specific gc cause for G1 full collections
Reviewed-by: tschatzl, kbarrett
2021-06-09 14:31:15 +00:00
Matthias Baesken
43e38a18b8 8268377: Windows 32bit build fails after JDK-8268174
Reviewed-by: jiefu, mdoerr
2021-06-09 14:09:41 +00:00
Stefan Johansson
5fbb62c741 8268163: Change the order of fallback full GCs in G1
Reviewed-by: kbarrett, tschatzl
2021-06-09 13:43:48 +00:00
Rafael Winterhalter
7b1e4024c0 8266598: Exception values for AnnotationTypeMismatchException are not always informative
Reviewed-by: jfranck
2021-06-09 13:21:32 +00:00
Roger Riggs
13d6180421 8264859: Implement Context-Specific Deserialization Filters
Reviewed-by: bchristi, dfuchs, chegar
2021-06-09 12:30:07 +00:00
Albert Mingkun Yang
dd34a4c28d 8268372: ZGC: dynamically select the number of concurrent GC threads used
Co-authored-by: Per Liden <pliden@openjdk.org>
Reviewed-by: pliden, eosterlund
2021-06-09 10:37:33 +00:00
Patrick Concannon
438895903b 8268056: Update java.net and java.nio to use switch expressions
Reviewed-by: dfuchs, michaelm, chegar, iris, alanb
2021-06-09 10:13:25 +00:00
Eric Liu
9cfd560bb1 8267663: [vector] Add unsigned comparison operators on AArch64
Reviewed-by: aph
2021-06-09 09:30:09 +00:00
Roland Westrelin
4413142eca 8268017: C2: assert(phi_type->isa_int() || phi_type->isa_ptr() || phi_type->isa_long()) failed: bad phi type
Reviewed-by: vlivanov, chagedorn, whuang
2021-06-09 07:58:17 +00:00
Robbin Ehn
2bfd708e92 8266557: assert(SafepointMechanism::local_poll_armed(_handshakee)) failed: Must be
Reviewed-by: pchilanomate, dcubed
2021-06-09 07:21:37 +00:00
Athijegannathan Sundararajan
4d1cf51b1d 8240349: jlink should not leave partial image output directory on failure
Reviewed-by: jlaskey, alanb
2021-06-09 06:35:20 +00:00
Serguei Spitsyn
07108c9162 8268241: deprecate JVM TI Heap functions 1.0
Reviewed-by: alanb, iris, kevinw
2021-06-09 05:38:39 +00:00
Thomas Stuefe
c9dbc4f034 8266891: Provide a switch to force the class space to a specific location
Reviewed-by: iklam, coleenp
2021-06-09 04:05:46 +00:00
Jie Fu
2cc1977a96 8268424: JFR tests fail due to GC cause 'G1 Preventive Collection' not in the valid causes after JDK-8257774
Reviewed-by: dholmes
2021-06-09 02:22:35 +00:00
Jack Hartstein
58a59e3dcb 8240997: Remove more "hack" word in security codes
Reviewed-by: xuelei
2021-06-09 02:12:25 +00:00
Joe Wang
1c3932f3d5 8264766: ClassCastException during template compilation (Variable cannot be cast to Param)
Reviewed-by: naoto
2021-06-09 00:34:16 +00:00
Sergey Bylokhov
f6f82c3168 8266421: Deadlock in Sound System
Reviewed-by: prr, azvegint
2021-06-09 00:14:40 +00:00
Alexey Semenyuk
bcaa2cb154 8264144: Add handling of "--about-url" CLI parameter for RPM/DEB packages
Reviewed-by: herrick, almatvee
2021-06-08 22:21:40 +00:00
Jiangli Zhou
ae16052951 8268088: Clarify Method::clear_jmethod_ids() related comments in ClassLoaderData::~ClassLoaderData()
Reviewed-by: iklam
2021-06-08 20:35:40 +00:00
Zhengyu Gu
5ad4a91c3d 8268127: Shenandoah: Heap size may be too small for region to align to large page size
Reviewed-by: rkennke, shade
2021-06-08 20:31:22 +00:00
Joe Darcy
7a37816548 8264866: Remove unneeded WorkArounds.isAutomaticModule
Reviewed-by: jjg
2021-06-08 20:21:26 +00:00
Andy Herrick
51e8201eb5 8267764: jpackage cannot handle window screensaver files when EXE renamed as SCR
Reviewed-by: asemenyuk, almatvee
2021-06-08 19:46:40 +00:00
Hannes Wallnöfer
f9b593d668 8266748: Move modifiers code to Signatures.java
Reviewed-by: jjg
2021-06-08 19:21:21 +00:00
Hannes Wallnöfer
4dd0e7e78a 8259806: Clean up terminology on the "All Classes" page
Reviewed-by: jjg
2021-06-08 18:49:31 +00:00
Hannes Wallnöfer
dc6c96bbaf 8263468: New page for "recent" new API
Reviewed-by: erikj, jjg
2021-06-08 18:22:16 +00:00
Jonathan Gibbons
fafc4d9764 8268352: Rename javadoc Messager class to JavadocLog
Reviewed-by: prappo
2021-06-08 17:23:17 +00:00
Alex Menkov
b568e87947 8237388: serviceability/dcmd/framework/VMVersionTest.java fails with connection refused error.
Reviewed-by: cjplummer, sspitsyn
2021-06-08 17:05:22 +00:00
Ioi Lam
c21cc932f0 8248877: Document API contract for MetaspaceObj subtypes
Reviewed-by: coleenp, minqi
2021-06-08 16:47:38 +00:00
Nikita Gubarkov
159cb6facc 8268083: JDK-8267706 breaks bin/idea.sh on a Mac
Reviewed-by: erikj
2021-06-08 14:35:58 +00:00
Jorn Vernee
8158b82269 8268327: Upstream: 8268169: The system lookup can not find stdio functions such as printf on Windows 10
Reviewed-by: erikj, sundar
2021-06-08 14:20:31 +00:00
Maurizio Cimadamore
6843576c95 8268227: java/foreign/TestUpcall.java still times out
Reviewed-by: dcubed
2021-06-08 14:02:28 +00:00
Joel Borggrén-Franck
2717fcb134 8232948: javac -h should mangle the overload argument signature
Reviewed-by: jjg
2021-06-08 10:51:19 +00:00
Ajit Ghaisas
89da2021ee 8266159: macOS ARM + Metal pipeline shows artifacts on Swing Menu with Java L&F
Reviewed-by: jdv, prr
2021-06-08 09:45:35 +00:00
Michael McMahon
61ab4b9d18 8267564: JDK-8252971 causes SPECjbb2015 socket exceptions on Windows when MKS is installed
Reviewed-by: alanb
2021-06-08 07:58:54 +00:00
Matthias Baesken
00c88f79b3 8266918: merge_stack in check_code.c add NULL check
Reviewed-by: rschmelter, clanger
2021-06-08 07:22:03 +00:00
Xin Liu
81054789a3 8268165: AsyncLogging will crash if rotate() fails
LogFileOutput::rotate() may leave _stream NULL because os::fopen() may return NULL due to space or inode limitations.  AsyncLogWriter::write() calls LogFileOutput::write_blocking() without null check.  Null check is added to prevent from crashing.

Reviewed-by: ysuenaga
2021-06-08 07:20:13 +00:00
Koichi Sakata
fd91b2aa57 8265440: IGV: make node selection more visible
Reviewed-by: chagedorn, neliasso
2021-06-08 07:14:42 +00:00
Aditya Mandaleeka
81bad59042 8257774: G1: Trigger collect when free region count drops below threshold to prevent evacuation failures
Reviewed-by: sjohanss, tschatzl
2021-06-08 06:55:20 +00:00
David Holmes
341f676066 8267908: linux: thread_native_entry can scribble on stack frame
Reviewed-by: ysuenaga
2021-06-08 04:53:02 +00:00
Thomas Stuefe
f40c89e8e9 8267209: Child threads should defer logging to after child-parent handshake
Reviewed-by: dholmes, coleenp
2021-06-08 03:57:38 +00:00
Alan Hayward
ae986bc8df 8266749: AArch64: Backtracing broken on PAC enabled systems
Reviewed-by: gziemski, aph
2021-06-08 02:24:43 +00:00
Jonathan Gibbons
36c4e5f264 8267187: Remove deprecated constructor for Log
Reviewed-by: darcy, iris
2021-06-08 02:16:56 +00:00
Dan Smith
fc08af58cb 8174222: LambdaMetafactory: validate inputs and improve documentation
Reviewed-by: mchung
2021-06-07 23:21:24 +00:00
Kevin Walls
5e557d8650 8266967: debug.cpp utility find() should print Java Object fields.
Reviewed-by: sspitsyn, coleenp
2021-06-07 22:26:13 +00:00
Anthony Scarpino
c7c77fd32b 8255557: Decouple GCM from CipherCore
Reviewed-by: valeriep
2021-06-07 22:22:28 +00:00
Liam Miller-Cushon
e546ae27ff 8268296: ScopedMemoryAccess build error with readonly filesystems
Reviewed-by: erikj
2021-06-07 17:58:57 +00:00
Roger Riggs
81600dce24 8191441: (Process) add Readers and Writer access to java.lang.Process streams
Reviewed-by: naoto, alanb
2021-06-07 17:41:09 +00:00
Alexey Ushakov
7e55569ede 8261549: Adjust memory size in MTLTexurePool.m
Reviewed-by: prr
2021-06-07 17:36:52 +00:00
Joe Darcy
e663ba961f 8268299: jvms tag produces incorrect URL
Reviewed-by: iris, erikj, jjg
2021-06-07 17:03:50 +00:00
Christian Hagedorn
3396b69fc9 8254129: IR Test Framework to support regex-based matching on the IR in JTreg compiler tests
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Co-authored-by: Tobias Hartmann <thartmann@openjdk.org>
Reviewed-by: iignatyev
2021-06-07 14:11:50 +00:00
Thomas Schatzl
270ec975b6 8268331: Fix crash in humongous object eager reclaim logging
Reviewed-by: sjohanss
2021-06-07 14:09:22 +00:00
Zhengyu Gu
ea8274fbf0 8267875: Shenandoah: Duplicated code in ShenandoahBarrierSetC2::ideal_node()
Reviewed-by: rkennke, roland
2021-06-07 14:00:19 +00:00
Weijun Wang
a91f971266 8268267: Remove -Djavatest.security.noSecurityManager=true from jtreg runs
Reviewed-by: lancea, jjg, erikj
2021-06-07 13:58:49 +00:00
Vicente Romero
4f9d6b7d68 8267465: remove superfluous preview related annotations and test options
Reviewed-by: jlahoda
2021-06-07 13:57:15 +00:00
Hamlin Li
728a411a54 8268018: remove dead code in commitLimitter
Reviewed-by: zgu
2021-06-07 13:41:44 +00:00
Thomas Schatzl
15715a8984 8267924: Misleading G1 eager reclaim detail logging
Reviewed-by: ayang, sjohanss
2021-06-07 13:18:27 +00:00
Jan Lahoda
e4d045402f 8267832: SimpleVisitors and Scanners in jdk.compiler should use @implSpec
Reviewed-by: prappo, darcy
2021-06-07 11:13:13 +00:00
David Holmes
8130be561b 8268318: Missing comma in copyright header
Reviewed-by: stefank
2021-06-07 10:23:12 +00:00
Xin Liu
b09d8b9800 8267926: AsyncLogGtest.java fails on assert with: decorator was not part of the decorator set specified at creation.
Reviewed-by: dholmes, phh
2021-06-07 10:19:27 +00:00
Erik Österlund
5ebd4199cc 8267972: Inline cache cleaning is not monotonic
Reviewed-by: vlivanov, kvn
2021-06-07 09:44:22 +00:00
Hannes Wallnöfer
6d1f3ac749 8149138: [javadoc] Fix SerialFormBuilder eliminate String bashing
Reviewed-by: jjg
2021-06-07 08:43:27 +00:00
Albert Mingkun Yang
58bdabcd40 8268164: Adopt cast notation for WorkerThread conversions
Reviewed-by: stefank, dholmes
2021-06-07 08:20:39 +00:00
Leo Korinth
9fc914b963 8204686: Dynamic parallel reference processing support for Parallel GC
Reviewed-by: ayang, tschatzl, kbarrett
2021-06-07 08:02:26 +00:00
Jan Lahoda
908aca29ca 8262891: Compiler implementation for Pattern Matching for switch (Preview)
Co-authored-by: Brian Goetz <briangoetz@openjdk.org>
Co-authored-by: Mandy Chung <mchung@openjdk.org>
Co-authored-by: Jan Lahoda <jlahoda@openjdk.org>
Reviewed-by: mcimadamore, forax, godin, psandoz, mchung
2021-06-07 07:01:30 +00:00
Hui Shi
3e48244084 8268301: Closed test: compiler/c2/6371167/Test.java fails after JDK-8267904
Reviewed-by: kvn, dlong
2021-06-07 06:26:47 +00:00
Stefan Johansson
204b4929f7 8267703: runtime/cds/appcds/cacheObject/HeapFragmentationTest.java crashed with OutOfMemory
Reviewed-by: tschatzl, kbarrett
2021-06-07 06:22:11 +00:00
Xin Liu
2aeeeb40a0 8268279: gc/shenandoah/compiler/TestLinkToNativeRBP.java fails after LibraryLookup is gone
Reviewed-by: zgu, jiefu
2021-06-07 06:12:04 +00:00
Hui Shi
b05fa02e74 8267904: C2 crash when compile negative Arrays.copyOf length after loop
Reviewed-by: roland, kvn
2021-06-07 01:34:22 +00:00
Hamlin Li
95ddf7d6ad 8267839: trivial mem leak in numa
Co-authored-by: Shoubing Ma <mashoubing1@huawei.com>
Reviewed-by: tschatzl, sjohanss
2021-06-07 01:19:32 +00:00
Jie Fu
52d88ee1d1 8268292: compiler/intrinsics/VectorizedMismatchTest.java fails with release VMs
Reviewed-by: dcubed
2021-06-06 13:53:29 +00:00
Tejpal Rebari
042f0bdb35 8256465: [macos] Java frame and dialog presented full screen freeze application
Reviewed-by: kcr, serb, prr
2021-06-06 04:08:05 +00:00
Jatin Bhateja
8abf36c648 8268289: build failure due to missing signed flag in x86 evcmpb instruction
Reviewed-by: vlivanov, jiefu
2021-06-06 02:31:18 +00:00
Jatin Bhateja
b05c40ca3b 8266951: Partial in-lining for vectorized mismatch operation using AVX512 masked instructions
Reviewed-by: psandoz, vlivanov
2021-06-05 18:07:14 +00:00
Daniel D. Daugherty
f768fbf7a9 8268286: ProblemList serviceability/sa/TestJmapCore.java on linux-aarch64 with ZGC
Reviewed-by: rriggs
2021-06-05 15:50:18 +00:00
Sergey Bylokhov
b2e9eb9e47 8268087: Update documentation of the JPasswordField
Reviewed-by: trebari, azvegint, prr
2021-06-05 15:41:04 +00:00
Ioi Lam
91f9adc5f5 8268139: CDS ArchiveBuilder may reference unloaded classes
Reviewed-by: coleenp, ccheung
2021-06-05 15:22:38 +00:00
Andrey Turbanov
36bff6f945 8066694: Strange code in JavacParser.java
Reviewed-by: vromero, iris
2021-06-05 14:44:25 +00:00
Stephen Colebourne
6c838c568c 8266846: Add java.time.InstantSource
Reviewed-by: rriggs, naoto, darcy
2021-06-05 13:26:52 +00:00
Sibabrata Sahoo
7f55dc1576 8179880: Refactor javax/security shell tests to plain java tests
Reviewed-by: weijun
2021-06-05 07:56:14 +00:00
Yasumasa Suenaga
7e41ca3da8 8266957: SA has not followed JDK-8220587 and JDK-8224965
Reviewed-by: cjplummer, sspitsyn
2021-06-05 00:07:04 +00:00
Jonathan Gibbons
6ff978ac16 8267204: Expose access to underlying streams in Reporter
Reviewed-by: prappo
2021-06-05 00:05:17 +00:00
Nick Gasson
76b54a1995 8263512: [macos_aarch64] issues with calling va_args functions from invoke_native
Reviewed-by: jvernee
2021-06-04 23:55:12 +00:00
Yi Yang
4e6748c543 8267687: ModXNode::Ideal optimization is better than Parse::do_irem
Reviewed-by: neliasso, kvn
2021-06-04 23:29:35 +00:00
Vladimir Kozlov
48dc72b74d 8268272: Remove JDK-8264874 changes because Graal was removed.
Reviewed-by: erikj
2021-06-04 20:10:59 +00:00
Sandhya Viswanathan
20b631278c 8268151: Vector API toShuffle optimization
Reviewed-by: psandoz, vlivanov
2021-06-04 18:16:16 +00:00
Leonid Mesnik
64ec8b3e5c 8212155: Race condition when posting dynamic_code_generated event leads to JVM crash
Reviewed-by: sspitsyn, dcubed
2021-06-04 17:22:01 +00:00
Stuart Marks
cd0678fcf6 8199318: add idempotent copy operation for Map.Entry
Reviewed-by: alanb, psandoz, dfuchs
2021-06-04 17:13:05 +00:00
Joe Wang
b27599b3ec 8268222: javax/xml/jaxp/unittest/transform/Bug6216226Test.java failed, cannot delete file
Reviewed-by: dfuchs
2021-06-04 16:31:59 +00:00
Maurizio Cimadamore
59a539fef1 8268129: LibraryLookup::ofDefault leaks symbols from loaded libraries
Reviewed-by: jvernee, psandoz
2021-06-04 12:53:17 +00:00
Jan Lahoda
40c9e258b5 8265444: Javadocs: jdk.jshell - small typo
Reviewed-by: sundar
2021-06-04 12:35:36 +00:00
Vladimir Ivanov
069f180a85 8268174: Move x86-specific stub declarations into stubRoutines_x86.hpp
Reviewed-by: kvn
2021-06-04 10:55:21 +00:00
Pankaj Bansal
3025f05970 8264305: Create implementation for native accessibility peer for Statusbar java role
Reviewed-by: kizune
2021-06-04 05:18:33 +00:00
Mikael Vidstedt
e2d5ff9d45 8268214: Use system zlib and disable dtrace when building linux-aarch64 at Oracle
Reviewed-by: dholmes
2021-06-04 04:07:06 +00:00
Mikael Vidstedt
1b4378e58e 8268142: Switch to jdk-17+24 for macosx-aarch64 at Oracle
Reviewed-by: erikj
2021-06-04 03:14:35 +00:00
Igor Ignatyev
edca245d5a 8267917: mark hotspot containers tests which ignore external VM flags
Reviewed-by: mseledtsov, hseigel
2021-06-04 02:21:53 +00:00
Joe Darcy
05df1727b5 8268224: Cleanup references to "strictfp" in core lib comments
Reviewed-by: jrose
2021-06-04 02:04:04 +00:00
Calvin Cheung
516e60a7ee 8268095: CDS MethodHandle tests should add -XX:-VerifyDependencies
Reviewed-by: iklam, minqi
2021-06-03 22:56:57 +00:00
Paul Sandoz
c1f3094f81 8267939: Clarify the specification of iterator and spliterator forEachRemaining
Reviewed-by: smarks
2021-06-03 22:03:35 +00:00
Joe Wang
460ce5553c 8266019: StreamResult(File) writes to incorrect file path if # is part of the file path
Reviewed-by: dfuchs
2021-06-03 21:26:32 +00:00
Mandy Chung
b95586559c 8267995: Add reference to JVMS class file format in Lookup::defineHiddenClass
Reviewed-by: darcy
2021-06-03 20:43:12 +00:00
Sandhya Viswanathan
9f05c411e6 8265783: Create a separate library for x86 Intel SVML assembly intrinsics
Co-authored-by: Sandhya Viswanathan <sviswanathan@openjdk.org>
Co-authored-by: Rahul Kandu <rkandu@openjdk.org>
Co-authored-by: Razvan Lupusoru <rlupusoru@openjdk.org>
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Co-authored-by: Jie Fu <jiefu@openjdk.org>
Co-authored-by: Ahmet Akkas <ahmet.akkas@intel.com>
Co-authored-by: Marius Cornea <marius.cornea@intel.com>
Reviewed-by: erikj, kvn, psandoz
2021-06-03 20:03:36 +00:00
Jonathan Gibbons
e27c4d463d 8268185: Update GitHub Actions for jtreg 6
Reviewed-by: erikj
2021-06-03 19:39:28 +00:00
Daniel D. Daugherty
68ac871b62 8268189: ProblemList compiler/intrinsics/bmi/verifycode/BzhiTestI2L.java in -Xcomp mode
Reviewed-by: mikael
2021-06-03 19:32:59 +00:00
Andy Herrick
af3df6300e 8267598: jpackage removes system libraries from java.library.path
Reviewed-by: almatvee, asemenyuk
2021-06-03 19:02:11 +00:00
Maurizio Cimadamore
52d8215a1e 8268131: 2 java/foreign tests timed out
Reviewed-by: dcubed
2021-06-03 16:19:35 +00:00
Raffaello Giulietti
5405f983db 8268077: java.util.List missing from Collections Framework Overview
Reviewed-by: smarks
2021-06-03 16:08:33 +00:00
Fernando Guallini
3aa7062c3d 8262409: sun/security/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions. SSL test failures caused by java failed with "Server reported the wrong exception"
Reviewed-by: rhalade, xuelei
2021-06-03 16:06:31 +00:00
Paul Sandoz
5982cfc856 8266317: Vector API enhancements
Co-authored-by: Paul Sandoz <psandoz@openjdk.org>
Co-authored-by: Sandhya Viswanathan <sviswanathan@openjdk.org>
Reviewed-by: jbhateja, vlivanov
2021-06-03 15:16:58 +00:00
Sean Coffey
eb385c0de2 8268167: MultipleLogins.java failure on macosx-aarch64
Reviewed-by: weijun
2021-06-03 13:47:47 +00:00
Jie Fu
fbaebd4243 8268014: Build failure on SUSE Linux Enterprise Server 11.4 (s390x) due to 'SYS_get_mempolicy' was not declared
Reviewed-by: dholmes, mdoerr, mbaesken
2021-06-03 12:55:21 +00:00
Mahendra Chhipa
338dae4d36 8268133: Update java/net/Authenticator tests to eliminate dependency on sun.net.www.MessageHeader and some other internal APIs
Reviewed-by: dfuchs
2021-06-03 12:51:48 +00:00
Maurizio Cimadamore
29ab16284a 8266257: Fix foreign linker build issues for ppc and s390
Reviewed-by: jvernee, vlivanov
2021-06-03 09:41:21 +00:00
Stefan Karlsson
c8f4c02bf0 8268118: Rename bytes_os_cpu.inline.hpp files to bytes_os_cpu.hpp
Reviewed-by: coleenp, dholmes
2021-06-03 09:04:53 +00:00
Stefan Karlsson
1296a6c425 8268119: Rename copy_os_cpu.inline.hpp files to copy_os_cpu.hpp
Reviewed-by: kbarrett, coleenp
2021-06-03 09:03:27 +00:00
Daniel Fuchs
178343750f 8264975: java/net/DatagramSocket/DatagramSocketMulticasting.java fails infrequently
Reviewed-by: alanb, chegar
2021-06-03 08:58:41 +00:00
Albert Mingkun Yang
a52a08d20b 8267916: Adopt cast notation for CompilerThread conversions
Reviewed-by: kbarrett, iklam, dholmes
2021-06-03 08:21:39 +00:00
Joel Borggrén-Franck
9bf347bc1f 8226362: langtools ProblemList file contains more than 1 entry for a test
Reviewed-by: jlahoda
2021-06-03 07:51:30 +00:00
Sean Coffey
bdeaeb47d0 8240256: Better resource cleaning for SunPKCS11 Provider
Reviewed-by: valeriep
2021-06-03 06:45:06 +00:00
Leonid Mesnik
06f87cf441 8266337: ThreadTimesClosure doesn't handle exceptions properly
Reviewed-by: dholmes, sspitsyn
2021-06-03 04:12:40 +00:00
Jonathan Gibbons
ef01e47858 8268150: tier2: test/jdk/tools/jpackage/junit/junit.java needs updating for jtreg 6
Reviewed-by: almatvee
2021-06-03 01:09:49 +00:00
Jonathan Gibbons
e9f3e325c2 8259530: Generated docs contain MIT/GPL-licenced works without reproducing the licence
Reviewed-by: prappo
2021-06-02 22:45:58 +00:00
Jonathan Gibbons
d46a2c8ecf 8268147: need to update reference to testng module for jtreg6
Reviewed-by: dholmes, psandoz, naoto
2021-06-02 22:33:16 +00:00
Daniel D. Daugherty
76fdf2c89b 8268146: fix for JDK-8266254 fails validate-source
Reviewed-by: psandoz, wetmore
2021-06-02 21:50:43 +00:00
Valerie Peng
136badb1f7 8248268: Support KWP in addition to KW
Reviewed-by: xuelei
2021-06-02 21:31:57 +00:00
Jonathan Gibbons
3482cb87fd 8266254: Update to use jtreg 6
8265020: tests must be updated for new TestNG module name

Reviewed-by: lancea, erikj, mchung, naoto, alanb, iris, chegar
2021-06-02 21:20:12 +00:00
Erik Gahlin
375f8f3bff 8268138: docs build error after JDK-8263332 integration
Reviewed-by: mgronlun
2021-06-02 19:43:36 +00:00
Ioi Lam
a8835b9c08 8267879: ClassLoaderMetaspace destructor asserts on !_frozen
Reviewed-by: dholmes, coleenp
2021-06-02 19:20:10 +00:00
Ioi Lam
ecf6112a21 8267958: [TESTBUG] cds DynamicLoaderConstraintsTest.java timed out
Reviewed-by: ccheung, jiefu
2021-06-02 19:05:42 +00:00
Erik Gahlin
1ae934e09d 8263332: JFR: Dump recording from a recording stream
Reviewed-by: mgronlun
2021-06-02 17:25:42 +00:00
Guoxiong Li
b7ac705dd6 8263642: javac emits duplicate checkcast for first bound of intersection type in cast
Reviewed-by: vromero
2021-06-02 17:17:31 +00:00
Jonathan Gibbons
e1462e79df 8267176: StandardDoclet should provide access to Reporter and Locale
Reviewed-by: hannesw
2021-06-02 16:56:45 +00:00
Brian Burkhalter
56b65e4a8d 8267569: java.io.File.equals contains misleading Javadoc
Reviewed-by: alanb, dfuchs, bchristi, naoto
2021-06-02 16:33:21 +00:00
Weijun Wang
508cec7535 8267521: Post JEP 411 refactoring: maximum covering > 50K
Reviewed-by: dfuchs, prr
2021-06-02 15:48:50 +00:00
Weijun Wang
40d23a0c0b 8267543: Post JEP 411 refactoring: security
Reviewed-by: mullan
2021-06-02 15:47:57 +00:00
Stefan Karlsson
476775808f 8267920: Create separate Events buffer for VMOperations
Reviewed-by: coleenp, dholmes, tschatzl
2021-06-02 13:33:04 +00:00
David Holmes
dc19baca33 8268094: Some vmTestbase/nsk tests fail after ACC_STRICT/strictfp changes
Reviewed-by: vlivanov, rehn
2021-06-02 12:23:56 +00:00
Severin Gehwolf
2963c9e677 8268103: JNI functions incorrectly return a double after JDK-8265836
Reviewed-by: dholmes
2021-06-02 12:18:30 +00:00
Weijun Wang
6765f90250 8266459: Implement JEP 411: Deprecate the Security Manager for Removal
Co-authored-by: Sean Mullan <mullan@openjdk.org>
Co-authored-by: Lance Andersen <lancea@openjdk.org>
Co-authored-by: Weijun Wang <weijun@openjdk.org>
Reviewed-by: erikj, darcy, chegar, naoto, joehw, alanb, mchung, kcr, prr, lancea
2021-06-02 11:57:31 +00:00
Jan Lahoda
19450b9951 8266281: Assign Symbols to the package selector expression
Reviewed-by: vromero
2021-06-02 11:16:10 +00:00
Maurizio Cimadamore
a223189b06 8264774: Implementation of Foreign Function and Memory API (Incubator)
Co-authored-by: Paul Sandoz <psandoz@openjdk.org>
Co-authored-by: Jorn Vernee <jvernee@openjdk.org>
Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Co-authored-by: Athijegannathan Sundararajan <sundar@openjdk.org>
Co-authored-by: Chris Hegarty <chegar@openjdk.org>
Reviewed-by: psandoz, chegar, mchung, vlivanov
2021-06-02 10:53:06 +00:00
David Holmes
71425ddfb4 8267118: OutOfMemoryError cannot be caught as a Throwable
Co-authored-by: Ioi Lam <iklam@openjdk.org>
Reviewed-by: coleenp
2021-06-02 10:42:17 +00:00
Jan Lahoda
de6472c441 8267459: Pasting Unicode characters into JShell does not work.
Reviewed-by: vromero
2021-06-02 09:55:06 +00:00
Jan Lahoda
9247630a0d 8265270: Type.getEnclosingType() may fail with CompletionFailure
Reviewed-by: vromero
2021-06-02 09:53:31 +00:00
Thomas Schatzl
2d494bffff 8267836: Separate eager reclaim remembered set threshold from G1RSetSparseRegionEntries
Reviewed-by: sjohanss, lkorinth
2021-06-02 09:31:59 +00:00
Nils Eliasson
bba3728e23 8267726: ZGC: array_copy_requires_gc_barriers too strict
Reviewed-by: thartmann, vlivanov
2021-06-02 09:02:37 +00:00
Nils Eliasson
d47a77d2d5 8267773: PhaseStringOpts::int_stringSize doesn't handle min_jint correctly
Co-authored-by: Adam Farley <afarley@openjdk.org>
Co-authored-by: Aleksey Shipilev <shade@openjdk.org>
Co-authored-by: Nils Eliasson <neliasso@openjdk.org>
Reviewed-by: roland
2021-06-02 07:57:08 +00:00
Xiaohong Gong
496fb90b3a 8267969: Add vectorized implementation for VectorMask.eq()
Reviewed-by: psandoz, neliasso
2021-06-02 07:50:46 +00:00
Koichi Sakata
1cea6cac12 8260360: IGV: Short name of combined nodes is hidden by background color
Reviewed-by: neliasso, chagedorn
2021-06-02 07:13:00 +00:00
Joe Wang
7530c00b33 8266559: XPathEvaluationResult.XPathResultType.NODESET maps to incorrect type
Reviewed-by: lancea, naoto
2021-06-02 04:57:30 +00:00
Guoxiong Li
b98e52a491 8267570: The comment of the class JavacParser is not appropriate
Reviewed-by: jjg
2021-06-02 04:25:46 +00:00
Gavin Bierman
379376f078 8265130: Make ConstantDesc class hierarchy sealed
Reviewed-by: mchung, jvernee, vromero
2021-06-02 00:49:49 +00:00
Joe Darcy
00c7aeee00 8267861: Update SourceVersion with new language features in 16 and 17
Reviewed-by: jjg
2021-06-02 00:33:17 +00:00
David Holmes
cb7128b58e 8266950: Remove vestigial support for non-strict floating-point execution
Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Reviewed-by: vlivanov, kvn
2021-06-01 22:04:02 +00:00
Joe Darcy
8624cb53cd 8266530: HotSpot changes for JEP 306
Reviewed-by: dholmes, hseigel
2021-06-01 22:00:48 +00:00
Joe Darcy
0ae4ceb413 8244146: javac changes for JEP 306
8266399: Core libs update for JEP 306

Reviewed-by: sadayapalam, bpb, naoto
2021-06-01 21:59:39 +00:00
Yi Yang
c2c0208dfd 8267089: Use typedef KVHashtable for ID2KlassTable
Reviewed-by: iklam, coleenp
2021-06-01 19:56:57 +00:00
Fernando Guallini
ccfcd92667 8180571: Refactor sun/security/pkcs11 shell tests to plain java tests and fix failures
Reviewed-by: xuelei
2021-06-01 19:09:42 +00:00
Daniel D. Daugherty
40e4171f56 8264800: cleanup Threads_lock comments in JVM/TI function headers
Reviewed-by: coleenp, rehn, dholmes, sspitsyn
2021-06-01 18:51:40 +00:00
Jiangli Zhou
b17b11eb17 8267562: G1: Missing BOT in Open Archive regions causes long pauses
Reviewed-by: tschatzl, mli
2021-06-01 18:17:45 +00:00
Leonid Mesnik
2b3383557f 8265148: StackWatermarkSet being updated during AsyncGetCallTrace
Reviewed-by: stefank, eosterlund
2021-06-01 18:06:19 +00:00
Maxim Kartashev
64ba2f0e8f 8265431: Add -fno-delete-null-pointer-checks to clang builds
Reviewed-by: erikj
2021-06-01 17:56:44 +00:00
Daniel Fuchs
d4b4caecad 8268023: Improve diagnostic for HandshakeFailureTest
Reviewed-by: chegar
2021-06-01 17:55:36 +00:00
Daniel Fuchs
9d8ad2ed62 8267990: Revisit some uses of synchronized in the HttpClient API
Reviewed-by: chegar
2021-06-01 17:10:38 +00:00
Daniel D. Daugherty
36dc268abe 8268036: ProblemList gtest/AsyncLogGtest.java
8268041: ProblemList runtime/cds/appcds/dynamicArchive/TestDynamicDumpAtOom.java on linux-x64 in -Xcomp

Reviewed-by: ccheung
2021-06-01 15:30:39 +00:00
Vladimir Ivanov
74b70a5677 8036580: CHA: improve default method support
Reviewed-by: thartmann, neliasso
2021-06-01 12:14:48 +00:00
Vladimir Ivanov
20479c3de9 8065760: CHA: Improve abstract method support
Reviewed-by: neliasso, thartmann
2021-06-01 12:06:57 +00:00
Vladimir Ivanov
68f3b3acce 8267807: C2: Downcast receiver to target holder during inlining
Reviewed-by: roland, thartmann
2021-06-01 12:03:34 +00:00
Thomas Schatzl
1c7c0e1de0 8267937: Wrong indentation in G1 gc+phases log for free cset subphases
Reviewed-by: ayang, sjohanss
2021-06-01 12:02:25 +00:00
Vladimir Ivanov
ffd28c4a86 8267947: CI: Preserve consistency between has_subklass() and is_subclass_of()
Reviewed-by: thartmann, roland
2021-06-01 11:59:28 +00:00
Vladimir Ivanov
229a6e2f36 8267095: Miscellaneous cleanups in vm.runtime.defmeth tests
Reviewed-by: dholmes, hseigel
2021-06-01 11:09:35 +00:00
Stefan Karlsson
6149b9ad75 8267914: Remove DeferredObjectToKlass workaround
Reviewed-by: eosterlund, tschatzl
2021-06-01 10:23:13 +00:00
Patrick Concannon
4eb216824f 8267670: Update java.io, java.math, and java.text to use switch expressions
Reviewed-by: darcy, chegar, naoto, iris, dfuchs, lancea, vtewari
2021-06-01 10:14:56 +00:00
Vladimir Ivanov
f5634fe39d 8267979: C2: Fix verification code in SubTypeCheckNode::Ideal()
Reviewed-by: neliasso, roland
2021-06-01 09:15:46 +00:00
Dong Bo
ae2f37f868 8267616: AArch64: Fix AES assertion messages in stubGenerator_aarch64.cpp
Reviewed-by: aph, neliasso
2021-06-01 00:37:28 +00:00
Sergey Tsypanov
c06db45fa7 8267921: Remove redundant loop from sun.reflect.misc.ReflectUtil.privateCheckPackageAccess()
Reviewed-by: alanb, mchung
2021-05-31 16:58:38 +00:00
Hannes Wallnöfer
382e7eca48 8246351: <code> elements in headings are of incorrect size
Reviewed-by: prappo
2021-05-31 14:27:54 +00:00
Stefan Johansson
5df25dc088 8266807: Windows os_windows-gtest broken for UseLargePages
Reviewed-by: iwalulya, ayang, tschatzl
2021-05-31 12:51:21 +00:00
Stefan Johansson
ce44cd6881 8267845: Add @requires to avoid running G1 large pages test with wrong page size
Reviewed-by: tschatzl, kbarrett
2021-05-31 12:08:24 +00:00
Hamlin Li
4ade125c8a 8267934: remove dead code in CLD
Reviewed-by: stefank, tschatzl
2021-05-31 11:17:19 +00:00
Chris Hegarty
bd31653e6f 8267938: (sctp) SCTP channel factory methods should check platform support
Reviewed-by: dfuchs, jiefu, alanb, vtewari
2021-05-31 09:44:38 +00:00
Wang Huang
7ab6b40120 8267375: Aarch64: JVM crashes with option -XX:PrintIdealGraphLevel=3 on SVE backend
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Ai Jiaming <aijiaming1@huawei.com>
Reviewed-by: aph, neliasso
2021-05-31 09:40:18 +00:00
Jan Lahoda
2c8e94f680 8247403: JShell: No custom input (e.g. from GUI) possible with JavaShellToolBuilder
Reviewed-by: vromero
2021-05-31 09:25:16 +00:00
Stefan Karlsson
64f0f68958 8267464: Circular-dependency resilient inline headers
Reviewed-by: kbarrett, eosterlund, dholmes, kvn
2021-05-31 08:59:19 +00:00
Tagir F. Valeev
ab5a7ff230 8267587: Update java.util to use enhanced switch
Reviewed-by: iris
2021-05-31 08:48:38 +00:00
Vladimir Ivanov
35916ed57f 8267806: C1: Relax inlining checks for not yet initialized classes
Reviewed-by: roland, thartmann
2021-05-31 08:45:07 +00:00
Martin Doerr
1e29005a22 8267842: SIGSEGV in get_current_contended_monitor
Reviewed-by: stefank, dcubed, ysuenaga, dholmes
2021-05-31 08:27:52 +00:00
Dmitry Batrak
236bd89dc3 8263583: Emoji rendering on macOS
Reviewed-by: serb, prr
2021-05-31 07:14:53 +00:00
Hannes Wallnöfer
1ab2776947 8247608: Javadoc: CSS margin is not applied consistently
Reviewed-by: jjg
2021-05-31 06:45:37 +00:00
Jie Fu
9031477f27 8267945: ZGC: Revert NUMA changes (JDK-8266217 and JDK-8241354) after JDK-8241423
Reviewed-by: pliden
2021-05-30 23:03:57 +00:00
Daniel D. Daugherty
6627432025 8267953: restore 'volatile' to ObjectMonitor::_owner field
Reviewed-by: aph
2021-05-29 17:46:35 +00:00
Nikita Gubarkov
964bac9e38 8267706: bin/idea.sh tries to use cygpath on WSL
Reviewed-by: erikj
2021-05-28 19:53:57 +00:00
Daniel D. Daugherty
591b0c3a46 8264624: change the guarantee() calls added by JDK-8264123 to assert() calls
Reviewed-by: pchilanomate, coleenp
2021-05-28 16:24:04 +00:00
Aleksei Efimov
0c0ff7fb0c 8265309: com/sun/jndi/dns/ConfigTests/Timeout.java fails with "Address already in use" BindException
Reviewed-by: dfuchs
2021-05-28 14:54:49 +00:00
Daniel Fuchs
24bf35f862 8265367: [macos-aarch64] 3 java/net/httpclient/websocket tests fail with "IOException: No buffer space available"
Reviewed-by: chegar
2021-05-28 14:21:11 +00:00
Jie Fu
1413f9e070 8241423: NUMA APIs fail to work in dockers due to dependent syscalls are disabled by default
Reviewed-by: dholmes, pliden
2021-05-28 13:51:37 +00:00
Volker Simonis
1d2c7ac3f7 8267555: Fix class file version during redefinition after 8238048
Reviewed-by: coleenp, sspitsyn
2021-05-28 08:32:43 +00:00
Robbin Ehn
97ec5ad0a6 8265753: Remove manual JavaThread transitions to blocked
Reviewed-by: dcubed, rrich, dholmes, pchilanomate
2021-05-28 07:30:14 +00:00
Jaroslav Tulach
6eb9114582 8266877: Missing local debug information when debugging JEP-330
Reviewed-by: alanb, jjg
2021-05-28 04:16:10 +00:00
Tagir F. Valeev
0c9daa7ed5 8265029: Preserve SIZED characteristics on slice operations (skip, limit)
Reviewed-by: psandoz
2021-05-28 01:56:38 +00:00
Claes Redestad
95b1fa7a88 8267529: StringJoiner can create a String that breaks String::equals
Reviewed-by: naoto
2021-05-27 23:09:22 +00:00
Alexander Zuev
7f52c50ba3 8182043: Access to Windows Large Icons
Reviewed-by: aivanov, azvegint, prr
2021-05-27 21:49:20 +00:00
Daniel D. Daugherty
8a31c07598 8267886: ProblemList javax/management/remote/mandatory/connection/RMIConnector_NPETest.java
Reviewed-by: smarks
2021-05-27 20:26:05 +00:00
Сергей Цыпанов
ae258f1e6a 8265418: Clean-up redundant null-checks of Class.getPackageName()
Reviewed-by: redestad
2021-05-27 20:21:34 +00:00
Xin Liu
41185d38f2 8229517: Support for optional asynchronous/buffered logging
Reviewed-by: ysuenaga, simonis, stuefe, phh, dholmes, ayang
2021-05-27 16:35:24 +00:00
Stuart Marks
7c85f3510c 8267123: Remove RMI Activation
Reviewed-by: erikj, rriggs, alanb
2021-05-27 15:19:45 +00:00
Jonathan Gibbons
0754266044 8267709: Investigate differences between HtmlStyle and stylesheet.css
Reviewed-by: hannesw
2021-05-27 15:01:03 +00:00
Daniel D. Daugherty
23189a1f9d 8191786: Thread-SMR hash table size should be dynamic
Reviewed-by: dholmes, rehn, coleenp, eosterlund
2021-05-27 14:58:26 +00:00
Hao Tang
ef368b32bc 8265836: OperatingSystemImpl.getCpuLoad() returns incorrect CPU load inside a container
Co-authored-by: Shaojun Wang <jeffery.wsj@alibaba-inc.com>
Co-authored-by: Severin Gehwolf <sgehwolf@openjdk.org>
Reviewed-by: sgehwolf, ysuenaga
2021-05-27 14:40:29 +00:00
Guoxiong Li
10a6f5d637 8230623: Extract command-line help for -Xlint sub-options to new --help-lint
Reviewed-by: jjg
2021-05-27 14:04:56 +00:00
Naoto Sato
bea4109ef7 8187649: ArrayIndexOutOfBoundsException in java.util.JapaneseImperialCalendar
Reviewed-by: joehw, rriggs
2021-05-27 13:18:34 +00:00
Athijegannathan Sundararajan
ec65cf8332 8240347: remove undocumented options from jlink --help message
Reviewed-by: alanb, redestad
2021-05-27 12:29:10 +00:00
Jorn Vernee
3623abb7f6 8263087: Add a MethodHandle combinator that switches over a set of MethodHandles
Reviewed-by: redestad
2021-05-27 12:28:10 +00:00
Dongbo He
85f616522b 8267817: [TEST] Remove unnecessary init in test/micro/org/openjdk/bench/javax/crypto/full/AESGCMBench:setup
Reviewed-by: redestad
2021-05-27 11:49:25 +00:00
Denghui Dong
7278f56bb6 8267800: Remove the '_dirty' set in BCEscapeAnalyzer
Reviewed-by: kvn, thartmann
2021-05-27 08:36:34 +00:00
Albert Mingkun Yang
bfa46f0af3 8252476: as_Worker_thread() doesn't check what it intends
Co-authored-by: David Holmes <dholmes@openjdk.org>
Reviewed-by: iklam, kbarrett
2021-05-27 08:09:58 +00:00
Yasumasa Suenaga
37bc4e2e3c 8263635: Add --servername option to jhsdb debugd
Reviewed-by: cjplummer, sspitsyn
2021-05-27 04:54:16 +00:00
Jie Fu
6ffa3e66db 8267754: cds/appcds/loaderConstraints/LoaderConstraintsTest.java fails on x86_32 due to customized class loader is not supported
Reviewed-by: minqi, dholmes, iklam
2021-05-26 22:58:45 +00:00
Vladimir Ivanov
1899f022b1 8267805: Add UseVtableBasedCHA to the list of JVM flags known to jtreg
Reviewed-by: shade
2021-05-26 22:53:28 +00:00
Roger Riggs
0fc7c8d101 8267751: (test) jtreg.SkippedException has no serial VersionUID
Reviewed-by: naoto, iignatyev, iris
2021-05-26 22:03:13 +00:00
Evgeny Astigeevich
a859d87cc1 8267721: Enable sun/security/pkcs11 tests for Amazon Linux 2 AArch64
Reviewed-by: phh
2021-05-26 21:08:47 +00:00
Mark Reinhold
e63023546a 8266851: Implement JEP 403: Strongly Encapsulate JDK Internals
Co-authored-by: Alan Bateman <alanb@openjdk.org>
Reviewed-by: mchung, alanb, hseigel
2021-05-26 20:55:53 +00:00
Joe Wang
8c4719a588 8265248: Implementation Specific Properties: change prefix, plus add existing properties
Reviewed-by: lancea, rriggs
2021-05-26 19:34:06 +00:00
Coleen Phillimore
c59484e715 8267653: Remove Mutex::_safepoint_check_sometimes
Reviewed-by: dholmes, pchilanomate
2021-05-26 19:07:53 +00:00
Stefan Karlsson
de91643bfa 8267611: Print more info when pointer_delta assert fails
Reviewed-by: dholmes, jiefu, tschatzl, kbarrett
2021-05-26 17:57:30 +00:00
Naoto Sato
a4c46e1e4f 8263202: Update Hebrew/Indonesian/Yiddish ISO 639 language codes to current
Reviewed-by: joehw
2021-05-26 15:52:39 +00:00
Yude Lin
9c346a1ec7 8266963: Remove safepoint poll introduced in 8262443 due to reentrance issue
Reviewed-by: rehn, zgu, dholmes
2021-05-26 12:26:52 +00:00
Pankaj Bansal
45e05970bc 8264302: Create implementation for Accessibility native peer for Splitpane java role
Reviewed-by: kizune
2021-05-26 12:17:21 +00:00
Pavel Rappo
4343997a1a 8267708: Remove references to com.sun.tools.javadoc.**
This commit changes BaseOptions.java to fix the NoStringToLower test that failed after jdk.javadoc has been added to the list of package prefixes that NoStringToLower scans.

Reviewed-by: jjg
2021-05-26 11:27:15 +00:00
Jan Lahoda
f632254943 8267221: jshell feedback is incorrect when creating method with array varargs parameter
Reviewed-by: vromero
2021-05-26 11:12:22 +00:00
Athijegannathan Sundararajan
bf8d4a8eca 8267583: jmod fails on symlink to class file
Reviewed-by: alanb
2021-05-26 11:04:59 +00:00
Wang Huang
083416d36c 8267130: Memory Overflow in Disassembler::load_library
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Miao  Zhuojun <mouzhuojun@huawei.com>
Reviewed-by: neliasso, mli
2021-05-26 10:21:46 +00:00
Roland Westrelin
9d305b9c06 8252372: Check if cloning is required to move loads out of loops in PhaseIdealLoop::split_if_with_blocks_post()
Reviewed-by: thartmann, kvn
2021-05-26 09:20:42 +00:00
Albert Mingkun Yang
039441689d 8267468: Rename refill waster counters in ThreadLocalAllocBuffer
Reviewed-by: kbarrett, sspitsyn
2021-05-26 06:50:23 +00:00
Bradford Wetmore
b33b8bc88d 8267750: Incomplete fix for JDK-8267683
Reviewed-by: jnimeh
2021-05-26 03:17:32 +00:00
Tagir F. Valeev
ac36b7d3e2 8267452: Delegate forEachRemaining in Spliterators.iterator()
Reviewed-by: psandoz
2021-05-26 01:17:02 +00:00
David Holmes
d0d2ddccaf 8267651: runtime/handshake/HandshakeTimeoutTest.java times out when dumping core
Reviewed-by: dcubed
2021-05-25 23:35:17 +00:00
Jie Fu
a98e476c0a 8267311: vmTestbase/gc/gctests/StringInternGC/StringInternGC.java eventually OOMEs
8267311: vmTestbase/gc/gctests/StringInternGC/StringInternGC.java eventually OOMEs

Co-authored-by: Thomas Schatzl <tschatzl@openjdk.org>
Reviewed-by: tschatzl
2021-05-25 22:46:19 +00:00
Alexander Matveev
5aa45f2edf 8267403: tools/jpackage/share/FileAssociationsTest.java#id0 failed with "Error: Bundler "Mac PKG Package" (pkg) failed to produce a package"
Reviewed-by: herrick, asemenyuk
2021-05-25 22:08:33 +00:00
Coleen Phillimore
c20ca42e62 8267691: Change table to obsolete CriticalJNINatives in JDK 18, not 17
Reviewed-by: hseigel
2021-05-25 19:42:08 +00:00
Bradford Wetmore
e751b7b1b6 8267683: rfc7301Grease8F value not displayed correctly in SSLParameters javadoc
Reviewed-by: coffeys
2021-05-25 19:38:00 +00:00
Joe Darcy
0b77359384 8224243: Add implSpec's to AccessibleObject and seal Executable
Reviewed-by: alanb
2021-05-25 18:04:47 +00:00
Jonathan Gibbons
594d454475 8267574: Dead code in HtmlStyle/HtmlDocletWriter
Reviewed-by: hannesw
2021-05-25 17:36:50 +00:00
Adam Sotona
2ef2450aa6 8263445: Duplicate key compiler.err.expected.module in compiler.properties
Reviewed-by: vromero, jlahoda
2021-05-25 15:58:00 +00:00
Jonathan Gibbons
cc687fd43a 8267575: Add new documentation group in HtmlStyle
Reviewed-by: hannesw
2021-05-25 14:54:27 +00:00
Pavel Rappo
5a5b807e8e 8267633: Clarify documentation of (Doc)TreeScanner
Reviewed-by: jjg
2021-05-25 14:22:36 +00:00
Maurizio Cimadamore
86a8f44271 8267317: Remove DeferredTypeCompleter
Reviewed-by: vromero
2021-05-25 11:51:25 +00:00
Jie Fu
b403d39908 8267213: cpuinfo_segv is incorrectly triaged as execution protection violation on x86_32
Reviewed-by: dholmes
2021-05-25 11:49:58 +00:00
Claes Redestad
66b190e1e7 8267612: Declare package-private VarHandle.AccessMode/AccessType counts
Reviewed-by: mchung
2021-05-25 11:47:33 +00:00
Patrick Concannon
a52c4ede2f 8267110: Update java.util to use instanceof pattern variable
Reviewed-by: lancea, naoto
2021-05-25 08:24:49 +00:00
Jaikiran Pai
0a03fc84b3 8255674: SSLEngine class description is missing "case" in switch statement
Reviewed-by: xuelei
2021-05-25 07:40:48 +00:00
Alexander Zuev
d86f91642d 8267066: New NSAccessibility peers should return they roles and subroles directly
Reviewed-by: pbansal
2021-05-25 06:46:22 +00:00
Adam Sotona
31d0f0d895 8248843: java in source-file mode suggests javac-only options
Reviewed-by: vromero
2021-05-25 04:52:42 +00:00
Denghui Dong
2e8812df14 8265129: Add intrinsic support for JVM.getClassId
Reviewed-by: kvn, mgronlun
2021-05-25 04:11:12 +00:00
Dong Bo
123cdd1fbd 8264973: AArch64: Optimize vector max/min/add reduction of two integers with NEON pairwise instructions
Reviewed-by: njian, aph
2021-05-25 02:17:19 +00:00
Jonathan Gibbons
b4d4884c03 8267126: javadoc should show "line and caret" for diagnostics.
Reviewed-by: prappo
2021-05-25 01:33:13 +00:00
Calvin Cheung
461a3feebe 8261478: InstanceKlass::set_classpath_index does not match comments
Reviewed-by: minqi
2021-05-25 00:48:39 +00:00
Calvin Cheung
de27da7ded 8267431: Rename InstanceKlass::has_old_class_version to can_be_verified_at_dumptime
Reviewed-by: iklam
2021-05-25 00:42:21 +00:00
Claes Redestad
c519ba2e43 8267614: Outline VarHandleGuards exact behavior checks
Reviewed-by: psandoz, mchung
2021-05-24 23:02:40 +00:00
Kim Barrett
f6909596ca 8267446: Taskqueue code fails with assert(bottom_relaxed() == age_top_relaxed()) failed: not empty
Reviewed-by: stefank, pliden
2021-05-24 22:43:42 +00:00
Ian Graves
ebc9357d58 8267329: Modernize Javadoc code to use instanceof with pattern matching
Reviewed-by: prappo, jjg
2021-05-24 21:57:30 +00:00
Ioi Lam
209769b5ad 8267347: CDS record_linking_constraint asserts with unregistered class
Reviewed-by: minqi, ccheung
2021-05-24 21:52:13 +00:00
Andy Herrick
a5467ae7bb 8267423: Fix copyrights in jpackage tests
Reviewed-by: kcr, asemenyuk
2021-05-24 19:28:50 +00:00
Mark Sheppard
bb085f684d 8265362: java/net/Socket/UdpSocket.java fails with "java.net.BindException: Address already in use" (macos-aarch64)
Reviewed-by: dfuchs, alanb
2021-05-24 17:59:39 +00:00
Weijun Wang
640a2afda3 8267184: Add -Djava.security.manager=allow to tests calling System.setSecurityManager
Co-authored-by: Lance Andersen <lancea@openjdk.org>
Co-authored-by: Weijun Wang <weijun@openjdk.org>
Reviewed-by: dholmes, alanb, dfuchs, mchung, mullan, prr
2021-05-24 16:55:55 +00:00
Vicente Romero
f04db5fbd7 8224158: assertion related to NPE at DynamicCallSiteDesc::withArgs should be reworded
Reviewed-by: jlahoda
2021-05-24 15:55:04 +00:00
Weijun Wang
838a007103 8267584: The java.security.krb5.realm system property only needs to be defined once
Reviewed-by: mullan
2021-05-24 15:45:01 +00:00
Hai-May Chao
f2d880c11a 8266400: importkeystore fails to a password less pkcs12 keystore
Reviewed-by: weijun
2021-05-24 15:38:32 +00:00
Vicente Romero
f5562f1214 8258535: jvm.ClassReader should set the accessor to the corresponding record component
Reviewed-by: jfranck
2021-05-24 14:50:22 +00:00
Roger Riggs
d8e6e2877a 8267544: (test) rmi test NonLocalSkeleton fails if network has multiple adapters with the same address
Reviewed-by: dfuchs
2021-05-24 14:10:09 +00:00
Guoxiong Li
f4531661b5 8267578: Remove unnecessary preview checks
Reviewed-by: jlahoda
2021-05-24 12:31:21 +00:00
Alexander Zuev
49f622c947 8208747: [a11y] [macos] In Optionpane Demo, inside ComponentDialog Example, unable to navigate to all items, with VO on
Reviewed-by: pbansal
2021-05-24 12:01:54 +00:00
Guoxiong Li
54520fbf49 8267580: The method JavacParser#peekToken is wrong when the first parameter is not zero
Reviewed-by: mcimadamore
2021-05-24 11:17:39 +00:00
David Holmes
31139108c1 8267553: Extra JavaThread assignment in ClassLoader::create_class_path_entry()
Reviewed-by: ccheung
2021-05-24 05:29:55 +00:00
Pankaj Bansal
4d26f22b9a 8264304: Create implementation for NSAccessibilityToolbar protocol peer
Reviewed-by: kizune
2021-05-23 03:00:48 +00:00
Jie Fu
6288a9936c 8267404: vmTestbase/vm/mlvm/anonloader/stress/oome/metaspace/Test.java failed with OutOfMemoryError
Co-authored-by: xiangyuan <xiangyuan@tencent.com>
Reviewed-by: stuefe
2021-05-22 22:59:55 +00:00
Aleksey Shipilev
71e2fa25f7 8267531: [x86] Assembler::andb(Address,Register) encoding is incorrect
Reviewed-by: azeemj, vlivanov, jiefu
2021-05-22 15:13:06 +00:00
Hui Shi
4023646ed1 8266528: Optimize C2 VerifyIterativeGVN execution time
Reviewed-by: kvn, thartmann
2021-05-22 11:51:37 +00:00
Jaroslav Bachorik
24623167ff 8261354: SIGSEGV at MethodIteratorHost
Reviewed-by: mgronlun
2021-05-22 09:17:45 +00:00
Ajit Ghaisas
72c9567b46 8263486: Clean up MTLSurfaceDataBase.h
Reviewed-by: serb
2021-05-22 03:16:17 +00:00
Daniel D. Daugherty
fe333431c8 8256304: should MonitorUsedDeflationThreshold be experimental or diagnostic
8256301: ObjectMonitor::is_busy() should return bool

Reviewed-by: coleenp, pchilanomate
2021-05-21 18:32:25 +00:00
Sandhya Viswanathan
8f10c5a890 8267190: Optimize Vector API test operations
Reviewed-by: psandoz, kvn
2021-05-21 18:15:16 +00:00
Marcus G K Williams
94cfeb9c4f 8256155: Allow multiple large page sizes to be used on Linux
Co-authored-by: Marcus G K Williams <mgkwill@openjdk.org>
Co-authored-by: Stefan Johansson <sjohanss@openjdk.org>
Co-authored-by: Thomas Stuefe <stuefe@openjdk.org>
Reviewed-by: stuefe, sjohanss
2021-05-21 14:15:29 +00:00
Jan Lahoda
ec8a8097c3 8267119: switch expressions lack support for deferred type-checking
Reviewed-by: mcimadamore
2021-05-21 14:09:42 +00:00
Nils Eliasson
4ba761381c 8267332: xor value should handle bounded values
Reviewed-by: thartmann, redestad
2021-05-21 14:06:18 +00:00
Jaroslav Bachorik
ee2651b9e5 8203359: Container level resources events
Reviewed-by: sgehwolf, egahlin
2021-05-21 09:44:45 +00:00
K Suman Rajkumaar
b5d32bbfc7 8260690: JConsole User Guide Link from the Help menu is not accessible by keyboard
Reviewed-by: aivanov, dmarkov
2021-05-21 09:42:30 +00:00
Prasanta Sadhukhan
e48d7d6658 8264218: Public method javax.swing.JMenu.setComponentOrientation() has no spec
Reviewed-by: aivanov
2021-05-21 09:37:48 +00:00
Alexander Matveev
9eaa4afc99 8267056: tools/jpackage/share/RuntimePackageTest.java fails with NoSuchFileException
Reviewed-by: asemenyuk, herrick
2021-05-21 00:44:39 +00:00
Jonathan Gibbons
e094f3f856 8266856: Make <wbr> element void
Reviewed-by: prappo, iris, vromero
2021-05-21 00:31:04 +00:00
Jie Fu
7a63ff70c8 8267370: [Vector API] Fix several crashes after JDK-8256973
Co-authored-by: Jatin Bhateja <jbhateja@openjdk.org>
Reviewed-by: neliasso, kvn
2021-05-20 23:59:12 +00:00
Denghui Dong
83b3607290 8266642: improve ResolvedMethodTable hash function
Reviewed-by: vlivanov, coleenp
2021-05-20 22:19:04 +00:00
Calvin Cheung
1c7a1310d9 8267350: Archived old interface extends interface with default method causes crash
Reviewed-by: iklam, minqi
2021-05-20 21:03:13 +00:00
Phil Race
005d8a7fca 8256372: [macos] Unexpected symbol was displayed on JTextField with Monospaced font
Reviewed-by: erikj, serb
2021-05-20 19:49:03 +00:00
Vicente Romero
81f39ed3e0 8261205: AssertionError: Cannot add metadata to an intersection type
Reviewed-by: mcimadamore
2021-05-20 17:53:00 +00:00
Aleksey Shipilev
7b98400c81 8267348: Rewrite gc/epsilon/TestClasses.java to use Metaspace with less classes
Reviewed-by: stuefe
2021-05-20 16:45:38 +00:00
Vladimir Kempik
ca93399af1 8267235: [macos_aarch64] InterpreterRuntime::throw_pending_exception messing up LR results in crash
Reviewed-by: akozlov, aph
2021-05-20 15:46:53 +00:00
Hannes Wallnöfer
b7b6acd9b1 8267481: Make sure table row has correct number of cells
Reviewed-by: jjg
2021-05-20 15:11:08 +00:00
Aleksey Shipilev
f67847f52a 8267396: Avoid recording "pc" in unhandled oops detector for better performance
Reviewed-by: coleenp, dholmes
2021-05-20 14:26:18 +00:00
Jonathan Gibbons
878d1b3f60 8267434: Remove LinkOutput[Impl]
Reviewed-by: prappo
2021-05-20 14:22:24 +00:00
Thomas Schatzl
fc7f0a3e61 8267480: Explicitly problemlist all runtime/os/TestTracePageSizes.java tests on linux-aarch64 to reduce noise
Reviewed-by: dcubed
2021-05-20 14:17:57 +00:00
Sergey Tsypanov
9425d3de83 8261880: Change nested classes in java.base to static nested classes where possible
Reviewed-by: redestad
2021-05-20 13:56:11 +00:00
liach
459abd561a 8267219: Javadoc method summary breaks when {@inheritDoc} from an empty parent
Reviewed-by: hannesw
2021-05-20 12:44:55 +00:00
Per Liden
aba2265682 8260267: ZGC: Reduce mark stack usage
Co-authored-by: Wang Chao <wchao@openjdk.org>
Co-authored-by: Hui Shi <hshi@openjdk.org>
Reviewed-by: sjohanss, ayang
2021-05-20 11:32:48 +00:00
Thomas Schatzl
f979523a69 8267463: Problemlist runtime/os/TestTracePageSizes.java on linux-aarch64 to reduce noise
Reviewed-by: dholmes
2021-05-20 11:10:07 +00:00
Alexander Zuev
f07dcf471c 8264290: Create implementation for NSAccessibilityComponentGroup protocol peer
Reviewed-by: pbansal
2021-05-20 10:31:37 +00:00
Julia Boes
31320c3474 8267262: com/sun/net/httpserver/Filter improve API documentation of static methods
Reviewed-by: dfuchs, chegar
2021-05-20 09:30:10 +00:00
Vicente Romero
7dcb9fda89 8265684: implement Sealed Classes as a standard feature in Java, javadoc changes
Reviewed-by: jjg
2021-05-20 09:23:14 +00:00
Vicente Romero
0fa9223f34 8260517: implement Sealed Classes as a standard feature in Java
Co-authored-by: Harold Seigel <hseigel@openjdk.org>
Co-authored-by: Vicente Romero <vromero@openjdk.org>
Reviewed-by: dholmes, mcimadamore, jlahoda
2021-05-20 09:11:08 +00:00
Vicente Romero
31b98e129e 8265319: implement Sealed Classes as a standard feature in Java, javax.lang.model changes
Reviewed-by: darcy, jlahoda
2021-05-20 09:08:30 +00:00
Thomas Stuefe
726785b8d7 8267155: runtime/os/TestTracePageSizes times out
Reviewed-by: shade, sjohanss
2021-05-20 08:16:36 +00:00
Xubo Zhang
8e3549fc73 8266332: Adler32 intrinsic for x86 64-bit platforms
Co-authored-by: Xubo Zhang <xubo.zhang@intel.com>
Co-authored-by: Greg B Tucker <greg.b.tucker@intel.com>
Co-authored-by: Pengfei Li <pli@openjdk.org>
Reviewed-by: sviswanathan, jbhateja, kvn, neliasso
2021-05-19 23:44:23 +00:00
Ioi Lam
b961f2535c 8267191: Avoid repeated SystemDictionaryShared::should_be_excluded calls
Reviewed-by: dholmes, coleenp
2021-05-19 19:31:15 +00:00
Jonathan Gibbons
74f30ad38b 8263684: Avoid wrapping into BufferedWriter twice
Reviewed-by: prappo
2021-05-19 18:29:12 +00:00
Thomas Stuefe
9820f3d480 8267371: Concurrent gtests take too long
Reviewed-by: shade, gziemski
2021-05-19 17:55:05 +00:00
Nils Eliasson
38d690b3c3 8265262: CITime - 'other' incorrectly calculated
Reviewed-by: thartmann, kvn
2021-05-19 17:51:02 +00:00
Hannes Wallnöfer
66ab6d86d1 8264181: javadoc tool Incorrect error message about malformed link
Reviewed-by: prappo
2021-05-19 17:17:50 +00:00
Albert Mingkun Yang
99fcc410a7 8234532: Remove ThreadLocalAllocBuffer::_fast_refill_waste since it is never set
Reviewed-by: tschatzl, sjohanss, pliden, sspitsyn
2021-05-19 17:02:39 +00:00
Gerard Ziemski
237fee8bbd 8267339: Temporarily disable os.release_multi_mappings_vm on macOS x64
Reviewed-by: hseigel, dcubed
2021-05-19 16:42:10 +00:00
Daniel D. Daugherty
64e2479bf6 8267407: ProblemList vmTestbase/vm/mlvm/anonloader/stress/oome/metaspace/Test.java on linux-aarch64
8267409: ProblemList gc/epsilon/TestClasses.java on linux-x64

Reviewed-by: tschatzl
2021-05-19 16:08:35 +00:00
Claes Redestad
9760dba71c 8267321: Use switch expression for VarHandle$AccessMode lookup
Reviewed-by: jvernee
2021-05-19 15:23:44 +00:00
Doug Simon
fdd0352884 8267338: [JVMCI] revive JVMCI API removed by JDK-8243287
Reviewed-by: mchung, hseigel
2021-05-19 13:59:46 +00:00
Zhengyu Gu
0b49f5ae19 8267257: Shenandoah: Always deduplicate strings when it is enabled during full gc
Reviewed-by: rkennke
2021-05-19 13:13:57 +00:00
Hannes Wallnöfer
12050f04ca 8266651: Convert Table method parameters from String to Content
Reviewed-by: jjg
2021-05-19 13:01:06 +00:00
Aleksey Shipilev
e749f75de0 8267304: Bump global JTReg memory limit to 768m
Reviewed-by: lmesnik, iignatyev
2021-05-19 12:59:03 +00:00
Guoxiong Li
e858dd6197 8267361: JavaTokenizer reads octal numbers mistakenly
Reviewed-by: jlaskey
2021-05-19 12:50:54 +00:00
Albert Mingkun Yang
1b93b81270 8267133: jdk/jfr/event/gc/collection/TestG1ParallelPhases.java fails with Not expected phases: RestorePreservedMarks, RemoveSelfForwardingPtr: expected true, was false
8267218: jdk/jfr/event/gc/collection/TestG1ParallelPhases.java fails with Not found phases\: StringDedupQueueFixup, StringDedupTableFixup

Co-authored-by: Thomas Schatzl <tschatzl@openjdk.org>
Reviewed-by: tschatzl, iwalulya
2021-05-19 11:29:27 +00:00
Jatin Bhateja
88b114235c 8267357: build breaks with -Werror option on micro benchmark added for JDK-8256973
Reviewed-by: jiefu, neliasso, thartmann
2021-05-19 09:58:48 +00:00
Leo Korinth
6ef46ce386 8231672: Simplify the reference processing parallelization framework
Reviewed-by: tschatzl, ayang
2021-05-19 09:39:40 +00:00
Yi Yang
392f962e0e 8267151: C2: Don't create dummy Opaque1Node for outmost unswitched IfNode
Reviewed-by: thartmann, neliasso
2021-05-19 09:06:59 +00:00
Yi Yang
0cf7e5784b 8267239: C1: RangeCheckElimination for % operator if divisor is IntConstant
Reviewed-by: thartmann, neliasso
2021-05-19 09:05:05 +00:00
Jie Fu
2d407e12fa 8267293: vmTestbase/vm/mlvm/anonloader/stress/oome/metaspace/Test.java fails when JTREG_JOBS > 25
Reviewed-by: stuefe, shade
2021-05-19 09:03:53 +00:00
Ivan Walulya
70f6c67051 8233380: CHT: Node allocation and freeing
Reviewed-by: rehn, tschatzl
2021-05-19 08:01:35 +00:00
Xiaohong Gong
2563a6a9b5 8266962: Add arch supporting check for "Op_VectorLoadConst" before creating the node
Reviewed-by: vlivanov, neliasso
2021-05-19 07:49:41 +00:00
Jie Fu
4954383168 8267364: Remove mask.incr which is introduced by JDK-8256973
Reviewed-by: vlivanov, thartmann
2021-05-19 07:43:12 +00:00
Tobias Hartmann
c2b50f93ac 8266480: Implicit null check optimization does not update control of hoisted memory operation
Reviewed-by: neliasso, kvn
2021-05-19 07:27:30 +00:00
Jie Fu
3f883e8f0d 8267351: runtime/cds/SharedBaseAddress.java fails on x86_32 due to Unrecognized VM option 'UseCompressedOops'
Reviewed-by: dholmes, ccheung
2021-05-19 07:17:13 +00:00
Jatin Bhateja
7aa65685b8 8256973: Intrinsic creation for VectorMask query (lastTrue,firstTrue,trueCount) APIs
Reviewed-by: psandoz, vlivanov
2021-05-19 05:22:02 +00:00
Jatin Bhateja
65a8bf58be 8265126: [REDO] unified handling for VectorMask object re-materialization during de-optimization
Reviewed-by: vlivanov
2021-05-19 05:19:16 +00:00
Alan Hayward
ff84577d72 8267098: AArch64: C1 StubFrames end confusingly
Reviewed-by: aph
2021-05-19 01:48:34 +00:00
Jie Fu
0daec497fe 8267246: -XX:MaxRAMPercentage=0 is unreasonable for jtreg tests on many-core machines
Reviewed-by: shade, erikj
2021-05-19 01:46:23 +00:00
Hui Shi
324defe2b6 8267212: test/jdk/java/util/Collections/FindSubList.java intermittent crash with "no reachable node should have no use"
Reviewed-by: roland, thartmann
2021-05-19 01:25:58 +00:00
Martin Balao
bdbe23b9cb 8265462: Handle multiple slots in the NSS Internal Module from SunPKCS11's Secmod
Reviewed-by: valeriep
2021-05-18 22:34:27 +00:00
Chris Plummer
10236e7a52 8263242: serviceability/sa/ClhsdbFindPC.java cannot find MaxJNILocalCapacity with ASLR
Reviewed-by: kevinw, ysuenaga
2021-05-18 21:26:56 +00:00
Sergey Bylokhov
e6705c0e4b 8266949: Check possibility to disable OperationTimedOut on Unix
Reviewed-by: azvegint, kizune
2021-05-18 19:30:33 +00:00
Anton Kozlov
b92c5a44f2 8265292: [macos_aarch64] java/foreign/TestDowncall.java crashes with SIGBUS
8265183: [macos_aarch64] java/foreign/TestIntrinsics.java crashes with SIGBUS
8265182: [macos_aarch64] java/foreign/TestUpcall.java crashes with SIGBUS

Reviewed-by: dholmes
2021-05-18 18:54:16 +00:00
Gerard Ziemski
fadf58043c 8262952: [macos_aarch64] os::commit_memory failure
Reviewed-by: stuefe, aph
2021-05-18 14:44:12 +00:00
Albert Mingkun Yang
f8f40ab25f 8230486: G1BarrierSetAssembler::g1_write_barrier_post unnecessarily pushes/pops new_val
Reviewed-by: kbarrett, tschatzl
2021-05-18 13:58:37 +00:00
Vladimir Ivanov
9d168e25d1 8266973: Migrate to ClassHierarchyIterator when enumerating subclasses
Reviewed-by: kvn, coleenp
2021-05-18 12:46:50 +00:00
Harold Seigel
02507bc40d 8267166: Remove test file vmTestbase/vm/mlvm/tools/LoadClass.java
Reviewed-by: gziemski, coleenp
2021-05-18 12:34:09 +00:00
Tobias Hartmann
ce88b33488 8266615: C2 incorrectly folds subtype checks involving an interface array
Reviewed-by: kvn, neliasso
2021-05-18 12:21:24 +00:00
Julia Boes
894547d2c1 8266897: com/sun/net/httpserver/FilterTest.java fails intermittently with AssertionError
Reviewed-by: chegar, dfuchs, michaelm
2021-05-18 09:12:33 +00:00
Thomas Stuefe
da7c846a8c 8264408: test_oopStorage no longer needs to disable some tests on WIN32
Reviewed-by: shade, tschatzl
2021-05-18 08:52:39 +00:00
Aleksey Shipilev
f6c2891118 8267229: Split runtime/Metaspace/elastic test configurations for better scalability
Reviewed-by: stuefe
2021-05-18 08:08:54 +00:00
Christoph Göttschkes
b60975dd85 8267237: ARM32: bad AD file in matcher.cpp after 8266810
Reviewed-by: redestad, thartmann
2021-05-18 07:30:30 +00:00
Yi Yang
905b41ac6a 8265711: C1: Intrinsify Class.getModifier method
Reviewed-by: thartmann, kvn
2021-05-18 07:29:18 +00:00
Thomas Stuefe
554caf33a0 8251392: Consolidate Metaspace Statistics
Reviewed-by: coleenp, zgu
2021-05-18 06:35:17 +00:00
Alexey Ushakov
3e97b07a68 8267116: Lanai: Incorrect AlphaComposite for VolatileImage graphics
Reviewed-by: serb, aghaisas
2021-05-18 06:06:42 +00:00
David Holmes
cd1c17c0a6 8266404: Fatal error report generated with -XX:+CrashOnOutOfMemoryError should not contain suggestion to submit a bug report
Reviewed-by: stuefe, kevinw, gziemski
2021-05-17 22:39:14 +00:00
Vladimir Kozlov
2effdd1b67 8267112: JVMCI compiler modules should be kept upgradable
Reviewed-by: mchung, erikj, dnsimon
2021-05-17 20:11:01 +00:00
Brian Burkhalter
da4dfde71a 8264777: Overload optimized FileInputStream::readAllBytes
Reviewed-by: dfuchs, alanb
2021-05-17 19:58:41 +00:00
Anton Kozlov
3b11d811a2 8266742: Check W^X state on possible safepoint
Reviewed-by: dholmes, gziemski
2021-05-17 19:15:18 +00:00
Ajit Ghaisas
79b39445f6 8266520: Revert to OpenGL as the default 2D rendering pipeline for macOS
Reviewed-by: azvegint, trebari, kcr, prr
2021-05-17 16:32:51 +00:00
Thomas Stuefe
3c010a7c7e 8265705: aarch64: KlassDecodeMovk mode broken
Reviewed-by: aph, iklam, ngasson
2021-05-17 16:14:22 +00:00
Adam Sotona
cf97252f3f 8264561: javap get NegativeArraySizeException on bad instruction
Reviewed-by: vromero
2021-05-17 15:23:18 +00:00
Vicente Romero
b8856b1c47 8263614: javac allows local variables to be accessed from a static context
Reviewed-by: mcimadamore
2021-05-17 15:03:32 +00:00
Hannes Wallnöfer
ea36836573 8267236: Versioned platform link in TestMemberSummary.java
Reviewed-by: prappo
2021-05-17 14:43:49 +00:00
Hannes Wallnöfer
d5a15f7420 8263438: Unused method AbstractMemberWriter.isInherited
Reviewed-by: prappo
2021-05-17 14:19:57 +00:00
Maurizio Cimadamore
dd5a84c68c 8267162: Add jtreg test group definitions for langtools
Reviewed-by: jjg
2021-05-17 12:55:34 +00:00
Prasanta Sadhukhan
39a454bb87 8260331: javax/swing/JInternalFrame/8146321/JInternalFrameIconTest.java failed with "ERROR: icon and imageIcon not same."
Reviewed-by: azvegint
2021-05-17 12:32:35 +00:00
Ralf Schmelter
a29612ea99 8255661: TestHeapDumpOnOutOfMemoryError fails with EOFException
Reviewed-by: rrich, cjplummer
2021-05-17 11:47:35 +00:00
Mitsuru Kariya
a555fd89d0 8264734: Some SA classes could use better hashCode() implementation
Reviewed-by: cjplummer, kevinw
2021-05-17 09:49:57 +00:00
Ivan Walulya
2313a2187a 8266637: CHT: Add insert_and_get method
Reviewed-by: tschatzl, rehn
2021-05-17 09:41:45 +00:00
Stefan Johansson
7b736ec932 8266489: Enable G1 to use large pages on Windows when region size is larger than 2m
Reviewed-by: tschatzl, iwalulya
2021-05-17 08:32:30 +00:00
Leo Korinth
f4227879b0 8266073: Regression ~2% in Derby after 8261804
Reviewed-by: ayang, sjohanss
2021-05-17 07:08:04 +00:00
David Holmes
02f895c5f6 8252685: APIs that require JavaThread should take JavaThread arguments
Reviewed-by: coleenp, sspitsyn, kvn, iklam
2021-05-17 04:05:44 +00:00
Yumin Qi
2066f497b9 8266764: [REDO] JDK-8255493 Support for pre-generated java.lang.invoke classes in CDS dynamic archive
Reviewed-by: ccheung, iklam
2021-05-16 02:26:46 +00:00
Daniel D. Daugherty
8c71144a23 8265153: add time based test for ThreadMXBean.getThreadInfo() and ThreadInfo.getLockOwnerName()
Reviewed-by: dholmes, cjplummer
2021-05-15 13:14:49 +00:00
Thomas Schatzl
10cafd244d 8267153: Problemlist jdk/jfr/event/gc/collection/TestG1ParallelPhases.java to remove the noise from CI
Reviewed-by: dcubed, jiefu
2021-05-15 09:46:29 +00:00
Thomas Stuefe
f3fb5a4524 8266942: gtest/GTestWrapper.java os.iso8601_time_vm failed
Reviewed-by: dcubed
2021-05-15 05:20:01 +00:00
Valerie Peng
7ab6dc83df 6676643: Improve current C_GetAttributeValue native implementation
Reviewed-by: xuelei
2021-05-14 23:04:37 +00:00
Alexander Matveev
28f1c7ac4d 8249395: (macos) jpackage tests timeout on MacPro5_1 systems
Reviewed-by: herrick, asemenyuk
2021-05-14 23:00:59 +00:00
Kim Barrett
be0a655208 8254598: StringDedupTable should use OopStorage
Co-authored-by: Kim Barrett <kbarrett@openjdk.org>
Co-authored-by: Zhengyu Gu <zgu@openjdk.org>
Reviewed-by: coleenp, iklam, tschatzl, ayang
2021-05-14 18:38:58 +00:00
Albert Mingkun Yang
360928d16d 8260046: Assert left >= right in pointer_delta() methods
Reviewed-by: sjohanss, kbarrett, tschatzl
2021-05-14 18:17:37 +00:00
Lance Andersen
5eda812f53 8267180: Typo in copyright header for HashesTest
Reviewed-by: dcubed, naoto, joehw
2021-05-14 17:55:43 +00:00
Lance Andersen
e90388bc1e 8266461: tools/jmod/hashes/HashesTest.java fails: static @Test methods
Reviewed-by: alanb, mchung
2021-05-14 17:19:32 +00:00
Wang Huang
599d07c0db 8263006: Add optimization for Max(*)Node and Min(*)Node
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Wu Yan <wuyan34@huawei.com>
Reviewed-by: kvn
2021-05-14 17:16:28 +00:00
Harold Seigel
16ca370f1a 8265694: Investigate test StressHiddenClasses.java
Reviewed-by: lfoltan
2021-05-14 14:52:37 +00:00
Athijegannathan Sundararajan
af4cd04c2e 8266291: (jrtfs) Calling Files.exists may break the JRT filesystem
Reviewed-by: redestad, alanb
2021-05-14 12:59:41 +00:00
Сергей Цыпанов
ebcf3991b7 8266622: Optimize Class.descriptorString() and Class.getCanonicalName0()
Reviewed-by: redestad
2021-05-14 12:29:23 +00:00
Claes Redestad
644f28c0ea 8266810: Move trivial Matcher code to cpu-specific header files
Reviewed-by: kvn, thartmann
2021-05-14 10:36:52 +00:00
Stefan Karlsson
88907bb81a 8266904: Use function pointer typedefs in OopOopIterateDispatch
Reviewed-by: tschatzl, iklam
2021-05-14 07:55:23 +00:00
Hamlin Li
301095c8be 8266795: Remove dead code LowMemoryDetectorDisabler
Reviewed-by: dholmes
2021-05-14 06:52:31 +00:00
Ioi Lam
1e0ecd6d56 8265605: Cannot call BootLoader::loadClassOrNull before initPhase2
Reviewed-by: alanb, mchung
2021-05-14 06:26:41 +00:00
Sergey Bylokhov
4086081306 8264846: Regression ~5% in J2dBench.bimg_misc on Linux after JDK-8263142
Reviewed-by: erikj, azvegint
2021-05-13 23:41:56 +00:00
Vladimir Ivanov
2a2f105a56 8267117: sun/hotspot/whitebox/CPUInfoTest.java fails on Ice Lake
Reviewed-by: kvn
2021-05-13 23:26:35 +00:00
Xue-Lei Andrew Fan
266702451d 8266881: Enable debug log for SSLEngineExplorerMatchedSNI.java
Reviewed-by: hchao, mullan
2021-05-13 18:53:52 +00:00
Pankaj Bansal
6c107fdff2 8264299: Create implementation of native accessibility peer for ScrollPane and ScrollBar Java Accessibility roles
Reviewed-by: kizune
2021-05-13 18:45:53 +00:00
Patricio Chilano Mateo
853ffdb25c 8265934: Cleanup _suspend_flags and _special_runtime_exit_condition
Reviewed-by: rehn, dcubed, dholmes
2021-05-13 18:04:26 +00:00
Alexey Semenyuk
f3c6cda476 8266162: Remove JPackage duplicate tests
Reviewed-by: almatvee, herrick
2021-05-13 16:30:17 +00:00
Naoto Sato
a259ab4a8d 8258795: Update IANA Language Subtag Registry to Version 2021-05-11
Reviewed-by: joehw
2021-05-13 16:20:12 +00:00
Jim Laskey
b4371e9bca 8266552: Technical corrections to java/util/random/package-info.java
Reviewed-by: darcy
2021-05-13 13:42:53 +00:00
Harold Seigel
e14b026841 8243287: Removal of Unsafe::defineAnonymousClass
Reviewed-by: iklam, mchung, alanb, dholmes
2021-05-13 12:46:54 +00:00
Thomas Schatzl
a564f2cbd5 8266821: G1: Prefetch cards during merge heap roots phase
Reviewed-by: kbarrett, iwalulya
2021-05-13 11:22:31 +00:00
Vladimir Ivanov
127bfe44f7 8266074: Vtable-based CHA implementation
Reviewed-by: kvn, jrose, dlong
2021-05-13 10:58:03 +00:00
Fernando Guallini
347d41df90 8164804: sun/security/ssl/SSLSocketImpl/CloseSocket.java makes not reliable time assumption
Reviewed-by: dfuchs, rhalade
2021-05-13 10:50:06 +00:00
Guoxiong Li
17ceef97c3 8266819: Separate the stop policies from the compile policies completely
Reviewed-by: mcimadamore
2021-05-13 10:22:13 +00:00
Maurizio Cimadamore
a270cbe2eb 8267043: IntelliJ project doesn't handle generated sources correctly
Reviewed-by: chegar, erikj
2021-05-13 09:32:22 +00:00
Daniel Fuchs
08a5a5c6d6 8263382: java/util/logging/ParentLoggersTest.java failed with "checkLoggers: getLoggerNames() returned unexpected loggers"
Reviewed-by: bpb, mchung
2021-05-13 08:54:24 +00:00
Prasanta Sadhukhan
b50fc5f992 8265528: Specification of BasicSplitPaneDivider::getMinimumSize,getPreferredSize doesn't match with its behavior.
Reviewed-by: kizune
2021-05-13 04:42:38 +00:00
David Holmes
d215743a91 8231031: runtime/ReservedStack/ReservedStackTest.java fails after jsr166 refresh
Reviewed-by: dcubed
2021-05-13 01:14:38 +00:00
Philippe Marschall
ab17be2835 8252530: Fix inconsistencies in hotspot whitebox
Reviewed-by: dholmes, amenkov
2021-05-12 23:14:30 +00:00
Chris Plummer
2568d181a7 8267047: Put serviceability/sa/TestJmapCoreMetaspace.java back on ZGC problem list due to JDK-8267045
Reviewed-by: dcubed
2021-05-12 21:01:47 +00:00
Guoxiong Li
accbfeaf22 8226216: parameter modifiers are not visible to javac plugins across compilation boundaries
Reviewed-by: jlahoda
2021-05-12 14:32:57 +00:00
Zhengyu Gu
69daedfd23 8266845: Shenandoah: Simplify SBS::load_reference_barrier implementation
Reviewed-by: shade
2021-05-12 12:34:55 +00:00
Alexey Ushakov
7433821910 8250658: Performance of ClipFlatOval Renderperf test is very low
Reviewed-by: jdv, aghaisas
2021-05-12 12:33:45 +00:00
Pavel Rappo
4727187f86 8266567: Fix javadoc tag references in sun.management.jmxremote.ConnectorBootstrap
Reviewed-by: dfuchs, sspitsyn
2021-05-12 10:57:37 +00:00
Yi Yang
11759bfb2d 8266798: C1: More types of instruction can also apply LoopInvariantCodeMotion
Reviewed-by: thartmann, neliasso
2021-05-12 09:08:29 +00:00
Ivan Walulya
dcf250d5d4 8233378: CHT: Fast reset
Reviewed-by: tschatzl, rehn
2021-05-12 09:07:01 +00:00
Doug Simon
f3b510b9aa 8266923: [JVMCI] expose StackOverflow::_stack_overflow_limit to JVMCI
Reviewed-by: kvn
2021-05-12 08:47:36 +00:00
Yi Yang
548899d40e 8266189: Remove C1 "IfInstanceOf" instruction
Reviewed-by: thartmann
2021-05-12 08:36:37 +00:00
Yi Yang
b46086d777 8266874: Clean up C1 canonicalizer for TableSwitch/LookupSwitch
Reviewed-by: thartmann
2021-05-12 08:35:31 +00:00
Hannes Wallnöfer
97367c01c1 8266808: Search label still uses old search field id
Reviewed-by: prappo
2021-05-12 08:32:29 +00:00
Tobias Hartmann
06d7602833 8261158: JVMState should not be shared between SafePointNodes
Reviewed-by: vlivanov, kvn
2021-05-12 07:21:25 +00:00
Yasumasa Suenaga
476994aa37 8266531: ZAddress::address() should be removed from SA
Reviewed-by: cjplummer, stefank
2021-05-12 05:27:14 +00:00
David Holmes
e828a939a8 8261395: C1 crash "cannot make java calls from the native compiler"
Co-authored-by: Ioi Lam <iklam@openjdk.org>
Co-authored-by: Coleen Phillimore <coleenp@openjdk.org>
Reviewed-by: iklam, hseigel, coleenp
2021-05-12 05:21:58 +00:00
Hamlin Li
3c47cab6db 8261034: improve jcmd GC.class_histogram to support parallel
Reviewed-by: cjplummer, sspitsyn
2021-05-12 01:06:44 +00:00
Guoxiong Li
ed32e02c05 8241187: ToolBox::grep should allow for negative filtering
Reviewed-by: vromero
2021-05-12 01:01:29 +00:00
Mandy Chung
cc03734b99 8266925: Add a test to verify that hidden class's members are not statically invocable
Reviewed-by: alanb
2021-05-12 00:53:04 +00:00
Sergey Bylokhov
271a0c7133 8047218: [TEST_BUG] java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java fails with exception
Reviewed-by: azvegint, kizune, pbansal
2021-05-11 23:55:08 +00:00
Joe Wang
1a0ff28ea1 8255035: Update BCEL to Version 6.5.0
Reviewed-by: lancea
2021-05-11 23:54:07 +00:00
Calvin Cheung
57c6ba6e6b 8266822: Rename MetaspaceShared::is_old_class to be more explicit about what "old" means
Reviewed-by: iklam, minqi, coleenp
2021-05-11 23:53:06 +00:00
Claes Redestad
616244f43a 8266937: Remove Compile::reshape_address
Reviewed-by: kvn
2021-05-11 22:45:27 +00:00
Jie Fu
974b9f7004 8266773: Release VM is broken with GCC 9 after 8214237
Reviewed-by: stuefe, lkorinth
2021-05-11 22:44:28 +00:00
Naoto Sato
f6c5a6bbf1 8266784: java/text/Collator/RuleBasedCollatorTest.java fails with jtreg 6
Reviewed-by: joehw
2021-05-11 22:42:17 +00:00
Alexander Matveev
1356116d3f 8266456: Replace direct TKit.run() calls with jdk.jpackage.test.Annotations.Test annotation
Reviewed-by: asemenyuk, herrick
2021-05-11 21:59:56 +00:00
Mandy Chung
dfe8833f5d 8266783: java/lang/reflect/Proxy/DefaultMethods.java fails with jtreg 6
Reviewed-by: iris
2021-05-11 20:22:39 +00:00
Hai-May Chao
995e956030 8266225: jarsigner is using incorrect security property to show weakness of certs
Reviewed-by: weijun, mullan
2021-05-11 19:37:26 +00:00
Jason Zaugg
0a12605df8 8265448: (zipfs): Reduce read contention in ZipFileSystem
Reviewed-by: alanb, lancea
2021-05-11 18:06:37 +00:00
Vladimir Ivanov
acf02ed553 8208237: Re-examine defmeth tests and update as needed
Reviewed-by: hseigel, lfoltan, dholmes
2021-05-11 17:14:57 +00:00
Yumin Qi
ac0287fd73 8266770: Clean pending exception before running dynamic CDS dump
Reviewed-by: ccheung, iklam
2021-05-11 16:57:40 +00:00
Brian Burkhalter
7a0a57cd56 8266820: micro java/nio/SelectorWakeup.java has wrong copyright header
Reviewed-by: chegar, alanb, michaelm, iris
2021-05-11 16:12:36 +00:00
Liam Miller-Cushon
d0daa72592 8266857: PipedOutputStream.sink should be volatile
Reviewed-by: dfuchs
2021-05-11 15:47:14 +00:00
Weijun Wang
381de0c1d0 8266753: jdk/test/lib/process/ProcTest.java failed with "Exception: Proc abnormal end"
Reviewed-by: dfuchs
2021-05-11 15:22:52 +00:00
Daniel Fuchs
2d2cd78bde 8266761: AssertionError in sun.net.httpserver.ServerImpl.responseCompleted
Reviewed-by: chegar
2021-05-11 14:48:12 +00:00
Zhengyu Gu
9c9c47e403 8266813: Shenandoah: Use shorter instruction sequence for checking if marking in progress
Reviewed-by: shade
2021-05-11 12:48:22 +00:00
Hamlin Li
0344e751e2 8266794: Remove dead code notify_allocation_jvmti_allocation_event
Reviewed-by: ayang, tschatzl
2021-05-11 11:35:48 +00:00
Matthias Baesken
9e6e2228cb 8266892: avoid maybe-uninitialized gcc warnings on linux s390x
Reviewed-by: shade, lucy
2021-05-11 10:49:15 +00:00
Albert Mingkun Yang
6575566d83 8266787: Potential overflow of pointer arithmetic in G1ArchiveAllocator
Reviewed-by: kbarrett, tschatzl
2021-05-11 10:34:56 +00:00
Jan Lahoda
8468001f88 8263452: Javac slow compilation due to algorithmic complexity
Reviewed-by: vromero, jfranck
2021-05-11 10:06:04 +00:00
Cesar
67cb22af58 8266601: Fix bugs in AddLNode::Ideal transformations
Reviewed-by: kvn, vlivanov, thartmann
2021-05-11 09:28:37 +00:00
Hamlin Li
18e9d28e8a 8266676: G1: Remove dead code init_node_id_to_index_map()
Reviewed-by: sangheki, whuang
2021-05-11 04:28:42 +00:00
Denis Konoplev
0e7bdae0f6 8265062: Remove duplication constant MaxTextureSize
Reviewed-by: prr, serb
2021-05-11 03:24:01 +00:00
Wang Huang
10a049e171 8265956: JVM crashes when matching LShiftVB Node
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Ai Jiaming <aijiaming1@huawei.com>
Reviewed-by: kvn, jiefu
2021-05-11 03:20:15 +00:00
Alex Menkov
9713152eae 8262092: vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t001/TestDescription.java SIGSEGV in memmove_ssse3
Reviewed-by: lmesnik, sspitsyn
2021-05-10 22:48:01 +00:00
Sandhya Viswanathan
23446f1f5e 8265128: [REDO] Optimize Vector API slice and unslice operations
Reviewed-by: psandoz, vlivanov
2021-05-10 21:49:49 +00:00
Aleksey Shipilev
e5d3ee394a 8266802: Shenandoah: Round up region size to page size unconditionally
Reviewed-by: zgu
2021-05-10 20:28:16 +00:00
Hannes Wallnöfer
8851cb653f 8266779: Use <wbr> instead of ZERO_WIDTH_SPACE
Reviewed-by: prappo
2021-05-10 20:25:43 +00:00
Jim Laskey
0cc7833f3d 8265208: [JEP-356] : SplittableRandom and SplittableGenerators - splits() methods does not throw NullPointerException when source is null
Reviewed-by: rriggs
2021-05-10 18:52:02 +00:00
Zhengyu Gu
f78440ad43 8266440: Shenandoah: TestReferenceShortcutCycle.java test failed on AArch64
Reviewed-by: aph
2021-05-10 17:59:54 +00:00
Cesar
de784312c3 8241502: C2: Migrate x86_64.ad to MacroAssembler
Reviewed-by: vlivanov, kvn
2021-05-10 17:09:34 +00:00
Alexey Semenyuk
c8b744743b 8266603: jpackage: Add missing copyright file in Java runtime .deb installers
Reviewed-by: almatvee, herrick
2021-05-10 16:39:39 +00:00
Naoto Sato
c494efc5b5 8266774: System property values for stdout/err on Windows UTF-8
Reviewed-by: bpb, alanb
2021-05-10 16:25:30 +00:00
Calvin Cheung
25d99e5267 8266330: itableMethodEntry::initialize() asserts with archived old classes
Reviewed-by: iklam, minqi
2021-05-10 16:24:11 +00:00
Guoxiong Li
5d761fcffd 8266796: Clean up the unnecessary code in the method UnsharedNameTable#fromUtf
Reviewed-by: mcimadamore
2021-05-10 14:27:21 +00:00
Claes Redestad
e41fd73529 8266252: Streamline AbstractInterpreter::method_kind
Reviewed-by: iklam, coleenp
2021-05-10 13:51:12 +00:00
Vyom Tewari
b823b3ef29 8266797: Fix for 8266610 breaks the build on macos
Reviewed-by: dholmes, jdv
2021-05-10 13:40:28 +00:00
Jayathirth D V
53db2a0acd 8226384: Implement a better logic to switch between OpenGL and Metal pipeline
Reviewed-by: prr
2021-05-10 10:36:23 +00:00
Alexey Bakhtin
1603ca2342 8241248: NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93)
Reviewed-by: jnimeh, xuelei
2021-05-10 09:45:35 +00:00
Claes Redestad
0f925d1f58 8266015: Implement AdapterHandlerLibrary lookup fast-path for common adapters
Reviewed-by: iklam, coleenp
2021-05-10 08:02:15 +00:00
Vyom Tewari
69b96f9a1b 8266610: Method RandomAccessFile#length() returns 0 for block devices on linux.
Reviewed-by: alanb, bpb
2021-05-10 03:51:04 +00:00
Alexander Zuev
9b76955024 8266249: javax/swing/JPopupMenu/7156657/bug7156657.java fails on macOS
Reviewed-by: jdv, pbansal, azvegint
2021-05-10 03:21:52 +00:00
Pankaj Bansal
3af4efdfcf 8265291: Error in Javadoc for doAccessibleAction API in AccessibleJSlider class
Reviewed-by: azvegint, jdv
2021-05-08 10:56:29 +00:00
Alan Bateman
be4f25b0c8 8266369: (se) Add wepoll based Selector
Reviewed-by: chegar, michaelm, vtewari, dfuchs, bpb
2021-05-08 07:14:36 +00:00
Guoxiong Li
ff77ca8bd4 8266675: Optimize IntHashTable for encapsulation and ease of use
Reviewed-by: mcimadamore
2021-05-08 03:09:27 +00:00
Yumin Qi
04fad70437 8266765: [BACKOUT] JDK-8255493 Support for pre-generated java.lang.invoke classes in CDS dynamic archive
Reviewed-by: ccheung
2021-05-07 23:49:00 +00:00
Kevin Walls
0790e6016e 8196743: jstatd doesn't see new Java processes inside Docker container
Reviewed-by: sspitsyn, ysuenaga
2021-05-07 15:43:09 +00:00
Hannes Wallnöfer
c6aa8f19ac 8232644: bugs in serialized-form.html
Reviewed-by: jjg
2021-05-07 15:34:53 +00:00
Brian Burkhalter
b5b31197e5 8266589: (fs) Improve performance of Files.copy() on macOS using copyfile(3)
Reviewed-by: alanb
2021-05-07 15:23:38 +00:00
Jonathan Gibbons
947d69df04 8265042: javadoc HTML files not generated for types nested in records
Reviewed-by: hannesw
2021-05-07 14:51:03 +00:00
Vicente Romero
946b0fe19a 8266645: javac should not check for sealed supertypes in intersection types
Reviewed-by: mcimadamore
2021-05-07 14:38:18 +00:00
Thomas Stuefe
74fecc070a 8266503: [UL] Make Decorations safely copy-able and reduce their size
Reviewed-by: simonis, ysuenaga
2021-05-07 14:04:27 +00:00
Patrick Concannon
86b8dc9f5b 8265426: Update java.security to use instanceof pattern variable
Reviewed-by: rriggs, weijun, dfuchs
2021-05-07 13:42:40 +00:00
Daniel Fuchs
3fcdc50e44 8266646: Add more diagnostic to java/lang/System/LoggerFinder/modules
Reviewed-by: naoto, iris, bpb, lancea
2021-05-07 12:56:49 +00:00
Wang Huang
9a19a0cc10 8264760: JVM crashes when two threads encounter the same resolution error
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Wu Yan <wuyan34@huawei.com>
Reviewed-by: dholmes, hseigel
2021-05-07 12:55:40 +00:00
Thomas Schatzl
14f0afe811 8214237: Join parallel phases post evacuation
Reviewed-by: iwalulya, sjohanss
2021-05-07 11:38:29 +00:00
Stefan Johansson
2798b0d98a 8266349: Pass down requested page size to reserve_memory_special
Reviewed-by: stuefe, mgkwill
2021-05-07 11:33:10 +00:00
Hannes Wallnöfer
e0c86884e5 8262992: Improve @see output
Reviewed-by: jjg
2021-05-07 10:45:48 +00:00
Hannes Wallnöfer
d2b53509c0 8263507: Improve structure of package summary pages
Reviewed-by: jjg
2021-05-07 10:44:02 +00:00
Tobias Hartmann
a65021e38c 8266618: Remove broken -XX:-OptoRemoveUseless
Reviewed-by: kvn, neliasso
2021-05-07 09:55:08 +00:00
Thomas Stuefe
94c6177f24 8266536: Provide a variant of os::iso8601_time which works with arbitrary timestamps
Reviewed-by: xliu, simonis, ysuenaga
2021-05-07 09:47:46 +00:00
Nick Gasson
71b8ad45b4 8266609: AArch64: include FP/LR space in LIR_Assembler::initial_frame_size_in_bytes()
Reviewed-by: aph
2021-05-07 09:20:16 +00:00
Tejpal Rebari
ebb68d2b86 8049700: Deprecate obsolete classes and methods in javax/swing/plaf/basic
Reviewed-by: psadhukhan, prr, serb, azvegint, iris
2021-05-07 05:12:57 +00:00
Lin Zang
3a474d953a 8265612: revise the help info for jmap histo command
Reviewed-by: cjplummer, sspitsyn
2021-05-07 04:40:49 +00:00
Yasumasa Suenaga
c97f56cdaf 8266172: -Wstringop-overflow happens in vmError.cpp
Reviewed-by: dholmes, stuefe
2021-05-07 03:21:28 +00:00
Yumin Qi
43ad24feb2 8265465: jcmd VM.cds should keep already dumped archive when exception happens
Reviewed-by: iklam, ccheung
2021-05-07 03:01:32 +00:00
buddyliao
66191ff4b0 8266193: BasicJMapTest does not include testHistoParallel methods
Reviewed-by: sspitsyn, amenkov
2021-05-07 02:57:32 +00:00
Aleksey Shipilev
36e5ad61e6 8263236: runtime/os/TestTracePageSizes.java fails on old kernels
Reviewed-by: dholmes, sjohanss, stuefe
2021-05-06 20:34:49 +00:00
Alex Menkov
0ca86da0e3 8266002: vmTestbase/nsk/jvmti/ClassPrepare/classprep001 should skip events for unexpected classes
Reviewed-by: cjplummer, sspitsyn
2021-05-06 18:38:11 +00:00
Alex Menkov
52f1db6b6f 8262002: java/lang/instrument/VerifyLocalVariableTableOnRetransformTest.sh failed with "TestCaseScaffoldException: DummyClassWithLVT did not match .class file"
Reviewed-by: coleenp, sspitsyn
2021-05-06 18:34:12 +00:00
Weijun Wang
04f7112647 8266293: Key protection using PBEWithMD5AndDES fails with "java.security.InvalidAlgorithmParameterException: Salt must be 8 bytes long"
Reviewed-by: valeriep
2021-05-06 18:00:11 +00:00
Aleksey Shipilev
a90b33a955 8266573: Make sure blackholes are tagged for all JVMCI paths
Reviewed-by: never
2021-05-06 16:42:06 +00:00
Hannes Wallnöfer
2dcbedf92a 8266044: Nested class summary should show kind of class or interface
Reviewed-by: jjg
2021-05-06 14:55:00 +00:00
Lance Andersen
e8405970b9 8266460: java.io tests fail on null stream with upgraded jtreg/TestNG
Reviewed-by: bpb
2021-05-06 14:18:41 +00:00
Lance Andersen
fcedfc8a3b 8266579: Update test/jdk/java/lang/ProcessHandle/PermissionTest.java & test/jdk/java/sql/testng/util/TestPolicy.java
Reviewed-by: joehw, naoto, bpb
2021-05-06 14:13:45 +00:00
Claes Redestad
c665dba591 8266561: Remove Compile::_save_argument_registers
Reviewed-by: kvn, thartmann
2021-05-06 12:57:44 +00:00
Albert Mingkun Yang
47d4438e75 8266426: ZHeapIteratorOopClosure does not handle native access properly
Co-authored-by: Per Liden <pliden@openjdk.org>
Co-authored-by: Erik Österlund <eosterlund@openjdk.org>
Co-authored-by: Stefan Karlsson <stefank@openjdk.org>
Reviewed-by: stefank, pliden
2021-05-06 12:52:34 +00:00
Jayathirth D V
2438498a3f 8252758: Lanai: Optimize index calculation while copying glyphs
Reviewed-by: aghaisas, pbansal
2021-05-06 12:35:13 +00:00
Harold Seigel
eb3b96d86b 8266496: WBIsKlassAliveClosure.do_klass() fails for hidden classes
Reviewed-by: dholmes, coleenp, mseledtsov, lfoltan
2021-05-06 12:25:53 +00:00
Koichi Sakata
51f5adfca3 8265047: Inconsistent warning message in jcmd VM.log
Reviewed-by: dholmes, stuefe, sspitsyn
2021-05-06 12:07:22 +00:00
Matthias Baesken
ea30bd6684 8263362: Avoid division by 0 in java/awt/font/TextJustifier.java justify
Reviewed-by: psadhukhan
2021-05-06 11:57:20 +00:00
Yasumasa Suenaga
0f9852c63b 8266168: -Wmaybe-uninitialized happens in check_code.c
Reviewed-by: stuefe
2021-05-06 11:54:32 +00:00
Thomas Stuefe
a86ee9b3f3 8266545: 8261169 broke Harfbuzz build with gcc 7 and 8
Reviewed-by: mbaesken, rrich
2021-05-06 09:22:32 +00:00
wattsun
2dd56676fb 8266018: Shenandoah: fix an incorrect assert
Reviewed-by: rkennke
2021-05-06 09:16:35 +00:00
Tobias Hartmann
22ca62c2cb 8266542: Remove broken -XX:-UseLoopSafepoints flag
Reviewed-by: tschatzl, kvn
2021-05-06 07:36:28 +00:00
miao zheng
7835cdbef4 8265915: adjust state_unloading_cycle compuation order in nmethod::is_unloading
Reviewed-by: thartmann
2021-05-06 07:10:21 +00:00
Sibabrata Sahoo
20ad428974 8180568: Refactor javax/crypto shell tests to plain java tests
Reviewed-by: wetmore
2021-05-06 05:50:22 +00:00
Phil Race
138d573c35 8262392: Update Mesa 3-D Headers to version 21.0.3
Reviewed-by: serb, jdv, kcr
2021-05-05 19:39:15 +00:00
Roman Kennke
9de62a454f 8266505: Cleanup LibraryCallKit::make_unsafe_address()
Reviewed-by: roland, kvn
2021-05-05 19:18:06 +00:00
Roman Kennke
1885c83aca 8266504: Remove leftovers from BarrierSetAssemblerC1
Reviewed-by: thartmann
2021-05-05 19:17:16 +00:00
Aleksey Shipilev
6018336fc5 8259316: [REDO] C1/C2 compiler support for blackholes
Reviewed-by: vlivanov, kvn, iignatyev
2021-05-05 14:27:21 +00:00
Hannes Wallnöfer
f07bb2f4b9 8250766: javadoc adds redundant spaces when @see program element is wrapped
Reviewed-by: prappo
2021-05-05 14:01:01 +00:00
Zhengyu Gu
61bb6eca3e 8266453: Shenandoah: Disable write protections before patching nmethod in nmethod_barrier on MacOSX/AArch64
Reviewed-by: rkennke
2021-05-05 13:00:17 +00:00
Coleen Phillimore
a05e8e2422 8266497: Remove unnecessary EMCP liveness indication
Reviewed-by: iklam, dholmes, sspitsyn
2021-05-05 12:59:39 +00:00
Coleen Phillimore
6ba911d64e 8266498: Make debug ps() call print_stack
Reviewed-by: stuefe, lfoltan
2021-05-05 12:44:26 +00:00
Andrew Haley
ef0f693065 8266499: Delete dead code in aarch64.ad
Reviewed-by: kvn
2021-05-05 12:17:01 +00:00
Zhengyu Gu
71d0858b32 8266522: Shenandoah: Shenandoah LRB calls wrong runtime barrier on aarch64
Reviewed-by: rkennke
2021-05-05 12:14:12 +00:00
Thomas Stuefe
0ac84d1813 8266506: [aix] Treat mapping attempt too close to BRK as a mapping error
Reviewed-by: mdoerr
2021-05-05 11:57:20 +00:00
Thomas Stuefe
02cdd6eb6d 8266419: [aix] in mmap mode, os::attempt_reserve_memory_at() fails to handle wrong mapping address
Reviewed-by: mdoerr
2021-05-05 11:54:57 +00:00
Thomas Stuefe
250b45a510 8266222: [aix] In mmap-mode, partial releases with os::release_memory may trash internal bookkeeping
Reviewed-by: mdoerr
2021-05-05 11:49:44 +00:00
Roman Kennke
65ce4d2056 8266491: Remove resolve and obj_equals leftovers from BarrierSetAssembler
Reviewed-by: tschatzl
2021-05-05 10:42:21 +00:00
Jan Lahoda
a8046c9157 8266436: Synthetic constructor trees have non-null return type
Reviewed-by: vromero
2021-05-05 10:31:11 +00:00
Athijegannathan Sundararajan
c9873c416d 8260621: (jrtfs) ThreadLocal memory leak in ImageBufferCache when using jrtfs
Reviewed-by: jlaskey, vtewari
2021-05-05 10:10:05 +00:00
Fairoz Matte
82768d9a31 8221503: vmTestbase/nsk/jdb/eval/eval001/eval001.java fails with: com.sun.jdi.InvalidTypeException: Can't assign double[][][] to double[][][]
Reviewed-by: cjplummer, sspitsyn
2021-05-05 07:11:14 +00:00
Prasanta Sadhukhan
b71f85ad9d 8264398: BevelBorderUIResource​(int, Color, Color) and BevelBoder(int, Color, Color) spec should clarify about usage of highlight and shadow color
Reviewed-by: serb
2021-05-05 06:19:54 +00:00
Yasumasa Suenaga
b1725550a2 8266171: -Warray-bounds happens in imageioJPEG.c
Reviewed-by: prr
2021-05-05 00:34:26 +00:00
Yasumasa Suenaga
8bcebe73d2 8265505: findsym does not work on remote debug server
Reviewed-by: cjplummer, kevinw
2021-05-05 00:26:12 +00:00
Yasumasa Suenaga
b88785d2c6 8266038: Move newAddress() to JVMDebugger
Reviewed-by: kevinw, amenkov
2021-05-05 00:22:00 +00:00
Alexander Matveev
2c53654bf1 8266179: [macos] jpackage should specify architecture for produced pkg files
Reviewed-by: herrick, kcr, asemenyuk
2021-05-04 23:35:24 +00:00
David Holmes
d2827994f8 8255566: Add size validation when parsing values from VersionProps
Reviewed-by: rehn, iklam
2021-05-04 22:24:41 +00:00
David Holmes
61365d5f58 8266465: Add wildcard to JTwork/JTreport exclude in jib-profiles.js
Reviewed-by: erikj
2021-05-04 22:07:24 +00:00
Jim Laskey
f00b70e2ca 8266527: RandomTestCoverage.java failing due to API removal
Reviewed-by: rriggs
2021-05-04 21:18:48 +00:00
Andy Herrick
c53dee7480 8266227: Fix help text for --mac-signing-keychain
Reviewed-by: almatvee, asemenyuk
2021-05-04 20:10:37 +00:00
Phil Race
80323b7f66 8261169: Upgrade HarfBuzz to the latest 2.8.0
Reviewed-by: serb
2021-05-04 18:23:09 +00:00
Phil Race
9c4efddb4a 8263124: Missed initialization of baselineY in sun.font.StrikeMetrics
Reviewed-by: azvegint, kizune, pbansal
2021-05-04 18:03:46 +00:00
Naoto Sato
4e96b31042 8265989: System property for the native character encoding name
Reviewed-by: iris, joehw, rriggs
2021-05-04 17:30:14 +00:00
Yumin Qi
8b37d48770 8255493: Support for pre-generated java.lang.invoke classes in CDS dynamic archive
Reviewed-by: iklam, ccheung
2021-05-04 17:18:43 +00:00
Jim Laskey
770dfc1ec4 8265279: Remove unused RandomGeneratorFactory.all(Class<T> category)
Reviewed-by: rriggs
2021-05-04 13:26:08 +00:00
Hui Shi
ee5bba0dc4 8265767: compiler/eliminateAutobox/TestIntBoxing.java crashes on arm32 after 8264649 in debug VMs
Reviewed-by: kvn, thartmann
2021-05-04 12:58:25 +00:00
Jim Laskey
05e601748a 8265137: java.util.Random suddenly has new public methods nowhere documented
Reviewed-by: uschindler, darcy, smarks
2021-05-04 11:53:07 +00:00
Wang Huang
aa90df6f51 8266187: Memory leak in appendBootClassPath()
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Sun Jianye <sunjianye@huawei.com>
Reviewed-by: kevinw, mli, alanb
2021-05-04 10:02:22 +00:00
Tobias Hartmann
b65190483c 8266438: Compile::remove_useless_nodes does not remove opaque nodes
Reviewed-by: vlivanov, chagedorn
2021-05-04 09:42:16 +00:00
Stefan Johansson
141cc2f2a3 8261527: Record page size used for underlying mapping in ReservedSpace
Reviewed-by: rkennke, iwalulya
2021-05-04 09:00:10 +00:00
Martin Doerr
8e071c4b52 8265784: [C2] Hoisting of DecodeN leaves MachTemp inputs behind
Reviewed-by: kvn, goetz
2021-05-04 07:56:42 +00:00
Stefan Karlsson
ce1bc9d8bc 8266432: ZGC: GC allocation stalls can trigger deadlocks
Reviewed-by: pliden, ayang
2021-05-04 07:27:59 +00:00
Tejpal Rebari
30ccd8081b 8264950: Set opaque for JTooltip in config file of NimbusLookAndFeel
Reviewed-by: serb, pbansal
2021-05-04 04:53:25 +00:00
Igor Ignatyev
cfdf4a7de7 8266449: cleanup jtreg tags in compiler/intrinsics/sha/cli tests
Reviewed-by: kvn
2021-05-04 04:47:18 +00:00
Mandy Chung
3544a9d0e4 8266391: Replace use of reflection in jdk.internal.platform.Metrics
Reviewed-by: redestad
2021-05-03 21:58:37 +00:00
Sergey Bylokhov
020236cb98 8264786: [macos] All Swing/AWT apps cause Allow Notifications prompt to appear when app is launched
Reviewed-by: azvegint, kizune
2021-05-03 20:53:35 +00:00
Philippe Marschall
45760d4baf 8266320: (bf) ReadOnlyBufferException in heap buffer put(String,int,int) should not be conditional
Reviewed-by: alanb, bpb
2021-05-03 17:28:46 +00:00
Marcus G K Williams
ff65920cd1 8265491: Math Signum optimization for x86
Reviewed-by: jiefu, jbhateja, neliasso
2021-05-03 16:28:14 +00:00
Yude Lin
55cc0af404 8266185: Shenandoah: Fix incorrect comment/assertion messages
Reviewed-by: shade
2021-05-03 15:23:49 +00:00
Evgeny Nikitin
880c138b58 8265349: vmTestbase/../stress/compiler/deoptimize/Test.java fails with OOME due to CodeCache exhaustion.
Reviewed-by: iignatyev
2021-05-03 14:32:18 +00:00
Yi Yang
001c5142a6 8265322: C2: Simplify control inputs for BarrierSetC2::obj_allocate
Reviewed-by: kvn, neliasso
2021-05-03 14:22:26 +00:00
Per Liden
194bceca3a 8265984: Concurrent GC: Some tests fail "assert(is_frame_safe(f)) failed: Frame must be safe"
Reviewed-by: eosterlund, stefank, zgu
2021-05-03 13:34:49 +00:00
Zhengyu Gu
1d9ea3ae0f 8266083: Shenandoah: Consolidate dedup/no dedup oop closures
Reviewed-by: rkennke
2021-05-03 12:35:26 +00:00
Albert Mingkun Yang
80941f475f 8234446: Post-CMS workgroup hierarchy cleanup
Reviewed-by: tschatzl, rkennke
2021-05-03 11:45:06 +00:00
Albert Mingkun Yang
ac760c7f9f 8266295: Remove unused _concurrent_iteration_safe_limit
Reviewed-by: tschatzl, sjohanss
2021-05-03 10:06:57 +00:00
Vladimir Ivanov
b42d4969b1 8266388: C2: Improve constant ShiftCntV on x86
Reviewed-by: kvn
2021-05-03 09:46:49 +00:00
Claes Redestad
05cfac9f5b 8266412: Remove redundant TemplateInterpreter entries
Reviewed-by: jiefu, dholmes
2021-05-03 09:22:58 +00:00
Per Liden
c5dc657f0b 8266056: runtime/stringtable/StringTableCleaningTest.java failed with "RuntimeException: Missing Callback in [10, 11]"
Reviewed-by: coleenp, dholmes
2021-05-03 07:28:19 +00:00
Ajit Ghaisas
8fa50ebdf2 8263363: Minor cleanup of Lanai code - unused code removal and comments correction
Reviewed-by: serb
2021-05-03 04:37:24 +00:00
Jie Fu
7e30130e35 8266401: mark hotspot compiler/intrinsics/sha/cli tests which ignore VM flags
Reviewed-by: iignatyev, kvn
2021-05-02 23:13:22 +00:00
Sergey Bylokhov
dedddd5ab2 8266248: Compilation failure in PLATFORM_API_MacOSX_MidiUtils.c with Xcode 12.5
Reviewed-by: prr, azvegint
2021-05-02 05:29:12 +00:00
Andy Herrick
5c083e8560 8266129: tools/jpackage/windows/WinInstallerIconTest.java hangs with fastdebug
Reviewed-by: asemenyuk, almatvee
2021-05-01 12:03:12 +00:00
Tagir F. Valeev
3e667cc405 8265356: need code example for getting canonical constructor of a Record
Reviewed-by: smarks
2021-05-01 07:30:55 +00:00
Vladimir Ivanov
f86b70c391 8266328: C2: Remove InlineWarmCalls
Reviewed-by: kvn, iveresov
2021-04-30 22:17:04 +00:00
Rahul Raghavan
928d63242e 8252237: C2: Call to compute_separating_interferences has wrong argument order
Reviewed-by: kvn, thartmann
2021-04-30 20:15:48 +00:00
Daniel D. Daugherty
50fa1623ad 8266389: ProblemList java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java on generic-all
Reviewed-by: mikael, prr
2021-04-30 19:55:19 +00:00
Ian Graves
dd05158b24 8266155: Convert java.base to use Stream.toList()
Reviewed-by: bpb, naoto, iris, chegar
2021-04-30 19:52:26 +00:00
Ian Graves
c36c63a008 8260560: convert jdeps and jdeprscan tools to use Stream.toList()
Reviewed-by: alanb, mchung, iris
2021-04-30 19:51:36 +00:00
Mikael Vidstedt
096e9e5d13 8266318: Switch to macos prefix for macOS bundles
Reviewed-by: prr, erikj, iris
2021-04-30 19:05:39 +00:00
Daniel Fuchs
0544a732a4 8255227: java/net/httpclient/FlowAdapterPublisherTest.java intermittently failing with TestServer: start exception: java.io.IOException: Invalid preface
Reviewed-by: chegar
2021-04-30 17:21:55 +00:00
Weijun Wang
48bb996ac9 8266220: keytool still prompt for store password on a password-less pkcs12 file if -storetype pkcs12 is specified
Reviewed-by: coffeys, hchao
2021-04-30 14:04:13 +00:00
Alexey Ushakov
87de5b750d 8266040: Lanai: Incorrect calculations of clipping boundaries
Reviewed-by: jdv
2021-04-30 13:53:58 +00:00
Aleksei Voitylov
eb8db12ce6 8263396: Atomic::CmpxchgByteUsingInt::set_byte_in_int needs an explicit cast
Reviewed-by: dholmes
2021-04-30 12:34:19 +00:00
Hannes Wallnöfer
07ecd421d1 8258602: JavaDoc field summary does not indicate final modifier
Reviewed-by: jjg
2021-04-30 09:48:09 +00:00
Sean Coffey
276a1bf767 8236671: NullPointerException in JKS keystore
Reviewed-by: hchao, xuelei
2021-04-30 09:32:40 +00:00
Alexander Scherbatiy
e9370a13b6 8265761: Font with missed font family name is not properly printed on Windows
Reviewed-by: serb, prr
2021-04-30 08:46:58 +00:00
Rahul Raghavan
3554dc299d 8264395: WB_EnqueueInitializerForCompilation fails with "method holder must be initialized" when called for uninitialized class
Reviewed-by: chagedorn, thartmann
2021-04-30 08:23:57 +00:00
Hannes Wallnöfer
4d77171540 8249903: jdk/javadoc/doclet/testSerializedForm/TestSerializedForm.java needs to be updated after 8146022 got closed
Reviewed-by: jjg
2021-04-30 07:47:39 +00:00
Jie Fu
51b218842f 8266267: Remove unnecessary jumps in Intel Math Library StubRoutines
Reviewed-by: thartmann, neliasso, kvn
2021-04-30 02:30:44 +00:00
Ioi Lam
2c381e0f8d 8262376: ReplaceCriticalClassesForSubgraphs.java fails if --with-build-jdk is used
Reviewed-by: dholmes, minqi, ccheung
2021-04-29 23:22:49 +00:00
Jie Fu
5ecef01c4a 8266217: ZGC: Improve the -Xlog:gc+init output for NUMA
Reviewed-by: stefank, tschatzl, pliden
2021-04-29 23:06:35 +00:00
Valerie Peng
5d8c1cc8a0 8255410: Add ChaCha20 and Poly1305 support to SunPKCS11 provider
Reviewed-by: jnimeh
2021-04-29 21:02:41 +00:00
Phil Race
46b4a145a6 8266315: Problem list failing test java/awt/font/TextLayout/LigatureCaretTest.java
Reviewed-by: dcubed
2021-04-29 19:13:22 +00:00
Patricio Chilano Mateo
42af7da94d 8265933: Move Java monitor related fields from class Thread to JavaThread
Reviewed-by: rehn, dcubed, coleenp, dholmes
2021-04-29 18:13:27 +00:00
Yumin Qi
1afbab6394 8263998: Remove mentions of mc region in comments
Reviewed-by: ccheung
2021-04-29 17:30:50 +00:00
Daniel D. Daugherty
51b2fb5c84 8266299: ProblemList runtime/stringtable/StringTableCleaningTest.java on linux-aarch64 with ZGC
Reviewed-by: bpb
2021-04-29 17:24:05 +00:00
Jamsheed Mohammed C M
49d04586ed 8266288: assert root method not found in witnessed_reabstraction_in_supers is too strong
Reviewed-by: vlivanov, thartmann
2021-04-29 16:16:42 +00:00
Daniel Fuchs
01415f33e3 8266250: WebSocketTest and WebSocketProxyTest call assertEquals(List<byte[]>, List<byte[]>)
Reviewed-by: prappo
2021-04-29 16:15:06 +00:00
Brian Burkhalter
5f15666092 8266078: Reader.read(CharBuffer) advances Reader position for read-only Charbuffers
Reviewed-by: rriggs, alanb, chegar
2021-04-29 15:54:11 +00:00
Brian Burkhalter
2a03739530 8266014: Regression brought by optimization done with JDK-4926314
Reviewed-by: alanb, naoto
2021-04-29 15:35:14 +00:00
Brian Burkhalter
6bb71d9e25 8264762: ByteBuffer.byteOrder(BIG_ENDIAN).asXBuffer.put(Xarray) and ByteBuffer.byteOrder(nativeOrder()).asXBuffer.put(Xarray) are slow
Reviewed-by: alanb, psandoz, chegar
2021-04-29 15:34:04 +00:00
Jan Lahoda
f0f6b0d919 8266027: The diamond finder does not find diamond candidates in field initializers
Reviewed-by: jfranck, vromero
2021-04-29 14:55:28 +00:00
Jan Lahoda
8072ea5628 8238173: jshell - switch statement with a single default not return cause syntax error
Reviewed-by: vromero
2021-04-29 14:54:39 +00:00
Thomas Schatzl
c76ce28754 8265842: G1: Introduce API to run multiple separate tasks in a single gangtask
Reviewed-by: lkorinth, ayang, sjohanss, iwalulya
2021-04-29 14:44:14 +00:00
Naoto Sato
294347b59b 8265918: java/io/Console/CharsetTest.java failed with "expect: spawn id exp6 not open"
Reviewed-by: alanb, iris
2021-04-29 13:01:30 +00:00
Andrew Leonard
84b52db931 8265666: Enable AIX build platform to make external debug symbols
Reviewed-by: erikj, mdoerr
2021-04-29 12:35:56 +00:00
Prasanta Sadhukhan
dd8286e2f3 8198616: java/awt/Focus/6378278/InputVerifierTest.java fails on mac
Reviewed-by: jdv
2021-04-29 10:54:27 +00:00
Prasanta Sadhukhan
5574922ff6 8266284: ProblemList java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java
Reviewed-by: jdv
2021-04-29 10:37:31 +00:00
Jan Lahoda
df7f0b4671 8198317: Enhance JavacTool.getTask for flexibility
Co-authored-by: Guoxiong Li <lgxbslgx@gmail.com>
Reviewed-by: jfranck
2021-04-29 09:38:24 +00:00
Julia Boes
115a413ee4 8265123: Add static factory methods to com.sun.net.httpserver.Filter
Co-authored-by: Michael McMahon <michaelm@openjdk.org>
Reviewed-by: chegar, michaelm, dfuchs
2021-04-29 09:07:46 +00:00
Yasumasa Suenaga
39abac98f9 8266176: -Wmaybe-uninitialized happens in libArrayIndexOutOfBoundsExceptionTest.c
Reviewed-by: dholmes
2021-04-29 07:59:35 +00:00
Alexey Ushakov
155da257fd 8265005: Introduce the new client property for mac: apple.awt.windowTitleVisible
Reviewed-by: serb
2021-04-29 07:31:10 +00:00
Jie Fu
91226fa122 8265940: Enable C2's optimization for Math.pow(x, 0.5) on all platforms
Reviewed-by: neliasso, kvn
2021-04-29 07:01:15 +00:00
Igor Ignatyev
56cde70da2 8266265: mark hotspot compiler/vectorization tests which ignore VM flags
Reviewed-by: kvn
2021-04-29 04:53:07 +00:00
Yasumasa Suenaga
49372149e5 8266174: -Wmisleading-indentation happens in libmlib_image sources
Reviewed-by: azvegint
2021-04-29 04:21:57 +00:00
Igor Ignatyev
b305eff7d3 8266238: mark hotspot compiler/inlining tests which ignore VM flags
Reviewed-by: kvn
2021-04-29 03:52:24 +00:00
Igor Ignatyev
df3b2d0495 8266264: mark hotspot compiler/eliminateAutobox tests which ignore VM flags
Reviewed-by: kvn
2021-04-29 03:51:40 +00:00
Igor Ignatyev
6b263e6832 8266256: compiler.vectorization.TestBufferVectorization does testing twice
Reviewed-by: kvn
2021-04-29 03:50:44 +00:00
Igor Ignatyev
69155f43c1 8266231: mark hotspot compiler/c1 tests which ignore VM flags
Reviewed-by: kvn
2021-04-29 03:35:29 +00:00
Prasanta Sadhukhan
0e225ef9da 8197821: Test java/awt/font/TextLayout/LigatureCaretTest.java fails on Windows
8197796: Test java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java  fails on Windows

Reviewed-by: azvegint, serb
2021-04-29 03:02:22 +00:00
Yasumasa Suenaga
a1c942c02b 8266170: -Wnonnull happens in classLoaderData.inline.hpp
Reviewed-by: dholmes, coleenp
2021-04-29 01:05:05 +00:00
Yasumasa Suenaga
4a9f2319c9 8266173: -Wmaybe-uninitialized happens in jni_util.c
Reviewed-by: dholmes
2021-04-29 01:04:20 +00:00
Igor Ignatyev
9605aeddee 8266251: compiler.inlining.InlineAccessors shouldn't do testing in driver VM
Reviewed-by: kvn, epavlova
2021-04-29 00:12:56 +00:00
Igor Ignatyev
03d4149d0c 8266255: compiler/eliminateAutobox/TestEliminateBoxInDebugInfo.java uses wrong package name
Reviewed-by: kvn
2021-04-29 00:12:08 +00:00
Jie Fu
794cefe8f9 8241354: ZGC still crashes in containers with NUMA due to get_mempolicy is disabled by default
Co-authored-by: Per Liden <pliden@openjdk.org>
Reviewed-by: pliden
2021-04-28 22:37:29 +00:00
David Holmes
23180f848f 8266017: Refactor the *klass::array_klass_impl code to separate the non-exception-throwing API
Reviewed-by: coleenp, iklam
2021-04-28 20:52:50 +00:00
Igor Ignatyev
f75dd80254 8266230: mark hotspot compiler/c2 tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 20:47:57 +00:00
Claes Redestad
9df6cc7cc2 8264678: Incomplete comment in build.tools.generatecharacter.GenerateCharacter
Reviewed-by: erikj, naoto, iris
2021-04-28 19:51:01 +00:00
Igor Ignatyev
73cfc26dc2 8266232: compiler.c1.TestRangeCheckEliminated should be run in driver mode
Reviewed-by: kvn
2021-04-28 19:50:22 +00:00
Phil Race
3e1b90a2ef 8266157: Problem list several awt jtreg tests that fail on macOS 11
Reviewed-by: dcubed, pbansal
2021-04-28 19:03:33 +00:00
Igor Ignatyev
3f9879f1cd 8266190: mark hotspot compiler/codecache tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 18:47:19 +00:00
Calvin Cheung
d12e01a5cd 8264472: Add a test group for running CDS tests with -XX:+VerifySharedSpaces
Reviewed-by: iklam, mseledtsov
2021-04-28 18:20:51 +00:00
Mandy Chung
b3b2bb2875 8265773: incorrect jdeps message "jdk8internals" to describe a removed JDK internal API
Reviewed-by: alanb
2021-04-28 17:34:43 +00:00
Sean Mullan
278057756a 8196415: Disable SHA-1 Signed JARs
Reviewed-by: coffeys
2021-04-28 17:13:21 +00:00
Aleksey Shipilev
21f65f8e79 8266206: Build failure after JDK-8264752 with older GCCs
Reviewed-by: mgronlun
2021-04-28 16:41:51 +00:00
Igor Ignatyev
c71c26859f 8266165: TestNoWarningLoopStripMiningIterSet is runnable only on VM w/ G1, Shenandoah, Z and Epsilon
Reviewed-by: roland
2021-04-28 16:30:27 +00:00
Igor Ignatyev
8954befd77 8266188: mark hotspot compiler/cpuflags tests which ignore VM flags
Reviewed-by: chagedorn, thartmann
2021-04-28 15:46:16 +00:00
Igor Ignatyev
19d3c451b8 8266184: a few compiler/debug tests don't check exit code
Reviewed-by: thartmann
2021-04-28 15:45:23 +00:00
Fernando Guallini
7e3bc4cb44 8228442: DHKeyExchange/LegacyDHEKeyExchange.java failed due to "SSLException: An established connection was aborted by the software in your host machine"
Reviewed-by: xuelei
2021-04-28 15:40:53 +00:00
Harold Seigel
f40bf1d240 8266087: Move 'buffer' declaration in get_user_name_slow() inside of linux specific code
Reviewed-by: zgu, dcubed
2021-04-28 14:50:12 +00:00
Fernando Guallini
ec383abc1d 8183374: Refactor java/lang/Runtime shell tests to java
Reviewed-by: coffeys
2021-04-28 14:00:23 +00:00
Sibabrata Sahoo
343a4a76f2 8185127: Add tests to cover hashCode() method for java supported crypto key types
Reviewed-by: valeriep
2021-04-28 09:48:16 +00:00
Kevin Walls
e325a750ac 8264593: debug.cpp utilities should be available in product builds.
Reviewed-by: sspitsyn, coleenp, vlivanov
2021-04-28 08:53:48 +00:00
Roberto Castañeda Lozano
e879f8c6c8 8265587: IGV: track nodes across matching
Preserve the IGV node identifier of Ideal nodes in their corresponding machine
nodes after matching, to allow IGV users to track nodes across this phase.

Reviewed-by: thartmann, vlivanov
2021-04-28 08:45:15 +00:00
Xin Liu
164454feeb 8265867: thread.hpp defines some enums but no reference
Reviewed-by: dholmes, stuefe, iklam, coleenp
2021-04-28 06:55:07 +00:00
Jie Fu
75a2354dc2 8266028: C2 computes -0.0 for Math.pow(-0.0, 0.5)
Reviewed-by: aph, neliasso, kvn
2021-04-28 06:16:47 +00:00
Prasanta Sadhukhan
ca37be1ead 8197800: Test java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java fails on Windows
Reviewed-by: aivanov, serb
2021-04-28 05:57:39 +00:00
Prasanta Sadhukhan
cf92693957 8198619: java/awt/Focus/FocusTraversalPolicy/ButtonGroupLayoutTraversal/ButtonGroupLayoutTraversalTest.java fails on mac
Reviewed-by: aivanov, serb
2021-04-28 05:52:22 +00:00
Per Liden
2201e11cbf 8266055: ZGC: ZHeap::print_extended_on() doesn't disable deferred delete
Reviewed-by: eosterlund, ayang
2021-04-28 05:50:25 +00:00
Prasanta Sadhukhan
ce48f04085 8198617: java/awt/Focus/6382144/EndlessLoopTest.java fails on mac
Reviewed-by: jdv, serb
2021-04-28 05:48:50 +00:00
Pankaj Bansal
0438cea65b 8136517: [macosx]Test java/awt/Focus/8073453/AWTFocusTransitionTest.java fails on MacOSX
Reviewed-by: serb
2021-04-28 04:48:07 +00:00
Igor Ignatyev
6b5e5d7a2c 8266181: compiler/eliminateAutobox/TestEliminateBoxInDebugInfo should be in driver mode
Reviewed-by: kvn
2021-04-28 04:01:42 +00:00
Igor Ignatyev
81b1502701 8266161: mark hotspot compiler/rtm tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 03:43:41 +00:00
Igor Ignatyev
4a8324d48b 8266180: compiler/vectorapi/TestVectorErgonomics should be run in driver mode
Reviewed-by: jiefu, kvn, epavlova
2021-04-28 03:43:08 +00:00
Igor Ignatyev
0601aba545 8266175: mark hotspot compiler/jsr292 tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 03:42:07 +00:00
Igor Ignatyev
69ad8ac537 8266169: mark hotspot compiler/jvmci tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 03:41:27 +00:00
Igor Ignatyev
1a2a570c8d 8266166: mark hotspot compiler/linkage tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 03:40:47 +00:00
Igor Ignatyev
5ee58b0496 8266164: mark hotspot compiler/loopstripmining tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 03:39:47 +00:00
Xue-Lei Andrew Fan
1a37bce5af 8263779: SSLEngine reports NEED_WRAP continuously without producing any further output
Reviewed-by: wetmore
2021-04-28 03:21:47 +00:00
Jie Fu
889d246681 8265917: Different values computed by C2 and interpreter/C1 for Math.pow(x, 2.0) on x86_32
Reviewed-by: kvn, thartmann
2021-04-28 03:10:28 +00:00
Erik Gahlin
e144104bb3 8262908: JFR: Allow JFR to stream events from a known repository path
Reviewed-by: mgronlun
2021-04-28 02:02:53 +00:00
Igor Ignatyev
30b1354085 8266153: mark hotspot compiler/onSpinWait tests which ignore VM flags
Reviewed-by: kvn
2021-04-27 23:58:15 +00:00
Igor Ignatyev
eeddb30344 8266150: mark hotspot compiler/arguments tests which ignore VM flags
Reviewed-by: kvn
2021-04-27 23:54:45 +00:00
Igor Ignatyev
feb18d292f 8266149: mark hotspot compiler/startup tests which ignore VM flags
Reviewed-by: kvn
2021-04-27 23:54:09 +00:00
Igor Ignatyev
eb72950cfd 8266154: mark hotspot compiler/oracle tests which ignore VM flags
Reviewed-by: kvn
2021-04-27 23:51:39 +00:00
Igor Ignatyev
7f4a9f68bf 8266088: compiler/arguments/TestPrintOptoAssemblyLineNumbers test should user driver mode
Reviewed-by: kvn
2021-04-27 20:58:48 +00:00
Vladimir Ivanov
f560b89233 8264873: Dependencies: Split ClassHierarchyWalker
Reviewed-by: kvn, thartmann
2021-04-27 20:03:13 +00:00
Paul Sandoz
0a88f0a182 8255915: jdk/incubator/vector/AddTest.java timed out
Reviewed-by: vlivanov
2021-04-27 18:58:37 +00:00
Tobias Hartmann
ab2aec2afb 8265938: C2's conditional move optimization does not handle top Phi
Reviewed-by: chagedorn, kvn, iignatyev
2021-04-27 17:10:53 +00:00
Patricio Chilano Mateo
5634f206e5 8265932: Move safepoint related fields from class Thread to JavaThread
Reviewed-by: coleenp, dholmes
2021-04-27 16:53:25 +00:00
Aleksey Shipilev
b67b2b1645 8265690: Use the latest Ubuntu base image version in Docker testing
Reviewed-by: sgehwolf, iignatyev, mseledtsov
2021-04-27 16:36:15 +00:00
Vladimir Ivanov
b2628d15b5 8263972: C2: LoadVector/StoreVector type mismatch in MemNode::can_see_stored_value()
Reviewed-by: kvn, thartmann
2021-04-27 16:34:28 +00:00
Hui Shi
377b346189 8264752: SIGFPE crash with option FlightRecorderOptions:threadbuffersize=30M
Reviewed-by: mgronlun
2021-04-27 15:44:41 +00:00
Harold Seigel
dc323a9334 8263421: Module image file is opened twice during VM startup
Reviewed-by: iklam, dholmes
2021-04-27 13:31:55 +00:00
Yi Yang
fbfd4ea3ce 8265914: Duplicated NotANode and not_a_node
Reviewed-by: thartmann
2021-04-27 13:00:08 +00:00
Pankaj Bansal
9481fad42f 8163367: Test javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java javax/swing/JComboBox/8033069/bug8033069ScrollBar.java fails intermittently
Reviewed-by: aivanov
2021-04-27 12:59:22 +00:00
Zhengyu Gu
9adbf1566a 8265995: Shenandoah: Move ShenandoahInitMarkRootsClosure close to its use
Reviewed-by: shade
2021-04-27 12:40:31 +00:00
Harold Seigel
879a77f173 8265757: stack-use-after-scope in perfMemory_posix.cpp get_user_name_slow()
Reviewed-by: lfoltan, dcubed
2021-04-27 12:07:40 +00:00
Coleen Phillimore
e4be9680cb 8265980: Fix systemDictionary and loaderConstraints printing
Reviewed-by: iklam
2021-04-27 12:04:12 +00:00
Aleksei Voitylov
f6e26f6f33 8265756: AArch64: initialize memory allocated for locals according to Windows AArch64 stack page growth requirement in template interpreter
Reviewed-by: adinn, aph
2021-04-27 11:17:28 +00:00
Jan Lahoda
0a4c33826d 8263432: javac may report an invalid package/class clash on case insensitive filesystems
Reviewed-by: vromero
2021-04-27 08:55:59 +00:00
Tobias Hartmann
82b371956a 8265967: Unused NullCheckNode forward declaration in node.hpp
Reviewed-by: kvn
2021-04-27 07:52:13 +00:00
Albert Mingkun Yang
468c847cc8 8234020: Remove FullGCCount_lock
Reviewed-by: kbarrett
2021-04-27 07:21:15 +00:00
Vladimir Kozlov
4785e112ae 8264806: Remove the experimental JIT compiler
Reviewed-by: iignatyev, erikj
2021-04-27 06:23:21 +00:00
Prasanta Sadhukhan
7db9330c58 8196300: java/awt/TextArea/TextAreaScrolling/TextAreaScrolling.java times out
Reviewed-by: jdv
2021-04-27 05:36:49 +00:00
Vladimir Kozlov
694acedf18 8264805: Remove the experimental Ahead-of-Time Compiler
Reviewed-by: coleenp, erikj, stefank, iignatyev, dholmes, aph, shade, iklam, mchung, iveresov
2021-04-27 01:12:18 +00:00
Hamlin Li
15d4787724 8265496: improve null check in DeflaterOutputStream/InflaterInputStream
Reviewed-by: lancea, naoto
2021-04-27 01:06:56 +00:00
Albert Mingkun Yang
1d37b9840a 8265972: Remove declarations with no implementations in javaClasses.hpp
Reviewed-by: coleenp
2021-04-26 22:16:12 +00:00
Albert Mingkun Yang
cb29b19fec 8184134: HeapRegion::LogOfHRGrainWords is unused
Reviewed-by: kbarrett, sjohanss
2021-04-26 21:20:15 +00:00
Guoxiong Li
41daa88dcc 8265899: Use pattern matching for instanceof at module jdk.compiler(part 1)
Reviewed-by: mcimadamore
2021-04-26 20:15:55 +00:00
Phil Race
a6f2863e64 8266003: ProblemList sanity/client/SwingSet/src/ButtonDemoScreenshotTest.java on macosx-all
Reviewed-by: dcubed, mikael
2021-04-26 20:14:55 +00:00
Tom Rodriguez
852a41d718 8258625: [JVMCI] refactor and unify JVMCI readFieldValue path
Reviewed-by: kvn
2021-04-26 20:00:23 +00:00
Leonid Mesnik
b5c6351315 8264663: Update test SuspendWithCurrentThread.java to verify that suspend doesn't exit until resumed
Reviewed-by: dcubed, sspitsyn
2021-04-26 19:48:57 +00:00
Magnus Ihse Bursie
b524a81ad2 8265982: JDK-8264188 breaks build on macOS-aarch64
Reviewed-by: erikj, shade
2021-04-26 17:59:14 +00:00
Pavel Rappo
efe6b93325 8265961: Fix comments in logging.properties
Reviewed-by: dfuchs, mr, iris, jjg
2021-04-26 17:35:31 +00:00
Philippe Marschall
65c19c4094 4926314: Optimize Reader.read(CharBuffer)
Reviewed-by: alanb, bpb
2021-04-26 17:33:35 +00:00
Guoxiong Li
082abbdaf7 8265900: Use pattern matching for instanceof at module jdk.compiler(part 2)
Reviewed-by: mcimadamore
2021-04-26 17:31:45 +00:00
Guoxiong Li
851b219d74 8265901: Use pattern matching for instanceof at module jdk.compiler(part 3)
Reviewed-by: mcimadamore, jfranck
2021-04-26 15:23:56 +00:00
Ian Graves
fb8f0c5dd8 8261168: Convert javadoc tool to use Stream.toList()
Reviewed-by: prappo
2021-04-26 15:20:30 +00:00
Hamlin Li
8559a53056 8265394: G1: Improve assert in HeapRegion::reset_not_compacted_after_full_gc
Reviewed-by: tschatzl
2021-04-26 14:43:30 +00:00
Hamlin Li
68011c64fa 8265928: G1: Update copyright in several files
Reviewed-by: tschatzl
2021-04-26 14:26:53 +00:00
Coleen Phillimore
222f9f07d1 8265682: G1: Mutex::_name dangling in HeapRegionRemSet references after JDK-8264146
Reviewed-by: dholmes, sjohanss
2021-04-26 14:23:08 +00:00
Guoxiong Li
2b09ff219e 8232765: NullPointerException at Types.eraseNotNeeded() when compiling a class
Reviewed-by: mcimadamore
2021-04-26 14:13:13 +00:00
Magnus Ihse Bursie
b9f66d93eb 8264188: Improve handling of assembly files in the JDK
Co-authored-by: Sandhya Viswanathan <sviswanathan@openjdk.org>
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Reviewed-by: erikj, vlivanov
2021-04-26 12:57:21 +00:00
Per Liden
c3ac6900e7 8261759: ZGC: ZWorker Threads Continue Marking After System.exit() called
Reviewed-by: sjohanss, ayang
2021-04-26 12:15:03 +00:00
Per Liden
31abe68fa4 8265116: ZGC: Steal local stacks instead of flushing them
Co-authored-by: Wang Chao <wchao@openjdk.org>
Reviewed-by: ayang, sjohanss
2021-04-26 11:57:11 +00:00
Jesper Steen Møller
83364a4b4a 8264258: Unknown lookups in the java package give misleading compilation errors
Reviewed-by: sadayapalam
2021-04-26 11:53:27 +00:00
Per Liden
a9367dbd84 8265127: ZGC: Fix incorrect reporting of reclaimed memory
Reviewed-by: ayang, sjohanss
2021-04-26 11:52:37 +00:00
Junji Wang
1580a473d0 8265911: assert(comp != __null) failed: Compiler instance missing
Reviewed-by: kvn, thartmann
2021-04-26 11:07:08 +00:00
Vladimir Ivanov
9647fb0dba 8265689: JVMCI: InternalError: Class java.lang.Object does not implement interface jdk.vm.ci.meta.JavaType
Co-authored-by: Doug Simon <dnsimon@openjdk.org>
Reviewed-by: kvn, thartmann
2021-04-26 10:54:01 +00:00
Per Liden
0d08d73537 8265702: ZGC on macOS/aarch64
Reviewed-by: erikj, dholmes, stefank, gziemski
2021-04-26 08:45:42 +00:00
Patrick Concannon
45c5da0fd3 8265746: Update java.time to use instanceof pattern variable (part II)
Reviewed-by: dfuchs, lancea, rriggs, chegar, naoto
2021-04-26 08:32:20 +00:00
Hannes Wallnöfer
a85f6cbbaa 8265613: False positives for "Related Packages"
Reviewed-by: jjg
2021-04-26 07:53:35 +00:00
Prasanta Sadhukhan
6e5026a8df 8198621: java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java fails on mac
Reviewed-by: serb
2021-04-26 07:28:46 +00:00
Simon Legner
7b609a2016 8264031: (zipfs) Typo in ZipFileSystem.deleteFile ZipException
Reviewed-by: shade, lancea
2021-04-26 07:24:06 +00:00
Albert Mingkun Yang
56fbef0fc0 8265681: G1: general cleanup for G1FullGCHeapRegionAttr
Reviewed-by: tschatzl, sjohanss
2021-04-26 06:32:34 +00:00
Thomas Stuefe
578a0b3c3d 8261238: NMT should not limit baselining by size threshold
Reviewed-by: zgu, mdoerr
2021-04-26 04:56:31 +00:00
Alexey Ushakov
3bf4c904fb 8264317: Lanai: IncorrectUnmanagedImageRotatedClip.java fails on apple M1
Reviewed-by: serb
2021-04-25 20:52:08 +00:00
horizonzy
f1f2afda5a 8264028: Typo in javax.management.relation.RelationService::purgeRelations
Reviewed-by: sspitsyn, shade
2021-04-25 08:14:05 +00:00
Daniel D. Daugherty
f6e22d14e3 8265890: ProblemList sun/security/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions.java on macOS-X64 and Linux-aarch64
Reviewed-by: rriggs, xuelei
2021-04-25 02:53:48 +00:00
Albert Mingkun Yang
0257ac1447 8252089: Remove psParallelCompact internal debug counters
Reviewed-by: sjohanss, tschatzl
2021-04-24 16:35:55 +00:00
Guoxiong Li
4b7f027407 8231179: Investigate why tools/javac/options/BCPOrSystemNotSpecified.java fails on Window
Reviewed-by: vromero
2021-04-24 02:18:31 +00:00
Guoxiong Li
d87a4c3b56 8239596: PARAMETER annotation on receiver type does not cause error
Reviewed-by: vromero
2021-04-24 02:17:39 +00:00
Daniel D. Daugherty
52f9d22977 8265884: ProblemList compiler/codecache/jmx/PoolsIndependenceTest.java on macOS-X64
Reviewed-by: mikael
2021-04-24 00:56:10 +00:00
Doug Simon
5aed446e20 8265403: consolidate definition of CPU features
Reviewed-by: kvn, iklam
2021-04-23 23:32:41 +00:00
Yumin Qi
20a373a0d0 8265393: VM crashes if both -XX:+RecordDynamicDumpInfo and -XX:SharedArchiveFile options are specified
Reviewed-by: iklam, ccheung
2021-04-23 21:51:11 +00:00
Daniel D. Daugherty
6803ab2b71 8265880: ProblemList serviceability/dcmd/gc/RunFinalizationTest.java on Linux-X64
Reviewed-by: rriggs
2021-04-23 21:39:47 +00:00
Sandhya Viswanathan
e08f506fa7 8265816: Handle new VectorMaskCast node for x86
Reviewed-by: vlivanov, neliasso
2021-04-23 20:49:13 +00:00
Naoto Sato
bebfae48e3 8264208: Console charset API
Reviewed-by: joehw, rriggs, alanb
2021-04-23 18:57:03 +00:00
George Adams
5aab1609b9 8265531: doc/building.md should mention homebrew install freetype
Reviewed-by: erikj
2021-04-23 17:52:26 +00:00
Mikhailo Seledtsov
d8e638f11c 8265794: Remove ProblemList-non-cds-mode
Reviewed-by: ccheung, iklam, iignatyev
2021-04-23 17:42:45 +00:00
Thomas Stuefe
ac23870186 8265831: 8257831 broke Windows x86 build
Reviewed-by: shade
2021-04-23 16:37:07 +00:00
Patricio Chilano Mateo
8e312297d8 8265327: Remove check_safepoint_and_suspend_for_native_trans()
Reviewed-by: dcubed, dholmes, rrich
2021-04-23 14:23:43 +00:00
Daniel D. Daugherty
c9b70c8042 8265240: runtime/Thread/SuspendAtExit.java needs updating
Reviewed-by: rehn, dholmes
2021-04-23 14:20:34 +00:00
Claes Redestad
891f72fe6e 8265606: Reduce allocations in AdapterHandlerLibrary::get_adapter
Reviewed-by: iklam
2021-04-23 13:04:48 +00:00
Vladimir Ivanov
bfc1cd8eaf 8264320: ShouldNotReachHere in Compile::print_inlining_move_to()
Reviewed-by: kvn, thartmann
2021-04-23 12:53:54 +00:00
Stefan Johansson
5db64c3353 8265268: Unify ReservedSpace reservation code in initialize and try_reserve_heap
Reviewed-by: tschatzl, iwalulya
2021-04-23 12:06:05 +00:00
Roman Kennke
191f1fc46c 8265759: Shenandoah: Avoid race for referent in assert
Reviewed-by: shade, zgu
2021-04-23 08:01:36 +00:00
Roberto Castañeda Lozano
b3a319c834 8264842: IGV: different nodes sharing idx are treated as equal
Introduce IGV-specific node identifier and encapsulate it in IGV by showing a
configurable 'short node text' string instead.

Reviewed-by: iveresov, kvn
2021-04-23 07:29:54 +00:00
Ioi Lam
95f0fd6c4d 8265696: Move CDS sources to src/hotspot/shared/cds
Reviewed-by: erikj, dholmes, stuefe
2021-04-23 04:13:02 +00:00
Calvin Cheung
a715b09f52 8265798: Minimal build broken by JDK-8261090
Reviewed-by: iklam
2021-04-23 02:57:42 +00:00
David Holmes
13d3263380 8265484: Fix up TRAPS usage in GenerateOopMap::compute_map and callers
Reviewed-by: iklam, dlong, coleenp
2021-04-23 01:12:14 +00:00
Chris Plummer
a8ddbd155b 8265683: vmTestbase/nsk/jdb tests failed with "JDWP exit error AGENT_ERROR_INTERNAL(181)"
Reviewed-by: amenkov, dcubed
2021-04-22 23:27:33 +00:00
Calvin Cheung
7a5591402c 8264196: Change link_and_cleanup_shared_classes(CATCH) to CHECK
Reviewed-by: minqi, iklam
2021-04-22 22:57:19 +00:00
Phil Race
b84f690127 8265793: Remove duplicate jtreg TEST.groups references for some client tests
Reviewed-by: erikj
2021-04-22 21:23:59 +00:00
Mikael Vidstedt
0e0059895b 8265782: Bump bootjdk to jdk-17+19 on macosx-aarch64 at Oracle
Reviewed-by: iignatyev, tbell, iris, erikj
2021-04-22 20:55:56 +00:00
Daniel D. Daugherty
e81baead01 8265786: ProblemList serviceability/sa/sadebugd/DisableRegistryTest.java on ZGC
Reviewed-by: darcy
2021-04-22 20:45:25 +00:00
Brian Burkhalter
ca0de266b4 8265699: (bf) Scopes passed to ScopedMemoryAccess.copy[Swap]Memory in incorrect order
Reviewed-by: mcimadamore
2021-04-22 19:44:01 +00:00
Thomas Schatzl
b930bb1a2c 8265461: G1: Forwarding pointer removal thread sizing
Reviewed-by: iwalulya, lkorinth, sjohanss
2021-04-22 18:19:18 +00:00
Weijun Wang
f834557ae0 8258915: Temporary buffer cleanup
Reviewed-by: valeriep
2021-04-22 18:11:43 +00:00
sunguoyun
31d8a19e47 8265105: gc/arguments/TestSelectDefaultGC.java fails when compiler1 is disabled
Reviewed-by: iveresov
2021-04-22 18:05:03 +00:00
Guoxiong Li
657f103937 8057543: Replace javac's Filter with Predicate (and lambdas)
Reviewed-by: mcimadamore
2021-04-22 16:44:29 +00:00
Joe Darcy
8758b554a0 8265591: Remove vestiages of intermediate JSR 175 annotation format
Reviewed-by: jfranck
2021-04-22 16:21:54 +00:00
Ian Graves
33a86b9e40 8263621: Convert jdk.compiler to use Stream.toList()
Reviewed-by: mcimadamore, vromero
2021-04-22 16:06:40 +00:00
Doug Simon
7df0c10a4d 8265480: add basic JVMCI support for JEP 309: Dynamic Class-File Constants
Reviewed-by: kvn, psandoz
2021-04-22 15:59:12 +00:00
Calvin Cheung
9499175064 8261090: Store old classfiles in static CDS archive
Reviewed-by: iklam, minqi
2021-04-22 15:13:29 +00:00
Yasumasa Suenaga
159f5e1ede 8263636: Add --disable-registry option to jhsdb debugd
Reviewed-by: cjplummer, kevinw
2021-04-22 15:01:33 +00:00
Patricio Chilano Mateo
6d49cc3b65 8265453: SafepointMechanism::should_process() should receive JavaThread*
Reviewed-by: dcubed, shade, dholmes
2021-04-22 14:15:17 +00:00
Raffaello Giulietti
fa82d47591 8264514: HexFormat implementation tweaks
Reviewed-by: rriggs
2021-04-22 13:54:41 +00:00
Vladimir Ivanov
e16d568c1f 8265218: trace_method_handle_stub fails to find calling frame on x86
Reviewed-by: dholmes, dcubed
2021-04-22 12:17:24 +00:00
Robbin Ehn
86bd44fe80 8257831: Suspend with handshakes
Reviewed-by: dcubed, rrich, dholmes, pchilanomate, sspitsyn
2021-04-22 10:30:47 +00:00
Patrick Concannon
28af31db34 8263668: Update java.time to use instanceof pattern variable
Reviewed-by: lancea, ryadav, naoto, rriggs, dfuchs, scolebourne, chegar
2021-04-22 10:17:43 +00:00
Claes Redestad
a93d911954 8265607: Avoid decrementing when no Symbol was created in ~SignatureStream
Reviewed-by: lfoltan, coleenp
2021-04-22 09:52:56 +00:00
Aleksey Shipilev
aa2978481d 8265332: gtest/LargePageGtests.java OOMEs on -XX:+UseSHM cases
Reviewed-by: stuefe
2021-04-22 08:31:10 +00:00
Ioi Lam
33b6378f1e 8265101: Remove unnecessary functions in os*.inline.hpp
Reviewed-by: dholmes, kbarrett
2021-04-22 05:44:39 +00:00
Hao Sun
28c35aedd3 8259288: Debug build failure with clang-10 due to -Wimplicit-int-float-conversion
Reviewed-by: dholmes
2021-04-22 04:41:52 +00:00
Alexander Zuev
ca6b1b49ab 8171381: [TEST_BUG] [macos] javax/swing/JPopupMenu/7156657/bug7156657.java fails on OS X
Reviewed-by: serb
2021-04-21 23:20:55 +00:00
Joe Darcy
9e7c748db5 8265700: Regularize throws clauses in BigDecimal
Reviewed-by: bpb
2021-04-21 22:04:17 +00:00
Erik Gahlin
71163213cb 8254565: JFR: Incorrect verification of mirror events
Reviewed-by: mgronlun
2021-04-21 21:22:52 +00:00
Harold Seigel
f45d46095a 8265017: runtime/HiddenClasses/StressHiddenClasses.java timed out on Win* OCI
Reviewed-by: dholmes
2021-04-21 17:34:32 +00:00
Harold Seigel
0136c89ce1 8265490: Unterminated string passed to FindClass() in hotspot test
Reviewed-by: coleenp, stuefe
2021-04-21 16:01:22 +00:00
Thomas Schatzl
325edbc364 8265450: Merge PreservedMarksSet::restore code paths
Reviewed-by: sjohanss, iwalulya
2021-04-21 15:49:29 +00:00
Ian Graves
b337f63361 8037397: RegEx pattern matching loses character class after intersection (&&) operator
Reviewed-by: rriggs
2021-04-21 15:45:52 +00:00
Guoxiong Li
07a7510d87 8200145: Conditional expression mistakenly treated as standalone
Reviewed-by: mcimadamore
2021-04-21 14:36:47 +00:00
Prasanta Sadhukhan
41fc7ddd8d 8199079: Test javax/swing/UIDefaults/6302464/bug6302464.java is unstable
Reviewed-by: prr
2021-04-21 14:35:48 +00:00
Prasanta Sadhukhan
45c474a04c 8168408: Test java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java fails intermittentently on windows
Reviewed-by: azvegint
2021-04-21 14:20:53 +00:00
Prasanta Sadhukhan
18ee419021 8198422: Test java/awt/font/StyledMetrics/BoldSpace.java is unstable
Reviewed-by: azvegint
2021-04-21 14:16:08 +00:00
Fairoz Matte
da860290c2 8265326: Strange Characters in G1GC GC Log
Reviewed-by: tschatzl, sjohanss, kbarrett
2021-04-21 11:48:27 +00:00
Aleksey Shipilev
7879adbe88 8265343: Update Debian-based cross-compilation recipes
Reviewed-by: erikj
2021-04-21 10:44:19 +00:00
Peter Levart
98cb81b381 8265237: String.join and StringJoiner can be improved further
Reviewed-by: rriggs, redestad
2021-04-21 10:32:03 +00:00
Jie Fu
ed477da9c6 8264945: Optimize the code-gen for Math.pow(x, 0.5)
Reviewed-by: neliasso, kvn
2021-04-21 10:10:42 +00:00
Christoph Göttschkes
7146104fda 8265421: java/lang/String/StringRepeat.java test is missing a memory requirement
Reviewed-by: jlaskey, shade, ryadav
2021-04-21 07:13:13 +00:00
Yi Yang
b5c92ca34f 8265106: IGV: Enforce en-US locale while parsing ideal graph
Co-authored-by: Roberto Castañeda Lozano <rcastanedalo@openjdk.org>
Reviewed-by: thartmann, chagedorn
2021-04-21 06:36:47 +00:00
Jonathan Gibbons
3de0dcba78 8265483: All-caps “JAVA” in the top navigation bar
Reviewed-by: iris, erikj
2021-04-21 04:36:37 +00:00
Ioi Lam
739769c8fc 8265411: Avoid unnecessary Method::init_intrinsic_id calls
Reviewed-by: dholmes, minqi
2021-04-21 01:42:50 +00:00
Jie Fu
a22ad03b25 8264983: Add gtest for JDK-8264008
Reviewed-by: stuefe
2021-04-20 22:49:01 +00:00
Sean Mullan
91b08b733e 8261779: JCK test api/javax_crypto/EncryptedPrivateKeyInfo/Ctor4.html is failing with assertion error when assertions enabled
Reviewed-by: rhalade, pkoppula, mschoene, weijun
2021-04-20 21:45:53 +00:00
Brian Burkhalter
2fcd920adc 8261183: Follow on to Make lists of normal filenames
Reviewed-by: alanb, rriggs, rhalade
2021-04-20 21:45:53 +00:00
Igor Ignatyev
40ef00cebf 8258457: testlibrary_tests/ctw/JarDirTest.java fails with InvalidPathException on windows
Reviewed-by: kvn
2021-04-20 21:45:53 +00:00
Vaibhav Choudhary
3f0da35764 8261392: Exclude testlibrary_tests/ctw/JarDirTest.java
Reviewed-by: coffeys
2021-04-20 21:45:53 +00:00
Rahul Yadav
8d0faaf91a 8257001: Improve Http Client Support
Reviewed-by: chegar, dfuchs, rhalade
2021-04-20 21:45:53 +00:00
Tobias Hartmann
9bf055d359 8259633: compiler/graalunit/CoreTest.java fails with NPE after JDK-8244543
Reviewed-by: vlivanov, jcm
2021-04-20 21:45:53 +00:00
Sean Mullan
ddc56d1dbe 8259428: AlgorithmId.getEncodedParams() should return copy
Reviewed-by: weijun, valeriep
2021-04-20 21:45:52 +00:00
Sean Mullan
ae33d2a2f0 8258247: Couple of issues in fix for JDK-8249906
Reviewed-by: rhalade, weijun
2021-04-20 21:45:52 +00:00
Jamsheed Mohammed C M
2003e91d3b 8244543: Enhanced handling of abstract classes
Reviewed-by: vlivanov, rhalade
2021-04-20 21:45:52 +00:00
Roger Riggs
e56e087290 8250568: Less ambiguous processing
Reviewed-by: alanb, rhalade
2021-04-20 21:45:52 +00:00
Brian Burkhalter
4471789aca 8253799: Make lists of normal filenames
Reviewed-by: alanb, rhalade
2021-04-20 21:45:52 +00:00
Sean Mullan
7232e3c704 8249906: Enhance opening JARs
Reviewed-by: weijun, rhalade, mschoene
2021-04-20 21:45:52 +00:00
Aleksei Efimov
17a741d6bc 8244473: Contextualize registration for JNDI
Also reviewed by Chris Ries <chris.ries@oracle.com>

Reviewed-by: dfuchs, rriggs, rhalade, skoivu, mullan
2021-04-20 21:45:52 +00:00
Rafael Winterhalter
f47faf283b 8228988: AnnotationParser throws NullPointerException on incompatible member type
Reviewed-by: darcy
2021-04-20 21:33:19 +00:00
Erik Gahlin
d61345984d 8265407: JFR: Fix Typos
Reviewed-by: mgronlun
2021-04-20 17:27:25 +00:00
Erik Gahlin
4dcaac1feb 8265036: JFR: Remove use of -XX:StartFlightRecording= and -XX:FlightRecorderOptions=
Reviewed-by: cjplummer
2021-04-20 15:53:45 +00:00
Mikael Vidstedt
72c88fc45d 8257459: Bump minimum boot jdk to JDK 16
Reviewed-by: darcy, iris, erikj
2021-04-20 14:37:44 +00:00
Albert Mingkun Yang
c52e5f2be4 8265435: Remove dummy lists in G1CalculatePointersClosure
Reviewed-by: sjohanss, tschatzl
2021-04-20 12:48:08 +00:00
Thomas Schatzl
072ae7ec5e 8265436: G1: Improve gc+phases log output during full gc
Reviewed-by: ayang, mli
2021-04-20 10:36:12 +00:00
Roberto Castañeda Lozano
d81b0461b7 8263227: C2: inconsistent spilling due to dead nodes in exception block
Eliminate dead nodes created by call-catch cleanup even if they have multiple
projections. Assert that definitions dominate uses and projections are scheduled
next to their parent nodes.

Reviewed-by: neliasso, kvn
2021-04-20 10:06:49 +00:00
Andrew Haley
a25bae8239 8261445: Use memory_order_relaxed for os::random().
Reviewed-by: adinn, eosterlund, mdoerr, dholmes
2021-04-20 08:09:30 +00:00
Roberto Castañeda Lozano
51366439b1 8262725: IGV: crash when removing all graphs in a group
Make IGV close graph views when their groups are either removed or emptied, and
avoid faulty graph view computation for empty groups.

Reviewed-by: chagedorn, rrich
2021-04-20 07:58:26 +00:00
Per Liden
79798c656d 8265136: ZGC: Expose GarbageCollectorMXBeans for both pauses and cycles
Reviewed-by: sspitsyn, ayang
2021-04-20 07:53:43 +00:00
Yasumasa Suenaga
f1d4ae6cc9 8263718: unused-result warning happens at os_linux.cpp
Reviewed-by: dholmes, stuefe
2021-04-20 05:06:55 +00:00
Tagir F. Valeev
787908c778 8264221: Rewrite confusing stream API chain in SnippetMaps
Reviewed-by: jlahoda
2021-04-20 01:44:32 +00:00
Yasumasa Suenaga
142edd3a81 8265152: jpackage cleanup fails on Windows with IOException deleting msi
Reviewed-by: herrick, asemenyuk
2021-04-20 01:18:43 +00:00
Mikael Vidstedt
ab2240741c 8265486: ProblemList javax/sound/midi/Sequencer/Recording.java on macosx-aarch64
Reviewed-by: prr, serb
2021-04-19 22:29:53 +00:00
Chris Plummer
e0fd5fc069 8265028: JDWP debug agent thread lookup can be made faster
Reviewed-by: sspitsyn, amenkov
2021-04-19 21:15:14 +00:00
Erik Joelsson
713483c77d 8265373: Change to GCC 10.3 for building on Linux at Oracle
Reviewed-by: mikael
2021-04-19 19:46:13 +00:00
Daniel D. Daugherty
3990713691 8265463: ProblemList vmTestbase/vm/mlvm/mixed/stress/regression/b6969574/INDIFY_Test.java on Win-X64 -Xcomp
8265464: ProblemList vmTestbase/vm/mlvm/meth/stress/compiler/deoptimize/Test.java#id1 in -Xcomp configs

Reviewed-by: mikael
2021-04-19 18:49:48 +00:00
Alexander Matveev
5b43b39e55 8263154: [macos] DMG builds have finder errors
Reviewed-by: herrick, asemenyuk
2021-04-19 18:17:24 +00:00
Doug Simon
54cb388dce 8252600: [JVMCI] remove mx configuration
Reviewed-by: erikj, kvn
2021-04-19 17:45:20 +00:00
Yumin Qi
b703e0a4c8 8264569: Remove obsolete error messages from CDSTestUtils.java
Reviewed-by: iklam
2021-04-19 17:06:07 +00:00
Yi Yang
235daea06a 8265285: Unnecessary inclusion of bytecodeHistogram.hpp
Reviewed-by: dholmes, iklam
2021-04-19 16:54:37 +00:00
Weijun Wang
8bec6fe6dc 8264277: java.xml.crypto module should be granted FilePermission and SocketPermission
Reviewed-by: mullan
2021-04-19 16:11:54 +00:00
Claes Redestad
5303ccb885 8265135: Reduce work initializing VarForms
Reviewed-by: psandoz, mchung
2021-04-19 14:39:31 +00:00
Ivan Walulya
d9e40dd593 8199407: Skip Rebuild Remset Phase if there are no rebuild candidates
Reviewed-by: tschatzl, sjohanss
2021-04-19 14:37:16 +00:00
Weijun Wang
8dbf7aa1f9 8241306: Add SignatureMethodParameterSpec subclass for RSASSA-PSS params
Reviewed-by: mullan
2021-04-19 14:29:18 +00:00
Erik Joelsson
b14e0ee4d8 8265371: Change to Visual Studio 2019 16.9.3 for building on Windows at Oracle
Reviewed-by: mikael
2021-04-19 13:48:44 +00:00
Jorn Vernee
c88714875d 8265079: Implement VarHandle invoker caching
Reviewed-by: redestad, vlivanov, psandoz, mchung
2021-04-19 11:36:55 +00:00
Jie Fu
b64a3fb946 8265325: Optimize StubRoutines::dpow() for Math.pow(x, 0.5)
Reviewed-by: kvn, neliasso
2021-04-19 10:45:20 +00:00
Tejpal Rebari
d1c8c9eabb 8197811: Test java/awt/Choice/PopupPosTest/PopupPosTest.java fails on Windows
Reviewed-by: psadhukhan
2021-04-19 10:23:19 +00:00
Albert Mingkun Yang
7d01c988cf 8265414: Variable assigned but not used in G1FreeHumongousRegionClosure
Reviewed-by: tschatzl, iwalulya
2021-04-19 09:58:08 +00:00
Michael McMahon
d9e19f16f0 8265226: (dc) API note in DatagramChannel.open should link to StandardProtocolFamily.UNIX
Reviewed-by: iris, alanb
2021-04-19 09:31:52 +00:00
Thomas Stuefe
49b9e6896e 8262165: NMT report should state how many callsites had been skipped
Reviewed-by: zgu, shade
2021-04-19 09:18:55 +00:00
Stefan Johansson
e390e550fa 8265066: Split ReservedSpace constructor to avoid default parameter
Reviewed-by: tschatzl, stefank
2021-04-19 07:08:10 +00:00
Albert Mingkun Yang
c607d12e40 8249528: Remove obsolete comment in G1RootProcessor::process_java_roots
Reviewed-by: tschatzl, sangheki
2021-04-19 07:04:26 +00:00
Yi Yang
fa58aae8f6 8265245: depChecker_<cpu> don't have any functionalities
Reviewed-by: thartmann, neliasso
2021-04-19 06:27:15 +00:00
Yi Yang
a2b0e0f4c0 8265323: Leftover local variables in PcDesc
Reviewed-by: thartmann, neliasso
2021-04-19 06:26:12 +00:00
David Holmes
1ac25b8201 8264372: Threads::destroy_vm only ever returns true
Reviewed-by: shade, dcubed
2021-04-18 04:32:11 +00:00
David Holmes
73d5f3b586 8265313: Obsolete the unused AssertOnSuspendWaitFailure and TraceSuspendWaitFailures flags
Reviewed-by: shade, hseigel, dcubed
2021-04-18 04:26:57 +00:00
Ajit Ghaisas
cb8394a841 8265304: Temporarily make Metal the default 2D rendering pipeline for macOS
Reviewed-by: jdv, kcr, azvegint, prr
2021-04-17 12:33:07 +00:00
Aleksey Shipilev
66f89870f2 8265298: Hard VM crash when deadlock between "access" and higher ranked lock is detected
Reviewed-by: pchilanomate, dholmes
2021-04-17 06:21:19 +00:00
Denis Konoplev
926e3bc0c1 8264143: Lanai: RenderPerfTest.BgrSwBlitImage has artefacts on apple M1
Reviewed-by: jdv
2021-04-17 06:07:44 +00:00
Naoto Sato
ff4997014f 8265375: Bootcycle builds fail with StackOverflowError in cldrconverter
Reviewed-by: joehw
2021-04-16 22:23:30 +00:00
Sandhya Viswanathan
c108e7abdf 8265154: vinserti128 operand mix up for KNL platforms
Reviewed-by: thartmann, kvn
2021-04-16 21:28:30 +00:00
Daniel D. Daugherty
2c4075cbb7 8265381: ProblemList runtime/logging/RedefineClasses.java on macos-x64 -Xcomp
Reviewed-by: bpb
2021-04-16 21:20:51 +00:00
Daniel D. Daugherty
888d80b5e2 8265358: ProblemList jdk/jshell/ToolBasicTest.java on macOS-aarch64
8265361: ProblemList a few compiler/whitebox tests on macos-aarch64
8265363: ProblemList java/net/Socket/UdpSocket.java on macos-aarch64
8265368: ProblemList 3 java/net/httpclient/websocket tests on macos-aarch64
8265370: ProblemList java/net/MulticastSocket/Promiscuous.java on macos-aarch64

Reviewed-by: bpb, mikael
2021-04-16 20:21:15 +00:00
Ian Graves
0bdc3e7a41 8262744: Formatter '%g' conversion uses wrong format for BigDecimal rounding up to limits
Reviewed-by: rriggs, bpb
2021-04-16 20:05:48 +00:00
Erik Gahlin
4413dbfbdb 8263395: Incorrect use of Objects.nonNull
Reviewed-by: shade
2021-04-16 19:51:15 +00:00
Alexander Zuev
74d03abb7b 8039270: The background color of the button can't be displayed and when pressed the button, the background color can not be changed in accordance with the case described.
Reviewed-by: azvegint, trebari
2021-04-16 19:30:55 +00:00
Erik Gahlin
7c37c022a1 8244190: JFR: When starting a JVM with -XX:StartFlightRecording, output is written to stdout
Reviewed-by: mgronlun
2021-04-16 17:26:13 +00:00
Fernando Guallini
79adc16fd8 8264152: javax/net/ssl/DTLS/RespondToRetransmit.java timed out
Reviewed-by: xuelei
2021-04-16 16:51:41 +00:00
Brian Burkhalter
1c3fd46d7d 8265175: (fs) Files.copy(Path,Path,CopyOption...) should use sendfile on Linux
Reviewed-by: alanb
2021-04-16 15:46:37 +00:00
Guoxiong Li
cee4f1d9c4 8203925: tools/javac/importscope/T8193717.java ran out of java heap
Reviewed-by: vromero
2021-04-16 15:38:46 +00:00
Evgeny Nikitin
694e1cdcb8 8262060: compiler/whitebox/BlockingCompilation.java timed out
Reviewed-by: iignatyev
2021-04-16 14:33:27 +00:00
Alexander Zvegintsev
6946d91d7c 8075915: The eight controls without black backgrounds with WinLAF & GTK LAF & Nimbus LAF
Reviewed-by: psadhukhan, kizune, aivanov
2021-04-16 14:32:12 +00:00
Hamlin Li
714298a58e 8265259: G1: Fix HeapRegion::block_is_obj for unloading class in full gc
Reviewed-by: sjohanss, tschatzl
2021-04-16 12:40:25 +00:00
Zhengyu Gu
ff5bb8cf69 8265239: Shenandoah: Shenandoah heap region count could be off by 1
Reviewed-by: shade
2021-04-16 12:27:29 +00:00
Aleksey Shipilev
17b6592d8f 8265335: Epsilon: Minor typo in EpsilonElasticTLABDecay description
Reviewed-by: tschatzl
2021-04-16 12:10:36 +00:00
Roberto Castañeda Lozano
10ec38f80b 8262462: IGV: cannot remove specific groups imported via network
Reviewed-by: neliasso
2021-04-16 11:49:35 +00:00
Roland Westrelin
7137328006 8264958: C2 compilation fails with assert "n is later than its clone"
Reviewed-by: neliasso, thartmann
2021-04-16 11:34:45 +00:00
Thomas Schatzl
1d66a155c7 8265330: G1: Fix comment in G1FullGCPrepareTask::G1CalculatePointersClosure
Reviewed-by: shade, mli
2021-04-16 09:25:36 +00:00
Hamlin Li
b4ba74e3ac 8264987: G1: Fill BOTs for Survivor-turned-to-Old regions in full gc
Co-authored-by: Shoubing Ma <mashoubing1@huawei.com>
Reviewed-by: tschatzl, sjohanss
2021-04-16 08:07:00 +00:00
Ivan Walulya
fc89fe6458 8265119: G1: update_remset_before_rebuild mixes liveness in words with liveness in bytes
Reviewed-by: tschatzl, sjohanss
2021-04-16 07:29:55 +00:00
Robbin Ehn
50f3da8d59 8264480: Unreachable code in nmethod.cpp inside #ifdef DEBUG
Reviewed-by: chagedorn, kvn
2021-04-16 07:19:49 +00:00
Xiaohong Gong
e0151a6fb1 8264104: Eliminate unnecessary vector mask conversion during VectorUnbox for floating point VectorMask
Reviewed-by: kvn, vlivanov
2021-04-16 07:12:32 +00:00
Jaikiran Pai
64e21307a8 8262108: SimpleDateFormat formatting broken for sq_MK Locale
Reviewed-by: naoto
2021-04-16 06:45:39 +00:00
Tom Rodriguez
3423f3e1f5 8265180: JvmtiCompiledMethodLoadEvent should include the stub section of nmethods
Reviewed-by: kvn, sspitsyn
2021-04-15 23:42:16 +00:00
Naoto Sato
f6e54f2f9a 8258794: Support for CLDR version 39
Reviewed-by: joehw, erikj
2021-04-15 21:28:22 +00:00
Brian Burkhalter
e89fd15189 8261301: StringWriter.flush() is NOOP but documentation does not indicate it
Reviewed-by: naoto, rriggs
2021-04-15 20:19:40 +00:00
Vicente Romero
0b1b5c8d0b 8264373: javac hangs when annotation is declared with sealed public modifier
Reviewed-by: jlahoda
2021-04-15 19:07:11 +00:00
Daniel D. Daugherty
c7da64a488 8265302: ProblemList runtime/logging/RedefineClasses.java on linux-x64 -Xcomp
Reviewed-by: mikael
2021-04-15 17:30:11 +00:00
Mikael Vidstedt
838c11fc0e 8265293: ProblemList java/foreign/TestDowncall.java on macosx-aarch64
Reviewed-by: ccheung, dcubed
2021-04-15 16:57:17 +00:00
Jan Lahoda
325eecbccb 8255273: jshell crashes with UnsupportedOperationException: Should not get here.
Reviewed-by: vromero
2021-04-15 16:17:35 +00:00
Jan Lahoda
e43aee58e1 8262900: ToolBasicTest fails to access HTTP server it starts
Reviewed-by: sundar, vromero
2021-04-15 15:16:11 +00:00
Weijun Wang
c70589c68c 8265227: Move Proc.java from security/testlibrary to test/lib
Reviewed-by: rriggs, xuelei, rhalade, ssahoo
2021-04-15 15:07:47 +00:00
Roger Riggs
7b61a426e0 8265173: [test] divert spurious log output away from stream under test in ProcessBuilder Basic test
Reviewed-by: dholmes
2021-04-15 14:38:14 +00:00
Conor Cleary
4e90d74000 8048199: Replace anonymous inner classes with lambdas, where applicable, in JNDI
Reviewed-by: rriggs, dfuchs, aefimov, chegar
2021-04-15 14:08:27 +00:00
Conor Cleary
6293299dd3 8264824: java/net/Inet6Address/B6206527.java doesn't close ServerSocket properly
Reviewed-by: aefimov, dfuchs, michaelm, vtewari
2021-04-15 14:05:55 +00:00
Pankaj Bansal
6b907155f7 8265278: doc build fails after JDK-8262981
Reviewed-by: jdv, trebari
2021-04-15 14:04:22 +00:00
Denis Konoplev
0fee6ecac2 8264318: Lanai: DrawHugeImageTest.java fails on apple M1
Reviewed-by: serb, jdv
2021-04-15 13:50:22 +00:00
David Holmes
81877f7df2 8262501: jdk17 libjvm link failure with --as-needed and clock_gettime in librt
Co-authored-by: Matthias Klose <doko@openjdk.org>
Reviewed-by: erikj
2021-04-15 12:59:21 +00:00
Harold Seigel
b23dbdbdb3 8257804: Test runtime/modules/ModuleStress/ModuleStressGC.java fails: 'package test defined in module jdk.test, exports list being walked' missing from stdout/stderr
Reviewed-by: dholmes
2021-04-15 12:19:47 +00:00
Pankaj Bansal
9d669c912d 8262981: Create implementation for NSAccessibilitySlider protocol
Reviewed-by: kizune
2021-04-15 11:45:41 +00:00
Jayathirth D V
abdff7905f 8163086: java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java fails
Reviewed-by: psadhukhan
2021-04-15 11:32:07 +00:00
Prasanta Sadhukhan
b72d99e77b 8233564: [TESTBUG] MouseComboBoxTest.java is failing
Reviewed-by: jdv
2021-04-15 10:14:37 +00:00
Prasanta Sadhukhan
2b5869ad09 8233565: [TESTBUG] NullModalityDialogTest.java fails on MacOS
Reviewed-by: jdv
2021-04-15 09:55:29 +00:00
Thomas Schatzl
bba16f61bb 8264818: G1: Improve liveness check for empty pinned regions after full gc marking
Reviewed-by: sjohanss, ayang, mli
2021-04-15 08:44:52 +00:00
Thomas Schatzl
75da1e9a64 8264423: G1: Rename full gc attribute table states
Reviewed-by: sjohanss, mli
2021-04-15 08:12:37 +00:00
Thomas Schatzl
125a8479a9 8264788: Make SequentialSubTasksDone use-once
Reviewed-by: ayang, sjohanss
2021-04-15 08:11:01 +00:00
Rickard Bäckman
0793fcbbca 8260255: C1: LoopInvariantCodeMotion constructor can leave some fields uninitialized
Reviewed-by: neliasso, thartmann
2021-04-15 07:48:40 +00:00
Jie Fu
b224b56649 8265225: jdk/jfr/tool/TestConfigure.java fails to cleanup the output files after the testing
Reviewed-by: egahlin
2021-04-15 06:35:33 +00:00
Junji Wang
7c6e3796ef 8265120: hs_err improvement: align the output of Virtual space metadata
Reviewed-by: dholmes
2021-04-15 05:40:09 +00:00
Yumin Qi
e7cbeba866 8259070: Add jcmd option to dump CDS
Reviewed-by: ccheung, iklam, mli
2021-04-15 05:21:24 +00:00
David Holmes
593194864a 8265246: Fix macos-Aarch64 build after JDK-8263709
Reviewed-by: mikael
2021-04-15 03:01:49 +00:00
David Holmes
79bff21b43 8263709: Cleanup THREAD/TRAPS/CHECK usage in JRT_ENTRY routines
Reviewed-by: coleenp, hseigel, iklam, kvn
2021-04-15 02:20:31 +00:00
Nick Gasson
f4c3efd9cf 8265192: [macos_aarch64] configure script fails if GNU uname in PATH
Reviewed-by: erikj
2021-04-15 01:43:22 +00:00
Andy Herrick
e167577888 8265078: jpackage tests on Windows leave large temp files
Reviewed-by: asemenyuk, kcr
2021-04-14 19:56:24 +00:00
Mikael Vidstedt
05f851e45d 8265236: ProblemList java/foreign/TestUpcall.java on macosx-aarch64
Reviewed-by: dcubed
2021-04-14 19:53:53 +00:00
Brian Burkhalter
d1b28e7ad0 8265231: (fc) ReadDirect and WriteDirect tests fail after fix for JDK-8264821
Reviewed-by: alanb, dcubed, darcy, chegar
2021-04-14 19:53:19 +00:00
Mikael Vidstedt
57f86a071e 8265235: ProblemList java/foreign/TestIntrinsics.java on macosx-aarch64
Reviewed-by: dcubed
2021-04-14 19:19:49 +00:00
Evgeny Nikitin
4c83d24f0a 8058176: [mlvm] tests should not allow code cache exhaustion
Reviewed-by: iignatyev
2021-04-14 17:32:53 +00:00
Aleksey Shipilev
94067446ba 8264976: Minor numeric bug in AbstractSplittableWithBrineGenerator.makeSplitsSpliterator
Reviewed-by: psandoz, jlaskey
2021-04-14 16:16:41 +00:00
Joe Darcy
80026d81a4 8265174: Update Class.getDeclaredMethods to discuss synthetic and bridge methods
Reviewed-by: jfranck
2021-04-14 16:15:54 +00:00
Lance Andersen
ffb3771816 8265019: Update tests for additional TestNG test permissions
Reviewed-by: naoto, bpb, alanb
2021-04-14 15:42:55 +00:00
Brian Burkhalter
7e4cd48020 8264821: DirectIOTest fails on a system with large block size
Reviewed-by: chegar
2021-04-14 15:33:48 +00:00
Yasumasa Suenaga
0afcbd4b09 8264412: AArch64: CPU description should refer DMI
Reviewed-by: aph, gziemski
2021-04-14 15:11:08 +00:00
Michael McMahon
4661690981 8262883: doccheck: Broken links in java.base
Reviewed-by: lancea
2021-04-14 15:00:14 +00:00
11410 changed files with 697017 additions and 629845 deletions

View File

@@ -10,7 +10,7 @@ on:
platforms:
description: "Platform(s) to execute on"
required: true
default: "Linux additional (hotspot only), Linux x64, Linux x86, Windows aarch64, Windows x64, macOS x64"
default: "Linux additional (hotspot only), Linux x64, Linux x86, Windows x64, macOS x64"
jobs:
prerequisites:
@@ -22,7 +22,6 @@ jobs:
platform_linux_additional: ${{ steps.check_platforms.outputs.platform_linux_additional }}
platform_linux_x64: ${{ steps.check_platforms.outputs.platform_linux_x64 }}
platform_linux_x86: ${{ steps.check_platforms.outputs.platform_linux_x86 }}
platform_windows_aarch64: ${{ steps.check_platforms.outputs.platform_windows_aarch64 }}
platform_windows_x64: ${{ steps.check_platforms.outputs.platform_windows_x64 }}
platform_macos_x64: ${{ steps.check_platforms.outputs.platform_macos_x64 }}
platform_macos_aarch64: ${{ steps.check_platforms.outputs.platform_macos_aarch64 }}
@@ -39,7 +38,6 @@ jobs:
echo "::set-output name=platform_linux_additional::${{ contains(github.event.inputs.platforms, 'linux additional (hotspot only)') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux additional (hotspot only)'))) }}"
echo "::set-output name=platform_linux_x64::${{ contains(github.event.inputs.platforms, 'linux x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux x64'))) }}"
echo "::set-output name=platform_linux_x86::${{ contains(github.event.inputs.platforms, 'linux x86') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux x86'))) }}"
echo "::set-output name=platform_windows_aarch64::${{ contains(github.event.inputs.platforms, 'windows aarch64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'windows aarch64'))) }}"
echo "::set-output name=platform_windows_x64::${{ contains(github.event.inputs.platforms, 'windows x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'windows x64'))) }}"
echo "::set-output name=platform_macos_x64::${{ contains(github.event.inputs.platforms, 'macos x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'macos x64'))) }}"
echo "::set-output name=platform_macos_aarch64::${{ contains(github.event.inputs.platforms, 'macos aarch64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'macos aarch64'))) }}"
@@ -67,7 +65,7 @@ jobs:
if: steps.check_submit.outputs.should_run != 'false'
- name: Determine the jtreg ref to checkout
run: "echo JTREG_REF=jtreg${{ fromJson(steps.check_deps.outputs.dependencies).JTREG_VERSION }}-${{ fromJson(steps.check_deps.outputs.dependencies).JTREG_BUILD }} >> $GITHUB_ENV"
run: "echo JTREG_REF=jtreg-${{ fromJson(steps.check_deps.outputs.dependencies).JTREG_VERSION }}+${{ fromJson(steps.check_deps.outputs.dependencies).JTREG_BUILD }} >> $GITHUB_ENV"
if: steps.check_submit.outputs.should_run != 'false'
- name: Check if a jtreg image is present in the cache
@@ -87,7 +85,7 @@ jobs:
if: steps.check_submit.outputs.should_run != 'false' && steps.jtreg.outputs.cache-hit != 'true'
- name: Build jtreg
run: sh make/build-all.sh ${JAVA_HOME_8_X64}
run: bash make/build.sh --jdk ${JAVA_HOME_8_X64}
working-directory: jtreg
if: steps.check_submit.outputs.should_run != 'false' && steps.jtreg.outputs.cache-hit != 'true'
@@ -174,7 +172,7 @@ jobs:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install gcc-10=10.2.0-5ubuntu1~20.04 g++-10=10.2.0-5ubuntu1~20.04 libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
sudo apt-get install gcc-10=10.3.0-1ubuntu1~20.04 g++-10=10.3.0-1ubuntu1~20.04 libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10
- name: Configure
@@ -489,12 +487,12 @@ jobs:
- name: Install native host dependencies
run: |
sudo apt-get install gcc-10=10.2.0-5ubuntu1~20.04 g++-10=10.2.0-5ubuntu1~20.04 libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
sudo apt-get install gcc-10=10.3.0-1ubuntu1~20.04 g++-10=10.3.0-1ubuntu1~20.04 libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10
if: matrix.debian-arch == ''
- name: Install cross-compilation host dependencies
run: sudo apt-get install gcc-10-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}=10.2.0-5ubuntu1~20.04cross1 g++-10-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}=10.2.0-5ubuntu1~20.04cross1
run: sudo apt-get install gcc-10-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}=10.3.0-1ubuntu1~20.04cross1 g++-10-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}=10.3.0-1ubuntu1~20.04cross1
if: matrix.debian-arch != ''
- name: Cache sysroot
@@ -849,94 +847,6 @@ jobs:
path: ~/linux-x86${{ matrix.artifact }}_testsupport_${{ env.logsuffix }}.zip
continue-on-error: true
windows_aarch64_build:
name: Windows aarch64
runs-on: "windows-2019"
needs: prerequisites
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_windows_aarch64 != 'false'
strategy:
fail-fast: false
matrix:
flavor:
- build debug
include:
- flavor: build debug
flags: --enable-debug
artifact: -debug
env:
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_FILENAME }}"
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_URL }}"
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).WINDOWS_X64_BOOT_JDK_SHA256 }}"
steps:
- name: Restore cygwin packages from cache
id: cygwin
uses: actions/cache@v2
with:
path: ~/cygwin/packages
key: cygwin-packages-${{ runner.os }}-v1
- name: Install cygwin
run: |
New-Item -Force -ItemType directory -Path "$HOME\cygwin"
& curl -L "https://www.cygwin.com/setup-x86_64.exe" -o "$HOME/cygwin/setup-x86_64.exe"
Start-Process -FilePath "$HOME\cygwin\setup-x86_64.exe" -ArgumentList "--quiet-mode --packages autoconf,make,zip,unzip --root $HOME\cygwin\cygwin64 --local-package-dir $HOME\cygwin\packages --site http://mirrors.kernel.org/sourceware/cygwin --no-desktop --no-shortcuts --no-startmenu --no-admin" -Wait -NoNewWindow
- name: Checkout the source
uses: actions/checkout@v2
with:
path: jdk
- name: Restore boot JDK from cache
id: bootjdk
uses: actions/cache@v2
with:
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
- name: Download boot JDK
run: |
mkdir -p "$HOME\bootjdk\$env:BOOT_JDK_VERSION"
& curl -L "$env:BOOT_JDK_URL" -o "$HOME/bootjdk/$env:BOOT_JDK_FILENAME"
$FileHash = Get-FileHash -Algorithm SHA256 "$HOME/bootjdk/$env:BOOT_JDK_FILENAME"
$FileHash.Hash -eq $env:BOOT_JDK_SHA256
& tar -xf "$HOME/bootjdk/$env:BOOT_JDK_FILENAME" -C "$HOME/bootjdk/$env:BOOT_JDK_VERSION"
Get-ChildItem "$HOME\bootjdk\$env:BOOT_JDK_VERSION\*\*" | Move-Item -Destination "$HOME\bootjdk\$env:BOOT_JDK_VERSION"
if: steps.bootjdk.outputs.cache-hit != 'true'
- name: Ensure a specific version of MSVC is installed
run: >
Start-Process -FilePath 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe' -Wait -NoNewWindow -ArgumentList
'modify --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" --quiet
--add Microsoft.VisualStudio.Component.VC.14.28.arm64'
- name: Configure
run: >
$env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
$env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ;
$env:BOOT_JDK = cygpath "$HOME/bootjdk/$env:BOOT_JDK_VERSION" ;
& bash configure
--with-conf-name=windows-aarch64
--with-msvc-toolset-version=14.28
--openjdk-target=aarch64-unknown-cygwin
${{ matrix.flags }}
--with-version-opt="$env:GITHUB_ACTOR-$env:GITHUB_SHA"
--with-version-build=0
--with-boot-jdk="$env:BOOT_JDK"
--with-default-make-target="hotspot"
working-directory: jdk
- name: Build
run: |
$env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
$env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ;
& make CONF_NAME=windows-aarch64
working-directory: jdk
windows_x64_build:
name: Windows x64
runs-on: "windows-2019"
@@ -1361,8 +1271,8 @@ jobs:
with:
name: transient_jdk-macos-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
path: |
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}.tar.gz
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}.tar.gz
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}.tar.gz
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}.tar.gz
macos_aarch64_build:
name: macOS aarch64
@@ -1464,8 +1374,8 @@ jobs:
with:
name: transient_jdk-macos-aarch64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
path: |
jdk/build/macos-aarch64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-aarch64_bin${{ matrix.artifact }}.tar.gz
jdk/build/macos-aarch64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-aarch64_bin-tests${{ matrix.artifact }}.tar.gz
jdk/build/macos-aarch64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-aarch64_bin${{ matrix.artifact }}.tar.gz
jdk/build/macos-aarch64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-aarch64_bin-tests${{ matrix.artifact }}.tar.gz
macos_x64_test:
@@ -1572,13 +1482,13 @@ jobs:
- name: Unpack jdk
run: |
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}"
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}"
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}"
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}"
- name: Unpack tests
run: |
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}"
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}"
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}"
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}"
- name: Install dependencies
run: brew install make
@@ -1588,13 +1498,13 @@ jobs:
- name: Find root of jdk image dir
run: |
imageroot=`find ${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }} -name release -type f`
imageroot=`find ${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }} -name release -type f`
echo "imageroot=`dirname ${imageroot}`" >> $GITHUB_ENV
- name: Run tests
run: >
JDK_IMAGE_DIR=${{ env.imageroot }}
TEST_IMAGE_DIR=${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}
TEST_IMAGE_DIR=${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}
BOOT_JDK=${HOME}/bootjdk/${BOOT_JDK_VERSION}/Contents/Home
JT_HOME=${HOME}/jtreg
gmake test-prebuilt
@@ -1661,7 +1571,6 @@ jobs:
needs:
- prerequisites
- linux_additional_build
- windows_aarch64_build
- linux_x64_test
- linux_x86_test
- windows_x64_test

4
.gitignore vendored
View File

@@ -16,3 +16,7 @@ NashornProfile.txt
**/JTreport/**
**/JTwork/**
/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 enhancements in font rendering, HiDPI support, ligatures, performance improvements, and bugfixes.
See <https://openjdk.java.net/> for more information about
the OpenJDK Community and the JDK.
## Releases
Download the latest releases of JetBrains Runtime to use with JetBrains IDEs. The full list
can be found on the [releases page](https://github.com/JetBrains/JetBrainsRuntime/releases).
| IDE Version | Latest JBR | Date Released |
| --- | --- | --- |
| 2021.3 | [17_0_1-b164.8](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr17_0_1b164.8) | 15-Nov-2021 |
## 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
# git checkout master17
# 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 \
java-16-amazon-corretto-jdk
```
Then run the following:
```
$ cd JetBrainsRuntime
$ git checkout master17
$ 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 16 (for instance, from [AdoptOpenJDK](https://adoptopenjdk.net/installation.html?variant=openjdk16&jvmVariant=hotspot#)).
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 master17
$ 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](getDpiInfo).
* Java 16 (for instance, from [AdoptOpenJDK](https://adoptopenjdk.net/installation.html?variant=openjdk16&jvmVariant=hotspot#)).
From the command line:
```
$ cd JetBrainsRuntime
$ git checkout master17
$ 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).
* [How to develop OpenJDK with CLion](https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/).

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>] [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,14 @@ 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
case $1 in
@@ -44,12 +67,26 @@ 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
;;
@@ -64,20 +101,21 @@ do
shift
done
mkdir -p $IDEA_OUTPUT || exit 1
cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
if [ "x$TOPLEVEL_DIR" = "x" ] ; then
cd $SCRIPT_DIR/..
TOPLEVEL_DIR=`pwd`
cd $IDEA_OUTPUT
if [ "x$IDEA_OUTPUT" = "x" ] ; then
IDEA_OUTPUT="$TOPLEVEL_DIR/.idea"
fi
MAKE_DIR="$SCRIPT_DIR/../make"
IDEA_MAKE="$MAKE_DIR/ide/idea/jdk"
mkdir -p $IDEA_OUTPUT || exit 1
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`
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
@@ -86,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="$*" || 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
@@ -121,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
@@ -144,105 +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 [ "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`
JAVAC=javac
elif [ "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
JAVAC=javac.exe
else
JAVAC_SOURCE_FILE=$IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java
JAVAC_SOURCE_PATH=$IDEA_OUTPUT/src
JAVAC_CLASSES=$CLASSES
JAVAC_CP=$CP
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
$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

@@ -76,7 +76,7 @@
<li><a href="#specifying-the-target-platform">Specifying the Target Platform</a></li>
<li><a href="#toolchain-considerations">Toolchain Considerations</a></li>
<li><a href="#native-libraries">Native Libraries</a></li>
<li><a href="#creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sysroots With qemu-deboostrap</a></li>
<li><a href="#cross-compiling-with-debian-sysroots">Cross compiling with Debian sysroots</a></li>
<li><a href="#building-for-armaarch64">Building for ARM/aarch64</a></li>
<li><a href="#building-for-musl">Building for musl</a></li>
<li><a href="#verifying-the-build">Verifying the Build</a></li>
@@ -96,6 +96,7 @@
<li><a href="#specific-build-issues">Specific Build Issues</a></li>
<li><a href="#getting-help">Getting Help</a></li>
</ul></li>
<li><a href="#reproducible-builds">Reproducible Builds</a></li>
<li><a href="#hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</a><ul>
<li><a href="#bash-completion">Bash Completion</a></li>
<li><a href="#using-multiple-configurations">Using Multiple Configurations</a></li>
@@ -320,6 +321,7 @@
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libfreetype6-dev</code>.</li>
<li>To install on an rpm-based Linux, try running <code>sudo yum install freetype-devel</code>.</li>
<li>To install on Alpine Linux, try running <code>sudo apk add freetype-dev</code>.</li>
<li>To install on macOS, try running <code>brew install freetype</code>.</li>
</ul>
<p>Use <code>--with-freetype-include=&lt;path&gt;</code> and <code>--with-freetype-lib=&lt;path&gt;</code> if <code>configure</code> does not automatically locate the platform FreeType files.</p>
<h3 id="cups">CUPS</h3>
@@ -628,7 +630,7 @@ cp: cannot stat `arm-linux-gnueabihf/libSM.so&#39;: No such file or directory
cp: cannot stat `arm-linux-gnueabihf/libXt.so&#39;: No such file or directory</code></pre></li>
<li><p>If the X11 libraries are not properly detected by <code>configure</code>, you can point them out by <code>--with-x</code>.</p></li>
</ul>
<h3 id="creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sysroots With qemu-deboostrap</h3>
<h3 id="cross-compiling-with-debian-sysroots">Cross compiling with Debian sysroots</h3>
<p>Fortunately, you can create sysroots for foreign architectures with tools provided by your OS. On Debian/Ubuntu systems, one could use <code>qemu-deboostrap</code> to create the <em>target</em> system chroot, which would have the native libraries and headers specific to that <em>target</em> system. After that, we can use the cross-compiler on the <em>build</em> system, pointing into chroot to get the build dependencies right. This allows building for foreign architectures with native compilation speed.</p>
<p>For example, cross-compiling to AArch64 from x86_64 could be done like this:</p>
<ul>
@@ -638,7 +640,7 @@ cp: cannot stat `arm-linux-gnueabihf/libXt.so&#39;: No such file or directory</c
<pre><code>sudo qemu-debootstrap \
--arch=arm64 \
--verbose \
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev \
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \
--resolve-deps \
buster \
~/sysroot-arm64 \
@@ -646,67 +648,125 @@ cp: cannot stat `arm-linux-gnueabihf/libXt.so&#39;: No such file or directory</c
<li><p>Make sure the symlinks inside the newly created chroot point to proper locations:</p>
<pre><code>sudo chroot ~/sysroot-arm64 symlinks -cr .</code></pre></li>
<li><p>Configure and build with newly created chroot as sysroot/toolchain-path:</p>
<pre><code>CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure \
--openjdk-target=aarch64-linux-gnu \
--with-sysroot=~/sysroot-arm64 \
--with-toolchain-path=~/sysroot-arm64 \
--with-freetype-lib=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/ \
--with-freetype-include=~/sysroot-arm64/usr/include/freetype2/ \
--x-libraries=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/
<pre><code>sh ./configure \
--openjdk-target=aarch64-linux-gnu \
--with-sysroot=~/sysroot-arm64
make images
ls build/linux-aarch64-server-release/</code></pre></li>
</ul>
<p>The build does not create new files in that chroot, so it can be reused for multiple builds without additional cleanup.</p>
<p>The build system should automatically detect the toolchain paths and dependencies, but sometimes it might require a little nudge with:</p>
<ul>
<li><p>Native compilers: override <code>CC</code> or <code>CXX</code> for <code>./configure</code></p></li>
<li><p>Freetype lib location: override <code>--with-freetype-lib</code>, for example <code>${sysroot}/usr/lib/${target}/</code></p></li>
<li><p>Freetype includes location: override <code>--with-freetype-include</code> for example <code>${sysroot}/usr/include/freetype2/</code></p></li>
<li><p>X11 libraries location: override <code>--x-libraries</code>, for example <code>${sysroot}/usr/lib/${target}/</code></p></li>
</ul>
<p>Architectures that are known to successfully cross-compile like this are:</p>
<table>
<thead>
<tr class="header">
<th style="text-align: left;">Target</th>
<th style="text-align: left;"><code>CC</code></th>
<th style="text-align: left;"><code>CXX</code></th>
<th style="text-align: left;"><code>--arch=...</code></th>
<th style="text-align: left;">Debian tree</th>
<th style="text-align: left;">Debian arch</th>
<th style="text-align: left;"><code>--openjdk-target=...</code></th>
<th><code>--with-jvm-variants=...</code></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">x86</td>
<td style="text-align: left;">default</td>
<td style="text-align: left;">default</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">i386</td>
<td style="text-align: left;">i386-linux-gnu</td>
<td>(all)</td>
</tr>
<tr class="even">
<td style="text-align: left;">armhf</td>
<td style="text-align: left;">gcc-arm-linux-gnueabihf</td>
<td style="text-align: left;">g++-arm-linux-gnueabihf</td>
<td style="text-align: left;">arm</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">armhf</td>
<td style="text-align: left;">arm-linux-gnueabihf</td>
<td>(all)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">aarch64</td>
<td style="text-align: left;">gcc-aarch64-linux-gnu</td>
<td style="text-align: left;">g++-aarch64-linux-gnu</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">arm64</td>
<td style="text-align: left;">aarch64-linux-gnu</td>
<td>(all)</td>
</tr>
<tr class="even">
<td style="text-align: left;">ppc64el</td>
<td style="text-align: left;">gcc-powerpc64le-linux-gnu</td>
<td style="text-align: left;">g++-powerpc64le-linux-gnu</td>
<td style="text-align: left;">ppc64le</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">ppc64el</td>
<td style="text-align: left;">powerpc64le-linux-gnu</td>
<td>(all)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">s390x</td>
<td style="text-align: left;">gcc-s390x-linux-gnu</td>
<td style="text-align: left;">g++-s390x-linux-gnu</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">s390x</td>
<td style="text-align: left;">s390x-linux-gnu</td>
<td>(all)</td>
</tr>
<tr class="even">
<td style="text-align: left;">mipsle</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">mipsel</td>
<td style="text-align: left;">mipsel-linux-gnu</td>
<td>zero</td>
</tr>
<tr class="odd">
<td style="text-align: left;">mips64le</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">mips64el</td>
<td style="text-align: left;">mips64el-linux-gnueabi64</td>
<td>zero</td>
</tr>
<tr class="even">
<td style="text-align: left;">armel</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">arm</td>
<td style="text-align: left;">arm-linux-gnueabi</td>
<td>zero</td>
</tr>
<tr class="odd">
<td style="text-align: left;">ppc</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">powerpc</td>
<td style="text-align: left;">powerpc-linux-gnu</td>
<td>zero</td>
</tr>
<tr class="even">
<td style="text-align: left;">ppc64be</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">ppc64</td>
<td style="text-align: left;">powerpc64-linux-gnu</td>
<td>(all)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">m68k</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">m68k</td>
<td style="text-align: left;">m68k-linux-gnu</td>
<td>zero</td>
</tr>
<tr class="even">
<td style="text-align: left;">alpha</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">alpha</td>
<td style="text-align: left;">alpha-linux-gnu</td>
<td>zero</td>
</tr>
<tr class="odd">
<td style="text-align: left;">sh4</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">sh4</td>
<td style="text-align: left;">sh4-linux-gnu</td>
<td>zero</td>
</tr>
</tbody>
</table>
<p>Additional architectures might be supported by Debian/Ubuntu Ports.</p>
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
<p>A common cross-compilation target is the ARM CPU. When building for ARM, it is useful to set the ABI profile. A number of pre-defined ABI profiles are available using <code>--with-abi-profile</code>: arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer properly supported by the JDK.</p>
<h3 id="building-for-musl">Building for musl</h3>
@@ -825,6 +885,32 @@ spawn failed</code></pre>
<h3 id="getting-help">Getting Help</h3>
<p>If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build Group by sending a mail to <a href="mailto:build-dev@openjdk.java.net">build-dev@openjdk.java.net</a>. Please include the relevant parts of the configure and/or build log.</p>
<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>
<ul>
<li>Turn on build system support for reproducible builds</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

@@ -454,6 +454,7 @@ rather than bundling the JDK's own copy.
* To install on an rpm-based Linux, try running `sudo yum install
freetype-devel`.
* To install on Alpine Linux, try running `sudo apk add freetype-dev`.
* To install on macOS, try running `brew install freetype`.
Use `--with-freetype-include=<path>` and `--with-freetype-lib=<path>`
if `configure` does not automatically locate the platform FreeType files.
@@ -1089,7 +1090,7 @@ Note that X11 is needed even if you only want to build a headless JDK.
* If the X11 libraries are not properly detected by `configure`, you can
point them out by `--with-x`.
### Creating And Using Sysroots With qemu-deboostrap
### Cross compiling with Debian sysroots
Fortunately, you can create sysroots for foreign architectures with tools
provided by your OS. On Debian/Ubuntu systems, one could use `qemu-deboostrap` to
@@ -1110,7 +1111,7 @@ For example, cross-compiling to AArch64 from x86_64 could be done like this:
sudo qemu-debootstrap \
--arch=arm64 \
--verbose \
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev \
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \
--resolve-deps \
buster \
~/sysroot-arm64 \
@@ -1124,13 +1125,9 @@ For example, cross-compiling to AArch64 from x86_64 could be done like this:
* Configure and build with newly created chroot as sysroot/toolchain-path:
```
CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure \
--openjdk-target=aarch64-linux-gnu \
--with-sysroot=~/sysroot-arm64 \
--with-toolchain-path=~/sysroot-arm64 \
--with-freetype-lib=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/ \
--with-freetype-include=~/sysroot-arm64/usr/include/freetype2/ \
--x-libraries=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/
sh ./configure \
--openjdk-target=aarch64-linux-gnu \
--with-sysroot=~/sysroot-arm64
make images
ls build/linux-aarch64-server-release/
```
@@ -1138,17 +1135,34 @@ For example, cross-compiling to AArch64 from x86_64 could be done like this:
The build does not create new files in that chroot, so it can be reused for multiple builds
without additional cleanup.
The build system should automatically detect the toolchain paths and dependencies, but sometimes
it might require a little nudge with:
* Native compilers: override `CC` or `CXX` for `./configure`
* Freetype lib location: override `--with-freetype-lib`, for example `${sysroot}/usr/lib/${target}/`
* Freetype includes location: override `--with-freetype-include` for example `${sysroot}/usr/include/freetype2/`
* X11 libraries location: override `--x-libraries`, for example `${sysroot}/usr/lib/${target}/`
Architectures that are known to successfully cross-compile like this are:
Target `CC` `CXX` `--arch=...` `--openjdk-target=...`
------------ ------------------------- --------------------------- ------------- -----------------------
x86 default default i386 i386-linux-gnu
armhf gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf armhf arm-linux-gnueabihf
aarch64 gcc-aarch64-linux-gnu g++-aarch64-linux-gnu arm64 aarch64-linux-gnu
ppc64el gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu ppc64el powerpc64le-linux-gnu
s390x gcc-s390x-linux-gnu g++-s390x-linux-gnu s390x s390x-linux-gnu
Additional architectures might be supported by Debian/Ubuntu Ports.
Target Debian tree Debian arch `--openjdk-target=...` `--with-jvm-variants=...`
------------ ------------ ------------- ------------------------ --------------
x86 buster i386 i386-linux-gnu (all)
arm buster armhf arm-linux-gnueabihf (all)
aarch64 buster arm64 aarch64-linux-gnu (all)
ppc64le buster ppc64el powerpc64le-linux-gnu (all)
s390x buster s390x s390x-linux-gnu (all)
mipsle buster mipsel mipsel-linux-gnu zero
mips64le buster mips64el mips64el-linux-gnueabi64 zero
armel buster arm arm-linux-gnueabi zero
ppc sid powerpc powerpc-linux-gnu zero
ppc64be sid ppc64 powerpc64-linux-gnu (all)
m68k sid m68k m68k-linux-gnu zero
alpha sid alpha alpha-linux-gnu zero
sh4 sid sh4 sh4-linux-gnu zero
### Building for ARM/aarch64
@@ -1489,6 +1503,68 @@ If you need general help or advice about developing for the JDK, you can also
contact the Adoption Group. See the section on [Contributing to OpenJDK](
#contributing-to-openjdk) for more information.
## Reproducible Builds
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 [Reproducible Builds](
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:
* Turn on build system support for reproducible builds
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.
* 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
`--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`
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`.
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.
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.
**Hint:** If your build environment already sets `SOURCE_DATE_EPOCH`, you can
propagate this using `--with-source-date=$SOURCE_DATE_EPOCH`.
* Specify a hotspot build time
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)`.
* Copyright year
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.
## Hints and Suggestions for Advanced Users
### Bash Completion

View File

@@ -94,6 +94,7 @@
<li><p>All source files must have a globally unique basename. The build system depends on this uniqueness.</p></li>
<li><p>Do not put non-trivial function implementations in .hpp files. If the implementation depends on other .hpp files, put it in a .cpp or a .inline.hpp file.</p></li>
<li><p>.inline.hpp files should only be included in .cpp or .inline.hpp files.</p></li>
<li><p>All .inline.hpp files should include their corresponding .hpp file as the first include line. Declarations needed by other files should be put in the .hpp file, and not in the .inline.hpp file. This rule exists to resolve problems with circular dependencies between .inline.hpp files.</p></li>
<li><p>All .cpp files include precompiled.hpp as the first include line.</p></li>
<li><p>precompiled.hpp is just a build time optimization, so don't rely on it to resolve include problems.</p></li>
<li><p>Keep the include lines alphabetically sorted.</p></li>

View File

@@ -138,6 +138,11 @@ a .inline.hpp file.
* .inline.hpp files should only be included in .cpp or .inline.hpp
files.
* All .inline.hpp files should include their corresponding .hpp file as
the first include line. Declarations needed by other files should be put
in the .hpp file, and not in the .inline.hpp file. This rule exists to
resolve problems with circular dependencies between .inline.hpp files.
* All .cpp files include precompiled.hpp as the first include line.
* precompiled.hpp is just a build time optimization, so don't rely on

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/zulu16.28.11-ca-jdk16.0.0-linux_x64.tar.gz \
-O - | tar xz -C /
RUN mv /zulu16.28.11-ca-jdk16.0.0-linux_x64 /jdk16.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,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 version 17.
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 jbr17buildenv -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,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,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,96 @@
VENDOR_NAME="JetBrains s.r.o."
VENDOR_VERSION_STRING="JBR-${JBSDK_VERSION_WITH_DOTS}.${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
USER=builduser
export USER
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
--with-native-debug-symbols=none"
function do_exit() {
exit_code=$1
[ $do_reset_changes -eq 1 ] && git checkout HEAD 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,87 @@
#!/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}
sh configure \
--with-debug-level=release \
--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 \
|| exit $?
make clean CONF=linux-aarch64-server-release || exit $?
make images CONF=linux-aarch64-server-release test-image || exit $?
JBSDK=${JBRSDK_BASE_NAME}-linux-aarch64-b${build_number}
BASE_DIR=build/linux-aarch64-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
# NB: --sort=name requires tar1.28
tar $REPRODUCIBLE_TAR_OPTS --sort=name -pcf $JBSDK.tar \
--exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man \
-C $BASE_DIR ${JBRSDK_BUNDLE} || exit $?
touch -c -d @$SOURCE_DATE_EPOCH $JBRSDK.tar
gzip $JBSDK.tar || exit $?
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-$JBSDK_VERSION
rm -rf $BASE_DIR/$JBR_BUNDLE
JBR=$JBR_BASE_NAME-linux-aarch64-b$build_number
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.aarch64
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.aarch64 | 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 $REPRODUCIBLE_TAR_OPTS --sort=name -pcf $JBR.tar -C $BASE_DIR ${JBR_BUNDLE} || exit $?
touch -c -d @$SOURCE_DATE_EPOCH $JBR.tar
gzip $JBR.tar || exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-aarch64-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' test || exit $?
gzip $JBRSDK_TEST.tar || exit $?

View File

@@ -0,0 +1,161 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# 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
#
# 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)
#
# Environment variables:
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_linux_x64
while getopts ":i?" o; do
case "${o}" in
i)
i="incremental build"
INC_BUILD=1
;;
esac
done
shift $((OPTIND-1))
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
JCEF_PATH=${JCEF_PATH:=./jcef_linux_x64}
source jb/project/tools/common/scripts/common.sh
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 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-"
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-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
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
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=1
do_reset_changes=1
;;
"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}"
fi
# create runtime image bundle
modules=$(xargs < 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 [ -z "$bundle_type" ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-test-x64-b${build_number}
echo Creating "$JBRSDK_TEST" ...
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 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,204 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# 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
#
# 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)
#
# Environment variables:
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_mac
# MACOSX_VERSION_MAX - specifies value for the --with-macosx-version-max parameter. By default it is 10.12.00 for x64
# and 11.00.00 for aarch64
while getopts ":i?" o; do
case "${o}" in
i)
i="incremental build"
INC_BUILD=1
;;
esac
done
shift $((OPTIND-1))
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
architecture=$5 # aarch64 or x64
enable_aot=$6 # temporary param for building test jre with aot under aarch64
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
WITH_IMPORT_MODULES="--with-import-modules=${MODULAR_SDK_PATH:=./modular-sdk}"
JCEF_PATH=${JCEF_PATH:=./jcef_mac}
architecture=${architecture:=x64}
BOOT_JDK=${BOOT_JDK:=$(/usr/libexec/java_home -v 16)}
source jb/project/tools/common/scripts/common.sh
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" \
--with-macosx-version-max="${MACOSX_VERSION_MAX:="11.00.00"}" \
--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" \
--with-macosx-version-max="${MACOSX_VERSION_MAX:="10.12.00"}" \
--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
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
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=1
do_reset_changes=1
;;
"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
major_version=$(echo "$JBSDK_VERSION_WITH_DOTS" | awk -F "." '{print $1}')
minor_version=$(echo "$JBSDK_VERSION_WITH_DOTS" | awk -F "." '{print $3}')
[ -z "$minor_version" -o "$minor_version" = "0" ] && version_dir=$major_version || version_dir=$JBSDK_VERSION_WITH_DOTS
JSDK=$IMAGES_DIR/jdk-bundle/jdk-$version_dir.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 < 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 [ -z "$bundle_type" ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-osx-test-${architecture}-b${build_number}
echo Creating "$JBRSDK_TEST" ...
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 modules.list modules.list
index 054f21d1ee0..d9a121f0273 100644
--- modules.list
+++ modules.list
@@ -49,4 +49,7 @@ jdk.unsupported,
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;

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 9b18096f241be0350245868e8cf26729f6c3d110 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/45] 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 db5b8da58fc..6d9e5116df1 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -908,7 +908,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

View File

@@ -0,0 +1,206 @@
From 784dd5e16922110b0ee802d5bf1063e2b94499bc 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 04/45] Support for Lambda class redefinition
---
.../share/classfile/classLoaderData.cpp | 9 +++
.../share/classfile/classLoaderData.hpp | 2 +-
.../share/classfile/systemDictionary.cpp | 10 ++-
.../prims/jvmtiEnhancedRedefineClasses.cpp | 65 +++++++++++++++++--
.../prims/jvmtiEnhancedRedefineClasses.hpp | 1 +
.../share/prims/resolvedMethodTable.cpp | 2 +
6 files changed, 80 insertions(+), 9 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 340ffadf837..db50b3edee8 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -599,6 +599,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 5a81ab90ca3..bda39f3e353 100644
--- a/src/hotspot/share/classfile/classLoaderData.hpp
+++ b/src/hotspot/share/classfile/classLoaderData.hpp
@@ -175,7 +175,7 @@ class ClassLoaderData : public CHeapObj<mtClass> {
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 2bfd9cb802f..cea614a574f 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -825,10 +825,14 @@ InstanceKlass* SystemDictionary::resolve_hidden_class_from_stream(
Symbol* class_name,
Handle class_loader,
const ClassLoadInfo& cl_info,
+ InstanceKlass* old_klass,
TRAPS) {
EventClassLoad class_load_start_event;
ClassLoaderData* loader_data;
+
+ bool is_redefining = (old_klass != NULL);
+
// - for hidden classes that are not strong: create a new CLD that has a class holder and
// whose loader is the Lookup class's loader.
@@ -845,9 +849,13 @@ InstanceKlass* SystemDictionary::resolve_hidden_class_from_stream(
class_name,
loader_data,
cl_info,
- false, // pick_newest
+ is_redefining, // pick_newest
CHECK_NULL);
assert(k != NULL, "no klass created");
+ if (is_redefining && k != NULL) {
+ k->set_redefining(true);
+ k->set_old_version(old_klass);
+ }
// Hidden classes that are not strong must update ClassLoaderData holder
// so that they can be unloaded when the mirror is no longer referenced.
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 5308b079e67..c1b1b354541 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -492,6 +492,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;
@@ -754,12 +756,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();
@@ -1440,6 +1464,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];
@@ -1977,7 +2025,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 a48e07e3a6a..3551b06ecde 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 6a8128e844f..8644937dbbb 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -409,6 +409,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");
--
2.23.0

View File

@@ -0,0 +1,135 @@
From 97ab12615a56e90993b5df4615c6dbd7eb856ebb 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 05/45] 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 6711ba735db..4f0b655265a 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 d66ed24d862..9bfcd9eb479 100644
--- a/src/hotspot/share/interpreter/interpreterRuntime.cpp
+++ b/src/hotspot/share/interpreter/interpreterRuntime.cpp
@@ -788,7 +788,7 @@ JRT_END
// Invokes
JRT_ENTRY(Bytecodes::Code, InterpreterRuntime::get_original_bytecode_at(JavaThread* current, 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* current, 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 613c10a9d8c..a5a12599997 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);
}
@@ -1998,7 +1998,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;
}
@@ -2007,7 +2007,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 030ddd1f675..a8d6507ff6c 100644
--- a/src/hotspot/share/oops/method.hpp
+++ b/src/hotspot/share/oops/method.hpp
@@ -226,7 +226,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;
}
@@ -235,7 +235,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 c1b1b354541..ad05b4f34cf 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -1360,14 +1360,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,83 @@
From cb8d0e41bed94d0c8b8a4c51f692a4ca66dc3672 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 06/45] Replace deleted method with
Universe::throw_no_such_method_error
+ 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
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 2 +-
.../share/prims/resolvedMethodTable.cpp | 30 +++++++++----------
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index ad05b4f34cf..95be32f0070 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -881,7 +881,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 8644937dbbb..b8d039adff6 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -399,25 +399,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_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");
+ 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);
@@ -428,7 +428,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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,26 @@
From 74de59c61db380a0e1c85686714bd9a3f1b29210 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 08/45] 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 845a39b0225..fb6d1667156 100644
--- a/src/hotspot/share/runtime/globals.hpp
+++ b/src/hotspot/share/runtime/globals.hpp
@@ -2088,7 +2088,7 @@ const intx ObjectAlignmentInBytes = 8;
develop(bool, TraceOptimizedUpcallStubs, false, \
"Trace optimized upcall stub generation") \
\
- product(bool, AllowEnhancedClassRedefinition, true, \
+ product(bool, AllowEnhancedClassRedefinition, false, \
"Allow enhanced class redefinition beyond swapping method " \
"bodies")
--
2.23.0

View File

@@ -0,0 +1,74 @@
From c00c2a58550ae33ab2c842b521bf3b73163a93a1 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 09/45] Set HOTSPOT_VM_DISTRO=Dynamic Code Evolution
---
make/autoconf/version-numbers | 55 +++++++++++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
create mode 100644 make/autoconf/version-numbers
diff --git a/make/autoconf/version-numbers b/make/autoconf/version-numbers
new file mode 100644
index 00000000000..df8025a2e84
--- /dev/null
+++ b/make/autoconf/version-numbers
@@ -0,0 +1,55 @@
+#
+# Copyright (c) 2011, 2019, 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 version, product, and vendor information to use,
+# unless overridden by configure
+
+DEFAULT_VERSION_FEATURE=15
+DEFAULT_VERSION_INTERIM=0
+DEFAULT_VERSION_UPDATE=0
+DEFAULT_VERSION_PATCH=0
+DEFAULT_VERSION_EXTRA1=0
+DEFAULT_VERSION_EXTRA2=0
+DEFAULT_VERSION_EXTRA3=0
+DEFAULT_VERSION_DATE=2020-09-15
+DEFAULT_VERSION_CLASSFILE_MAJOR=59 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
+DEFAULT_VERSION_CLASSFILE_MINOR=0
+DEFAULT_ACCEPTABLE_BOOT_VERSIONS="14 15"
+DEFAULT_JDK_SOURCE_TARGET_VERSION=15
+DEFAULT_PROMOTED_VERSION_PRE=
+
+LAUNCHER_NAME=openjdk
+PRODUCT_NAME=OpenJDK
+PRODUCT_SUFFIX="Runtime Environment"
+JDK_RC_PLATFORM_NAME=Platform
+COMPANY_NAME=N/A
+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
+
+# Might need better names for these
+MACOSX_BUNDLE_NAME_BASE="OpenJDK"
+MACOSX_BUNDLE_ID_BASE="net.java.openjdk"
--
2.23.0

View File

@@ -0,0 +1,206 @@
From c04d57e5278aa5d3cb6ef53fc161d2b6b4f19f3c 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 10/45] Clear dcevm code separation
---
src/hotspot/share/classfile/systemDictionary.cpp | 3 +--
src/hotspot/share/gc/serial/genMarkSweep.cpp | 8 +++++---
src/hotspot/share/interpreter/linkResolver.cpp | 14 ++++++++++----
.../instrumentation/jfrEventClassTransformer.cpp | 2 +-
src/hotspot/share/oops/cpCache.hpp | 8 +++++---
src/hotspot/share/oops/instanceKlass.cpp | 6 +++---
src/hotspot/share/oops/method.cpp | 2 +-
src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp | 2 +-
src/hotspot/share/runtime/reflection.cpp | 2 +-
9 files changed, 28 insertions(+), 19 deletions(-)
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index cea614a574f..98e2541c79b 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -830,9 +830,8 @@ InstanceKlass* SystemDictionary::resolve_hidden_class_from_stream(
EventClassLoad class_load_start_event;
ClassLoaderData* loader_data;
-
+
bool is_redefining = (old_klass != NULL);
-
// - for hidden classes that are not strong: create a new CLD that has a class holder and
// whose loader is the Lookup class's loader.
diff --git a/src/hotspot/share/gc/serial/genMarkSweep.cpp b/src/hotspot/share/gc/serial/genMarkSweep.cpp
index bbb2c02f2b2..00b8e44078e 100644
--- a/src/hotspot/share/gc/serial/genMarkSweep.cpp
+++ b/src/hotspot/share/gc/serial/genMarkSweep.cpp
@@ -316,7 +316,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 8fb336762df..74a6af13ea4 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -287,9 +287,14 @@ void LinkResolver::check_klass_accessibility(Klass* ref_klass, Klass* sel_klass,
if (!base_klass->is_instance_klass()) {
return; // no relevant check to do
}
-
+ 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(ref_klass->newest_version(), InstanceKlass::cast(base_klass->newest_version()), true);
+ 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,
@@ -551,7 +556,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() == vmClasses::Object_klass()->newest_version() &&
+ ( !AllowEnhancedClassRedefinition && sel_klass == vmClasses::Object_klass() ||
+ AllowEnhancedClassRedefinition && sel_klass->newest_version() == vmClasses::Object_klass()->newest_version()) &&
resolved_klass->is_array_klass()) {
// We need to change "protected" to "public".
assert(flags.is_protected(), "clone not protected?");
@@ -997,7 +1003,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 88e520ec475..73832251f3f 100644
--- a/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
+++ b/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
@@ -1475,7 +1475,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/cpCache.hpp b/src/hotspot/share/oops/cpCache.hpp
index b934302f422..d7ae5edc7b3 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
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index 6d9e5116df1..1e2b40dd1f2 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -968,7 +968,7 @@ bool InstanceKlass::link_class_impl(TRAPS) {
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 */) {
JvmtiExport::post_class_prepare(THREAD, this);
}
}
@@ -1046,7 +1046,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);
@@ -3808,7 +3808,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 a5a12599997..4426f03fd40 100644
--- a/src/hotspot/share/oops/method.cpp
+++ b/src/hotspot/share/oops/method.cpp
@@ -2199,7 +2199,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 42e72c67879..c860ee24f80 100644
--- a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
@@ -76,7 +76,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 cc58f913ed5..21104c18423 100644
--- a/src/hotspot/share/runtime/reflection.cpp
+++ b/src/hotspot/share/runtime/reflection.cpp
@@ -608,7 +608,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 3e9df9bdd901f1a7f7af57f2d37a738c059e3bb3 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 11/45] 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 c860ee24f80..dfe0bb8d96a 100644
--- a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
@@ -76,7 +76,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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,43 @@
From 2a27d36f5fbb0ebd94da192355f3946138c495bd 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 13/45] dcevm15 - add ClassLoaderDataGraph_lock on
ClassLoaderDataGraph::classes_do
ClassLoaderDataGraph::classes_do and need safepoint or lock,
find_sorted_affected_classes is not in safepoint therefore it must be
locked
ClassLoaderDataGraph::rollback_redefinition need safepoint too
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index a27c2ff87ae..001d2c782d8 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -1380,7 +1380,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));
@@ -2063,7 +2065,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,98 @@
From 09af8da3c8fcb6d97917951673a56696fd7d6a2b 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 14/45] 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 | 45 +++++++++++----------------
1 file changed, 19 insertions(+), 26 deletions(-)
diff --git a/src/hotspot/share/memory/universe.cpp b/src/hotspot/share/memory/universe.cpp
index 9fcbb6c41b3..247f2b3e8c0 100644
--- a/src/hotspot/share/memory/universe.cpp
+++ b/src/hotspot/share/memory/universe.cpp
@@ -44,6 +44,8 @@
#include "gc/shared/oopStorageSet.hpp"
#include "gc/shared/stringdedup/stringDedup.hpp"
#include "gc/shared/tlab_globals.hpp"
+#include "gc/shared/weakProcessor.hpp"
+#include "interpreter/interpreter.hpp"
#include "logging/log.hpp"
#include "logging/logStream.hpp"
#include "memory/metadataFactory.hpp"
@@ -71,6 +73,8 @@
#include "runtime/jniHandles.hpp"
#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/autoRestore.hpp"
@@ -209,45 +213,34 @@ 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);
+
+ JvmtiExport::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);
+
+ // OopStorageSet::vm_global()->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);
}
void Universe::oops_do(OopClosure* f) {
--
2.23.0

View File

@@ -0,0 +1,29 @@
From fc0d2894212fd2186498d3341dddf2f201965686 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 15/45] 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 c181fe044e2..a8ac12450d7 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -398,6 +398,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,54 @@
From d20a52a5e7a87003da6f3e4bda39ec2976868a75 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 16/45] dcevm15 - 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 001d2c782d8..d742679d199 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,91 @@
From b315e7cd828e79d63562b0296b97795015b644af 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 17/45] 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 d742679d199..1433e429e30 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 25d78e62a702ad754c1a3a0136db1453089f008e 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 18/45] 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 167cb274661..7e72641ec5a 100644
--- a/src/hotspot/share/oops/cpCache.cpp
+++ b/src/hotspot/share/oops/cpCache.cpp
@@ -654,7 +654,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,66 @@
From b84814b31883b0f5441fca6d77b18c7426d26c36 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 19/45] Cleanup and review comments
---
src/hotspot/share/classfile/classLoaderDataGraph.hpp | 2 +-
src/hotspot/share/gc/shared/gcConfig.cpp | 2 +-
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 1 +
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp | 2 +-
4 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderDataGraph.hpp b/src/hotspot/share/classfile/classLoaderDataGraph.hpp
index 5f8913001b0..c3bcc7271e6 100644
--- a/src/hotspot/share/classfile/classLoaderDataGraph.hpp
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.hpp
@@ -105,7 +105,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/gc/shared/gcConfig.cpp b/src/hotspot/share/gc/shared/gcConfig.cpp
index 26a2b67b8e9..8e78696bef5 100644
--- a/src/hotspot/share/gc/shared/gcConfig.cpp
+++ b/src/hotspot/share/gc/shared/gcConfig.cpp
@@ -97,7 +97,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.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 1433e429e30..af34d751bdb 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -842,6 +842,7 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
k->class_loader_data()->exchange_holders(the_class->class_loader_data());
if (the_class->is_hidden()) {
+ // TODO: (DCEVM) review if is correct
// 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
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 61f62e7f831..43f1aff8e91 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,31 @@
From 9da70fec073a442e9c0aee19a5ec643c1f84cea5 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Feb 2021 10:11:10 +0100
Subject: [PATCH 20/45] Disable AllowEnhancedClassRedefinition in flight
recorder
---
src/hotspot/share/runtime/arguments.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index 9661f2b62b9..252ebbc4e57 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -4027,6 +4027,13 @@ jint Arguments::parse(const JavaVMInitArgs* initial_cmd_args) {
// Set object alignment values.
set_object_alignment();
+ if (FlightRecorder) {
+ if (AllowEnhancedClassRedefinition) {
+ warning("EnhancedClassRedefinition was disabled, it is not allowed in FlightRecorder.");
+ AllowEnhancedClassRedefinition = false;
+ }
+ }
+
#if !INCLUDE_CDS
if (DumpSharedSpaces || RequireSharedSpaces) {
jio_fprintf(defaultStream::error_stream(),
--
2.23.0

View File

@@ -0,0 +1,695 @@
From 5d065e823c431a80251696c2543f6c98e68f00a6 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Feb 2021 09:44:28 +0100
Subject: [PATCH 21/45] dcevm17 - fix compilation issues
---
.../share/classfile/classLoaderData.cpp | 2 +-
src/hotspot/share/classfile/javaClasses.cpp | 4 +-
src/hotspot/share/classfile/javaClasses.hpp | 4 +-
.../share/classfile/lambdaFormInvokers.cpp | 152 ++++++++++++++++++
.../share/classfile/systemDictionary.cpp | 5 +-
.../share/classfile/systemDictionary.hpp | 6 +
src/hotspot/share/classfile/vmClassMacros.hpp | 2 +
.../share/gc/g1/g1FullGCCompactTask.cpp | 9 +-
.../share/gc/g1/g1FullGCCompactionPoint.cpp | 12 +-
src/hotspot/share/gc/shared/dcevmSharedGC.cpp | 2 +-
src/hotspot/share/gc/shared/space.inline.hpp | 2 +-
src/hotspot/share/memory/universe.cpp | 71 --------
src/hotspot/share/memory/universe.hpp | 7 -
src/hotspot/share/oops/instanceKlass.cpp | 4 +-
.../prims/jvmtiEnhancedRedefineClasses.cpp | 47 ++++--
.../prims/jvmtiEnhancedRedefineClasses.hpp | 2 +
.../share/prims/resolvedMethodTable.cpp | 5 +-
src/hotspot/share/runtime/arguments.hpp | 2 +
18 files changed, 221 insertions(+), 117 deletions(-)
create mode 100644 src/hotspot/share/classfile/lambdaFormInvokers.cpp
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 2a826ff50a7..65ce4c4af8c 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -603,7 +603,7 @@ void ClassLoaderData::exchange_holders(ClassLoaderData* cld) {
oop holder_oop = _holder.peek();
_holder.replace(cld->_holder.peek());
cld->_holder.replace(holder_oop);
- WeakHandle<vm_weak_data> exchange = _holder;
+ WeakHandle exchange = _holder;
_holder = cld->_holder;
cld->_holder = exchange;
}
diff --git a/src/hotspot/share/classfile/javaClasses.cpp b/src/hotspot/share/classfile/javaClasses.cpp
index dc800debea4..66ff72b2f02 100644
--- a/src/hotspot/share/classfile/javaClasses.cpp
+++ b/src/hotspot/share/classfile/javaClasses.cpp
@@ -3827,7 +3827,7 @@ void java_lang_invoke_DirectMethodHandle_StaticAccessor::set_static_offset(oop d
macro(_static_offset_offset, k, vmSymbols::static_offset_name(), long_signature, false)
void java_lang_invoke_DirectMethodHandle_StaticAccessor::compute_offsets() {
- InstanceKlass* k = SystemDictionary::DirectMethodHandle_StaticAccessor_klass();
+ InstanceKlass* k = vmClasses::DirectMethodHandle_StaticAccessor_klass();
DIRECTMETHODHANDLE_STATIC_ACCESSOR_FIELDS_DO(FIELD_COMPUTE_OFFSET);
}
@@ -3855,7 +3855,7 @@ void java_lang_invoke_DirectMethodHandle_Accessor::set_field_offset(oop dmh, int
macro(_field_offset_offset, k, vmSymbols::field_offset_name(), int_signature, false)
void java_lang_invoke_DirectMethodHandle_Accessor::compute_offsets() {
- InstanceKlass* k = SystemDictionary::DirectMethodHandle_Accessor_klass();
+ InstanceKlass* k = vmClasses::DirectMethodHandle_Accessor_klass();
DIRECTMETHODHANDLE_ACCESSOR_FIELDS_DO(FIELD_COMPUTE_OFFSET);
}
diff --git a/src/hotspot/share/classfile/javaClasses.hpp b/src/hotspot/share/classfile/javaClasses.hpp
index 32348c90ef9..f7dc5ccbd8c 100644
--- a/src/hotspot/share/classfile/javaClasses.hpp
+++ b/src/hotspot/share/classfile/javaClasses.hpp
@@ -1029,7 +1029,7 @@ class java_lang_invoke_DirectMethodHandle_StaticAccessor: AllStatic {
// Testers
static bool is_subclass(Klass* klass) {
- return klass->is_subclass_of(SystemDictionary::DirectMethodHandle_StaticAccessor_klass());
+ return klass->is_subclass_of(vmClasses::DirectMethodHandle_StaticAccessor_klass());
}
static bool is_instance(oop obj);
@@ -1053,7 +1053,7 @@ class java_lang_invoke_DirectMethodHandle_Accessor: AllStatic {
// Testers
static bool is_subclass(Klass* klass) {
- return klass->is_subclass_of(SystemDictionary::DirectMethodHandle_Accessor_klass());
+ return klass->is_subclass_of(vmClasses::DirectMethodHandle_Accessor_klass());
}
static bool is_instance(oop obj);
diff --git a/src/hotspot/share/classfile/lambdaFormInvokers.cpp b/src/hotspot/share/classfile/lambdaFormInvokers.cpp
new file mode 100644
index 00000000000..281de58b482
--- /dev/null
+++ b/src/hotspot/share/classfile/lambdaFormInvokers.cpp
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+#include "precompiled.hpp"
+#include "classfile/classLoadInfo.hpp"
+#include "classfile/classFileStream.hpp"
+#include "classfile/javaClasses.inline.hpp"
+#include "classfile/klassFactory.hpp"
+#include "classfile/lambdaFormInvokers.hpp"
+#include "classfile/symbolTable.hpp"
+#include "classfile/systemDictionary.hpp"
+#include "classfile/systemDictionaryShared.hpp"
+#include "classfile/vmClasses.hpp"
+#include "classfile/vmSymbols.hpp"
+#include "logging/log.hpp"
+#include "memory/oopFactory.hpp"
+#include "memory/metaspaceShared.hpp"
+#include "memory/resourceArea.hpp"
+#include "oops/instanceKlass.hpp"
+#include "oops/klass.hpp"
+#include "oops/objArrayKlass.hpp"
+#include "oops/objArrayOop.hpp"
+#include "oops/oop.inline.hpp"
+#include "oops/typeArrayOop.inline.hpp"
+#include "runtime/handles.inline.hpp"
+#include "runtime/javaCalls.hpp"
+
+GrowableArray<char*>* LambdaFormInvokers::_lambdaform_lines = NULL;
+
+void LambdaFormInvokers::append(char* line) {
+ if (_lambdaform_lines == NULL) {
+ _lambdaform_lines = new GrowableArray<char*>(100);
+ }
+ _lambdaform_lines->append(line);
+}
+
+void LambdaFormInvokers::regenerate_holder_classes(TRAPS) {
+ assert(_lambdaform_lines != NULL, "Bad List");
+ ResourceMark rm(THREAD);
+
+ Symbol* cds_name = vmSymbols::jdk_internal_misc_CDS();
+ Klass* cds_klass = SystemDictionary::resolve_or_null(cds_name, THREAD);
+ guarantee(cds_klass != NULL, "jdk/internal/misc/CDS must exist!");
+
+ int len = _lambdaform_lines->length();
+ objArrayHandle list_lines = oopFactory::new_objArray_handle(vmClasses::String_klass(), len, CHECK);
+ for (int i = 0; i < len; i++) {
+ Handle h_line = java_lang_String::create_from_str(_lambdaform_lines->at(i), CHECK);
+ list_lines->obj_at_put(i, h_line());
+ }
+
+ //
+ // Object[] CDS.generateLambdaFormHolderClasses(String[] lines)
+ // the returned Object[] layout:
+ // name, byte[], name, byte[] ....
+ Symbol* method = vmSymbols::generateLambdaFormHolderClasses();
+ Symbol* signrs = vmSymbols::generateLambdaFormHolderClasses_signature();
+
+ JavaValue result(T_OBJECT);
+ JavaCalls::call_static(&result, cds_klass, method, signrs, list_lines, THREAD);
+
+ if (HAS_PENDING_EXCEPTION) {
+ log_info(cds)("%s: %s", THREAD->pending_exception()->klass()->external_name(),
+ java_lang_String::as_utf8_string(java_lang_Throwable::message(THREAD->pending_exception())));
+ CLEAR_PENDING_EXCEPTION;
+ return;
+ }
+
+ objArrayHandle h_array(THREAD, (objArrayOop)result.get_oop());
+ int sz = h_array->length();
+ assert(sz % 2 == 0 && sz >= 2, "Must be even size of length");
+ for (int i = 0; i < sz; i+= 2) {
+ Handle h_name(THREAD, h_array->obj_at(i));
+ typeArrayHandle h_bytes(THREAD, (typeArrayOop)h_array->obj_at(i+1));
+ assert(h_name != NULL, "Class name is NULL");
+ assert(h_bytes != NULL, "Class bytes is NULL");
+
+ char *class_name = java_lang_String::as_utf8_string(h_name());
+ int len = h_bytes->length();
+ // make a copy of class bytes so GC will not affect us.
+ char *buf = resource_allocate_bytes(THREAD, len);
+ memcpy(buf, (char*)h_bytes->byte_at_addr(0), len);
+ ClassFileStream st((u1*)buf, len, NULL, ClassFileStream::verify);
+
+ reload_class(class_name, st, THREAD);
+ // free buf
+ resource_free_bytes(buf, len);
+
+ if (HAS_PENDING_EXCEPTION) {
+ log_info(cds)("Exception happened: %s", PENDING_EXCEPTION->klass()->name()->as_C_string());
+ log_info(cds)("Could not create InstanceKlass for class %s", class_name);
+ CLEAR_PENDING_EXCEPTION;
+ return;
+ }
+ }
+}
+
+// class_handle - the class name, bytes_handle - the class bytes
+void LambdaFormInvokers::reload_class(char* name, ClassFileStream& st, TRAPS) {
+ Symbol* class_name = SymbolTable::new_symbol((const char*)name);
+ // the class must exist
+ Klass* klass = SystemDictionary::resolve_or_null(class_name, THREAD);
+ if (klass == NULL) {
+ log_info(cds)("Class %s not present, skip", name);
+ return;
+ }
+ assert(klass->is_instance_klass(), "Should be");
+
+ ClassLoaderData* cld = ClassLoaderData::the_null_class_loader_data();
+ Handle protection_domain;
+ ClassLoadInfo cl_info(protection_domain);
+
+ InstanceKlass* result = KlassFactory::create_from_stream(&st,
+ class_name,
+ cld,
+ cl_info,
+ false,
+ CHECK);
+
+ {
+ MutexLocker mu_r(THREAD, Compile_lock); // add_to_hierarchy asserts this.
+ SystemDictionary::add_to_hierarchy(result);
+ }
+ // new class not linked yet.
+ MetaspaceShared::try_link_class(THREAD, result);
+ assert(!HAS_PENDING_EXCEPTION, "Invariant");
+
+ // exclude the existing class from dump
+ SystemDictionaryShared::set_excluded(InstanceKlass::cast(klass));
+ log_info(cds, lambda)("Replaced class %s, old: %p new: %p", name, klass, result);
+}
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index 98e2541c79b..63de2e2f099 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -963,11 +963,12 @@ InstanceKlass* SystemDictionary::resolve_from_stream(ClassFileStream* st,
Symbol* class_name,
Handle class_loader,
const ClassLoadInfo& cl_info,
+ InstanceKlass* old_klass,
TRAPS) {
if (cl_info.is_hidden()) {
- return resolve_hidden_class_from_stream(st, class_name, class_loader, cl_info, CHECK_NULL);
+ return resolve_hidden_class_from_stream(st, class_name, class_loader, cl_info, old_klass, CHECK_NULL);
} else {
- return resolve_class_from_stream(st, class_name, class_loader, cl_info, CHECK_NULL);
+ return resolve_class_from_stream(st, class_name, class_loader, cl_info, old_klass, CHECK_NULL);
}
}
diff --git a/src/hotspot/share/classfile/systemDictionary.hpp b/src/hotspot/share/classfile/systemDictionary.hpp
index 0c774dfeb51..65185a29b10 100644
--- a/src/hotspot/share/classfile/systemDictionary.hpp
+++ b/src/hotspot/share/classfile/systemDictionary.hpp
@@ -124,6 +124,7 @@ class SystemDictionary : AllStatic {
Symbol* class_name,
Handle class_loader,
const ClassLoadInfo& cl_info,
+ InstanceKlass* old_klass,
TRAPS);
// Resolve a class from stream (called by jni_DefineClass and JVM_DefineClass)
@@ -132,6 +133,7 @@ class SystemDictionary : AllStatic {
Symbol* class_name,
Handle class_loader,
const ClassLoadInfo& cl_info,
+ InstanceKlass* old_klass,
TRAPS);
public:
@@ -203,6 +205,10 @@ class SystemDictionary : AllStatic {
// Initialization
static void initialize(TRAPS);
+ // (DCEVM) Enhanced class redefinition
+ static void remove_from_hierarchy(InstanceKlass* k);
+ static void update_constraints_after_redefinition();
+
protected:
// Returns the class loader data to be used when looking up/updating the
// system dictionary.
diff --git a/src/hotspot/share/classfile/vmClassMacros.hpp b/src/hotspot/share/classfile/vmClassMacros.hpp
index a4f55641b51..fb205721a39 100644
--- a/src/hotspot/share/classfile/vmClassMacros.hpp
+++ b/src/hotspot/share/classfile/vmClassMacros.hpp
@@ -109,6 +109,8 @@
\
/* support for dynamic typing; it's OK if these are NULL in earlier JDKs */ \
do_klass(DirectMethodHandle_klass, java_lang_invoke_DirectMethodHandle ) \
+ do_klass(DirectMethodHandle_StaticAccessor_klass, java_lang_invoke_DirectMethodHandle_StaticAccessor ) \
+ do_klass(DirectMethodHandle_Accessor_klass, java_lang_invoke_DirectMethodHandle_Accessor ) \
do_klass(MethodHandle_klass, java_lang_invoke_MethodHandle ) \
do_klass(VarHandle_klass, java_lang_invoke_VarHandle ) \
do_klass(MemberName_klass, java_lang_invoke_MemberName ) \
diff --git a/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp b/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
index 54edc9dffb5..058dea90828 100644
--- a/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
@@ -141,7 +141,10 @@ void G1FullGCCompactTask::compact_region_dcevm(HeapRegion* hr, GrowableArray<Hea
// Once all objects have been moved the liveness information
// needs be cleared.
collector()->mark_bitmap()->clear_region(hr);
- hr->complete_compaction();
+ if (G1VerifyBitmaps) {
+ collector()->mark_bitmap()->clear_region(hr);
+ }
+ hr->reset_compacted_after_full_gc();
}
void G1FullGCCompactTask::serial_compaction_dcevm() {
@@ -184,13 +187,13 @@ size_t G1FullGCCompactTask::G1CompactRegionClosureDcevm::apply(oop obj) {
} else {
DcevmSharedGC::update_fields(obj, oop(destination));
}
- oop(destination)->init_mark_raw();
+ oop(destination)->init_mark();
assert(oop(destination)->klass() != NULL, "should have a class");
return size;
}
Copy::aligned_conjoint_words(obj_addr, destination, size);
- oop(destination)->init_mark_raw();
+ oop(destination)->init_mark();
assert(oop(destination)->klass() != NULL, "should have a class");
return size;
diff --git a/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp b/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp
index 71a46b88f9e..87b1977128a 100644
--- a/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp
@@ -36,8 +36,8 @@ G1FullGCCompactionPoint::G1FullGCCompactionPoint() :
{
_compaction_regions = new (ResourceObj::C_HEAP, mtGC) GrowableArray<HeapRegion*>(32, mtGC);
_compaction_region_iterator = _compaction_regions->begin();
- _rescued_oops = new (ResourceObj::C_HEAP, mtGC) GrowableArray<HeapWord*>(128, true, mtGC);
- _rescued_oops_values = new (ResourceObj::C_HEAP, mtGC) GrowableArray<HeapWord*>(128, true, mtGC);
+ _rescued_oops = new (ResourceObj::C_HEAP, mtGC) GrowableArray<HeapWord*>(128, mtGC);
+ _rescued_oops_values = new (ResourceObj::C_HEAP, mtGC) GrowableArray<HeapWord*>(128, mtGC);
}
G1FullGCCompactionPoint::~G1FullGCCompactionPoint() {
@@ -180,15 +180,15 @@ void G1FullGCCompactionPoint::forward_dcevm(oop object, size_t size, bool force_
// with BiasedLocking, in this case forwardee() will return NULL
// even if the mark-word is used. This is no problem since
// forwardee() will return NULL in the compaction phase as well.
- object->init_mark_raw();
+ object->init_mark();
} 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() == markWord::prototype_for_klass(object->klass()) || // Correct mark
+ assert(object->mark() == 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
+ (UseBiasedLocking && object->has_bias_pattern()), // Will be restored by BiasedLocking
"should have correct prototype obj: " PTR_FORMAT " mark: " PTR_FORMAT " prototype: " PTR_FORMAT,
- p2i(object), object->mark_raw().value(), markWord::prototype_for_klass(object->klass()).value());
+ p2i(object), object->mark().value(), markWord::prototype_for_klass(object->klass()).value());
}
assert(object->forwardee() == NULL, "should be forwarded to NULL");
}
diff --git a/src/hotspot/share/gc/shared/dcevmSharedGC.cpp b/src/hotspot/share/gc/shared/dcevmSharedGC.cpp
index 3dee097f1d3..edc19a3077d 100644
--- a/src/hotspot/share/gc/shared/dcevmSharedGC.cpp
+++ b/src/hotspot/share/gc/shared/dcevmSharedGC.cpp
@@ -64,7 +64,7 @@ void DcevmSharedGC::copy_rescued_objects_back(GrowableArray<HeapWord*>* rescued_
Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(rescued_obj), cast_from_oop<HeapWord*>(new_obj), size);
}
- new_obj->init_mark_raw();
+ new_obj->init_mark();
assert(oopDesc::is_oop(new_obj), "must be a valid oop");
}
}
diff --git a/src/hotspot/share/gc/shared/space.inline.hpp b/src/hotspot/share/gc/shared/space.inline.hpp
index e3a37280268..cafa2503ef4 100644
--- a/src/hotspot/share/gc/shared/space.inline.hpp
+++ b/src/hotspot/share/gc/shared/space.inline.hpp
@@ -371,7 +371,7 @@ inline void CompactibleSpace::scan_and_compact(SpaceType* space, bool redefiniti
} else {
DcevmSharedGC::update_fields(oop(cur_obj), oop(compaction_top));
}
- oop(compaction_top)->init_mark_raw();
+ oop(compaction_top)->init_mark();
assert(oop(compaction_top)->klass() != NULL, "should have a class");
debug_only(prev_obj = cur_obj);
diff --git a/src/hotspot/share/memory/universe.cpp b/src/hotspot/share/memory/universe.cpp
index 247f2b3e8c0..4ae3b382b67 100644
--- a/src/hotspot/share/memory/universe.cpp
+++ b/src/hotspot/share/memory/universe.cpp
@@ -44,8 +44,6 @@
#include "gc/shared/oopStorageSet.hpp"
#include "gc/shared/stringdedup/stringDedup.hpp"
#include "gc/shared/tlab_globals.hpp"
-#include "gc/shared/weakProcessor.hpp"
-#include "interpreter/interpreter.hpp"
#include "logging/log.hpp"
#include "logging/logStream.hpp"
#include "memory/metadataFactory.hpp"
@@ -73,8 +71,6 @@
#include "runtime/jniHandles.hpp"
#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/autoRestore.hpp"
@@ -208,73 +204,6 @@ void Universe::basic_type_classes_do(KlassClosure *closure) {
}
}
-#define DO_PRIMITIVE_MIRROR(m) \
- f->do_oop((oop*) &m);
-
-// FIXME: (DCEVM) This method should iterate all pointers that are not within heap objects.
-void Universe::root_oops_do(OopClosure *oopClosure) {
- 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);
- // (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
- 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);
-
- // OopStorageSet::vm_global()->oops_do(oopClosure);
-
-}
-
-void Universe::oops_do(OopClosure* f) {
- PRIMITIVE_MIRRORS_DO(DO_PRIMITIVE_MIRROR);
-
- for (int i = T_BOOLEAN; i < T_VOID+1; i++) {
- f->do_oop((oop*) &_mirrors[i]);
- }
- assert(_mirrors[0] == NULL && _mirrors[T_BOOLEAN - 1] == NULL, "checking");
-
- f->do_oop((oop*)&_the_empty_class_array);
- f->do_oop((oop*)&_the_null_sentinel);
- f->do_oop((oop*)&_the_null_string);
- f->do_oop((oop*)&_the_min_jint_string);
- f->do_oop((oop*)&out_of_memory_errors()->obj_at(_oom_java_heap));
- f->do_oop((oop*)&out_of_memory_errors()->obj_at(_oom_c_heap));
- f->do_oop((oop*)&out_of_memory_errors()->obj_at(_oom_metaspace));
- f->do_oop((oop*)&out_of_memory_errors()->obj_at(_oom_class_metaspace));
- f->do_oop((oop*)&out_of_memory_errors()->obj_at(_oom_array_size));
- f->do_oop((oop*)&out_of_memory_errors()->obj_at(_oom_gc_overhead_limit));
- f->do_oop((oop*)&out_of_memory_errors()->obj_at(_oom_realloc_objects));
- f->do_oop((oop*)&out_of_memory_errors()->obj_at(_oom_retry));
- f->do_oop((oop*)&_delayed_stack_overflow_error_message);
- f->do_oop((oop*)&_preallocated_out_of_memory_error_array);
- f->do_oop((oop*)&_null_ptr_exception_instance);
- f->do_oop((oop*)&_arithmetic_exception_instance);
- f->do_oop((oop*)&_virtual_machine_error_instance);
- f->do_oop((oop*)&_main_thread_group);
- f->do_oop((oop*)&_system_thread_group);
- f->do_oop((oop*)&_reference_pending_list);
- debug_only(f->do_oop((oop*)&_fullgc_alot_dummy_array);)
- ThreadsSMRSupport::exiting_threads_oops_do(f);
-}
-
void LatestMethodCache::metaspace_pointers_do(MetaspaceClosure* it) {
it->push(&_klass);
}
diff --git a/src/hotspot/share/memory/universe.hpp b/src/hotspot/share/memory/universe.hpp
index cb320076a55..4b2211c415e 100644
--- a/src/hotspot/share/memory/universe.hpp
+++ b/src/hotspot/share/memory/universe.hpp
@@ -326,13 +326,6 @@ class Universe: AllStatic {
static bool should_fill_in_stack_trace(Handle throwable);
static void check_alignment(uintx size, uintx alignment, const char* name);
- // Iteration
-
- static void root_oops_do(OopClosure *oopClosure); // FIXME: kill...
- // Apply "f" to the addresses of all the direct heap pointers maintained
- // as static fields of "Universe".
- static void oops_do(OopClosure* f);
-
// CDS support
static void serialize(SerializeClosure* f);
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index a8ac12450d7..ab2d7f10f9c 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -1286,7 +1286,7 @@ void InstanceKlass::init_implementor() {
// (DCEVM) - init_implementor() for dcevm
void InstanceKlass::init_implementor_from_redefine() {
assert(is_interface(), "not interface");
- Klass* volatile* addr = adr_implementor();
+ InstanceKlass* volatile* addr = adr_implementor();
assert(addr != NULL, "null addr");
if (addr != NULL) {
*addr = NULL;
@@ -3828,7 +3828,7 @@ void InstanceKlass::verify_on(outputStream* st) {
guarantee(sib->is_klass(), "should be klass");
// TODO: (DCEVM) explain
- guarantee(sib->super() == super || AllowEnhancedClassRedefinition && super->newest_version() == SystemDictionary::Object_klass(), "siblings should have same superklass");
+ guarantee(sib->super() == super || AllowEnhancedClassRedefinition && super->newest_version() == vmClasses::Object_klass(), "siblings should have same superklass");
}
// Verify local interfaces
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index af34d751bdb..0b1db1581d1 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -26,8 +26,10 @@
#include "aot/aotLoader.hpp"
#include "classfile/classFileParser.hpp"
#include "classfile/classFileStream.hpp"
+#include "classfile/classLoadInfo.hpp"
#include "classfile/metadataOnStackMark.hpp"
#include "classfile/systemDictionary.hpp"
+#include "classfile/symbolTable.hpp"
#include "classfile/verifier.hpp"
#include "classfile/dictionary.hpp"
#include "classfile/classLoaderDataGraph.hpp"
@@ -198,8 +200,8 @@ class FieldCopier : public FieldClosure {
if (found && result.is_static()) {
log_trace(redefine, class, obsolete, metadata)("Copying static field value for field %s old_offset=%d new_offset=%d",
fd->name()->as_C_string(), result.offset(), fd->offset());
- memcpy(cur_oop->obj_field_addr_raw<HeapWord>(fd->offset()),
- old_oop->obj_field_addr_raw<HeapWord>(result.offset()),
+ memcpy(cur_oop->obj_field_addr<HeapWord>(fd->offset()),
+ old_oop->obj_field_addr<HeapWord>(result.offset()),
type2aelembytes(fd->field_type()));
// Static fields may have references to java.lang.Class
@@ -242,6 +244,17 @@ void VM_EnhancedRedefineClasses::register_nmethod_g1(nmethod* nm) {
}
}
+void VM_EnhancedRedefineClasses::root_oops_do(OopClosure *oopClosure) {
+ Universe::vm_global()->oops_do(oopClosure);
+
+ Threads::oops_do(oopClosure, NULL);
+ AOT_ONLY(AOTLoader::oops_do(oopClosure);)
+ OopStorageSet::strong_oops_do(oopClosure);
+
+ CodeBlobToOopClosure blobClosure(oopClosure, CodeBlobToOopClosure::FixRelocations);
+ CodeCache::blobs_do(&blobClosure);
+}
+
// TODO comment
struct StoreBarrier {
// TODO: j10 review change ::oop_store -> HeapAccess<>::oop_store
@@ -558,7 +571,7 @@ void VM_EnhancedRedefineClasses::doit() {
_timer_heap_iterate.stop();
}
- Universe::root_oops_do(&oopClosureNoBarrier);
+ root_oops_do(&oopClosureNoBarrier);
if (UseG1GC) {
// this should work also for other GCs
@@ -737,8 +750,8 @@ bool VM_EnhancedRedefineClasses::is_modifiable_class(oop klass_mirror) {
// - link new classes
jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
- _affected_klasses = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<Klass*>(_class_count, true);
- _new_classes = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<InstanceKlass*>(_class_count, true);
+ _affected_klasses = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<Klass*>(_class_count);
+ _new_classes = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<InstanceKlass*>(_class_count);
ResourceMark rm(THREAD);
@@ -832,12 +845,12 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
!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,
- the_class_loader,
- &st,
- cl_info,
- the_class,
- THREAD);
+ k = SystemDictionary::resolve_from_stream(&st,
+ the_class_sym,
+ the_class_loader,
+ cl_info,
+ the_class,
+ THREAD);
k->class_loader_data()->exchange_holders(the_class->class_loader_data());
@@ -853,12 +866,12 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
}
} else {
- k = SystemDictionary::resolve_from_stream(the_class_sym,
- the_class_loader,
- protection_domain,
- &st,
- the_class,
- THREAD);
+ k = SystemDictionary::resolve_from_stream(&st,
+ the_class_sym,
+ the_class_loader,
+ protection_domain,
+ the_class,
+ THREAD);
}
// Clear class_being_redefined just to be sure.
state->clear_class_being_redefined();
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 43f1aff8e91..ae0a15281f3 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -124,6 +124,8 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
static void register_nmethod_g1(nmethod* nm);
static void unpatch_bytecode(Method* method, TRAPS);
+ void root_oops_do(OopClosure *oopClosure);
+
// 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();
diff --git a/src/hotspot/share/prims/resolvedMethodTable.cpp b/src/hotspot/share/prims/resolvedMethodTable.cpp
index 3c29eda4da0..a1eadc2958a 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -34,6 +34,7 @@
#include "oops/access.inline.hpp"
#include "oops/method.hpp"
#include "oops/oop.inline.hpp"
+#include "oops/klass.inline.hpp"
#include "oops/weakHandle.inline.hpp"
#include "prims/resolvedMethodTable.hpp"
#include "runtime/atomic.hpp"
@@ -375,7 +376,7 @@ class AdjustMethodEntriesDcevm : public StackObj {
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) {
+ bool operator()(WeakHandle* entry) {
oop mem_name = entry->peek();
if (mem_name == NULL) {
// Removed
@@ -460,7 +461,7 @@ void ResolvedMethodTable::adjust_method_entries_dcevm(bool * trace_name_printed)
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));
+ WeakHandle wh(_oop_storage, 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);
diff --git a/src/hotspot/share/runtime/arguments.hpp b/src/hotspot/share/runtime/arguments.hpp
index 3adc03a6583..b8eb4d0ab24 100644
--- a/src/hotspot/share/runtime/arguments.hpp
+++ b/src/hotspot/share/runtime/arguments.hpp
@@ -487,6 +487,8 @@ class Arguments : AllStatic {
// Adjusts the arguments after the OS have adjusted the arguments
static jint adjust_after_os();
+ // Check for consistency in the selection of the garbage collector.
+ static bool check_gc_consistency(); // Check user-selected gc
// Check consistency or otherwise of VM argument settings
static bool check_vm_args_consistency();
// Used by os_solaris
--
2.23.0

View File

@@ -0,0 +1,27 @@
From 09f5f22d61675a9f8909e903fa6e6f51507b656c Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Feb 2021 11:38:48 +0100
Subject: [PATCH 22/45] Fix crash on GrowableArray allocation in C_HEAP
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 0b1db1581d1..b88c071be13 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -750,8 +750,8 @@ bool VM_EnhancedRedefineClasses::is_modifiable_class(oop klass_mirror) {
// - link new classes
jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
- _affected_klasses = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<Klass*>(_class_count);
- _new_classes = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<InstanceKlass*>(_class_count);
+ _affected_klasses = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<Klass*>(_class_count, mtInternal);
+ _new_classes = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<InstanceKlass*>(_class_count, mtInternal);
ResourceMark rm(THREAD);
--
2.23.0

View File

@@ -0,0 +1,49 @@
From 90b8572ff42dd5f64a6d2063aab6842bceddcf55 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Feb 2021 11:39:05 +0100
Subject: [PATCH 23/45] Rename confusing method name old_if_redefined to
old_if_redefining
---
src/hotspot/share/classfile/dictionary.cpp | 4 ++--
src/hotspot/share/classfile/dictionary.hpp | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/hotspot/share/classfile/dictionary.cpp b/src/hotspot/share/classfile/dictionary.cpp
index 223b9e1e7a9..2b236a7724e 100644
--- a/src/hotspot/share/classfile/dictionary.cpp
+++ b/src/hotspot/share/classfile/dictionary.cpp
@@ -359,7 +359,7 @@ InstanceKlass* Dictionary::find(unsigned int hash, Symbol* name,
int index = hash_to_index(hash);
DictionaryEntry* entry = get_entry(index, hash, name);
if (entry != NULL && entry->is_valid_protection_domain(protection_domain)) {
- return old_if_redefined(entry->instance_klass());
+ return old_if_redefining(entry->instance_klass());
} else {
return NULL;
}
@@ -373,7 +373,7 @@ InstanceKlass* Dictionary::find_class(unsigned int hash,
assert (index == index_for(name), "incorrect index?");
DictionaryEntry* entry = get_entry(index, hash, name);
- return old_if_redefined((entry != NULL) ? entry->instance_klass() : NULL);
+ return old_if_redefining((entry != NULL) ? entry->instance_klass() : NULL);
}
void Dictionary::add_protection_domain(int index, unsigned int hash,
diff --git a/src/hotspot/share/classfile/dictionary.hpp b/src/hotspot/share/classfile/dictionary.hpp
index bdfef5c8663..e997cfdcabd 100644
--- a/src/hotspot/share/classfile/dictionary.hpp
+++ b/src/hotspot/share/classfile/dictionary.hpp
@@ -109,7 +109,7 @@ public:
Handle protection_domain);
// (DCEVM) return old class if redefining in AllowEnhancedClassRedefinition, otherwise return "k"
- static InstanceKlass* old_if_redefined(InstanceKlass* k) {
+ static InstanceKlass* old_if_redefining(InstanceKlass* k) {
return (k != NULL && k->is_redefining()) ? ((InstanceKlass* )k->old_version()) : k;
}
};
--
2.23.0

View File

@@ -0,0 +1,43 @@
From 86f7318e889fcb0d883501b4a70105d087b39482 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Feb 2021 12:33:47 +0100
Subject: [PATCH 24/45] Check InstanceKlass::has_nestmate_access_to with active
classes
Dcevm can leave old host in nested class if nested class is not
redefined together with host class
---
src/hotspot/share/oops/instanceKlass.cpp | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index ab2d7f10f9c..bcb0da6301f 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -398,9 +398,9 @@ bool InstanceKlass::has_nestmate_access_to(InstanceKlass* k, TRAPS) {
return false;
}
+ // (DCEVM) cur_host can be old, decide accessibility based on active version
if (AllowEnhancedClassRedefinition) {
- // TODO: (DCEVM) check if it correct. It fix problems with lambdas (hidden)
- cur_host = InstanceKlass::cast(cur_host->newest_version());
+ cur_host = InstanceKlass::cast(cur_host->active_version());
}
Klass* k_nest_host = k->nest_host(CHECK_false);
@@ -408,6 +408,11 @@ bool InstanceKlass::has_nestmate_access_to(InstanceKlass* k, TRAPS) {
return false;
}
+ // (DCEVM) k_nest_host can be old, decide accessibility based on active version
+ if (AllowEnhancedClassRedefinition) {
+ k_nest_host = InstanceKlass::cast(k_nest_host->active_version());
+ }
+
bool access = (cur_host == k_nest_host);
ResourceMark rm(THREAD);
--
2.23.0

View File

@@ -0,0 +1,95 @@
From 79ea607bf68161cfcee3a681d14540cffe5589a3 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 13 Feb 2021 20:47:52 +0100
Subject: [PATCH 25/45] JBR-3111 Update class in all dictionaries where it was
already defined
This patch keeps compatibility with std redefinition, that does not
create a new Klass, but modifies it, then it is modified in all
dictionaries containing this class.
---
src/hotspot/share/classfile/classLoaderDataGraph.cpp | 9 +++++++++
src/hotspot/share/classfile/classLoaderDataGraph.hpp | 3 +++
src/hotspot/share/classfile/dictionary.cpp | 2 +-
src/hotspot/share/classfile/dictionary.hpp | 2 +-
src/hotspot/share/classfile/systemDictionary.cpp | 4 +++-
5 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderDataGraph.cpp b/src/hotspot/share/classfile/classLoaderDataGraph.cpp
index fda5d2eb1ba..67ade5709f6 100644
--- a/src/hotspot/share/classfile/classLoaderDataGraph.cpp
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.cpp
@@ -455,6 +455,15 @@ void ClassLoaderDataGraph::rollback_redefinition() {
}
}
+// (DCEVM) - iterate over all classes in all dictionaries
+bool ClassLoaderDataGraph::dictionary_classes_do_update_klass(Symbol* name, InstanceKlass* k, InstanceKlass* old_klass) {
+ bool ok = false;
+ FOR_ALL_DICTIONARY(cld) {
+ ok = cld->dictionary()->update_klass(name, k, old_klass) || ok;
+ }
+ return ok;
+}
+
void ClassLoaderDataGraph::verify_dictionary() {
FOR_ALL_DICTIONARY(cld) {
cld->dictionary()->verify();
diff --git a/src/hotspot/share/classfile/classLoaderDataGraph.hpp b/src/hotspot/share/classfile/classLoaderDataGraph.hpp
index c3bcc7271e6..ebdb0bc2c8c 100644
--- a/src/hotspot/share/classfile/classLoaderDataGraph.hpp
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.hpp
@@ -108,6 +108,9 @@ class ClassLoaderDataGraph : public AllStatic {
// (DCEVM) Enhanced class redefinition
static void rollback_redefinition();
+ // Enhanced class redefinition
+ static bool dictionary_classes_do_update_klass(Symbol* name, InstanceKlass* k, InstanceKlass* old_klass);
+
// VM_CounterDecay iteration support
static InstanceKlass* try_get_next_class();
static void adjust_saved_class(ClassLoaderData* cld);
diff --git a/src/hotspot/share/classfile/dictionary.cpp b/src/hotspot/share/classfile/dictionary.cpp
index 2b236a7724e..bb1d09fa7a2 100644
--- a/src/hotspot/share/classfile/dictionary.cpp
+++ b/src/hotspot/share/classfile/dictionary.cpp
@@ -322,7 +322,7 @@ DictionaryEntry* Dictionary::get_entry(int index, unsigned int hash,
}
// (DCEVM) replace old_class by new class in dictionary
-bool Dictionary::update_klass(unsigned int hash, Symbol* name, ClassLoaderData* loader_data, InstanceKlass* k, InstanceKlass* old_klass) {
+bool Dictionary::update_klass(Symbol* name, InstanceKlass* k, InstanceKlass* old_klass) {
// There are several entries for the same class in the dictionary: One extra entry for each parent classloader of the classloader of the class.
bool found = false;
for (int index = 0; index < table_size(); index++) {
diff --git a/src/hotspot/share/classfile/dictionary.hpp b/src/hotspot/share/classfile/dictionary.hpp
index e997cfdcabd..7f8d8e35fc3 100644
--- a/src/hotspot/share/classfile/dictionary.hpp
+++ b/src/hotspot/share/classfile/dictionary.hpp
@@ -83,7 +83,7 @@ public:
void verify();
// (DCEVM) Enhanced class redefinition
- bool update_klass(unsigned int hash, Symbol* name, ClassLoaderData* loader_data, InstanceKlass* k, InstanceKlass* old_klass);
+ bool update_klass(Symbol* name, InstanceKlass* k, InstanceKlass* old_klass);
void rollback_redefinition();
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index 63de2e2f099..35e2f376870 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -1441,7 +1441,9 @@ void SystemDictionary::define_instance_class(InstanceKlass* k, InstanceKlass* ol
unsigned int name_hash = dictionary->compute_hash(name_h);
if (is_redefining) {
- bool ok = dictionary->update_klass(name_hash, name_h, loader_data, k, old_klass);
+ // Update all dictionaries containing old_class to new_class
+ // outcome must be same as result of standard redefinition, that does not create a new Klass
+ bool ok = ClassLoaderDataGraph::dictionary_classes_do_update_klass(name_h, k, old_klass);
assert (ok, "must have found old class and updated!");
}
check_constraints(name_hash, k, class_loader, !is_redefining, CHECK);
--
2.23.0

View File

@@ -0,0 +1,29 @@
From 99c65ab84080d35c1ba1df6efd5641ad3ab9e1e8 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 20 Feb 2021 15:47:47 +0100
Subject: [PATCH 26/45] Add ClassLoaderDataGraph_lock to define new class in
enhanced redefiniton
ClassLoaderDataGraph locking for introduced in redefinition in
java.version>11
---
src/hotspot/share/classfile/systemDictionary.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index 35e2f376870..c628cb9da83 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -1443,7 +1443,9 @@ void SystemDictionary::define_instance_class(InstanceKlass* k, InstanceKlass* ol
if (is_redefining) {
// Update all dictionaries containing old_class to new_class
// outcome must be same as result of standard redefinition, that does not create a new Klass
+ ClassLoaderDataGraph_lock->lock();
bool ok = ClassLoaderDataGraph::dictionary_classes_do_update_klass(name_h, k, old_klass);
+ ClassLoaderDataGraph_lock->unlock();
assert (ok, "must have found old class and updated!");
}
check_constraints(name_hash, k, class_loader, !is_redefining, CHECK);
--
2.23.0

View File

@@ -0,0 +1,180 @@
From e7e7920986355d6fd5ad0c333ec780c93583d030 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Thu, 18 Jun 2020 18:40:11 +0200
Subject: [PATCH 27/45] JBR-3140 - support for modularized HotswapAgent
Add -XX:HotswapAgent=[disabled,fatjar.core]
---
src/hotspot/share/runtime/arguments.cpp | 77 +++++++++++++++++++
src/hotspot/share/runtime/arguments.hpp | 4 +
.../flags/jvmFlagConstraintsRuntime.cpp | 9 +++
.../flags/jvmFlagConstraintsRuntime.hpp | 3 +-
src/hotspot/share/runtime/globals.hpp | 11 ++-
5 files changed, 102 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index 252ebbc4e57..9c6fab8ae4b 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -4034,6 +4034,8 @@ jint Arguments::parse(const JavaVMInitArgs* initial_cmd_args) {
}
}
+ setup_hotswap_agent();
+
#if !INCLUDE_CDS
if (DumpSharedSpaces || RequireSharedSpaces) {
jio_fprintf(defaultStream::error_stream(),
@@ -4390,3 +4392,78 @@ bool Arguments::copy_expand_pid(const char* src, size_t srclen,
*b = '\0';
return (p == src_end); // return false if not all of the source was copied
}
+
+void Arguments::setup_hotswap_agent() {
+
+ if (DumpSharedSpaces)
+ return;
+
+ if (HotswapAgent == NULL || strcmp(HotswapAgent, "disabled") == 0)
+ return;
+
+ // Force AllowEnhancedClassRedefinition if HA is enabled
+ AllowEnhancedClassRedefinition = true;
+
+ bool ha_fatjar = strcmp(HotswapAgent, "fatjar") == 0;
+ bool ha_core = strcmp(HotswapAgent, "core") == 0;
+
+ // Set HotswapAgent
+ if (ha_fatjar || ha_core) {
+
+ char ext_path_str[JVM_MAXPATHLEN];
+
+ os::jvm_path(ext_path_str, sizeof(ext_path_str));
+ for (int i = 0; i < 3; i++) {
+ char *end = strrchr(ext_path_str, *os::file_separator());
+ if (end != NULL) *end = '\0';
+ }
+ size_t ext_path_length = strlen(ext_path_str);
+ if (ext_path_length >= 3) {
+ if (strcmp(ext_path_str + ext_path_length - 3, "lib") != 0) {
+ if (ext_path_length < JVM_MAXPATHLEN - 4) {
+ jio_snprintf(ext_path_str + ext_path_length, sizeof(ext_path_str) - ext_path_length, "%slib", os::file_separator());
+ ext_path_length += 4;
+ }
+ }
+ }
+ if (ext_path_length < JVM_MAXPATHLEN - 10) {
+ if (ha_fatjar) {
+ jio_snprintf(ext_path_str + ext_path_length, sizeof(ext_path_str) - ext_path_length,
+ "%shotswap%shotswap-agent.jar", os::file_separator(), os::file_separator());
+ } else {
+ jio_snprintf(ext_path_str + ext_path_length, sizeof(ext_path_str) - ext_path_length,
+ "%shotswap%shotswap-agent-core.jar", os::file_separator(), os::file_separator());
+ }
+ int fd = ::open(ext_path_str, O_RDONLY);
+ if (fd >= 0) {
+ os::close(fd);
+ size_t length = strlen(ext_path_str) + 1;
+ char *options = NEW_C_HEAP_ARRAY(char, length, mtArguments);
+ jio_snprintf(options, length, "%s", ext_path_str);
+ add_init_agent("instrument", ext_path_str, false);
+ jio_fprintf(defaultStream::output_stream(), "Starting HotswapAgent '%s'\n", ext_path_str);
+ }
+ else
+ {
+ jio_fprintf(defaultStream::error_stream(), "HotswapAgent not found on path:'%s'!\n", ext_path_str);
+ }
+ }
+ }
+
+ // TODO: open it only for org.hotswap.agent module
+ // Use to access java.lang.reflect.Proxy/proxyCache
+ 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_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_module_property("jdk.module.addopens", "java.base/java.io=ALL-UNNAMED", addopens_count++);
+ // java.beans.Introspector access
+ create_numbered_module_property("jdk.module.addopens", "java.desktop/java.beans=ALL-UNNAMED", addopens_count++);
+ // java.beans.Introspector access
+ create_numbered_module_property("jdk.module.addopens", "java.desktop/com.sun.beans=ALL-UNNAMED", addopens_count++);
+ // com.sun.beans.introspect.ClassInfo access
+ 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_module_property("jdk.module.addopens", "java.desktop/com.sun.beans.util=ALL-UNNAMED", addopens_count++);
+
+}
diff --git a/src/hotspot/share/runtime/arguments.hpp b/src/hotspot/share/runtime/arguments.hpp
index b8eb4d0ab24..a14e11b48ef 100644
--- a/src/hotspot/share/runtime/arguments.hpp
+++ b/src/hotspot/share/runtime/arguments.hpp
@@ -496,6 +496,10 @@ class Arguments : AllStatic {
static size_t conservative_max_heap_alignment() { return _conservative_max_heap_alignment; }
+
+ // Initialize HotswapAgent
+ static void setup_hotswap_agent();
+
// Return the maximum size a heap with compressed oops can take
static size_t max_heap_for_compressed_oops();
diff --git a/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp b/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp
index 5b09758e089..e55b68e63a6 100644
--- a/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp
+++ b/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp
@@ -158,6 +158,15 @@ JVMFlag::Error NUMAInterleaveGranularityConstraintFunc(size_t value, bool verbos
" ... " UINTX_FORMAT " ]\n", value, min, max);
return JVMFlag::VIOLATES_CONSTRAINT;
}
+ return JVMFlag::SUCCESS;
+}
+JVMFlag::Error HotswapAgentConstraintFunc(ccstr value, bool verbose) {
+ if (value != NULL) {
+ if (strcmp("disabled", value) != 0 && strcmp("fatjar", value) != 0 && strcmp("core", value) != 0 && strcmp("external", value) != 0) {
+ JVMFlag::printError(verbose, "HotswapAgent(%s) must be one of disabled,fatjar,core or external.\n", value);
+ return JVMFlag::VIOLATES_CONSTRAINT;
+ }
+ }
return JVMFlag::SUCCESS;
}
diff --git a/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp b/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp
index 8bc3a9a1548..c5f58fd16ee 100644
--- a/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp
+++ b/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp
@@ -42,7 +42,8 @@
f(intx, BiasedLockingDecayTimeFunc) \
f(intx, PerfDataSamplingIntervalFunc) \
f(uintx, VMPageSizeConstraintFunc) \
- f(size_t, NUMAInterleaveGranularityConstraintFunc)
+ f(size_t, NUMAInterleaveGranularityConstraintFunc) \
+ f(ccstr, HotswapAgentConstraintFunc)
RUNTIME_CONSTRAINTS(DECLARE_CONSTRAINT)
diff --git a/src/hotspot/share/runtime/globals.hpp b/src/hotspot/share/runtime/globals.hpp
index fb6d1667156..20838a878ce 100644
--- a/src/hotspot/share/runtime/globals.hpp
+++ b/src/hotspot/share/runtime/globals.hpp
@@ -2090,7 +2090,16 @@ const intx ObjectAlignmentInBytes = 8;
\
product(bool, AllowEnhancedClassRedefinition, false, \
"Allow enhanced class redefinition beyond swapping method " \
- "bodies")
+ "bodies") \
+ \
+ product(ccstr, HotswapAgent, "disabled", \
+ "Specify HotswapAgent image to be used." \
+ "disabled: hotswap agent is disabled (default)" \
+ "fatjar: full HA. Use integrated hotswap-agent.jar" \
+ "core: core HA. Use integrated hotswap-agent-core.jar" \
+ "external: external HA. use external HA, open required JDK " \
+ "modules.") \
+ constraint(HotswapAgentConstraintFunc, AfterErgo)
// end of RUNTIME_FLAGS
--
2.23.0

View File

@@ -0,0 +1,347 @@
From 854df9651b358f3a8d89cd8a7d60fed26ca3d1d5 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 7 Mar 2021 20:22:54 +0100
Subject: [PATCH 28/45] Support for redefinition of Well Known classses
(java.*,jdk.*, sun.*)
---
src/hotspot/share/ci/ciKlass.hpp | 1 +
src/hotspot/share/ci/ciObjectFactory.cpp | 34 ++++++++++
src/hotspot/share/ci/ciObjectFactory.hpp | 6 ++
src/hotspot/share/classfile/vmClasses.cpp | 10 +++
src/hotspot/share/classfile/vmClasses.hpp | 4 ++
src/hotspot/share/classfile/vmSymbols.hpp | 2 +
src/hotspot/share/compiler/compileBroker.cpp | 11 ++++
src/hotspot/share/memory/universe.cpp | 8 +++
src/hotspot/share/memory/universe.hpp | 2 +
.../prims/jvmtiEnhancedRedefineClasses.cpp | 63 ++++++++++++++++++-
.../prims/jvmtiEnhancedRedefineClasses.hpp | 2 +
11 files changed, 142 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/ci/ciKlass.hpp b/src/hotspot/share/ci/ciKlass.hpp
index 467284b7cde..644993a7513 100644
--- a/src/hotspot/share/ci/ciKlass.hpp
+++ b/src/hotspot/share/ci/ciKlass.hpp
@@ -129,6 +129,7 @@ public:
void print_name_on(outputStream* st);
const char* external_name() const;
+ Klass* new_version() { return get_Klass()->new_version(); }
};
#endif // SHARE_CI_CIKLASS_HPP
diff --git a/src/hotspot/share/ci/ciObjectFactory.cpp b/src/hotspot/share/ci/ciObjectFactory.cpp
index 664062a0f74..e9cb49be3ff 100644
--- a/src/hotspot/share/ci/ciObjectFactory.cpp
+++ b/src/hotspot/share/ci/ciObjectFactory.cpp
@@ -74,7 +74,10 @@ GrowableArray<ciMetadata*>* ciObjectFactory::_shared_ci_metadata = NULL;
ciSymbol* ciObjectFactory::_shared_ci_symbols[vmSymbols::number_of_symbols()];
int ciObjectFactory::_shared_ident_limit = 0;
volatile bool ciObjectFactory::_initialized = false;
+volatile bool ciObjectFactory::_reinitialize_vm_klasses = false;
+// TODO: review...
+Arena* ciObjectFactory::_initial_arena = NULL;
// ------------------------------------------------------------------
// ciObjectFactory::ciObjectFactory
@@ -110,6 +113,7 @@ void ciObjectFactory::initialize() {
// compiler thread that initializes the initial ciObjectFactory which
// creates the shared ciObjects that all later ciObjectFactories use.
Arena* arena = new (mtCompiler) Arena(mtCompiler);
+ ciObjectFactory::_initial_arena = arena;
ciEnv initial(arena);
ciEnv* env = ciEnv::current();
env->_factory->init_shared_objects();
@@ -118,6 +122,36 @@ void ciObjectFactory::initialize() {
}
+// (DCEVM) vm classes could be modified
+void ciObjectFactory::reinitialize_vm_classes() {
+ ASSERT_IN_VM;
+ JavaThread* thread = JavaThread::current();
+ HandleMark handle_mark(thread);
+
+ // This Arena is long lived and exists in the resource mark of the
+ // compiler thread that initializes the initial ciObjectFactory which
+ // creates the shared ciObjects that all later ciObjectFactories use.
+ // Arena* arena = new (mtCompiler) Arena(mtCompiler);
+ ciEnv initial(ciObjectFactory::_initial_arena);
+ ciEnv* env = ciEnv::current();
+ env->_factory->do_reinitialize_vm_classes();
+ _reinitialize_vm_klasses = false;
+}
+
+// (DCEVM) vm classes could be modified
+void ciObjectFactory::do_reinitialize_vm_classes() {
+#define VM_CLASS_DEFN(name, ignore_s) \
+ if (ciEnv::_##name != NULL && ciEnv::_##name->new_version() != NULL) { \
+ int old_ident = ciEnv::_##name->ident(); \
+ ciEnv::_##name = get_metadata(vmClasses::name())->as_instance_klass(); \
+ ciEnv::_##name->compute_nonstatic_fields(); \
+ ciEnv::_##name->set_ident(old_ident); \
+ }
+
+ VM_CLASSES_DO(VM_CLASS_DEFN)
+#undef VM_CLASS_DEFN
+}
+
void ciObjectFactory::init_shared_objects() {
_next_ident = 1; // start numbering CI objects at 1
diff --git a/src/hotspot/share/ci/ciObjectFactory.hpp b/src/hotspot/share/ci/ciObjectFactory.hpp
index fdefc8e3b92..1ed8732cb40 100644
--- a/src/hotspot/share/ci/ciObjectFactory.hpp
+++ b/src/hotspot/share/ci/ciObjectFactory.hpp
@@ -42,9 +42,11 @@ class ciObjectFactory : public ResourceObj {
private:
static volatile bool _initialized;
+ static volatile bool _reinitialize_vm_klasses;
static GrowableArray<ciMetadata*>* _shared_ci_metadata;
static ciSymbol* _shared_ci_symbols[];
static int _shared_ident_limit;
+ static Arena* _initial_arena;
Arena* _arena;
GrowableArray<ciMetadata*> _ci_metadata;
@@ -90,10 +92,14 @@ private:
ciInstance* get_unloaded_instance(ciInstanceKlass* klass);
static int compare_cimetadata(ciMetadata** a, ciMetadata** b);
+ void do_reinitialize_vm_classes();
public:
static bool is_initialized() { return _initialized; }
+ static bool is_reinitialize_vm_klasses() { return _reinitialize_vm_klasses; }
+ static void set_reinitialize_vm_klasses() { _reinitialize_vm_klasses = true; }
static void initialize();
+ static void reinitialize_vm_classes();
void init_shared_objects();
void remove_symbols();
diff --git a/src/hotspot/share/classfile/vmClasses.cpp b/src/hotspot/share/classfile/vmClasses.cpp
index 2bd1ca65cc0..3ec13d952d8 100644
--- a/src/hotspot/share/classfile/vmClasses.cpp
+++ b/src/hotspot/share/classfile/vmClasses.cpp
@@ -259,3 +259,13 @@ BasicType vmClasses::box_klass_type(Klass* k) {
}
return T_OBJECT;
}
+
+bool vmClasses::update_vm_klass(InstanceKlass* old_klass, InstanceKlass* new_klass) {
+ for (int id = static_cast<int>(vmClassID::FIRST); id < static_cast<int>(vmClassID::LIMIT); id++) {
+ if (_klasses[id] == old_klass) {
+ _klasses[id] = new_klass;
+ return true;
+ }
+ }
+ return false;
+}
diff --git a/src/hotspot/share/classfile/vmClasses.hpp b/src/hotspot/share/classfile/vmClasses.hpp
index 364014a2514..b637ff0ae3d 100644
--- a/src/hotspot/share/classfile/vmClasses.hpp
+++ b/src/hotspot/share/classfile/vmClasses.hpp
@@ -110,6 +110,10 @@ public:
static bool Cloneable_klass_loaded() { return is_loaded(VM_CLASS_AT(Cloneable_klass)); }
static bool Parameter_klass_loaded() { return is_loaded(VM_CLASS_AT(reflect_Parameter_klass)); }
static bool ClassLoader_klass_loaded() { return is_loaded(VM_CLASS_AT(ClassLoader_klass)); }
+
+ // (DCEVM) vmClasses could be modified
+ static bool update_vm_klass(InstanceKlass* new_klass, InstanceKlass* old_klass);
+
};
#endif // SHARE_CLASSFILE_VMCLASSES_HPP
diff --git a/src/hotspot/share/classfile/vmSymbols.hpp b/src/hotspot/share/classfile/vmSymbols.hpp
index dad94005f5c..82fd593224a 100644
--- a/src/hotspot/share/classfile/vmSymbols.hpp
+++ b/src/hotspot/share/classfile/vmSymbols.hpp
@@ -380,6 +380,8 @@
template(exit_method_name, "exit") \
template(add_method_name, "add") \
template(remove_method_name, "remove") \
+ template(registerNatives_method_name, "registerNatives") \
+ template(initIDs_method_name, "initIDs") \
template(parent_name, "parent") \
template(threads_name, "threads") \
template(groups_name, "groups") \
diff --git a/src/hotspot/share/compiler/compileBroker.cpp b/src/hotspot/share/compiler/compileBroker.cpp
index cc1dff089e8..aaf8e4b1f1e 100644
--- a/src/hotspot/share/compiler/compileBroker.cpp
+++ b/src/hotspot/share/compiler/compileBroker.cpp
@@ -1982,6 +1982,17 @@ void CompileBroker::compiler_thread_loop() {
if (method()->number_of_breakpoints() == 0) {
// Compile the method.
if ((UseCompiler || AlwaysCompileLoopMethods) && CompileBroker::should_compile_new_jobs()) {
+
+ // TODO: review usage of CompileThread_lock (DCEVM)
+ if (ciObjectFactory::is_reinitialize_vm_klasses())
+ {
+ ASSERT_IN_VM;
+ MutexLocker only_one(CompileThread_lock);
+ if (ciObjectFactory::is_reinitialize_vm_klasses()) {
+ ciObjectFactory::reinitialize_vm_classes();
+ }
+ }
+
invoke_compiler_on_method(task);
thread->start_idle_timer();
} else {
diff --git a/src/hotspot/share/memory/universe.cpp b/src/hotspot/share/memory/universe.cpp
index 4ae3b382b67..92da9bbe5f9 100644
--- a/src/hotspot/share/memory/universe.cpp
+++ b/src/hotspot/share/memory/universe.cpp
@@ -924,6 +924,14 @@ void Universe::initialize_known_methods(TRAPS) {
vmSymbols::doStackWalk_signature(), false, CHECK);
}
+void Universe::reinitialize_loader_addClass_method(TRAPS) {
+ // Set up method for registering loaded classes in class loader vector
+ initialize_known_method(_loader_addClass_cache,
+ vmClasses::ClassLoader_klass(),
+ "addClass",
+ vmSymbols::class_void_signature(), false, CHECK);
+}
+
void universe2_init() {
EXCEPTION_MARK;
Universe::genesis(CATCH);
diff --git a/src/hotspot/share/memory/universe.hpp b/src/hotspot/share/memory/universe.hpp
index 4b2211c415e..4d4c444220e 100644
--- a/src/hotspot/share/memory/universe.hpp
+++ b/src/hotspot/share/memory/universe.hpp
@@ -268,6 +268,8 @@ class Universe: AllStatic {
// Function to initialize these
static void initialize_known_methods(TRAPS);
+ static void reinitialize_loader_addClass_method(TRAPS);
+
static void create_preallocated_out_of_memory_errors(TRAPS);
// Reference pending list manipulation. Access is protected by
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index b88c071be13..fb9da134e97 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -55,6 +55,7 @@
#include "prims/resolvedMethodTable.hpp"
#include "prims/methodHandles.hpp"
#include "runtime/deoptimization.hpp"
+#include "runtime/javaCalls.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/relocator.hpp"
#include "runtime/fieldDescriptor.hpp"
@@ -66,6 +67,7 @@
#include "gc/g1/g1CollectedHeap.hpp"
#include "gc/shared/dcevmSharedGC.hpp"
#include "gc/shared/scavengableNMethods.hpp"
+#include "gc/shared/oopStorageSet.inline.hpp"
#include "ci/ciObjectFactory.hpp"
Array<Method*>* VM_EnhancedRedefineClasses::_old_methods = NULL;
@@ -521,6 +523,16 @@ void VM_EnhancedRedefineClasses::doit() {
redefine_single_class(_new_classes->at(i), thread);
}
+ // Update possible redefinition of vm classes (like ClassLoader)
+ for (int i = 0; i < _new_classes->length(); i++) {
+ InstanceKlass* cur = _new_classes->at(i);
+ if (cur->old_version() != NULL && vmClasses::update_vm_klass(InstanceKlass::cast(cur->old_version()), cur))
+ {
+ log_trace(redefine, class, obsolete, metadata)("Well known class updated %s", cur->external_name());
+ ciObjectFactory::set_reinitialize_vm_klasses();
+ }
+ }
+
// 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(thread);
@@ -688,12 +700,56 @@ void VM_EnhancedRedefineClasses::doit() {
_timer_vm_op_doit.stop();
}
+void VM_EnhancedRedefineClasses::reinitializeJDKClasses() {
+ if (!_new_classes->is_empty()) {
+ ResourceMark rm(Thread::current());
+
+ for (int i = 0; i < _new_classes->length(); i++) {
+ InstanceKlass* cur = _new_classes->at(i);
+
+ if (cur->name()->starts_with("java/") || cur->name()->starts_with("jdk/") || cur->name()->starts_with("sun/")) {
+
+ if (cur == vmClasses::ClassLoader_klass()) {
+ // ClassLoader.addClass method is cached in Universe, we must redefine
+ Universe::reinitialize_loader_addClass_method(Thread::current());
+ log_trace(redefine, class, obsolete, metadata)("Reinitialize ClassLoade addClass method cache.");
+ }
+
+ // naive assumptions that only JDK classes has native static "registerNative" and "initIDs" methods
+ int end;
+ Symbol* signature = vmSymbols::registerNatives_method_name();
+ int midx = cur->find_method_by_name(signature, &end);
+ if (midx == -1) {
+ signature = vmSymbols::initIDs_method_name();
+ midx = cur->find_method_by_name(signature, &end);
+ }
+ Method* m = NULL;
+ if (midx != -1) {
+ m = cur->methods()->at(midx);
+ }
+ if (m != NULL && m->is_static() && m->is_native()) {
+ // call static registerNative if present
+ JavaValue result(T_VOID);
+ JavaCalls::call_static(&result,
+ cur,
+ signature,
+ vmSymbols::void_method_signature(),
+ Thread::current());
+ log_trace(redefine, class, obsolete, metadata)("Reregister natives of JDK class %s", cur->external_name());
+ }
+ }
+ }
+ }
+}
+
// Cleanup - runs in JVM thread
// - free used memory
// - end GC
void VM_EnhancedRedefineClasses::doit_epilogue() {
VM_GC_Operation::doit_epilogue();
+ reinitializeJDKClasses();
+
if (_new_classes != NULL) {
delete _new_classes;
}
@@ -1623,7 +1679,12 @@ void VM_EnhancedRedefineClasses::check_methods_and_mark_as_obsolete() {
// obsolete methods need a unique idnum so they become new entries in
// the jmethodID cache in InstanceKlass
- assert(old_method->method_idnum() == new_method->method_idnum(), "must match");
+ if (old_method->method_idnum() != new_method->method_idnum()) {
+ log_error(redefine, class, normalize)
+ ("Method not matched: %d != %d old: %s = new: %s", old_method->method_idnum(), new_method->method_idnum(),
+ old_method->name_and_sig_as_C_string(), new_method->name_and_sig_as_C_string());
+ // assert(old_method->method_idnum() == new_method->method_idnum(), "must match");
+ }
// u2 num = InstanceKlass::cast(_the_class_oop)->next_method_idnum();
// if (num != ConstMethod::UNSET_IDNUM) {
// old_method->set_method_idnum(num);
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index ae0a15281f3..d0d2f78aa62 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -150,6 +150,8 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
u8 next_id();
+ void reinitializeJDKClasses();
+
static void check_class(InstanceKlass* k_oop, TRAPS);
static void dump_methods();
--
2.23.0

View File

@@ -0,0 +1,260 @@
From 01f4cb9929cad1512d02e20cc7538a29ff0d3ef1 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 15 May 2021 10:31:28 +0200
Subject: [PATCH 29/45] Fix fastdebug compilation issues - cast_to_oop
---
.../share/gc/g1/g1FullGCCompactTask.cpp | 12 +++++-----
.../share/gc/g1/g1FullGCCompactionPoint.cpp | 10 ++++-----
.../share/gc/g1/g1FullGCPrepareTask.cpp | 4 ++--
src/hotspot/share/gc/shared/dcevmSharedGC.cpp | 6 ++---
src/hotspot/share/gc/shared/space.cpp | 22 +++++++++----------
src/hotspot/share/gc/shared/space.inline.hpp | 14 ++++++------
.../prims/jvmtiEnhancedRedefineClasses.cpp | 2 +-
7 files changed, 35 insertions(+), 35 deletions(-)
diff --git a/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp b/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
index 058dea90828..765630a9826 100644
--- a/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
@@ -183,18 +183,18 @@ size_t G1FullGCCompactTask::G1CompactRegionClosureDcevm::apply(oop obj) {
Klass* new_version = obj->klass()->new_version();
if (new_version->update_information() == NULL) {
Copy::aligned_conjoint_words(obj_addr, destination, size);
- oop(destination)->set_klass(new_version);
+ cast_to_oop(destination)->set_klass(new_version);
} else {
- DcevmSharedGC::update_fields(obj, oop(destination));
+ DcevmSharedGC::update_fields(obj, cast_to_oop(destination));
}
- oop(destination)->init_mark();
- assert(oop(destination)->klass() != NULL, "should have a class");
+ cast_to_oop(destination)->init_mark();
+ assert(cast_to_oop(destination)->klass() != NULL, "should have a class");
return size;
}
Copy::aligned_conjoint_words(obj_addr, destination, size);
- oop(destination)->init_mark();
- assert(oop(destination)->klass() != NULL, "should have a class");
+ cast_to_oop(destination)->init_mark();
+ assert(cast_to_oop(destination)->klass() != NULL, "should have a class");
return size;
}
diff --git a/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp b/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp
index 87b1977128a..028c182e68f 100644
--- a/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp
@@ -171,7 +171,7 @@ void G1FullGCCompactionPoint::forward_dcevm(oop object, size_t size, bool force_
// Store a forwarding pointer if the object should be moved.
if (cast_from_oop<HeapWord*>(object) != _compaction_top || force_forward) {
- object->forward_to(oop(_compaction_top));
+ object->forward_to(cast_to_oop(_compaction_top));
} else {
if (object->forwardee() != NULL) {
// Object should not move but mark-word is used so it looks like the
@@ -208,17 +208,17 @@ void G1FullGCCompactionPoint::forward_rescued() {
for (;i<rescued_oops()->length(); i++) {
HeapWord* q = rescued_oops()->at(i);
- size_t size = oop(q)->size();
+ size_t size = cast_to_oop(q)->size();
// (DCEVM) There is a new version of the class of q => different size
- if (oop(q)->klass()->new_version() != NULL) {
+ if (cast_to_oop(q)->klass()->new_version() != NULL) {
// assert(size != new_size, "instances without changed size have to be updated prior to GC run");
- size = oop(q)->size_given_klass(oop(q)->klass()->new_version());
+ size = cast_to_oop(q)->size_given_klass(cast_to_oop(q)->klass()->new_version());
}
if (forward_compact_top(size) == NULL) {
break;
}
- forward_dcevm(oop(q), size, true);
+ forward_dcevm(cast_to_oop(q), size, true);
}
_last_rescued_oop = i;
}
diff --git a/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp b/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
index 05f0444cc7a..93c066383a1 100644
--- a/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
@@ -297,7 +297,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))) {
+ if (compact_top == NULL || must_rescue(object, cast_to_oop(compact_top))) {
_cp->rescued_oops()->append(cast_from_oop<HeapWord*>(object));
} else {
_cp->forward_dcevm(object, forward_size, (size != forward_size));
@@ -308,7 +308,7 @@ size_t G1FullGCPrepareTask::G1PrepareCompactLiveClosureDcevm::apply(oop object)
bool G1FullGCPrepareTask::G1PrepareCompactLiveClosureDcevm::must_rescue(oop old_obj, oop new_obj) {
// Only redefined objects can have the need to be rescued.
- if (oop(old_obj)->klass()->new_version() == NULL) {
+ if (old_obj->klass()->new_version() == NULL) {
return false;
}
diff --git a/src/hotspot/share/gc/shared/dcevmSharedGC.cpp b/src/hotspot/share/gc/shared/dcevmSharedGC.cpp
index edc19a3077d..de3d518b696 100644
--- a/src/hotspot/share/gc/shared/dcevmSharedGC.cpp
+++ b/src/hotspot/share/gc/shared/dcevmSharedGC.cpp
@@ -46,7 +46,7 @@ void DcevmSharedGC::copy_rescued_objects_back(GrowableArray<HeapWord*>* rescued_
if (rescued_oops != NULL) {
for (int i=from; i < to; i++) {
HeapWord* rescued_ptr = rescued_oops->at(i);
- oop rescued_obj = (oop) rescued_ptr;
+ oop rescued_obj = cast_to_oop(rescued_ptr);
int size = rescued_obj->size();
oop new_obj = rescued_obj->forwardee();
@@ -75,7 +75,7 @@ void DcevmSharedGC::clear_rescued_objects_resource(GrowableArray<HeapWord*>* res
if (rescued_oops != NULL) {
for (int i=0; i < rescued_oops->length(); i++) {
HeapWord* rescued_ptr = rescued_oops->at(i);
- int size = ((oop) rescued_ptr)->size();
+ int size = cast_to_oop(rescued_ptr)->size();
FREE_RESOURCE_ARRAY(HeapWord, rescued_ptr, size);
}
rescued_oops->clear();
@@ -114,7 +114,7 @@ void DcevmSharedGC::update_fields(oop q, oop new_location) {
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;
+ q = cast_to_oop(tmp);
Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(tmp_obj), cast_from_oop<HeapWord*>(q), size);
}
}
diff --git a/src/hotspot/share/gc/shared/space.cpp b/src/hotspot/share/gc/shared/space.cpp
index 29a81348d2d..000760744f7 100644
--- a/src/hotspot/share/gc/shared/space.cpp
+++ b/src/hotspot/share/gc/shared/space.cpp
@@ -475,7 +475,7 @@ bool CompactibleSpace::must_rescue(oop old_obj, oop new_obj) {
int new_size = old_obj->size_given_klass(oop(old_obj)->klass()->new_version());
int original_size = old_obj->size();
-
+
Generation* tenured_gen = GenCollectedHeap::heap()->old_gen();
bool old_in_tenured = tenured_gen->is_in_reserved(old_obj);
bool new_in_tenured = tenured_gen->is_in_reserved(new_obj);
@@ -513,9 +513,9 @@ bool CompactibleSpace::must_rescue(oop old_obj, oop new_obj) {
}
HeapWord* CompactibleSpace::rescue(HeapWord* old_obj) {
- assert(must_rescue(oop(old_obj), oop(old_obj)->forwardee()), "do not call otherwise");
+ assert(must_rescue(cast_to_oop(old_obj), cast_to_oop(old_obj)->forwardee()), "do not call otherwise");
- int size = oop(old_obj)->size();
+ int size = cast_to_oop(old_obj)->size();
HeapWord* rescued_obj = NEW_RESOURCE_ARRAY(HeapWord, size);
Copy::aligned_disjoint_words(old_obj, rescued_obj, size);
@@ -803,16 +803,16 @@ HeapWord* CompactibleSpace::forward_with_rescue(HeapWord* q, size_t size,
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) {
+ if (cast_to_oop(q)->klass()->new_version() != NULL) {
- size_t new_size = oop(q)->size_given_klass(oop(q)->klass()->new_version());
+ size_t new_size = cast_to_oop(q)->size_given_klass(cast_to_oop(q)->klass()->new_version());
// assert(size != new_size, "instances without changed size have to be updated prior to GC run");
forward_size = new_size;
}
compact_top = forward_compact_top(forward_size, cp, compact_top);
- if (must_rescue(oop(q), oop(compact_top))) {
+ if (must_rescue(cast_to_oop(q), cast_to_oop(compact_top))) {
if (MarkSweep::_rescued_oops == NULL) {
MarkSweep::_rescued_oops = new GrowableArray<HeapWord*>(128);
}
@@ -820,7 +820,7 @@ HeapWord* CompactibleSpace::forward_with_rescue(HeapWord* q, size_t size,
return compact_top;
}
- return forward(oop(q), forward_size, cp, compact_top, force_forward);
+ return forward(cast_to_oop(q), forward_size, cp, compact_top, force_forward);
}
// Compute the forwarding addresses for the objects that need to be rescued.
@@ -830,17 +830,17 @@ HeapWord* CompactibleSpace::forward_rescued(CompactPoint* cp, HeapWord* compact_
for (int i=0; i<MarkSweep::_rescued_oops->length(); i++) {
HeapWord* q = MarkSweep::_rescued_oops->at(i);
- /* size_t size = oop(q)->size(); changing this for cms for perm gen */
+ /* size_t size = cast_to_oop(q)->size(); changing this for cms for perm gen */
size_t size = block_size(q);
// (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());
+ if (cast_to_oop(q)->klass()->new_version() != NULL) {
+ size_t new_size = cast_to_oop(q)->size_given_klass(cast_to_oop(q)->klass()->new_version());
// 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, true);
+ compact_top = cp->space->forward(cast_to_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.inline.hpp b/src/hotspot/share/gc/shared/space.inline.hpp
index cafa2503ef4..076ce6b0cce 100644
--- a/src/hotspot/share/gc/shared/space.inline.hpp
+++ b/src/hotspot/share/gc/shared/space.inline.hpp
@@ -351,7 +351,7 @@ inline void CompactibleSpace::scan_and_compact(SpaceType* space, bool redefiniti
size_t size = space->obj_size(cur_obj);
HeapWord* compaction_top = cast_from_oop<HeapWord*>(cast_to_oop(cur_obj)->forwardee());
- if (redefinition_run && space->must_rescue(oop(cur_obj), oop(cur_obj)->forwardee())) {
+ if (redefinition_run && space->must_rescue(cast_to_oop(cur_obj), cast_to_oop(cur_obj)->forwardee())) {
space->rescue(cur_obj);
debug_only(Copy::fill_to_words(cur_obj, size, 0));
cur_obj += size;
@@ -363,16 +363,16 @@ inline void CompactibleSpace::scan_and_compact(SpaceType* space, bool redefiniti
// copy object and reinit its mark
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 (redefinition_run && cast_to_oop(cur_obj)->klass()->new_version() != NULL) {
+ Klass* new_version = cast_to_oop(cur_obj)->klass()->new_version();
if (new_version->update_information() == NULL) {
Copy::aligned_conjoint_words(cur_obj, compaction_top, size);
- oop(compaction_top)->set_klass(new_version);
+ cast_to_oop(compaction_top)->set_klass(new_version);
} else {
- DcevmSharedGC::update_fields(oop(cur_obj), oop(compaction_top));
+ DcevmSharedGC::update_fields(cast_to_oop(cur_obj), cast_to_oop(compaction_top));
}
- oop(compaction_top)->init_mark();
- assert(oop(compaction_top)->klass() != NULL, "should have a class");
+ cast_to_oop(compaction_top)->init_mark();
+ assert(cast_to_oop(compaction_top)->klass() != NULL, "should have a class");
debug_only(prev_obj = cur_obj);
cur_obj += size;
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index fb9da134e97..890382e2029 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -439,7 +439,7 @@ public:
int size = o->size();
if (_tmp_obj_size < size) {
_tmp_obj_size = size;
- _tmp_obj = (oop)resource_allocate_bytes(size * HeapWordSize);
+ _tmp_obj = cast_to_oop(resource_allocate_bytes(size * HeapWordSize));
}
Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(o), cast_from_oop<HeapWord*>(_tmp_obj), size);
}
--
2.23.0

View File

@@ -0,0 +1,27 @@
From cac2eac1986ae05e264b2213d0d2658e2f57f07f Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Fri, 19 Mar 2021 19:13:38 +0100
Subject: [PATCH 30/45] JBR-3458: Skip dynamic proxy classes based on
com.sun.proxy
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 890382e2029..90dfc1ae545 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -707,7 +707,8 @@ void VM_EnhancedRedefineClasses::reinitializeJDKClasses() {
for (int i = 0; i < _new_classes->length(); i++) {
InstanceKlass* cur = _new_classes->at(i);
- if (cur->name()->starts_with("java/") || cur->name()->starts_with("jdk/") || cur->name()->starts_with("sun/")) {
+ if ((cur->name()->starts_with("java/") || cur->name()->starts_with("jdk/") || cur->name()->starts_with("sun/"))
+ && cur->name()->index_of_at(0, "$$") == -1) { // skip dynamic proxies
if (cur == vmClasses::ClassLoader_klass()) {
// ClassLoader.addClass method is cached in Universe, we must redefine
--
2.23.0

View File

@@ -0,0 +1,81 @@
From 4c87af809d20a12553f155110592a9f230ec0ea5 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sat, 20 Mar 2021 20:51:08 +0100
Subject: [PATCH 31/45] JBR-3459: Fix race condition in
ClassLoaderDataGraph::classes_do
InstanceKlass in ClassLoaderData can be uninitialized when
ClassLoaderDataGraph::classes_do is called. Using
ClassLoaderDataGraph::dictionary_classes_do is safe but problem is still
persisting with anonymous classes.
---
.../share/classfile/classLoaderDataGraph.cpp | 10 ++++++++++
.../share/classfile/classLoaderDataGraph.hpp | 4 ++++
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 14 ++++++++++++--
3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderDataGraph.cpp b/src/hotspot/share/classfile/classLoaderDataGraph.cpp
index 67ade5709f6..aa2a6bcec6b 100644
--- a/src/hotspot/share/classfile/classLoaderDataGraph.cpp
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.cpp
@@ -361,6 +361,16 @@ void ClassLoaderDataGraph::classes_do(KlassClosure* klass_closure) {
}
}
+void ClassLoaderDataGraph::anonymous_or_hidden_classes_do(KlassClosure* klass_closure) {
+ Thread* thread = Thread::current();
+ for (ClassLoaderData* cld = _head; cld != NULL; cld = cld->next()) {
+ if (cld->has_class_mirror_holder()) {
+ Handle holder(thread, cld->holder_phantom());
+ cld->classes_do(klass_closure);
+ }
+ }
+}
+
void ClassLoaderDataGraph::classes_do(void f(Klass* const)) {
ClassLoaderDataGraphIterator iter;
while (ClassLoaderData* cld = iter.get_next()) {
diff --git a/src/hotspot/share/classfile/classLoaderDataGraph.hpp b/src/hotspot/share/classfile/classLoaderDataGraph.hpp
index ebdb0bc2c8c..da712eaf55f 100644
--- a/src/hotspot/share/classfile/classLoaderDataGraph.hpp
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.hpp
@@ -78,6 +78,10 @@ class ClassLoaderDataGraph : public AllStatic {
// for redefinition. These classes are removed during the next class unloading.
// Walking the ClassLoaderDataGraph also includes hidden classes.
static void classes_do(KlassClosure* klass_closure);
+
+ // Enhanced class redefinition
+ static void anonymous_or_hidden_classes_do(KlassClosure* klass_closure);
+
static void classes_do(void f(Klass* const));
static void methods_do(void f(Method*));
static void modules_do(void f(ModuleEntry*));
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 90dfc1ae545..10407755457 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -2164,9 +2164,19 @@ jvmtiError VM_EnhancedRedefineClasses::find_sorted_affected_classes(TRAPS) {
{
MutexLocker mcld(ClassLoaderDataGraph_lock);
- ClassLoaderDataGraph::classes_do(&closure);
+
+ // 0. we can't use ClassLoaderDataGraph::classes_do since classes can be uninitialized in cld,
+ // fully initialized class is in system dictionary
+ // ClassLoaderDataGraph::classes_do(&closure);
+
+ // 1. Scan over dictionaries
+ ClassLoaderDataGraph::dictionary_classes_do(&closure);
+
+ // 2. Anonymous or hidden class is not in dictionary, we have to iterate anonymous cld directly, but there is race cond...
+ // TODO: review ... anonymous class is added to cld before InstanceKlass initialization,
+ // find out how to check if the InstanceKlass is initialized
+ ClassLoaderDataGraph::anonymous_or_hidden_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,39 @@
From c4941350aa7d3c5df3a20652f640fe446ff00c5c Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 15 May 2021 13:01:25 +0200
Subject: [PATCH 32/45] Fix compilation problems
---
src/hotspot/share/oops/instanceKlass.cpp | 2 +-
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index bcb0da6301f..c5f37d42a9a 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -978,7 +978,7 @@ bool InstanceKlass::link_class_impl(TRAPS) {
set_init_state(linked);
}
// (DCEVM) Must check for old version in order to prevent infinite loops.
- if (JvmtiExport::should_post_class_prepare() && (!AllowEnhancedClassRedefinition || old_version() == NULL /* JVMTI deadlock otherwise */) {
+ if (JvmtiExport::should_post_class_prepare() && (!AllowEnhancedClassRedefinition || old_version() == NULL /* JVMTI deadlock otherwise */)) {
JvmtiExport::post_class_prepare(THREAD, this);
}
}
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 10407755457..e87d4452d31 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -708,7 +708,7 @@ void VM_EnhancedRedefineClasses::reinitializeJDKClasses() {
InstanceKlass* cur = _new_classes->at(i);
if ((cur->name()->starts_with("java/") || cur->name()->starts_with("jdk/") || cur->name()->starts_with("sun/"))
- && cur->name()->index_of_at(0, "$$") == -1) { // skip dynamic proxies
+ && cur->name()->index_of_at(0, "$$", (int) strlen("$$")) == -1) { // skip dynamic proxies
if (cur == vmClasses::ClassLoader_klass()) {
// ClassLoader.addClass method is cached in Universe, we must redefine
--
2.23.0

View File

@@ -0,0 +1,350 @@
From dad40d31ec8a1633189e70eff57ae5fd21544b20 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 20 Jun 2021 19:11:16 +0200
Subject: [PATCH 33/45] Fix dcevm issues related to refactorization of Thread
to JavaThread
---
src/hotspot/share/cds/lambdaFormInvokers.cpp | 1 +
.../prims/jvmtiEnhancedRedefineClasses.cpp | 72 +++++++++----------
.../prims/jvmtiEnhancedRedefineClasses.hpp | 12 ++--
3 files changed, 39 insertions(+), 46 deletions(-)
diff --git a/src/hotspot/share/cds/lambdaFormInvokers.cpp b/src/hotspot/share/cds/lambdaFormInvokers.cpp
index 5c058dc43ac..9de28f740ac 100644
--- a/src/hotspot/share/cds/lambdaFormInvokers.cpp
+++ b/src/hotspot/share/cds/lambdaFormInvokers.cpp
@@ -178,6 +178,7 @@ void LambdaFormInvokers::reload_class(char* name, ClassFileStream& st, TRAPS) {
class_name,
cld,
cl_info,
+ false, // pick_newest
CHECK);
{
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index e87d4452d31..0aeeea4e7a4 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -23,7 +23,6 @@
*/
#include "precompiled.hpp"
-#include "aot/aotLoader.hpp"
#include "classfile/classFileParser.hpp"
#include "classfile/classFileStream.hpp"
#include "classfile/classLoadInfo.hpp"
@@ -38,7 +37,7 @@
#include "interpreter/rewriter.hpp"
#include "logging/logStream.hpp"
#include "memory/metadataFactory.hpp"
-#include "memory/metaspaceShared.hpp"
+#include "cds/metaspaceShared.hpp"
#include "memory/resourceArea.hpp"
#include "memory/iterator.inline.hpp"
#include "oops/fieldStreams.hpp"
@@ -156,7 +155,7 @@ bool VM_EnhancedRedefineClasses::doit_prologue() {
// We first load new class versions in the prologue, because somewhere down the
// call chain it is required that the current thread is a Java thread.
- _res = load_new_class_versions(Thread::current());
+ _res = load_new_class_versions(JavaThread::current());
// prepare GC, lock heap
if (_res == JVMTI_ERROR_NONE && !VM_GC_Operation::doit_prologue()) {
@@ -250,7 +249,6 @@ void VM_EnhancedRedefineClasses::root_oops_do(OopClosure *oopClosure) {
Universe::vm_global()->oops_do(oopClosure);
Threads::oops_do(oopClosure, NULL);
- AOT_ONLY(AOTLoader::oops_do(oopClosure);)
OopStorageSet::strong_oops_do(oopClosure);
CodeBlobToOopClosure blobClosure(oopClosure, CodeBlobToOopClosure::FixRelocations);
@@ -520,7 +518,7 @@ void VM_EnhancedRedefineClasses::doit() {
// before the stack walk again.
for (int i = 0; i < _new_classes->length(); i++) {
- redefine_single_class(_new_classes->at(i), thread);
+ redefine_single_class(thread, _new_classes->at(i));
}
// Update possible redefinition of vm classes (like ClassLoader)
@@ -535,7 +533,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(thread);
+ flush_dependent_code();
// }
// Adjust constantpool caches for all classes that reference methods of the evolved class.
@@ -692,7 +690,7 @@ void VM_EnhancedRedefineClasses::doit() {
assert(new_version->super() == NULL || new_version->super()->new_version() == NULL, "Super class must be newest version");
}
log_trace(redefine, class, obsolete, metadata)("calling check_class");
- ClassLoaderData::the_null_class_loader_data()->dictionary()->classes_do(check_class, thread);
+ ClassLoaderData::the_null_class_loader_data()->dictionary()->classes_do(check_class);
#ifdef PRODUCT
}
#endif
@@ -702,7 +700,7 @@ void VM_EnhancedRedefineClasses::doit() {
void VM_EnhancedRedefineClasses::reinitializeJDKClasses() {
if (!_new_classes->is_empty()) {
- ResourceMark rm(Thread::current());
+ ResourceMark rm(JavaThread::current());
for (int i = 0; i < _new_classes->length(); i++) {
InstanceKlass* cur = _new_classes->at(i);
@@ -712,7 +710,7 @@ void VM_EnhancedRedefineClasses::reinitializeJDKClasses() {
if (cur == vmClasses::ClassLoader_klass()) {
// ClassLoader.addClass method is cached in Universe, we must redefine
- Universe::reinitialize_loader_addClass_method(Thread::current());
+ Universe::reinitialize_loader_addClass_method(JavaThread::current());
log_trace(redefine, class, obsolete, metadata)("Reinitialize ClassLoade addClass method cache.");
}
@@ -735,7 +733,7 @@ void VM_EnhancedRedefineClasses::reinitializeJDKClasses() {
cur,
signature,
vmSymbols::void_method_signature(),
- Thread::current());
+ JavaThread::current());
log_trace(redefine, class, obsolete, metadata)("Reregister natives of JDK class %s", cur->external_name());
}
}
@@ -793,7 +791,7 @@ bool VM_EnhancedRedefineClasses::is_modifiable_class(oop klass_mirror) {
// Cannot redefine or retransform an anonymous class.
// TODO: check if is correct in j15
- if (InstanceKlass::cast(k)->is_unsafe_anonymous() || InstanceKlass::cast(k)->is_hidden()) {
+ if (InstanceKlass::cast(k)->is_hidden()) {
return false;
}
return true;
@@ -879,23 +877,15 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
InstanceKlass* k;
- if (the_class->is_unsafe_anonymous() || the_class->is_hidden()) {
+ if (the_class->is_hidden()) {
InstanceKlass* dynamic_host_class = NULL;
- InstanceKlass* unsafe_anonymous_host = NULL;
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,
- unsafe_anonymous_host,
- NULL, // cp_patches
dynamic_host_class, // dynamic_nest_host
Handle(), // classData
the_class->is_hidden(), // is_hidden
@@ -1143,7 +1133,7 @@ int VM_EnhancedRedefineClasses::calculate_redefinition_flags(InstanceKlass* new_
Array<Method*>* k_new_methods(new_class->methods());
int n_old_methods = k_old_methods->length();
int n_new_methods = k_new_methods->length();
- Thread* thread = Thread::current();
+ JavaThread* thread = JavaThread::current();
int ni = 0;
int oi = 0;
@@ -1491,8 +1481,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, TRAPS) {
- RawBytecodeStream bcs(methodHandle(THREAD, method));
+void VM_EnhancedRedefineClasses::unpatch_bytecode(Method* method) {
+ RawBytecodeStream bcs(methodHandle(Thread::current(), method));
Bytecodes::Code code;
Bytecodes::Code java_code;
while (!bcs.is_last_bytecode()) {
@@ -1535,10 +1525,10 @@ void VM_EnhancedRedefineClasses::unpatch_bytecode(Method* method, TRAPS) {
assert(code2 == Bytecodes::_fast_igetfield ||
code2 == Bytecodes::_fast_agetfield ||
code2 == Bytecodes::_fast_fgetfield, "");
- *(bcp + 1) = Bytecodes::java_code(code2);
- }
+ *(bcp + 1) = Bytecodes::java_code(code2);
}
}
+}
// Unevolving classes may point to old methods directly
// from their constant pool caches, itables, and/or vtables. We
@@ -1559,9 +1549,11 @@ void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
constantPoolHandle other_cp = constantPoolHandle(_thread, ik->constants());
// Update host klass of anonymous classes (for example, produced by lambdas) to 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()));
}
+ */
// FIXME: check new nest_host for hidden
@@ -1596,7 +1588,7 @@ 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, _thread);
+ ik->methods_do(unpatch_bytecode);
}
}
@@ -1628,7 +1620,7 @@ void VM_EnhancedRedefineClasses::MethodDataCleaner::do_klass(Klass* k) {
}
-void VM_EnhancedRedefineClasses::update_jmethod_ids(TRAPS) {
+void VM_EnhancedRedefineClasses::update_jmethod_ids(Thread* current) {
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();
@@ -1639,10 +1631,10 @@ void VM_EnhancedRedefineClasses::update_jmethod_ids(TRAPS) {
if (jmid != NULL) {
// There is a jmethodID, change it to point to the new method
- methodHandle new_method_h(THREAD, _matching_new_methods[j]);
+ methodHandle new_method_h(current, _matching_new_methods[j]);
if (old_method->new_version() == NULL) {
- methodHandle old_method_h(THREAD, _matching_old_methods[j]);
+ methodHandle old_method_h(current, _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 {
@@ -1864,7 +1856,7 @@ void VM_EnhancedRedefineClasses::mark_dependent_code(InstanceKlass* ik) {
// subsequent calls to RedefineClasses need only throw away code
// that depends on the class.
//
-void VM_EnhancedRedefineClasses::flush_dependent_code(TRAPS) {
+void VM_EnhancedRedefineClasses::flush_dependent_code() {
assert_locked_or_safepoint(Compile_lock);
// All dependencies have been recorded from startup or this is a second or
@@ -1959,9 +1951,9 @@ void VM_EnhancedRedefineClasses::compute_added_deleted_matching_methods() {
// a helper method to be specified. The interesting parameters
// that we would like to pass to the helper method are saved in
// static global fields in the VM operation.
-void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_oop, TRAPS) {
+void VM_EnhancedRedefineClasses::redefine_single_class(Thread* current, InstanceKlass* new_class_oop) {
- HandleMark hm(THREAD); // make sure handles from this call are freed
+ HandleMark hm(current); // make sure handles from this call are freed
InstanceKlass* new_class = new_class_oop;
InstanceKlass* the_class = InstanceKlass::cast(new_class_oop->old_version());
@@ -1980,7 +1972,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(THREAD);
+ update_jmethod_ids(current);
_any_class_has_resolved_methods = the_class->has_resolved_methods() || _any_class_has_resolved_methods;
@@ -2002,14 +1994,14 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
*/
{
- ResourceMark rm(THREAD);
+ ResourceMark rm(current);
// increment the classRedefinedCount field in the_class and in any
// direct and indirect subclasses of the_class
- increment_class_counter(new_class, THREAD);
+ increment_class_counter(current, new_class);
log_info(redefine, class, load)
("redefined name=%s, count=%d (avail_mem=" UINT64_FORMAT "K)",
new_class->external_name(), java_lang_Class::classRedefinedCount(new_class->java_mirror()), os::available_memory() >> 10);
- Events::log_redefinition(THREAD, "redefined class name=%s, count=%d",
+ Events::log_redefinition(current, "redefined class name=%s, count=%d",
new_class->external_name(),
java_lang_Class::classRedefinedCount(new_class->java_mirror()));
}
@@ -2018,21 +2010,21 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
// Increment the classRedefinedCount field in the specific InstanceKlass
// and in all direct and indirect subclasses.
-void VM_EnhancedRedefineClasses::increment_class_counter(InstanceKlass *ik, TRAPS) {
+void VM_EnhancedRedefineClasses::increment_class_counter(Thread* current, InstanceKlass *ik) {
oop class_mirror = ik->old_version()->java_mirror();
Klass* class_oop = java_lang_Class::as_Klass(class_mirror);
int new_count = java_lang_Class::classRedefinedCount(class_mirror) + 1;
java_lang_Class::set_classRedefinedCount(ik->java_mirror(), new_count);
}
-void VM_EnhancedRedefineClasses::check_class(InstanceKlass* ik, TRAPS) {
+void VM_EnhancedRedefineClasses::check_class(InstanceKlass* ik) {
if (ik->is_instance_klass() && ik->old_version() != NULL) {
- HandleMark hm(THREAD);
+ HandleMark hm(Thread::current());
assert(ik->new_version() == NULL, "must be latest version in system dictionary");
if (ik->vtable_length() > 0) {
- ResourceMark rm(THREAD);
+ ResourceMark rm(Thread::current());
assert(ik->vtable().check_no_old_or_obsolete_entries(), "old method found");
ik->vtable().verify(tty, true);
}
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index d0d2f78aa62..252287a3697 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -122,7 +122,7 @@ 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, TRAPS);
+ static void unpatch_bytecode(Method* method);
void root_oops_do(OopClosure *oopClosure);
@@ -131,28 +131,28 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
void compute_added_deleted_matching_methods();
// Change jmethodIDs to point to the new methods
- void update_jmethod_ids(TRAPS);
+ void update_jmethod_ids(Thread* current);
// marking methods as old and/or obsolete
void check_methods_and_mark_as_obsolete();
void transfer_old_native_function_registrations(InstanceKlass* the_class);
// Install the redefinition of a class
- void redefine_single_class(InstanceKlass* new_class_oop, TRAPS);
+ void redefine_single_class(Thread* current, InstanceKlass* new_class_oop);
// Increment the classRedefinedCount field in the specific InstanceKlass
// and in all direct and indirect subclasses.
- void increment_class_counter(InstanceKlass *ik, TRAPS);
+ void increment_class_counter(Thread* current, InstanceKlass *ik);
void mark_dependent_code(InstanceKlass* ik);
- void flush_dependent_code(TRAPS);
+ void flush_dependent_code();
u8 next_id();
void reinitializeJDKClasses();
- static void check_class(InstanceKlass* k_oop, TRAPS);
+ static void check_class(InstanceKlass* k_oop);
static void dump_methods();
--
2.23.0

View File

@@ -0,0 +1,142 @@
From 7fcef1a84c37c568c0afafb8cb22303efda68f0d Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 20 Jun 2021 19:42:51 +0200
Subject: [PATCH 34/45] Fix init_method_MemberName after Thread to JavaThread
refactorization
---
src/hotspot/share/interpreter/linkResolver.cpp | 14 ++++++++++----
src/hotspot/share/interpreter/linkResolver.hpp | 3 ++-
src/hotspot/share/oops/instanceKlass.cpp | 15 ---------------
src/hotspot/share/oops/instanceKlass.hpp | 1 -
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 11 +++++++++--
5 files changed, 21 insertions(+), 23 deletions(-)
diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
index 74a6af13ea4..78c9624a18b 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -131,14 +131,14 @@ void CallInfo::set_common(Klass* resolved_klass,
}
// utility query for unreflecting a method
-CallInfo::CallInfo(Method* resolved_method, Klass* resolved_klass, TRAPS) {
+CallInfo::CallInfo(Method* resolved_method, Klass* resolved_klass, Thread* thread) {
Klass* resolved_method_holder = resolved_method->method_holder();
if (resolved_klass == NULL) { // 2nd argument defaults to holder of 1st
resolved_klass = resolved_method_holder;
}
_resolved_klass = resolved_klass;
- _resolved_method = methodHandle(THREAD, resolved_method);
- _selected_method = methodHandle(THREAD, resolved_method);
+ _resolved_method = methodHandle(thread, resolved_method);
+ _selected_method = methodHandle(thread, resolved_method);
// classify:
CallKind kind = CallInfo::unknown_kind;
int index = resolved_method->vtable_index();
@@ -179,7 +179,9 @@ CallInfo::CallInfo(Method* resolved_method, Klass* resolved_klass, TRAPS) {
_call_index = index;
_resolved_appendix = Handle();
// Find or create a ResolvedMethod instance for this Method*
- set_resolved_method_name(CHECK);
+ if (thread->is_Java_thread()) { // exclude DCEVM VM thread
+ set_resolved_method_name(thread->as_Java_thread());
+ }
DEBUG_ONLY(verify());
}
@@ -190,6 +192,10 @@ void CallInfo::set_resolved_method_name(TRAPS) {
_resolved_method_name = Handle(THREAD, rmethod_name);
}
+void CallInfo::set_resolved_method_name_dcevm(oop rmethod_name, Thread* thread) {
+ _resolved_method_name = Handle(thread, rmethod_name);
+}
+
#ifdef ASSERT
void CallInfo::verify() {
switch (call_kind()) { // the meaning and allowed value of index depends on kind
diff --git a/src/hotspot/share/interpreter/linkResolver.hpp b/src/hotspot/share/interpreter/linkResolver.hpp
index 9eeb10cc6fd..871eaab7464 100644
--- a/src/hotspot/share/interpreter/linkResolver.hpp
+++ b/src/hotspot/share/interpreter/linkResolver.hpp
@@ -91,7 +91,7 @@ class CallInfo : public StackObj {
// utility to extract an effective CallInfo from a method and an optional receiver limit
// does not queue the method for compilation. This also creates a ResolvedMethodName
// object for the resolved_method.
- CallInfo(Method* resolved_method, Klass* resolved_klass, TRAPS);
+ CallInfo(Method* resolved_method, Klass* resolved_klass, Thread* thread);
Klass* resolved_klass() const { return _resolved_klass; }
Method* resolved_method() const { return _resolved_method(); }
@@ -100,6 +100,7 @@ class CallInfo : public StackObj {
Handle resolved_method_name() const { return _resolved_method_name; }
// Materialize a java.lang.invoke.ResolvedMethodName for this resolved_method
void set_resolved_method_name(TRAPS);
+ void set_resolved_method_name_dcevm(oop rmethod_name, Thread* thread);
BasicType result_type() const { return selected_method()->result_type(); }
CallKind call_kind() const { return _call_kind; }
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index c5f37d42a9a..9920e7fb25d 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -1643,21 +1643,6 @@ 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 317a006a4ec..36587031fec 100644
--- a/src/hotspot/share/oops/instanceKlass.hpp
+++ b/src/hotspot/share/oops/instanceKlass.hpp
@@ -1017,7 +1017,6 @@ 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/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 0aeeea4e7a4..e7f26b7d08e 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -292,8 +292,15 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
// Note: we might set NULL at this point, which should force AbstractMethodError at runtime
Thread *thread = Thread::current();
CallInfo info(new_method, newest, thread);
- Handle objHandle(thread, obj);
- MethodHandles::init_method_MemberName(objHandle, info);
+ oop resolved_method = ResolvedMethodTable::find_method(info.resolved_method());
+ if (resolved_method != NULL) {
+ info.set_resolved_method_name_dcevm(resolved_method, thread);
+ Handle objHandle(thread, obj);
+ MethodHandles::init_method_MemberName(objHandle, info);
+ } else {
+ assert(0, "Must be resolved");
+ java_lang_invoke_MemberName::set_method(obj, NULL);
+ }
} else {
java_lang_invoke_MemberName::set_method(obj, NULL);
}
--
2.23.0

View File

@@ -0,0 +1,25 @@
From e16371268f8ba1c752dc61635a09c94e978f5117 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 21 Jun 2021 20:44:17 +0200
Subject: [PATCH 35/45] Fix "implicit conversion of NULL constant to 'bool'"
---
src/hotspot/share/prims/jvmtiRedefineClasses.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiRedefineClasses.cpp
index 87b3b5f47ce..6915a09cf85 100644
--- a/src/hotspot/share/prims/jvmtiRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiRedefineClasses.cpp
@@ -1390,7 +1390,7 @@ jvmtiError VM_RedefineClasses::load_new_class_versions() {
the_class->name(),
the_class->class_loader_data(),
cl_info,
- NULL,
+ false,
THREAD);
// Clear class_being_redefined just to be sure.
--
2.23.0

View File

@@ -0,0 +1,35 @@
From 4d7390cedc3d06281f6a89f12b469108f11aab42 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 30 Jun 2021 18:30:00 +0200
Subject: [PATCH 36/45] Fix, pass SystemDictionary::resolve_from_stream cl_info
param
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index e7f26b7d08e..4d145f30100 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -920,10 +920,16 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
}
} else {
+ ClassLoadInfo cl_info(protection_domain,
+ NULL, // dynamic_nest_host
+ Handle(), // classData
+ false, // is_hidden
+ !the_class->is_non_strong_hidden(), // is_strong_hidden
+ true); // FIXME: check if correct. can_access_vm_annotations
k = SystemDictionary::resolve_from_stream(&st,
the_class_sym,
the_class_loader,
- protection_domain,
+ cl_info,
the_class,
THREAD);
}
--
2.23.0

View File

@@ -0,0 +1,113 @@
From 24fe3ebd655068b819a437af62d40c2ee9ed7171 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 30 Jun 2021 18:50:38 +0200
Subject: [PATCH 37/45] Search for affected classes in all initialized classes
in cld
Fix also case when lambda interface is redefined. Lambda class is
missing in cld dictionary since it is hidden since j17
---
src/hotspot/share/classfile/classLoaderData.cpp | 10 ++++++++++
src/hotspot/share/classfile/classLoaderData.hpp | 1 +
.../share/classfile/classLoaderDataGraph.cpp | 11 ++++-------
.../share/classfile/classLoaderDataGraph.hpp | 2 +-
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 13 ++++---------
5 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 65ce4c4af8c..1c51e83e86e 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -337,6 +337,16 @@ void ClassLoaderData::classes_do(KlassClosure* klass_closure) {
}
}
+void ClassLoaderData::initialized_classes_do(KlassClosure* klass_closure) {
+ // Lock-free access requires load_acquire
+ for (Klass* k = Atomic::load_acquire(&_klasses); k != NULL; k = k->next_link()) {
+ if (k->is_instance_klass() && InstanceKlass::cast(k)->is_initialized()) {
+ klass_closure->do_klass(k);
+ }
+ assert(k != k->next_link(), "no loops!");
+ }
+}
+
void ClassLoaderData::classes_do(void f(Klass * const)) {
// Lock-free access requires load_acquire
for (Klass* k = Atomic::load_acquire(&_klasses); k != NULL; k = k->next_link()) {
diff --git a/src/hotspot/share/classfile/classLoaderData.hpp b/src/hotspot/share/classfile/classLoaderData.hpp
index bda39f3e353..28fc9060e03 100644
--- a/src/hotspot/share/classfile/classLoaderData.hpp
+++ b/src/hotspot/share/classfile/classLoaderData.hpp
@@ -272,6 +272,7 @@ class ClassLoaderData : public CHeapObj<mtClass> {
void oops_do(OopClosure* f, int claim_value, bool clear_modified_oops = false);
void classes_do(KlassClosure* klass_closure);
+ void initialized_classes_do(KlassClosure* klass_closure);
Klass* klasses() { return _klasses; }
JNIMethodBlock* jmethod_ids() const { return _jmethod_ids; }
diff --git a/src/hotspot/share/classfile/classLoaderDataGraph.cpp b/src/hotspot/share/classfile/classLoaderDataGraph.cpp
index aa2a6bcec6b..f2394f72dbd 100644
--- a/src/hotspot/share/classfile/classLoaderDataGraph.cpp
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.cpp
@@ -361,13 +361,10 @@ void ClassLoaderDataGraph::classes_do(KlassClosure* klass_closure) {
}
}
-void ClassLoaderDataGraph::anonymous_or_hidden_classes_do(KlassClosure* klass_closure) {
- Thread* thread = Thread::current();
- for (ClassLoaderData* cld = _head; cld != NULL; cld = cld->next()) {
- if (cld->has_class_mirror_holder()) {
- Handle holder(thread, cld->holder_phantom());
- cld->classes_do(klass_closure);
- }
+void ClassLoaderDataGraph::initialized_classes_do(KlassClosure* klass_closure) {
+ ClassLoaderDataGraphIterator iter;
+ while (ClassLoaderData* cld = iter.get_next()) {
+ cld->initialized_classes_do(klass_closure);
}
}
diff --git a/src/hotspot/share/classfile/classLoaderDataGraph.hpp b/src/hotspot/share/classfile/classLoaderDataGraph.hpp
index da712eaf55f..ff391ec74fc 100644
--- a/src/hotspot/share/classfile/classLoaderDataGraph.hpp
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.hpp
@@ -80,7 +80,7 @@ class ClassLoaderDataGraph : public AllStatic {
static void classes_do(KlassClosure* klass_closure);
// Enhanced class redefinition
- static void anonymous_or_hidden_classes_do(KlassClosure* klass_closure);
+ static void initialized_classes_do(KlassClosure* klass_closure);
static void classes_do(void f(Klass* const));
static void methods_do(void f(Method*));
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 4d145f30100..8615806ac98 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -2170,17 +2170,12 @@ jvmtiError VM_EnhancedRedefineClasses::find_sorted_affected_classes(TRAPS) {
{
MutexLocker mcld(ClassLoaderDataGraph_lock);
- // 0. we can't use ClassLoaderDataGraph::classes_do since classes can be uninitialized in cld,
- // fully initialized class is in system dictionary
+ // We can't use ClassLoaderDataGraph::classes_do since classes can be uninitialized in cld,
+ // fully initialized class is in system dictionary, but hidden classes are excluded. Therefore
+ // we use special method iterating over initialized classes only
// ClassLoaderDataGraph::classes_do(&closure);
- // 1. Scan over dictionaries
- ClassLoaderDataGraph::dictionary_classes_do(&closure);
-
- // 2. Anonymous or hidden class is not in dictionary, we have to iterate anonymous cld directly, but there is race cond...
- // TODO: review ... anonymous class is added to cld before InstanceKlass initialization,
- // find out how to check if the InstanceKlass is initialized
- ClassLoaderDataGraph::anonymous_or_hidden_classes_do(&closure);
+ ClassLoaderDataGraph::initialized_classes_do(&closure);
}
log_trace(redefine, class, load)("%d classes affected", _affected_klasses->length());
--
2.23.0

View File

@@ -0,0 +1,27 @@
From 3e62ad1914f202d2d3fe907036924e181cd60fcb Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 30 Jun 2021 18:58:47 +0200
Subject: [PATCH 38/45] Fix compilation issue
---
src/hotspot/share/interpreter/linkResolver.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
index 78c9624a18b..28dccd0face 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -562,8 +562,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() &&
- ( !AllowEnhancedClassRedefinition && sel_klass == vmClasses::Object_klass() ||
- AllowEnhancedClassRedefinition && sel_klass->newest_version() == vmClasses::Object_klass()->newest_version()) &&
+ ( (!AllowEnhancedClassRedefinition && sel_klass == vmClasses::Object_klass()) ||
+ (AllowEnhancedClassRedefinition && sel_klass->newest_version() == vmClasses::Object_klass()->newest_version()) ) &&
resolved_klass->is_array_klass()) {
// We need to change "protected" to "public".
assert(flags.is_protected(), "clone not protected?");
--
2.23.0

View File

@@ -0,0 +1,171 @@
From 4cfb8eb8caa9b13f54f21cdd34b4d761b2b488cc Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Tue, 27 Jul 2021 21:32:51 +0200
Subject: [PATCH 39/45] Remove duplicated lambdaFormInvokers.cpp
---
.../share/classfile/lambdaFormInvokers.cpp | 152 ------------------
1 file changed, 152 deletions(-)
delete mode 100644 src/hotspot/share/classfile/lambdaFormInvokers.cpp
diff --git a/src/hotspot/share/classfile/lambdaFormInvokers.cpp b/src/hotspot/share/classfile/lambdaFormInvokers.cpp
deleted file mode 100644
index 281de58b482..00000000000
--- a/src/hotspot/share/classfile/lambdaFormInvokers.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-#include "precompiled.hpp"
-#include "classfile/classLoadInfo.hpp"
-#include "classfile/classFileStream.hpp"
-#include "classfile/javaClasses.inline.hpp"
-#include "classfile/klassFactory.hpp"
-#include "classfile/lambdaFormInvokers.hpp"
-#include "classfile/symbolTable.hpp"
-#include "classfile/systemDictionary.hpp"
-#include "classfile/systemDictionaryShared.hpp"
-#include "classfile/vmClasses.hpp"
-#include "classfile/vmSymbols.hpp"
-#include "logging/log.hpp"
-#include "memory/oopFactory.hpp"
-#include "memory/metaspaceShared.hpp"
-#include "memory/resourceArea.hpp"
-#include "oops/instanceKlass.hpp"
-#include "oops/klass.hpp"
-#include "oops/objArrayKlass.hpp"
-#include "oops/objArrayOop.hpp"
-#include "oops/oop.inline.hpp"
-#include "oops/typeArrayOop.inline.hpp"
-#include "runtime/handles.inline.hpp"
-#include "runtime/javaCalls.hpp"
-
-GrowableArray<char*>* LambdaFormInvokers::_lambdaform_lines = NULL;
-
-void LambdaFormInvokers::append(char* line) {
- if (_lambdaform_lines == NULL) {
- _lambdaform_lines = new GrowableArray<char*>(100);
- }
- _lambdaform_lines->append(line);
-}
-
-void LambdaFormInvokers::regenerate_holder_classes(TRAPS) {
- assert(_lambdaform_lines != NULL, "Bad List");
- ResourceMark rm(THREAD);
-
- Symbol* cds_name = vmSymbols::jdk_internal_misc_CDS();
- Klass* cds_klass = SystemDictionary::resolve_or_null(cds_name, THREAD);
- guarantee(cds_klass != NULL, "jdk/internal/misc/CDS must exist!");
-
- int len = _lambdaform_lines->length();
- objArrayHandle list_lines = oopFactory::new_objArray_handle(vmClasses::String_klass(), len, CHECK);
- for (int i = 0; i < len; i++) {
- Handle h_line = java_lang_String::create_from_str(_lambdaform_lines->at(i), CHECK);
- list_lines->obj_at_put(i, h_line());
- }
-
- //
- // Object[] CDS.generateLambdaFormHolderClasses(String[] lines)
- // the returned Object[] layout:
- // name, byte[], name, byte[] ....
- Symbol* method = vmSymbols::generateLambdaFormHolderClasses();
- Symbol* signrs = vmSymbols::generateLambdaFormHolderClasses_signature();
-
- JavaValue result(T_OBJECT);
- JavaCalls::call_static(&result, cds_klass, method, signrs, list_lines, THREAD);
-
- if (HAS_PENDING_EXCEPTION) {
- log_info(cds)("%s: %s", THREAD->pending_exception()->klass()->external_name(),
- java_lang_String::as_utf8_string(java_lang_Throwable::message(THREAD->pending_exception())));
- CLEAR_PENDING_EXCEPTION;
- return;
- }
-
- objArrayHandle h_array(THREAD, (objArrayOop)result.get_oop());
- int sz = h_array->length();
- assert(sz % 2 == 0 && sz >= 2, "Must be even size of length");
- for (int i = 0; i < sz; i+= 2) {
- Handle h_name(THREAD, h_array->obj_at(i));
- typeArrayHandle h_bytes(THREAD, (typeArrayOop)h_array->obj_at(i+1));
- assert(h_name != NULL, "Class name is NULL");
- assert(h_bytes != NULL, "Class bytes is NULL");
-
- char *class_name = java_lang_String::as_utf8_string(h_name());
- int len = h_bytes->length();
- // make a copy of class bytes so GC will not affect us.
- char *buf = resource_allocate_bytes(THREAD, len);
- memcpy(buf, (char*)h_bytes->byte_at_addr(0), len);
- ClassFileStream st((u1*)buf, len, NULL, ClassFileStream::verify);
-
- reload_class(class_name, st, THREAD);
- // free buf
- resource_free_bytes(buf, len);
-
- if (HAS_PENDING_EXCEPTION) {
- log_info(cds)("Exception happened: %s", PENDING_EXCEPTION->klass()->name()->as_C_string());
- log_info(cds)("Could not create InstanceKlass for class %s", class_name);
- CLEAR_PENDING_EXCEPTION;
- return;
- }
- }
-}
-
-// class_handle - the class name, bytes_handle - the class bytes
-void LambdaFormInvokers::reload_class(char* name, ClassFileStream& st, TRAPS) {
- Symbol* class_name = SymbolTable::new_symbol((const char*)name);
- // the class must exist
- Klass* klass = SystemDictionary::resolve_or_null(class_name, THREAD);
- if (klass == NULL) {
- log_info(cds)("Class %s not present, skip", name);
- return;
- }
- assert(klass->is_instance_klass(), "Should be");
-
- ClassLoaderData* cld = ClassLoaderData::the_null_class_loader_data();
- Handle protection_domain;
- ClassLoadInfo cl_info(protection_domain);
-
- InstanceKlass* result = KlassFactory::create_from_stream(&st,
- class_name,
- cld,
- cl_info,
- false,
- CHECK);
-
- {
- MutexLocker mu_r(THREAD, Compile_lock); // add_to_hierarchy asserts this.
- SystemDictionary::add_to_hierarchy(result);
- }
- // new class not linked yet.
- MetaspaceShared::try_link_class(THREAD, result);
- assert(!HAS_PENDING_EXCEPTION, "Invariant");
-
- // exclude the existing class from dump
- SystemDictionaryShared::set_excluded(InstanceKlass::cast(klass));
- log_info(cds, lambda)("Replaced class %s, old: %p new: %p", name, klass, result);
-}
--
2.23.0

View File

@@ -0,0 +1,222 @@
From 92651c5d109896613e14792aa96ed5226a797f9b Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 10 Oct 2021 20:25:30 +0200
Subject: [PATCH 40/45] JBR-3867 - update keys of jvmti TAG map after
redefinition
jdwp keeps relation class_ptr->class_ref in jvmti tag. class_ptr is used
as a tag key, tag value is refnode. There are new class_ptrs after
redefinition, therefore jdwp redefinition method update all affected
keys in the tag map.
---
src/hotspot/share/prims/jvmtiExtensions.cpp | 24 ++++++++++++++
.../share/native/libjdwp/VirtualMachineImpl.c | 20 +++++++++++
.../share/native/libjdwp/commonRef.c | 29 ++++++++++++++++
.../share/native/libjdwp/commonRef.h | 2 ++
.../share/native/libjdwp/util.c | 33 +++++++++++++++++++
.../share/native/libjdwp/util.h | 3 ++
6 files changed, 111 insertions(+)
diff --git a/src/hotspot/share/prims/jvmtiExtensions.cpp b/src/hotspot/share/prims/jvmtiExtensions.cpp
index a3fc430e1d1..ab2e663b95d 100644
--- a/src/hotspot/share/prims/jvmtiExtensions.cpp
+++ b/src/hotspot/share/prims/jvmtiExtensions.cpp
@@ -49,6 +49,15 @@ static jvmtiError JNICALL IsClassUnloadingEnabled(const jvmtiEnv* env, ...) {
return JVMTI_ERROR_NONE;
}
+// extension function
+static jvmtiError JNICALL IsEnhancedClassRedefinitionEnabled(const jvmtiEnv* env, jboolean* enabled, ...) {
+ if (enabled == NULL) {
+ return JVMTI_ERROR_NULL_POINTER;
+ }
+ *enabled = (jboolean)AllowEnhancedClassRedefinition;
+ return JVMTI_ERROR_NONE;
+}
+
// register extension functions and events. In this implementation we
// have a single extension function (to prove the API) that tests if class
// unloading is enabled or disabled. We also have a single extension event
@@ -88,6 +97,21 @@ void JvmtiExtensions::register_extensions() {
event_params
};
_ext_events->append(&ext_event);
+
+ static jvmtiParamInfo func_params_enh_redef[] = {
+ { (char*)"IsEnhancedClassRedefinitionEnabled", JVMTI_KIND_OUT, JVMTI_TYPE_JBOOLEAN, JNI_FALSE }
+
+ };
+ static jvmtiExtensionFunctionInfo ext_func_enh_redef = {
+ (jvmtiExtensionFunction)IsEnhancedClassRedefinitionEnabled,
+ (char*)"com.sun.hotspot.functions.IsEnhancedClassRedefinitionEnabled",
+ (char*)"Tell if enhanced class redefinition is enabled (-noclassgc)",
+ sizeof(func_params_enh_redef)/sizeof(func_params_enh_redef[0]),
+ func_params_enh_redef,
+ 0, // no non-universal errors
+ NULL
+ };
+ _ext_functions->append(&ext_func_enh_redef);
}
diff --git a/src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c b/src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c
index c07bdac2922..7e3070d7d1d 100644
--- a/src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c
+++ b/src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c
@@ -477,6 +477,14 @@ redefineClasses(PacketInputStream *in, PacketOutputStream *out)
if (ok == JNI_TRUE) {
jvmtiError error;
+ jlong classIds[classCount];
+
+ if (gdata->isEnhancedClassRedefinitionEnabled) {
+ for (i = 0; i < classCount; ++i) {
+ classIds[i] = commonRef_refToID(env, classDefs[i].klass);
+ }
+ }
+
error = JVMTI_FUNC_PTR(gdata->jvmti,RedefineClasses)
(gdata->jvmti, classCount, classDefs);
if (error != JVMTI_ERROR_NONE) {
@@ -486,6 +494,18 @@ redefineClasses(PacketInputStream *in, PacketOutputStream *out)
for ( i = 0 ; i < classCount; i++ ) {
eventHandler_freeClassBreakpoints(classDefs[i].klass);
}
+
+ if (gdata->isEnhancedClassRedefinitionEnabled) {
+ /* Update tags in jvmti to use new classes */
+ for ( i = 0 ; i < classCount; i++ ) {
+ /* pointer in classIds[i] is updated by advanced redefinition to a new class */
+ error = commonRef_updateTags(env, classIds[i]);
+ if (error != JVMTI_ERROR_NONE) {
+ break;
+ }
+ }
+ }
+
}
}
diff --git a/src/jdk.jdwp.agent/share/native/libjdwp/commonRef.c b/src/jdk.jdwp.agent/share/native/libjdwp/commonRef.c
index bc7ddb660bf..f8cb8e36f17 100644
--- a/src/jdk.jdwp.agent/share/native/libjdwp/commonRef.c
+++ b/src/jdk.jdwp.agent/share/native/libjdwp/commonRef.c
@@ -712,3 +712,32 @@ commonRef_unlock(void)
{
debugMonitorExit(gdata->refLock);
}
+
+/*
+ * Update JVMTI tags, used from enhanced redefinition
+ */
+jvmtiError
+commonRef_updateTags(JNIEnv *env, jlong id)
+{
+ jvmtiError error;
+
+ error = JVMTI_ERROR_NONE;
+
+ if (id == NULL_OBJECT_ID) {
+ return error;
+ }
+
+ debugMonitorEnter(gdata->refLock); {
+ RefNode *node;
+
+ node = findNodeByID(env, id);
+ if (node != NULL) {
+ error = JVMTI_FUNC_PTR(gdata->jvmti, SetTag)
+ (gdata->jvmti, node->ref, ptr_to_jlong(node));
+ } else {
+ printf("Node not found\n");
+ }
+ } debugMonitorExit(gdata->refLock);
+
+ return error;
+}
diff --git a/src/jdk.jdwp.agent/share/native/libjdwp/commonRef.h b/src/jdk.jdwp.agent/share/native/libjdwp/commonRef.h
index c3700f8c743..35c77e4adbf 100644
--- a/src/jdk.jdwp.agent/share/native/libjdwp/commonRef.h
+++ b/src/jdk.jdwp.agent/share/native/libjdwp/commonRef.h
@@ -43,4 +43,6 @@ void commonRef_compact(void);
void commonRef_lock(void);
void commonRef_unlock(void);
+jvmtiError commonRef_updateTags(JNIEnv *env, jlong id);
+
#endif
diff --git a/src/jdk.jdwp.agent/share/native/libjdwp/util.c b/src/jdk.jdwp.agent/share/native/libjdwp/util.c
index 2403c5273ba..b4a5ad183e0 100644
--- a/src/jdk.jdwp.agent/share/native/libjdwp/util.c
+++ b/src/jdk.jdwp.agent/share/native/libjdwp/util.c
@@ -43,6 +43,7 @@ BackendGlobalData *gdata = NULL;
static jboolean isInterface(jclass clazz);
static jboolean isArrayClass(jclass clazz);
static char * getPropertyUTF8(JNIEnv *env, char *propertyName);
+static jboolean isEnhancedClassRedefinitionEnabled(JNIEnv *env);
/* Save an object reference for use later (create a NewGlobalRef) */
void
@@ -285,6 +286,8 @@ util_initialize(JNIEnv *env)
}
}
+ gdata->isEnhancedClassRedefinitionEnabled = isEnhancedClassRedefinitionEnabled(env);
+
} END_WITH_LOCAL_REFS(env);
}
@@ -1701,6 +1704,36 @@ getPropertyUTF8(JNIEnv *env, char *propertyName)
return value;
}
+static jboolean
+isEnhancedClassRedefinitionEnabled(JNIEnv *env)
+{
+ jvmtiError error;
+ jint count, i;
+ jvmtiExtensionFunctionInfo* ext_funcs;
+
+ error = JVMTI_FUNC_PTR(gdata->jvmti,GetExtensionFunctions)
+ (gdata->jvmti, &count, &ext_funcs);
+ if (error != JVMTI_ERROR_NONE) {
+ return JNI_FALSE;
+ }
+
+ for (i=0; i<count; i++) {
+ if (strcmp(ext_funcs[i].id, (char*)"com.sun.hotspot.functions.IsEnhancedClassRedefinitionEnabled") == 0) {
+ jboolean enabled;
+ error = (*ext_funcs[i].func)(gdata->jvmti, &enabled);
+
+ if (error != JVMTI_ERROR_NONE) {
+ return JNI_FALSE;
+ } else {
+ return enabled;
+ }
+ }
+ }
+
+ return JNI_FALSE;
+}
+
+
jboolean
isMethodObsolete(jmethodID method)
{
diff --git a/src/jdk.jdwp.agent/share/native/libjdwp/util.h b/src/jdk.jdwp.agent/share/native/libjdwp/util.h
index f62b5c409f0..6de8f17bb23 100644
--- a/src/jdk.jdwp.agent/share/native/libjdwp/util.h
+++ b/src/jdk.jdwp.agent/share/native/libjdwp/util.h
@@ -133,6 +133,9 @@ typedef struct {
int objectsByIDsize;
int objectsByIDcount;
+ /* true if enhanced class redefinition is enabled */
+ jboolean isEnhancedClassRedefinitionEnabled;
+
/* Indication that the agent has been loaded */
jboolean isLoaded;
--
2.23.0

View File

@@ -0,0 +1,54 @@
From 7cfd70e1e43bca677b9827a5a7643bb604e6ae38 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 11 Oct 2021 20:22:26 +0200
Subject: [PATCH 41/45] JBR-3867 - fix msvc compilation issue with non const
array on stack
---
.../share/native/libjdwp/VirtualMachineImpl.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c b/src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c
index 7e3070d7d1d..669fac7cb5b 100644
--- a/src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c
+++ b/src/jdk.jdwp.agent/share/native/libjdwp/VirtualMachineImpl.c
@@ -477,11 +477,16 @@ redefineClasses(PacketInputStream *in, PacketOutputStream *out)
if (ok == JNI_TRUE) {
jvmtiError error;
- jlong classIds[classCount];
+ jlong* classIds = NULL;
if (gdata->isEnhancedClassRedefinitionEnabled) {
- for (i = 0; i < classCount; ++i) {
- classIds[i] = commonRef_refToID(env, classDefs[i].klass);
+ classIds = jvmtiAllocate(classCount*(int)sizeof(jlong));
+ if (classIds == NULL) {
+ outStream_setError(out, JDWP_ERROR(OUT_OF_MEMORY));
+ return JNI_TRUE;
+ }
+ for (i = 0; i < classCount; i++) {
+ classIds[i] = commonRef_refToID(env, classDefs[i].klass);
}
}
@@ -495,7 +500,7 @@ redefineClasses(PacketInputStream *in, PacketOutputStream *out)
eventHandler_freeClassBreakpoints(classDefs[i].klass);
}
- if (gdata->isEnhancedClassRedefinitionEnabled) {
+ if (gdata->isEnhancedClassRedefinitionEnabled && classIds != NULL) {
/* Update tags in jvmti to use new classes */
for ( i = 0 ; i < classCount; i++ ) {
/* pointer in classIds[i] is updated by advanced redefinition to a new class */
@@ -504,6 +509,7 @@ redefineClasses(PacketInputStream *in, PacketOutputStream *out)
break;
}
}
+ jvmtiDeallocate((void*) classIds);
}
}
--
2.23.0

View File

@@ -0,0 +1,31 @@
From d41ca807dcf4f192bc730c577acb5d2bff0aa3f7 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Tue, 19 Oct 2021 17:02:35 +0200
Subject: [PATCH 42/45] Attempt to fix JBR-3887
---
src/hotspot/share/prims/jvmtiExtensions.cpp | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiExtensions.cpp b/src/hotspot/share/prims/jvmtiExtensions.cpp
index ab2e663b95d..698d32a7228 100644
--- a/src/hotspot/share/prims/jvmtiExtensions.cpp
+++ b/src/hotspot/share/prims/jvmtiExtensions.cpp
@@ -50,7 +50,13 @@ static jvmtiError JNICALL IsClassUnloadingEnabled(const jvmtiEnv* env, ...) {
}
// extension function
-static jvmtiError JNICALL IsEnhancedClassRedefinitionEnabled(const jvmtiEnv* env, jboolean* enabled, ...) {
+static jvmtiError JNICALL IsEnhancedClassRedefinitionEnabled(const jvmtiEnv* env, ...) {
+ jboolean* enabled = NULL;
+ va_list ap;
+
+ va_start(ap, env);
+ enabled = va_arg(ap, jboolean *);
+ va_end(ap);
if (enabled == NULL) {
return JVMTI_ERROR_NULL_POINTER;
}
--
2.23.0

View File

@@ -0,0 +1,180 @@
From 91534f381bf08471b7e6e5064d561fb75e2890c6 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 1 Nov 2021 19:00:41 +0100
Subject: [PATCH 43/45] JBR-3937 Fix crashes in C1/C2 compilers
There is a race condition in enhanced redefinition with C1/C2. Therefore
the patch stops C1/C2 compilation before redefinition and release after
redefinition finishing. There is no performance impact since dcevm
flushes all code cache.
---
src/hotspot/share/compiler/compileBroker.cpp | 38 ++++++++++++++++++--
src/hotspot/share/compiler/compileBroker.hpp | 6 ++++
src/hotspot/share/prims/jvmtiEnv.cpp | 7 ++++
src/hotspot/share/runtime/mutexLocker.cpp | 3 ++
src/hotspot/share/runtime/mutexLocker.hpp | 1 +
5 files changed, 53 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/compiler/compileBroker.cpp b/src/hotspot/share/compiler/compileBroker.cpp
index aaf8e4b1f1e..878bc265d2f 100644
--- a/src/hotspot/share/compiler/compileBroker.cpp
+++ b/src/hotspot/share/compiler/compileBroker.cpp
@@ -140,6 +140,8 @@ CompileLog** CompileBroker::_compiler2_logs = NULL;
// These counters are used to assign an unique ID to each compilation.
volatile jint CompileBroker::_compilation_id = 0;
volatile jint CompileBroker::_osr_compilation_id = 0;
+volatile bool CompileBroker::_compilation_stopped = false;
+volatile int CompileBroker::_active_compilations = 0;
// Performance counters
PerfCounter* CompileBroker::_perf_total_compilation = NULL;
@@ -2320,8 +2322,19 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) {
locker.wait();
}
}
- comp->compile_method(&ci_env, target, osr_bci, true, directive);
-
+ if (AllowEnhancedClassRedefinition) {
+ {
+ MonitorLocker locker(DcevmCompilation_lock, Mutex::_no_safepoint_check_flag);
+ while (_compilation_stopped) {
+ locker.wait();
+ }
+ Atomic::add(&_active_compilations, 1);
+ }
+ comp->compile_method(&ci_env, target, osr_bci, true, directive);
+ Atomic::sub(&_active_compilations, 1);
+ } else {
+ comp->compile_method(&ci_env, target, osr_bci, true, directive);
+ }
/* Repeat compilation without installing code for profiling purposes */
int repeat_compilation_count = directive->RepeatCompilationOption;
while (repeat_compilation_count > 0) {
@@ -2329,6 +2342,7 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) {
comp->compile_method(&ci_env, target, osr_bci, false , directive);
repeat_compilation_count--;
}
+
}
if (!ci_env.failing() && task->code() == NULL) {
@@ -2942,3 +2956,23 @@ void CompileBroker::print_heapinfo(outputStream* out, const char* function, size
}
out->print_cr("\n__ CodeHeapStateAnalytics total duration %10.3f seconds _________\n", ts_total.seconds());
}
+
+void CompileBroker::stopCompilationBeforeEnhancedRedefinition() {
+ if (AllowEnhancedClassRedefinition) {
+ MonitorLocker locker(DcevmCompilation_lock, Mutex::_no_safepoint_check_flag);
+ _compilation_stopped = true;
+ while (_active_compilations > 0) {
+ VM_ThreadsSuspendJVMTI tsj; // force safepoint to run C1/C2 VM op
+ VMThread::execute(&tsj);
+ locker.wait(10);
+ }
+ }
+}
+
+void CompileBroker::releaseCompilationAfterEnhancedRedefinition() {
+ if (AllowEnhancedClassRedefinition) {
+ MonitorLocker locker(DcevmCompilation_lock, Mutex::_no_safepoint_check_flag);
+ _compilation_stopped = false;
+ locker.notify_all();
+ }
+}
diff --git a/src/hotspot/share/compiler/compileBroker.hpp b/src/hotspot/share/compiler/compileBroker.hpp
index 0b721f83121..f146ff5c93d 100644
--- a/src/hotspot/share/compiler/compileBroker.hpp
+++ b/src/hotspot/share/compiler/compileBroker.hpp
@@ -175,6 +175,9 @@ class CompileBroker: AllStatic {
static volatile jint _compilation_id;
static volatile jint _osr_compilation_id;
+ static volatile bool _compilation_stopped;
+ static volatile int _active_compilations;
+
static CompileQueue* _c2_compile_queue;
static CompileQueue* _c1_compile_queue;
@@ -423,6 +426,9 @@ public:
// CodeHeap State Analytics.
static void print_info(outputStream *out);
static void print_heapinfo(outputStream *out, const char* function, size_t granularity);
+
+ static void stopCompilationBeforeEnhancedRedefinition();
+ static void releaseCompilationAfterEnhancedRedefinition();
};
#endif // SHARE_COMPILER_COMPILEBROKER_HPP
diff --git a/src/hotspot/share/prims/jvmtiEnv.cpp b/src/hotspot/share/prims/jvmtiEnv.cpp
index 8970d7991b7..9ca8e660197 100644
--- a/src/hotspot/share/prims/jvmtiEnv.cpp
+++ b/src/hotspot/share/prims/jvmtiEnv.cpp
@@ -31,6 +31,7 @@
#include "classfile/vmClasses.hpp"
#include "classfile/vmSymbols.hpp"
#include "gc/shared/collectedHeap.hpp"
+#include "compiler/compileBroker.hpp"
#include "interpreter/bytecodeStream.hpp"
#include "interpreter/interpreter.hpp"
#include "jfr/jfrEvents.hpp"
@@ -458,8 +459,11 @@ JvmtiEnv::RetransformClasses(jint class_count, const jclass* classes) {
if (AllowEnhancedClassRedefinition) {
MutexLocker sd_mutex(EnhancedRedefineClasses_lock);
+ // Stop compilation to avoid compilator race condition (crashes) with advanced redefinition
+ CompileBroker::stopCompilationBeforeEnhancedRedefinition();
VM_EnhancedRedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_retransform);
VMThread::execute(&op);
+ CompileBroker::releaseCompilationAfterEnhancedRedefinition();
op_id = op.id();
error = (op.check_error());
} else {
@@ -489,8 +493,11 @@ JvmtiEnv::RedefineClasses(jint class_count, const jvmtiClassDefinition* class_de
if (AllowEnhancedClassRedefinition) {
MutexLocker sd_mutex(EnhancedRedefineClasses_lock);
+ // Stop compilation to avoid compilator race condition (crashes) with advanced redefinition
+ CompileBroker::stopCompilationBeforeEnhancedRedefinition();
VM_EnhancedRedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_redefine);
VMThread::execute(&op);
+ CompileBroker::releaseCompilationAfterEnhancedRedefinition();
op_id = op.id();
error = (op.check_error());
} else {
diff --git a/src/hotspot/share/runtime/mutexLocker.cpp b/src/hotspot/share/runtime/mutexLocker.cpp
index 83982382e6f..beb36ebc177 100644
--- a/src/hotspot/share/runtime/mutexLocker.cpp
+++ b/src/hotspot/share/runtime/mutexLocker.cpp
@@ -84,6 +84,7 @@ Mutex* Compile_lock = NULL;
Monitor* MethodCompileQueue_lock = NULL;
Monitor* CompileThread_lock = NULL;
Monitor* Compilation_lock = NULL;
+Monitor* DcevmCompilation_lock = NULL;
Mutex* CompileTaskAlloc_lock = NULL;
Mutex* CompileStatistics_lock = NULL;
Mutex* DirectivesStack_lock = NULL;
@@ -318,6 +319,8 @@ void mutex_init() {
def(Compilation_lock , PaddedMonitor, leaf, false, _safepoint_check_never);
}
+ def(DcevmCompilation_lock , PaddedMonitor, nonleaf+1, false, _safepoint_check_never);
+
#if INCLUDE_JFR
def(JfrMsg_lock , PaddedMonitor, leaf, true, _safepoint_check_always);
def(JfrBuffer_lock , PaddedMutex , leaf, true, _safepoint_check_never);
diff --git a/src/hotspot/share/runtime/mutexLocker.hpp b/src/hotspot/share/runtime/mutexLocker.hpp
index 65a6366bbfb..4333bd51464 100644
--- a/src/hotspot/share/runtime/mutexLocker.hpp
+++ b/src/hotspot/share/runtime/mutexLocker.hpp
@@ -80,6 +80,7 @@ extern Mutex* Compile_lock; // a lock held when Compilation
extern Monitor* MethodCompileQueue_lock; // a lock held when method compilations are enqueued, dequeued
extern Monitor* CompileThread_lock; // a lock held by compile threads during compilation system initialization
extern Monitor* Compilation_lock; // a lock used to pause compilation
+extern Monitor* DcevmCompilation_lock; // a lock used to pause compilation from dcevm
extern Mutex* CompileTaskAlloc_lock; // a lock held when CompileTasks are allocated
extern Mutex* CompileStatistics_lock; // a lock held when updating compilation statistics
extern Mutex* DirectivesStack_lock; // a lock held when mutating the dirstack and ref counting directives
--
2.23.0

View File

@@ -0,0 +1,111 @@
From c45eb681e77d16b7e873c8e4dbd19f98879a102a Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 6 Nov 2021 19:47:08 +0100
Subject: [PATCH 44/45] G1 fixes, code cleanup
---
src/hotspot/share/compiler/compileBroker.cpp | 2 ++
src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp | 4 +---
src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp | 4 ++++
src/hotspot/share/gc/shared/gcConfig.cpp | 6 +++---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 3 ++-
5 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/src/hotspot/share/compiler/compileBroker.cpp b/src/hotspot/share/compiler/compileBroker.cpp
index 878bc265d2f..d8275508f9b 100644
--- a/src/hotspot/share/compiler/compileBroker.cpp
+++ b/src/hotspot/share/compiler/compileBroker.cpp
@@ -2958,6 +2958,8 @@ void CompileBroker::print_heapinfo(outputStream* out, const char* function, size
}
void CompileBroker::stopCompilationBeforeEnhancedRedefinition() {
+ // There are hard to fix C1/C2 race conditions with dcevm. The easiest solution
+ // is to stop compilation.
if (AllowEnhancedClassRedefinition) {
MonitorLocker locker(DcevmCompilation_lock, Mutex::_no_safepoint_check_flag);
_compilation_stopped = true;
diff --git a/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp b/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
index 765630a9826..c5bffc9bc49 100644
--- a/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
@@ -140,7 +140,6 @@ void G1FullGCCompactTask::compact_region_dcevm(HeapRegion* hr, GrowableArray<Hea
hr->apply_to_marked_objects(collector()->mark_bitmap(), &compact);
// Once all objects have been moved the liveness information
// needs be cleared.
- collector()->mark_bitmap()->clear_region(hr);
if (G1VerifyBitmaps) {
collector()->mark_bitmap()->clear_region(hr);
}
@@ -150,8 +149,7 @@ void G1FullGCCompactTask::compact_region_dcevm(HeapRegion* hr, GrowableArray<Hea
void G1FullGCCompactTask::serial_compaction_dcevm() {
GCTraceTime(Debug, gc, phases) tm("Phase 4: Serial Compaction", collector()->scope()->timer());
- // compact remaining, not parallel compacted rescued oops using serial compact point
-
+ // Clear allocated resources at compact points now, since all rescued oops are copied to destination.
for (uint i = 0; i < collector()->workers(); i++) {
G1FullGCCompactionPoint* cp = collector()->compaction_point(i);
DcevmSharedGC::clear_rescued_objects_heap(cp->rescued_oops_values());
diff --git a/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp b/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
index 93c066383a1..aa199f57dd7 100644
--- a/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
@@ -146,6 +146,9 @@ bool G1FullGCPrepareTask::G1CalculatePointersClosure::should_compact(HeapRegion*
if (hr->is_pinned()) {
return false;
}
+ if (Universe::is_redefining_gc_run()) {
+ return true;
+ }
size_t live_words = _collector->live_words(hr->hrm_index());
size_t live_words_threshold = _collector->scope()->region_compaction_threshold();
// High live ratio region will not be compacted.
@@ -324,6 +327,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();
+ // what if old_obj > new_obj ?
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/gcConfig.cpp b/src/hotspot/share/gc/shared/gcConfig.cpp
index 8e78696bef5..f8365f94214 100644
--- a/src/hotspot/share/gc/shared/gcConfig.cpp
+++ b/src/hotspot/share/gc/shared/gcConfig.cpp
@@ -96,9 +96,9 @@ void GCConfig::fail_if_non_included_gc_is_selected() {
}
void GCConfig::select_gc_ergonomically() {
- if (AllowEnhancedClassRedefinition && !UseG1GC) {
- // (DCEVM) Enhanced class redefinition only supports serial GC at the moment
- FLAG_SET_ERGO(UseSerialGC, true);
+ if (AllowEnhancedClassRedefinition && !UseSerialGC) {
+ // (DCEVM) use G1 as default GC in Enhanced class redefinition
+ FLAG_SET_ERGO(UseG1GC, true);
} else if (os::is_server_class_machine()) {
#if INCLUDE_G1GC
FLAG_SET_ERGO_IF_DEFAULT(UseG1GC, true);
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 8615806ac98..32e0fcbe62b 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -385,7 +385,7 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
bool oop_updated = false;
if (obj->is_instance() && InstanceKlass::cast(obj->klass())->is_mirror_instance_klass()) {
Klass* klass = java_lang_Class::as_Klass(obj);
- if (klass != NULL && klass->is_instance_klass()) {
+ if (klass != NULL && klass->is_instance_klass() && klass->new_version() != NULL) {
assert(obj == InstanceKlass::cast(klass)->java_mirror(), "just checking");
if (klass->new_version() != NULL) {
obj = InstanceKlass::cast(klass->new_version())->java_mirror();
@@ -578,6 +578,7 @@ void VM_EnhancedRedefineClasses::doit() {
if (log_is_enabled(Info, redefine, class, timer)) {
_timer_heap_iterate.start();
}
+ // returns after the iteration is finished
G1CollectedHeap::heap()->object_par_iterate(&objectClosure);
_timer_heap_iterate.stop();
} else {
--
2.23.0

View File

@@ -0,0 +1,35 @@
From bb7c41e91326eaa90e25e02e13a2559adf41ae9e Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 8 Nov 2021 19:51:41 +0100
Subject: [PATCH 45/45] JBR-3867 - fix dcevm redefinition stops due the not
updated weak oops
Dcevm must update also oops in weak storage using WeakProcessor. Oops
storage is new concept in java17.
---
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 32e0fcbe62b..35dfc1a66d1 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -67,6 +67,7 @@
#include "gc/shared/dcevmSharedGC.hpp"
#include "gc/shared/scavengableNMethods.hpp"
#include "gc/shared/oopStorageSet.inline.hpp"
+#include "gc/shared/weakProcessor.hpp"
#include "ci/ciObjectFactory.hpp"
Array<Method*>* VM_EnhancedRedefineClasses::_old_methods = NULL;
@@ -250,6 +251,7 @@ void VM_EnhancedRedefineClasses::root_oops_do(OopClosure *oopClosure) {
Threads::oops_do(oopClosure, NULL);
OopStorageSet::strong_oops_do(oopClosure);
+ WeakProcessor::oops_do(oopClosure);
CodeBlobToOopClosure blobClosure(oopClosure, CodeBlobToOopClosure::FixRelocations);
CodeCache::blobs_do(&blobClosure);
--
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,142 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# 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
#
# 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)
#
# Environment variables:
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_win_x64
while getopts ":i?" o; do
case "${o}" in
i)
i="incremental build"
INC_BUILD=1
;;
esac
done
shift $((OPTIND-1))
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
WORK_DIR=$(pwd)
JCEF_PATH=${JCEF_PATH:=$WORK_DIR/jcef_win_x64}
source jb/project/tools/common/scripts/common.sh
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
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
;;
"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 [ -z "$bundle_type" ]; 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 [ -z "$bundle_type" ]; 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
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 bundle
modules=$(xargs < 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/\\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,62 @@
#!/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 modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > 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,58 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies udate release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the bundles without any additional modules (jcef)
# jcef - the bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# 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)
#
source jb/project/tools/common/scripts/common.sh
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
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 [ -z "$bundle_type" ]; 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

@@ -49,7 +49,8 @@ TARGETS += $(patsubst %, $(BUILDTOOLS_OUTPUTDIR)/gensrc/%/module-info.java, \
$(INTERIM_LANGTOOLS_MODULES))
$(eval $(call SetupCopyFiles, COPY_PREVIEW_FEATURES, \
FILES := $(TOPDIR)/src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java, \
FILES := $(TOPDIR)/src/java.base/share/classes/jdk/internal/javac/PreviewFeature.java \
$(TOPDIR)/src/java.base/share/classes/jdk/internal/javac/NoPreview.java, \
DEST := $(BUILDTOOLS_OUTPUTDIR)/gensrc/java.base.interim/jdk/internal/javac/, \
))

View File

@@ -52,94 +52,6 @@ $(eval $(call SetupJavaCompilation, BUILD_TOOLS_HOTSPOT, \
TARGETS += $(BUILD_TOOLS_HOTSPOT)
################################################################################
# Graal build tools
ifeq ($(INCLUDE_GRAAL), true)
VM_CI_SRC_DIR := $(TOPDIR)/src/jdk.internal.vm.ci/share/classes
SRC_DIR := $(TOPDIR)/src/jdk.internal.vm.compiler/share/classes
##############################################################################
# Compile the annotation processors
$(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_MATCH_PROCESSOR, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
SRC := \
$(SRC_DIR)/org.graalvm.compiler.processor/src \
$(SRC_DIR)/org.graalvm.compiler.core.match.processor/src \
, \
EXCLUDE_FILES := $(EXCLUDE_FILES), \
BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.match.processor, \
JAR := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.match.processor.jar, \
DISABLED_WARNINGS := options, \
))
TARGETS += $(BUILD_VM_COMPILER_MATCH_PROCESSOR)
##############################################################################
$(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_NODEINFO_PROCESSOR, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
SRC := \
$(SRC_DIR)/org.graalvm.compiler.processor/src \
$(SRC_DIR)/org.graalvm.compiler.nodeinfo.processor/src \
, \
BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.nodeinfo.processor, \
JAR := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.nodeinfo.processor.jar, \
DISABLED_WARNINGS := options, \
))
TARGETS += $(BUILD_VM_COMPILER_NODEINFO_PROCESSOR)
##############################################################################
$(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_OPTIONS_PROCESSOR, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
DISABLED_WARNINGS := options, \
SRC := \
$(SRC_DIR)/org.graalvm.compiler.processor/src \
$(SRC_DIR)/org.graalvm.compiler.options.processor/src \
, \
BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.options.processor, \
JAR := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.options.processor.jar, \
))
TARGETS += $(BUILD_VM_COMPILER_OPTIONS_PROCESSOR)
##############################################################################
$(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_REPLACEMENTS_PROCESSOR, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
SRC := \
$(SRC_DIR)/org.graalvm.compiler.processor/src \
$(SRC_DIR)/org.graalvm.compiler.replacements.processor/src \
, \
EXCLUDE_FILES := $(EXCLUDE_FILES), \
BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.replacements.verifier, \
JAR := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.replacements.verifier.jar, \
DISABLED_WARNINGS := options, \
))
TARGETS += $(BUILD_VM_COMPILER_REPLACEMENTS_PROCESSOR)
##############################################################################
$(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_SERVICEPROVIDER_PROCESSOR, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
SRC := \
$(SRC_DIR)/org.graalvm.compiler.processor/src \
$(SRC_DIR)/org.graalvm.compiler.serviceprovider.processor/src \
, \
EXCLUDE_FILES := $(EXCLUDE_FILES), \
BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.serviceprovider.processor, \
JAR := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.serviceprovider.processor.jar, \
DISABLED_WARNINGS := options, \
))
TARGETS += $(BUILD_VM_COMPILER_SERVICEPROVIDER_PROCESSOR)
##############################################################################
endif
all: $(TARGETS)
.PHONY: all

View File

@@ -213,12 +213,12 @@ endif
ifeq ($(call isTargetOs, windows), true)
ifeq ($(SHIP_DEBUG_SYMBOLS), )
JMOD_FLAGS += --exclude '**{_the.*,_*.marker,*.diz,*.pdb,*.map}'
JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.pdb,*.map}'
else
JMOD_FLAGS += --exclude '**{_the.*,_*.marker,*.diz,*.map}'
JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.map}'
endif
else
JMOD_FLAGS += --exclude '**{_the.*,_*.marker,*.diz,*.debuginfo,*.dSYM/**,*.dSYM}'
JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.debuginfo,*.dSYM/**,*.dSYM}'
endif
# Create jmods in the support dir and then move them into place to keep the

View File

@@ -154,13 +154,14 @@ COPYRIGHT_BOTTOM = \
<a href="$(REDISTRIBUTION_URL)">documentation redistribution policy</a>. \
$(DRAFT_MARKER_STR) <!-- Version $(VERSION_STRING) -->
JAVADOC_BOTTOM := \
# $1 - Optional "Other Versions" link
JAVADOC_BOTTOM = \
<a href="$(BUG_SUBMIT_URL)">Report a bug or suggest an enhancement</a><br> \
For further API reference and developer documentation see the \
<a href="$(JAVADOC_BASE_URL)" target="_blank">Java SE \
Documentation</a>, which contains more detailed, \
developer-targeted descriptions with conceptual overviews, definitions \
of terms, workarounds, and working code examples.<br> \
of terms, workarounds, and working code examples. $1<br> \
Java is a trademark or registered trademark of $(FULL_COMPANY_NAME) in \
the US and other countries.<br> \
$(call COPYRIGHT_BOTTOM, {@docroot}/../)
@@ -300,22 +301,21 @@ define SetupApiDocsGenerationBody
$1_OPTIONS += -Xdoclint/package:$$(call CommaList, $$(addprefix -, \
$$(JAVADOC_DISABLED_DOCLINT_PACKAGES)))
ifneq ($$($1_OTHER_VERSIONS), )
$1_LINKED_SHORT_NAME = <a href="$$($1_OTHER_VERSIONS)">$$($1_SHORT_NAME)</a>
else
$1_LINKED_SHORT_NAME = $$($1_SHORT_NAME)
endif
$1_DOC_TITLE := $$($1_LONG_NAME)<br>Version $$(VERSION_SPECIFICATION) API \
Specification
$1_WINDOW_TITLE := $$(subst &amp;,&,$$($1_SHORT_NAME))$$(DRAFT_MARKER_TITLE)
$1_HEADER_TITLE := <div $$(HEADER_STYLE)><strong>$$($1_LINKED_SHORT_NAME)</strong> \
$1_HEADER_TITLE := <div $$(HEADER_STYLE)><strong>$$($1_SHORT_NAME)</strong> \
$$(DRAFT_MARKER_STR)</div>
ifneq ($$($1_OTHER_VERSIONS), )
$1_JAVADOC_BOTTOM := $$(call JAVADOC_BOTTOM, <a href="$$($1_OTHER_VERSIONS)">Other versions.</a>)
else
$1_JAVADOC_BOTTOM := $$(call JAVADOC_BOTTOM, )
endif
$1_OPTIONS += -doctitle '$$($1_DOC_TITLE)'
$1_OPTIONS += -windowtitle '$$($1_WINDOW_TITLE)'
$1_OPTIONS += -header '$$($1_HEADER_TITLE)'
$1_OPTIONS += -bottom '$$(JAVADOC_BOTTOM)'
$1_OPTIONS += -bottom '$$($1_JAVADOC_BOTTOM)'
ifeq ($$(IS_DRAFT), true)
$1_OPTIONS += -top '$$(JAVADOC_TOP)'
endif
@@ -332,6 +332,12 @@ define SetupApiDocsGenerationBody
$$(eval $$(call create_overview_file,$1))
$1_OPTIONS += -overview $$($1_OVERVIEW)
# Add summary pages for new/deprecated APIs in recent releases
$1_OPTIONS += --since $(call CommaList, \
$(filter-out $(VERSION_DOCS_API_SINCE), \
$(call sequence, $(VERSION_DOCS_API_SINCE), $(VERSION_FEATURE))))
$1_OPTIONS += --since-label "New API since JDK $(VERSION_DOCS_API_SINCE)"
$$(foreach g, $$($1_GROUPS), \
$$(eval $1_OPTIONS += -group "$$($$g_GROUP_NAME)" "$$($$g_GROUP_MODULES)") \
)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -88,7 +88,10 @@ $(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST
$(CAT) $(LINK_OPT_DIR)/stderr $(JLI_TRACE_FILE) ; \
exit $$exitcode \
)
$(GREP) -v HelloClasslist $@.raw.2 > $@
$(GREP) -v HelloClasslist $@.raw.2 > $@.raw.3
$(FIXPATH) $(INTERIM_IMAGE_DIR)/bin/java \
-cp $(SUPPORT_OUTPUTDIR)/classlist.jar \
build.tools.classlist.SortClasslist $@.raw.3 > $@
# The jli trace is created by the same recipe as classlist. By declaring these
# dependencies, make will correctly rebuild both jli trace and classlist

80
make/JBRApi.gmk Normal file
View File

@@ -0,0 +1,80 @@
#
# 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_GENSRC_TEMPLATES := $(JBR_API_ROOT_DIR)/templates
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_GENSRC_SOURCES := $(call FindFiles, $(JBR_API_GENSRC_TEMPLATES))
JBR_API_GENSRC_FILES := $(foreach f, $(call FindFiles, $(JBR_API_GENSRC_TEMPLATES)/com), \
$(JBR_API_GENSRC_DIR)/$(call RelativePath, $f, $(JBR_API_GENSRC_TEMPLATES)))
JBR_API_SRC_FILES := $(call FindFiles, $(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) $(JBR_API_SRC_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) $(JBR_API_SRC_FILES), \
SRCS := $(JBR_API_GENSRC_DIR) $(JBR_API_SRC_DIR), \
JAR := $(JBR_API_OUTPUT_DIR)/jbr-api-sources.jar, \
SUFFIXES := .java, \
BIN := $(JBR_API_BIN_DIR), \
))
$(JBR_API_GENSRC_FILES): $(JBR_API_GENSRC_SOURCES) $(JBR_API_SRC_FILES) $(JBR_API_VERSION_PROPERTIES)
$(ECHO) Generating sources for JBR API
$(JAVA_CMD) $(JAVA_FLAGS_SMALL) "$(JBR_API_GENSRC_TEMPLATES)/Gensrc.java" \
"$(TOPDIR)/src" "$(JBR_API_OUTPUT_DIR)" "$(JBR_API_JBR_VERSION)"
jbr-api-check-version: $(JBR_API_GENSRC_FILES) $(JBR_API_SRC_FILES) $(JBR_API_VERSION_PROPERTIES)
$(JAVA_CMD) $(JAVA_FLAGS_SMALL) "$(JBR_API_GENSRC_TEMPLATES)/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_OUTPUT_DIR)/jbr-api.version`" > $(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

@@ -92,11 +92,8 @@ $(eval $(call SetupTarget, buildtools-modules, \
MAKEFILE := CompileModuleTools, \
))
# interim-langtools is needed by hotspot only when $(INCLUDE_GRAAL) is true
GRAAL_INTERIM_LANGTOOLS_true = interim-langtools
$(eval $(call SetupTarget, buildtools-hotspot, \
MAKEFILE := CompileToolsHotspot, \
DEPS := $(GRAAL_INTERIM_LANGTOOLS_$(INCLUDE_GRAAL)), \
))
################################################################################
@@ -327,7 +324,7 @@ $(eval $(call SetupTarget, vscode-project-ccls, \
# aren't built until after libjava and libjvm are available to link to.
$(eval $(call SetupTarget, demos-jdk, \
MAKEFILE := CompileDemos, \
DEPS := java.base-libs exploded-image, \
DEPS := java.base-libs exploded-image buildtools-jdk, \
))
$(eval $(call SetupTarget, test-image-demos-jdk, \
@@ -386,12 +383,12 @@ bootcycle-images:
$(eval $(call SetupTarget, zip-security, \
MAKEFILE := ZipSecurity, \
DEPS := java.base-java java.security.jgss-java java.security.jgss-libs, \
DEPS := buildtools-jdk java.base-java java.security.jgss-java java.security.jgss-libs, \
))
$(eval $(call SetupTarget, zip-source, \
MAKEFILE := ZipSource, \
DEPS := gensrc, \
DEPS := buildtools-jdk gensrc, \
))
$(eval $(call SetupTarget, jrtfs-jar, \
@@ -511,13 +508,13 @@ $(eval $(call SetupTarget, docs-jdk-index, \
$(eval $(call SetupTarget, docs-zip, \
MAKEFILE := Docs, \
TARGET := docs-zip, \
DEPS := docs-jdk, \
DEPS := docs-jdk buildtools-jdk, \
))
$(eval $(call SetupTarget, docs-specs-zip, \
MAKEFILE := Docs, \
TARGET := docs-specs-zip, \
DEPS := docs-jdk-specs, \
DEPS := docs-jdk-specs buildtools-jdk, \
))
$(eval $(call SetupTarget, update-build-docs, \
@@ -662,18 +659,6 @@ $(eval $(call SetupTarget, test-image-libtest-jtreg-native, \
DEPS := build-test-libtest-jtreg-native, \
))
$(eval $(call SetupTarget, build-test-hotspot-jtreg-graal, \
MAKEFILE := test/JtregGraalUnit, \
TARGET := build-test-hotspot-jtreg-graal, \
DEPS := exploded-image, \
))
$(eval $(call SetupTarget, test-image-hotspot-jtreg-graal, \
MAKEFILE := test/JtregGraalUnit, \
TARGET := test-image-hotspot-jtreg-graal, \
DEPS := build-test-hotspot-jtreg-graal, \
))
ifneq ($(GTEST_FRAMEWORK_SRC), )
$(eval $(call SetupTarget, test-image-hotspot-gtest, \
MAKEFILE := hotspot/test/GtestImage, \
@@ -872,23 +857,14 @@ else
# virtual target.
jdk.jdwp.agent-libs: jdk.jdwp.agent-gensrc
# jdk.jfr-gendata uses TOOL_JFR_GEN from buildtools-hotspot
jdk.jfr-gendata: buildtools-hotspot
# The swing beans need to have java base properly generated to avoid errors
# in javadoc. The X11 wrappers need the java.base include files to have been
# copied and processed.
java.desktop-gensrc-src: java.base-gensrc java.base-copy
# The annotation processing for jdk.internal.vm.compiler
# and jdk.internal.vm.compiler.management needs classes from the current JDK.
jdk.internal.vm.compiler-gensrc-src: $(addsuffix -java, \
$(call FindTransitiveDepsForModule, jdk.internal.vm.compiler))
jdk.internal.vm.compiler.management-gensrc-src: $(addsuffix -java, \
$(call FindTransitiveDepsForModule, jdk.internal.vm.compiler.management))
# For these modules, the gensrc step is generating a module-info.java.extra
# file to be processed by the gensrc-moduleinfo target.
jdk.internal.vm.compiler-gensrc-moduleinfo: jdk.internal.vm.compiler-gensrc-src
jdk.internal.vm.compiler.management-gensrc-moduleinfo: jdk.internal.vm.compiler.management-gensrc-src
jdk.jdeps-gendata: java
# The ct.sym generation uses all the moduleinfos as input
@@ -1176,10 +1152,6 @@ else
ifneq ($(GTEST_FRAMEWORK_SRC), )
test-image: test-image-hotspot-gtest
endif
ifeq ($(INCLUDE_GRAAL), true)
test-image: test-image-hotspot-jtreg-graal
endif
endif
ifeq ($(BUILD_FAILURE_HANDLER), true)
@@ -1353,6 +1325,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) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -46,7 +46,7 @@ endif
$(eval $(call ParseKeywordVariable, TEST_OPTS, \
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR JCOV JCOV_DIFF_CHANGESET, \
STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS AOT_MODULES, \
STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS, \
))
# Helper function to propagate TEST_OPTS values.
@@ -134,96 +134,6 @@ ifeq ($(GCOV_ENABLED), true)
JTREG_COV_OPTIONS += -e:GCOV_PREFIX="$(GCOV_OUTPUT_DIR)"
endif
################################################################################
# Optionally create AOT libraries for specified modules before running tests.
# Note, this could not be done during JDK build time.
################################################################################
# Parameter 1 is the name of the rule.
#
# Remaining parameters are named arguments.
# MODULE The module to generate a library for
# BIN Output directory in which to put the library
# VM_OPTIONS List of JVM arguments to use when creating library
# OPTIONS_VAR Name of variable to put AOT java options in
# PREREQS_VAR Name of variable to put all AOT prerequisite rule targets in
# for test rules to depend on
#
SetupAotModule = $(NamedParamsMacroTemplate)
define SetupAotModuleBody
$1_AOT_LIB := $$($1_BIN)/$$(call SHARED_LIBRARY,$$($1_MODULE))
$1_AOT_CCLIST := $$(wildcard $$(TOPDIR)/test/hotspot/jtreg/compiler/aot/scripts/$$($1_MODULE)-list.txt)
# Create jaotc flags.
# VM flags which don't affect AOT code generation are filtered out:
# -Xcomp, -XX:+-TieredCompilation
$1_JAOTC_OPTS := \
-J-Xmx4g --info \
$$(addprefix -J, $$(filter-out -Xcomp %TieredCompilation, $$($1_VM_OPTIONS))) \
$$(addprefix --compile-commands$(SPACE), $$($1_AOT_CCLIST)) \
--linker-path $$(LD_JAOTC) \
#
ifneq ($$(filter -ea, $$($1_VM_OPTIONS)), )
$1_JAOTC_OPTS += --compile-with-assertions
endif
ifneq ($$(filter -XX:+VerifyOops, $$($1_VM_OPTIONS)), )
$1_JAOTC_OPTS += -J-Dgraal.AOTVerifyOops=true
endif
$$($1_AOT_LIB): $$(JDK_UNDER_TEST)/release \
$$(call DependOnVariable, $1_JAOTC_OPTS) \
$$(call DependOnVariable, JDK_UNDER_TEST)
$$(call LogWarn, Generating $$(patsubst $$(OUTPUTDIR)/%, %, $$@))
$$(call MakeTargetDir)
$$(call ExecuteWithLog, $$@, \
$((COV_ENVIRONMENT) \
$$(FIXPATH) $$(JDK_UNDER_TEST)/bin/jaotc \
$$($1_JAOTC_OPTS) --output $$@ --module $$($1_MODULE) \
)
$$(call ExecuteWithLog, $$@.check, ( \
$$(FIXPATH) $$(JDK_UNDER_TEST)/bin/java \
$$($1_VM_OPTIONS) -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions \
-XX:+PrintAOT -XX:+UseAOTStrictLoading \
-XX:AOTLibrary=$$@ -version \
> $$@.verify-aot \
))
$1_AOT_OPTIONS += -XX:+UnlockExperimentalVMOptions
$1_AOT_OPTIONS += -XX:AOTLibrary=$$($1_AOT_LIB)
$1_AOT_TARGETS += $$($1_AOT_LIB)
endef
################################################################################
# Optionally create AOT libraries before running tests.
# Note, this could not be done during JDK build time.
################################################################################
# Parameter 1 is the name of the rule.
#
# Remaining parameters are named arguments.
# MODULES The modules to generate a library for
# VM_OPTIONS List of JVM arguments to use when creating libraries
#
# After calling this, the following variables are defined
# $1_AOT_OPTIONS List of all java options needed to use the AOT libraries
# $1_AOT_TARGETS List of all targets that the test rule will need to depend on
#
SetupAot = $(NamedParamsMacroTemplate)
define SetupAotBody
$$(info Running with AOTd libraries for $$($1_MODULES))
# Put aot libraries in a separate directory so they are not deleted between
# test runs and may be reused between make invocations.
$$(foreach m, $$($1_MODULES), \
$$(eval $$(call SetupAotModule, $1_$$m, \
MODULE := $$m, \
BIN := $$(TEST_SUPPORT_DIR)/aot/$1, \
VM_OPTIONS := $$($1_VM_OPTIONS), \
)) \
$$(eval $1_AOT_OPTIONS += $$($1_$$m_AOT_OPTIONS)) \
$$(eval $1_AOT_TARGETS += $$($1_$$m_AOT_TARGETS)) \
)
endef
################################################################################
# Setup global test running parameters
################################################################################
@@ -282,7 +192,6 @@ endif
$(eval $(call SetTestOpt,VM_OPTIONS,JTREG))
$(eval $(call SetTestOpt,JAVA_OPTIONS,JTREG))
$(eval $(call SetTestOpt,AOT_MODULES,JTREG))
$(eval $(call SetTestOpt,JOBS,JTREG))
$(eval $(call SetTestOpt,TIMEOUT_FACTOR,JTREG))
@@ -293,7 +202,7 @@ $(eval $(call ParseKeywordVariable, JTREG, \
TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM RUN_PROBLEM_LISTS \
RETRY_COUNT MAX_OUTPUT, \
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \
EXTRA_PROBLEM_LISTS AOT_MODULES LAUNCHER_OPTIONS, \
EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS, \
))
ifneq ($(JTREG), )
@@ -305,11 +214,10 @@ endif
$(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
$(eval $(call SetTestOpt,JAVA_OPTIONS,GTEST))
$(eval $(call SetTestOpt,AOT_MODULES,GTEST))
$(eval $(call ParseKeywordVariable, GTEST, \
SINGLE_KEYWORDS := REPEAT, \
STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS AOT_MODULES, \
STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS, \
))
ifneq ($(GTEST), )
@@ -350,8 +258,6 @@ langtools_JTREG_PROBLEM_LIST += $(TOPDIR)/test/langtools/ProblemList.txt
hotspot_JTREG_PROBLEM_LIST += $(TOPDIR)/test/hotspot/jtreg/ProblemList.txt
lib-test_JTREG_PROBLEM_LIST += $(TOPDIR)/test/lib-test/ProblemList.txt
langtools_JTREG_MAX_MEM := 768m
################################################################################
# Parse test selection
#
@@ -592,14 +498,7 @@ define SetupRunGtestTestBody
$1_GTEST_REPEAT :=--gtest_repeat=$$(GTEST_REPEAT)
endif
ifneq ($$(GTEST_AOT_MODULES), )
$$(eval $$(call SetupAot, $1, \
MODULES := $$(GTEST_AOT_MODULES), \
VM_OPTIONS := $$(GTEST_VM_OPTIONS) $$(GTEST_JAVA_OPTIONS), \
))
endif
run-test-$1: pre-run-test $$($1_AOT_TARGETS)
run-test-$1: pre-run-test
$$(call LogWarn)
$$(call LogWarn, Running test '$$($1_TEST)')
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
@@ -610,7 +509,7 @@ define SetupRunGtestTestBody
--gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
--gtest_catch_exceptions=0 \
$$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
$$(GTEST_JAVA_OPTIONS) $$($1_AOT_OPTIONS) \
$$(GTEST_JAVA_OPTIONS) \
> >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
@@ -821,7 +720,7 @@ define SetupRunJtregTestBody
# Convert JTREG_foo into $1_JTREG_foo with a suitable value.
$$(eval $$(call SetJtregValue,$1,JTREG_TEST_MODE,agentvm))
$$(eval $$(call SetJtregValue,$1,JTREG_ASSERT,true))
$$(eval $$(call SetJtregValue,$1,JTREG_MAX_MEM,512m))
$$(eval $$(call SetJtregValue,$1,JTREG_MAX_MEM,768m))
$$(eval $$(call SetJtregValue,$1,JTREG_NATIVEPATH))
$$(eval $$(call SetJtregValue,$1,JTREG_BASIC_OPTIONS))
$$(eval $$(call SetJtregValue,$1,JTREG_PROBLEM_LIST))
@@ -837,7 +736,7 @@ define SetupRunJtregTestBody
# Make sure MaxRAMPercentage is high enough to not cause OOM or swapping since
# we may end up with a lot of JVM's
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $$(EXPR) 25 / $$($1_JTREG_JOBS))
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $(AWK) 'BEGIN { print 25 / $$($1_JTREG_JOBS); }')
JTREG_TIMEOUT_FACTOR ?= 4
@@ -890,6 +789,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
@@ -917,7 +825,6 @@ define SetupRunJtregTestBody
endif
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_DIR=$(TEST_IMAGE_DIR)
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_GRAAL_DIR=$(TEST_IMAGE_DIR)/hotspot/jtreg/graal
ifneq ($$(JTREG_FAILURE_HANDLER_OPTIONS), )
$1_JTREG_LAUNCHER_OPTIONS += -Djava.library.path="$(JTREG_FAILURE_HANDLER_DIR)"
@@ -934,17 +841,6 @@ define SetupRunJtregTestBody
endif
endif
ifneq ($$(JTREG_AOT_MODULES), )
$$(eval $$(call SetupAot, $1, \
MODULES := $$(JTREG_AOT_MODULES), \
VM_OPTIONS := $$(JTREG_VM_OPTIONS) $$(JTREG_JAVA_OPTIONS), \
))
endif
ifneq ($$($1_AOT_OPTIONS), )
$1_JTREG_BASIC_OPTIONS += -vmoptions:"$$($1_AOT_OPTIONS)"
endif
clean-workdir-$1:
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
@@ -979,7 +875,7 @@ define SetupRunJtregTestBody
done
endif
run-test-$1: pre-run-test clean-workdir-$1 $$($1_AOT_TARGETS)
run-test-$1: pre-run-test clean-workdir-$1
$$(call LogWarn)
$$(call LogWarn, Running test '$$($1_TEST)')
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR) \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -222,25 +222,6 @@ ifeq ($(MEMORY_SIZE), )
MEMORY_SIZE := 1024
endif
# Setup LD for AOT support
ifneq ($(DEVKIT_HOME), )
ifeq ($(OPENJDK_TARGET_OS), windows)
LD_JAOTC := $(DEVKIT_HOME)/VC/bin/x64/link.exe
LIBRARY_PREFIX :=
SHARED_LIBRARY_SUFFIX := .dll
else ifeq ($(OPENJDK_TARGET_OS), linux)
LD_JAOTC := $(DEVKIT_HOME)/bin/ld
LIBRARY_PREFIX := lib
SHARED_LIBRARY_SUFFIX := .so
else ifeq ($(OPENJDK_TARGET_OS), macosx)
LD_JAOTC := $(DEVKIT_HOME)/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
LIBRARY_PREFIX := lib
SHARED_LIBRARY_SUFFIX := .dylib
endif
else
LD := ld
endif
ifneq ($(wildcard $(JDK_IMAGE_DIR)/template.xml), )
TEST_OPTS_JCOV := true
JCOV_IMAGE_DIR := $(JDK_IMAGE_DIR)
@@ -286,9 +267,6 @@ $(call CreateNewSpec, $(NEW_SPEC), \
OPENJDK_TARGET_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN), \
NUM_CORES := $(NUM_CORES), \
MEMORY_SIZE := $(MEMORY_SIZE), \
LD_JAOTC := $(LD_JAOTC), \
LIBRARY_PREFIX := $(LIBRARY_PREFIX), \
SHARED_LIBRARY_SUFFIX := $(SHARED_LIBRARY_SUFFIX), \
include $(TOPDIR)/make/RunTestsPrebuiltSpec.gmk, \
TEST_OPTS_JCOV := $(TEST_OPTS_JCOV), \
$(CUSTOM_NEW_SPEC_LINE), \

View File

@@ -80,6 +80,8 @@ TOOL_GENERATECACERTS = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_class
TOOL_GENERATEEMOJIDATA = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.generateemojidata.GenerateEmojiData
TOOL_MAKEZIPREPRODUCIBLE = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.makezipreproducible.MakeZipReproducible
# TODO: There are references to the jdwpgen.jar in jdk/make/netbeans/jdwpgen/build.xml
# and nbproject/project.properties in the same dir. Needs to be looked at.

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -94,11 +94,6 @@ AC_DEFUN_ONCE([BASIC_SETUP_PATHS],
# Locate the directory of this script.
AUTOCONF_DIR=$TOPDIR/make/autoconf
# Setup username (for use in adhoc version strings etc)
# Outer [ ] to quote m4.
[ USERNAME=`$ECHO "$USER" | $TR -d -c '[a-z][A-Z][0-9]'` ]
AC_SUBST(USERNAME)
])
###############################################################################

View File

@@ -356,6 +356,14 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
fi
AC_SUBST(IS_GNU_TIME)
# Check if it's GNU date
check_date=`$DATE --version 2>&1 | $GREP GNU`
if test "x$check_date" != x; then
IS_GNU_DATE=yes
else
IS_GNU_DATE=no
fi
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
UTIL_REQUIRE_PROGS(DSYMUTIL, dsymutil)
UTIL_REQUIRE_PROGS(MIG, mig)

View File

@@ -104,6 +104,10 @@ fi
# Test and fix cpu on macos-aarch64, uname -p reports arm, buildsys expects aarch64
echo $OUT | grep arm-apple-darwin > /dev/null 2> /dev/null
if test $? != 0; then
# The GNU version of uname may be on the PATH which reports arm64 instead
echo $OUT | grep arm64-apple-darwin > /dev/null 2> /dev/null
fi
if test $? = 0; then
if [ `uname -m` = arm64 ]; then
OUT=aarch64`echo $OUT | sed -e 's/[^-]*//'`

View File

@@ -217,6 +217,9 @@ JDKOPT_SETUP_CODE_COVERAGE
# AddressSanitizer
JDKOPT_SETUP_ADDRESS_SANITIZER
# UndefinedBehaviorSanitizer
JDKOPT_SETUP_UNDEFINED_BEHAVIOR_SANITIZER
###############################################################################
#
# Check dependencies for external and internal libraries.

View File

@@ -230,7 +230,7 @@ AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
DISABLE_FORTIFY_CFLAGS="-U_FORTIFY_SOURCE"
# ASan doesn't work well with _FORTIFY_SOURCE
# See https://github.com/google/sanitizers/wiki/AddressSanitizer#faq
if test "x$ASAN_ENABLED" = xyes; then
if test "x$ASAN_ENABLED" = xyes || test "x$USAN_ENABLED" = xyes; then
ENABLE_FORTIFY_CFLAGS="${DISABLE_FORTIFY_CFLAGS}"
else
ENABLE_FORTIFY_CFLAGS="-D_FORTIFY_SOURCE=2"
@@ -737,6 +737,15 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
$1_TOOLCHAIN_CFLAGS="${$1_GCC6_CFLAGS}"
$1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks"
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_DELETE_NULL_POINTER_CHECKS_CFLAG],
PREFIX: $3,
IF_FALSE: [
NO_DELETE_NULL_POINTER_CHECKS_CFLAG=
]
)
$1_TOOLCHAIN_CFLAGS="${NO_DELETE_NULL_POINTER_CHECKS_CFLAG}"
fi
if test "x$TOOLCHAIN_TYPE" = xmicrosoft && test "x$ENABLE_REPRODUCIBLE_BUILD" = xtrue; then

View File

@@ -108,13 +108,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
OS_LDFLAGS_JVM_ONLY="-Wl,-rpath,@loader_path/. -Wl,-rpath,@loader_path/.."
OS_LDFLAGS="-mmacosx-version-min=$MACOSX_VERSION_MIN"
fi
if test "x$OPENJDK_TARGET_OS" = xlinux; then
# Hotspot needs to link librt to get the clock_* functions.
# But once our supported minimum build and runtime platform
# has glibc 2.17, this can be removed as the functions are
# in libc.
OS_LDFLAGS_JVM_ONLY="-lrt"
fi
fi
# Setup debug level-dependent LDFLAGS

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