Compare commits

..

979 Commits

Author SHA1 Message Date
Alexey Ushakov
8da9af1a6a 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-04-05 22:20:03 +03:00
Alexey Ushakov
5adbbe95b0 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)
2021-04-05 22:20:03 +03:00
Dmitry Batrak
c290e47447 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-04-05 20:50:47 +03:00
Dmitry Batrak
cbff835ce2 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-04-05 20:47:04 +03:00
Dmitry Batrak
4a3f238ff9 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-04-05 20:42:55 +03:00
Dmitry Batrak
2f06bf998e 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-04-05 20:27:16 +03:00
Dmitry Batrak
2433dfbbb5 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-04-05 20:16:18 +03:00
Dmitry Batrak
14a15e6361 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-04-05 20:00:42 +03:00
Denis Konoplev
d644836571 8264143: Lanai: RenderPerfTest.BgrSwBlitImage has artefacts on apple M1
Check num of work items in compute shader.
2021-04-05 12:14:08 +03:00
Alexey Ushakov
e5c3a92617 8258788: incorrect response to change in window insets [lanai]
Dynamically change MTLLayer insets depending on FULL_WINDOW_CONTENT property. MTLLayer.h header cleanup.
2021-04-05 07:00:35 +03:00
Vitaly Provodin
e06ccd0d72 JRE-186 added regression test (Modal dialogs (Messages) shouldn't popup IDEA when another application is active)
(cherry picked from commit 236bd38d1b)
2021-04-05 07:00:35 +03:00
Vitaly Provodin
08de194d4b JRE-269 added regression (JLabel doesn't scale <code>text</code> HTML fragments.)
(cherry picked from commit 1f4ad38d23)
2021-04-05 07:00:35 +03:00
Alexey Ushakov
1be41ed5f7 JRE-307 Wrong dpi reported on Wayland
(cherry picked from commit 15693661cc)
2021-04-05 07:00:35 +03:00
Vitaly Provodin
32ae2d7806 JRE-392 added regression (Tip of the day is not hidden while another modal window is shown)
(cherry picked from commit c7b0ac686f)
2021-04-05 07:00:35 +03:00
Vitaly Provodin
c9807d83db JRE-394 added regression test (System getenv doesn't return env var set in JNI code)
(cherry picked from commit 3a7b3c67b0)
2021-04-05 07:00:35 +03:00
Vitaly Provodin
888a83bfcc JRE-401 added regression test (AppCode freezes during autocomplete and other operations)
(cherry picked from commit cb4453b1d1)
2021-04-05 07:00:35 +03:00
Vitaly Provodin
1f27dd544e JRE-422 added new regression test (AWTView deliverJavaMouseEvent leaks jEvent)
(cherry picked from commit 37dc13c603)
2021-04-05 07:00:34 +03:00
Vitaly Provodin
f377981871 JRE-430 added new regression test (Font fallback sometimes doesn't work in Swing text components)
(cherry picked from commit d04debc847)
2021-04-05 07:00:34 +03:00
Vitaly Provodin
6ba41a8dbe JRE-457 added new regression test (OGLTR_DisableGlyphModeState is slow)
(cherry picked from commit 3a43f4557f)
2021-04-05 07:00:34 +03:00
Vitaly Provodin
165a768976 JRE-458 added new regression test (Insufficient and inconsistent permissions on some files in Linux build)
(cherry picked from commit 82adbe9c25)
2021-04-05 07:00:34 +03:00
Vitaly Provodin
2254a14751 JRE-467 added new regression test (Wrong rendering of variation sequences)
(cherry picked from commit 0026095202)
2021-04-05 07:00:34 +03:00
Vitaly Provodin
5c4b10937d JRE-468 added new regression test (Idea freezes on project loading)
(cherry picked from commit 1ce8c3ce82)
2021-04-05 07:00:34 +03:00
Vitaly Provodin
a4e11660e8 JRE-501 added new regression test (Live resize is jerky for heavy java applications on Mac)
(cherry picked from commit c4a1277c1b)
2021-04-05 07:00:34 +03:00
Vitaly Provodin
1567889923 JRE-638 added new regression test (enable unlimited cryptographic policy by default)
(cherry picked from commit 4a14c6f15a)
2021-04-05 07:00:34 +03:00
Vitaly Provodin
5760b7ea66 JRE-705 added new regression test (Z-order of child windows is broken on Mac OS)
(cherry picked from commit 82cd480619)
2021-04-05 07:00:33 +03:00
Vitaly Provodin
68d56bd936 JRE-741 added new regression test (Modal dialog stays above other process windows)
(cherry picked from commit 9ea664c299)
2021-04-05 07:00:33 +03:00
Vitaly Provodin
a20c118ac3 JRE-624 CThreading isAppKit() fails to detect main app thread if it was renamed
(cherry picked from commit c8f248a936)
2021-04-05 07:00:33 +03:00
Alexey Ushakov
01176f2a8a IDEA-166173 IntelliJ freezes when returning from sleep
Fixed deadlock by removing unnecessary getScreenResolution call

(cherry picked from commit cec93cf1fd)
2021-04-05 07:00:33 +03:00
Alexey Ushakov
907731c9e8 Added missing fontconfig defines
(cherry picked from commit 2ac273a456)
2021-04-05 07:00:33 +03:00
Alexey Ushakov
ed6267cc3e 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-04-05 07:00:33 +03:00
Alexey Ushakov
f4d0d1551e JRE-43 Font.getFamily() does not work in headless mode
Removed unused code

(cherry picked from commit 5b523f049e)
2021-04-05 07:00:33 +03:00
Alexey Ushakov
8c289af435 JRE-43 Font.getFamily() does not work in headless mode
Bundled Droid fonts to fallback in headless mode

(cherry picked from commit 5b523f049e)
2021-04-05 07:00:33 +03:00
Alexey Ushakov
9e9a8168db 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-04-05 07:00:32 +03:00
Alexey Ushakov
30ba65795b 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-04-05 07:00:32 +03:00
Alexey Ushakov
0275f31704 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-04-05 07:00:32 +03:00
Alexey Ushakov
e2fd0f2ba0 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-04-05 07:00:32 +03:00
Alexey Ushakov
7c4636ad17 JRE-29 fontconfig lib crashes CLion on OSX
Disabled fontconfig usage on OSX

(cherry picked from commit 431e14429c)
2021-04-05 07:00:32 +03:00
Vitaly Provodin
7606725af6 exclude tests spontaneously creating windows during test execution 2021-04-05 07:00:32 +03:00
Alexey Ushakov
45f65e44e3 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-04-05 07:00:32 +03:00
Alexey Ushakov
14215a4e29 Added logging for freetypeScaler via env variable OPENJDK_LOG_FFS=yes
and for screen resolution in freetypeScaler

(cherry picked from commit 091d74a791)
2021-04-05 07:00:32 +03:00
Alexey Ushakov
1386fe58e4 JRE-34 IDE Crashes During Startup
Added validation of dpi settings coming from xserver

(cherry picked from commit b1c49c3b27)
2021-04-05 07:00:31 +03:00
Anton Tarasov
2c3c3840d7 Add build.gradle 2021-04-05 07:00:31 +03:00
Anton Tarasov
45ab99d8bb JBR-2031 [mac] jcef deadlocks with a11y on start
(cherry picked from commit 4f44b37f08)
2021-04-05 07:00:31 +03:00
Alexey Ushakov
a2547ac036 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-04-05 07:00:31 +03:00
Anton Tarasov
89e0d45d92 JBR-2019 provide getWindowHandle method for jcef
(cherry picked from commit 7ae706b629)
2021-04-05 07:00:31 +03:00
Anton Tarasov
ae18beedac Comment assertion (originally JRE-965)
The assert line crashes debug hotspot.

(cherry picked from commit a00074a86c)
2021-04-05 07:00:31 +03:00
Anton Tarasov
d5801672eb JBR-1976 [jcef] need mouse-transparent window on Windows
(cherry picked from commit b60fac96b4)
2021-04-05 07:00:31 +03:00
Anton Tarasov
6c6b8a5c2b JBR-1834 [linux] runtime hidpi switch is broken
(cherry picked from commit eaa04303a7)
2021-04-05 07:00:31 +03:00
Anton Tarasov
01cf93bf71 JBR-1824 export NSWindow::setIgnoresMouseEvents to java internal API
(cherry picked from commit 4399dc382c)
2021-04-05 07:00:30 +03:00
Anton Tarasov
ca912aa8d9 JBR-1802 com/sun/java/accessibility/util/8051626/Bug8051626.java: access denied ("java.lang.RuntimePermission" "getClassLoader")
(cherry picked from commit eae772aca9)
2021-04-05 07:00:30 +03:00
Anton Tarasov
aa64926d40 JBR-1795 Project opened from Welcome screen goes to backgound after loading
(cherry picked from commit 322526458a)
2021-04-05 07:00:30 +03:00
Anton Tarasov
84a263a7c3 JBR-1609 Jupyter Notebook eventually causes IDEA to become unresponsive on Mac OSX
(cherry picked from commit 8ae0be8eb6)
2021-04-05 07:00:30 +03:00
Anton Tarasov
185b651ee3 JBR-1786 Weird white border for IDE window
(cherry picked from commit 4b09614a0e)
2021-04-05 07:00:30 +03:00
Vyacheslav Moklev
c83be7b77e JBR-1552 Invalid screen bounds in full screen mode
Check is window is not in undecorated state

(cherry picked from commit 5547701e2c)
2021-04-05 07:00:30 +03:00
Vyacheslav Moklev
6a80d262af JBR-1509 Client area size is wrong in Borderless mode
Fix client area size

(cherry picked from commit 00d32e58dc)
2021-04-05 07:00:30 +03:00
Anton Tarasov
0f445dc1f2 JBR-1770 [windows] frame does not open as maximized
(cherry picked from commit d9dfc3c6c5)
2021-04-05 07:00:30 +03:00
Anton Tarasov
0bed2c77a4 JBR-1693 difficult to input Japanese text with "Fast" Key Repeat
(cherry picked from commit 12de3e287e)
2021-04-05 07:00:29 +03:00
Anton Tarasov
50b3b6bdaf JBR-1429 Scale is huge due to GDK_SCALE
(cherry picked from commit 1c3477df2e)
2021-04-05 07:00:29 +03:00
Anton Tarasov
7f315e89fb JBR-1669 IDE-managed HiDPI mode is broken
(cherry picked from commit 461b0b5cd4)
2021-04-05 07:00:29 +03:00
Anton Tarasov
ca63c27290 JBR-1650 propagate custom decoration title bar height to native
(cherry picked from commit f6fc65d014)
2021-04-05 07:00:29 +03:00
Anton Tarasov
f069a13a34 JBR-1629 Maximized window cut at the right and bottom
(cherry picked from commit 9e768377db)
2021-04-05 07:00:29 +03:00
Anton Tarasov
92cffbfbf2 JBR-1492 Not able to start Intellij Idea 2017.2.5 with modified vmoptions
(cherry picked from commit e7ca6db66b)
2021-04-05 07:00:29 +03:00
Anton Tarasov
df39394333 JBR-1427 pycharm jupyter preview stuck and no response when click on preview.
(cherry picked from commit 1746b04686)
2021-04-05 07:00:29 +03:00
Anton Tarasov
1d90d84589 IDEA-210154 Borderless UI: Top frame of IDEA window is blue
(cherry picked from commit 2dd4163bc4)
2021-04-05 07:00:29 +03:00
Anton Tarasov
4536948e8b JBR-1365 force IDE-managed HiDPI on Linux for fractional scales
(cherry picked from commit f092ff3962)
2021-04-05 07:00:28 +03:00
Anton Tarasov
31a7e80458 JBR-1351 Borderless UI: Bold frame around IDEA window appears on non-HiDPI display
(cherry picked from commit 06d35de069)
2021-04-05 07:00:28 +03:00
Anton Tarasov
ceb6adab4c JBR-1313 wrong insets for non-resizable custom-decorated frame
(cherry picked from commit 9179718cb6)
2021-04-05 07:00:28 +03:00
Anton Tarasov
261c521766 JBR-1293 do not modify client bounds when custom-decorated frame is set undecorated
(cherry picked from commit cb188edaab)
2021-04-05 07:00:28 +03:00
Anton Tarasov
b32bdb7dc2 JBR-1278 allow native border and shadow for custom decoration mode
(cherry picked from commit a879ad5739)
2021-04-05 07:00:28 +03:00
Anton Tarasov
b9c5207b87 JRE-1232 forwardport: JRE-1228 support custom frame decoration
(cherry picked from commit d2820524a1)
2021-04-05 07:00:28 +03:00
Anton Tarasov
a7c5aeb597 JRE-1162 [jdk11] support on-the-fly DPI change on linux
(cherry picked from commit c06c4c69d3)
2021-04-05 07:00:28 +03:00
Anton Tarasov
e61f337514 JRE-1142 [jdk11] hidpi is not detected since Ubuntu 18.04
(cherry picked from commit be4f8c0d9d)
2021-04-05 07:00:27 +03:00
Anton Tarasov
8eedbf7a4e JRE-1111 [JDK11] java/beans/Beans/TypoInBeanDescription.java crashes at libawt_xawt.so+0x4a30d
(cherry picked from commit b89e6aed0b)
2021-04-05 07:00:27 +03:00
Anton Tarasov
d13872d8f5 fix JNI_OnUnload definition
(cherry picked from the commit  3571e39071)

(cherry picked from commit 1019d8f0f2)
2021-04-05 07:00:27 +03:00
Anton Tarasov
8a83e4f749 JRE-981 IM workaround does not work anymore
forward port of 2d7c29b in JetBrains/jdk8u_jdk

(cherry picked from commit f3ccc53e02)
2021-04-05 07:00:27 +03:00
Anton Tarasov
279fd198c4 JRE-938 [windows] Frame.setMaximizedBounds not hidpi-aware
(cherry picked from commit cc97899923320e1fa17f5e44975c4a0f0ba51014)
(cherry picked from commit ccfe65be7f)
2021-04-05 07:00:27 +03:00
Anton Tarasov
a185bd1a51 JRE-907 macOS: add ability to check for scaled display mode
(cherry picked from commit e496262aa1)
2021-04-05 07:00:27 +03:00
Anton Tarasov
c9245423de JRE-934 Diff viewer errors are not visible on HiDPI Linux
(cherry picked from commit 641a09dd52)
2021-04-05 07:00:27 +03:00
Anton Tarasov
bb5dc68a2c [jdk9] HiDPI scale is not detected on some linux desktops
(cherry picked from commit 9279d80110)
2021-04-05 07:00:27 +03:00
Anton Tarasov
a2a411b0ea JRE-681 [windows] direct drawing into frame graphics may have wrong translate
(cherry picked from commit 6ea1d45fd1)
2021-04-05 07:00:26 +03:00
Anton Tarasov
9105bd777c Read org.gnome.desktop.interface/scaling-factor
(cherry picked from commit 277357ae73)
2021-04-05 07:00:26 +03:00
Anton Tarasov
21986f4f12 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-04-05 07:00:26 +03:00
Anton Tarasov
90c483591e Do not scale base font in HiDPI mode on Linux
(cherry picked from commit 6fb2c36529)
2021-04-05 07:00:26 +03:00
Anton Tarasov
08e7eb6409 Allow HiDPI mode on Linux
(cherry picked from commit 34234263fb)
2021-04-05 07:00:26 +03:00
Anton Tarasov
89e5d9bdd5 JRE-772 swing returns incorrect FRC when AA is off
(cherry picked from commit a161897d908aa10da6306c06452c5d6317fed2f0)
(cherry picked from commit 2bf5a7ca5c)
2021-04-05 07:00:26 +03:00
Anton Tarasov
8eacec5b85 JRE-729 [windows] unreasonable IME activity consumes CPU
(cherry picked from commit c3040dd1fe1bf6c03c746c76f685629fd0a8e670)
(cherry picked from commit ba22b31a49)
2021-04-05 07:00:26 +03:00
Anton Tarasov
b7e6a9f1cc JRE-711 Horizontal grey lines appear in every window in IntelliJ Idea
(cherry picked from commit 62000130d86e5831d81cfb24659386c6930f84cf)

(cherry picked from commit e2d1655703)
2021-04-05 07:00:26 +03:00
Anton Tarasov
8aafe4e296 JRE-681 [windows] direct drawing into frame graphics may have wrong translate
(cherry picked from commit ab6dee4c1fc453ad3cb5adb69fc243e550d184ae)

(cherry picked from commit 6ea1d45fd1)
2021-04-05 07:00:25 +03:00
Anton Tarasov
d4eed290c0 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-04-05 07:00:25 +03:00
Anton Tarasov
14ec44d46d JRE-616 [linux] notify when dpi correction factor is applied to fonts
(cherry picked from commit f57d41f3118bfd773c99ce32d58cfae16931be6a)
(cherry picked from commit 6246abc72f)
2021-04-05 07:00:25 +03:00
Anton Tarasov
30946a9780 JRE-612 [windows] icon in frame title is not dpi-aware
(cherry picked from commit dec04385177a2abb677add909d3b94f94c62a14e)

(cherry picked from commit 38466cbab0)
2021-04-05 07:00:25 +03:00
Anton Tarasov
bed3659406 JRE-604 [fps] frame's client area is one pixel beneath frame's borders
Adopted.

(cherry picked from commit ef2870ee38)
2021-04-05 07:00:25 +03:00
Anton Tarasov
9fc92cd62c JRE-596 [windows] popup positioning is broken with JRE-573
Adopted: moved to AwtWindow::Reshape

(cherry picked from commit c5cc28d85d)
2021-04-05 07:00:25 +03:00
Anton Tarasov
095e023690 JRE-577 Goland 18 displays out of memory
(cherry picked from commit 2daaf21e420d4af15d3b1bfeb3f896074bea1e61)

(cherry picked from commit 9ea2011948)
2021-04-05 07:00:25 +03:00
Anton Tarasov
52c6ff32ae JRE-573 [windows] window client area bounds mismatch
Apply only WmEraseBkgnd

(cherry picked from commit afa68f7ad6440303c6417be3f675b1c4644b6014)

(cherry picked from commit 0651b45e13)
2021-04-05 07:00:25 +03:00
Anton Tarasov
8c19236b0c JRE-489 -Dswing.bufferPerWindow is fractional scale unfriendly
(cherry picked from commit 5e183c397b)
2021-04-05 07:00:24 +03:00
Anton Tarasov
80a348f628 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-04-05 07:00:24 +03:00
Anton Tarasov
09c1c56183 JRE-382 Three AWT-tests become hanging starting since master-875
(cherry picked from commit 7d492101db8fcbb3d285fd8e9669f74b0e0fce8f)
(cherry picked from commit b965f85c1b)
2021-04-05 07:00:24 +03:00
Anton Tarasov
f8a5649658 JRE-373 [macos] nativeCreateNSWindow deadlocks with a11y
(cherry picked from commit 72c77a992bbf1b95b82ffc08cb2f4f3bc36b3657)

(cherry picked from commit aa09fa2c85)
2021-04-05 07:00:24 +03:00
Anton Tarasov
0c7f831612 IDEA-172422 Popup at the wrong place on the second monitor (new hidpi)
Adopted: moved to AwtWindow::Reshape

(cherry picked from commit 11a0911d65)
2021-04-05 07:00:24 +03:00
Anton Tarasov
65e1507291 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-04-05 07:00:24 +03:00
Anton Tarasov
646f29e06b JRE-269 JLabel doesn't scale <code>text</code> HTML fragments.
(cherry picked from commit 9ef72b6c3a477e4225f9b98e30fa9190613520e4)
(cherry picked from commit c17bc728ee)
2021-04-05 07:00:24 +03:00
Anton Tarasov
d7ccf5e0a8 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-04-05 07:00:24 +03:00
Anton Tarasov
f80d9a381c 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-04-05 07:00:23 +03:00
Anton Tarasov
7c1927c3da 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-04-05 07:00:23 +03:00
Anton Tarasov
1600f16975 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-04-05 07:00:23 +03:00
Anton Tarasov
6c7ad79e30 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-04-05 07:00:23 +03:00
Anton Tarasov
0fc462efdf JRE-119 [ask if ui scale is enabled natively]
(cherry picked from commit 801f45875fd8699edcbda5896210cec191062261)
(cherry picked from commit 20edebdefa)
2021-04-05 07:00:23 +03:00
Anton Tarasov
fb42e4a8b3 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-04-05 07:00:23 +03:00
Anton Tarasov
0bc34e301a IDEA-148854: AppCode crashes randomly every 15 mins or so
(cherry picked from commit 02f9a5fbb4924ff67c8a04c15e490acfcc750003)
(cherry picked from commit b8f4b4a9ed)
2021-04-05 07:00:23 +03:00
Vitaly Provodin
34bd60cae7 updated JTreg exclude list 2021-04-05 07:00:23 +03:00
Alexey Ushakov
9e887aaa49 Resolve merge compile problems on mac
(cherry picked from commit d1ed8ab118)
2021-04-05 07:00:22 +03:00
Anton Tarasov
1dcc5891d3 IDEA-152524 can't compile fontconfig changes on Windows
(cherry picked from commit 4c8351fecf)

(cherry picked from commit 5faebc73d5)
2021-04-05 07:00:22 +03:00
Alexey Ushakov
826eead3f1 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)
2021-04-05 07:00:22 +03:00
Vitaly Provodin
32b45ce3b9 JBR-2922 add JCEF to jbrsdk binaries
& fix a misprint in get_mods_list
2021-04-05 07:00:22 +03:00
Alexey Ushakov
8cc5ba025d JBR-2807: JDK15: update modules.list to resolve jbr build failure
removed nashorn modules
2021-04-05 07:00:22 +03:00
Vitaly Provodin
ccf0977702 JBR-2130 remove module jdk.pack 2021-04-05 07:00:22 +03:00
Vitaly Provodin
cb6bf2f908 JBR-2922 add JCEF to jbrsdk binaries
& fix a misprint in get_mods_list
2021-04-05 07:00:22 +03:00
Vitaly Provodin
56947a3ac3 JBR-2912 add JBR 15 builds with DCEVM 2021-04-05 07:00:22 +03:00
Vitaly Provodin
8556e00f3c JBR-2864 initial commit of DCEVM patches reworked for 15 2021-04-05 07:00:21 +03:00
Vitaly Provodin
ea530d2319 JBR-2812 remove --with-import-modules from configure for aarch64 2021-04-05 07:00:21 +03:00
Anton Tarasov
db4a61fbd6 JBR-2812 bundle jcef in jmod format instead of modular-sdk
Build test-image with non-jcef build target
2021-04-05 07:00:21 +03:00
Vitaly Provodin
1f605c945d JBR-2787 fix copying jcef files into jbr/jbrsdk binaries 2021-04-05 07:00:21 +03:00
Vitaly Provodin
597ed4c114 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-04-05 07:00:21 +03:00
Anton Tarasov
69a8b8c9ea JBR-2016 add jcef module and export packages to it
(cherry picked from commit cf997f71c6)
2021-04-05 07:00:21 +03:00
Vitaly Provodin
f465b5a4d6 JBR-2473 modify building scripts to add dcevm clauses, add git config to docker image
(cherry picked from commit 2620c62848)
2021-04-05 07:00:21 +03:00
Vitaly Provodin
5adf1e574f JBR-2473 add initial set of DCEVM patches
(cherry picked from commit c0c0a96cf4)
2021-04-05 07:00:20 +03:00
Vitaly Provodin
6b4c607644 JBR-2395 eliminate JavaFX from JBR 2021-04-05 07:00:20 +03:00
Vitaly Provodin
c09b81ad0b JBR-2409 fix prameters for configure 2021-04-05 07:00:20 +03:00
Vitaly Provodin
07988fe88a JDK14: exclude dependencies on jcef in x86, fastdebug builds 2021-04-05 07:00:20 +03:00
Vitaly Provodin
6bdf5368d7 JBR-2396 fix CONF names 2021-04-05 07:00:20 +03:00
Vitaly Provodin
566b936517 JBR-2394 replace --disable-debug-symbols with --with-native-debug-symbols=none 2021-04-05 07:00:20 +03:00
Vitaly Provodin
73bbc3a96a add exec permitions to configure 2021-04-05 07:00:20 +03:00
Vitaly Provodin
b8e1b734d7 split checkout before building JBR+JFX or JBR+JCEF on two separate commands 2021-04-05 07:00:20 +03:00
Vitaly Provodin
15eb9b1178 change BOOT_JDK, fix target names 2021-04-05 07:00:19 +03:00
Vitaly Provodin
fe132c5db8 JBR-2291 add vendor info into bundles 2021-04-05 07:00:19 +03:00
Vitaly Provodin
2dfb74bf94 JBR-2324 address new layout in mac jcef 80.0.4+g74f7b0c+chromium-80.0.3987.122 2021-04-05 07:00:19 +03:00
Vitaly Provodin
40a5896f6d JBR-2320 add jdk.attach module into JBR 2021-04-05 07:00:19 +03:00
Vitaly Provodin
0199b3099c JBR-2217 provide JCEF-only (no JavaFX) bundle for master/202 branches 2021-04-05 07:00:19 +03:00
Vitaly Provodin
47ef12f746 JBR-2212 add scripts for linux_x86, linux_aarch64, linux_x64_fastdebug, osx_fastdebug, windows_x86 2021-04-05 07:00:19 +03:00
Vitaly Provodin
03750f41c2 JBR-1643 fix intermittent fialures of Windows builds at make/Init.gmk:304
combine images and test-image into one make invocation
2021-04-05 07:00:19 +03:00
Vitaly Provodin
6c0b853ec1 JBR-2181 create two separate JBR bundles with JFX and JFX+JCEF 2021-04-05 07:00:19 +03:00
Vitaly Provodin
8c712859d4 JBR-2148 modify signapp&build scripts to match to the new layout 2021-04-05 07:00:18 +03:00
Vitaly Provodin
ea75793aea JBR-2084 modify scripts to sign Contents/MacOS/libjli.dylib as a a normal file 2021-04-05 07:00:18 +03:00
Vitaly Provodin
73f3f614fd JBR-1821 notarize JBR bundles as a standalone app 2021-04-05 07:00:18 +03:00
Vitaly Provodin
1331e73ed2 JBR-2162 move building scripts from TC to JBR repo 2021-04-05 07:00:18 +03:00
Anton Tarasov
f22f28c539 JBR-2016 add jcef module and export some sun.* packages to it 2021-04-05 07:00:18 +03:00
Vitaly Provodin
5379ef3652 JBR-2014 add jdk.hotspot.agent module to jbr 2021-04-05 07:00:18 +03:00
Vitaly Provodin
6a220c2e85 JBR-1286 add jdk.compiler into JBR 2021-04-05 07:00:18 +03:00
Vitaly Provodin
de543020cd JBR-1199 add JBR modules list for jlink 2021-04-05 07:00:18 +03:00
Vitaly Provodin
6895db9996 Update docker script to create jdk15 build env 2021-04-05 07:00:17 +03:00
Vitaly Provodin
c12c0c8355 JBR-3045 add pressing ESC to close the dialog after test completion
(cherry picked from commit 44d8b28b0b)
2021-04-05 07:00:17 +03:00
Vitaly Provodin
8ab5702690 JBR-3040 press the button END at the beggining in order to avoid text selection
(cherry picked from commit 1c2bf33db2)
2021-04-05 07:00:17 +03:00
Vitaly.Provodin
ae84ef4f14 updated JTreg exclude list 2021-04-05 07:00:17 +03:00
Jatin Bhateja
f084bd2f61 8262355: Support for AVX-512 opmask register allocation.
Reviewed-by: vlivanov, njian, kvn
2021-04-04 17:47:23 +00:00
Kim Barrett
078066695b 8254050: HotSpot Style Guide should permit using the "override" virtual specifier
Reviewed-by: dholmes, jrose, stuefe, tschatzl, dcubed, iklam, kvn
2021-04-04 04:24:37 +00:00
Daniel D. Daugherty
f259eeaf65 8264393: JDK-8258284 introduced dangling TLH race
Reviewed-by: dholmes, rehn, eosterlund
2021-04-03 19:06:34 +00:00
Daniel D. Daugherty
9b2232bc1f 8264123: add ThreadsList.is_valid() support
Reviewed-by: dholmes, eosterlund, rehn
2021-04-03 19:03:04 +00:00
Jonathan Gibbons
e8eda655bb 8264664: use text blocks in javac module tests
Reviewed-by: darcy
2021-04-03 01:18:00 +00:00
Doug Lea
cec66cf8ef 8264572: ForkJoinPool.getCommonPoolParallelism() reports always 1
Reviewed-by: alanb
2021-04-02 22:44:20 +00:00
Daniel D. Daugherty
9c283da175 8264662: ProblemList vmTestbase/jit/escape/AdaptiveBlocking/AdaptiveBlocking001/AdaptiveBlocking001.java on win-x64 with ZGC
Reviewed-by: hseigel
2021-04-02 21:32:54 +00:00
Jonathan Gibbons
eb0ac86dc6 8264655: Minor internal doc comment cleanup
Reviewed-by: prappo
2021-04-02 20:47:35 +00:00
Brian Burkhalter
3991b329b1 8264539: Improve failure message of java/nio/file/WatchService/SensitivityModifier.java
Reviewed-by: alanb
2021-04-02 19:53:18 +00:00
Daniel D. Daugherty
4133dedeef 8264658: ProblemList javax/swing/JInternalFrame/8146321/JInternalFrameIconTest.java on linux-x64
Reviewed-by: pbansal
2021-04-02 19:17:05 +00:00
Daniel D. Daugherty
220ddbd99e 8264657: ProblemList java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java on linux-x64
Reviewed-by: rriggs
2021-04-02 18:51:33 +00:00
Daniel D. Daugherty
d0f3cc92bc 8264656: ProblemList sun/security/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions.java on linux-x64
Reviewed-by: rriggs
2021-04-02 18:13:20 +00:00
Naoto Sato
6c145c4768 8264544: Case-insensitive comparison issue with supplementary characters.
Co-authored-by: Chris Johnson <chriswjohnson.jdk@gmail.com>
Reviewed-by: joehw, iris, alanb
2021-04-02 16:32:45 +00:00
Vladimir Ivanov
f60e81bf7b 8264548: Dependencies: ClassHierarchyWalker::is_witness() cleanups
Reviewed-by: kvn
2021-04-02 16:10:02 +00:00
Xue-Lei Andrew Fan
177bc84fe8 8264606: More comment for ECDH public key validation
Reviewed-by: wetmore
2021-04-02 15:23:23 +00:00
Coleen Phillimore
885916eda0 8262280: Incorrect exception handling for VMThread in class redefinition
Reviewed-by: hseigel
2021-04-02 13:05:15 +00:00
Xiaohong Gong
7d0a0bad7f 8264109: Add vectorized implementation for VectorMask.andNot()
Reviewed-by: psandoz, njian
2021-04-02 10:00:47 +00:00
Ningsheng Jian
0935eaa4b4 8264409: AArch64: generate better code for Vector API allTrue
Reviewed-by: adinn, pli
2021-04-02 09:31:20 +00:00
Christoph Göttschkes
4793557fa8 8264502: (fc) FileDispatcherImpl.setDirect0 might return uninitialized variable on some platforms
Reviewed-by: alanb, bpb, michaelm
2021-04-02 09:19:53 +00:00
Jie Fu
da643cdb20 8264526: javax/swing/text/html/parser/Parser/8078268/bug8078268.java timeout
Reviewed-by: serb
2021-04-02 08:25:26 +00:00
Joe Darcy
66d9961cbd 8205502: Make exception message from AnnotationInvocationHandler more informative
Reviewed-by: bpb, naoto, iris
2021-04-01 23:13:19 +00:00
Coleen Phillimore
5e59d28def 8262046: Clean up parallel class loading code and comments
Reviewed-by: lfoltan, iklam
2021-04-01 21:16:58 +00:00
Andy Herrick
04f24fe9ad 8264403: [macos]: App names containing '.' characters results in an error message when launching
Reviewed-by: asemenyuk
2021-04-01 20:39:38 +00:00
Joe Darcy
b953386de1 8264609: Number.{byteValue, shortValue} spec should use @implSpec
Reviewed-by: psandoz, bpb
2021-04-01 19:46:56 +00:00
Ioi Lam
5858399062 8264285: Clean the modification of ccstr JVM flags
Reviewed-by: dholmes, coleenp
2021-04-01 18:25:14 +00:00
Vladimir Kozlov
6e0da9961f 8263448: CTW: fatal error: meet not symmetric
Reviewed-by: roland
2021-04-01 17:03:14 +00:00
Joe Darcy
328e9514a8 8169629: Annotations with lambda expressions cause AnnotationFormatError
Reviewed-by: jfranck
2021-04-01 16:46:32 +00:00
Jie Fu
c04a743bd4 8264557: Incorrect copyright year for test/micro/org/openjdk/bench/java/lang/MathBench.java after JDK-8264054
Reviewed-by: neliasso
2021-04-01 15:12:22 +00:00
Coleen Phillimore
4b19771401 8264150: CDS dumping code calls TRAPS functions in VM thread
Reviewed-by: dholmes, iklam
2021-04-01 15:09:12 +00:00
Coleen Phillimore
1dc75e9ef5 8264538: Rename SystemDictionary::parse_stream
Reviewed-by: lfoltan, hseigel
2021-04-01 14:55:11 +00:00
Vladimir Ivanov
80681b5470 8264546: Dependencies: Context class is always an InstanceKlass
Reviewed-by: kvn
2021-04-01 12:56:19 +00:00
Jan Lahoda
fdfa1dda08 8264306: Non deterministic generation of java/lang/invoke/MemberName.class
Reviewed-by: shade, jfranck
2021-04-01 11:38:45 +00:00
Hui Shi
011f6d13ab 8264223: CodeHeap::verify fails extra_hops assertion in fastdebug test
Reviewed-by: lucy, shade
2021-04-01 10:43:45 +00:00
Prasanta Sadhukhan
0696fd0e81 8263496: MetalHighContrastTheme.getControlHighlight cleanup
Reviewed-by: azvegint
2021-04-01 07:35:17 +00:00
Andrey Turbanov
6cf109503a 8264484: Replace uses of StringBuffer with StringBuilder in jdk.hotspot.agent
Reviewed-by: kevinw, amenkov, ysuenaga
2021-04-01 07:22:41 +00:00
Alex Blewitt
d2df9a7df8 8264331: Use the blessed modifier order in jdk.compiler
Reviewed-by: vromero, iris, shade
2021-04-01 06:53:54 +00:00
Alexander Scherbatiy
0228734902 8262470: Printed GlyphVector outline with low DPI has bad quality on Windows
Reviewed-by: serb, psadhukhan
2021-04-01 06:45:20 +00:00
Tagir F. Valeev
3997c99e0a 8264222: Use switch expression in jshell where possible
Reviewed-by: briangoetz
2021-04-01 06:02:21 +00:00
Koichi Sakata
39f0b27a12 8176026: SA: Huge heap sizes cause a negative value to be displayed in the jhisto heap total
Reviewed-by: cjplummer, kevinw, ysuenaga
2021-04-01 04:10:15 +00:00
Yi Yang
de495df78d 8264413: Data is written to file header even if its CRC32 was calculated
Reviewed-by: ccheung, minqi
2021-04-01 02:07:48 +00:00
Sandhya Viswanathan
52d8a22943 8264054: Bad XMM performance on java.lang.MathBench.sqrtDouble
Co-authored-by: Eric Caspole <ecaspole@openjdk.org>
Co-authored-by: Charlie Hunt <huntch@openjdk.org>
Reviewed-by: neliasso, kvn, vlivanov
2021-04-01 00:34:00 +00:00
Sergey Bylokhov
16acfafb6b 8012229: [lcms] Improve performance of color conversion for images with alpha channel
Reviewed-by: azvegint
2021-03-31 23:02:55 +00:00
Your Name
cb70ab0cb9 8263235: sanity/client/SwingSet/src/ColorChooserDemoTest.java failed throwing java.lang.NoClassDefFoundError
Reviewed-by: psadhukhan, serb
2021-03-31 20:33:16 +00:00
Man Cao
e2ec997b55 8263551: Provide shared lock-free FIFO queue implementation
Create a generalized lock-free queue implementation based on G1DirtyCardQueueSet::Queue.

Reviewed-by: kbarrett, iwalulya
2021-03-31 18:29:37 +00:00
Stefan Karlsson
dec344709f 8264346: nullptr_t undefined in global namespace for clang+libstdc++
Reviewed-by: dholmes, kbarrett
2021-03-31 16:43:56 +00:00
Stefan Karlsson
0fa35728a7 8264489: Add more logging to LargeCopyWithMark.java
Reviewed-by: kbarrett, alanb, bpb
2021-03-31 16:43:14 +00:00
Alex Blewitt
f43d14a2ff 8264396: Use the blessed modifier order in jdk.internal.jvmstat
Reviewed-by: cjplummer, kevinw, shade
2021-03-31 16:42:14 +00:00
Eric Caspole
6225ae636e 8264466: Cut-paste error in InterfaceCalls JMH
Reviewed-by: shade, thartmann
2021-03-31 15:20:05 +00:00
Coleen Phillimore
40c3249160 8264149: BreakpointInfo::set allocates metaspace object in VM thread
Reviewed-by: dholmes, iklam
2021-03-31 12:43:03 +00:00
Albert Mingkun Yang
999c134884 8264417: ParallelCompactData::region_offset should not accept pointers outside the current region
Reviewed-by: tschatzl, iwalulya
2021-03-31 11:35:10 +00:00
Sebastian Stenzel
604b14c43d 8264112: (fs) Reorder methods/constructor/fields in UnixUserDefinedFileAttributeView.java
Reviewed-by: alanb
2021-03-31 10:37:02 +00:00
Martin Doerr
9061271b0b 8261957: [PPC64] Support for Concurrent Thread-Stack Processing
Reviewed-by: lucy, nradomski
2021-03-31 09:37:16 +00:00
Anton Kozlov
8a4a9117f5 8262894: [macos_aarch64] SIGBUS in Assembler::ld_st2
Co-authored-by: Mikael Vidstedt <mikael@openjdk.org>
Reviewed-by: dholmes, gziemski
2021-03-31 09:34:12 +00:00
Christian Hagedorn
ab6faa607b 8263582: WB_IsMethodCompilable ignores compiler directives
Reviewed-by: iveresov, kvn, neliasso
2021-03-31 06:33:45 +00:00
Yumin Qi
928fa5b5f9 8244540: Print more information with -XX:+PrintSharedArchiveAndExit
Reviewed-by: iklam, ccheung
2021-03-31 03:10:38 +00:00
Vladimir Kozlov
e073486ffe 8262093: java/util/concurrent/tck/JSR166TestCase.java failed "assert(false) failed: unexpected node"
Reviewed-by: thartmann
2021-03-31 01:16:06 +00:00
Joe Darcy
815248ab27 8264148: Update spec for exceptions retrofitted for exception chaining
Reviewed-by: rriggs, smarks
2021-03-30 19:59:59 +00:00
Brian Burkhalter
353807c5f1 8263898: (fs) Files.newOutputStream on the "NUL" special device throws FileSystemException: "nul: Incorrect function" (win)
Reviewed-by: jpai, alanb
2021-03-30 18:18:37 +00:00
Attila Szegedi
2bd80f94a1 8264326: Modernize javax.script.ScriptEngineManager and related classes' implementation
Reviewed-by: sundar
2021-03-30 18:13:39 +00:00
Attila Szegedi
b08d6383b9 8262503: Support records in Dynalink
Reviewed-by: sundar
2021-03-30 18:06:34 +00:00
Hui Shi
21e7402b04 8263707: C1 RangeCheckEliminator support constant array and NewMultiArray
Reviewed-by: thartmann, neliasso
2021-03-30 16:04:59 +00:00
Patricio Chilano Mateo
2ad6f2d9bc 8263896: Make not_suspended parameter from ObjectMonitor::exit() have default value
Reviewed-by: rehn, dcubed, dholmes
2021-03-30 15:00:38 +00:00
Yi Yang
b65219881d 8264429: Test runtime/cds/appcds/VerifyWithDefaultArchive.java assumes OpenJDK build
Reviewed-by: dcubed, shade
2021-03-30 14:45:55 +00:00
Stefan Karlsson
2c9365d79c 8264271: Avoid creating non_oop_word oops
Reviewed-by: kbarrett, pliden
2021-03-30 13:28:37 +00:00
Sebastian Stenzel
daeca3fff2 8262958: (fs) UnixUserDefinedFileAttributeView cleanup
Reviewed-by: alanb
2021-03-30 13:13:08 +00:00
Hannes Wallnöfer
af02883575 8264191: Javadoc search is broken in Internet Explorer
Reviewed-by: jjg
2021-03-30 12:21:49 +00:00
Harold Seigel
6e74c3ab94 8264193: Remove TRAPS parameters for modules and defaultmethods
Reviewed-by: lfoltan, ccheung, coleenp, dholmes
2021-03-30 12:19:13 +00:00
Zhengyu Gu
ee5e00b05f 8264279: Shenandoah: Missing handshake after JDK-8263427
Reviewed-by: shade
2021-03-30 11:43:39 +00:00
Zhengyu Gu
ac604a18c9 8264374: Shenandoah: Remove leftover parallel reference processing argument
Reviewed-by: shade
2021-03-30 11:42:46 +00:00
Eric Liu
f3726a8700 8264020: Optimize double negation elimination
Reviewed-by: thartmann, chagedorn
2021-03-30 09:57:19 +00:00
Nils Eliasson
4ffa41c3db 8263615: Cleanup tightly_coupled_allocation
Reviewed-by: kvn, thartmann
2021-03-30 09:22:40 +00:00
Kim Barrett
4ea6abfbd1 8264324: Simplify allocation list management in OopStorage::reduce_deferred_updates
Reviewed-by: tschatzl, ayang
2021-03-30 08:46:07 +00:00
Alex Blewitt
8735259f05 8264333: Use the blessed modifier order in jdk.jshell
Reviewed-by: iris, shade
2021-03-30 08:15:50 +00:00
Roland Westrelin
d2a63f259e 8264360: Loop strip mining verification fails with "should be on the backedge"
Reviewed-by: kvn, thartmann
2021-03-30 07:58:49 +00:00
Roland Westrelin
8100a20e98 8263971: C2 crashes with SIGFPE with -XX:+StressGCM and -XX:+StressIGVN
Reviewed-by: chagedorn, thartmann
2021-03-30 07:40:49 +00:00
Yi Yang
bcdf4694e0 8264337: VM crashed when -XX:+VerifySharedSpaces
Reviewed-by: minqi, ccheung, shade
2021-03-30 07:20:10 +00:00
Sergey Tsypanov
1a681fa743 8263560: Remove needless wrapping with BufferedInputStream
Reviewed-by: prr, alanb, dfuchs, serb
2021-03-30 06:47:54 +00:00
Tom Rodriguez
182b11c31a 8264016: [JVMCI] add some thread local fields for use by JVMCI
Reviewed-by: dholmes, iklam, coleenp
2021-03-30 04:26:56 +00:00
Roger Riggs
8cf1c62c34 8263754: HexFormat 'fromHex' methods should be static
Reviewed-by: redestad, naoto, chegar
2021-03-29 20:38:10 +00:00
Ziyi Luo
a5d7de2351 8263404: RsaPrivateKeySpec is always recognized as RSAPrivateCrtKeySpec in RSAKeyFactory.engineGetKeySpec
Co-authored-by: Greg Rubin <rubin@amazon.com>
Reviewed-by: valeriep
2021-03-29 20:14:47 +00:00
Alexey Semenyuk
128c0c97a5 8248418: jpackage fails to extract main class and version from app module linked in external runtime
Reviewed-by: herrick, almatvee
2021-03-29 19:51:39 +00:00
Alexander Zuev
fd45694c58 8264344: Outdated links in JavaComponentAccessibility.m
Reviewed-by: dmarkov, pbansal, trebari, azvegint
2021-03-29 17:03:24 +00:00
Jonathan Gibbons
f17ea9e66b 8262899: TestRedirectLinks fails
Reviewed-by: prappo
2021-03-29 16:12:49 +00:00
Erik Gahlin
963f1fc6de 8264309: JFR: Improve .jfc parser
Reviewed-by: mgronlun
2021-03-29 13:56:44 +00:00
Alex Blewitt
364cce1485 8264332: Use the blessed modifier order in jdk.charsets
Reviewed-by: alanb, shade
2021-03-29 13:32:55 +00:00
Andrey Turbanov
fbbd98ba53 8264029: Replace uses of StringBuffer with StringBuilder in java.base
Reviewed-by: shade
2021-03-29 13:31:25 +00:00
Stefan Karlsson
019080e470 8264268: Don't use oop types for derived pointers
Reviewed-by: jrose, kbarrett
2021-03-29 13:27:47 +00:00
Tobias Hartmann
3516c2650c 8263591: Two C2 compiler phases with the name "after matching"
Reviewed-by: neliasso, chagedorn
2021-03-29 12:41:09 +00:00
Tobias Hartmann
3caea470e1 8262739: String inflation C2 intrinsic prevents insertion of anti-dependencies
Reviewed-by: neliasso, chagedorn
2021-03-29 12:40:11 +00:00
Harold Seigel
19a6ac46ce 8264142: Remove TRAPS/THREAD parameters for verifier related functions
Reviewed-by: gziemski, coleenp, iklam, dholmes
2021-03-29 12:39:15 +00:00
Christian Hagedorn
aefc1560b5 8264179: [TESTBUG] Some compiler tests fail when running without C2
Reviewed-by: kvn, jiefu
2021-03-29 08:03:47 +00:00
Alex Blewitt
30b4b17ccb 8264334: Use the blessed modifier order in jdk.jpackage
Reviewed-by: herrick, shade
2021-03-29 08:01:42 +00:00
Aleksey Shipilev
8ee9a05d37 8259623: JfrTypeSet::_subsystem_callback is left dangling after use
Reviewed-by: mgronlun
2021-03-29 08:00:01 +00:00
Fei Yang
1f54ed07ad 8264096: slowdebug jvm crashes when StrInflatedCopy match rule is not supported
Co-authored-by: Yadong Wang <yadonn.wang@huawei.com>
Reviewed-by: thartmann
2021-03-29 07:45:49 +00:00
Xin Liu
447e0dfe6b 8263769: simplify PhaseMacroExpand::extract_call_projections()
Reviewed-by: vlivanov, thartmann
2021-03-29 06:39:07 +00:00
John Jiang
99b4bab366 8263188: JSSE should fail fast if there isn't supported signature algorithm
Reviewed-by: xuelei
2021-03-29 05:53:05 +00:00
Sergey Bylokhov
6678b01c57 8264328: Broken license in javax/swing/JComboBox/8072767/bug8072767.java
Reviewed-by: kizune, trebari, pbansal
2021-03-29 03:41:15 +00:00
Pengfei Li
2fa6a3c47c 8264006: Fix AOT library loading on CPUs with 256-byte dcache line
Reviewed-by: kvn, dholmes, aph
2021-03-29 01:09:43 +00:00
Xue-Lei Andrew Fan
c986457f82 8264329: Z cannot be 1 for Diffie-Hellman key agreement
Reviewed-by: wetmore
2021-03-28 20:37:26 +00:00
Yasumasa Suenaga
a209ed01ba 8263670: pmap and pstack in jhsdb do not work on debug server
Reviewed-by: cjplummer, sspitsyn
2021-03-27 11:15:17 +00:00
Jie Fu
38e0a58f6c 8264273: macOS: zero VM is broken due to no member named 'is_cpu_emulated' after JDK-8261966
Reviewed-by: iklam
2021-03-27 09:54:11 +00:00
Calvin Cheung
c9d2d024a3 8263632: Improve exception handling of APIs in classLoader.cpp
Reviewed-by: iklam, dholmes, coleenp
2021-03-26 21:29:53 +00:00
Alex Blewitt
59ed1fa28c 8264087: Use the blessed modifier order in jdk.jconsole
Reviewed-by: alanb, amenkov, redestad
2021-03-26 21:24:57 +00:00
Tom Rodriguez
054e0a4245 8264017: Correctly report inlined frame in JFR sampling
Reviewed-by: jbachorik, mgronlun
2021-03-26 20:20:24 +00:00
Vladimir Kempik
d6bb1537f3 8264240: [macos_aarch64] enable appcds support after JDK-8263002
Reviewed-by: erikj
2021-03-26 19:50:01 +00:00
Naoto Sato
7284f013ea 8262110: DST starts from incorrect time in 2038
8073446: TimeZone getOffset API does not  return a dst offset between years 2038-2137

Reviewed-by: rriggs
2021-03-26 17:13:49 +00:00
Albert Mingkun Yang
3a28dc8213 8264178: Unused method Threads::nmethods_do
Reviewed-by: coleenp, dholmes
2021-03-26 16:58:50 +00:00
Roland Westrelin
33c94ffc81 8263376: CTW (Shenandoah): assert(mems <= 1) failed: No node right after call if multiple mem projections
Reviewed-by: kvn, chagedorn
2021-03-26 16:49:26 +00:00
Sebastian Stenzel
4e74de4b2e 8264111: (fs) Leaking NativeBuffers in case of errors during UnixUserDefinedFileAttributeView.read/write
Reviewed-by: alanb
2021-03-26 14:56:52 +00:00
Andy Herrick
57115fa23d 8189198: Add "forRemoval = true" to Applet API deprecations
Reviewed-by: iris, almatvee, kcr, prr
2021-03-26 14:48:00 +00:00
Jie Fu
b8122d6e3b 8264220: jdk/javadoc/doclet/testRelatedPackages/TestRelatedPackages.java fails to compile
Reviewed-by: hannesw
2021-03-26 13:12:14 +00:00
Coleen Phillimore
507b690f88 8264126: Remove TRAPS/THREAD parameter for class loading functions
Reviewed-by: ccheung, iklam, dholmes
2021-03-26 13:11:34 +00:00
Prasanta Sadhukhan
f3eed05236 8263928: Add JAWT test files for mac
Reviewed-by: jdv
2021-03-26 11:30:29 +00:00
Prasanta Sadhukhan
4fbb7c24c2 8263472: Specification of JComponent::updateUI should document that the default implementation does nothing
Reviewed-by: aivanov, darcy
2021-03-26 11:29:33 +00:00
Alex Blewitt
e47dfb8e28 8264062: Use the blessed modifier order in jdk.jfr
Reviewed-by: mgronlun
2021-03-26 10:24:38 +00:00
Doug Simon
5a930c42de 8264135: UnsafeGetStableArrayElement should account for different JIT implementation details
Reviewed-by: vlivanov, never
2021-03-26 10:11:02 +00:00
Kim Barrett
bb354b9d1c 8264166: OopStorage should support specifying MEMFLAGS for allocations
Reviewed-by: tschatzl, stefank
2021-03-26 07:44:22 +00:00
Ioi Lam
41657b15ac 8261551: Remove special CDS handling in Metaspace::allocate
Reviewed-by: minqi, dholmes, stuefe
2021-03-26 03:37:14 +00:00
Igor Veresov
fe8ef3223d 8264151: ciMethod::ensure_method_data() should return false is loading resulted in empty state
Reviewed-by: dlong, kvn
2021-03-26 01:54:38 +00:00
Erik Gahlin
4e708e58dc 8260862: JFR: New configure command for the jfr tool
Reviewed-by: mgronlun
2021-03-25 20:43:16 +00:00
Joe Darcy
259319669c 8264161: BigDecimal#stripTrailingZeros can throw undocumented ArithmeticException
Reviewed-by: bpb
2021-03-25 20:42:34 +00:00
Alex Menkov
2a5e0dd360 8262081: vmTestbase/nsk/jdi/ThreadDeathRequest/addThreadFilter/addthreadfilter001/TestDescription.java failed with "ERROR: eventSet1.size() != 3 :: 2"
Reviewed-by: cjplummer, lmesnik, sspitsyn
2021-03-25 19:47:35 +00:00
Anthony Scarpino
374272fd13 8261502: ECDHKeyAgreement: Allows alternate ECPrivateKey impl and revised exception handling
Reviewed-by: jnimeh
2021-03-25 19:18:44 +00:00
Anton Kozlov
dbc9e4b50c 8253795: Implementation of JEP 391: macOS/AArch64 Port
8253816: Support macOS W^X
8253817: Support macOS Aarch64 ABI in Interpreter
8253818: Support macOS Aarch64 ABI for compiled wrappers
8253819: Implement os/cpu for macOS/AArch64
8253839: Update tests and JDK code for macOS/Aarch64
8254941: Implement Serviceability Agent for macOS/AArch64
8255776: Change build system for macOS/AArch64
8262903: [macos_aarch64] Thread::current() called on detached thread

Co-authored-by: Vladimir Kempik <vkempik@openjdk.org>
Co-authored-by: Bernhard Urban-Forster <burban@openjdk.org>
Co-authored-by: Ludovic Henry <luhenry@openjdk.org>
Co-authored-by: Monica Beckwith <mbeckwit@openjdk.org>
Reviewed-by: erikj, ihse, prr, cjplummer, stefank, gziemski, aph, mbeckwit, luhenry
2021-03-25 18:10:18 +00:00
Brian Burkhalter
b006f22f1f 4833719: (bf) Views of MappedByteBuffers are not MappedByteBuffers, and cannot be forced
Reviewed-by: adinn
2021-03-25 15:30:50 +00:00
Alexey Semenyuk
8307aa6dcb 8264165: jpackage BasicTest fails after JDK-8220266: Check help text contains plaform specific parameters
Reviewed-by: herrick, dcubed
2021-03-25 15:22:39 +00:00
Alexander Zvegintsev
c037e1edaf 8263454: com.apple.laf.AquaFileChooserUI ignores the result of String.trim()
Reviewed-by: serb, pbansal, kizune, trebari, psadhukhan
2021-03-25 13:49:57 +00:00
Coleen Phillimore
a1e717f13e 8264146: Make Mutex point to rather than embed _name
Reviewed-by: redestad, dholmes
2021-03-25 12:37:28 +00:00
Hannes Wallnöfer
f69afba527 8263300: add HtmlId for the block containing a class's description.
Reviewed-by: jjg
2021-03-25 08:59:29 +00:00
Hannes Wallnöfer
d82464f851 8263528: Make static page ids safe from collision with language elements
Reviewed-by: jjg
2021-03-25 08:56:49 +00:00
Thomas Stuefe
d602ae080b 8263884: Clean up os::is_allocatable() across Posix platforms
Reviewed-by: stefank
2021-03-25 08:54:05 +00:00
Hannes Wallnöfer
a9d287a667 8260388: Listing (sub)packages at package level of API documentation
Reviewed-by: jjg
2021-03-25 08:51:50 +00:00
Richard Reingruber
8120064dcc 8263781: C2: Cannot hoist independent load above arraycopy
Reviewed-by: thartmann, neliasso, kvn
2021-03-25 07:21:36 +00:00
Richard Reingruber
9689863ac0 8262295: C2: Out-of-Bounds Array Load from Clone Source
Reviewed-by: kvn, roland, neliasso, thartmann
2021-03-25 06:52:03 +00:00
Xue-Lei Andrew Fan
a678a38dd9 8263743: redundant lock in SSLSocketImpl
Reviewed-by: jnimeh
2021-03-25 05:16:37 +00:00
Prasanta Sadhukhan
3fcb499ce6 8263768: JFormattedTextField.AbstractFormatter.getDocumentFilter()/getNavigationFilter() spec doesn't mention what the default impls return and what does it mean
Reviewed-by: trebari, aivanov, azvegint, darcy
2021-03-25 04:08:07 +00:00
Prajwal Kumaraswamy
4155533258 8258753: StartTlsResponse.close() hangs due to synchronization issues
Reviewed-by: xuelei
2021-03-25 03:35:49 +00:00
Ningsheng Jian
3e18330a33 8264018: AArch64: NEON loadV2 and storeV2 addressing is wrong
Reviewed-by: adinn, aph
2021-03-25 01:57:03 +00:00
Jonathan Gibbons
0ff81682e6 8258957: DocLint: check for HTML start element at end of body
Reviewed-by: vromero
2021-03-24 23:58:16 +00:00
Alexey Semenyuk
3d7f91223e 8220266: add support for additional metadata in add/remove programs
Reviewed-by: herrick, almatvee
2021-03-24 23:21:14 +00:00
Sergey Bylokhov
37f494cafa 8260619: Add final modifier to several DataFlavor static fields
Reviewed-by: azvegint, kizune
2021-03-24 21:41:14 +00:00
Sergey Bylokhov
cfc9aa34fd 8264002: Delete outdated assumptions about ColorSpace initialization
Reviewed-by: azvegint
2021-03-24 21:31:32 +00:00
Stefan Johansson
623f0b6bc6 8262235: Remove unnecessary logic in hugetlbfs_sanity_check()
Reviewed-by: iwalulya, tschatzl
2021-03-24 20:28:04 +00:00
Jonathan Gibbons
1a13c9ef83 8263473: Update annotation terminology (2)
Reviewed-by: hannesw
2021-03-24 20:13:01 +00:00
Jonathan Gibbons
3e751a5a9c 8263198: javadoc HELP page
Reviewed-by: hannesw
2021-03-24 19:51:35 +00:00
Andy Herrick
5ca5962d8f 8259926: Error in jpackage sample usage in the help text
Reviewed-by: asemenyuk, almatvee, naoto
2021-03-24 16:36:02 +00:00
Andy Herrick
70d34017b5 8263887: Re-create default icons
Reviewed-by: almatvee, asemenyuk
2021-03-24 16:34:22 +00:00
Aleksei Voitylov
133a63b4a1 8263968: CDS: java/lang/ModuleLayer.EMPTY_LAYER should be singleton
Reviewed-by: iklam, dholmes, alanb, redestad
2021-03-24 16:32:36 +00:00
Thomas Schatzl
3aee5ad2dd 8264026: Remove dependency between free collection set and eagerly reclaim humongous object tasks
Reviewed-by: sjohanss, ayang
2021-03-24 16:00:39 +00:00
Andy Herrick
deda80f022 8264057: [redo] JDK-8248904: Add support to jpackage for the Mac App Store.
Co-authored-by: Erwin Morrhey <erwin.morrhey@gluonhq.com>
Reviewed-by: kcr, asemenyuk
2021-03-24 15:39:54 +00:00
Vladimir Kozlov
57c3f271d3 8263989: Cleanup in EA
Reviewed-by: vlivanov, neliasso
2021-03-24 15:31:13 +00:00
Gerard Ziemski
4d8e9860e2 8261966: macOS M1: report in hs_err log if we are running x86 code in emulation mode (Rosetta)
Reviewed-by: dcubed, mikael, dholmes
2021-03-24 15:18:39 +00:00
Coleen Phillimore
bc91596ca1 8264051: Remove unused TRAPS parameters from runtime functions
Reviewed-by: iklam, dholmes
2021-03-24 12:18:57 +00:00
Coleen Phillimore
5d7e93c86d 8264004: Don't use TRAPS if no exceptions are thrown
Reviewed-by: dholmes, iklam, hseigel, dcubed
2021-03-24 12:15:51 +00:00
Zhengyu Gu
9ee0b9a17b 8264052: Shenandoah: Backout 8263832
Reviewed-by: shade
2021-03-24 12:14:14 +00:00
Michael McMahon
e55aa41f57 8263899: HttpClient throws NPE in AuthenticationFilter when parsing www-authenticate head
Reviewed-by: dfuchs, chegar
2021-03-24 11:59:19 +00:00
Jan Lahoda
6c0fbf70e8 8254196: jshell infinite loops when startup script contains System.exit call
Reviewed-by: sundar
2021-03-24 10:34:31 +00:00
Stefan Karlsson
a79f095697 8263721: Unify oop casting
Reviewed-by: kbarrett, coleenp
2021-03-24 10:28:38 +00:00
Patrick Concannon
329697b02e 8263358: Update java.lang to use instanceof pattern variable
Reviewed-by: iris, chegar, mchung, dfuchs
2021-03-24 09:57:22 +00:00
Erik Gahlin
ae9af57bf6 8264001: JFR: Modernize implementation
Reviewed-by: mgronlun
2021-03-24 09:54:29 +00:00
Ian Graves
fad8484058 8263411: Convert jshell tool to use Stream.toList()
Reviewed-by: jlahoda
2021-03-24 09:31:54 +00:00
Jie Fu
06d46d6c0b 8264008: Incorrect metaspace statistics after JEP 387 when UseCompressedClassPointers is off
Reviewed-by: stuefe
2021-03-24 09:30:54 +00:00
Alex Blewitt
45e1bab87c 8264091: Use the blessed modifier order in java.logging
Reviewed-by: lancea, iris, shade
2021-03-24 07:25:32 +00:00
Aleksey Shipilev
cb776edfd7 8263981: java.awt.image.ComponentSampleModel equals/hashcode use numBands twice
Reviewed-by: serb, azvegint
2021-03-24 07:01:25 +00:00
Aleksey Shipilev
da512bf565 8264050: Remove unused field VM_HeapWalkOperation::_collecting_heap_roots
Reviewed-by: coleenp, tschatzl
2021-03-24 06:49:55 +00:00
Wang Huang
6e3a158a65 8263352: assert(use == polladr) failed: the use should be a safepoint polling
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Wu Yan <wuyan34@huawei.com>
Reviewed-by: kvn
2021-03-24 06:30:50 +00:00
Erik Gahlin
8d63bb6a60 8260565: JFR: Fix copyright header in tests
Reviewed-by: mseledtsov, mgronlun
2021-03-24 04:06:48 +00:00
Weijun Wang
0b2aa1b605 8263978: Clarify why 0 argument is ignored in SecureRandom::setSeed
Reviewed-by: valeriep
2021-03-23 22:23:37 +00:00
Andy Herrick
15bcf6d9f5 8264055: backout JDK-8248904 in order to resubmit with additional attribution.
Reviewed-by: kcr, asemenyuk
2021-03-23 21:45:40 +00:00
Kim Barrett
2425462a84 8263903: Use Cleaner instead of finalize to auto stop Timer thread
Reviewed-by: dholmes, alanb, bchristi, rriggs, mchung
2021-03-23 21:16:35 +00:00
Ioi Lam
35102cb03f 8263992: Remove dead code NativeLookup::base_library_lookup
Reviewed-by: coleenp, dholmes
2021-03-23 21:15:38 +00:00
Koichi Sakata
91d86e6ac1 8263572: Output from jstack mixed mode is misaligned
Reviewed-by: cjplummer, sspitsyn
2021-03-23 21:12:54 +00:00
Kim Barrett
47ef038977 8263905: Remove finalize methods for SocketInput/OutputStream
Reviewed-by: alanb, vtewari, dfuchs, mchung
2021-03-23 20:54:23 +00:00
Calvin Cheung
1c9817b0bc 8261479: CDS runtime code should check exceptions
Reviewed-by: minqi, dholmes, iklam
2021-03-23 19:05:50 +00:00
Albert Mingkun Yang
087c8bfb5f 8264041: Incorrect comments for ParallelCompactData::summarize_dense_prefix
Reviewed-by: tschatzl
2021-03-23 18:18:39 +00:00
Aleksey Shipilev
c087f3ed40 8263995: Incorrect double-checked locking in Types.arraySuperType()
Reviewed-by: mcimadamore, jlahoda
2021-03-23 17:48:19 +00:00
Brian Burkhalter
d7268fa3a6 8251942: PrintStream specification is not clear which flush method is automatically invoked
Reviewed-by: dfuchs, alanb
2021-03-23 16:06:21 +00:00
Brian Burkhalter
8fa34e4043 8241619: (fs) Files.newByteChannel(path, Set.of(CREATE_NEW, READ)) does not throw a FileAlreadyExistsException when the file exists
Reviewed-by: alanb
2021-03-23 16:03:59 +00:00
Albert Mingkun Yang
e9321cdc41 8263964: Redundant check in ObjectStartArray::object_starts_in_range
Reviewed-by: sjohanss, tschatzl
2021-03-23 13:40:48 +00:00
Michael McMahon
bd7a184b98 8263442: Potential bug in jdk.internal.net.http.common.Utils.CONTEXT_RESTRICTED
Reviewed-by: dfuchs
2021-03-23 13:25:56 +00:00
Andrey Turbanov
233536263e 8264032: Improve thread safety of Runtime.version()
Reviewed-by: shade, alanb
2021-03-23 13:21:44 +00:00
Prasanta Sadhukhan
8c1ab38ee2 8263766: Confusing specification of JEditorPaneAccessibleHypertextSupport constructor
Reviewed-by: azvegint, pbansal
2021-03-23 12:15:03 +00:00
Coleen Phillimore
5bc382fb7a 8263976: Remove block allocation from BasicHashtable
Reviewed-by: lfoltan, iklam
2021-03-23 12:11:26 +00:00
Lutz Schmidt
fbd57bd498 8263260: [s390] Support latest hardware (z14 and z15)
Reviewed-by: goetz, mdoerr
2021-03-23 11:50:16 +00:00
Coleen Phillimore
de2ff25687 8263974: Move SystemDictionary::verify_protection_domain
Reviewed-by: hseigel, lfoltan, dholmes
2021-03-23 11:35:55 +00:00
Daniel Fuchs
9dad857ede 8263080: Obsolete relationship in MulticastSocket API documentation.
Reviewed-by: alanb
2021-03-23 10:39:42 +00:00
Nick Gasson
851474a8b8 8263649: AArch64: update cas.m4 to match current AD file
Reviewed-by: aph
2021-03-23 10:20:56 +00:00
Roland Westrelin
fd3a33a856 8263189: C2: assert(!had_error) failed: bad dominance
Reviewed-by: kvn, thartmann
2021-03-23 08:15:47 +00:00
Jie Fu
7b81f8e34b 8263915: runtime/cds/appcds/MismatchedPathTriggerMemoryRelease.java fails when UseCompressedClassPointers is off
Reviewed-by: minqi
2021-03-23 07:51:58 +00:00
Nils Eliasson
2da882c0fa 8262465: Very long compilation times and high memory consumption in C2 debug builds
Reviewed-by: kvn, thartmann
2021-03-23 07:45:48 +00:00
Evgeny Nikitin
0b03d04792 8167015: compiler/codecache/jmx/PoolsIndependenceTest.java timeout
Reviewed-by: kvn, thartmann
2021-03-23 06:55:05 +00:00
Aleksey Shipilev
df01b15b8b 8263977: GTK L&F: Cleanup duplicate checks in GTKStyle and GTKLookAndFeel
Reviewed-by: serb, pbansal, kizune
2021-03-23 06:54:27 +00:00
Aleksey Shipilev
57d8f1d09c 8263985: BCEscapeAnalyzer::invoke checks target->is_loaded() twice
Reviewed-by: kvn, thartmann
2021-03-23 06:53:45 +00:00
Aleksey Shipilev
4ef7c67bc6 8263979: Cleanup duplicate check in Unicode.contains
Reviewed-by: prappo, alanb
2021-03-23 06:52:58 +00:00
Joe Wang
289d48ae32 8261673: Move javadoc for the lookup mechanism to module-info
Reviewed-by: lancea, naoto, iris
2021-03-23 06:52:03 +00:00
Marcus G K Williams
7b6efd3b86 8263904: compiler/intrinsics/bmi/verifycode/BzhiTestI2L.java fails on x86_32
Reviewed-by: kvn, thartmann
2021-03-23 06:51:12 +00:00
Sibabrata Sahoo
036ae0ea3e 8225438: javax/net/ssl/TLSCommon/TestSessionLocalPrincipal.java failed with Read timed out
Reviewed-by: xuelei, rhalade, hchao
2021-03-23 06:48:01 +00:00
Sibabrata Sahoo
5a51d70987 8247895: SHA1PRNGReseed.java is calling setSeed(0)
Reviewed-by: weijun, rhalade
2021-03-23 06:46:20 +00:00
Yasumasa Suenaga
b2a52ea516 8263342: Add --connect option to jhsdb hsdb/clhsdb
Reviewed-by: cjplummer, sspitsyn
2021-03-23 06:27:20 +00:00
Tom Rodriguez
6b4c654186 8263776: [JVMCI] add helper to perform Java upcalls
Reviewed-by: kvn
2021-03-23 05:48:20 +00:00
Jie Fu
b23228d152 8263914: CDS fails to find the default shared archive on x86_32
Reviewed-by: dholmes, iklam
2021-03-23 01:18:38 +00:00
Jie Fu
a5e7a890fe 8263904: compiler/intrinsics/bmi/verifycode/BzhiTestI2L.java fails on x86_32
Reviewed-by: kvn
2021-03-22 23:14:07 +00:00
Leonid Mesnik
f62b1008ed 8263895: Test nsk/jvmti/GetThreadGroupChildren/getthrdgrpchld001/getthrdgrpchld001.cpp uses incorrect indices
Reviewed-by: amenkov, kevinw
2021-03-22 17:56:54 +00:00
Vladimir Kozlov
f84b52b84d 8263897: compiler/c2/aarch64/TestVolatilesSerial.java failed with "java.lang.RuntimeException: Wrong method"
Reviewed-by: roland
2021-03-22 17:03:12 +00:00
Vladimir Kozlov
f08bf4b918 8263891: Changes for 8076985 missed the fix.
Reviewed-by: roland
2021-03-22 16:16:26 +00:00
Henry Jen
b2df51372f 8261785: Calling "main" method in anonymous nested class crashes the JVM
Reviewed-by: serb
2021-03-22 15:59:49 +00:00
Alexey Ivanov
840ab7bf0f 8263894: Convert defaultPrinter and printers fields to local variables
Reviewed-by: prr, azvegint, kizune
2021-03-22 15:54:51 +00:00
Jonathan Dowland
ba504fcee8 8187450: JNI local refs exceeds capacity warning in NetworkInterface::getAll
Reviewed-by: chegar, dfuchs, aph
2021-03-22 15:29:47 +00:00
Roger Riggs
0abbfb2fc5 8263729: [test] divert spurious output away from stream under test in ProcessBuilder Basic test
Reviewed-by: stuefe, iklam
2021-03-22 14:50:47 +00:00
Zhengyu Gu
6c2220e65d 8263861: Shenandoah: Remove unused member in ShenandoahGCStateResetter
Reviewed-by: shade
2021-03-22 13:51:52 +00:00
Alex Blewitt
5262d95b12 8263855: Use the blessed modifier order in java.management/naming
Reviewed-by: redestad, aefimov, dfuchs
2021-03-22 13:38:19 +00:00
Henri Tremblay
6f1bcb056a 8263593: Fix multiple typos in hsdis README
Reviewed-by: thartmann
2021-03-22 12:59:28 +00:00
Markus Grönlund
a9d2267f8d 8260589: Crash in JfrTraceIdLoadBarrier::load(_jclass*)
Co-authored-by: Denghui Dong <ddong@openjdk.org>
Reviewed-by: jbachorik, egahlin
2021-03-22 11:52:50 +00:00
Ajit Ghaisas
42104e5575 8263488: Verify CWarningWindow works with metal rendering pipeline
Reviewed-by: serb, pbansal, avu, kizune
2021-03-22 02:44:59 +00:00
casparcwang
5a7f22ab94 8263579: ZGC: Concurrent mark hangs with debug loglevel
Reviewed-by: pliden, ayang, eosterlund
2021-03-22 02:18:27 +00:00
Jie Fu
35cd9456b9 8263908: Build fails due to initialize_static_field_for_dump defined but not used after JDK-8263771
Reviewed-by: iklam, dholmes
2021-03-21 23:07:16 +00:00
David Holmes
cd45538b5e 8263771: Refactor javaClasses initialization code to isolate dumping code
Reviewed-by: coleenp, iklam
2021-03-21 00:42:16 +00:00
Alexander Zuev
118a49fc96 8263846: Bad JNI lookup getFocusOwner in accessibility code on Mac OS X
Reviewed-by: azvegint, prr
2021-03-20 17:58:28 +00:00
Weijun Wang
cb742f9560 8255255: Update Apache Santuario (XML Signature) to version 2.2.1
Reviewed-by: xuelei, mullan
2021-03-20 13:42:16 +00:00
Thomas Stuefe
d2c137d408 8263558: Possible NULL dereference in fast path arena free if ZapResourceArea is true
Reviewed-by: kbarrett, coleenp
2021-03-20 09:06:53 +00:00
Andrey Turbanov
ab66d6991d 8263138: Initialization of sun.font.SunFontManager.platformFontMap is not thread safe
Reviewed-by: aivanov, kizune, serb
2021-03-20 07:45:02 +00:00
Thomas Stuefe
5b8233ba0a 8263871: On sem_destroy() failing we should assert
Reviewed-by: dholmes
2021-03-20 05:51:04 +00:00
Naoto Sato
96e5c3f1e0 8263890: Broken links to Unicode.org
Reviewed-by: redestad, joehw, iris
2021-03-19 21:48:36 +00:00
Ioi Lam
4d9517d233 8263834: Work around gdb <incomplete type> for HashtableEntry
Reviewed-by: dholmes, stuefe, tschatzl, coleenp
2021-03-19 21:23:14 +00:00
Alex Blewitt
6fa6557d5e 8263825: Remove unused and commented out member from NTLMException
Reviewed-by: mullan, redestad
2021-03-19 21:07:03 +00:00
Alex Blewitt
77ebc11038 8263892: More modifier order fixes in java.base
Reviewed-by: naoto, iris, redestad
2021-03-19 21:06:24 +00:00
Alex Blewitt
80d3ea0261 8263885: Use the blessed modifier order in java.sql/rowset/transation.xa
Reviewed-by: redestad, lancea
2021-03-19 21:04:25 +00:00
Alex Menkov
6737135b14 8262083: vmTestbase/nsk/jvmti/SetEventNotificationMode/setnotif001/TestDescription.java failed with "No notification: event JVMTI_EVENT_FRAME_POP (61)"
Reviewed-by: lmesnik, cjplummer
2021-03-19 20:13:05 +00:00
Alex Menkov
57fc8e9b35 8262080: vmTestbase/nsk/jdi/Event/request/request001/TestDescription.java failed with "ERROR: new event is not ThreadStartEvent"
Reviewed-by: cjplummer, sspitsyn
2021-03-19 20:11:32 +00:00
Ian Graves
0b5216a922 8263545: Convert jpackage to use Stream.toList()
Reviewed-by: asemenyuk, almatvee
2021-03-19 19:51:21 +00:00
Chris Plummer
ed701ea687 8262271: SA: Add new stress test that tests getting the stack trace of an active thread
Reviewed-by: ysuenaga, sspitsyn
2021-03-19 19:20:11 +00:00
Chris Plummer
30da9bc3c0 8263546: Add "findsym" command to clhsdb.html help file
Reviewed-by: ysuenaga, lmesnik
2021-03-19 19:16:59 +00:00
Phil Race
d41f75120d 8247370: Clean up unused printing code in awt_PrintJob.cpp
Reviewed-by: serb, psadhukhan
2021-03-19 18:12:46 +00:00
Alex Blewitt
b49c589340 8263658: Use the blessed modifier order in java.base
Reviewed-by: rriggs, redestad
2021-03-19 13:06:58 +00:00
Albert Mingkun Yang
1572f3ccdd 8263852: Unused method SoftRefPolicy::use_should_clear_all_soft_refs
Reviewed-by: tschatzl
2021-03-19 12:13:59 +00:00
Claes Redestad
57497ab0ca 8263821: Remove unused MethodTypeForm canonicalization codes
Reviewed-by: mchung
2021-03-19 10:52:13 +00:00
Chris Hegarty
4d51a82ba8 8263818: Release JNI local references in get/set-InetXXAddress-member helper functions of net_util.c
Reviewed-by: alanb
2021-03-19 10:46:05 +00:00
Nils Eliasson
701fd9da08 8262476: Add filter to speed up CompileCommand lookup
Reviewed-by: kvn, thartmann
2021-03-19 09:10:09 +00:00
Christoph Göttschkes
454af8719e 8263185: Mallinfo deprecated in glibc 2.33
Reviewed-by: stuefe, dholmes
2021-03-19 08:58:36 +00:00
Prasanta Sadhukhan
d24e4cfef3 8263481: Specification of JComponent::setDefaultLocale doesn't mention that passing 'null' restores VM's default locale
Reviewed-by: aivanov
2021-03-19 04:28:39 +00:00
Sergey Bylokhov
1a21f77971 8263482: Make access to the ICC color profiles data multithread-friendly
Reviewed-by: azvegint
2021-03-19 02:48:30 +00:00
Zhengyu Gu
d185655c27 8263832: Shenandoah: Fixing parallel thread iteration in final mark task
Reviewed-by: rkennke
2021-03-19 00:20:18 +00:00
Valerie Peng
434a399bea 8260274: Cipher.init(int, key) does not use highest priority provider for random bytes
Reviewed-by: ascarpino, xuelei
2021-03-18 23:23:19 +00:00
Bradford Wetmore
6aa28b3bdb 8263827: Suspend "missing" javadoc doclint checks for smartcardio
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Reviewed-by: erikj
2021-03-18 22:31:01 +00:00
Phil Race
ed1e25d548 8263833: Stop disabling warnings for sunFont.c with gcc
Reviewed-by: erikj
2021-03-18 21:52:33 +00:00
Roger Riggs
788e30c154 8263320: [test] Add Object Stream Formatter to work with test utility HexPrinter
Reviewed-by: chegar
2021-03-18 21:26:46 +00:00
Brian Burkhalter
fa0f1614ff 8263742: (bf) MappedByteBuffer.force() should use the capacity as its upper bound
Reviewed-by: adinn, alanb
2021-03-18 21:12:33 +00:00
Alex Menkov
c82a673cf6 8262001: java/lang/management/ThreadMXBean/ResetPeakThreadCount.java failed with "RuntimeException: Current Peak = 14 Expected to be == previous peak = 7 + 8"
Reviewed-by: dfuchs, sspitsyn
2021-03-18 20:10:26 +00:00
Sergey Bylokhov
01ddf3d280 8263622: The java.awt.color.ICC_Profile#setData invert the order of bytes for the "head" tag
Reviewed-by: azvegint
2021-03-18 20:07:34 +00:00
Coleen Phillimore
e34f766b7e 8252723: Run stack016.java also with C2-only
Reviewed-by: mseledtsov, iklam
2021-03-18 20:00:55 +00:00
Phil Race
2173feddb5 8263439: getSupportedAttributeValues() throws NPE for Finishings attribute
Reviewed-by: psadhukhan, azvegint
2021-03-18 20:00:11 +00:00
Alexander Zuev
e543a50098 8261352: Create implementation for component peer for all the components who should be ignored in a11y interactions
Reviewed-by: serb
2021-03-18 19:50:20 +00:00
Alex Blewitt
21db0f6768 8263659: Reflow GTestResultParser for better readability
Reviewed-by: shade, iignatyev
2021-03-18 16:41:49 +00:00
Igor Ignatyev
e333b6e153 8246494: introduce vm.flagless at-requires property
Reviewed-by: mseledtsov, sspitsyn
2021-03-18 15:34:58 +00:00
Hamlin Li
8c8d1b31f0 8263495: Gather liveness info in the mark phase of G1 full gc
Co-authored-by: Shoubing Ma <mashoubing1@huawei.com>
Reviewed-by: tschatzl, sjohanss, ayang
2021-03-18 14:14:52 +00:00
Alexey Ivanov
a85dc557b3 8263311: Watch registry changes for remote printers update instead of polling
Reviewed-by: psadhukhan, serb
2021-03-18 13:26:22 +00:00
Yi Yang
3f31a6baa9 8263775: C2: igv_print() crash unexpectedly when called from debugger
Reviewed-by: chagedorn
2021-03-18 13:07:57 +00:00
Claes Redestad
63eae8fac2 8260605: Various java.lang.invoke cleanups
Reviewed-by: mchung
2021-03-18 12:47:57 +00:00
Jan Lahoda
9cd21b687e 8263590: Rawtypes warnings should be produced for pattern matching in instanceof
Reviewed-by: mcimadamore
2021-03-18 12:37:20 +00:00
Jamsheed Mohammed C M
ff52f2989f 8260716: Assert in MacroAssembler::clear_mem with -XX:-IdealizeClearArrayNode
Reviewed-by: kvn, thartmann
2021-03-18 09:22:17 +00:00
Stefan Karlsson
72b82fd7be 8263725: JFR oldobject tests are not run when GCs are specified explicitly
Reviewed-by: tschatzl, mgronlun
2021-03-18 06:52:48 +00:00
Thomas Stuefe
444a80b920 8263455: NMT: assert on registering a region which completely engulfs an existing region
Reviewed-by: zgu, coleenp
2021-03-18 04:47:43 +00:00
Ioi Lam
2b93ae0019 8261480: MetaspaceShared::preload_and_dump should check exceptions
Reviewed-by: dholmes, ccheung
2021-03-18 04:15:58 +00:00
Fei Yang
81ba5784ba 8263676: AArch64: one potential bug in C1 LIRGenerator::generate_address()
Reviewed-by: adinn
2021-03-18 02:26:44 +00:00
Jaikiran Pai
9225a23023 8263108: Class initialization deadlock in java.lang.constant
Reviewed-by: vtewari, plevart, chegar
2021-03-18 01:45:07 +00:00
Chris Plummer
5d5813a5d3 8263757: Remove serviceability/sa/ClhsdClasses.java from ZGC problem list
Reviewed-by: dcubed
2021-03-17 23:25:04 +00:00
Chris Plummer
50ff0d4dd4 8263756: Fix ZGC ProblemList entry for serviceability/sa/ClhsdbSymbol.java
Reviewed-by: dcubed
2021-03-17 22:03:32 +00:00
Joe Darcy
99b39aadbd 8262807: Note assumptions of core reflection modeling and parameter handling
Reviewed-by: rriggs
2021-03-17 21:58:48 +00:00
Joe Darcy
26234b5333 8254979: Class.getSimpleName() returns non-empty for lambda and method
Reviewed-by: rriggs, mchung
2021-03-17 20:24:51 +00:00
Vladimir Kozlov
83a49ef845 8263753: two new tests from JDK-8261671 fail with "Error. can not find ClassFileInstaller in test directory or libraries"
Reviewed-by: dcubed
2021-03-17 20:00:31 +00:00
Joe Darcy
24afa36d5c 8263726: divideToIntegralValue typo on BigDecimal documentation
Reviewed-by: bpb
2021-03-17 16:58:20 +00:00
Nils Eliasson
cdf78e47c4 8262298: G1BarrierSetC2::step_over_gc_barrier fails with assert "bad barrier shape"
Reviewed-by: kvn, vlivanov
2021-03-17 16:31:23 +00:00
Zhengyu Gu
7674da4379 8262398: Shenandoah: Disable nmethod barrier and stack watermark when running with passive mode
Reviewed-by: rkennke, shade
2021-03-17 16:19:59 +00:00
Marcus G K Williams
4f4ca0e705 8261671: X86 I2L conversion can be skipped for certain masked positive values
Reviewed-by: kvn, neliasso, vlivanov
2021-03-17 16:19:06 +00:00
Nils Eliasson
5d87a21991 8263361: Incorrect arraycopy stub selected by C2 for SATB collectors
Reviewed-by: eosterlund, vlivanov
2021-03-17 16:02:28 +00:00
Claes Redestad
e152cc0312 8263677: Improve Character.isLowerCase/isUpperCase lookups
Reviewed-by: erikj, ihse, naoto, rriggs
2021-03-17 15:22:06 +00:00
Daniel D. Daugherty
b63b5d4c4b 8263732: ProblemList serviceability/sa/ClhsdbSymbol.java on ZGC
Reviewed-by: ysuenaga
2021-03-17 15:13:21 +00:00
Sergey Tsypanov
000012a3b0 8148937: (str) Adapt StringJoiner for Compact Strings
Reviewed-by: redestad, chegar
2021-03-17 13:34:58 +00:00
Albert Mingkun Yang
a707fcb515 8263723: [BACKOUT] MoveAndUpdateClosure::do_addr calls function with side-effects in an assert
Reviewed-by: tschatzl
2021-03-17 13:19:12 +00:00
Robin Westberg
86e9cd989d 8263667: Avoid running GitHub actions on branches named pr/*
Reviewed-by: ehelin, erikj, ihse
2021-03-17 12:46:05 +00:00
Jan Lahoda
41276eb83a 8259863: doc: JShell snippet doesn't compile
Reviewed-by: sundar
2021-03-17 12:36:24 +00:00
Aleksey Shipilev
f9f2eef91d 8263434: Dangling references after MethodComparator::methods_EMCP
Reviewed-by: coleenp, sspitsyn
2021-03-17 10:58:35 +00:00
Pavel Rappo
23fc2a4d97 8263688: Coordinate equals, hashCode and compareTo of JavacFileManager.PathAndContainer
Reviewed-by: vromero
2021-03-17 10:32:50 +00:00
Roland Westrelin
d1baed677e 8263672: fatal error: no reachable node should have no use
Reviewed-by: vlivanov, thartmann
2021-03-17 08:52:14 +00:00
Vipin Sharma
086a66a0cd 8261095: Add test for clhsdb "symbol" command
Reviewed-by: cjplummer, ysuenaga
2021-03-17 08:30:53 +00:00
Prasanta Sadhukhan
ec95a5c62a 8263410: ListModel javadoc refers to non-existent interface
Reviewed-by: azvegint, pbansal, aivanov
2021-03-17 07:54:58 +00:00
Robbin Ehn
7b9d2562ab 8261262: Kitchensink24HStress.java crashed with EXCEPTION_ACCESS_VIOLATION
Reviewed-by: dcubed, sspitsyn
2021-03-17 07:27:16 +00:00
Eric Liu
d2144a5b9d 8263058: Optimize vector shift with zero shift count
Reviewed-by: thartmann, kvn
2021-03-17 02:45:00 +00:00
Jie Fu
dd6c91141a 8263705: Two shenandoah tests fail due to can't find ClassFileInstaller
Reviewed-by: iklam
2021-03-17 01:54:09 +00:00
Evgeny Nikitin
4acb88396e 8261666: [mlvm] Remove WhiteBoxHelper
Reviewed-by: iignatyev
2021-03-17 01:27:18 +00:00
Jie Fu
50697965cf 8263164: assert(_base >= VectorA && _base <= VectorZ) failed: Not a Vector while calling StoreVectorNode::memory_size()
Reviewed-by: kvn, vlivanov
2021-03-16 23:27:08 +00:00
Igor Veresov
996079b902 8260650: test failed with "assert(false) failed: infinite loop in PhaseIterGVN::optimize"
Reviewed-by: thartmann, kvn
2021-03-16 21:42:55 +00:00
Vicente Romero
9cb9af6865 8260959: remove RECORDS from PreviewFeature.Feature enum
Reviewed-by: jlahoda
2021-03-16 19:37:56 +00:00
Phil Race
05fe06a6ba 8255790: GTKL&F: Java 16 crashes on initialising GTKL&F on Manjaro Linux
Reviewed-by: serb, ihse, azvegint
2021-03-16 19:36:04 +00:00
Alexey Semenyuk
422eba81b1 8263536: Add @build tags to jpackage tests
Reviewed-by: almatvee, iklam, herrick
2021-03-16 19:14:41 +00:00
Yi Yang
0d2f87e494 8263562: Checking if proxy_klass_head is still lambda_proxy_is_available
Reviewed-by: ccheung, iklam
2021-03-16 18:48:21 +00:00
Zhengyu Gu
a67a679c78 8263679: C1: Remove vtable call
Reviewed-by: vlivanov, kvn
2021-03-16 18:41:04 +00:00
Andy Herrick
11c8c78c47 8248904: Add support to jpackage for the Mac App Store
Reviewed-by: asemenyuk, almatvee, kizune, kcr
2021-03-16 17:26:57 +00:00
Aleksey Shipilev
dc93138b05 8256732: Zero: broken +ZeroTLAB exposes badly initialized memory
Reviewed-by: dholmes
2021-03-16 16:57:58 +00:00
Claes Redestad
e33bfb3977 8263450: Simplify LambdaForm.useCount
Reviewed-by: rriggs
2021-03-16 14:56:24 +00:00
Roman Kennke
75ef6f580e 8263427: Shenandoah: Trigger weak-LRB even when heap is stable
Reviewed-by: shade, zgu
2021-03-16 14:12:42 +00:00
Frederic Parain
4517d72fc2 8263612: Unused variables in C1 runtime
Reviewed-by: neliasso, thartmann
2021-03-16 12:21:15 +00:00
Aleksey Shipilev
83a9a0296e 8263509: LdapSchemaParser.readNextTag checks array length incorrectly
Reviewed-by: stuefe, aefimov
2021-03-16 10:54:04 +00:00
Martin Doerr
9c50b8e66a 8263587: C2: JVMS not cloned when needs_clone_jvms() is true
Reviewed-by: goetz, vlivanov
2021-03-16 10:17:33 +00:00
Andrey Turbanov
68deb24b38 8080272: Refactor I/O stream copying to use InputStream.transferTo/readAllBytes and Files.copy
Reviewed-by: mcimadamore, alanb
2021-03-16 10:10:05 +00:00
Stefan Karlsson
a31a23d5e7 8263595: Remove oop type punning in JavaCallArguments
Reviewed-by: iklam, coleenp, kbarrett
2021-03-16 08:29:41 +00:00
Stefan Karlsson
a1f6591f6c 8263589: Introduce JavaValue::get_oop/set_oop
Reviewed-by: coleenp, sspitsyn
2021-03-16 08:29:11 +00:00
Roland Westrelin
20297a1beb 8263577: C2: reachable nodes shouldn't have dead uses at the end of optimizations
Reviewed-by: vlivanov, neliasso
2021-03-16 08:20:52 +00:00
Thomas Stuefe
c484d89042 8263557: Possible NULL dereference in Arena::destruct_contents()
Reviewed-by: kbarrett, coleenp
2021-03-16 05:49:01 +00:00
Thomas Stuefe
ba35193c1a 8263559: Add missing initializers to VM_PopulateDumpSharedSpace
Reviewed-by: kbarrett, iklam, coleenp
2021-03-16 05:47:53 +00:00
Yasumasa Suenaga
e03a59489c 8262504: Some CLHSDB command cannot know they run on remote debugger
Reviewed-by: cjplummer, sspitsyn
2021-03-16 05:46:23 +00:00
Pankaj Bansal
d896246a11 8263420: Incorrect function name in NSAccessibilityStaticText native peer implementation
Reviewed-by: kizune
2021-03-16 04:57:33 +00:00
David Holmes
8c1112a690 8261916: gtest/GTestWrapper.java vmErrorTest.unimplemented1_vm_assert failed
Reviewed-by: dcubed, coleenp
2021-03-15 23:11:13 +00:00
Ioi Lam
1e570870f2 8263392: Allow current thread to be specified in ExceptionMark
Reviewed-by: dholmes, ccheung, coleenp, minqi
2021-03-15 22:20:13 +00:00
Coleen Phillimore
4d1c08ca99 8263616: 'Deprecatd' typo in src/hotspot/share/classfile/classFileParser.cpp
Reviewed-by: hseigel, dcubed
2021-03-15 21:19:11 +00:00
Craig Andrews
0c718ab2a0 8262277: URLClassLoader.getResource throws undocumented IllegalArgumentException
Reviewed-by: alanb, bchristi, psadhukhan
2021-03-15 18:35:04 +00:00
Thomas Schatzl
4f1cda4fd7 8263387: G1GarbageCollection JFR event gets gc phase, not gc type
Reviewed-by: sjohanss, ayang, iwalulya
2021-03-15 18:07:44 +00:00
Aleksey Shipilev
5ab5244814 8263514: Minor issue in JavacFileManager.SortFiles.REVERSE
Reviewed-by: vromero
2021-03-15 17:38:31 +00:00
Albert Mingkun Yang
771b146aeb 8245025: MoveAndUpdateClosure::do_addr calls function with side-effects in an assert
Reviewed-by: tschatzl, kbarrett
2021-03-15 17:25:59 +00:00
Brian Burkhalter
46d78f0d24 6539707: (fc) MappedByteBuffer.force() method throws an IOException in a very simple test
Reviewed-by: alanb
2021-03-15 17:24:24 +00:00
Thomas Stuefe
189289d9c7 8262326: MaxMetaspaceSize does not have to be aligned to metaspace commit alignment
Reviewed-by: coleenp, iklam
2021-03-15 17:20:10 +00:00
Igor Ignatyev
d825198e55 8263556: remove @modules java.base from tests
Reviewed-by: dcubed, naoto, iris
2021-03-15 17:05:28 +00:00
Patricio Chilano Mateo
d6b5e1809b 8263191: Consolidate ThreadInVMfromJavaNoAsyncException and ThreadBlockInVMWithDeadlockCheck with existing wrappers
Reviewed-by: coleenp, dholmes, dcubed
2021-03-15 14:12:21 +00:00
Frederic Parain
80cdf7882d 8263544: Unused argument in ConstantPoolCacheEntry::set_field()
Reviewed-by: coleenp, dholmes
2021-03-15 12:57:51 +00:00
Sergey Tsypanov
c0176c42dc 8263552: Use String.valueOf() for char-to-String conversions
Reviewed-by: redestad, vtewari, azvegint, chegar
2021-03-15 11:18:59 +00:00
Claes Redestad
fac39fe97a 8263508: Remove dead code in MethodHandleImpl
Reviewed-by: jkuhn, mchung
2021-03-15 10:52:48 +00:00
Aleksey Shipilev
7b4aefe9e1 8263530: sun.awt.X11.ListHelper.removeAll() should use clear()
Reviewed-by: serb, kizune
2021-03-15 09:50:52 +00:00
Toshio Nakamura
32c7fcc670 8263490: [macos] Crash occurs on JPasswordField with activated InputMethod
Reviewed-by: dmarkov, serb, kizune
2021-03-15 09:20:34 +00:00
Ajit Ghaisas
8afec70c28 8260931: Implement JEP 382: New macOS Rendering Pipeline
Co-authored-by: Jayathirth D V <jdv@openjdk.org>
Co-authored-by: Alexey Ushakov <avu@openjdk.org>
Co-authored-by: Artem Bochkarev <abochkarev@openjdk.org>
Co-authored-by: Prasanta Sadhukhan <psadhukhan@openjdk.org>
Co-authored-by: Denis Konoplev <dkonoplev@openjdk.org>
Co-authored-by: Phil Race <prr@openjdk.org>
Co-authored-by: Kevin Rushforth <kcr@openjdk.org>
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Co-authored-by: Ajit Ghaisas <aghaisas@openjdk.org>
Reviewed-by: ihse, avu, kcr, gziemski, prr, kizune, jdv, psadhukhan, serb
2021-03-15 06:41:44 +00:00
Aleksey Shipilev
0638303316 8263497: Clean up sun.security.krb5.PrincipalName::toByteArray
Reviewed-by: weijun
2021-03-15 06:27:32 +00:00
Aleksey Shipilev
ba22e6f6fa 8263446: Avoid unary minus over unsigned type in ObjectSynchronizer::dec_in_use_list_ceiling
Reviewed-by: eosterlund, dcubed
2021-03-15 06:25:36 +00:00
Aleksey Shipilev
b371f90f77 8263504: Some OutputMachOpcodes fields are uninitialized
Reviewed-by: kvn
2021-03-15 06:25:08 +00:00
Nick Gasson
f7e0a09802 8263425: AArch64: two potential bugs in C1 LIRGenerator::generate_address()
Reviewed-by: aph
2021-03-15 05:20:39 +00:00
David Holmes
554dd29fb6 8263564: Consolidate POSIX code for runtime exit support: os::shutdown, os::abort and os::die
Reviewed-by: mikael
2021-03-15 02:03:22 +00:00
Ioi Lam
da9ead5e7f 8263399: CDS should archive only classes allowed by module system
Reviewed-by: ccheung, minqi
2021-03-14 06:01:57 +00:00
Igor Ignatyev
9c84899da4 8263555: use driver-mode to run ClassFileInstaller
Reviewed-by: iklam
2021-03-14 05:19:37 +00:00
Chris Plummer
8e562d261c 8263477: serviceability/sa/ClhsdbDumpheap.java timed out
Reviewed-by: lmesnik, dcubed
2021-03-13 22:52:24 +00:00
Igor Ignatyev
a7aba2b61c 8263549: 8263412 can cause jtreg testlibrary split
Reviewed-by: iklam, dcubed
2021-03-13 14:51:53 +00:00
Yasumasa Suenaga
d339320e0b 8263136: C4530 was reported from VS 2019 at access bridge
Reviewed-by: stuefe, serb
2021-03-13 09:41:52 +00:00
Yasumasa Suenaga
a528771064 8262491: AArch64: CPU description should contain compatible board list
Reviewed-by: akozlov, aph
2021-03-13 09:40:40 +00:00
Yi Yang
86e4c755f9 8256156: JFR: Allow 'jfr' tool to show metadata without a recording
Reviewed-by: egahlin
2021-03-13 02:03:07 +00:00
Igor Ignatyev
0b68ced027 8263548: runtime/cds/appcds/SharedRegionAlignmentTest.java fails to compile after JDK-8263412
Reviewed-by: dcubed
2021-03-13 01:33:03 +00:00
Chris Plummer
43524cc41a 8243455: Many SA tests can fail due to trying to get the stack trace of an active method
Reviewed-by: lmesnik, ysuenaga, sspitsyn
2021-03-12 23:35:47 +00:00
Igor Ignatyev
e834f99d1d 8263412: ClassFileInstaller can't be used by classes outside of default package
Reviewed-by: iklam, coleenp, mseledtsov
2021-03-12 23:13:16 +00:00
Jie Fu
bf9b5fa753 8263501: compiler/oracle/TestInvalidCompileCommand.java fails with release VMs
Reviewed-by: kvn
2021-03-12 22:56:47 +00:00
Ioi Lam
0c8350edaf 8263460: DynamicArchiveRelocationTest.java fails in product VM
Reviewed-by: ccheung, dcubed
2021-03-12 21:45:01 +00:00
Chris Plummer
b2f7c58dc9 8263055: hsdb Command Line Debugger does not properly direct output for some commands
Reviewed-by: amenkov, ysuenaga
2021-03-12 21:06:14 +00:00
Chris Plummer
ecfa712c1d 8263326: Remove ReceiverTypeData check from serviceability/sa/TestPrintMdo.java
Reviewed-by: dholmes
2021-03-12 21:05:02 +00:00
Coleen Phillimore
b932a62c44 8263470: Consolidate copies of getClassBytes in various tests
Reviewed-by: hseigel, stuefe, mseledtsov
2021-03-12 20:48:51 +00:00
Alexander Zvegintsev
0ea48d9d65 8194129: Regression automated Test '/open/test/jdk/java/awt/Window/ShapedAndTranslucentWindows/TranslucentChoice.java' fails
Reviewed-by: serb, psadhukhan
2021-03-12 19:11:03 +00:00
Harold Seigel
4b5c664b4c 8178348: left_n_bits(0) invokes undefined behavior
Reviewed-by: dholmes, coleenp
2021-03-12 19:00:36 +00:00
Vladimir Ivanov
0b10c6b415 8263017: Read barriers are missing in nmethod printing code
Reviewed-by: eosterlund, kvn
2021-03-12 17:29:48 +00:00
Vladimir Kozlov
a6e056fd51 8263125: During deoptimization vectors should reassign scalarized payload after all objects are reallocated.
Reviewed-by: vlivanov, rrich
2021-03-12 16:59:50 +00:00
Harold Seigel
65421faec3 8213177: GlobalCounter::CSContext could be an enum class
Reviewed-by: lfoltan, kbarrett
2021-03-12 13:14:32 +00:00
Markus Grönlund
a9b156d358 8258414: OldObjectSample events too expensive
Co-authored-by: Florian David <florian.david@datadoghq.com>
Reviewed-by: jbachorik
2021-03-12 10:05:22 +00:00
Pengfei Li
0bbe064c1b 8263354: Accumulated C2 code cleanups
Reviewed-by: thartmann, redestad
2021-03-12 09:41:11 +00:00
Robbin Ehn
aa33443b53 8262454: Handshake timeout improvements, single target, kill unfinished thread
Reviewed-by: pchilanomate, dholmes, dcubed
2021-03-12 08:58:26 +00:00
Aleksey Shipilev
ff25939397 8263426: Reflow JfrNetworkUtilization::send_events
Reviewed-by: mgronlun
2021-03-12 07:58:30 +00:00
Aleksey Shipilev
e25ad7309a 8263430: Uninitialized Method* variables after JDK-8233913
Reviewed-by: coleenp, hseigel
2021-03-12 07:40:52 +00:00
Aleksey Shipilev
9f6b1d7fa4 8263436: Silly array comparison in GaloisCounterMode.overlapDetection
Reviewed-by: ascarpino
2021-03-12 07:35:11 +00:00
Jie Fu
ad1f605419 8263353: assert(CompilerOracle::option_matches_type(option, value)) failed: Value must match option type
Reviewed-by: neliasso, kvn
2021-03-12 02:22:34 +00:00
Daniel D. Daugherty
cf1c0219ce 8263480: ProblemList two jpackage tests on Windows
Reviewed-by: kcr, azvegint
2021-03-11 23:54:30 +00:00
Doug Simon
f3bd801a86 8263403: [JVMCI] output written to tty via HotSpotJVMCIRuntime can be garbled
Reviewed-by: kvn, never
2021-03-11 20:56:36 +00:00
Zhengyu Gu
b92abac262 8263433: Shenandoah: Don't expect forwarded objects in set_concurrent_mark_in_progress()
Reviewed-by: shade
2021-03-11 20:11:38 +00:00
Yumin Qi
15daccacee 8263465: JDK-8236847 causes tier1 build failure on linux-aarch64
Reviewed-by: iklam, erikj, dcubed
2021-03-11 18:54:45 +00:00
Alexey Semenyuk
7ed46bd02e 8241716: Jpackage functionality to let users choose whether to create shortcuts
Reviewed-by: almatvee, herrick
2021-03-11 16:55:23 +00:00
Yumin Qi
3820ab9e82 8236847: CDS archive with 4K alignment unusable on machines with 64k pages
Reviewed-by: iklam, stuefe, erikj, ihse
2021-03-11 16:49:24 +00:00
Roberto Castañeda Lozano
273f8bdf5f 8263248: IGV: accept graphs without node categories
If the input graph does not contain node category information, emit a warning
message and proceed loading the graph, instead of failing.

Reviewed-by: neliasso, chagedorn, thartmann
2021-03-11 12:42:30 +00:00
Christoph Langer
a9b4f033dd 8263069: Exclude some failing tests from security/infra/java/security/cert/CertPathValidator
Reviewed-by: mbaesken
2021-03-11 10:44:29 +00:00
Ivan Walulya
470b15027b 8143041: Unify G1CollectorPolicy::PauseKind and G1YCType
Reviewed-by: tschatzl, ayang
2021-03-11 09:22:25 +00:00
Roberto Castañeda Lozano
f6b4ba073f 8261931: IGV: quick search fails on multi-line node labels
Remove line breaks from the 'label' property that is searched on by default.

Reviewed-by: neliasso, xliu, chagedorn
2021-03-11 09:17:52 +00:00
Robbin Ehn
7988c1d9aa 8262443: GenerateOopMap::do_interpretation can spin for a long time.
Reviewed-by: coleenp, dholmes, dcubed
2021-03-11 07:33:13 +00:00
Bradford Wetmore
32cbd193d9 8263105: security-libs doclint cleanup
Reviewed-by: iris, darcy, dfuchs, mullan
2021-03-11 00:26:26 +00:00
Ian Graves
6971c23a3a 8262351: Extra '0' in java.util.Formatter for '%012a' conversion with a sign character
Reviewed-by: bchristi, naoto
2021-03-10 22:46:32 +00:00
David Holmes
c6d74bd933 8262910: Cleanup THREAD/TRAPS/naming and typing issues in ObjectMonitor and related code
Reviewed-by: coleenp, pchilanomate, dcubed, cjplummer, sspitsyn
2021-03-10 22:33:56 +00:00
Coleen Phillimore
57f16f9fe5 8262377: Parallel class resolution loses constant pool error
Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Co-authored-by: Coleen Phillimore <coleenp@openjdk.org>
Co-authored-by: Ioi Lam <iklam@openjdk.org>
Reviewed-by: dholmes, iklam, hseigel, kvn
2021-03-10 20:58:18 +00:00
Brian Burkhalter
b482733f94 8259218: (fs) Add links in from overloaded methods in java.nio.file.Files
Reviewed-by: dfuchs, alanb
2021-03-10 20:02:12 +00:00
Joe Darcy
acda812958 8263333: Improve links from core reflection to JLS and JVMS
Reviewed-by: jfranck
2021-03-10 17:45:54 +00:00
Calvin Cheung
9399e1b710 8261918: two runtime/cds/appcds/VerifierTest failed with "Unable to use shared archive"
Reviewed-by: iklam, minqi
2021-03-10 17:18:36 +00:00
Claes Redestad
7e52a6e8b3 8263380: Unintended use of Objects.nonNull in VarHandles
Reviewed-by: rriggs
2021-03-10 17:03:39 +00:00
Rahul Raghavan
4b5be40ab9 8238812: assert(false) failed: bad AD file
Reviewed-by: thartmann, chagedorn, roland
2021-03-10 15:59:38 +00:00
Evan Whelan
b2a2ddff44 8262438: sun/security/ssl/SSLLogger/LoggingFormatConsistency.java failed with "SocketException: Socket is closed"
Reviewed-by: rhalade
2021-03-10 15:15:53 +00:00
Christoph Göttschkes
c8c0234b78 8262471: Fix coding style in src/java.base/share/classes/java/lang/CharacterDataPrivateUse.java
Reviewed-by: alanb, rriggs
2021-03-10 14:46:57 +00:00
Coleen Phillimore
4d21a455aa 8262913: KlassFactory::create_from_stream should never return NULL
Reviewed-by: hseigel, iklam
2021-03-10 14:15:32 +00:00
Harold Seigel
fab567666e 8247869: Change NONCOPYABLE to delete the operations
Reviewed-by: kbarrett, dholmes
2021-03-10 13:14:00 +00:00
Prasanta Sadhukhan
c0542ed85e 6251901: BasicTextUI: installDefaults method are contrary to the documentation
Reviewed-by: azvegint, kizune, aivanov
2021-03-10 12:48:12 +00:00
Patrick Concannon
fdd3941121 8263233: Update java.net and java.nio to use instanceof pattern variable
Reviewed-by: dfuchs, bpb, chegar, michaelm
2021-03-10 11:05:29 +00:00
Prasanta Sadhukhan
3fe8a4661c 8263170: ComboBoxModel documentation refers to a nonexistent type
Reviewed-by: azvegint, trebari, pbansal, aivanov, kizune
2021-03-10 06:39:17 +00:00
Ioi Lam
d8a9c3ca92 8263002: Remove CDS MiscCode region
Reviewed-by: coleenp, dholmes
2021-03-10 06:07:39 +00:00
Joe Darcy
67ea3bd6a4 8263102: Expand documention of Method.isBridge
Reviewed-by: smarks
2021-03-10 03:43:53 +00:00
Yasumasa Suenaga
d0c1aec202 8263140: Japanese chars garble in console window in HSDB
Reviewed-by: iklam, prr, cjplummer
2021-03-09 23:43:07 +00:00
Yasumasa Suenaga
70342e8513 8262520: Add SA Command Line Debugger support to connect to debug server
Reviewed-by: cjplummer, kevinw
2021-03-09 23:41:52 +00:00
Jie Fu
e5ce97b12d 8263206: assert(*error_msg != '\0') failed: Must have error_message while parsing -XX:CompileCommand=unknown
Reviewed-by: neliasso
2021-03-09 23:32:18 +00:00
Calvin Cheung
3212f80a80 8261937: LambdaForClassInBaseArchive: SimpleApp$$Lambda$1 missing
Reviewed-by: iklam, dcubed
2021-03-09 21:52:51 +00:00
Chris Plummer
2218e7268e 8262486: Merge trivial JDWP agent changes from the loom repo to the jdk repo
Reviewed-by: amenkov, lmesnik
2021-03-09 21:34:18 +00:00
Sergey Bylokhov
86fac952ab 8263142: Delete unused entry points in libawt/libawt_xawt/libawt_headless
Reviewed-by: kizune, aivanov
2021-03-09 21:22:50 +00:00
Harold Seigel
b7f0b3fc8b 8252173: Use handles instead of jobjects in modules.cpp
Reviewed-by: lfoltan, coleenp
2021-03-09 13:15:39 +00:00
Alexey Ivanov
a6e34b3d1c 8262829: Native crash in Win32PrintServiceLookup.getAllPrinterNames()
Reviewed-by: prr, psadhukhan, serb
2021-03-09 11:36:30 +00:00
Patrick Concannon
fbe40e8926 8252399: Update mapMulti documentation to use type test pattern instead of instanceof once JEP 375 exits preview
Reviewed-by: dfuchs, psandoz, smarks
2021-03-09 11:09:40 +00:00
Patrick Concannon
0f2402d0a2 8263190: Update java.io, java.math, and java.text to use instanceof pattern variable
Reviewed-by: lancea, bpb, darcy, naoto, iris, dfuchs, smarks, redestad
2021-03-09 11:09:06 +00:00
Doug Simon
4f0a12ec87 8262323: do not special case JVMCI in tiered compilation policy
Reviewed-by: kvn, never
2021-03-09 10:57:03 +00:00
Roberto Castañeda Lozano
3022baa953 8263167: IGV: build fails with "taskdef AutoUpdate cannot be found"
Update IGV build configuration to use the nbm-maven-harness Maven artifact.

Reviewed-by: chagedorn, rrich
2021-03-09 10:14:51 +00:00
Anton Kozlov
0bc45625b0 8263068: Rename safefetch.hpp to safefetch.inline.hpp
Reviewed-by: stefank
2021-03-09 08:19:59 +00:00
Sergey Bylokhov
5bfc5fd38b 8263051: Modernize the code in the java.awt.color package
Reviewed-by: azvegint
2021-03-09 06:11:28 +00:00
Thomas Stuefe
5b9b170db9 8262955: Unify os::fork_and_exec() across Posix platforms
Reviewed-by: dholmes, hseigel
2021-03-09 06:00:46 +00:00
Andrey Turbanov
39b1113838 8262161: Refactor manual I/O stream copying in java.desktop to use new convenience APIs
Reviewed-by: serb, prr
2021-03-09 01:36:50 +00:00
Yasumasa Suenaga
4e9476071d 8263135: unique_ptr should not be used for types that are not pointers
Reviewed-by: asemenyuk, herrick
2021-03-09 00:57:48 +00:00
Claes Redestad
f71b21b0e7 8263038: Optimize String.format for simple specifiers
Reviewed-by: rriggs, naoto
2021-03-08 23:13:45 +00:00
Joe Darcy
14cfbda39e 8261366: Add discussion of IEEE 754 to BigDecimal
Reviewed-by: bpb
2021-03-08 22:30:11 +00:00
Anthony Scarpino
414ee95b8e 8261462: GCM ByteBuffer decryption problems
Reviewed-by: valeriep
2021-03-08 21:28:07 +00:00
Martin Buchholz
eb4a8af559 8260664: Phaser.arrive() memory consistency effects
Reviewed-by: dl
2021-03-08 20:11:18 +00:00
Mikhailo Seledtsov
9221540e2a 8213269: convert test/hotspot/jtreg/runtime/memory/RunUnitTestsConcurrently to gtest
Reviewed-by: iignatyev, coleenp, stuefe
2021-03-08 20:09:59 +00:00
Igor Ignatyev
17853ee92c 8263200: Add -XX:StressCCP to CTW
Reviewed-by: kvn
2021-03-08 18:43:34 +00:00
Zhengyu Gu
a2b8858131 8263041: Shenandoah: Cleanup C1 keep alive barrier check
Reviewed-by: shade, rkennke
2021-03-08 18:07:34 +00:00
Igor Veresov
1f9ed9059f 8219555: compiler/jvmci/compilerToVM/IsMatureTest.java fails with Unexpected isMature state for multiple times invoked method: expected false to equal true
Reviewed-by: kvn
2021-03-08 18:01:27 +00:00
Dmitry Markov
bf9b74d187 8262446: DragAndDrop hangs on Windows
Reviewed-by: aivanov, serb, kizune
2021-03-08 16:38:21 +00:00
Jonathan Gibbons
b1cc864afb 8251210: Link JDK api docs to other versions
Reviewed-by: iris, erikj
2021-03-08 16:19:48 +00:00
Albert Mingkun Yang
0da889edf3 8210100: ParallelGC should use parallel WeakProcessor
Reviewed-by: kbarrett, tschatzl, sjohanss
2021-03-08 15:26:42 +00:00
Claes Redestad
679faa691a 8263097: Update JMH devkit to 1.28
Reviewed-by: ecaspole, erikj
2021-03-08 14:23:20 +00:00
Patrick Concannon
ab2cfccac7 8252831: Correct "no comment" warnings in jdk.net module
Reviewed-by: chegar, vtewari, dfuchs
2021-03-08 12:19:01 +00:00
Kevin Walls
51cca57c22 8259577: Dangling reference to temp_path in Java_sun_tools_attach_VirtualMachineImpl_getTempDir
Reviewed-by: cjplummer, lmesnik
2021-03-08 11:40:15 +00:00
Claes Redestad
a0c3f24218 8263091: Remove CharacterData.isOtherUppercase/-Lowercase
Reviewed-by: rriggs, naoto, iris
2021-03-08 10:34:57 +00:00
Claes Redestad
13625bebd0 8263090: Avoid reading volatile fields twice in Locale.getDefault(Category)
Reviewed-by: rriggs, naoto, serb
2021-03-08 10:32:55 +00:00
Aleksey Shipilev
61cff4da90 8257913: Add more known library locations to simplify Linux cross-compilation
Reviewed-by: erikj
2021-03-08 10:14:46 +00:00
John Jiang
22a3117d22 8263137: Typos in sun.security.ssl.RenegoInfoExtension
Reviewed-by: xuelei
2021-03-07 22:46:16 +00:00
djelinski
18fc35053c 8259886: Improve SSL session cache performance and scalability
Reviewed-by: erikj, xuelei
2021-03-07 01:13:24 +00:00
Igor Ignatyev
3844ce400d 8261247: some compiler/whitebox/ tests fail w/ DeoptimizeALot
Reviewed-by: kvn
2021-03-06 21:08:20 +00:00
Jonathan Gibbons
f2d01521d1 8263043: Add test to verify order of tag output
Reviewed-by: prappo
2021-03-06 15:24:38 +00:00
Jonathan Gibbons
718298506d 8263104: fix warnings for empty paragraphs
Reviewed-by: alanb, lancea
2021-03-06 15:06:49 +00:00
Alexander Zuev
5eb2091a19 8261689: javax/swing/JComponent/7154030/bug7154030.java still fails with "Exception: Failed to hide opaque button"
Reviewed-by: aivanov, azvegint
2021-03-06 09:09:35 +00:00
Ioi Lam
75a5be8ac5 8263054: [testbug] SharedArchiveConsistency.java reuses jsa files
Reviewed-by: dholmes, minqi
2021-03-06 08:55:42 +00:00
Alexander Zvegintsev
2afbd5dafc 8250804: Can't set the application icon image for Unity WM on Linux.
Reviewed-by: serb, pbansal, kizune
2021-03-06 08:54:51 +00:00
Alexander Matveev
fa43f926ab 8261845: File permissions of packages built by jpackage
Reviewed-by: asemenyuk, herrick
2021-03-06 08:54:12 +00:00
Eric Liu
23ee60d1b7 8261008: Optimize Xor
Reviewed-by: thartmann, kvn
2021-03-06 08:52:35 +00:00
Fernando Guallini
e1cad97049 8262862: Harden tests sun/security/x509/URICertStore/ExtensionsWithLDAP.java and krb5/canonicalize/Test.java
Reviewed-by: aefimov, michaelm
2021-03-05 16:26:05 +00:00
Roland Westrelin
2c0507ecd6 8261812: C2 compilation fails with assert(!had_error) failed: bad dominance
Reviewed-by: kvn, thartmann
2021-03-05 15:43:24 +00:00
Jonathan Gibbons
97557826f5 8157682: @inheritDoc doesn't work with @exception
Co-authored-by: Yano, Masanori <yano-masanori@jp.fujitsu.com>
Co-authored-by: Jonathan Gibbons <jjg@openjdk.org>
Reviewed-by: prappo
2021-03-05 15:24:44 +00:00
Jonathan Gibbons
8c13d26dae 8263050: move HtmlDocletWriter.verticalSeparator to IndexWriter
Reviewed-by: prappo
2021-03-05 15:22:12 +00:00
Arno Zeller
8d3de4b1bd 8262844: (fs) FileStore.supportsFileAttributeView might return false negative in case of ext3
Reviewed-by: alanb, clanger, bpb
2021-03-05 11:02:26 +00:00
Aleksey Shipilev
75fb7ccf34 8259228: Zero: rewrite (put|get)field from if-else chains to switches
Reviewed-by: aph, coleenp
2021-03-05 10:40:43 +00:00
Albert Mingkun Yang
9730266d02 8262973: Verify ParCompactionManager instance in PCAdjustPointerClosure
Reviewed-by: kbarrett, tschatzl
2021-03-05 08:49:08 +00:00
Jie Fu
d91550efad 8262998: Vector API intrinsincs should not modify IR when bailing out
Reviewed-by: thartmann, vlivanov
2021-03-05 05:57:30 +00:00
Vyom Tewari
80182f92db 8260925: HttpsURLConnection does not work with other JSSE provider.
Reviewed-by: xuelei
2021-03-05 05:29:55 +00:00
Ian Graves
dbef0ec95d 6323374: (coll) Optimize Collections.unmodifiable* and synchronized*
Reviewed-by: redestad, smarks, darcy
2021-03-05 03:20:44 +00:00
Alexey Semenyuk
ee09bada67 8262300: jpackage app-launcher fails on linux when using JDK11 based runtime
Reviewed-by: herrick, almatvee
2021-03-05 00:17:33 +00:00
Jie Fu
351889f1b5 8262508: Vector API's ergonomics is incorrect
Reviewed-by: vlivanov
2021-03-04 23:04:28 +00:00
Sandhya Viswanathan
718d4d487c 8262989: Vectorize VectorShuffle checkIndexes, wrapIndexes and laneIsValid methods
Reviewed-by: psandoz
2021-03-04 21:25:03 +00:00
Dean Long
c8b23e22f2 8262064: Make compiler/ciReplay tests ignore lambdas in compilation replay
Reviewed-by: thartmann, kvn, iignatyev
2021-03-04 20:07:12 +00:00
Calvin Cheung
02fbcb52b8 8261532: Archived superinterface class cannot be accessed
Reviewed-by: minqi, iklam
2021-03-04 19:57:48 +00:00
Andy Herrick
109af7b5cb 8261518: jpackage looks for main module in current dir when there is no module-path
Reviewed-by: asemenyuk, almatvee, kizune
2021-03-04 19:51:07 +00:00
EC2 Default User
e61a3ba22d 8239386: handle ContendedPaddingWidth in vm_version_aarch64
Reviewed-by: aph, phh
2021-03-04 18:55:07 +00:00
Kuai Wei
f56c91860c 8262837: handle split_USE correctly
Reviewed-by: kvn
2021-03-04 18:20:57 +00:00
Daniel D. Daugherty
bd1a80629d 8263040: fix for JDK-8262122 fails validate-source
Reviewed-by: mikael
2021-03-04 18:08:15 +00:00
Sean Mullan
a6427c85ee 8259709: Disable SHA-1 XML Signatures
Reviewed-by: rhalade, weijun
2021-03-04 17:21:37 +00:00
Roman Kennke
ef5e13d263 8263030: Remove Shenandoah leftovers from ReferenceProcessor
Reviewed-by: zgu
2021-03-04 17:04:28 +00:00
Roman Kennke
222a17ef77 8262122: [TESTBUG] Shenandoah-specific variant of TestReferenceRefersTo
Reviewed-by: shade
2021-03-04 17:03:54 +00:00
Ziyi Luo
a777e82cd8 8254717: isAssignableFrom checks in KeyFactorySpi.engineGetKeySpec appear to be backwards
Reviewed-by: jnimeh
2021-03-04 15:17:53 +00:00
Leo Korinth
d2c4ed08a2 8262000: jdk/jfr/event/gc/detailed/TestPromotionFailedEventWithParallelScavenge.java failed with "OutOfMemoryError: Java heap space"
Reviewed-by: tschatzl, egahlin
2021-03-04 13:20:06 +00:00
Jan Lahoda
94f26e4df8 8261450: JShell crashes with SIOOBE in tab completion
Reviewed-by: vromero
2021-03-04 12:36:34 +00:00
Julia Boes
b817855340 8262935: Add missing logging to sun.net.httpserver.ServerImpl
Reviewed-by: dfuchs, michaelm
2021-03-04 12:04:10 +00:00
Koichi Sakata
22513199e5 8262828: Format of OS information is different on macOS
Reviewed-by: dholmes, ysuenaga
2021-03-04 07:56:14 +00:00
Roberto Castañeda Lozano
4cfecceb04 8261730: C2 compilation fails with assert(store->find_edge(load) != -1) failed: missing precedence edge
Relax assertion in PhaseCFG::verify() to accept the case where a store is used
to implement an implicit null check and a load is placed in the null block.

Reviewed-by: thartmann, kvn
2021-03-04 07:48:51 +00:00
Aleksey Shipilev
7915a1fc4c 8262950: Restructure compiler/intrinsics/TestRotate.java for easier compilation
Reviewed-by: kvn
2021-03-04 07:41:22 +00:00
Hao Sun
84c93d5a18 8257137: Revise smov and umov in aarch64 assembler
Reviewed-by: aph, njian
2021-03-04 03:19:15 +00:00
Alex Menkov
d93fa0d6e3 8253940: com/sun/jdi/JdwpAttachTest.java failed with "RuntimeException: ERROR: LingeredApp.startApp was able to attach"
Reviewed-by: cjplummer, lmesnik
2021-03-04 00:39:28 +00:00
Alex Menkov
104a26283a 8224775: test/jdk/com/sun/jdi/JdwpListenTest.java failed to attach
Reviewed-by: sspitsyn, dfuchs
2021-03-04 00:37:55 +00:00
Joe Darcy
2848938977 8262927: Explicitly state fields examined for BigDecimal.hashCode
Reviewed-by: bpb
2021-03-03 23:15:02 +00:00
Sergey Bylokhov
b397472e4f 8262915: java.awt.color.ColorSpace.getName() is not thread-safe
Reviewed-by: azvegint, aivanov
2021-03-03 20:27:06 +00:00
Lutz Schmidt
268d9b7982 8261447: MethodInvocationCounters frequently run into overflow
Reviewed-by: thartmann, mdoerr, kvn, iveresov
2021-03-03 20:04:31 +00:00
Ivan Šipka
75aa15467e 8259267: Refactor LoaderLeak shell test as java test.
Reviewed-by: rriggs, iignatyev, dfuchs
2021-03-03 20:02:57 +00:00
Joe Darcy
a11818528a 8261862: Expand discussion of rationale for BigDecimal equals/compareTo semantics
Reviewed-by: smarks, bpb
2021-03-03 19:29:17 +00:00
Zhengyu Gu
2d2ef08c0f 8262885: Shenandoah: FullGC prologue does not need to save/restore heap has_forwarded_object flag
Reviewed-by: shade
2021-03-03 17:26:38 +00:00
Albert Mingkun Yang
1d2c1e6289 8248314: Parallel: Parallelize parallel full gc Adjust Roots phase
Reviewed-by: tschatzl, iwalulya
2021-03-03 15:37:36 +00:00
Harold Seigel
3d3eb5c8d3 8262368: wrong verifier message for bogus return type
Reviewed-by: dholmes, coleenp
2021-03-03 13:18:36 +00:00
Jan Lahoda
6d3c858cbb 8259235: javac crashes while attributing super method invocation
Reviewed-by: vromero
2021-03-03 12:38:26 +00:00
Sebastian Stenzel
bf90e8574d 8262926: JDK-8260966 broke AIX build
Reviewed-by: stuefe, clanger
2021-03-03 12:19:18 +00:00
Tobias Hartmann
54dfd79cda 8262256: C2 intrinsincs should not modify IR when bailing out
Reviewed-by: roland, kvn
2021-03-03 11:30:52 +00:00
Matthias Baesken
0265ab63e4 8262466: linux libsaproc/DwarfParser.cpp delete DwarfParser object in early return
Reviewed-by: ysuenaga, kevinw
2021-03-03 07:41:01 +00:00
Dong Bo
c15801e98c 8261142: AArch64: Incorrect instruction encoding when right-shifting vectors with shift amount equals to the element width
Reviewed-by: njian, aph
2021-03-03 06:43:25 +00:00
Ioi Lam
044e2a2a49 8183569: Assert the same limits are used in parse_xss and globals.hpp
Reviewed-by: stuefe, kbarrett
2021-03-03 02:59:23 +00:00
Maurizio Cimadamore
5de0f4b2ce 8260869: Test java/foreign/TestHandshake.java fails intermittently
Reviewed-by: psandoz
2021-03-03 01:14:25 +00:00
Joe Darcy
c9097a60b6 8262893: Enable more doclint checks in javadoc build
Reviewed-by: jjg, erikj
2021-03-03 01:03:26 +00:00
Jie Fu
40bdf52e24 8262096: Vector API fails to work due to VectorShape initialization exception
Reviewed-by: psandoz, vlivanov
2021-03-02 23:29:50 +00:00
Jonathan Gibbons
93ffe6a6a2 8262892: minor typo in implSpec comment
Reviewed-by: bpb
2021-03-02 22:53:18 +00:00
John Jiang
4f4d0f5366 8261969: SNIHostName should check if the encoded hostname conform to RFC 3490
Reviewed-by: rhalade, xuelei
2021-03-02 22:36:28 +00:00
Zhengyu Gu
c92f3bc37a 8262876: Shenandoah: Fix comments regarding VM_ShenandoahOperation inheritances
Reviewed-by: rkennke
2021-03-02 21:29:07 +00:00
Jonathan Gibbons
20b9ba53a5 8262875: doccheck: empty paragraphs, etc in java.base module
Reviewed-by: alanb, darcy, lancea
2021-03-02 20:35:51 +00:00
Kim Barrett
f304b74e0a 8261859: gc/g1/TestStringDeduplicationTableRehash.java failed with "RuntimeException: 'Rehash Count: 0' found in stdout"
Reviewed-by: ayang, sjohanss, tschatzl
2021-03-02 18:23:30 +00:00
Stuart Marks
f18c019287 8247373: ArraysSupport.newLength doc, test, and exception message
Reviewed-by: rriggs, psandoz, martin, prappo
2021-03-02 18:08:26 +00:00
Harold Seigel
96c43210d3 8262424: Change multiple get_java_xxx() functions in thread.cpp into one function
Reviewed-by: coleenp, lfoltan
2021-03-02 15:47:13 +00:00
Sebastian Stenzel
0de6abd4b4 8260966: (fs) Consolidate Linux and macOS implementations of UserDefinedFileAttributeView
8260691: (fs) LinuxNativeDispatcher should link to xattr functions

Reviewed-by: alanb
2021-03-02 14:40:45 +00:00
Daniel Fuchs
5f4bc0aca6 8253100: Fix "no comment" warnings in java.base/java.net
Reviewed-by: ryadav, chegar, naoto, alanb
2021-03-02 12:54:54 +00:00
Attila Szegedi
d185a6c53e 8261483: jdk/dynalink/TypeConverterFactoryMemoryLeakTest.java failed with "AssertionError: Should have GCd a method handle by now"
Reviewed-by: shade, plevart
2021-03-02 12:25:25 +00:00
Jan Lahoda
85a5ae8cb7 8261606: Surprising behavior of step over in String switch
Reviewed-by: vromero
2021-03-02 12:02:26 +00:00
Nick Gasson
be67aaabe6 8262726: AArch64: C1 StubAssembler::call_RT can corrupt stack
Reviewed-by: aph
2021-03-02 09:56:05 +00:00
Jie Fu
0f6122b92f 8262819: gc/shenandoah/compiler/TestLinkToNativeRBP.java fails with release VMs
Reviewed-by: roland, shade
2021-03-02 09:30:06 +00:00
Matthias Baesken
dd33a8eaaa 8262461: handle wcstombsdmp return value correctly in unix awt_InputMethod.c
Reviewed-by: psadhukhan, azvegint, aivanov
2021-03-02 08:00:23 +00:00
Yasumasa Suenaga
3b350ad87f 8261710: SA DSO objects have sizes that are too large
Reviewed-by: sspitsyn, cjplummer
2021-03-02 06:56:40 +00:00
Thomas Stuefe
fdd109327c 8261552: s390: MacroAssembler::encode_klass_not_null() may produce wrong results for non-zero values of narrow klass base
Co-authored-by: Lutz Schmidt <lucy@openjdk.org>
Reviewed-by: mdoerr, lucy
2021-03-02 04:30:26 +00:00
Thomas Stuefe
f5ab7f688c 8262472: Buffer overflow in UNICODE::as_utf8 for zero length output buffer
Reviewed-by: dholmes, iklam
2021-03-02 04:28:48 +00:00
Joe Wang
6635d7a56c 8261670: Add javadoc for the XML processing limits
Reviewed-by: lancea, naoto, iris
2021-03-02 03:26:32 +00:00
Ioi Lam
85b774af92 8255859: Incorrect comments in log.hpp
Reviewed-by: kbarrett
2021-03-02 03:18:51 +00:00
Yasumasa Suenaga
c3eb80e18f 8262500: HostName entry in VM.info should be a new line
Reviewed-by: stuefe, dcubed, dholmes
2021-03-02 03:02:30 +00:00
Jiangli Zhou
9f0f0c9870 8260933: runtime/cds/serviceability/ReplaceCriticalClassesForSubgraphs.java fails without CompactStrings
Reviewed-by: iklam
2021-03-02 02:58:06 +00:00
Olga Mikhaltsova
d3398324e9 8257414: Drag n Drop target area is wrong on high DPI systems
Reviewed-by: serb
2021-03-02 00:57:50 +00:00
John Jiang
353416ffca 8262509: JSSE Server should check the legacy version in TLSv1.3 ClientHello
Reviewed-by: xuelei, wetmore
2021-03-01 22:26:15 +00:00
Andy Herrick
642f45f9dc 8261839: Error creating runtime package on macos without mac-package-identifier
Reviewed-by: asemenyuk, almatvee, kizune
2021-03-01 19:33:27 +00:00
Sergey Bylokhov
682e120235 8262497: Delete unused utility methods in ICC_Profile class
Reviewed-by: azvegint, pbansal, trebari, kizune
2021-03-01 19:31:05 +00:00
Severin Gehwolf
4c9adce20d 8262379: Add regression test for JDK-8257746
Reviewed-by: hseigel
2021-03-01 15:14:40 +00:00
Roland Westrelin
6baecf39d5 8259937: guarantee(loc != NULL) failed: missing saved register with native invoker
Reviewed-by: kvn, jvernee, vlivanov
2021-03-01 15:11:25 +00:00
Alexander Zvegintsev
c569f1d64b 8262085: Hovering Metal HTML Tooltips in different windows cause IllegalArgExc on Linux
Reviewed-by: serb, psadhukhan
2021-03-01 14:31:56 +00:00
Harold Seigel
75bf10610f 8262028: Make InstanceKlass::implementor return InstanceKlass
Reviewed-by: coleenp, ccheung, vlivanov
2021-03-01 13:25:23 +00:00
Stefan Johansson
fe8e3707c5 8262188: Add test to verify trace page sizes logging on Linux
Reviewed-by: stuefe, tschatzl
2021-03-01 12:03:44 +00:00
Stefan Johansson
0a7fff46cf 8261636: The test mapping in hugetlbfs_sanity_check should consider LargePageSizeInBytes
Reviewed-by: tschatzl, iwalulya
2021-03-01 12:02:54 +00:00
Thomas Schatzl
702ca6228c 8262185: G1: Prune collection set candidates early
Reviewed-by: iwalulya, sjohanss, ayang
2021-03-01 11:05:41 +00:00
Conor Cleary
8bc8542e3f 8262195: Harden tests that use the HostsFileNameService (jdk.net.hosts.file property)
Reviewed-by: michaelm, aefimov, dfuchs, chegar
2021-03-01 10:18:12 +00:00
Roland Westrelin
20c93b3b90 8261914: IfNode::fold_compares_helper faces non-canonicalized bool when running JRuby JSON workload
Reviewed-by: kvn, shade
2021-03-01 08:47:59 +00:00
Roland Westrelin
ddd550ae84 8261308: C2: assert(inner->is_valid_counted_loop(T_INT) && inner->is_strip_mined()) failed: OuterStripMinedLoop should have been removed
Reviewed-by: chagedorn, kvn
2021-03-01 08:42:10 +00:00
Leo Korinth
03d888f463 8261804: Remove field _processing_is_mt, calculate it instead
Reviewed-by: ayang, kbarrett, tschatzl
2021-02-26 20:07:13 +00:00
Sergey Bylokhov
6800ba465f 8257500: Drawing MultiResolutionImage with ImageObserver "leaks" memory
Reviewed-by: azvegint, aivanov
2021-02-26 19:57:29 +00:00
Roman Kennke
65a245e262 8262329: Fix JFR parser exception messages
Reviewed-by: egahlin
2021-02-26 19:12:54 +00:00
Weijun Wang
a4c249610e 8259535: ECDSA SignatureValue do not always have the specified length
Reviewed-by: mullan
2021-02-26 16:49:44 +00:00
Leonid Mesnik
2515c42b2c 8262332: serviceability/sa/ClhsdbJhisto.java fails with Test ERROR java.lang.RuntimeException: 'ParselTongue' missing from stdout/stderr
Reviewed-by: cjplummer
2021-02-26 16:35:28 +00:00
Mikhailo Seledtsov
07061fc73a 8256417: Exclude TestJFRWithJMX test from running with PodMan
Reviewed-by: iignatyev
2021-02-26 16:21:12 +00:00
Thomas Stuefe
c9e91897ae 8262074: Consolidate the default value of MetaspaceSize
Reviewed-by: iklam, coleenp
2021-02-26 16:04:07 +00:00
Harold Seigel
05c11bcb32 8262426: Change TRAPS to Thread* for find_constrained_instance_or_array_klass()
Reviewed-by: coleenp
2021-02-26 15:56:16 +00:00
Coleen Phillimore
d06d6f51e0 8262402: Make CATCH macro assert not fatal
Reviewed-by: dholmes
2021-02-26 15:46:58 +00:00
Daniel D. Daugherty
47a0842646 8241403: JavaThread::get_thread_name() should be ThreadSMR-aware
Reviewed-by: rehn, coleenp, dholmes
2021-02-26 15:41:13 +00:00
Jonathan Gibbons
3088e1e62e 8262430: doclint warnings in java.base module
Reviewed-by: alanb, chegar, dfuchs, lancea
2021-02-26 15:12:51 +00:00
Jonathan Gibbons
67b9e5a691 8262420: typo: @implnote in java.desktop module
Reviewed-by: iris, prr, azvegint, aivanov
2021-02-26 15:11:22 +00:00
Jaikiran Pai
240f2a1bb7 8260366: ExtendedSocketOptions <clinit> can deadlock in some circumstances
Reviewed-by: dfuchs
2021-02-26 14:07:35 +00:00
hltj
de3f519dc9 8258897: wrong translation of capturing local classes inside nested lambdas
Co-authored-by: Bernard Blaser <bsrbnd@openjdk.org>
Reviewed-by: jlahoda
2021-02-26 13:09:47 +00:00
Matthias Baesken
d7efb4cc35 8262199: issue in jli args.c
Reviewed-by: clanger, alanb
2021-02-26 11:21:26 +00:00
Xin Liu
7603278164 8260198: TypeInstPtr::dump2() emits multiple lines if Verbose is set
Reviewed-by: thartmann
2021-02-26 10:46:43 +00:00
Vladimir Ivanov
0a4e710ff6 8261954: Dependencies: Improve iteration over class hierarchy under context class
Reviewed-by: kvn, coleenp, eosterlund
2021-02-26 08:19:47 +00:00
Thomas Stuefe
722142ee6c 8261520: JDK-8261302 breaks runtime/NMT/CheckForProperDetailStackTrace.java
Reviewed-by: zgu, coleenp
2021-02-26 06:46:20 +00:00
Prasanta Sadhukhan
bcca10066d 4710675: JTextArea.setComponentOrientation does not work with correct timing
Reviewed-by: serb, pbansal
2021-02-26 06:19:15 +00:00
Jonathan Gibbons
fce5765678 8262433: doclint: reference error in module jdk.incubator.foreign
Reviewed-by: bpb, lancea
2021-02-26 00:51:22 +00:00
Jonathan Gibbons
059ede0d20 8262428: doclint warnings in java.xml module
Reviewed-by: bpb, lancea, naoto, iris
2021-02-25 23:39:55 +00:00
Jonathan Gibbons
8256517016 8262421: doclint warnings in jdk.compiler module
Reviewed-by: iris, darcy
2021-02-25 22:28:07 +00:00
Harold Seigel
29c603f9dc 8262227: Change SystemDictionary::find() to return an InstanceKlass*.
Reviewed-by: iklam, dholmes, coleenp
2021-02-25 21:16:01 +00:00
Chris Plummer
35c0a6956c 8262416: ProblemList TestHeapDumpForLargeArray.java due to JDK-8262386
Reviewed-by: dcubed
2021-02-25 21:13:37 +00:00
Phil Race
228c285715 8261170: Upgrade to freetype 2.10.4
Reviewed-by: serb, psadhukhan, jdv, kizune
2021-02-25 19:19:51 +00:00
Weijun Wang
ded96ddcde 8139348: Deprecate 3DES and RC4 in Kerberos
Reviewed-by: mullan
2021-02-25 18:49:05 +00:00
Brian Burkhalter
5a9b70103c 8258444: Clean up specifications of java.io.Reader.read(char[],int,int) in subclass overrides
Reviewed-by: alanb, rriggs
2021-02-25 16:22:59 +00:00
Adam Sotona
7d4f60b16b 8260403: javap should be more robust in the face of invalid class files
Reviewed-by: vromero
2021-02-25 16:03:04 +00:00
Jonathan Gibbons
674be87d30 8261203: Incorrectly escaped javadoc html with type annotations
Reviewed-by: hannesw
2021-02-25 15:37:18 +00:00
Adam Sotona
2eca17d1b1 8261457: test/langtools/tools/javac/T8187978 can fail if ArrayList class is modified
Reviewed-by: vromero
2021-02-25 14:59:32 +00:00
Lin Zang
c54724da14 8257234: Add gz option to SA jmap to write a gzipped heap dump
Reviewed-by: cjplummer, ysuenaga, sspitsyn
2021-02-25 12:09:55 +00:00
Lin Zang
aa35b42354 8261131: jcmd jmap dump should not accept gz option with no value
Reviewed-by: cjplummer, sspitsyn
2021-02-25 12:06:32 +00:00
Evan Whelan
ebdc80ead9 8252883: AccessDeniedException caused by delayed file deletion on Windows
Reviewed-by: dfuchs
2021-02-25 12:05:16 +00:00
Chris Hegarty
f79c626816 8262296: Fix remaining doclint warnings in jdk.httpserver
Reviewed-by: dfuchs, bpb
2021-02-25 10:53:06 +00:00
Thomas Stuefe
ea48a0bb56 8262163: Extend settings printout in jcmd VM.metaspace
Reviewed-by: lucy
2021-02-25 09:20:11 +00:00
Tobias Hartmann
a83e802bce 8262299: C2 compilation fails with "modified node was not processed by IGVN.transform_old()"
Reviewed-by: roland, chagedorn
2021-02-25 08:53:27 +00:00
Ioi Lam
0f8be6e433 8261868: Reduce inclusion of metaspace.hpp
Reviewed-by: stuefe, ccheung
2021-02-25 04:31:12 +00:00
Yang Yi
3a0d6a64bc 8262099: jcmd VM.metaspace should report unlimited size if MaxMetaspaceSize isn't specified
Reviewed-by: stuefe, lucy
2021-02-25 02:08:52 +00:00
Severin Gehwolf
a50725db2a 8254001: [Metrics] Enhance parsing of cgroup interface files for version detection
Reviewed-by: hseigel, andrew
2021-02-24 19:39:46 +00:00
Jonathan Gibbons
65492129a9 8262315: missing ';' in generated entities
Reviewed-by: lancea
2021-02-24 18:07:33 +00:00
Fernando Guallini
d70fd7b3c4 8258855: Two tests sun/security/krb5/auto/ReplayCacheTestProc.java and ReplayCacheTestProcWithMD5.java failed on OL8.3
Reviewed-by: weijun, rhalade
2021-02-24 17:05:58 +00:00
Naoto Sato
9d9ad969ca 8261919: java/util/Locale/LocaleProvidersRun.java failed with "RuntimeException: Expected log was not emitted. LogRecord: null"
Reviewed-by: joehw, dfuchs
2021-02-24 16:23:24 +00:00
Ichiroh Takiguchi
2c99bad082 8261920: [AIX] jshell command throws java.io.IOError on non English locales
Reviewed-by: stuefe
2021-02-24 13:13:57 +00:00
Zhengyu Gu
8c07063dae 8262259: Remove unused variable in MethodLiveness::BasicBlock::compute_gen_kill_single
Reviewed-by: stuefe, thartmann
2021-02-24 12:55:14 +00:00
Daniel Fuchs
0d2dbd2995 8262027: Improve how HttpConnection detects a closed channel when taking/returning a connection to the pool
Reviewed-by: chegar, michaelm
2021-02-24 10:50:35 +00:00
Eric Liu
382e38dd24 8256438: AArch64: Implement match rules with ROR shift register value
Reviewed-by: aph, roland
2021-02-24 09:49:53 +00:00
Jonathan Gibbons
fac37bf515 8262269: javadoc test TestGeneratedClasses.java fails on Windows
Reviewed-by: darcy
2021-02-24 03:50:25 +00:00
Yumin Qi
3e13b66e3f 8262157: LingeredApp.startAppExactJvmOpts does not print app output when launching fails
Reviewed-by: iklam, cjplummer
2021-02-24 00:31:57 +00:00
Daniel D. Daugherty
c769388d0f 8262266: JDK-8262049 fails validate-source
Reviewed-by: dholmes
2021-02-23 22:08:53 +00:00
Daniel D. Daugherty
03e781b470 8262265: ProblemList jdk/javadoc/doclet/testGeneratedClasses/TestGeneratedClasses.java on Windows
Reviewed-by: rriggs, bpb
2021-02-23 21:48:05 +00:00
Roman Kennke
c6eae06142 8262049: [TESTBUG] Fix TestReferenceRefersTo.java for Shenandoah IU mode
Reviewed-by: kbarrett, zgu
2021-02-23 21:43:53 +00:00
Joe Darcy
e5304b3a99 8253409: Double-rounding possibility in float fma
Reviewed-by: bpb
2021-02-23 19:42:05 +00:00
Jonathan Gibbons
3132b1c4b1 8261665: Clean up naming of StringContent and FixedStringContent
Reviewed-by: hannesw
2021-02-23 19:29:41 +00:00
Jonathan Gibbons
c30a90bb64 8261976: Normalize id's used by the standard doclet
Reviewed-by: hannesw
2021-02-23 18:55:13 +00:00
Jonathan Gibbons
53b15453d9 8223355: Redundant output by javadoc
Reviewed-by: hannesw
2021-02-23 18:27:23 +00:00
Doug Simon
d2b9c227e5 8262011: [JVMCI] allow printing to tty from unattached libgraal thread
Reviewed-by: kvn, never
2021-02-23 17:01:11 +00:00
Gerard Ziemski
0257caad38 8261397: Try Catch Method Failing to Work When Dividing An Integer By 0
Reviewed-by: stuefe, prr, dcubed, dholmes
2021-02-23 16:38:53 +00:00
Roland Westrelin
8a2f58907c 8260637: Shenandoah: assert(_base == Tuple) failure during C2 compilation
Reviewed-by: chagedorn, kvn
2021-02-23 16:35:15 +00:00
Thomas Schatzl
67762de627 8262197: JDK-8242032 uses wrong contains_reference() in assertion code
Reviewed-by: ayang, kbarrett
2021-02-23 15:55:07 +00:00
Robbin Ehn
9d9bedd051 8262094: Handshake timeout scaled wrong
Reviewed-by: dholmes, stefank
2021-02-23 12:55:16 +00:00
Doug Simon
29c72631ee 8252709: Enable JVMCI when building linux-aarch64 at Oracle
Reviewed-by: kvn
2021-02-23 10:38:57 +00:00
Albert Mingkun Yang
12f6ba0deb 8262087: Use atomic boolean type in G1FullGCAdjustTask
Reviewed-by: kbarrett, tschatzl
2021-02-23 09:27:57 +00:00
Hannes Wallnöfer
a5c4b9a6b0 8260223: Handling of unnamed package in javadoc pages
Reviewed-by: jjg
2021-02-23 08:42:51 +00:00
Ioi Lam
8cfea7c523 8261921: ClassListParser::current should be used only by main thread
Reviewed-by: dholmes, ccheung, coleenp
2021-02-23 03:11:47 +00:00
Weijun Wang
991f7c1303 8210373: Deadlock in libj2gss.so when loading "j2gss" and "net" libraries in parallel.
Reviewed-by: xuelei
2021-02-23 00:59:58 +00:00
Paul Sandoz
0217d699e0 8261975: Missing "classpath exception" in VectorSupport.java
Reviewed-by: mchung
2021-02-23 00:44:48 +00:00
Jie Fu
f2bde05e6f 8262097: Improve CompilerConfig ergonomics to fix a VM crash after JDK-8261229
Reviewed-by: iveresov, kvn
2021-02-22 23:43:28 +00:00
Chris Plummer
aea474c48d 8261269: When using clhsdb to "inspect" a java object, clhsdb prints "Oop for..." twice
Reviewed-by: sspitsyn, kevinw
2021-02-22 23:22:50 +00:00
Sergey Bylokhov
a7e2e80ff4 8260695: The java.awt.color.ICC_Profile#getData/getData(int) are not thread safe
Reviewed-by: azvegint, aivanov
2021-02-22 22:34:53 +00:00
Jamil Nimeh
a30fb4fc68 8255867: SignatureScheme JSSE property does not preserve ordering in handshake messages
Reviewed-by: xuelei
2021-02-22 22:18:11 +00:00
Evan Whelan
a86728850e 8211227: Inconsistent TLS protocol version in debug output
Reviewed-by: xuelei, rhalade
2021-02-22 21:12:04 +00:00
Zhengyu Gu
7b924d8a28 8261973: Shenandoah: Cleanup/simplify root verifier
Reviewed-by: rkennke
2021-02-22 19:13:38 +00:00
Clive Verghese
63f8fc87cd 8259662: Don't wrap SocketExceptions into SSLExceptions in SSLSocketImpl
Reviewed-by: xuelei
2021-02-22 18:36:30 +00:00
Adam Farley
cf0019d964 8259942: Enable customizations in CompileJavaModules.gmk and Main.gmk
Reviewed-by: erikj, ihse
2021-02-22 17:16:29 +00:00
Joakim Nordström
a6a7e4398a 8242032: G1 region remembered sets may contain non-coarse level PRTs for already coarsened regions
Reviewed-by: ayang, tschatzl
2021-02-22 16:16:59 +00:00
Robbin Ehn
d7eebdac5d 8261391: ZGC crash - SEGV in RevokeOneBias::do_thread
Reviewed-by: eosterlund, dcubed, dholmes
2021-02-22 13:16:55 +00:00
Doug Lea
5b7b18c5bf 8259800: timeout in tck test testForkJoin(ForkJoinPool8Test)
Reviewed-by: martin, dholmes
2021-02-22 12:42:40 +00:00
Leo Korinth
419717ddae 8261803: Remove unused TaskTerminator in g1 full gc ref proc executor
Reviewed-by: ayang, tschatzl, sjohanss
2021-02-22 11:33:53 +00:00
Leo Korinth
011f5a5478 8261799: Remove unnecessary cast in psParallelCompact.hpp
Reviewed-by: ayang, stefank
2021-02-22 11:31:40 +00:00
Julia Boes
e9d7c07bda 8248318: Remove superfluous use of boxing in ObjectStreamClass
Reviewed-by: jlaskey, dfuchs, rriggs, chegar
2021-02-22 10:32:14 +00:00
Albert Mingkun Yang
6b7575bbb0 8228748: Remove GCLocker::_doing_gc
Reviewed-by: kbarrett, iwalulya, pliden, tschatzl
2021-02-22 10:10:53 +00:00
Roman Kennke
c20fb5db90 8261448: Preserve GC stack watermark across safepoints in StackWalk
Reviewed-by: eosterlund, stefank
2021-02-22 10:10:20 +00:00
Andrey Vershinin
26c1db901b 8254239: G1ConcurrentMark.hpp unnecessarily disables MSVC++ warning 4522.
Reviewed-by: iklam, kbarrett
2021-02-22 08:31:27 +00:00
Prasanta Sadhukhan
0c21dd053f 6206189: Graphics2D.clip specifies incorrectly that a 'null' is a valid value for this method
Reviewed-by: aivanov, kizune, azvegint
2021-02-22 04:46:33 +00:00
Yang Yi
2b55501519 8261949: fileStream::readln returns incorrect line string
Reviewed-by: dcubed, dholmes
2021-02-22 02:22:07 +00:00
Chris Plummer
539c80bfda 8261702: ClhsdbFindPC can fail due to PointerFinder incorrectly thinking an address is in a .so
Reviewed-by: ysuenaga, kevinw, sspitsyn
2021-02-21 18:59:02 +00:00
Joe Darcy
564011cff0 8261290: Improve error message for NumberFormatException on null input
Reviewed-by: attila, alanb
2021-02-21 18:43:26 +00:00
Chris Plummer
18188c2aa7 8261692: Bugs in clhsdb history support
Reviewed-by: amenkov, sspitsyn
2021-02-20 23:19:41 +00:00
Chris Plummer
0825bc5550 8261929: ClhsdbFindPC fails with java.lang.RuntimeException: 'In java stack' missing from stdout/stderr
Reviewed-by: amenkov, stuefe, sspitsyn
2021-02-20 20:48:00 +00:00
Chris Plummer
c2509ea9bc 8261857: serviceability/sa/ClhsdbPrintAll.java failed with "Test ERROR java.lang.RuntimeException: 'cannot be cast to' found in stdout"
Reviewed-by: sspitsyn
2021-02-20 20:46:57 +00:00
Alexander Zuev
2b00367e11 8261350: Create implementation for NSAccessibilityCheckBox protocol peer
Reviewed-by: pbansal
2021-02-20 05:39:44 +00:00
Kim Barrett
5a25cea541 8261998: Remove unused shared entry support from utilities/hashtable
Reviewed-by: coleenp, iklam
2021-02-20 03:02:27 +00:00
Joe Wang
475595847c 8262041: javax/xml/jaxp/unittest/common/prettyprint/PrettyPrintTest.java fails after JDK-8260858
Reviewed-by: lancea, naoto
2021-02-20 02:37:53 +00:00
Jie Fu
b10376bac1 8261938: ASN1Formatter.annotate should not return in the finally block
Reviewed-by: rriggs
2021-02-19 23:45:54 +00:00
Igor Veresov
977a21add8 8261225: TieredStopAtLevel should have no effect if TieredCompilation is disabled
Reviewed-by: kvn
2021-02-19 19:44:58 +00:00
Sandhya Viswanathan
c53acc2a89 8261542: X86 slice and unslice intrinsics for 256-bit byte/short vectors
Reviewed-by: kvn, neliasso
2021-02-19 18:10:56 +00:00
Daniel D. Daugherty
8b4fd77f60 8262042: ProblemList javax/xml/jaxp/unittest/common/prettyprint/PrettyPrintTest.java on Windows
Reviewed-by: joehw
2021-02-19 17:30:45 +00:00
Brian Burkhalter
7ffa1481c2 8247918: Clarify Reader.skip behavior for end of stream
Reviewed-by: rriggs, naoto
2021-02-19 17:21:11 +00:00
Naoto Sato
8a1c712c2e 8261728: SimpleDateFormat should link to DateTimeFormatter
Reviewed-by: bpb, rriggs, lancea, iris
2021-02-19 16:44:38 +00:00
Brian Burkhalter
851b2e31e1 6245663: (spec) File.renameTo(File) changes the file-system object, not the File instance
Reviewed-by: rriggs, naoto, alanb
2021-02-19 16:35:53 +00:00
Jonathan Gibbons
c4f17a3e1d 8257925: enable more support for nested inline tags
Reviewed-by: prappo, hannesw
2021-02-19 15:59:05 +00:00
Claes Redestad
433096a45e 8261744: Implement CharsetDecoder ASCII and latin-1 fast-paths
Reviewed-by: naoto, alanb
2021-02-19 15:05:25 +00:00
Christoph Langer
efbaedeb81 8262018: Wrong format in SAP copyright header of OsVersionTest
Reviewed-by: mdoerr
2021-02-19 14:44:53 +00:00
Zhengyu Gu
55463b0486 8261984: Shenandoah: Remove unused ShenandoahPushWorkerQueuesScope class
Reviewed-by: shade
2021-02-19 13:43:27 +00:00
Hamlin Li
a180a38618 8260694: (fc) Clarify FileChannel.transferFrom to better describe "no bytes available" case
Reviewed-by: alanb
2021-02-19 12:35:35 +00:00
Andrew Haley
1b0c36b05b 8261649: AArch64: Optimize LSE atomics in C++ code
Reviewed-by: adinn
2021-02-19 10:52:39 +00:00
Roberto Castañeda Lozano
61820b74dd 8259984: IGV: Crash when drawing control flow before GCM
Replace backward traversal in the IGV block formation algorithm by forward
traversal guided by node category information. This change addresses the
reported assertion failures, places block projection nodes together with their
predecessors, and gives a more natural block numbering.

Reviewed-by: chagedorn, neliasso
2021-02-19 08:18:32 +00:00
Thomas Stuefe
7e2c909ee1 8260485: Simplify and unify handler vectors in Posix signal code
Reviewed-by: dholmes, gziemski
2021-02-19 06:40:40 +00:00
Joe Wang
c99eeb0102 8260858: Implementation specific property xsltcIsStandalone for XSLTC Serializer
Reviewed-by: lancea, naoto
2021-02-19 06:34:21 +00:00
Thomas Stuefe
5caf686c80 8261644: NMT: Simplifications and cleanups
Reviewed-by: coleenp, zgu
2021-02-19 06:20:38 +00:00
Prasanta Sadhukhan
ed93bc9a01 8196301: java/awt/print/PrinterJob/Margins.java times out
Reviewed-by: prr
2021-02-19 05:03:21 +00:00
Kim Barrett
7e78c77713 8261905: Move implementation of OopStorage num_dead related functions
Reviewed-by: ayang, tschatzl
2021-02-19 02:50:22 +00:00
Calvin Cheung
78cde64800 8261860: Crash caused by lambda proxy class loaded in Shutdown hook
Reviewed-by: iklam, minqi
2021-02-19 02:40:03 +00:00
Chris Plummer
c158413e48 8261098: Add clhsdb "findsym" command
Reviewed-by: amenkov, sspitsyn
2021-02-19 00:58:28 +00:00
Alexey Semenyuk
0c31d5b9c5 8261977: Fix comment for getPrefixed() in canonicalize_md.c
Reviewed-by: alanb
2021-02-18 20:54:40 +00:00
Zhengyu Gu
9cf4f90d34 8261473: Shenandoah: Add breakpoint support
Reviewed-by: rkennke, shade
2021-02-18 18:32:01 +00:00
Joe Darcy
c4664e6446 8261940: Fix references to IOException in BigDecimal javadoc
Reviewed-by: alanb, chegar, iris, bpb
2021-02-18 17:52:30 +00:00
Amresh Sahu
0e9c5aedc8 8075909: [TEST_BUG] The regression-swing case failed as it does not have the 'Open' button when select 'subdir' folder with NimbusLAF
Reviewed-by: aivanov
2021-02-18 16:08:35 +00:00
Aleksey Shipilev
e9f3aab7f4 8261912: Code IfNode::fold_compares_helper more defensively
Reviewed-by: kvn, thartmann
2021-02-18 15:51:45 +00:00
Aleksey Shipilev
fd098e71a9 8261838: Shenandoah: reconsider heap region iterators memory ordering
Reviewed-by: rkennke
2021-02-18 15:50:40 +00:00
Zhengyu Gu
f94a845287 8261600: NMT: Relax memory order for updating MemoryCounter and fix racy updating of peak values
Reviewed-by: dholmes, shade
2021-02-18 13:30:46 +00:00
Leo Korinth
1a7adc8642 8260416: Remove unused method ReferenceProcessor::is_mt_processing_set_up()
Reviewed-by: ayang, kbarrett
2021-02-18 11:43:49 +00:00
Nils Eliasson
3a21e1df70 8260653: Unreachable nodes keep speculative types alive
Reviewed-by: vlivanov, thartmann
2021-02-18 10:22:20 +00:00
Aleksey Shipilev
b695c7eed4 8261925: ProblemList com/sun/jdi/AfterThreadDeathTest.java on Linux
Reviewed-by: dcubed
2021-02-18 06:51:03 +00:00
Tom Rodriguez
97e1657ba2 8261846: [JVMCI] c2v_iterateFrames can get out of sync with the StackFrameStream
Reviewed-by: kvn
2021-02-18 06:35:42 +00:00
Calvin Cheung
b8fd61420c 8261939: os::strdup_check_oom() should be used in os::same_files() in os_windows.cpp
Reviewed-by: minqi
2021-02-18 04:40:20 +00:00
Calvin Cheung
5f308291a0 8202750: Reduce the use of get_canonical_path() in CDS
Reviewed-by: minqi, iklam
2021-02-18 02:51:24 +00:00
Naoto Sato
ea5bf45c6f 8261621: Delegate Unicode history from JLS to j.l.Character
Reviewed-by: bpb, joehw, rriggs, darcy
2021-02-17 22:10:27 +00:00
Magnus Ihse Bursie
d5a4d2266b 8261843: incorrect info in docs/building.html
Reviewed-by: erikj
2021-02-17 17:40:11 +00:00
Mandy Chung
bf75a3a024 8261851: update ReflectionCallerCacheTest.java test to use ForceGC from test library
Reviewed-by: alanb
2021-02-17 17:34:58 +00:00
Hai-May Chao
05301f5fd2 8257497: Update keytool to create AKID from the SKID of the issuing certificate as specified by RFC 5280
Reviewed-by: coffeys, mullan, weijun
2021-02-17 16:38:56 +00:00
Jatin Bhateja
cb84539d56 8261553: Efficient mask generation using BMI2 BZHI instruction
Reviewed-by: redestad, neliasso
2021-02-17 14:09:45 +00:00
Matthias Baesken
a0658795cf 8261791: (sctp) handleSendFailed in SctpChannelImpl.c potential leaks
Reviewed-by: chegar, alanb
2021-02-17 13:49:30 +00:00
Martin Doerr
9ba2b71a61 8261657: [PPC64] Cleanup StoreCM nodes after CMS removal
Reviewed-by: lucy, goetz
2021-02-17 13:11:29 +00:00
Stefan Johansson
f639df435e 8261401: Add sanity check for UseSHM large pages similar to the one used with hugetlb large pages
Reviewed-by: stuefe, tschatzl
2021-02-17 12:03:25 +00:00
Christoph Göttschkes
2e18b52aed 8261752: Multiple GC test are missing memory requirements
Reviewed-by: tschatzl, sjohanss
2021-02-17 10:41:38 +00:00
Christoph Göttschkes
c7885eb1c5 8261758: [TESTBUG] gc/g1/TestGCLogMessages.java fails if ergonomics detect too small InitialHeapSize
Reviewed-by: tschatzl, sjohanss
2021-02-17 10:40:46 +00:00
Martin Doerr
05d5955638 8261522: [PPC64] AES intrinsics write beyond the destination array
Reviewed-by: lucy
2021-02-17 10:27:07 +00:00
Julia Boes
03b586b32c 8261750: Remove internal class sun.net.www.MimeLauncher
Reviewed-by: alanb, dfuchs
2021-02-17 10:07:15 +00:00
Christian Hagedorn
8418285530 8261235: C1 compilation fails with assert(res->vreg_number() == index) failed: conversion check
Reviewed-by: thartmann, kvn
2021-02-17 09:00:39 +00:00
Thomas Schatzl
a9308705ff 8261309: Remove remaining StoreLoad barrier with UseCondCardMark for Serial/Parallel GC
Reviewed-by: shade, ayang, sjohanss
2021-02-17 08:50:06 +00:00
Anton Kozlov
b955f85e03 8261075: Create stubRoutines.inline.hpp with SafeFetch implementation
Reviewed-by: dcubed, stuefe, stefank
2021-02-17 08:10:32 +00:00
Aleksey Shipilev
d19503353e 8261842: Shenandoah: cleanup ShenandoahHeapRegionSet
Reviewed-by: rkennke
2021-02-17 06:57:25 +00:00
Ioi Lam
fc1d0321dd 8261125: Move VM_Operation to vmOperation.hpp
Reviewed-by: coleenp, stuefe
2021-02-17 05:53:06 +00:00
Joe Darcy
d547e1a847 8261123: Augment discussion of equivalence classes in Object.equals and comparison methods
Reviewed-by: bpb, smarks, rriggs
2021-02-17 01:08:39 +00:00
Xin Liu
2677f6f47d 8261675: ObjectValue::set_visited(bool) sets _visited false
Reviewed-by: kvn
2021-02-17 00:24:35 +00:00
Chris Plummer
e7e20d4ec6 8261711: Clhsdb "versioncheck true" throws NPE every time
Reviewed-by: amenkov, sspitsyn
2021-02-16 22:32:10 +00:00
Chris Plummer
55d7bbcec0 8261607: SA attach is exceeding JNI Local Refs capacity
Reviewed-by: sgehwolf, amenkov
2021-02-16 21:16:55 +00:00
Fernando Guallini
0a50688dec 8241372: Several test failures due to javax.net.ssl.SSLException: Connection reset
Reviewed-by: dfuchs, rhalade
2021-02-16 18:54:39 +00:00
Leo Korinth
61a659f4bf 8260415: Remove unused class ReferenceProcessorMTProcMutator
Reviewed-by: ayang, sjohanss
2021-02-16 18:29:41 +00:00
Jamil Nimeh
6b6f794051 8248223: KeyAgreement spec update on multi-party key exchange support
Reviewed-by: mullan
2021-02-16 17:40:29 +00:00
Christoph Langer
8ba390d1e2 8261753: Test java/lang/System/OsVersionTest.java still failing on BigSur patch versions after JDK-8253702
Reviewed-by: rriggs
2021-02-16 12:57:59 +00:00
Roberto Castañeda Lozano
16bd7d381f 8261336: IGV: enhance default filters
Add filters to color and hide parts of the graph based on node categories or
estimated execution frequency, and simplify remaining filters.

Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Reviewed-by: vlivanov, chagedorn, thartmann
2021-02-16 12:47:56 +00:00
Aleksey Shipilev
3f8819c666 8261501: Shenandoah: reconsider heap statistics memory ordering
Reviewed-by: rkennke
2021-02-16 10:31:40 +00:00
Albert Mingkun Yang
3cbd16de3d 8259668: Make SubTasksDone use-once
Reviewed-by: tschatzl, kbarrett
2021-02-16 08:46:58 +00:00
Matthias Baesken
219b115e21 8261422: Adjust problematic String.format calls in jdk/internal/util/Preconditions.java outOfBoundsMessage
Reviewed-by: clanger
2021-02-16 08:44:08 +00:00
Matthias Baesken
cdc874d4c9 8261601: free memory in early return in Java_sun_nio_ch_sctp_SctpChannelImpl_receive0
Reviewed-by: clanger, dfuchs, bpb
2021-02-16 08:40:14 +00:00
Roman Kennke
e2d52ae265 8261413: Shenandoah: Disable class-unloading in I-U mode
Reviewed-by: shade, zgu
2021-02-16 08:17:32 +00:00
Jonathan Gibbons
34ae7aeb64 8261609: remove remnants of XML-driven builders
Reviewed-by: hannesw
2021-02-15 20:27:06 +00:00
Alexander Zuev
6badd22e66 8261351: Create implementation for NSAccessibilityRadioButton protocol
Reviewed-by: pbansal
2021-02-15 19:03:48 +00:00
Pankaj Bansal
849f4c0fb7 8260291: The case instruction is not visible in dark mode
Reviewed-by: trebari, aivanov
2021-02-15 16:43:49 +00:00
Stanimir Stamenkov
2e610f53c1 8260687: Inherited font size is smaller than expected when using StyleSheet to add styles
Co-authored-by: Alexey Ivanov <aivanov@openjdk.org>
Reviewed-by: psadhukhan, aivanov, kizune
2021-02-15 16:16:50 +00:00
Leo Korinth
3882fda83b 8260414: Remove unused set_single_threaded_mode() method in task executor
Reviewed-by: kbarrett, ayang
2021-02-15 08:52:47 +00:00
Aleksey Shipilev
c6eedda89e 8261500: Shenandoah: reconsider region live data memory ordering
Reviewed-by: zgu
2021-02-15 08:44:20 +00:00
Aleksey Shipilev
df0897ea57 8261504: Shenandoah: reconsider ShenandoahJavaThreadsIterator::claim memory ordering
Reviewed-by: zgu
2021-02-15 08:43:42 +00:00
Aleksey Shipilev
745c0b9140 8261493: Shenandoah: reconsider bitmap access memory ordering
Reviewed-by: rkennke, zgu
2021-02-15 08:43:05 +00:00
Aleksey Shipilev
4642730b05 8261496: Shenandoah: reconsider pacing updates memory ordering
Reviewed-by: zgu
2021-02-15 08:42:28 +00:00
Aleksey Shipilev
7c93159169 8261503: Shenandoah: reconsider verifier memory ordering
Reviewed-by: zgu
2021-02-15 08:41:28 +00:00
Ioi Lam
d9744f6536 8261608: Move common CDS archive building code to archiveBuilder.cpp
Reviewed-by: coleenp, ccheung
2021-02-15 06:37:39 +00:00
Ioi Lam
235da6aa04 8261672: Reduce inclusion of classLoaderData.hpp
Reviewed-by: lfoltan, coleenp
2021-02-13 07:13:22 +00:00
Hui Shi
95d73129ce 8261585: Restore HandleArea used in Deoptimization::uncommon_trap
Reviewed-by: coleenp, jiefu
2021-02-13 02:47:33 +00:00
Jaikiran Pai
849390a11e 8260401: StackOverflowError on open WindowsPreferences
Reviewed-by: bpb
2021-02-13 02:14:32 +00:00
Daniel D. Daugherty
735757f1e0 8261661: gc/stress/TestReclaimStringsLeaksMemory.java fails because Reserved memory size is too big
Co-authored-by: Albert Mingkun Yang <ayang@openjdk.org>
Reviewed-by: ayang, kbarrett
2021-02-12 22:41:08 +00:00
Chris Plummer
e29c560a11 8247514: Improve clhsdb 'findpc' ability to determine what an address points to by improving PointerFinder and PointerLocation classes
Reviewed-by: ysuenaga, kevinw
2021-02-12 22:01:43 +00:00
Christoph Langer
dc46aa85c6 8261534: Test sun/security/pkcs11/KeyAgreement/IllegalPackageAccess.java fails on platforms where no nsslib artifacts are defined
Reviewed-by: mbaesken
2021-02-12 20:58:22 +00:00
Phil Race
f0d9829b68 8261533: Java_sun_font_CFont_getCascadeList leaks memory according to Xcode
Reviewed-by: serb
2021-02-12 18:42:07 +00:00
Coleen Phillimore
06170b7cbf 8261662: Rename compute_loader_lock_object
Reviewed-by: dcubed, stuefe
2021-02-12 17:45:47 +00:00
Chris Hegarty
3dc6f52a89 8261160: Add a deserialization JFR event
Co-authored-by: Sean Coffey <coffeys@openjdk.org>
Co-authored-by: Chris Hegarty <chegar@openjdk.org>
Reviewed-by: coffeys, rriggs, dfuchs, egahlin
2021-02-12 17:35:25 +00:00
Andrew Haley
a305743cfa 8261660: AArch64: Race condition in stub code generation for LSE Atomics
Reviewed-by: dcubed, adinn
2021-02-12 17:34:29 +00:00
Vladimir Kempik
28163a9e98 8261652: Remove some dead comments from os_bsd_x86
Reviewed-by: dcubed
2021-02-12 17:10:21 +00:00
Roger Riggs
66757750a2 8253702: BigSur version number reported as 10.16, should be 11.nn
Reviewed-by: bpb, kcr
2021-02-12 16:42:13 +00:00
Daniel D. Daugherty
33fcd325f6 8261659: JDK-8261027 causes a Tier1 validate-source failure
Reviewed-by: iignatyev, bpb
2021-02-12 16:17:16 +00:00
Jonathan Gibbons
3aa1b4c72c 8261623: reference to javac internals in Extern class
Reviewed-by: hannesw
2021-02-12 16:16:44 +00:00
Ian Graves
350303d4f0 8260221: java.util.Formatter throws wrong exception for mismatched flags in %% conversion
Reviewed-by: smarks
2021-02-12 16:06:39 +00:00
Martin Doerr
6475d4774f 8261655: [PPC64] Build broken after JDK-8260941
Reviewed-by: shade, clanger
2021-02-12 15:46:37 +00:00
Hannes Wallnöfer
c0e805a475 8261654: Missing license header in Signatures.java
Reviewed-by: jjg
2021-02-12 15:44:15 +00:00
Anton Kozlov
b670efd896 8261072: AArch64: Fix MacroAssembler::get_thread convention
Reviewed-by: burban, aph
2021-02-12 15:11:21 +00:00
Weijun Wang
59b8d595d2 8261481: Cannot read Kerberos settings in dynamic store on macOS Big Sur
Reviewed-by: mullan
2021-02-12 14:57:01 +00:00
Stefan Johansson
9f81ca8175 8261230: GC tracing of page sizes are wrong in a few places
Reviewed-by: ayang, stuefe
2021-02-12 14:56:25 +00:00
Andrew Haley
40ae9937a0 8261027: AArch64: Support for LSE atomics C++ HotSpot code
Reviewed-by: adinn, simonis
2021-02-12 13:12:02 +00:00
Michael McMahon
9ffabf30c3 8252971: WindowsFileAttributes does not know about Unix domain sockets
Reviewed-by: alanb
2021-02-12 13:08:08 +00:00
Anton Kozlov
682e78e89b 8261071: AArch64: Refactor interpreter native wrappers
Reviewed-by: aph
2021-02-12 10:27:47 +00:00
Christoph Göttschkes
ebaa58d9c0 8261505: Test test/hotspot/jtreg/gc/parallel/TestDynShrinkHeap.java killed by Linux OOM Killer
Reviewed-by: sjohanss, tschatzl
2021-02-12 09:41:49 +00:00
Hannes Wallnöfer
3210095a17 8261079: Fix support for @hidden in classes and interfaces
Reviewed-by: jjg
2021-02-12 09:26:42 +00:00
Thomas Schatzl
9c0ec8d848 8260941: Remove the conc_scan parameter for CardTable
Reviewed-by: ayang, kbarrett
2021-02-12 08:41:33 +00:00
Hannes Wallnöfer
da9895a0a4 8261499: Simplify HTML for javadoc links
Reviewed-by: jjg
2021-02-12 08:32:47 +00:00
Hannes Wallnöfer
0779addeb7 8255059: Regressions >5% in all Javadoc benchmarks in 16-b19
Reviewed-by: jjg
2021-02-12 08:27:52 +00:00
Kim Barrett
6a84ec68c3 8260044: Parallel GC: Concurrent allocation after heap expansion may cause unnecessary full gc
8260045: Parallel GC: Waiting on ExpandHeap_lock may cause "expansion storm"

Loop to retry allocation if expand succeeds.  Treat space available after obtaining expand lock as expand success.

Reviewed-by: tschatzl, iwalulya, sjohanss
2021-02-12 08:19:08 +00:00
Matthias Baesken
92ff891877 8261593: Do not use NULL pointer as write buffer parameter in jfrEmergencyDump.cpp write_repository_files
Reviewed-by: stuefe, mgronlun
2021-02-12 07:50:28 +00:00
Alex Menkov
60a2072a43 8260431: com/sun/jdi/JdbOptions.java failed with "RuntimeException: 'prop[boo] = >foo<' missing from stdout/stderr"
Reviewed-by: sspitsyn, cjplummer
2021-02-11 23:31:37 +00:00
Sergey Bylokhov
bf47a479b9 8261282: Lazy initialization of built-in ICC_Profile/ColorSpace classes is too lazy
Reviewed-by: azvegint
2021-02-11 22:05:12 +00:00
John Jiang
f4cfd75834 8261510: Use RFC numbers and protocol titles in sun.security.ssl.SSLExtension comments
Reviewed-by: wetmore, xuelei
2021-02-11 18:25:31 +00:00
Daniel D. Daugherty
75c8489ce8 8261604: ProblemList jdk/dynalink/TypeConverterFactoryMemoryLeakTest.java
Reviewed-by: hseigel
2021-02-11 18:10:42 +00:00
Thomas Stuefe
1740de2a0d 8261297: NMT: Final report should use scale 1
Reviewed-by: zgu
2021-02-11 14:58:57 +00:00
Yasumasa Suenaga
c342323c7a 8261431: SA: Add comments about load address of executable
Reviewed-by: sspitsyn, kevinw
2021-02-11 14:58:03 +00:00
Zhengyu Gu
4a72cea019 8261509: Move per-thread StackWatermark from Thread to JavaThread class
Reviewed-by: eosterlund
2021-02-11 14:02:24 +00:00
Stefan Johansson
eef86a80f8 8261029: Code heap page sizes not traced correctly using os::trace_page_sizes
Reviewed-by: kvn, stuefe, thartmann
2021-02-11 13:10:37 +00:00
Christian Hagedorn
0a89987a96 8240281: Remove failing assertion code when selecting first memory state in SuperWord::co_locate_pack
Reviewed-by: roland, kvn, thartmann
2021-02-11 13:00:10 +00:00
Aleksey Shipilev
9fed6048a2 8261300: jpackage: rewrite while(0)/while(false) to proper blocks
Reviewed-by: herrick, asemenyuk, almatvee
2021-02-11 11:57:45 +00:00
Claes Redestad
8b6ab31d31 8261418: Reduce decoder creation overheads for sun.nio.cs.ext Charsets
Reviewed-by: naoto
2021-02-11 10:43:56 +00:00
Claes Redestad
5e1b8092d2 8261444: Remove unused fields in Lower
Reviewed-by: vromero
2021-02-11 10:41:59 +00:00
Vladimir Ivanov
a9c36805c4 8261250: Dependencies: Remove unused dependency types
Reviewed-by: kvn, thartmann
2021-02-11 10:16:37 +00:00
Vladimir Ivanov
3ede231dec 8259430: C2: assert(in_vt->length() == out_vt->length()) failed: mismatch on number of elements
Reviewed-by: kvn, thartmann
2021-02-11 10:16:09 +00:00
Patrick Concannon
1662373400 8235139: Deprecate the socket impl factory mechanism
Reviewed-by: dfuchs, alanb, chegar
2021-02-11 10:00:31 +00:00
Aleksey Shipilev
49cf13d2fb 8261449: Micro-optimize JVM_LatestUserDefinedLoader
Reviewed-by: dholmes, stuefe, alanb
2021-02-11 08:53:21 +00:00
Thomas Stuefe
837bd8930d 8261548: ProblemList runtime/NMT/CheckForProperDetailStackTrace.java
Reviewed-by: jwilhelm
2021-02-11 05:31:11 +00:00
Ioi Lam
adca84cc29 8260341: CDS dump VM init code does not check exceptions
Reviewed-by: coleenp, hseigel
2021-02-11 05:11:48 +00:00
Sergey Bylokhov
447db62762 6211198: ICC_Profile.getInstance(byte[]): IAE is not specified
Reviewed-by: prr, pbansal
2021-02-10 23:57:32 +00:00
Alex Menkov
cc5691c69e 8248162: serviceability/attach/RemovingUnixDomainSocketTest.java failed
Reviewed-by: cjplummer, sspitsyn
2021-02-10 22:17:48 +00:00
Prasanta Sadhukhan
40754f12f7 4841153: java.awt.geom.Rectangle2D.add(double,double) documented incorrectly
Reviewed-by: prr
2021-02-10 17:26:28 +00:00
Phil Race
4caeb39f01 8260380: Upgrade to LittleCMS 2.12
Reviewed-by: jdv, serb
2021-02-10 16:33:56 +00:00
Aleksey Shipilev
a7726390cc 8261298: LinuxPackage.c, getJvmLauncherLibPath RPM->DEB typo
Reviewed-by: asemenyuk, almatvee, herrick
2021-02-10 15:08:34 +00:00
Coleen Phillimore
52fc01b3ee 8261268: LOAD_INSTANCE placeholders unneeded for parallelCapable class loaders
Reviewed-by: dholmes, iklam
2021-02-10 12:33:47 +00:00
Thomas Stuefe
a3d6e37153 8261302: NMT: Improve malloc site table hashing
Reviewed-by: zgu, lucy
2021-02-10 07:46:17 +00:00
Aleksey Shipilev
ad54d8dd83 8260934: java/lang/StringBuilder/HugeCapacity.java fails without Compact Strings
Reviewed-by: iklam
2021-02-10 07:32:53 +00:00
Prasanta Sadhukhan
752f92bc10 6211242: AreaAveragingScaleFilter(int, int): IAE is not specified
Reviewed-by: azvegint, trebari, serb
2021-02-10 07:24:29 +00:00
Prasanta Sadhukhan
3af334a5c7 6211257: BasicStroke.createStrokedShape(Shape): NPE is not specified
Reviewed-by: serb, prr, aivanov
2021-02-10 07:22:44 +00:00
Weijun Wang
4619f372ae 8261472: BasicConstraintsExtension::toString shows "PathLen:2147483647" if there is no pathLenConstraint
Reviewed-by: jnimeh
2021-02-10 01:59:41 +00:00
Alexey Semenyuk
699a3cde74 8223188: Removed unnecessary #ifdef __cplusplus from .cpp sources
Reviewed-by: herrick, almatvee, iklam
2021-02-09 22:20:43 +00:00
Erik Joelsson
05c6009eab 8259656: fixpath.sh changes broke _NT_SYMBOL_PATH in RunTests.gmk
Reviewed-by: tbell, ihse
2021-02-09 19:08:45 +00:00
Rajan Halade
ef7ee3f44e 8225081: Remove Telia Company CA certificate expiring in April 2021
Reviewed-by: mullan
2021-02-09 17:56:35 +00:00
Joe Wang
7c565f8b37 8261209: isStandalone property: remove dependency on pretty-print
Reviewed-by: lancea, naoto
2021-02-09 17:50:25 +00:00
Aleksey Shipilev
01d928080a 8261299: Use-after-free on failure path in LinuxPackage.c, getJvmLauncherLibPath
Reviewed-by: stuefe, herrick
2021-02-09 17:46:18 +00:00
Albert Mingkun Yang
a00b13055a 8261356: Clean up enum G1Mark
Reviewed-by: sjohanss, tschatzl
2021-02-09 17:38:59 +00:00
Naoto Sato
becee6435b 8261279: sun/util/resources/cldr/TimeZoneNamesTest.java timed out
Reviewed-by: bpb, lancea, joehw
2021-02-09 17:09:21 +00:00
Brian Burkhalter
f395ee0c76 8261306: ServiceLoader documentation has malformed Unicode escape
Reviewed-by: lancea, iris, naoto
2021-02-09 16:43:36 +00:00
Attila Szegedi
8f4c15f641 8198540: Dynalink leaks memory when generating type converters
Reviewed-by: plevart, hannesw
2021-02-09 16:06:49 +00:00
Ian Graves
edd5fc883a 8261096: Convert jlink tool to use Stream.toList()
Reviewed-by: alanb, smarks
2021-02-09 15:42:59 +00:00
Claes Redestad
2f893c2b83 8260337: Optimize ImageReader lookup, used by Class.getResource
Reviewed-by: jlaskey, sundar
2021-02-09 15:32:36 +00:00
Markus Grönlund
f0bd9db5c7 8257569: Failure observed with JfrVirtualMemory::initialize
Reviewed-by: egahlin, poonam
2021-02-09 15:16:44 +00:00
Quaffel
906facabad 8260372: [PPC64] Add support for JDK-8210498 and JDK-8222841
Reviewed-by: mdoerr, goetz
2021-02-09 14:24:44 +00:00
Harold Seigel
b38d5be887 8261340: Fix 'deprecated' warnings in the vmTestbase/nsk tests
Reviewed-by: lfoltan, sspitsyn
2021-02-09 13:16:26 +00:00
Hannes Wallnöfer
b0e7e5abde 8261263: Simplify javadoc link code
Reviewed-by: jjg
2021-02-09 13:07:35 +00:00
Matthias Baesken
8ebed28403 8261237: remove isClassPathAttributePresent method
Reviewed-by: shade, clanger, redestad, alanb
2021-02-09 11:18:49 +00:00
Nick Gasson
5183d8ae1e 8260355: AArch64: deoptimization stub should save vector registers
Reviewed-by: vlivanov, aph
2021-02-09 01:49:52 +00:00
Sergey Bylokhov
5d8204b169 8261368: The new TestNullSetColor test is placed in the wrong group
Reviewed-by: kizune
2021-02-09 00:01:32 +00:00
David Holmes
f03e839e48 8261127: Cleanup THREAD/TRAPS/CHECK usage in CDS code
Reviewed-by: iklam, coleenp
2021-02-08 23:16:47 +00:00
Brian Burkhalter
7451962849 8129776: The optimized Stream returned from Files.lines should unmap the mapped byte buffer (if created) when closed
Reviewed-by: rriggs, psandoz, alanb
2021-02-08 22:18:00 +00:00
Alexey Semenyuk
ad525bcd38 8261281: Linking jdk.jpackage fails for linux aarch32 builds after 8254702
Reviewed-by: erikj
2021-02-08 22:05:02 +00:00
Joe Darcy
2fd8ed024b 8240632: Note differences between IEEE 754-2019 math lib special cases and java.lang.Math
Reviewed-by: bpb
2021-02-08 21:50:55 +00:00
Coleen Phillimore
ace8f94616 8195744: Avoid calling ClassLoader.checkPackageAccess if security manager is not installed
Reviewed-by: dholmes, iklam
2021-02-08 21:31:25 +00:00
Erik Joelsson
ab65d53edf 8261261: The version extra fields needs to be overridable in jib-profiles.js
Reviewed-by: ihse
2021-02-08 19:23:46 +00:00
Thomas Stuefe
20d7713c57 8261334: NMT: tuning statistic shows incorrect hash distribution
Reviewed-by: zgu, shade
2021-02-08 18:46:18 +00:00
Claes Redestad
92c6e6dffa 8261254: Initialize charset mapping data lazily
Reviewed-by: alanb, jkuhn, naoto
2021-02-08 18:45:43 +00:00
Martin Buchholz
351d788809 8259074: regex benchmarks and tests
Reviewed-by: redestad
2021-02-08 18:09:59 +00:00
Dmitry Markov
d6d5d9bf2f 8261231: Windows IME was disabled after DnD operation
Reviewed-by: kizune, serb
2021-02-08 17:09:09 +00:00
Igor Veresov
29a428f5ea 8261229: MethodData is not correctly initialized with TieredStopAtLevel=3
Reviewed-by: thartmann
2021-02-08 17:08:36 +00:00
Matthias Perktold
48c932e1f1 8231286: HTML font size too large with high-DPI scaling and W3C_LENGTH_UNITS
Reviewed-by: aivanov, psadhukhan
2021-02-08 14:32:07 +00:00
Alexey Ivanov
dbc35f607a 8261094: Open javax/swing/text/html/CSS/4765271/bug4765271.java
Reviewed-by: serb, psadhukhan, kizune
2021-02-08 14:31:34 +00:00
Harold Seigel
db0ca2b9d4 8261161: Clean up warnings in hotspot/jtreg/vmTestbase tests
Reviewed-by: lfoltan, coleenp
2021-02-08 13:19:40 +00:00
Daniel Fuchs
2c28e36454 8237352: Update DatagramSocket to add support for joining multicast groups
Reviewed-by: alanb
2021-02-08 12:55:00 +00:00
Jan Lahoda
d0a8f2f737 8260593: javac can skip a temporary local variable when pattern matching over a local variable
Reviewed-by: vromero
2021-02-08 09:36:29 +00:00
Roman Kennke
deb0544ff3 8261251: Shenandoah: Use object size for full GC humongous compaction
Reviewed-by: aph, shade
2021-02-08 08:01:35 +00:00
Aleksey Shipilev
d45343ea51 8260899: ARM32: SyncOnValueBasedClassTest fails with assert(is_valid()) failed: invalid register
Reviewed-by: dsamersoff
2021-02-08 07:29:40 +00:00
Yasumasa Suenaga
9d59dec200 8248876: LoadObject with bad base address created for exec file on linux
Reviewed-by: cjplummer, kevinw
2021-02-08 02:34:01 +00:00
Dong Bo
aa5bc6edb3 8258953: AArch64: move NEON instructions to aarch64_neon.ad
Reviewed-by: njian, aph
2021-02-08 02:12:29 +00:00
Ioi Lam
c5ff454481 8250989: Consolidate buffer allocation code for CDS static/dynamic dumping
Reviewed-by: ccheung, coleenp
2021-02-07 07:10:38 +00:00
Igor Veresov
0e18634b6a 8261270: MakeMethodNotCompilableTest fails with -XX:TieredStopAtLevel={1,2,3}
Reviewed-by: kvn
2021-02-07 02:24:15 +00:00
Pengfei Li
7a2db858e0 8261022: Fix incorrect result of Math.abs() with char type
Reviewed-by: thartmann, neliasso
2021-02-07 01:15:24 +00:00
Coleen Phillimore
2c3a86f96e 8261280: Remove THREAD argument from compute_loader_lock_object
Reviewed-by: dcubed
2021-02-06 16:35:30 +00:00
Sergey Bylokhov
74d40ab72f 8261200: Some code in the ICC_Profile may not close file streams properly
Reviewed-by: azvegint
2021-02-06 03:38:58 +00:00
Jesper Wilhelmsson
d7acfae3d2 Merge 2021-02-06 00:29:45 +00:00
Ivan Šipka
fb46d4e578 8259268: Refactor InheritIO shell test as java test
Reviewed-by: iignatyev, rriggs
2021-02-06 00:05:42 +00:00
Alexander Zuev
440db35e8f 8216358: [accessibility] [macos] The focus is invisible when tab to "Image Radio Buttons" and "Image CheckBoxes"
Reviewed-by: serb, pbansal
2021-02-05 22:27:41 +00:00
Alexey Semenyuk
fac3c2d258 8254702: jpackage app launcher crashes on CentOS
Reviewed-by: almatvee, erikj, herrick
2021-02-05 20:44:34 +00:00
Zhengyu Gu
7a6c176845 8260736: Shenandoah: Cleanup includes in ShenandoahGC and families
Reviewed-by: shade, rkennke
2021-02-05 19:30:14 +00:00
Phil Race
4a89733e70 8261198: [macOS] Incorrect JNI parameters in number conversion in A11Y code
Reviewed-by: serb, psadhukhan
2021-02-05 19:19:10 +00:00
Naoto Sato
4a1814cbf0 8261179: Norwegian Bokmål Locale fallback issue
Reviewed-by: joehw
2021-02-05 18:15:40 +00:00
Calvin Cheung
0218917109 8258732: runtime/cds/appcds/dynamicArchive/DynamicArchiveRelocationTest.java fails
Reviewed-by: minqi, iklam
2021-02-05 17:23:48 +00:00
Coleen Phillimore
f9df366255 8242300: SystemDictionary::resolve_super_or_fail() should look for the super class first
Reviewed-by: iklam, ccheung
2021-02-05 15:49:49 +00:00
Matthias Baesken
43ae0cf878 8261167: print_process_memory_info add a close call after fopen
Reviewed-by: stuefe, dholmes
2021-02-05 13:37:44 +00:00
Martin Doerr
48f5220c80 8260369: [PPC64] Add support for JDK-8200555
Reviewed-by: lucy
2021-02-05 12:58:23 +00:00
Kim Barrett
224c166c30 8261213: [BACKOUT] MutableSpace's end should be atomic
Reviewed-by: tschatzl, ayang
2021-02-05 10:18:51 +00:00
Roland Westrelin
3495febf51 8260296: SA's dumpreplaydata fails
Reviewed-by: kvn, cjplummer, iignatyev
2021-02-05 09:33:54 +00:00
Claes Redestad
07918995da 8261154: Memory leak in Java_java_lang_ClassLoader_defineClass0 with long class names
Reviewed-by: stuefe, chegar, mchung
2021-02-05 08:58:32 +00:00
Thomas Schatzl
78b0d32742 8234534: Simplify CardTable code after CMS removal
Reviewed-by: ayang, kbarrett
2021-02-05 08:33:32 +00:00
Thomas Stuefe
ee2f205529 8260926: Trace resource exhausted events unconditionally
Reviewed-by: dholmes, coleenp
2021-02-05 07:31:06 +00:00
Kim Barrett
1e0a1013ef 8259862: MutableSpace's end should be atomic
Make _end volatile and use atomic access

Reviewed-by: ayang, tschatzl
2021-02-05 07:24:09 +00:00
Fernando Guallini
d2bd499222 8163498: Many long-running security libs tests
Reviewed-by: rhalade, weijun
2021-02-05 05:22:51 +00:00
Ioi Lam
c5bb109272 8260019: Move some Thread subtypes out of thread.hpp
Reviewed-by: dholmes, coleenp
2021-02-05 03:02:11 +00:00
Daniel D. Daugherty
08f7454fa9 8261190: restore original Alibaba copyright line in two files
Reviewed-by: dholmes
2021-02-04 23:08:15 +00:00
Phil Race
3bb6a3d2ab 8261109: [macOS] Remove disabled warning for JNF in make/autoconf/flags-cflags.m4
Reviewed-by: serb, ihse, erikj
2021-02-04 21:00:18 +00:00
Ioi Lam
c59e4b66bb 8261106: Reduce inclusion of jniHandles.hpp
Reviewed-by: coleenp, hseigel
2021-02-04 19:05:38 +00:00
Kiran Sidhartha Ravikumar
d9aefa36ac 8260356: (tz) Upgrade time-zone data to tzdata2021a
Reviewed-by: naoto
2021-02-04 17:49:07 +00:00
Andy Herrick
bdcbfa10ce 8259927: Windows jpackage installer issues
Reviewed-by: asemenyuk, almatvee, kizune
2021-02-04 17:48:36 +00:00
Erik Gahlin
e93e1e1c7b 8261157: Incorrect GPL header after JDK-8259956
Reviewed-by: mgronlun
2021-02-04 17:01:45 +00:00
Roland Westrelin
4de3a6be9e 8260709: C2: assert(false) failed: unscheduable graph
Reviewed-by: thartmann, chagedorn
2021-02-04 15:11:25 +00:00
Andy Herrick
c1dea39d08 8260335: [macos] Running app using relative path causes problems
Reviewed-by: almatvee, kizune
2021-02-04 14:50:54 +00:00
Magnus Ihse Bursie
f7a6cff983 8261149: Initial nroff manpage update for JDK 17
Reviewed-by: dholmes, erikj
2021-02-04 14:37:33 +00:00
Thomas Schatzl
be772ffaf3 8261023: Document why memory pretouch must be a store
Reviewed-by: shade, iwalulya
2021-02-04 13:47:51 +00:00
Claes Redestad
83357b1196 8261030: Avoid loading GenerateJLIClassesHelper at runtime
Reviewed-by: mchung
2021-02-04 10:47:03 +00:00
Claes Redestad
992b50087d 8261036: Reduce classes loaded by CleanerFactory initialization
Reviewed-by: rriggs
2021-02-04 10:46:10 +00:00
Denghui Dong
e8ad8b3504 8259956: jdk.jfr.internal.ChunkInputStream#available should return the sum of remaining available bytes
Reviewed-by: egahlin
2021-02-04 09:22:01 +00:00
Sergey Bylokhov
06b33a0ad7 8261107: ArrayIndexOutOfBoundsException in the ICC_Profile.getInstance(InputStream)
Reviewed-by: azvegint, psadhukhan
2021-02-04 07:28:27 +00:00
Prasanta Sadhukhan
60f440deb9 6436374: Graphics.setColor(null) is not documented
Reviewed-by: serb, pbansal
2021-02-04 04:13:05 +00:00
Ioi Lam
82028e70d1 8260012: Reduce inclusion of collectedHeap.hpp and heapInspection.hpp
Reviewed-by: stefank, tschatzl
2021-02-04 04:05:33 +00:00
Dong Bo
5307afa9e7 8260585: AArch64: Wrong code generated for shifting right and accumulating four unsigned short integers
Reviewed-by: iveresov, dlong, njian, aph
2021-02-03 21:40:33 +00:00
4916 changed files with 119490 additions and 49920 deletions

View File

@@ -4,6 +4,7 @@ on:
push:
branches-ignore:
- master
- pr/*
workflow_dispatch:
inputs:
platforms:
@@ -536,10 +537,6 @@ jobs:
echo "cross_flags=
--openjdk-target=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}
--with-sysroot=${HOME}/sysroot-${{ matrix.debian-arch }}/
--with-toolchain-path=${HOME}/sysroot-${{ matrix.debian-arch }}/
--with-freetype-lib=${HOME}/sysroot-${{ matrix.debian-arch }}/usr/lib/${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}/
--with-freetype-include=${HOME}/sysroot-${{ matrix.debian-arch }}/usr/include/freetype2/
--x-libraries=${HOME}/sysroot-${{ matrix.debian-arch }}/usr/lib/${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}/
" >> $GITHUB_ENV
if: matrix.debian-arch != ''

View File

@@ -1,32 +1,13 @@
;
; Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
; DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
;
; This code is free software; you can redistribute it and/or modify it
; 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.
;
[general]
project=lanai
project=jdk
jbs=JDK
[checks]
error=author,whitespace,executable
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists
[repository]
tags=(?:jdk-(?:[1-9]([0-9]*)(?:\.(?:0|[1-9][0-9]*)){0,4})(?:\+(?:(?:[0-9]+))|(?:-ga)))|(?:jdk[4-9](?:u\d{1,3})?-(?:(?:b\d{2,3})|(?:ga)))|(?:hs\d\d(?:\.\d{1,2})?-b\d\d)
branches=
[census]
version=0
@@ -35,3 +16,19 @@ domain=openjdk.org
[checks "whitespace"]
files=.*\.cpp|.*\.hpp|.*\.c|.*\.h|.*\.java|.*\.cc|.*\.hh|.*\.m|.*\.mm|.*\.gmk|.*\.m4|.*\.ac|Makefile
ignore-tabs=.*\.gmk|Makefile
[checks "merge"]
message=Merge
[checks "reviewers"]
reviewers=1
ignore=duke
[checks "committer"]
role=committer
[checks "issues"]
pattern=^([124-8][0-9]{6}): (\S.*)$
[checks "problemlists"]
dirs=test/jdk|test/langtools|test/lib-test|test/hotspot/jtreg|test/jaxp

0
configure vendored Normal file → Executable file
View File

View File

@@ -849,7 +849,7 @@ sudo mv /tmp/configure /usr/local/bin</code></pre>
<p>If you update the repository and part of the configure script has changed, the build system will force you to re-run <code>configure</code>.</p>
<p>Most of the time, you will be fine by running <code>configure</code> again with the same arguments as the last time, which can easily be performed by <code>make reconfigure</code>. To simplify this, you can use the <code>CONF_CHECK</code> make control variable, either as <code>make CONF_CHECK=auto</code>, or by setting an environment variable. For instance, if you add <code>export CONF_CHECK=auto</code> to your <code>.bashrc</code> file, <code>make</code> will always run <code>reconfigure</code> automatically whenever the configure script has changed.</p>
<p>You can also use <code>CONF_CHECK=ignore</code> to skip the check for a needed configure update. This might speed up the build, but comes at the risk of an incorrect build result. This is only recommended if you know what you're doing.</p>
<p>From time to time, you will also need to modify the command line to <code>configure</code> due to changes. Use <code>make print-configure</code> to show the command line used for your current configuration.</p>
<p>From time to time, you will also need to modify the command line to <code>configure</code> due to changes. Use <code>make print-configuration</code> to show the command line used for your current configuration.</p>
<h3 id="using-fine-grained-make-targets">Using Fine-Grained Make Targets</h3>
<p>The default behavior for make is to create consistent and correct output, at the expense of build speed, if necessary.</p>
<p>If you are prepared to take some risk of an incorrect build, and know enough of the system to understand how things build and interact, you can speed up the build process considerably by instructing make to only build a portion of the product.</p>

View File

@@ -1556,8 +1556,8 @@ update. This might speed up the build, but comes at the risk of an incorrect
build result. This is only recommended if you know what you're doing.
From time to time, you will also need to modify the command line to `configure`
due to changes. Use `make print-configure` to show the command line used for
your current configuration.
due to changes. Use `make print-configuration` to show the command line used
for your current configuration.
### Using Fine-Grained Make Targets

View File

@@ -303,6 +303,7 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<li><p>Defaulted and deleted functions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm">n2346</a>)</p></li>
<li><p>Dynamic initialization and destruction with concurrency (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm">n2660</a>)</p></li>
<li><p><code>final</code> virtual specifiers for classes and virtual functions (<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm">n2928</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm">n3206</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm">n3272</a>)</p></li>
<li><p><code>override</code> virtual specifiers for virtual functions (<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm">n2928</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm">n3206</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm">n3272</a>)</p></li>
<li><p>Local and unnamed types as template parameters (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm">n2657</a>)</p></li>
<li><p>Range-based <code>for</code> loops (<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html">n2930</a>) (<a href="https://en.cppreference.com/w/cpp/language/range-for">range-for</a>)</p></li>
</ul>
@@ -330,7 +331,6 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<h3 id="undecided-features">Undecided Features</h3>
<p>This list is incomplete; it serves to explicitly call out some features that have not yet been discussed.</p>
<ul>
<li><p><code>overrides</code> virtual specifiers for virtual functions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm">n3272</a>)</p></li>
<li><p>Trailing return type syntax for functions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm">n2541</a>)</p></li>
<li><p>Variable templates (<a href="https://isocpp.org/files/papers/N3651.pdf">n3651</a>)</p></li>
<li><p>Member initializers and aggregates (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html">n3653</a>)</p></li>

View File

@@ -747,6 +747,11 @@ part of the avoidance of the C++ Standard Library in HotSpot code.
([n3206](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm)),
([n3272](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm))
* `override` virtual specifiers for virtual functions
([n2928](http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm)),
([n3206](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm)),
([n3272](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm))
* Local and unnamed types as template parameters
([n2657](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm))
@@ -813,9 +818,6 @@ in HotSpot code because of the "no implicit boolean" guideline.)
This list is incomplete; it serves to explicitly call out some
features that have not yet been discussed.
* `overrides` virtual specifiers for virtual functions
([n3272](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm))
* Trailing return type syntax for functions
([n2541](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm))

View File

@@ -2,9 +2,12 @@
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 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 11
RUN wget https://download.java.net/java/GA/jdk13.0.1/cec27d702aa74d5a8630c65ae61e4305/9/GPL/openjdk-13.0.1_linux-x64_bin.tar.gz \
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 15
RUN wget https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz \
-O - | tar xz -C /
ENV JAVA_HOME /jbrsdk
ENV PATH $JAVA_HOME/bin:/opt/rh/devtoolset-8/root/usr/bin:$PATH
RUN mv /zulu15.27.17-ca-jdk15.0.0-linux_x64 /jdk15.0.0
ENV PATH /opt/rh/devtoolset-8/root/usr/bin:$PATH
RUN mkdir .git
RUN git config user.email "builduser@jetbrains.com"
RUN git config user.name "builduser"

View File

@@ -1,6 +0,0 @@
#Thu Dec 06 20:31:44 MSK 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip

View File

@@ -1,172 +0,0 @@
#!/usr/bin/env sh
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"

View File

@@ -0,0 +1,54 @@
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
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
}

View File

@@ -1,9 +0,0 @@
#!/bin/bash -x
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
script_dir=jb/project/tools/linux/scripts
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jcef" || exit $?
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx" || exit $?
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx_jcef" || exit $?

View File

@@ -4,9 +4,6 @@
# 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
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
@@ -21,22 +18,29 @@ 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 $?)
sh configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-version-build=$JDK_BUILD_NUMBER \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-opt=b$build_number \
--with-boot-jdk=amazon-corretto-11.0.5.10.1-linux-aarch64 \
--with-import-modules=./modular-sdk \
--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-aarch64-normal-server-release || exit $?
make images CONF=linux-aarch64-normal-server-release test-image || 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-normal-server-release/images
BASE_DIR=build/linux-aarch64-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
@@ -47,6 +51,9 @@ 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 $?

View File

@@ -1,12 +1,13 @@
#!/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
# 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 bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
# 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
@@ -16,124 +17,121 @@
# 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
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}
function create_jbr {
source jb/project/tools/common/scripts/common.sh
case "$1" in
"${bundle_type}_lw")
JBR_BASE_NAME=jbr_${bundle_type}_lw-${JBSDK_VERSION}
grep -v "jdk.compiler\|jdk.hotspot.agent" modules.list > modules_tmp.list
;;
"jfx" | "jcef")
JBR_BASE_NAME=jbr_${bundle_type}-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
;;
"jfx_jcef")
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
;;
*)
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
;;
esac
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
JBR=$JBR_BASE_NAME-linux-x64-b$build_number
[ "$bundle_type" == "fd" ] && 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 $JSDK/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output $BASE_DIR/$JBR_BUNDLE
--module-path "$__modules_path" --no-man-pages --compress=2 \
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__arch_name"
if [[ "$bundle_type" == *jcef* ]]; then
cp -R $BASE_DIR/$JBR_BUNDLE $BASE_DIR/jbr
cp -R jcef_linux_x64/* $BASE_DIR/$JBR_BUNDLE/lib || exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__arch_name"/release
if [ "$__bundle_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__arch_name"/release > release
mv release "$IMAGES_DIR"/"$__arch_name"/release
fi
grep -v "^JAVA_VERSION" $JSDK/release | grep -v "^MODULES" >> $BASE_DIR/$JBR_BUNDLE/release
echo Creating $JBR.tar.gz ...
if [ ! -z "$bundle_type" ]; then
rm -rf ${BASE_DIR}/jbr
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
fi
tar -pcf $JBR.tar -C $BASE_DIR jbr || exit $?
gzip $JBR.tar || exit $?
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
# 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 ...
tar -pcf "$JBR".tar -C "$IMAGES_DIR" "$__arch_name" || do_exit $?
[ -f "$JBR".tar.gz ] && rm "$JBR.tar.gz"
gzip "$JBR".tar || do_exit $?
rm -rf "${IMAGES_DIR:?}"/"$__arch_name"
}
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=linux-x86_64-server-release
#git checkout -- modules.list src
case "$bundle_type" in
"jfx")
git apply -p0 < jb/project/tools/exclude_jcef_module.patch
;;
"jcef")
git apply -p0 < jb/project/tools/exclude_jfx_module.patch
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 "$bundle_type" ]; then
JBR_BUNDLE=jbr
sh configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-boot-jdk=$BOOT_JDK \
--enable-cds=yes || exit $?
else
JBR_BUNDLE=jbr_${bundle_type}
sh configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-import-modules=./modular-sdk \
--with-boot-jdk=$BOOT_JDK \
--enable-cds=yes || exit $?
fi
sh configure \
--disable-warnings-as-errors \
$WITH_DEBUG_LEVEL \
--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 || do_exit $?
make images CONF=linux-x86_64-server-release || exit $?
make clean CONF=$RELEASE_NAME || exit $?
make images CONF=$RELEASE_NAME || do_exit $?
JSDK=build/linux-x86_64-server-release/images/jdk
JBSDK=$JBRSDK_BASE_NAME-linux-x64-b$build_number
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
BASE_DIR=build/linux-x86_64-server-release/images
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
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
if [[ "$bundle_type" == *jcef* ]]; then
cp -R jcef_linux_x64/* $BASE_DIR/$JBRSDK_BUNDLE/lib || exit $?
fi
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
echo Creating $JBSDK.tar.gz ...
tar -pcf $JBSDK.tar --exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man \
-C $BASE_DIR $JBRSDK_BUNDLE || exit $?
gzip $JBSDK.tar || exit $?
jbr_name_postfix="_${bundle_type}"
fi
create_jbr ${bundle_type}
# 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 $?
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
make test-image || 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 $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-x64-b$build_number
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
echo Creating $JBSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' test || exit $?
gzip $JBRSDK_TEST.tar || exit $?
fi
do_exit 0

View File

@@ -1,72 +0,0 @@
#!/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
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# 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}
sh configure \
--disable-warnings-as-errors \
--with-debug-level=fastdebug \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-pre= \
--with-version-opt=b$build_number \
--with-import-modules=./modular-sdk \
--enable-cds=yes || exit $?
make clean CONF=linux-x86_64-normal-server-fastdebug || exit $?
make images CONF=linux-x86_64-normal-server-fastdebug || exit $?
JBSDK=${JBRSDK_BASE_NAME}-linux-x64-fastdebug-b${build_number}
BASE_DIR=build/linux-x86_64-normal-server-fastdebug/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 $?
cp -R jcef_linux_x64/* $BASE_DIR/$JBRSDK_BUNDLE/lib || exit $?
echo Creating $JBSDK.tar.gz ...
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-x64-fastdebug-b$build_number
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list | sed s/" "//g | sed s/,$//g) \
--output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
cp -R jcef_linux_x64/* $BASE_DIR/$JBR_BUNDLE/lib || 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 -czf $JBR.tar -C $BASE_DIR ${JBR_BUNDLE} || exit $?
gzip $JBR.tar || exit $?

View File

@@ -4,9 +4,6 @@
# 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
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
@@ -21,21 +18,29 @@ 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 \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-version-build=$JDK_BUILD_NUMBER \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-opt=b$build_number \
--with-boot-jdk=/jbrsdk-11.0.5-b1 \
--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-normal-server-release || exit $?
make images CONF=linux-x86-normal-server-release test-image || 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-normal-server-release/images
BASE_DIR=build/linux-x86-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
@@ -46,6 +51,9 @@ 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 $?

View File

@@ -1,9 +0,0 @@
#!/bin/bash -x
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
script_dir=jb/project/tools/mac/scripts
${script_dir}/mkimages.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jcef" || exit $?
${script_dir}/mkimages.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx" || exit $?
${script_dir}/mkimages.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx_jcef" || exit $?

View File

@@ -1,12 +1,13 @@
#!/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
# 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 bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
# 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
@@ -16,133 +17,123 @@
# 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
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_mac}
MAJOR_JBSDK_VERSION=$(echo "$JBSDK_VERSION_WITH_DOTS" | awk -F "." '{print $1}')
BOOT_JDK=${BOOT_JDK:=$(/usr/libexec/java_home -v 14)}
function create_jbr {
source jb/project/tools/common/scripts/common.sh
case "$1" in
"${bundle_type}_lw")
JBR_BASE_NAME=jbr_${bundle_type}_lw-${JBSDK_VERSION}
grep -v "jdk.compiler\|jdk.hotspot.agent" modules.list > modules_tmp.list
;;
"jfx" | "jcef")
JBR_BASE_NAME=jbr_${bundle_type}-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
;;
"jfx_jcef")
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
;;
*)
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
;;
esac
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
JRE_CONTENTS=${BASE_DIR}/${JBR_BUNDLE}/Contents
JRE_HOME=${JRE_CONTENTS}/Home
if [ -d "${JRE_CONTENTS}" ]; then
rm -rf ${JRE_CONTENTS}
fi
mkdir -p ${JRE_CONTENTS}
tmp=.bundle.$$.tmp
mkdir "$tmp" || do_exit $?
JBR=${JBR_BASE_NAME}-osx-x64-b${build_number}
[ "$bundle_type" == "fd" ] && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-osx-x64-${fastdebug_infix}b${build_number}
${BASE_DIR}/$JBRSDK_BUNDLE/Contents/Home/bin/jlink \
--module-path ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output ${JRE_HOME} || exit $?
grep -v "^JAVA_VERSION" ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/release | grep -v "^MODULES" >> ${JRE_HOME}/release
cp -R ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/MacOS ${JRE_CONTENTS}
cp ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Info.plist ${JRE_CONTENTS}
JRE_CONTENTS=$tmp/$__arch_name/Contents
mkdir -p "$JRE_CONTENTS" || do_exit $?
if [[ "${bundle_type}" == *jcef* ]]; then
rm -rf ${JRE_CONTENTS}/Frameworks || exit $?
rm -rf ${JRE_CONTENTS}/Helpers || exit $?
cp -a jcef_mac/Frameworks ${JRE_CONTENTS} || exit $?
cp -a jcef_mac/Helpers ${JRE_CONTENTS} || 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 [ "$__bundle_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $JRE_CONTENTS/Home/release > release
mv release $JRE_CONTENTS/Home/release
fi
echo Creating ${JBR}.tar.gz ...
if [ ! -z "$bundle_type" ]; then
rm -rf ${BASE_DIR}/jbr
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
fi
COPYFILE_DISABLE=1 tar -pczf ${JBR}.tar.gz --exclude='*.dSYM' --exclude='man' -C ${BASE_DIR} jbr || exit $?
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
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 ...
COPYFILE_DISABLE=1 tar -pczf "$JBR".tar.gz --exclude='*.dSYM' --exclude='man' -C "$tmp" "$__arch_name" || do_exit $?
rm -rf "$tmp"
}
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=macosx-x86_64-server-release
#git checkout -- modules.list src
case "$bundle_type" in
"jfx")
git apply -p0 < jb/project/tools/exclude_jcef_module.patch
;;
"jcef")
git apply -p0 < jb/project/tools/exclude_jfx_module.patch
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-x86_64-server-fastdebug
;;
esac
if [ -z "$bundle_type" ]; then
JBR_BUNDLE=jbr
sh configure \
sh configure \
--disable-warnings-as-errors \
--with-debug-level=release \
$WITH_DEBUG_LEVEL \
--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=`/usr/libexec/java_home -v $BOOT_JDK` \
--enable-cds=yes || exit $?
else
JBR_BUNDLE=jbr_${bundle_type}
sh configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-import-modules=./modular-sdk \
--with-boot-jdk=`/usr/libexec/java_home -v $BOOT_JDK` \
--enable-cds=yes || exit $?
fi
make images CONF=macosx-x86_64-server-release || exit $?
--with-version-build="$JDK_BUILD_NUMBER" \
--with-version-opt=b"$build_number" \
--with-boot-jdk="$BOOT_JDK" \
--enable-cds=yes || do_exit $?
JSDK=build/macosx-x86_64-server-release/images/jdk-bundle
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-b${build_number}
make clean CONF=$RELEASE_NAME || do_exit $?
make images CONF=$RELEASE_NAME || do_exit $?
BASE_DIR=jre
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk-bundle/jdk-$MAJOR_JBSDK_VERSION.jdk/Contents/Home
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
rm -rf $BASE_DIR
mkdir $BASE_DIR || exit $?
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
cp -a $JSDK/jdk-$JBSDK_VERSION_WITH_DOTS.jdk $BASE_DIR/$JBRSDK_BUNDLE || exit $?
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
if [[ "$bundle_type" == *jcef* ]]; then
cp -a jcef_mac/Frameworks $BASE_DIR/$JBRSDK_BUNDLE/Contents/ || exit $?
cp -a jcef_mac/Helpers $BASE_DIR/$JBRSDK_BUNDLE/Contents/ || exit $?
fi
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
echo Creating $JBSDK.tar.gz ...
COPYFILE_DISABLE=1 tar -pczf $JBSDK.tar.gz -C $BASE_DIR \
--exclude='._*' --exclude='.DS_Store' --exclude='*~' \
--exclude='Home/demo' --exclude='Home/man' --exclude='Home/sample' \
$JBRSDK_BUNDLE || exit $?
jbr_name_postfix="_${bundle_type}"
fi
create_jbr "${bundle_type}" || exit $?
# 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 $?
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
make test-image || 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" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-osx-test-x64-b$build_number
if [ -z "$bundle_type" ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-osx-test-x64-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
echo Creating $JBRSDK_TEST.tar.gz ...
COPYFILE_DISABLE=1 tar -pczf $JBRSDK_TEST.tar.gz -C build/macosx-x86_64-server-release/images \
--exclude='test/jdk/demos' test || exit $?
fi
do_exit 0

View File

@@ -1,83 +0,0 @@
#!/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
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# 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}
sh configure \
--disable-warnings-as-errors \
--with-debug-level=fastdebug \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-pre= \
--with-version-opt=b$build_number \
--with-import-modules=./modular-sdk \
--with-boot-jdk=`/usr/libexec/java_home -v 11` \
--enable-cds=yes || exit $?
make clean CONF=macosx-x86_64-normal-server-fastdebug || exit $?
make images CONF=macosx-x86_64-normal-server-fastdebug || exit $?
JSDK=build/macosx-x86_64-normal-server-fastdebug/images/jdk-bundle
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-fastdebug-b${build_number}
BASE_DIR=jre
JBRSDK_BUNDLE=jbrsdk
rm -rf $BASE_DIR
mkdir $BASE_DIR || exit $?
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
cp -a $JSDK/jdk-$JBSDK_VERSION_WITH_DOTS.jdk $BASE_DIR/$JBRSDK_BUNDLE || exit $?
echo Creating $JBSDK.tar.gz ...
cp -a jcef_mac/Frameworks $BASE_DIR/$JBRSDK_BUNDLE/Contents/
cp -a jcef_mac/Helpers $BASE_DIR/$JBRSDK_BUNDLE/Contents
COPYFILE_DISABLE=1 \
tar -pczf ${JBSDK}.tar.gz -C ${BASE_DIR} \
--exclude='._*' --exclude='.DS_Store' --exclude='*~' \
--exclude='Home/demo' --exclude='Home/man' --exclude='Home/sample' \
${JBRSDK_BUNDLE} || exit $?
JBR_BUNDLE=jbr
JRE_CONTENTS=$BASE_DIR/$JBR_BUNDLE/Contents
JRE_HOME=$JRE_CONTENTS/Home
JBR_BASE_NAME=jbr-$JBSDK_VERSION
mkdir -p $JRE_CONTENTS
if [ -d "$JRE_HOME" ]; then
rm -rf $JRE_HOME
fi
JBR=${JBR_BASE_NAME}-osx-x64-fastdebug-b${build_number}
$BASE_DIR/$JBRSDK_BUNDLE/Contents/Home/bin/jlink \
--module-path $BASE_DIR/$JBRSDK_BUNDLE/Contents/Home/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list | sed s/" "//g) --output $JRE_HOME || exit $?
grep -v "^JAVA_VERSION" $BASE_DIR/$JBRSDK_BUNDLE/Contents/Home/release | grep -v "^MODULES" >> $JRE_HOME/release
cp -R $BASE_DIR/$JBRSDK_BUNDLE/Contents/MacOS $JRE_CONTENTS
cp $BASE_DIR/$JBRSDK_BUNDLE/Contents/Info.plist $JRE_CONTENTS
cp -a jcef_mac/Frameworks ${JRE_CONTENTS} || exit $?
cp -a jcef_mac/Helpers ${JRE_CONTENTS} || exit $?
echo Creating $JBR.tar.gz ...
COPYFILE_DISABLE=1 tar -pczf $JBR.tar.gz --exclude='*.dSYM' --exclude='man' -C $BASE_DIR $JBR_BUNDLE || exit $?

View File

@@ -26,7 +26,8 @@ log "Signing libraries and executables..."
# -perm +111 searches for executables
for f in \
"Contents/Home/bin" \
"Contents/Home/lib"; do
"Contents/Home/lib" \
"Contents/Frameworks"; do
if [ -d "$APP_DIRECTORY/$f" ]; then
find "$APP_DIRECTORY/$f" \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -perm +111 \) \

View File

@@ -37,14 +37,13 @@ BUILD_NAME="$(ls "$EXPLODED")"
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/jmods; then
mv $EXPLODED/$BUILD_NAME/Contents/Home/jmods $BACKUP_JMODS
fi
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/Frameworks; then
mv $EXPLODED/$BUILD_NAME/Contents/Home/Frameworks $BACKUP_JMODS
fi
if test -f $EXPLODED/$BUILD_NAME/Contents/MacOS/libjli.dylib; then
mv $EXPLODED/$BUILD_NAME/Contents/MacOS/libjli.dylib $BACKUP_JMODS
fi
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/Frameworks; then
mv $EXPLODED/$BUILD_NAME/Contents/Home/Frameworks $BACKUP_JMODS
fi
#log "$INPUT_FILE unzipped and removed"
log "$INPUT_FILE extracted and removed"
APPLICATION_PATH="$EXPLODED/$BUILD_NAME"
@@ -128,15 +127,9 @@ log "Zipping $BUILD_NAME to $INPUT_FILE ..."
(
#cd "$EXPLODED"
#ditto -c -k --sequesterRsrc --keepParent "$BUILD_NAME" "../$INPUT_FILE"
if test ! -z $(ls $BACKUP_JMODS/libjli.dylib); then
mv $BACKUP_JMODS/libjli.dylib $EXPLODED/$BUILD_NAME/Contents/MacOS
fi
if test -d $BACKUP_JMODS/jmods; then
mv $BACKUP_JMODS/jmods $EXPLODED/$BUILD_NAME/Contents/Home
fi
if test -d $BACKUP_JMODS/Frameworks; then
mv $BACKUP_JMODS/Frameworks $EXPLODED/$BUILD_NAME/Contents/Home
fi
COPYFILE_DISABLE=1 tar -pczf $INPUT_FILE --exclude='*.dSYM' --exclude='man' -C $EXPLODED $BUILD_NAME
log "Finished zipping"

View File

@@ -0,0 +1,30 @@
diff --git modules.list modules.list
index 7c4b3e9cb6d..5ed60349ca7 100644
--- modules.list
+++ modules.list
@@ -53,4 +53,7 @@ jdk.security.jgss,
jdk.unsupported,
jdk.xml.dom,
jdk.zipfs,
-jdk.hotspot.agent
+jdk.hotspot.agent,
+jcef,
+gluegen.rt,
+jogl.all
diff --git src/java.desktop/share/classes/module-info.java src/java.desktop/share/classes/module-info.java
index b663b382f52..3e9acdc0c27 100644
--- src/java.desktop/share/classes/module-info.java
+++ src/java.desktop/share/classes/module-info.java
@@ -109,7 +109,11 @@ module java.desktop {
// see make/GensrcModuleInfo.gmk
exports sun.awt to
jdk.accessibility,
- jdk.unsupported.desktop;
+ jdk.unsupported.desktop,
+ jcef,
+ jogl.all;
+
+ exports java.awt.peer to jcef;
exports java.awt.dnd.peer to jdk.unsupported.desktop;
exports sun.awt.dnd to jdk.unsupported.desktop;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,9 +0,0 @@
#!/bin/bash -x
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
script_dir=jb/project/tools/windows/scripts
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jcef" || exit $?
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx" || exit $?
${script_dir}/mkimages_x64.sh $JBSDK_VERSION $JDK_BUILD_NUMBER $build_number "jfx_jcef" || exit $?

View File

@@ -1,12 +1,13 @@
#!/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
# 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 bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
# 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
@@ -16,104 +17,103 @@
# 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
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}
function create_jbr {
source jb/project/tools/common/scripts/common.sh
case "$1" in
"${bundle_type}_lw")
grep -v "jdk.compiler\|jdk.hotspot.agent" modules.list > modules_tmp.list
;;
"jfx" | "jcef" | "jfx_jcef")
cat modules.list > modules_tmp.list
;;
*)
cat modules.list > modules_tmp.list
;;
esac
rm -rf ${JBR_BUNDLE}
function create_image_bundle {
__bundle_name=$1
__modules_path=$2
__modules=$3
[ -d $__bundle_name ] && rm -rf $__bundle_name
echo Running jlink ...
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output ${JBR_BUNDLE} || exit $?
if [[ "${bundle_type}" == *jcef* ]]
then
cp -R jcef_win_x64/* ${JBR_BUNDLE}/bin
--module-path $__modules_path --no-man-pages --compress=2 \
--add-modules $__modules --output $__bundle_name || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__bundle_name/release
if [ "$__bundle_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $__bundle_name/release > release
mv release $__bundle_name/release
fi
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${JBR_BUNDLE}/release
}
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WORK_DIR=$(pwd)
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=windows-x86_64-server-release
#git checkout -- modules.list src
case "$bundle_type" in
"jfx")
echo "Excluding jcef modules"
git apply -p0 < jb/project/tools/exclude_jcef_module.patch
;;
"jcef")
echo "Excluding jfx modules"
git apply -p0 < jb/project/tools/exclude_jfx_module.patch
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=windows-x86_64-server-fastdebug
;;
esac
PATH="/usr/local/bin:/usr/bin:${PATH}"
sh ./configure \
--disable-warnings-as-errors \
$WITH_DEBUG_LEVEL \
--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 || do_exit $?
if [ -z "$bundle_type" ]; then
bash ./configure \
--disable-warnings-as-errors \
--with-target-bits=64 \
--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 LOG=info CONF=$RELEASE_NAME clean images test-image || do_exit $?
else
bash ./configure \
--disable-warnings-as-errors \
--with-target-bits=64 \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-import-modules=${WORK_DIR}/modular-sdk \
--with-toolchain-version=${TOOLCHAIN_VERSION} \
--with-boot-jdk=${BOOT_JDK} \
--disable-ccache \
--enable-cds=yes || exit 1
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
fi
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
make LOG=info images CONF=windows-x86_64-server-release test-image || exit 1
else
make LOG=info images CONF=windows-x86_64-server-release || exit 1
fi
JSDK=build/windows-x86_64-server-release/images/jdk
if [[ "$bundle_type" == "*jcef*" || -z "$bundle_type" ]]; then
JBSDK=${JBRSDK_BASE_NAME}-windows-x64-b${build_number}
fi
BASE_DIR=build/windows-x86_64-server-release/images
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
rm -rf ${BASE_DIR}/${JBRSDK_BUNDLE} && rsync -a --exclude demo --exclude sample ${JSDK}/ ${JBRSDK_BUNDLE} || exit 1
if [[ "$bundle_type" == "*jcef*" ]]; then
cp -R jcef_win_x64/* ${JBRSDK_BUNDLE}/bin
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
if [ -z "$bundle_type" ]; then
JBR_BUNDLE=jbr
else
JBR_BUNDLE=jbr_${bundle_type}
fi
create_jbr ${bundle_type}
# create runtime image bundle
modules=$(xargs < modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" $JSDK_MODS_DIR "$modules" || do_exit $?
#JBR_BUNDLE=jbr_${bundle_type}_lw
#create_jbr ${bundle_type}_lw
# 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" "$JSDK_MODS_DIR" "$modules" || do_exit $?
do_exit 0

View File

@@ -4,9 +4,6 @@
# 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
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
@@ -21,30 +18,39 @@ 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 \
--disable-warnings-as-errors \
--disable-debug-symbols \
--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=2015 \
--with-toolchain-version=${TOOLCHAIN_VERSION} \
--with-boot-jdk=${BOOT_JDK} \
--disable-ccache \
--enable-cds=yes || exit 1
make clean CONF=windows-x86-normal-server-release || exit 1
make LOG=info images CONF=windows-x86-normal-server-release test-image || 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-normal-server-release/images
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}
@@ -54,4 +60,4 @@ ${JSDK}/bin/jlink \
--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
#grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${JBR_BUNDLE}/release

View File

@@ -1,12 +1,13 @@
#!/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
# 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 bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
# 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
@@ -17,6 +18,8 @@
# 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
@@ -24,56 +27,51 @@ bundle_type=$4
function pack_jbr {
case "$1" in
"${bundle_type}_lw")
JBR_BASE_NAME=jbr_${bundle_type}_lw-${JBSDK_VERSION}
;;
"jfx" | "jcef")
JBR_BASE_NAME=jbr_${bundle_type}-${JBSDK_VERSION}
;;
"jfx_jcef" | "")
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
;;
*)
echo "***ERR*** bundle was not specified" && exit 1
;;
esac
if [ -z "${bundle_type}" ]; then
JBR_BUNDLE=jbr
else
JBR_BUNDLE=jbr_${bundle_type}
[ -d ${BASE_DIR}/jbr ] && rm -rf ${BASE_DIR}/jbr
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
fi
JBR_BASE_NAME=${JBR_BUNDLE}-${JBSDK_VERSION}
JBR=$JBR_BASE_NAME-windows-x64-b$build_number
echo Creating $JBR.tar.gz ...
if [ ! -z "$bundle_type" ]; then
rm -rf ${BASE_DIR}/jbr
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
fi
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR jbr || exit 1
#rm -rf ${BASE_DIR}/${JBR_BUNDLE}
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR jbr || do_exit $?
}
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
JBR_BASE_NAME=jbr-$JBSDK_VERSION
RELEASE_NAME=windows-x86_64-server-release
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-b${build_number}
case "$bundle_type" in
"nomod" | "")
bundle_type=""
;;
"fd")
RELEASE_NAME=macosx-x86_64-server-fastdebug
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-fastdebug-b${build_number}
;;
esac
IMAGES_DIR=build/windows-x86_64-server-release/images
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JBSDK=$JBRSDK_BASE_NAME-windows-x64-b$build_number
BASE_DIR=.
if [ -z "$bundle_type" ]; then
JBR_BUNDLE=jbr
else
JBR_BUNDLE=jbr_${bundle_type}
fi
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
JBRSDK_BUNDLE=jbrsdk
echo Creating $JBSDK.tar.gz ...
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || exit 1
[ -f "$JBSDK.tar.gz" ] && rm "$JBSDK.tar.gz"
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || do_exit $?
fi
JBR_BUNDLE=jbr_${bundle_type}
pack_jbr $bundle_type
if [[ "$bundle_type" == "jfx_jcef" || -z "$bundle_type" ]]; then
if [ -z "$bundle_type" ]; then
JBRSDK_TEST=$JBRSDK_BASE_NAME-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 || exit 1
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
fi

View File

@@ -4,9 +4,6 @@
# 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
# bundle_type - specifies bundle to bu built; possible values:
# jcef - the bundles 1) jbr with jcef+javafx, 2) jbrsdk and 3) test will be created
# jfx - the bundle 1) jbr with javafx only will be created
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
@@ -24,7 +21,7 @@ build_number=$3
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
JBR_BASE_NAME=jbr-$JBSDK_VERSION
IMAGES_DIR=build/windows-x86-normal-server-release/images
IMAGES_DIR=build/windows-x86-server-release/images
JSDK=$IMAGES_DIR/jdk
JBSDK=$JBRSDK_BASE_NAME-windows-x86-b$build_number
BASE_DIR=.

View File

@@ -86,7 +86,7 @@ CreateHkTargets = \
################################################################################
# Include module specific build settings
-include $(TOPDIR)/make/modules/$(MODULE)/Java.gmk
-include Java.gmk
################################################################################
# Setup the main compilation

View File

@@ -99,7 +99,8 @@ JAVADOC_TAGS := \
REFERENCE_TAGS := $(JAVADOC_TAGS)
# Which doclint checks to ignore
JAVADOC_DISABLED_DOCLINT := accessibility html missing syntax reference
JAVADOC_DISABLED_DOCLINT_WARNINGS := missing
JAVADOC_DISABLED_DOCLINT_PACKAGES := org.w3c.* javax.smartcardio
# The initial set of options for javadoc
JAVADOC_OPTIONS := -use -keywords -notimestamp \
@@ -261,6 +262,7 @@ endef
# SHORT_NAME - The short name of this documentation collection
# LONG_NAME - The long name of this documentation collection
# TARGET_DIR - Where to store the output
# OTHER_VERSIONS - URL for other page listing versions
#
SetupApiDocsGeneration = $(NamedParamsMacroTemplate)
define SetupApiDocsGenerationBody
@@ -293,14 +295,21 @@ define SetupApiDocsGenerationBody
# Create a string like "-Xdoclint:all,-syntax,-html,..."
$1_OPTIONS += -Xdoclint:all,$$(call CommaList, $$(addprefix -, \
$$(JAVADOC_DISABLED_DOCLINT)))
# Ignore the doclint warnings in the W3C DOM package
$1_OPTIONS += -Xdoclint/package:-org.w3c.*
$$(JAVADOC_DISABLED_DOCLINT_WARNINGS)))
# Ignore the doclint warnings in certain packages
$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_SHORT_NAME)</strong> \
$1_HEADER_TITLE := <div $$(HEADER_STYLE)><strong>$$($1_LINKED_SHORT_NAME)</strong> \
$$(DRAFT_MARKER_STR)</div>
$1_OPTIONS += -doctitle '$$($1_DOC_TITLE)'
@@ -438,6 +447,7 @@ $(eval $(call SetupApiDocsGeneration, JDK_API, \
SHORT_NAME := $(JDK_SHORT_NAME), \
LONG_NAME := $(JDK_LONG_NAME), \
TARGET_DIR := $(DOCS_OUTPUTDIR)/api, \
OTHER_VERSIONS := $(OTHER_JDK_VERSIONS_URL), \
))
# Targets generated are returned in JDK_API_JAVADOC_TARGETS and

View File

@@ -187,6 +187,7 @@ JAVA_TARGETS := $(addsuffix -java, $(JAVA_MODULES))
define DeclareCompileJavaRecipe
$1-java:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \
$(patsubst %,-I%/modules/$1,$(PHASE_MAKEDIRS)) \
-f CompileJavaModules.gmk MODULE=$1)
endef

View File

@@ -150,9 +150,7 @@ define DeclareRecipeForModuleMakefile
$2-$$($1_TARGET_SUFFIX):
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \
-f ModuleWrapper.gmk -I $$(TOPDIR)/make/common/modules \
$$(addprefix -I, $$(PHASE_MAKEDIRS) \
$$(addsuffix /modules/$2, $$(PHASE_MAKEDIRS)) \
) \
$$(patsubst %,-I%/modules/$2,$$(PHASE_MAKEDIRS)) \
MODULE=$2 MAKEFILE_PREFIX=$$($1_FILE_PREFIX) $$($1_EXTRA_ARGS))
endef

View File

@@ -189,8 +189,10 @@ ifeq ($(OPENJDK_TARGET_CPU), x86_64)
endif
ifeq ($(OPENJDK_TARGET_OS), windows)
FIXPATH := $(BASH) $(TOPDIR)/make/scripts/fixpath.sh exec
FIXPATH_BASE := $(BASH) $(TOPDIR)/make/scripts/fixpath.sh
FIXPATH := $(FIXPATH_BASE) exec
else
FIXPATH_BASE :=
FIXPATH :=
endif
@@ -273,6 +275,7 @@ $(call CreateNewSpec, $(NEW_SPEC), \
MAKE := $(MAKE), \
BASH := $(BASH), \
JIB_JAR := $(JIB_JAR), \
FIXPATH_BASE := $(FIXPATH_BASE), \
FIXPATH := $(FIXPATH), \
OPENJDK_TARGET_OS := $(OPENJDK_TARGET_OS), \
OPENJDK_TARGET_OS_TYPE := $(OPENJDK_TARGET_OS_TYPE), \

View File

@@ -1,6 +1,7 @@
#!/bin/sh
#
# Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2021, Azul Systems, Inc. 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
@@ -101,6 +102,14 @@ if [ "x$OUT" = x ]; then
fi
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
if [ `uname -m` = arm64 ]; then
OUT=aarch64`echo $OUT | sed -e 's/[^-]*//'`
fi
fi
# Test and fix cpu on Macosx when C preprocessor is not on the path
echo $OUT | grep i386-apple-darwin > /dev/null 2> /dev/null
if test $? = 0; then

View File

@@ -248,6 +248,7 @@ JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
JDKOPT_EXCLUDE_TRANSLATIONS
JDKOPT_ENABLE_DISABLE_MANPAGES
JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE
JDKOPT_ENABLE_DISABLE_COMPATIBLE_CDS_ALIGNMENT
###############################################################################
#

View File

@@ -168,11 +168,6 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
DISABLED_WARNINGS="unknown-warning-option unused-parameter unused"
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
# missing-method-return-type triggers in JavaNativeFoundation framework
DISABLED_WARNINGS="$DISABLED_WARNINGS missing-method-return-type"
fi
;;
xlc)

View File

@@ -125,19 +125,25 @@ AC_DEFUN([FLAGS_SETUP_MACOSX_VERSION],
[
# Additional macosx handling
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
# The expected format for <version> is either nn.n.n or nn.nn.nn. See
# /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/AvailabilityVersions.h
# MACOSX_VERSION_MIN specifies the lowest version of Macosx that the built
# binaries should be compatible with, even if compiled on a newer version
# of the OS. It currently has a hard coded value. Setting this also limits
# exposure to API changes in header files. Bumping this is likely to
# require code changes to build.
MACOSX_VERSION_MIN=10.12.0
if test "x$OPENJDK_TARGET_CPU_ARCH" = xaarch64; then
MACOSX_VERSION_MIN=11.00.00
else
MACOSX_VERSION_MIN=10.12.0
fi
MACOSX_VERSION_MIN_NODOTS=${MACOSX_VERSION_MIN//\./}
AC_SUBST(MACOSX_VERSION_MIN)
# Setting --with-macosx-version-max=<version> makes it an error to build or
# link to macosx APIs that are newer than the given OS version. The expected
# format for <version> is either nn.n.n or nn.nn.nn. See /usr/include/AvailabilityMacros.h.
# link to macosx APIs that are newer than the given OS version.
AC_ARG_WITH([macosx-version-max], [AS_HELP_STRING([--with-macosx-version-max],
[error on use of newer functionality. @<:@macosx@:>@])],
[

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
@@ -585,6 +585,30 @@ AC_DEFUN([JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE],
AC_SUBST(BUILD_CDS_ARCHIVE)
])
################################################################################
#
# Enable the alternative CDS core region alignment
#
AC_DEFUN([JDKOPT_ENABLE_DISABLE_COMPATIBLE_CDS_ALIGNMENT],
[
UTIL_ARG_ENABLE(NAME: compatible-cds-alignment, DEFAULT: false,
RESULT: ENABLE_COMPATIBLE_CDS_ALIGNMENT,
DESC: [enable use alternative compatible cds core region alignment],
DEFAULT_DESC: [disabled],
CHECKING_MSG: [if compatible cds region alignment enabled],
CHECK_AVAILABLE: [
AC_MSG_CHECKING([if CDS archive is available])
if test "x$ENABLE_CDS" = "xfalse"; then
AVAILABLE=false
AC_MSG_RESULT([no (CDS is disabled)])
else
AVAILABLE=true
AC_MSG_RESULT([yes])
fi
])
AC_SUBST(ENABLE_COMPATIBLE_CDS_ALIGNMENT)
])
################################################################################
#
# Disallow any output from containing absolute paths from the build system.

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
@@ -242,7 +242,7 @@ AC_DEFUN_ONCE([JVM_FEATURES_CHECK_AOT],
elif test "x$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU" = "xlinux-aarch64"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no, $OPENJDK_TARGET_CPU])
AC_MSG_RESULT([no, $OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU])
AVAILABLE=false
fi
@@ -264,11 +264,11 @@ AC_DEFUN_ONCE([JVM_FEATURES_CHECK_CDS],
[
JVM_FEATURES_CHECK_AVAILABILITY(cds, [
AC_MSG_CHECKING([if platform is supported by CDS])
if test "x$OPENJDK_TARGET_OS" != xaix; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no, $OPENJDK_TARGET_OS])
if test "x$OPENJDK_TARGET_OS" = xaix; then
AC_MSG_RESULT([no, $OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU])
AVAILABLE=false
else
AC_MSG_RESULT([yes])
fi
])
])

View File

@@ -192,6 +192,16 @@ AC_DEFUN_ONCE([LIB_SETUP_FREETYPE],
[$FREETYPE_BASE_DIR/lib], [well-known location])
fi
if test "x$FOUND_FREETYPE" != "xyes" ; then
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include],
[$FREETYPE_BASE_DIR/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI], [well-known location])
fi
if test "x$FOUND_FREETYPE" != "xyes" ; then
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include],
[$FREETYPE_BASE_DIR/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI], [well-known location])
fi
if test "x$FOUND_FREETYPE" != "xyes" ; then
FREETYPE_BASE_DIR="$SYSROOT/usr/X11"
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include],

View File

@@ -68,6 +68,10 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
x_libraries="$SYSROOT/usr/lib64"
elif test -f "$SYSROOT/usr/lib/libX11.so"; then
x_libraries="$SYSROOT/usr/lib"
elif test -f "$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libX11.so"; then
x_libraries="$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libX11.so"
elif test -f "$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libX11.so"; then
x_libraries="$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libX11.so"
fi
fi
fi

View File

@@ -238,6 +238,33 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_LIBC],
esac
])
# Support macro for PLATFORM_EXTRACT_TARGET_AND_BUILD.
# Converts autoconf style OS name to OpenJDK style, into
# VAR_ABI.
AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_ABI],
[
case "$1" in
*linux*-musl)
VAR_ABI=musl
;;
*linux*-gnu)
VAR_ABI=gnu
;;
*linux*-gnueabi)
VAR_ABI=gnueabi
;;
*linux*-gnueabihf)
VAR_ABI=gnueabihf
;;
*linux*-gnuabi64)
VAR_ABI=gnuabi64
;;
*)
VAR_ABI=default
;;
esac
])
# Expects $host_os $host_cpu $build_os and $build_cpu
# and $with_target_bits to have been setup!
#
@@ -259,6 +286,7 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
PLATFORM_EXTRACT_VARS_FROM_OS($build_os)
PLATFORM_EXTRACT_VARS_FROM_CPU($build_cpu)
PLATFORM_EXTRACT_VARS_FROM_LIBC($build_os)
PLATFORM_EXTRACT_VARS_FROM_ABI($build_os)
# ..and setup our own variables. (Do this explicitly to facilitate searching)
OPENJDK_BUILD_OS="$VAR_OS"
if test "x$VAR_OS_TYPE" != x; then
@@ -275,7 +303,9 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
OPENJDK_BUILD_CPU_ARCH="$VAR_CPU_ARCH"
OPENJDK_BUILD_CPU_BITS="$VAR_CPU_BITS"
OPENJDK_BUILD_CPU_ENDIAN="$VAR_CPU_ENDIAN"
OPENJDK_BUILD_CPU_AUTOCONF="$build_cpu"
OPENJDK_BUILD_LIBC="$VAR_LIBC"
OPENJDK_BUILD_ABI="$VAR_ABI"
AC_SUBST(OPENJDK_BUILD_OS)
AC_SUBST(OPENJDK_BUILD_OS_TYPE)
AC_SUBST(OPENJDK_BUILD_OS_ENV)
@@ -283,7 +313,9 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
AC_SUBST(OPENJDK_BUILD_CPU_ARCH)
AC_SUBST(OPENJDK_BUILD_CPU_BITS)
AC_SUBST(OPENJDK_BUILD_CPU_ENDIAN)
AC_SUBST(OPENJDK_BUILD_CPU_AUTOCONF)
AC_SUBST(OPENJDK_BUILD_LIBC)
AC_SUBST(OPENJDK_BUILD_ABI)
AC_MSG_CHECKING([openjdk-build os-cpu])
AC_MSG_RESULT([$OPENJDK_BUILD_OS-$OPENJDK_BUILD_CPU])
@@ -297,6 +329,7 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
PLATFORM_EXTRACT_VARS_FROM_OS($host_os)
PLATFORM_EXTRACT_VARS_FROM_CPU($host_cpu)
PLATFORM_EXTRACT_VARS_FROM_LIBC($host_os)
PLATFORM_EXTRACT_VARS_FROM_ABI($host_os)
# ... and setup our own variables. (Do this explicitly to facilitate searching)
OPENJDK_TARGET_OS="$VAR_OS"
if test "x$VAR_OS_TYPE" != x; then
@@ -313,8 +346,10 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
OPENJDK_TARGET_CPU_ARCH="$VAR_CPU_ARCH"
OPENJDK_TARGET_CPU_BITS="$VAR_CPU_BITS"
OPENJDK_TARGET_CPU_ENDIAN="$VAR_CPU_ENDIAN"
OPENJDK_TARGET_CPU_AUTOCONF="$host_cpu"
OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
OPENJDK_TARGET_LIBC="$VAR_LIBC"
OPENJDK_TARGET_ABI="$VAR_ABI"
AC_SUBST(OPENJDK_TARGET_OS)
AC_SUBST(OPENJDK_TARGET_OS_TYPE)
@@ -324,7 +359,9 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
AC_SUBST(OPENJDK_TARGET_CPU_ARCH)
AC_SUBST(OPENJDK_TARGET_CPU_BITS)
AC_SUBST(OPENJDK_TARGET_CPU_ENDIAN)
AC_SUBST(OPENJDK_TARGET_CPU_AUTOCONF)
AC_SUBST(OPENJDK_TARGET_LIBC)
AC_SUBST(OPENJDK_TARGET_ABI)
AC_MSG_CHECKING([openjdk-target os-cpu])
AC_MSG_RESULT([$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU])

View File

@@ -349,6 +349,8 @@ BUILD_MANPAGES := @BUILD_MANPAGES@
BUILD_CDS_ARCHIVE := @BUILD_CDS_ARCHIVE@
ENABLE_COMPATIBLE_CDS_ALIGNMENT := @ENABLE_COMPATIBLE_CDS_ALIGNMENT@
ALLOW_ABSOLUTE_PATHS_IN_OUTPUT := @ALLOW_ABSOLUTE_PATHS_IN_OUTPUT@
# The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep

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
@@ -1177,7 +1177,7 @@ define SetupNativeCompilationBody
# This only works if the openjdk_codesign identity is present on the system. Let
# silently fail otherwise.
ifneq ($(CODESIGN), )
$(CODESIGN) -s "$(MACOSX_CODESIGN_IDENTITY)" --timestamp --options runtime \
$(CODESIGN) -f -s "$(MACOSX_CODESIGN_IDENTITY)" --timestamp --options runtime \
--entitlements $$(call GetEntitlementsFile, $$@) $$@
endif
endif

View File

@@ -28,3 +28,4 @@ BUG_SUBMIT_URL=https://bugreport.java.com/bugreport/
COPYRIGHT_URL=legal/copyright.html
LICENSE_URL=https://www.oracle.com/java/javase/terms/license/java$(VERSION_NUMBER)speclicense.html
REDISTRIBUTION_URL=https://www.oracle.com/technetwork/java/redist-137594.html
OTHER_JDK_VERSIONS_URL=https://docs.oracle.com/en/java/javase/index.html

View File

@@ -441,6 +441,7 @@ var getJibProfilesProfiles = function (input, common, data) {
dependencies: ["devkit", "gtest", "pandoc"],
configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
"--with-macosx-version-max=10.12.00",
"--enable-compatible-cds-alignment",
// Use system SetFile instead of the one in the devkit as the
// devkit one may not work on Catalina.
"SETFILE=/usr/bin/SetFile"),
@@ -477,7 +478,7 @@ var getJibProfilesProfiles = function (input, common, data) {
dependencies: ["devkit", "gtest", "build_devkit", "pandoc"],
configure_args: [
"--openjdk-target=aarch64-linux-gnu",
"--disable-jvm-feature-jvmci",
"--enable-compatible-cds-alignment",
],
},
@@ -1115,7 +1116,7 @@ var getJibProfilesDependencies = function (input, common) {
jmh: {
organization: common.organization,
ext: "tar.gz",
revision: "1.21+1.0"
revision: "1.28+1.0"
},
jcov: {
@@ -1362,15 +1363,15 @@ var concatObjects = function (o1, o2) {
* @param patch Override patch version
* @returns {String} The numeric version string
*/
var getVersion = function (feature, interim, update, patch) {
var getVersion = function (feature, interim, update, patch, extra1, extra2, extra3) {
var version_numbers = getVersionNumbers();
var version = (feature != null ? feature : version_numbers.get("DEFAULT_VERSION_FEATURE"))
+ "." + (interim != null ? interim : version_numbers.get("DEFAULT_VERSION_INTERIM"))
+ "." + (update != null ? update : version_numbers.get("DEFAULT_VERSION_UPDATE"))
+ "." + (patch != null ? patch : version_numbers.get("DEFAULT_VERSION_PATCH"))
+ "." + version_numbers.get("DEFAULT_VERSION_EXTRA1")
+ "." + version_numbers.get("DEFAULT_VERSION_EXTRA2")
+ "." + version_numbers.get("DEFAULT_VERSION_EXTRA3");
+ "." + (extra1 != null ? extra1 : version_numbers.get("DEFAULT_VERSION_EXTRA1"))
+ "." + (extra2 != null ? extra2 : version_numbers.get("DEFAULT_VERSION_EXTRA2"))
+ "." + (extra3 != null ? extra3 : version_numbers.get("DEFAULT_VERSION_EXTRA3"));
while (version.match(".*\\.0$")) {
version = version.substring(0, version.length - 2);
}

View File

@@ -1,26 +0,0 @@
Owner: CN=Sonera Class2 CA, O=Sonera, C=FI
Issuer: CN=Sonera Class2 CA, O=Sonera, C=FI
Serial number: 1d
Valid from: Fri Apr 06 07:29:40 GMT 2001 until: Tue Apr 06 07:29:40 GMT 2021
Signature algorithm name: SHA1withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
-----BEGIN CERTIFICATE-----
MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP
MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx
MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV
BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o
Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt
5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s
3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej
vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu
8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw
DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG
MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil
zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/
3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD
FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6
Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2
ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M
-----END CERTIFICATE-----

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 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
@@ -84,16 +84,6 @@ class CharacterData00 extends CharacterData {
return (props & $$maskType);
}
boolean isOtherLowercase(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherLowercase) != 0;
}
boolean isOtherUppercase(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherUppercase) != 0;
}
boolean isOtherAlphabetic(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherAlphabetic) != 0;
@@ -765,13 +755,11 @@ class CharacterData00 extends CharacterData {
}
boolean isLowerCase(int ch) {
int props = getProperties(ch);
return (props & $$maskType) == Character.LOWERCASE_LETTER;
return (getPropertiesEx(ch) & $$maskOtherLowercase) != 0;
}
boolean isUpperCase(int ch) {
int props = getProperties(ch);
return (props & $$maskType) == Character.UPPERCASE_LETTER;
return (getPropertiesEx(ch) & $$maskOtherUppercase) != 0;
}
boolean isWhitespace(int ch) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 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
@@ -83,16 +83,6 @@ class CharacterData01 extends CharacterData {
return (props & $$maskType);
}
boolean isOtherLowercase(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherLowercase) != 0;
}
boolean isOtherUppercase(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherUppercase) != 0;
}
boolean isOtherAlphabetic(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherAlphabetic) != 0;
@@ -503,13 +493,11 @@ class CharacterData01 extends CharacterData {
}
boolean isLowerCase(int ch) {
int props = getProperties(ch);
return (props & $$maskType) == Character.LOWERCASE_LETTER;
return (getPropertiesEx(ch) & $$maskOtherLowercase) != 0;
}
boolean isUpperCase(int ch) {
int props = getProperties(ch);
return (props & $$maskType) == Character.UPPERCASE_LETTER;
return (getPropertiesEx(ch) & $$maskOtherUppercase) != 0;
}
boolean isWhitespace(int ch) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 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
@@ -77,16 +77,6 @@ class CharacterData02 extends CharacterData {
return props;
}
boolean isOtherLowercase(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherLowercase) != 0;
}
boolean isOtherUppercase(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherUppercase) != 0;
}
boolean isOtherAlphabetic(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherAlphabetic) != 0;
@@ -222,13 +212,11 @@ class CharacterData02 extends CharacterData {
}
boolean isLowerCase(int ch) {
int props = getProperties(ch);
return (props & $$maskType) == Character.LOWERCASE_LETTER;
return (getPropertiesEx(ch) & $$maskOtherLowercase) != 0;
}
boolean isUpperCase(int ch) {
int props = getProperties(ch);
return (props & $$maskType) == Character.UPPERCASE_LETTER;
return (getPropertiesEx(ch) & $$maskOtherUppercase) != 0;
}
boolean isWhitespace(int ch) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
* 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
@@ -77,16 +77,6 @@ class CharacterData03 extends CharacterData {
return props;
}
boolean isOtherLowercase(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherLowercase) != 0;
}
boolean isOtherUppercase(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherUppercase) != 0;
}
boolean isOtherAlphabetic(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherAlphabetic) != 0;
@@ -222,13 +212,11 @@ class CharacterData03 extends CharacterData {
}
boolean isLowerCase(int ch) {
int props = getProperties(ch);
return (props & $$maskType) == Character.LOWERCASE_LETTER;
return (getPropertiesEx(ch) & $$maskOtherLowercase) != 0;
}
boolean isUpperCase(int ch) {
int props = getProperties(ch);
return (props & $$maskType) == Character.UPPERCASE_LETTER;
return (getPropertiesEx(ch) & $$maskOtherUppercase) != 0;
}
boolean isWhitespace(int ch) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 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
@@ -77,16 +77,6 @@ class CharacterData0E extends CharacterData {
return props;
}
boolean isOtherLowercase(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherLowercase) != 0;
}
boolean isOtherUppercase(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherUppercase) != 0;
}
boolean isOtherAlphabetic(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherAlphabetic) != 0;
@@ -222,13 +212,11 @@ class CharacterData0E extends CharacterData {
}
boolean isLowerCase(int ch) {
int props = getProperties(ch);
return (props & $$maskType) == Character.LOWERCASE_LETTER;
return (getPropertiesEx(ch) & $$maskOtherLowercase) != 0;
}
boolean isUpperCase(int ch) {
int props = getProperties(ch);
return (props & $$maskType) == Character.UPPERCASE_LETTER;
return (getPropertiesEx(ch) & $$maskOtherUppercase) != 0;
}
boolean isWhitespace(int ch) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 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
@@ -87,24 +87,12 @@ class CharacterDataLatin1 extends CharacterData {
@IntrinsicCandidate
boolean isLowerCase(int ch) {
int props = getProperties(ch);
return (props & $$maskType) == Character.LOWERCASE_LETTER;
return (getPropertiesEx(ch) & $$maskOtherLowercase) != 0;
}
@IntrinsicCandidate
boolean isUpperCase(int ch) {
int props = getProperties(ch);
return (props & $$maskType) == Character.UPPERCASE_LETTER;
}
boolean isOtherLowercase(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherLowercase) != 0;
}
boolean isOtherUppercase(int ch) {
int props = getPropertiesEx(ch);
return (props & $$maskOtherUppercase) != 0;
return (getPropertiesEx(ch) & $$maskOtherUppercase) != 0;
}
boolean isOtherAlphabetic(int ch) {
@@ -290,6 +278,6 @@ class CharacterDataLatin1 extends CharacterData {
static {
$$Initializers
}
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2009, 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
@@ -49,26 +49,19 @@ public class $NAME_CLZ$ extends Charset
}
public CharsetDecoder newDecoder() {
initb2c();
return new DoubleByte.Decoder$DECTYPE$(this, b2c, b2cSB, $B2MIN$, $B2MAX$, $ASCIICOMPATIBLE$);
return new DoubleByte.Decoder$DECTYPE$(this, DecodeHolder.b2c, DecodeHolder.b2cSB, $B2MIN$, $B2MAX$, $ASCIICOMPATIBLE$);
}
public CharsetEncoder newEncoder() {
initc2b();
return new DoubleByte.Encoder$ENCTYPE$(this, $ENC_REPLACEMENT$ c2b, c2bIndex, $ASCIICOMPATIBLE$);
return new DoubleByte.Encoder$ENCTYPE$(this, $ENC_REPLACEMENT$ EncodeHolder.c2b, EncodeHolder.c2bIndex, $ASCIICOMPATIBLE$);
}
$B2C$
static char[][] b2c = new char[b2cStr.length][];
static char[] b2cSB;
private static volatile boolean b2cInitialized = false;
static class DecodeHolder {
$B2C$
static final char[][] b2c = new char[b2cStr.length][];
static final char[] b2cSB;
static void initb2c() {
if (b2cInitialized)
return;
synchronized (b2c) {
if (b2cInitialized)
return;
static {
for (int i = 0; i < b2cStr.length; i++) {
if (b2cStr[i] == null)
b2c[i] = DoubleByte.B2C_UNMAPPABLE;
@@ -76,26 +69,20 @@ public class $NAME_CLZ$ extends Charset
b2c[i] = b2cStr[i].toCharArray();
}
b2cSB = b2cSBStr.toCharArray();
b2cInitialized = true;
}
}
static char[] c2b = new char[$C2BLENGTH$];
static char[] c2bIndex = new char[0x100];
private static volatile boolean c2bInitialized = false;
static class EncodeHolder {
static final char[] c2b = new char[$C2BLENGTH$];
static final char[] c2bIndex = new char[0x100];
static void initc2b() {
if (c2bInitialized)
return;
synchronized (c2b) {
if (c2bInitialized)
return;
static {
$NONROUNDTRIP_B2C$
$NONROUNDTRIP_C2B$
DoubleByte.Encoder.initC2B(b2cStr, b2cSBStr, b2cNR, c2bNR,
DoubleByte.Encoder.initC2B(DecodeHolder.b2cStr, DecodeHolder.b2cSBStr,
b2cNR, c2bNR,
$B2MIN$, $B2MAX$,
c2b, c2bIndex);
c2bInitialized = true;
}
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2008, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2008, 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
@@ -48,24 +48,26 @@ public class $NAME_CLZ$ extends Charset implements HistoricallyNamedCharset
}
public CharsetDecoder newDecoder() {
return new SingleByte.Decoder(this, b2c, $ASCIICOMPATIBLE$, $LATIN1DECODABLE$);
return new SingleByte.Decoder(this, Holder.b2c, $ASCIICOMPATIBLE$, $LATIN1DECODABLE$);
}
public CharsetEncoder newEncoder() {
return new SingleByte.Encoder(this, c2b, c2bIndex, $ASCIICOMPATIBLE$);
return new SingleByte.Encoder(this, Holder.c2b, Holder.c2bIndex, $ASCIICOMPATIBLE$);
}
private final static String b2cTable = $B2CTABLE$
private static class Holder {
private static final String b2cTable = $B2CTABLE$
private final static char[] b2c = b2cTable.toCharArray();
private final static char[] c2b = new char[$C2BLENGTH$];
private final static char[] c2bIndex = new char[0x100];
private static final char[] b2c = b2cTable.toCharArray();
private static final char[] c2b = new char[$C2BLENGTH$];
private static final char[] c2bIndex = new char[0x100];
static {
char[] b2cMap = b2c;
char[] c2bNR = null;
$NONROUNDTRIP_B2C$
$NONROUNDTRIP_C2B$
SingleByte.initC2B(b2cMap, c2bNR, c2b, c2bIndex);
static {
char[] b2cMap = b2c;
char[] c2bNR = null;
$NONROUNDTRIP_B2C$
$NONROUNDTRIP_C2B$
SingleByte.initC2B(b2cMap, c2bNR, c2b, c2bIndex);
}
}
}

View File

@@ -21,4 +21,4 @@
# or visit www.oracle.com if you need additional information or have any
# questions.
#
tzdata2020f
tzdata2021a

View File

@@ -1550,11 +1550,17 @@ Zone Africa/Khartoum 2:10:08 - LMT 1931
3:00 - EAT 2017 Nov 1
2:00 - CAT
# From Steffen Thorsen (2021-01-18):
# "South Sudan will change its time zone by setting the clock back 1
# hour on February 1, 2021...."
# from https://eyeradio.org/south-sudan-adopts-new-time-zone-makuei/
# South Sudan
# Zone NAME STDOFF RULES FORMAT [UNTIL]
Zone Africa/Juba 2:06:28 - LMT 1931
2:00 Sudan CA%sT 2000 Jan 15 12:00
3:00 - EAT
3:00 - EAT 2021 Feb 1 00:00
2:00 - CAT
# Tanzania
# See Africa/Nairobi.

View File

@@ -95,11 +95,11 @@ Leap 2016 Dec 31 23:59:60 + S
# Any additional leap seconds will come after this.
# This Expires line is commented out for now,
# so that pre-2020a zic implementations do not reject this file.
#Expires 2021 Jun 28 00:00:00
#Expires 2021 Dec 28 00:00:00
# POSIX timestamps for the data in this file:
#updated 1467936000 (2016-07-08 00:00:00 UTC)
#expires 1624838400 (2021-06-28 00:00:00 UTC)
#expires 1640649600 (2021-12-28 00:00:00 UTC)
# Updated through IERS Bulletin C60
# File expires on: 28 June 2021
# Updated through IERS Bulletin C61
# File expires on: 28 December 2021

View File

@@ -26,7 +26,7 @@
# Create a bundle in the build directory, containing what's needed to
# build and run JMH microbenchmarks from the OpenJDK build.
JMH_VERSION=1.26
JMH_VERSION=1.28
COMMONS_MATH3_VERSION=3.2
JOPT_SIMPLE_VERSION=4.6

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2013, 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,6 +88,9 @@ ifeq ($(call check-jvm-feature, compiler2), true)
ADLCFLAGS += -DAIX=1
else ifeq ($(call isTargetOs, macosx), true)
ADLCFLAGS += -D_ALLBSD_SOURCE=1 -D_GNU_SOURCE=1
ifeq ($(HOTSPOT_TARGET_CPU_ARCH), aarch64)
ADLCFLAGS += -DR18_RESERVED
endif
else ifeq ($(call isTargetOs, windows), true)
ifeq ($(call isTargetCpuBits, 64), true)
ADLCFLAGS += -D_WIN64=1

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2013, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2013, 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
@@ -99,3 +99,7 @@ endif
ifneq ($(HOTSPOT_OVERRIDE_LIBPATH), )
JVM_CFLAGS += -DOVERRIDE_LIBPATH='"$(HOTSPOT_OVERRIDE_LIBPATH)"'
endif
ifeq ($(ENABLE_COMPATIBLE_CDS_ALIGNMENT), true)
JVM_CFLAGS += -DCOMPATIBLE_CDS_ALIGNMENT
endif

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2002, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2002, 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
@@ -105,7 +105,7 @@ public class GenerateCharacter {
entries are short rather than byte).
*/
/* The character properties are currently encoded into A (32 bits)and B (16 bits)
/* The character properties are currently encoded into A (32 bits) and B (8 bits)
two parts.
A: the low 32 bits are defined in the following manner:
@@ -157,9 +157,7 @@ public class GenerateCharacter {
1 bit Other_Lowercase property
1 bit Other_Uppercase property
1 bit Other_Alphabetic property
1 bit Other_Math property
1 bit Ideographic property
1 bit Noncharacter codepoint property
1 bit ID_Start property
1 bit ID_Continue property
*/
@@ -175,7 +173,6 @@ public class GenerateCharacter {
shiftNumericType = 10, maskNumericType = 0x0C00,
shiftIdentifierInfo = 12, maskIdentifierInfo = 0x7000,
maskUnicodePart = 0x1000,
shiftCaseInfo = 15, maskCaseInfo = 0x38000,
maskLowerCase = 0x20000,
maskUpperCase = 0x10000,
maskTitleCase = 0x08000,
@@ -186,24 +183,20 @@ public class GenerateCharacter {
maskDigit = 0x001F,
// case offset are 9 bits
maskCase = 0x01FF,
shiftBidi = 27, maskBidi = 0x78000000,
shiftMirrored = 31, //maskMirrored = 0x80000000,
shiftPlane = 16, maskPlane = 0xFF0000;
shiftBidi = 27, maskBidi = 0x78000000;
// maskMirrored needs to be long, if up 16-bit
private static final long maskMirrored = 0x80000000L;
// bit masks identify the 16-bit property field described above, in B
// bit masks identify the 8-bit property field described above, in B
// table
private static final long
maskOtherLowercase = 0x100000000L,
maskOtherUppercase = 0x200000000L,
maskOtherAlphabetic = 0x400000000L,
maskOtherMath = 0x800000000L,
maskIdeographic = 0x1000000000L,
maskNoncharacterCP = 0x2000000000L,
maskIDStart = 0x4000000000L,
maskIDContinue = 0x8000000000L;
maskOtherLowercase = 0x0100000000L,
maskOtherUppercase = 0x0200000000L,
maskOtherAlphabetic = 0x0400000000L,
maskIdeographic = 0x0800000000L,
maskIDStart = 0x1000000000L,
maskIDContinue = 0x2000000000L;
// Can compare masked values with these to determine
// numeric or lexical types.
@@ -313,14 +306,9 @@ public class GenerateCharacter {
static long[] buildMap(UnicodeSpec[] data, SpecialCaseMap[] specialMaps, PropList propList)
{
long[] result;
if (bLatin1 == true) {
result = new long[256];
} else {
result = new long[1<<16];
}
int k=0;
int codePoint = plane<<16;
long[] result = new long[bLatin1 ? 256 : 1 << 16];
int k = 0;
int codePoint = plane << 16;
UnicodeSpec nonCharSpec = new UnicodeSpec();
for (int j = 0; j < data.length && k < result.length; j++) {
if (data[j].codePoint == codePoint) {
@@ -370,8 +358,6 @@ public class GenerateCharacter {
addExProp(result, propList, "Other_Uppercase", maskOtherUppercase);
addExProp(result, propList, "Other_Alphabetic", maskOtherAlphabetic);
addExProp(result, propList, "Ideographic", maskIdeographic);
//addExProp(result, propList, "Other_Math", maskOtherMath);
//addExProp(result, propList, "Noncharacter_CodePoint", maskNoncharacterCP);
addExProp(result, propList, "ID_Start", maskIDStart);
addExProp(result, propList, "ID_Continue", maskIDContinue);
@@ -390,8 +376,8 @@ public class GenerateCharacter {
static boolean isInvalidJavaWhiteSpace(int c) {
int[] exceptions = {0x00A0, 0x2007, 0x202F, 0xFEFF};
boolean retValue = false;
for(int x=0;x<exceptions.length;x++) {
if(c == exceptions[x]) {
for (int exception : exceptions) {
if (c == exception) {
retValue = true;
break;
}
@@ -421,6 +407,15 @@ public class GenerateCharacter {
// record the general category
resultA |= us.generalCategory;
// extract and record the uppercase letter / lowercase letter property into the
// maskOtherUppercase/-Lowercase bit so that Character.isLower|UpperCase
// can use a one-step lookup (this property includes
if (resultA == Character.UPPERCASE_LETTER) {
resultA |= maskOtherUppercase;
} else if (resultA == Character.LOWERCASE_LETTER) {
resultA |= maskOtherLowercase;
}
// record the numeric properties
NUMERIC: {
STRANGE: {
@@ -637,7 +632,7 @@ public class GenerateCharacter {
OUTER: for (int i = 0; i < n; i += m) {
// For every block of size m in the original map...
MIDDLE: for (int j = 0; j < ptr; j += m) {
// Find out whether there is already a block just like it in the buffer.
// Find out whether there is already a block just like it in the buffer.
for (int k = 0; k < m; k++) {
if (buffer[j+k] != map[i+k])
continue MIDDLE;
@@ -649,21 +644,16 @@ OUTER: for (int i = 0; i < n; i += m) {
} // end MIDDLE
// There is no block just like it already, so add it to
// the buffer and put its index into the new map.
for (int k = 0; k < m; k++) {
buffer[ptr+k] = map[i+k];
}
if (m > 0) System.arraycopy(map, i, buffer, ptr, m);
newmap[i >> size] = (ptr >> size);
ptr += m;
} // end OUTER
// Now we know how long the compressed table should be,
// so create a new array and copy data from the temporary buffer.
long[] newdata = new long[ptr];
for (int j = 0; j < ptr; j++) {
newdata[j] = buffer[j];
}
if (ptr > 0) System.arraycopy(buffer, 0, newdata, 0, ptr);
// Return the new map and the new data table.
long[][] result = { newmap, newdata };
return result;
return new long[][]{ newmap, newdata };
}
/**
@@ -695,7 +685,7 @@ OUTER: for (int i = 0; i < n; i += m) {
static void generateCharacterClass(String theTemplateFileName,
String theOutputFileName)
throws FileNotFoundException, IOException {
throws IOException {
BufferedReader in = new BufferedReader(new FileReader(theTemplateFileName));
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(theOutputFileName)));
out.println(commentStart +
@@ -710,7 +700,7 @@ OUTER: for (int i = 0; i < n; i += m) {
int depth = 0;
while ((pos = line.indexOf(commandMarker, pos)) >= 0) {
int newpos = pos + marklen;
char ch = 'x';
char ch;
SCAN: while (newpos < line.length() &&
(Character.isJavaIdentifierStart(ch = line.charAt(newpos))
|| ch == '(' || (ch == ')' && depth > 0))) {
@@ -765,18 +755,15 @@ OUTER: for (int i = 0; i < n; i += m) {
static String replaceCommand(String x) {
if (x.equals("Tables")) return genTables();
if (x.equals("Initializers")) return genInitializers();
if (x.length() >= 9 && x.substring(0, 7).equals("Lookup(") &&
x.substring(x.length()-1).equals(")") )
if (x.length() >= 9 && x.startsWith("Lookup(") && x.endsWith(")") )
return genAccess("A", x.substring(7, x.length()-1), (identifiers ? 2 : 32));
if (x.length() >= 11 && x.substring(0, 9).equals("LookupEx(") &&
x.substring(x.length()-1).equals(")") )
if (x.length() >= 11 && x.startsWith("LookupEx(") && x.endsWith(")") )
return genAccess("B", x.substring(9, x.length()-1), 16);
if (x.equals("shiftType")) return Long.toString(shiftType);
if (x.equals("shiftIdentifierInfo")) return Long.toString(shiftIdentifierInfo);
if (x.equals("maskIdentifierInfo")) return "0x" + hex8(maskIdentifierInfo);
if (x.equals("maskUnicodePart")) return "0x" + hex8(maskUnicodePart);
if (x.equals("shiftCaseOffset")) return Long.toString(shiftCaseOffset);
if (x.equals("shiftCaseInfo")) return Long.toString(shiftCaseInfo);
if (x.equals("shiftCaseOffsetSign")) return Long.toString(shiftCaseOffsetSign);
if (x.equals("maskCase")) return "0x" + hex8(maskCase);
if (x.equals("maskCaseOffset")) return "0x" + hex8(maskCaseOffset);
@@ -811,8 +798,6 @@ OUTER: for (int i = 0; i < n; i += m) {
if (x.equals("valueDigit")) return "0x" + hex8(valueDigit);
if (x.equals("valueStrangeNumeric")) return "0x" + hex8(valueStrangeNumeric);
if (x.equals("valueJavaSupradecimal")) return "0x" + hex8(valueJavaSupradecimal);
if (x.equals("valueDigit")) return "0x" + hex8(valueDigit);
if (x.equals("valueStrangeNumeric")) return "0x" + hex8(valueStrangeNumeric);
if (x.equals("maskType")) return "0x" + hex(maskType);
if (x.equals("shiftBidi")) return Long.toString(shiftBidi);
if (x.equals("maskBidi")) return "0x" + hex(maskBidi);
@@ -943,11 +928,12 @@ OUTER: for (int i = 0; i < n; i += m) {
StringBuffer result = new StringBuffer();
// liu : Add a comment showing the source of this table
if (debug) {
result.append(commentStart + " The following tables and code generated using:" +
commentEnd + "\n ");
result.append(commentStart + ' ' + commandLineDescription + commentEnd + "\n ");
result.append(commentStart).append(" The following tables and code generated using:")
.append(commentEnd).append("\n ")
.append(commentStart).append(' ')
.append(commandLineDescription).append(commentEnd).append("\n ");
}
if (plane == 0 && bLatin1 == false) {
if (plane == 0 && !bLatin1) {
genCaseMapTableDeclaration(result);
genCaseMapTable(initializers, specialCaseMaps);
}
@@ -966,7 +952,7 @@ OUTER: for (int i = 0; i < n; i += m) {
// If we ever need more than 32 bits to represent the character properties,
// then a table "B" may be needed as well.
genTable(result, "B", tables[n - 1], 32, 16, sizes[n - 1], false, 0, true, true, false);
genTable(result, "B", tables[n - 1], 32, 8, sizes[n - 1], false, 0, true, true, false);
totalBytes += ((((tables[n - 1].length * (identifiers ? 2 : 32)) + 31) >> 5) << 2);
result.append(commentStart);
@@ -1003,23 +989,8 @@ OUTER: for (int i = 0; i < n; i += m) {
return totalBytes;
}
static void appendEscapedStringFragment(StringBuffer result,
char[] line,
int length,
boolean lastFragment) {
result.append(" \"");
for (int k=0; k<length; ++k) {
result.append("\\u");
result.append(hex4(line[k]));
}
result.append("\"");
result.append(lastFragment ? ";" : "+");
result.append("\n");
}
static String SMALL_INITIALIZER =
" { // THIS CODE WAS AUTOMATICALLY CREATED BY GenerateCharacter:\n"+
// " $$name = new $$type[$$size];\n"+
" int len = $$name_DATA.length();\n"+
" int j=0;\n"+
" for (int i=0; i<len; ++i) {\n"+
@@ -1035,14 +1006,12 @@ OUTER: for (int i = 0; i < n; i += m) {
static String SAME_SIZE_INITIALIZER =
" { // THIS CODE WAS AUTOMATICALLY CREATED BY GenerateCharacter:\n"+
" assert ($$name_DATA.length() == $$size);\n"+
// " $$name = new $$type[$$size];\n"+
" for (int i=0; i<$$size; ++i)\n"+
" $$name[i] = ($$type)$$name_DATA.charAt(i);\n"+
" }\n";
static String BIG_INITIALIZER =
" { // THIS CODE WAS AUTOMATICALLY CREATED BY GenerateCharacter:\n"+
// " $$name = new $$type[$$size];\n"+
" int len = $$name_DATA.length();\n"+
" int j=0;\n"+
" int charsInEntry=0;\n"+
@@ -1084,21 +1053,24 @@ OUTER: for (int i = 0; i < n; i += m) {
int pos = 0;
while ((pos = template.indexOf(commandMarker, pos)) >= 0) {
int newpos = pos + marklen;
char ch = 'x';
char ch;
while (newpos < template.length() &&
Character.isJavaIdentifierStart(ch = template.charAt(newpos)) &&
ch != '_') // Don't allow this in token names
++newpos;
String token = template.substring(pos+marklen, newpos);
String replacement = "ERROR";
if (token.equals("name")) replacement = name;
else if (token.equals("type")) replacement = type;
else if (token.equals("bits")) replacement = ""+bits;
else if (token.equals("size")) replacement = ""+size;
else if (token.equals("entriesPerChar")) replacement = ""+entriesPerChar;
else if (token.equals("charsPerEntry")) replacement = ""+(-entriesPerChar);
else FAIL("Unrecognized token: " + token);
String replacement = switch (token) {
case "name" -> name;
case "type" -> type;
case "bits" -> "" + bits;
case "size" -> "" + size;
case "entriesPerChar" -> "" + entriesPerChar;
case "charsPerEntry" -> "" + (-entriesPerChar);
default -> {
FAIL("Unrecognized token: " + token);
yield "ERROR";
}
};
template = template.substring(0, pos) + replacement + template.substring(newpos);
pos += replacement.length();
@@ -1178,7 +1150,7 @@ OUTER: for (int i = 0; i < n; i += m) {
result.append(" The ").append(name).append(" table has ").append(table.length);
result.append(" entries for a total of ");
int sizeOfTable = ((table.length * bits + 31) >> 5) << 2;
if (bits == 8 && useCharForByte) {
if (bits == 8 && tableAsString && useCharForByte) {
sizeOfTable *= 2;
}
result.append(sizeOfTable);
@@ -1195,28 +1167,26 @@ OUTER: for (int i = 0; i < n; i += m) {
if (noConversion) {
result.append("] = (\n");
} else {
result.append("] = new ").append(atype).append("["+table.length+"];\n ");
result.append("] = new ").append(atype).append("[").append(table.length).append("];\n ");
result.append("static final String ").append(name).append("_DATA =\n");
}
int CHARS_PER_LINE = 8;
StringBuffer theString = new StringBuffer();
StringBuilder theString = new StringBuilder();
int entriesInCharSoFar = 0;
char ch = '\u0000';
int charsPerEntry = -entriesPerChar;
for (int j=0; j<table.length; ++j) {
//long entry = table[j] >> extract;
for (long l : table) {
long entry;
if ("A".equals(name))
entry = (table[j] & 0xffffffffL) >> extract;
entry = (l & 0xffffffffL) >> extract;
else
entry = (table[j] >> extract);
entry = (l >> extract);
if (shiftEntries) entry <<= shift;
if (entry >= (1L << bits)) {
FAIL("Entry too big");
}
if (entriesPerChar > 0) {
// Pack multiple entries into a character
ch = (char)(((int)ch >> bits) | (entry << (entriesPerChar-1)*bits));
ch = (char) (((int) ch >> bits) | (entry << (entriesPerChar - 1) * bits));
++entriesInCharSoFar;
if (entriesInCharSoFar == entriesPerChar) {
// Character is full
@@ -1224,11 +1194,10 @@ OUTER: for (int i = 0; i < n; i += m) {
entriesInCharSoFar = 0;
ch = '\u0000';
}
}
else {
} else {
// Use multiple characters per entry
for (int k=0; k<charsPerEntry; ++k) {
ch = (char)(entry >> ((charsPerEntry-1)*16));
for (int k = 0; k < charsPerEntry; ++k) {
ch = (char) (entry >> ((charsPerEntry - 1) * 16));
entry <<= 16;
theString.append(ch);
}
@@ -1240,7 +1209,6 @@ OUTER: for (int i = 0; i < n; i += m) {
++entriesInCharSoFar;
}
theString.append(ch);
entriesInCharSoFar = 0;
}
result.append(Utility.formatForSource(theString.toString(), " "));
if (noConversion) {
@@ -1337,7 +1305,7 @@ OUTER: for (int i = 0; i < n; i += m) {
result.append("0x").append(hex4((j & ~commentMask) << (16 - size)));
else
result.append(dec3((j & ~commentMask) >> commentShift));
if (properties) propertiesComments(result, val);
if (properties) propertiesComments(result, val << extract);
result.append(commentEnd);
}
} // end PRINT
@@ -1347,27 +1315,25 @@ OUTER: for (int i = 0; i < n; i += m) {
}
static void genCaseMapTableDeclaration(StringBuffer result) {
String myTab = " ";
result.append(myTab + "static final char[][][] charMap;\n");
result.append(" static final char[][][] charMap;\n");
}
static void genCaseMapTable(StringBuffer result, SpecialCaseMap[] specialCaseMaps){
String myTab = " ";
int ch;
char[] map;
result.append(myTab + "charMap = new char[][][] {\n");
for (int x = 0; x < specialCaseMaps.length; x++) {
ch = specialCaseMaps[x].getCharSource();
map = specialCaseMaps[x].getUpperCaseMap();
result.append(myTab + myTab);
result.append("{ ");
result.append("{\'\\u"+hex4(ch)+"\'}, {");
for (int y = 0; y < map.length; y++) {
result.append("\'\\u"+hex4(map[y])+"\', ");
result.append(myTab).append("charMap = new char[][][] {\n");
for (SpecialCaseMap specialCaseMap : specialCaseMaps) {
ch = specialCaseMap.getCharSource();
map = specialCaseMap.getUpperCaseMap();
result.append(myTab).append(myTab).append("{ ");
result.append("{'\\u").append(hex4(ch)).append("'}, {");
for (char c : map) {
result.append("'\\u").append(hex4(c)).append("', ");
}
result.append("} },\n");
}
result.append(myTab + "};\n");
result.append(myTab).append("};\n");
}
@@ -1384,126 +1350,49 @@ OUTER: for (int i = 0; i < n; i += m) {
static void propertiesComments(StringBuffer result, long val) {
result.append(" ");
switch ((int)(val & maskType)) {
case UnicodeSpec.CONTROL:
result.append("Cc");
break;
case UnicodeSpec.FORMAT:
result.append("Cf");
break;
case UnicodeSpec.PRIVATE_USE:
result.append("Co");
break;
case UnicodeSpec.SURROGATE:
result.append("Cs");
break;
case UnicodeSpec.LOWERCASE_LETTER:
result.append("Ll");
break;
case UnicodeSpec.MODIFIER_LETTER:
result.append("Lm");
break;
case UnicodeSpec.OTHER_LETTER:
result.append("Lo");
break;
case UnicodeSpec.TITLECASE_LETTER:
result.append("Lt");
break;
case UnicodeSpec.UPPERCASE_LETTER:
result.append("Lu");
break;
case UnicodeSpec.COMBINING_SPACING_MARK:
result.append("Mc");
break;
case UnicodeSpec.ENCLOSING_MARK:
result.append("Me");
break;
case UnicodeSpec.NON_SPACING_MARK:
result.append("Mn");
break;
case UnicodeSpec.DECIMAL_DIGIT_NUMBER:
result.append("Nd");
break;
case UnicodeSpec.LETTER_NUMBER:
result.append("Nl");
break;
case UnicodeSpec.OTHER_NUMBER:
result.append("No");
break;
case UnicodeSpec.CONNECTOR_PUNCTUATION:
result.append("Pc");
break;
case UnicodeSpec.DASH_PUNCTUATION:
result.append("Pd");
break;
case UnicodeSpec.END_PUNCTUATION:
result.append("Pe");
break;
case UnicodeSpec.OTHER_PUNCTUATION:
result.append("Po");
break;
case UnicodeSpec.START_PUNCTUATION:
result.append("Ps");
break;
case UnicodeSpec.CURRENCY_SYMBOL:
result.append("Sc");
break;
case UnicodeSpec.MODIFIER_SYMBOL:
result.append("Sk");
break;
case UnicodeSpec.MATH_SYMBOL:
result.append("Sm");
break;
case UnicodeSpec.OTHER_SYMBOL:
result.append("So");
break;
case UnicodeSpec.LINE_SEPARATOR:
result.append("Zl"); break;
case UnicodeSpec.PARAGRAPH_SEPARATOR:
result.append("Zp");
break;
case UnicodeSpec.SPACE_SEPARATOR:
result.append("Zs");
break;
case UnicodeSpec.UNASSIGNED:
result.append("unassigned");
break;
switch ((int) (val & maskType)) {
case UnicodeSpec.CONTROL -> result.append("Cc");
case UnicodeSpec.FORMAT -> result.append("Cf");
case UnicodeSpec.PRIVATE_USE -> result.append("Co");
case UnicodeSpec.SURROGATE -> result.append("Cs");
case UnicodeSpec.LOWERCASE_LETTER -> result.append("Ll");
case UnicodeSpec.MODIFIER_LETTER -> result.append("Lm");
case UnicodeSpec.OTHER_LETTER -> result.append("Lo");
case UnicodeSpec.TITLECASE_LETTER -> result.append("Lt");
case UnicodeSpec.UPPERCASE_LETTER -> result.append("Lu");
case UnicodeSpec.COMBINING_SPACING_MARK -> result.append("Mc");
case UnicodeSpec.ENCLOSING_MARK -> result.append("Me");
case UnicodeSpec.NON_SPACING_MARK -> result.append("Mn");
case UnicodeSpec.DECIMAL_DIGIT_NUMBER -> result.append("Nd");
case UnicodeSpec.LETTER_NUMBER -> result.append("Nl");
case UnicodeSpec.OTHER_NUMBER -> result.append("No");
case UnicodeSpec.CONNECTOR_PUNCTUATION -> result.append("Pc");
case UnicodeSpec.DASH_PUNCTUATION -> result.append("Pd");
case UnicodeSpec.END_PUNCTUATION -> result.append("Pe");
case UnicodeSpec.OTHER_PUNCTUATION -> result.append("Po");
case UnicodeSpec.START_PUNCTUATION -> result.append("Ps");
case UnicodeSpec.CURRENCY_SYMBOL -> result.append("Sc");
case UnicodeSpec.MODIFIER_SYMBOL -> result.append("Sk");
case UnicodeSpec.MATH_SYMBOL -> result.append("Sm");
case UnicodeSpec.OTHER_SYMBOL -> result.append("So");
case UnicodeSpec.LINE_SEPARATOR -> result.append("Zl");
case UnicodeSpec.PARAGRAPH_SEPARATOR -> result.append("Zp");
case UnicodeSpec.SPACE_SEPARATOR -> result.append("Zs");
case UnicodeSpec.UNASSIGNED -> result.append("unassigned");
}
switch ((int)((val & maskBidi) >> shiftBidi)) {
case UnicodeSpec.DIRECTIONALITY_LEFT_TO_RIGHT:
result.append(", L");
break;
case UnicodeSpec.DIRECTIONALITY_RIGHT_TO_LEFT:
result.append(", R");
break;
case UnicodeSpec.DIRECTIONALITY_EUROPEAN_NUMBER:
result.append(", EN");
break;
case UnicodeSpec.DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR:
result.append(", ES");
break;
case UnicodeSpec.DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR:
result.append(", ET");
break;
case UnicodeSpec.DIRECTIONALITY_ARABIC_NUMBER:
result.append(", AN");
break;
case UnicodeSpec.DIRECTIONALITY_COMMON_NUMBER_SEPARATOR:
result.append(", CS");
break;
case UnicodeSpec.DIRECTIONALITY_PARAGRAPH_SEPARATOR:
result.append(", B");
break;
case UnicodeSpec.DIRECTIONALITY_SEGMENT_SEPARATOR:
result.append(", S");
break;
case UnicodeSpec.DIRECTIONALITY_WHITESPACE:
result.append(", WS");
break;
case UnicodeSpec.DIRECTIONALITY_OTHER_NEUTRALS:
result.append(", ON");
break;
switch ((int) ((val & maskBidi) >> shiftBidi)) {
case UnicodeSpec.DIRECTIONALITY_LEFT_TO_RIGHT -> result.append(", L");
case UnicodeSpec.DIRECTIONALITY_RIGHT_TO_LEFT -> result.append(", R");
case UnicodeSpec.DIRECTIONALITY_EUROPEAN_NUMBER -> result.append(", EN");
case UnicodeSpec.DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR -> result.append(", ES");
case UnicodeSpec.DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR -> result.append(", ET");
case UnicodeSpec.DIRECTIONALITY_ARABIC_NUMBER -> result.append(", AN");
case UnicodeSpec.DIRECTIONALITY_COMMON_NUMBER_SEPARATOR -> result.append(", CS");
case UnicodeSpec.DIRECTIONALITY_PARAGRAPH_SEPARATOR -> result.append(", B");
case UnicodeSpec.DIRECTIONALITY_SEGMENT_SEPARATOR -> result.append(", S");
case UnicodeSpec.DIRECTIONALITY_WHITESPACE -> result.append(", WS");
case UnicodeSpec.DIRECTIONALITY_OTHER_NEUTRALS -> result.append(", ON");
}
if ((val & maskUpperCase) != 0) {
result.append(", hasUpper (subtract ");
@@ -1600,10 +1489,9 @@ OUTER: for (int i = 0; i < n; i += m) {
String bitshift = (bits == 1) ? "(" + var + "&0x1F)" :
(bits == 2) ? "((" + var + "&0xF)<<1)" :
(bits == 4) ? "((" + var + "&7)<<2)" : null;
String extracted = ((k < sizes.length - 1) || (bits >= 8)) ? adjusted :
access = ((k < sizes.length - 1) || (bits >= 8)) ? adjusted :
"((" + adjusted + ">>" + bitshift + ")&" +
(bits == 4 ? "0xF" : "" + ((1 << bits) - 1)) + ")";
access = extracted;
}
return access;
}
@@ -1687,9 +1575,9 @@ OUTER: for (int i = 0; i < n; i += m) {
*/
static void processArgs(String[] args) {
StringBuffer desc = new StringBuffer("java GenerateCharacter");
for (int j=0; j<args.length; ++j) {
desc.append(" " + args[j]);
StringBuilder desc = new StringBuilder("java GenerateCharacter");
for (String arg : args) {
desc.append(" ").append(arg);
}
for (int j = 0; j < args.length; j++) {
if (args[j].equals("-verbose") || args[j].equals("-v"))
@@ -1846,13 +1734,13 @@ OUTER: for (int i = 0; i < n; i += m) {
private static void searchBins(long[] map, int binsOccupied) throws Exception {
int bitsFree = 16;
for (int i=0; i<binsOccupied; ++i) bitsFree -= sizes[i];
for (int i = 0; i < binsOccupied; ++i) bitsFree -= sizes[i];
if (binsOccupied == (bins-1)) {
sizes[binsOccupied] = bitsFree;
generateForSizes(map);
}
else {
for (int i=1; i<bitsFree; ++i) { // Don't allow bins of 0 except for last one
for (int i = 1; i < bitsFree; ++i) { // Don't allow bins of 0 except for last one
sizes[binsOccupied] = i;
searchBins(map, binsOccupied+1);
}
@@ -1878,15 +1766,15 @@ OUTER: for (int i = 0; i < n; i += m) {
if (verbose && bins==0)
System.err.println("Building map " + (j+1) + " of bit width " + sizes[j]);
long[][] temp = buildTable(tables[j], sizes[j]);
tables[j-1] = temp[0];
tables[j - 1] = temp[0];
tables[j] = temp[1];
}
preshifted = new boolean[sizes.length];
zeroextend = new int[sizes.length];
bytes = new int[sizes.length];
for (int j = 0; j < sizes.length - 1; j++) {
int len = tables[j+1].length;
int size = sizes[j+1];
int len = tables[j + 1].length;
int size = sizes[j + 1];
if (len > 0x100 && (len >> size) <= 0x100) {
len >>= size;
preshifted[j] = false;
@@ -1922,7 +1810,9 @@ OUTER: for (int i = 0; i < n; i += m) {
if (ch == '<' || ch == '>') ++j;
}
System.out.print("(");
for (int j=0; j<sizes.length; ++j) System.out.print(" " + sizes[j]);
for (int size : sizes) {
System.out.print(" " + size);
}
System.out.println(" ) " + totalBytes + " " + accessComplexity + " " + access);
return;
}

View File

@@ -206,7 +206,7 @@ public class JSpec implements Taglet {
private String escape(String s) {
return s.replace("&", "&amp;")
.replace("<", "&lt;")
.replace(">", "&gt");
.replace(">", "&gt;");
}
}).visit(trees, new StringBuilder()).toString();
}

View File

@@ -96,8 +96,6 @@ $(BUILD_LIBNIO): $(BUILD_LIBNET)
# Create the macosx security library
ifeq ($(call isTargetOs, macosx), true)
# JavaNativeFoundation framework not supported in static builds
ifneq ($(STATIC_BUILD), true)
$(eval $(call SetupJdkLibrary, BUILD_LIBOSXSECURITY, \
NAME := osxsecurity, \
@@ -120,7 +118,6 @@ ifeq ($(call isTargetOs, macosx), true)
TARGETS += $(BUILD_LIBOSXSECURITY)
endif
endif
################################################################################

View File

@@ -82,3 +82,13 @@ $(eval $(call SetupCopyLegalFiles, COPY_LEGAL, \
TARGETS += $(COPY_LEGAL)
################################################################################
FONTFILE_SRC_DIR := $(TOPDIR)/src/java.desktop/share
FONTFILE_SRCS := $(wildcard $(FONTFILE_SRC_DIR)/fonts/*.ttf) $(FONTFILE_SRC_DIR)/fonts/fonts.dir $(FONTFILE_SRC_DIR)/fonts/font.conf
FONTFILE_TARGET_FILES := $(subst $(FONTFILE_SRC_DIR),$(LIB_DST_DIR),$(FONTFILE_SRCS))
$(LIB_DST_DIR)/fonts/%: $(FONTFILE_SRC_DIR)/fonts/%
$(call install-file)
TARGETS += $(FONTFILE_TARGET_FILES)

View File

@@ -73,6 +73,7 @@ ifeq ($(call isTargetOs, windows), true)
$(TOPDIR)/src/$(MODULE)/share/native/common/font \
$(TOPDIR)/src/$(MODULE)/share/native/common/java2d/opengl \
$(TOPDIR)/src/$(MODULE)/$(OPENJDK_TARGET_OS_TYPE)/native/common/awt/systemscale \
$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/launcher \
#
endif
@@ -167,7 +168,7 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBAWT, \
LIBS_windows := kernel32.lib user32.lib gdi32.lib winspool.lib \
imm32.lib ole32.lib uuid.lib shell32.lib \
comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \
delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib, \
delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib dwmapi.lib, \
VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \
EXTRA_RCFLAGS := $(LIBAWT_RCFLAGS), \
))
@@ -432,92 +433,50 @@ endif
###########################################################################
ifeq ($(USE_EXTERNAL_HARFBUZZ), true)
LIBHARFBUZZ_LIBS := $(HARFBUZZ_LIBS)
LIBFONTMANAGER_EXTRA_SRC =
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS)
else
LIBFONTMANAGER_EXTRA_SRC = libharfbuzz
# This is better than adding EXPORT_ALL_SYMBOLS
ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
HARFBUZZ_CFLAGS += -DHB_EXTERN=__attribute__\(\(visibility\(\"default\"\)\)\)
else ifeq ($(TOOLCHAIN_TYPE), microsoft)
HARFBUZZ_CFLAGS += -DHB_EXTERN=__declspec\(dllexport\)
endif
ifeq ($(call isTargetOs, windows), false)
HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
-DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
-DHB_NO_PRAGMA_GCC_DIAGNOSTIC
endif
ifeq ($(call isTargetOs, linux macosx), true)
HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
endif
ifeq ($(call isTargetOs, macosx), true)
HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
endif
ifeq ($(call isTargetOs, windows), false)
HARFBUZZ_CFLAGS += -DGETPAGESIZE -DHAVE_MPROTECT -DHAVE_PTHREAD \
-DHAVE_SYSCONF -DHAVE_SYS_MMAN_H -DHAVE_UNISTD_H \
-DHB_NO_PRAGMA_GCC_DIAGNOSTIC
endif
ifeq ($(call isTargetOs, linux macosx), true)
HARFBUZZ_CFLAGS += -DHAVE_INTEL_ATOMIC_PRIMITIVES
endif
ifeq ($(call isTargetOs, macosx), true)
HARFBUZZ_CFLAGS += -DHAVE_CORETEXT
endif
ifeq ($(call isTargetOs, macosx), false)
LIBHARFBUZZ_EXCLUDE_FILES += libharfbuzz/hb-coretext.cc
endif
# hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
LIBHARFBUZZ_EXCLUDE_FILES += libharfbuzz/hb-ft.cc
# Early re-canonizing has to be disabled to workaround an internal XlC compiler error
# when building libharfbuzz
ifeq ($(call isTargetOs, aix), true)
HARFBUZZ_CFLAGS += -qdebug=necan
endif
LIBHARFBUZZ_CFLAGS += $(HARFBUZZ_CFLAGS)
ifeq ($(call isTargetOs, macosx), false)
LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-coretext.cc
endif
# hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-ft.cc
# For use by libfontmanager:
ifeq ($(call isTargetOs, windows), true)
LIBHARFBUZZ_LIBS := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libharfbuzz/harfbuzz.lib
else
LIBHARFBUZZ_LIBS := -lharfbuzz
endif
LIBHARFBUZZ_EXTRA_HEADER_DIRS := \
libharfbuzz/hb-ucdn \
#
LIBHARFBUZZ_OPTIMIZATION := HIGH
# Early re-canonizing has to be disabled to workaround an internal XlC compiler error
# when building libharfbuzz
ifeq ($(call isTargetOs, aix), true)
LIBHARFBUZZ_CFLAGS += -qdebug=necan
endif
LIBHARFBUZZ_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
$(eval $(call SetupJdkLibrary, BUILD_LIBHARFBUZZ, \
NAME := harfbuzz, \
EXCLUDE_FILES := $(LIBHARFBUZZ_EXCLUDE_FILES), \
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
CFLAGS := $(CFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBHARFBUZZ_CFLAGS), \
OPTIMIZATION := $(LIBHARFBUZZ_OPTIMIZATION), \
CFLAGS_windows = -DCC_NOEX, \
EXTRA_HEADER_DIRS := $(LIBHARFBUZZ_EXTRA_HEADER_DIRS), \
WARNINGS_AS_ERRORS_xlc := false, \
DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing, \
DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
maybe-uninitialized class-memaccess, \
DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
HARFBUZZ_DISABLED_WARNINGS_gcc := type-limits missing-field-initializers strict-aliasing
HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
maybe-uninitialized class-memaccess
HARFBUZZ_DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
tautological-constant-out-of-range-compare int-to-pointer-cast \
undef missing-field-initializers range-loop-analysis, \
DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
LDFLAGS_unix := -L$(INSTALL_LIBRARIES_HERE), \
LDFLAGS_aix := -Wl$(COMMA)-berok, \
LIBS := $(BUILD_LIBHARFBUZZ), \
LIBS_unix := $(LIBM) $(LIBCXX), \
LIBS_macosx := -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
LIBS_windows := user32.lib, \
))
undef missing-field-initializers range-loop-analysis \
deprecated-declarations c++11-narrowing
HARFBUZZ_DISABLED_WARNINGS_microsoft := 4267 4244 4090 4146 4334 4819 4101 4068 4805 4138
ifeq ($(FREETYPE_TO_USE), bundled)
$(BUILD_LIBHARFBUZZ): $(BUILD_LIBFREETYPE)
endif
TARGETS += $(BUILD_LIBHARFBUZZ)
LIBFONTMANAGER_CFLAGS += $(HARFBUZZ_CFLAGS)
endif
###########################################################################
LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
libharfbuzz \
@@ -528,10 +487,10 @@ LIBFONTMANAGER_EXTRA_HEADER_DIRS := \
libawt/java2d/loops \
#
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS) $(HARFBUZZ_FLAGS)
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBHARFBUZZ_LIBS) $(LIBFREETYPE_LIBS)
LIBFONTMANAGER_CFLAGS += $(LIBFREETYPE_CFLAGS)
BUILD_LIBFONTMANAGER_FONTLIB += $(LIBFREETYPE_LIBS)
LIBFONTMANAGER_OPTIMIZATION := HIGH
LIBFONTMANAGER_OPTIMIZATION := HIGHEST
ifeq ($(call isTargetOs, windows), true)
LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
@@ -541,20 +500,16 @@ else ifeq ($(call isTargetOs, macosx), true)
LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
X11TextRenderer.c \
fontpath.c \
lcdglyph.c
lcdglyph.c \
lcdglyphDW.cpp
else
LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \
lcdglyph.c
lcdglyph.c \
lcdglyphDW.cpp
endif
LIBFONTMANAGER_CFLAGS += $(X_CFLAGS) -DLE_STANDALONE -DHEADLESS
ifeq ($(TOOLCHAIN_TYPE), gcc)
# Turn off all warnings for sunFont.c. This is needed because the specific warning
# about discarding 'const' qualifier cannot be turned off individually.
BUILD_LIBFONTMANAGER_sunFont.c_CFLAGS := -w
endif
# LDFLAGS clarification:
# Filter relevant linker flags disallowing unresolved symbols as we cannot
# build-time decide to which library to link against (libawt_headless or
@@ -569,7 +524,12 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \
CFLAGS_windows = -DCC_NOEX, \
EXTRA_HEADER_DIRS := $(LIBFONTMANAGER_EXTRA_HEADER_DIRS), \
EXTRA_SRC := $(LIBFONTMANAGER_EXTRA_SRC), \
WARNINGS_AS_ERRORS_xlc := false, \
DISABLED_WARNINGS_gcc := $(HARFBUZZ_DISABLED_WARNINGS_gcc), \
DISABLED_WARNINGS_CXX_gcc := $(HARFBUZZ_DISABLED_WARNINGS_CXX_gcc), \
DISABLED_WARNINGS_clang := $(HARFBUZZ_DISABLED_WARNINGS_clang), \
DISABLED_WARNINGS_microsoft := $(HARFBUZZ_DISABLED_WARNINGS_microsoft), \
LDFLAGS := $(subst -Xlinker -z -Xlinker defs,, \
$(subst -Wl$(COMMA)-z$(COMMA)defs,,$(LDFLAGS_JDKLIB))) $(LDFLAGS_CXX_JDK) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
@@ -577,17 +537,13 @@ $(eval $(call SetupJdkLibrary, BUILD_LIBFONTMANAGER, \
LDFLAGS_aix := -Wl$(COMMA)-berok, \
LIBS := $(BUILD_LIBFONTMANAGER_FONTLIB), \
LIBS_unix := -lawt -ljava -ljvm $(LIBM) $(LIBCXX), \
LIBS_macosx := -lawt_lwawt, \
LIBS_macosx := -lawt_lwawt -framework CoreText -framework CoreFoundation -framework CoreGraphics, \
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \
$(WIN_AWT_LIB), \
))
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT)
ifeq ($(USE_EXTERNAL_HARFBUZZ), false)
$(BUILD_LIBFONTMANAGER): $(BUILD_LIBHARFBUZZ)
endif
ifeq ($(call isTargetOs, macosx), true)
$(BUILD_LIBFONTMANAGER): $(call FindLib, $(MODULE), awt_lwawt)
endif

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