Compare commits

..

1391 Commits

Author SHA1 Message Date
Fairoz Matte
d8f6b6c19a 8274718: runtime/cds/appcds/LambdaEagerInit.java fails with -XX:-CompactStrings
Reviewed-by: iklam, ccheung
2021-10-13 15:38:36 +00:00
Jie Fu
451a296510 8275173: testlibrary_tests/ir_framework/tests/TestCheckedTests.java fails after JDK-8274911
Reviewed-by: chagedorn, thartmann
2021-10-13 14:30:11 +00:00
Andrey Turbanov
5ffb5d100f 8272992: Replace usages of Collections.sort with List.sort call in jdk.* modules
Reviewed-by: cjplummer, prappo
2021-10-13 11:34:24 +00:00
Jan Lahoda
b8cb76ad21 8273682: Upgrade Jline to 3.20.0
Reviewed-by: sundar
2021-10-13 10:15:54 +00:00
Andrey Turbanov
dcf428c7a7 8275075: Remove unnecessary conversion to String in jdk.hotspot.agent
Reviewed-by: sspitsyn, cjplummer
2021-10-13 09:07:07 +00:00
Thomas Schatzl
c3b75c6cdf 8274516: [REDO] JDK-8271880: Tighten condition for excluding regions from collecting cards with cross-references
Reviewed-by: sjohanss, ayang
2021-10-13 08:10:55 +00:00
Niklas Radomski
337b73a459 8274851: [PPC64] Port zgc to linux on ppc64le
Reviewed-by: ihse, pliden, mdoerr, eosterlund
2021-10-13 07:36:52 +00:00
Martin Doerr
cf828673a9 8275049: [ZGC] missing null check in ZNMethod::log_register
Reviewed-by: nradomski, eosterlund, pliden
2021-10-13 07:12:52 +00:00
Joe Darcy
ab34cced3b 8275186: Suppress warnings on non-serializable array component types in xml
Reviewed-by: joehw
2021-10-13 05:26:33 +00:00
Daniel D. Daugherty
b1b83500a9 8275171: ProblemList compiler/codegen/aes/TestAESMain.java on linux-x64 and windows-x64 in -Xcomp mode
Reviewed-by: iignatyev
2021-10-12 23:43:40 +00:00
Magnus Ihse Bursie
03c2b73e21 8275128: Build hsdis using normal build system
Reviewed-by: erikj
2021-10-12 23:28:53 +00:00
Sergey Tsypanov
124f82377b 8268764: Use Long.hashCode() instead of int-cast where applicable
Reviewed-by: kevinw, prr, kizune, serb
2021-10-12 19:13:17 +00:00
Daniel D. Daugherty
8657f77608 8271514: support JFR use of new ThreadsList::Iterator
Co-authored-by: Kim Barrett <kbarrett@openjdk.org>
Reviewed-by: sspitsyn, mgronlun
2021-10-12 17:05:47 +00:00
Evgeny Astigeevich
b8bd259bb8 8271737: Only normalize the cached user.dir property once
Reviewed-by: phh
2021-10-12 16:56:06 +00:00
Dmitry Batrak
89999f70e0 8275131: Exceptions after a touchpad gesture on macOS
Reviewed-by: dmarkov, prr
2021-10-12 15:36:41 +00:00
Brian Burkhalter
07b1f1c282 8274548: (fc) FileChannel gathering write fails with IOException "Invalid argument" on macOS 11.6
Reviewed-by: alanb
2021-10-12 15:25:53 +00:00
Christian Hagedorn
f623460668 8274911: testlibrary_tests/ir_framework/tests/TestIRMatching.java fails with "java.lang.RuntimeException: Should have thrown exception"
Reviewed-by: kvn, thartmann
2021-10-12 13:21:35 +00:00
Roman Kennke
e393c5ea9d 8275074: Cleanup unused code in JFR LeakProfiler
Reviewed-by: mgronlun
2021-10-12 13:16:20 +00:00
Martin Doerr
e16b93ad52 8274770: [PPC64] resolve_jobject needs a generic implementation to support load barriers
Reviewed-by: goetz, nradomski
2021-10-12 12:18:49 +00:00
Zhengyu Gu
1ab64143c0 8275051: Shenandoah: Correct ordering of requested gc cause and gc request flag
Reviewed-by: shade
2021-10-12 11:58:35 +00:00
kabutz
b460d6ddaf 8275091: /src/jdk.management.jfr/share/classes/module-info.java has non-canonical order
Reviewed-by: mgronlun
2021-10-12 11:38:21 +00:00
Andrey Turbanov
d04d4ee2c1 8274894: Use Optional.empty() instead of ofNullable(null) in HttpResponse.BodySubscribers.discarding
Reviewed-by: dfuchs
2021-10-12 11:14:31 +00:00
Doug Simon
33050f8013 8274986: max code printed in hs-err logs should be configurable
Reviewed-by: never, dholmes
2021-10-12 09:49:50 +00:00
Kim Barrett
8de26361f7 8274615: Support relaxed atomic add for linux-aarch64
Reviewed-by: aph, dholmes
2021-10-12 09:40:35 +00:00
Andrey Turbanov
7d2633f795 8275002: Remove unused AbstractStringBuilder.MAX_ARRAY_SIZE
Reviewed-by: prappo, jlaskey, martin
2021-10-12 09:37:54 +00:00
Aleksey Shipilev
cfe7471f17 8177814: jdk/editpad is not in jdk TEST.groups
Reviewed-by: serb
2021-10-12 07:24:15 +00:00
Aleksey Shipilev
a5f09d1088 8275031: runtime/ErrorHandling/MachCodeFramesInErrorFile.java fails when hsdis is present
Reviewed-by: dholmes, dnsimon
2021-10-12 06:22:13 +00:00
Aleksey Shipilev
ef0922e885 8274560: JFR: Add test for OldObjectSample event when using Shenandoah
Reviewed-by: mgronlun
2021-10-12 05:56:15 +00:00
Hamlin Li
1e3069593e 8274466: G1: use field directly rather than method in G1CollectorState::in_mixed_phase
Reviewed-by: ayang, sjohanss
2021-10-12 01:25:00 +00:00
Sergey Bylokhov
dd93c6e27b 8272167: AbsPathsInImage.java should skip *.dSYM directories
Reviewed-by: ihse, erikj
2021-10-12 00:14:00 +00:00
Andrey Turbanov
829dea45c9 8274945: Cleanup unnecessary calls to Throwable.initCause() in java.desktop
Reviewed-by: jdv, serb, pbansal
2021-10-11 19:19:39 +00:00
Zhengyu Gu
75f5145e21 8274925: Shenandoah: shenandoah/TestAllocHumongousFragment.java test failed on lock rank check
Reviewed-by: shade
2021-10-11 16:58:53 +00:00
Thomas Stuefe
83c3771929 8273881: Metaspace: test repeated deallocations
Reviewed-by: dholmes, shade
2021-10-11 15:48:10 +00:00
Lin Zang
3f01d03a10 8275021: Test serviceability/sa/TestJmapCore.java fails with: java.io.IOException: Stack frame 0x4 not found
Reviewed-by: dholmes, dcubed
2021-10-11 15:27:28 +00:00
Zhengyu Gu
3f07337722 8273614: Shenandoah: intermittent timeout with ConcurrentGCBreakpoint tests
Reviewed-by: shade
2021-10-11 15:10:57 +00:00
Patricio Chilano Mateo
0d80f6cf82 8274379: Allow process of unsafe access errors in check_special_condition_for_native_trans
Reviewed-by: rehn, dholmes
2021-10-11 13:34:42 +00:00
Jan Lahoda
b870468bdc 8274347: Passing a *nested* switch expression as a parameter causes an NPE during compile
Reviewed-by: vromero
2021-10-11 12:38:08 +00:00
Coleen Phillimore
110e38ded8 8274753: ZGC: SEGV in MetaspaceShared::link_shared_classes
8274935: dumptime_table has stale entry

Reviewed-by: eosterlund, iklam
2021-10-11 12:11:11 +00:00
Thomas Schatzl
b7af890574 8274430: Remove some debug error printing code added in JDK-8017163
Reviewed-by: sjohanss, ayang
2021-10-11 11:48:50 +00:00
Thomas Schatzl
aaf2401bc7 8274927: Remove unnecessary G1ArchiveAllocator code
Reviewed-by: kbarrett, ayang
2021-10-11 11:46:46 +00:00
Jie Fu
c55dd365e3 8275008: gtest build failure due to stringop-overflow warning with gcc11
Reviewed-by: dholmes, ihse
2021-10-11 10:51:39 +00:00
Roman Kennke
3edee1e1fe 8272723: Don't use Access API to access primitive fields
Reviewed-by: stefank, eosterlund
2021-10-11 10:37:54 +00:00
Martin Doerr
49f8ce6e9c 8274773: [TESTBUG] UnsafeIntrinsicsTest intermittently fails on weak memory model platform
Reviewed-by: eosterlund, goetz
2021-10-11 10:31:54 +00:00
Fei Gao
c032186b42 8272968: AArch64: Remove redundant matching rules for commutative ops
Reviewed-by: ngasson
2021-10-11 06:59:37 +00:00
Ao Qi
a05873a225 8274952: jdk/jfr/api/consumer/TestRecordedFrameType.java failed when c1 disabled
Reviewed-by: egahlin, jiefu
2021-10-11 02:17:56 +00:00
Lin Zang
5ecc99bbf5 8274620: resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java is timing out
Reviewed-by: cjplummer, dholmes
2021-10-11 01:56:34 +00:00
Jie Fu
2ff3977a66 8275004: CDS build failure with gcc11
Reviewed-by: shade
2021-10-10 14:00:58 +00:00
lawrence.andrews
296f8537f7 8274029: Remove jtreg tag manual=yesno for java/awt/print/Dialog/DialogOrient.java
Reviewed-by: serb
2021-10-10 08:46:04 +00:00
Andrey Turbanov
2c83559eda 8274882: Cleanup redundant boxing in java.desktop
Reviewed-by: serb, pbansal
2021-10-10 08:41:52 +00:00
Wang Huang
6d1d4d5292 8268231: Aarch64: Use ldp in intrinsics for String.compareTo
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Sun Jianye <sunjianye@huawei.com>
Co-authored-by: Wu Yan <wuyan@openjdk.org>
Reviewed-by: ngasson, aph
2021-10-09 08:19:17 +00:00
Pankaj Bansal
aac6c4ea70 8272229: BasicSplitPaneDivider:oneTouchExpandableChanged() returns leftButton and rightButton as null with GTKLookAndFeel
Reviewed-by: serb, jdv, kizune
2021-10-09 03:52:53 +00:00
Andrey Turbanov
f640c7aaa8 8274806: Simplify equals() call on nullable variable and a constant in java.desktop
Reviewed-by: serb, pbansal
2021-10-09 00:46:20 +00:00
Andrey Turbanov
9c431dd168 8274900: Too weak variable type leads to unnecessary cast in jdk.javadoc
Reviewed-by: prappo
2021-10-08 23:08:05 +00:00
Coleen Phillimore
3cb9724ed9 8274934: Attempting to acquire lock JNICritical_lock/41 out of order with lock MultiArray_lock/41
Reviewed-by: dcubed, iklam
2021-10-08 21:10:42 +00:00
Brian Burkhalter
239a35aa91 8233749: Files.exists javadoc doesn't mention eating IOException
Reviewed-by: lancea, alanb
2021-10-08 16:43:16 +00:00
Naoto Sato
ec199072c5 8274864: Remove Amman/Cairo hacks in ZoneInfoFile
Reviewed-by: iris, joehw
2021-10-08 16:11:22 +00:00
Sergey Tsypanov
ccbce107f2 8272756: Remove unnecessary explicit initialization of volatile variables in java.desktop
Reviewed-by: jdv, aivanov
2021-10-08 15:58:36 +00:00
Christian Hagedorn
36b89a1893 8274785: ciReplay: Potential crash due to uninitialized Compile::_ilt variable
Reviewed-by: neliasso, kvn
2021-10-08 14:51:18 +00:00
Roland Westrelin
2aacd4220a 8274145: C2: condition incorrectly made redundant with dominating main loop exit condition
Reviewed-by: kvn, neliasso
2021-10-08 14:48:35 +00:00
Coleen Phillimore
6364719cd1 8274004: Change 'nonleaf' rank name
8273956: Add checking for rank values

Reviewed-by: dholmes, pchilanomate
2021-10-08 12:23:19 +00:00
Doug Simon
b60837a7d5 8272586: emit abstract machine code in hs-err logs
Reviewed-by: kvn, dholmes
2021-10-08 08:06:53 +00:00
Matthias Baesken
97ea9dd2f2 8274840: Update OS detection code to recognize Windows 11
Co-authored-by: Arno Zeller <arno.zeller@sap.com>
Reviewed-by: clanger, dholmes
2021-10-08 06:40:18 +00:00
Yumin Qi
8de77634c4 8273152: Refactor CDS FileMapHeader loading code
Reviewed-by: ccheung, iklam
2021-10-07 21:33:32 +00:00
Daniel D. Daugherty
920e70701d 8274920: ProblemList 2 VectorAPI tests failing due to "assert(!vbox->is_Phi()) failed"
Reviewed-by: kvn
2021-10-07 17:14:26 +00:00
Andrey Turbanov
7de2cf852d 8273910: Redundant condition and assignment in java.net.URI
Reviewed-by: dfuchs
2021-10-07 16:55:45 +00:00
Naoto Sato
8ca084617f 8274407: (tz) Update Timezone Data to 2021c
8274467: TestZoneInfo310.java fails with tzdata2021b
8274468: TimeZoneTest.java fails with tzdata2021b

Reviewed-by: rriggs, iris, coffeys
2021-10-07 15:32:11 +00:00
Coleen Phillimore
4ab274ac1a 8274858: Remove unused dictionary_classes_do functions
Reviewed-by: dholmes, hseigel
2021-10-07 15:24:00 +00:00
Sean Coffey
03a8d342b8 8273826: Correct Manifest file name and NPE checks
Reviewed-by: weijun, hchao, mullan
2021-10-07 15:12:13 +00:00
Jie Fu
722d639fad 8274838: runtime/cds/appcds/TestSerialGCWithCDS.java fails on Windows
Reviewed-by: iklam, hseigel
2021-10-07 12:42:16 +00:00
Lin Zang
340c715c3b 8273929: Remove GzipRandomAccess in heap dump test
Reviewed-by: cjplummer, sspitsyn
2021-10-07 11:57:18 +00:00
Yude Lin
8319836152 8274546: Shenandoah: Remove unused ShenandoahUpdateRootsTask copy
Reviewed-by: zgu, tschatzl
2021-10-07 11:28:49 +00:00
Andrey Turbanov
d5ccfa2ae9 8274755: Replace 'while' cycles with iterator with enhanced-for in jdk.jdi
Reviewed-by: alanb, amenkov, sspitsyn, cjplummer
2021-10-07 09:38:42 +00:00
Richard Reingruber
29dcbb72a2 8274716: JDWP Spec: the description for the Dispose command confuses suspend with resume.
Reviewed-by: alanb, cjplummer, sspitsyn
2021-10-07 08:20:20 +00:00
Florian Weimer
5762ec2587 8274780: ChannelInputStream.readNBytes(int) incorrectly calls readAllBytes()
Reviewed-by: alanb, bpb
2021-10-07 07:02:01 +00:00
Andrey Turbanov
4e960fe53f 8274497: Unnecessary Vector usage in AquaFileSystemModel
Reviewed-by: serb, pbansal
2021-10-07 03:42:50 +00:00
Jie Fu
c833b4d130 8274329: Fix non-portable HotSpot code in MethodMatcher::parse_method_pattern
Reviewed-by: iklam, ihse, kvn
2021-10-06 23:22:04 +00:00
lawrence.andrews
d57fb6f684 8274456: Remove jtreg tag manual=yesno java/awt/print/PrinterJob/PageDialogTest.java
Reviewed-by: serb
2021-10-06 23:12:56 +00:00
Jonathan Gibbons
734d1fbd33 8274211: Test man page that options are documented
Reviewed-by: prappo
2021-10-06 22:40:44 +00:00
Sergey Bylokhov
9561fea790 8273102: Delete deprecated for removal the empty finalize() in java.desktop module
Reviewed-by: pbansal, aivanov, iris, prr
2021-10-06 22:31:23 +00:00
Andrey Turbanov
9945f7a074 8274318: Replace 'for' cycles with iterator with enhanced-for in java.management
Reviewed-by: cjplummer, sspitsyn, dfuchs
2021-10-06 18:23:46 +00:00
Andrey Turbanov
754bc82c4c 8274525: Replace uses of StringBuffer with StringBuilder in java.xml
Reviewed-by: joehw, iris, naoto, dfuchs
2021-10-06 18:20:18 +00:00
Andrey Turbanov
4e7d7caa0c 8273711: Remove redundant stream() call before forEach in jdk.jlink
Reviewed-by: alanb, psandoz, dfuchs
2021-10-06 18:17:58 +00:00
Andrey Turbanov
f3cedbe928 8274464: Remove redundant stream() call before forEach in java.* modules
Reviewed-by: dfuchs, amenkov, vtewari
2021-10-06 18:11:07 +00:00
Christian Stein
c10de3538b 8262944: Improve exception message when automatic module lists provider class not in JAR file
Reviewed-by: dfuchs, jvernee, alanb, lancea, mchung
2021-10-06 15:11:28 +00:00
Coleen Phillimore
b8af6a9bfb 8273917: Remove 'leaf' ranking for Mutex
Reviewed-by: eosterlund, dholmes
2021-10-06 12:14:33 +00:00
Kim Barrett
c80a612709 8273381: Assert in PtrQueueBufferAllocatorTest.stress_free_list_allocator_vm
Reviewed-by: sjohanss, tschatzl
2021-10-06 11:14:26 +00:00
Andrey Turbanov
9759fcb17b 8274496: Use String.contains() instead of String.indexOf() in java.desktop
Reviewed-by: pbansal, serb
2021-10-06 10:50:38 +00:00
Hannes Wallnöfer
cdf89304ea 8274625: Search field placeholder behavior
Reviewed-by: prappo
2021-10-06 09:28:37 +00:00
Christian Hagedorn
df125f680b 8273410: IR verification framework fails with "Should find method name in validIrRulesMap"
Reviewed-by: thartmann, neliasso
2021-10-06 08:21:18 +00:00
Andrew Haley
c74726dbd0 8274730: AArch64: AES/GCM acceleration is broken by the fix for JDK-8273297
Reviewed-by: adinn, roland, kvn
2021-10-06 08:18:10 +00:00
Per Liden
2faced09ce 8274738: ZGC: Use relaxed atomic load when reading bits in the live map
Reviewed-by: stefank, eosterlund
2021-10-06 07:44:47 +00:00
Andrey Turbanov
8a4d2b4aa7 8274680: Remove unnecessary conversion to String in java.desktop
Reviewed-by: pbansal, jdv, serb, kizune
2021-10-06 02:53:09 +00:00
Yasumasa Suenaga
986ee5d0bf 8274670: Improve version string handling in SA
Reviewed-by: cjplummer, sspitsyn
2021-10-06 00:36:50 +00:00
Sergey Tsypanov
df7b0c7077 8274715: Implement forEach in Collections.CopiesList
Reviewed-by: martin
2021-10-05 22:19:35 +00:00
Daniel D. Daugherty
d4e8712c0a 8274797: ProblemList resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java on macosx-x64
Reviewed-by: darcy
2021-10-05 21:47:18 +00:00
Christoph Langer
47262670f3 8274642: jdk/jshell/CommandCompletionTest.java fails with NoSuchElementException after JDK-8271287
Reviewed-by: jlahoda
2021-10-05 21:06:52 +00:00
Igor Veresov
83b2219220 8273612: Fix for JDK-8272873 causes timeout in running some tests with -Xcomp
Reviewed-by: kvn, neliasso
2021-10-05 19:44:17 +00:00
Joe Darcy
d34ec6ccfc 8274793: Suppress warnings on non-serializable non-transient instance fields in sun.net
Reviewed-by: alanb
2021-10-05 19:10:29 +00:00
Jonathan Gibbons
332f067388 8274729: Define Position.NOPOS == Diagnostic.NOPOS
Reviewed-by: jlahoda
2021-10-05 18:54:19 +00:00
Weijun Wang
1e75203356 8274656: Remove default_checksum and safe_checksum_type from krb5.conf
Reviewed-by: valeriep
2021-10-05 18:19:45 +00:00
Weijun Wang
03d3c03384 8273670: Remove weak etypes from default krb5 etype list
Reviewed-by: valeriep, mullan
2021-10-05 18:18:51 +00:00
Joe Darcy
c391e59ea6 8274244: ReportOnImportedModuleAnnotation.java fails on rerun
Reviewed-by: jjg
2021-10-05 17:31:57 +00:00
Phil Race
37890650a7 8274397: [macOS] Stop setting env. var JAVA_MAIN_CLASS_<pid> in launcher code
Reviewed-by: rriggs, serb
2021-10-05 17:30:31 +00:00
Hannes Wallnöfer
e1f0df0de3 8267853: Remove unused styles from stylesheet
Reviewed-by: prappo
2021-10-05 16:57:12 +00:00
Jonathan Gibbons
4e3948f18b 8274744: TestSnippetTag test fails after recent integration
Reviewed-by: prappo
2021-10-05 15:27:02 +00:00
Jonathan Gibbons
92b64a2053 8273745: VerifyLocale.java occasionally times out
Reviewed-by: prappo
2021-10-05 15:21:44 +00:00
Coleen Phillimore
90a5ae802e 8274282: Clarify special wait assert
Reviewed-by: dholmes, pchilanomate
2021-10-05 15:13:54 +00:00
Albert Mingkun Yang
bb0bab57a1 8274286: Skip null for make_referent_alive in referenceProcessor
Reviewed-by: kbarrett, tschatzl
2021-10-05 14:31:17 +00:00
Peter Levart
7ad74d82d7 8274299: Make Method/Constructor/Field accessors @Stable
Reviewed-by: redestad, mchung
2021-10-05 14:16:20 +00:00
Andrey Turbanov
1459180f35 8274079: Cleanup unnecessary calls to Throwable.initCause() in java.base module
Reviewed-by: weijun
2021-10-05 13:36:37 +00:00
Harold Seigel
8609ea55ac 8273342: Null pointer dereference in classFileParser.cpp:2817
Reviewed-by: coleenp, dholmes
2021-10-05 12:39:56 +00:00
Jan Lahoda
a5080effc7 8272564: Incorrect attribution of method invocations of Object methods on interfaces
Reviewed-by: jlaskey, mcimadamore, vromero
2021-10-05 10:17:24 +00:00
Kim Barrett
a914ee7216 8274632: Possible pointer overflow in PretouchTask chunk claiming
Reviewed-by: tschatzl, ayang
2021-10-05 08:07:02 +00:00
Matthias Baesken
8f7a37c92f 8274434: move os::get_default_process_handle and os::dll_lookup to os_posix for POSIX platforms
Reviewed-by: dholmes, lucy
2021-10-05 07:25:00 +00:00
Christian Hagedorn
3953e0774c 8271459: C2: Missing NegativeArraySizeException when creating StringBuilder with negative capacity
Reviewed-by: roland, thartmann, neliasso
2021-10-05 07:02:06 +00:00
Andrey Turbanov
53d7e95bc6 8274635: Use String.equals instead of String.compareTo in jdk.accessibility
Reviewed-by: serb
2021-10-05 06:39:29 +00:00
Andrey Turbanov
e43f540cde 8274651: Possible race in FontDesignMetrics.KeyReference.dispose
Reviewed-by: prr, serb
2021-10-05 00:53:17 +00:00
David Holmes
2e542e33b8 8274349: ForkJoinPool.commonPool() does not work with 1 CPU
Co-authored-by: Doug Lea <dl@openjdk.org>
Reviewed-by: shade, martin
2021-10-04 23:14:12 +00:00
Erik Gahlin
7e757f6a2c 8274559: JFR: Typo in 'jfr help configure' text
Reviewed-by: iris, mikael
2021-10-04 21:19:19 +00:00
Jonathan Gibbons
75d6688df9 8274745: ProblemList TestSnippetTag.java
Reviewed-by: prappo
2021-10-04 19:00:21 +00:00
Mikhailo Seledtsov
9914e5c416 8274610: Add linux-aarch64 to bootcycle build profiles
Reviewed-by: erikj
2021-10-04 17:20:05 +00:00
Jonathan Gibbons
0ca094bc5f 8273244: Improve diagnostic output related to ErroneousTree
Reviewed-by: prappo
2021-10-04 16:59:30 +00:00
Jonathan Gibbons
6f727d831d 8274666: rename HtmlStyle.descfrmTypeLabel to be less cryptic
Reviewed-by: hannesw
2021-10-04 16:58:23 +00:00
Adam Sotona
139a8334cb 8268869: java in source-file mode suggests javac-only Xlint flags
Reviewed-by: jjg
2021-10-04 15:48:09 +00:00
Weijun Wang
f63c4a832a 8274471: Verification of OCSP Response signed with RSASSA-PSS fails
Reviewed-by: hchao, jnimeh
2021-10-04 15:30:44 +00:00
Naoto Sato
f2404d60de 8274658: ISO 4217 Amendment 170 Update
Reviewed-by: lancea, iris
2021-10-04 15:06:48 +00:00
Alex Kasko
7eb0372e55 8274606: Fix jaxp/javax/xml/jaxp/unittest/transform/SurrogateTest.java test
Reviewed-by: joehw, shade
2021-10-04 12:38:34 +00:00
Aleksey Shipilev
47bfc8aa93 8274563: jfr/event/oldobject/TestClassLoaderLeak.java fails when GC cycles are not happening
Reviewed-by: egahlin
2021-10-04 12:35:58 +00:00
Aleksey Shipilev
0828273b89 8274521: jdk/jfr/event/gc/detailed/TestGCLockerEvent.java fails when other GC is selected
Reviewed-by: kbarrett, tschatzl
2021-10-04 12:22:55 +00:00
Andrey Turbanov
6726c592ed 8274634: Use String.equals instead of String.compareTo in java.desktop
Reviewed-by: serb, pbansal
2021-10-04 10:27:20 +00:00
Prasanta Sadhukhan
32811026ce 8268084: [macos] Disabled JMenuItem arrow is not disabled
Reviewed-by: serb, jdv
2021-10-04 06:49:10 +00:00
Robbin Ehn
7957994273 8273695: Safepoint deadlock on VMOperation_lock
Reviewed-by: dcubed, pchilanomate, eosterlund
2021-10-04 06:47:27 +00:00
Andrey Turbanov
9ca6bf0d22 8274505: Too weak variable type leads to unnecessary cast in java.desktop
Reviewed-by: serb, kizune, pbansal
2021-10-02 03:06:29 +00:00
Brian Burkhalter
0786d8b7b3 8268435: (ch) ChannelInputStream could override readAllBytes
Reviewed-by: alanb, lancea
2021-10-01 20:15:44 +00:00
Alexey Ivanov
bb4500d0d2 8274465: Fix javax/swing/text/ParagraphView/6364882/bug6364882.java failures
Reviewed-by: jiefu, serb
2021-10-01 18:41:51 +00:00
Pavel Rappo
05d38604a2 8274605: Fix predicate guarantees on returned values in (Doc)SourcePositions
Reviewed-by: jlahoda, jjg
2021-10-01 16:15:48 +00:00
Brian Burkhalter
3d7671b65e 8274562: (fs) UserDefinedFileAttributeView doesn't correctly determine if supported when using OverlayFS
Reviewed-by: alanb
2021-10-01 15:30:55 +00:00
Ekaterina Vergizova
c05dc268ac 8274435: EXCEPTION_ACCESS_VIOLATION in BFSClosure::closure_impl
Reviewed-by: stefank
2021-10-01 12:53:08 +00:00
Aleksei Efimov
cc14c6f076 8274227: Remove "impl.prefix" jdk system property usage from InetAddress
Reviewed-by: alanb, dfuchs
2021-10-01 09:48:09 +00:00
Jan Lahoda
292d7bb1d5 8274363: Transitively sealed classes not considered exhaustive in switches
Reviewed-by: vromero
2021-10-01 08:54:18 +00:00
Jan Lahoda
1887028408 8269113: Javac throws when compiling switch (null)
Co-authored-by: Guoxiong Li <gli@openjdk.org>
Reviewed-by: vromero
2021-10-01 08:53:04 +00:00
Ao Qi
b7b78ff1f3 8274561: sun/net/ftp/TestFtpTimeValue.java timed out on slow machines
Reviewed-by: jiefu, dfuchs
2021-10-01 08:52:04 +00:00
Martin Doerr
5e4b514e6e 8274550: c2i entry barriers read int as long on PPC
Reviewed-by: eosterlund, shade
2021-10-01 08:20:51 +00:00
Kim Barrett
2e690ba8bd 8274322: Problems with oopDesc construction
Reviewed-by: dholmes, stefank
2021-10-01 00:25:35 +00:00
Jie Fu
a8edd1b360 8274527: Minimal VM build fails after JDK-8273459
Reviewed-by: kvn
2021-09-30 23:11:56 +00:00
Joe Darcy
7326481143 8274393: Suppress more warnings on non-serializable non-transient instance fields in security libs
Reviewed-by: weijun
2021-09-30 17:39:05 +00:00
Joe Darcy
8215b2eb61 8274398: Suppress more warnings on non-serializable non-transient instance fields in management libs
Reviewed-by: sspitsyn
2021-09-30 16:58:53 +00:00
Patricio Chilano Mateo
9573022978 8253197: vmTestbase/nsk/jvmti/StopThread/stopthrd007/TestDescription.java fails with "ERROR: DebuggeeSleepingThread: ThreadDeath lost"
Reviewed-by: dholmes, cjplummer, sspitsyn
2021-09-30 16:02:14 +00:00
Erik Österlund
f08180f35f 8274501: c2i entry barriers read int as long on AArch64
Reviewed-by: shade, kbarrett, aph
2021-09-30 15:52:36 +00:00
Bradford Wetmore
c57ed22e77 8274528: Add comment to explain an HKDF optimization in SSLSecretDerivation
Reviewed-by: jnimeh
2021-09-30 15:46:29 +00:00
Severin Gehwolf
9180d9a2f9 8273216: JCMD does not work across container boundaries with Podman
Reviewed-by: mseledtsov, hseigel
2021-09-30 15:23:44 +00:00
Alex Kasko
3e0d7c33d4 8270290: NTLM authentication fails if HEAD request is used
Reviewed-by: dfuchs, michaelm
2021-09-30 15:21:18 +00:00
Lin Zang
bfd6163471 8274196: Crashes in VM_HeapDumper::work after JDK-8252842
8274245: sun/tools/jmap/BasicJMapTest.java Mutex rank failures

Reviewed-by: coleenp, pliden, cjplummer
2021-09-30 14:44:59 +00:00
Masanori Yano
bb95dda0ac 8248001: javadoc generates invalid HTML pages whose ftp:// links are broken
Reviewed-by: hannesw
2021-09-30 11:33:21 +00:00
Mahendra Chhipa
2f955d6f5b 8273142: Remove dependancy of TestHttpServer, HttpTransaction, HttpCallback from open/test/jdk/sun/net/www/protocol/http/ tests
Reviewed-by: michaelm
2021-09-30 11:29:20 +00:00
Severin Gehwolf
94e31e5ca5 8274506: TestPids.java and TestPidsLimit.java fail with podman run as root
Reviewed-by: mbaesken, cjplummer
2021-09-30 08:53:31 +00:00
Martin Doerr
a8210c53e7 8274401: C2: GraphKit::load_array_element bypasses Access API
Reviewed-by: kvn, goetz, thartmann
2021-09-30 08:41:03 +00:00
Christian Hagedorn
dfc557cbea 8274406: RunThese30M.java failed "assert(!LCA_orig->dominates(pred_block) || early->dominates(pred_block)) failed: early is high enough"
Reviewed-by: kvn, thartmann
2021-09-30 08:29:43 +00:00
Aleksey Shipilev
c0533ef2d8 8274522: java/lang/management/ManagementFactory/MXBeanException.java test fails with Shenandoah
Reviewed-by: alanb, mchung
2021-09-30 06:55:24 +00:00
Aleksey Shipilev
f8415a9b2f 8274523: java/lang/management/MemoryMXBean/MemoryTest.java test should handle Shenandoah
Reviewed-by: mchung, cjplummer
2021-09-30 06:54:13 +00:00
Andrey Turbanov
355356c405 8273435: Remove redundant zero-length check in ClassDesc.of
Reviewed-by: rriggs
2021-09-29 23:08:23 +00:00
Joe Darcy
97385d4f16 8274405: Suppress warnings on non-serializable non-transient instance fields in javac and javadoc
Reviewed-by: prappo, jjg
2021-09-29 23:02:20 +00:00
Andrey Turbanov
79cebe2c1b 8274050: Unnecessary Vector usage in javax.crypto
Reviewed-by: valeriep
2021-09-29 18:22:40 +00:00
Pavel Rappo
97b28742b4 8274509: Remove stray * and stylistic . from doc comments
Reviewed-by: alanb, dfuchs, lancea, iris, bpb
2021-09-29 17:09:08 +00:00
Aleksey Shipilev
b1b66965f1 8274453: (sctp) com/sun/nio/sctp/SctpChannel/CloseDescriptors.java test should be resilient to lsof warnings
Reviewed-by: dfuchs
2021-09-29 16:57:40 +00:00
Weijun Wang
edd9d1c97b 8274330: Incorrect encoding of the DistributionPointName object in IssuingDistributionPointExtension
Reviewed-by: ascarpino
2021-09-29 15:37:16 +00:00
Roland Westrelin
980c50dc60 8272562: C2: assert(false) failed: Bad graph detected in build_loop_late
Reviewed-by: chagedorn, kvn
2021-09-29 14:51:33 +00:00
Thomas Schatzl
1dc8fa9902 8274340: [BACKOUT] JDK-8271880: Tighten condition for excluding regions from collecting cards with cross-references
Reviewed-by: kbarrett, ayang
2021-09-29 13:59:58 +00:00
Claes Redestad
aaa36cc006 8274242: Implement fast-path for ASCII-compatible CharsetEncoders on x86
Reviewed-by: naoto, thartmann
2021-09-29 12:58:14 +00:00
Martin Doerr
c4d115701d 8271855: [TESTBUG] Wrong weakCompareAndSet assumption in UnsafeIntrinsicsTest
Reviewed-by: goetz, thartmann
2021-09-29 09:54:59 +00:00
Aleksey Shipilev
756d22c356 8274130: C2: MulNode::Ideal chained transformations may act on wrong nodes
Reviewed-by: thartmann, kvn
2021-09-29 05:41:34 +00:00
Jonathan Gibbons
5b0c9ccc49 8274172: Convert JavadocTester to use NIO
Reviewed-by: prappo
2021-09-28 23:53:49 +00:00
David Holmes
2657bcbd99 8274136: -XX:+ExitOnOutOfMemoryError calls exit while threads are running
Reviewed-by: stuefe, hseigel
2021-09-28 23:24:23 +00:00
Scott Gibbons
53b25bce87 8273459: Update code segment alignment to 64 bytes
Reviewed-by: kvn, sviswanathan
2021-09-28 23:03:01 +00:00
Andrey Turbanov
1a29b1e95e 8274016: Replace 'for' cycles with iterator with enhanced-for in java.desktop
Reviewed-by: serb
2021-09-28 23:01:57 +00:00
Joe Darcy
d8a278f394 8274396: Suppress more warnings on non-serializable non-transient instance fields in client libs
Reviewed-by: bpb, naoto, serb, iris
2021-09-28 21:48:33 +00:00
Sergey Bylokhov
e49e5b5a7e 8273972: Multi-core choke point in CMM engine (LCMSTransform.doTransform)
Reviewed-by: prr
2021-09-28 21:38:40 +00:00
Joe Darcy
2072bc77b4 8274391: Suppress more warnings on non-serializable non-transient instance fields in java.util.concurrent
Reviewed-by: lancea, bpb, alanb, iris
2021-09-28 21:21:53 +00:00
Joe Darcy
6a477bda85 8274415: Suppress warnings on non-serializable non-transient instance fields in java.xml
Reviewed-by: joehw
2021-09-28 21:02:19 +00:00
Alexey Ivanov
67e52a3078 8273634: [TEST_BUG] Improve javax/swing/text/ParagraphView/6364882/bug6364882.java
Reviewed-by: serb
2021-09-28 19:16:58 +00:00
Alexey Ivanov
b7425b63f6 8239502: [TEST_BUG] Test javax/swing/text/FlowView/6318524/bug6318524.java never fails
Reviewed-by: serb
2021-09-28 19:15:33 +00:00
Jesper Steen Møller
c57a6c62ba 8274265: Suspicious string concatenation in logTestUtils.inline.hpp
Reviewed-by: clanger, mbaesken
2021-09-28 18:22:15 +00:00
Andrey Turbanov
6f4cefbcba 8274394: Use Optional.isEmpty instead of !Optional.isPresent in jdk.jlink
Reviewed-by: alanb, mchung
2021-09-28 17:22:27 +00:00
Sergey Tsypanov
94f5e807c9 8274276: Cache normalizedBase URL in URLClassPath.FileLoader
Reviewed-by: dfuchs
2021-09-28 17:18:55 +00:00
Artem Semenov
b36881fa3b 8274383: JNI call of getAccessibleSelection on a wrong thread
Reviewed-by: kizune, ant
2021-09-28 16:40:47 +00:00
Artem Semenov
be40373745 8274381: missing CAccessibility definitions in JNI code
Reviewed-by: pbansal, ant, kizune
2021-09-28 16:08:30 +00:00
Tongbao Zhang
79865cd797 8274259: G1: assert(check_alignment(result)) failed: address not aligned: 0x00000008baadbabe after JDK-8270009
Reviewed-by: tschatzl, sjohanss
2021-09-28 12:32:39 +00:00
Alexander Scherbatiy
961dcffc86 8273581: Change the mechanism by which JDK loads the platform-specific FontManager class
Reviewed-by: prr, psadhukhan, azvegint, aivanov, serb
2021-09-28 09:26:51 +00:00
Ioi Lam
6a573b888d 8273508: Support archived heap objects in SerialGC
Reviewed-by: tschatzl, ccheung
2021-09-28 06:23:47 +00:00
Kim Barrett
3eca9c36a6 8264707: HotSpot Style Guide should permit use of lambda
Reviewed-by: stefank, dholmes, coleenp, iklam, sjohanss, eosterlund, iveresov, kvn
2021-09-28 05:56:34 +00:00
Jaikiran Pai
af50772d39 8231640: (prop) Canonical property storage
Reviewed-by: rriggs, smarks, dfuchs, ihse
2021-09-28 05:17:31 +00:00
Jaikiran Pai
ddc262746a 8273790: Potential cyclic dependencies between Gregorian and CalendarSystem
Reviewed-by: naoto, yyang, rriggs
2021-09-28 05:00:27 +00:00
Jaikiran Pai
633eab23f0 8174819: java/nio/file/WatchService/LotsOfEvents.java fails intermittently
Reviewed-by: alanb
2021-09-28 04:54:58 +00:00
Lin Zang
8876eae429 8269685: Optimize HeapHprofBinWriter implementation
8262386: resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java timed out

Reviewed-by: sspitsyn, amenkov
2021-09-28 02:59:14 +00:00
Pavel Rappo
c880b87a20 8274367: Re-indent stack-trace examples for Throwable.printStackTrace
Reviewed-by: mchung, iris, darcy, bpb
2021-09-27 22:32:49 +00:00
Yumin Qi
c4b52c7378 8271303: jcmd VM.cds {static, dynamic}_dump should print more info
Reviewed-by: iklam, ccheung
2021-09-27 21:27:00 +00:00
Joe Darcy
5b660f3347 8274392: Suppress more warnings on non-serializable non-transient instance fields in java.sql.rowset
Reviewed-by: bpb, lancea
2021-09-27 19:57:26 +00:00
bobpengxie
0865120e95 8274345: make build-test-lib is broken
Reviewed-by: erikj
2021-09-27 18:16:51 +00:00
Mikael Vidstedt
75404ea25e 8267636: Bump minimum boot jdk to JDK 17
Reviewed-by: darcy, erikj, iris
2021-09-27 18:07:26 +00:00
Mikhailo Seledtsov
14100d55dc 8274170: Add hooks for custom makefiles to augment jtreg test execution
Reviewed-by: erikj
2021-09-27 18:06:21 +00:00
Mandy Chung
daaa47e200 8274311: Make build.tools.jigsaw.GenGraphs more configurable
Reviewed-by: alanb, iris
2021-09-27 16:56:33 +00:00
Phil Race
2cffe4c8e0 8274326: [macos] Ensure initialisation of sun/lwawt/macosx/CAccessibility in JavaComponentAccessibility.m
Reviewed-by: serb, pbansal, aivanov
2021-09-27 16:41:00 +00:00
Joe Darcy
172900dab1 8274255: Update javac messages to use "enum class" rather than "enum type"
Reviewed-by: vromero
2021-09-27 16:28:17 +00:00
Christian Hagedorn
b0983df5a4 8274074: SIGFPE with C2 compiled code with -XX:+StressGCM
Reviewed-by: roland, thartmann
2021-09-27 14:05:51 +00:00
Andrey Turbanov
7436a77e3d 8274317: Unnecessary reentrant synchronized block in java.awt.Cursor
Reviewed-by: serb, pbansal, prr
2021-09-27 12:07:29 +00:00
Jie Fu
7426fd4c9c 8274325: C4819 warning at vm_version_x86.cpp on Windows after JDK-8234160
Reviewed-by: dholmes
2021-09-27 09:38:16 +00:00
Erik Gahlin
e3aff8f8d8 8274289: jdk/jfr/api/consumer/TestRecordedFrameType.java failed with "RuntimeException: assertNotEquals: expected Interpreted to not equal Interpreted"
Reviewed-by: mgronlun
2021-09-27 04:02:36 +00:00
bobpengxie
252aaa9249 8274293: Build failure on macOS with Xcode 13.0 as vfork is deprecated
Reviewed-by: alanb, stuefe, rriggs
2021-09-26 14:48:19 +00:00
seanwxiang
7700b25460 8273401: Disable JarIndex support in URLClassPath
Reviewed-by: dfuchs, lancea, alanb, mchung
2021-09-26 11:43:40 +00:00
Pavel Rappo
5ec1cdcaf3 8274321: Standardize values of @since tags in javax.lang.model
Reviewed-by: darcy
2021-09-25 21:04:17 +00:00
Daniel Jelinski
4838a2ca7c 8274143: Disable "invalid entry for security.provider.X" error message in log file when security.provider.X is empty
Reviewed-by: weijun
2021-09-25 15:37:21 +00:00
Daniel D. Daugherty
ab28db1428 8274312: ProblemList 2 serviceability/dcmd/gc tests with ZGC on macos-all
8274313: ProblemList sun/tools/jmap/BasicJMapTest.java subtests

Reviewed-by: stuefe, sspitsyn, dholmes
2021-09-25 13:38:00 +00:00
Jaikiran Pai
8c122af6d8 8274314: Typo in WatchService#poll(long timeout, TimeUnit unit) javadoc
Reviewed-by: alanb, lancea
2021-09-25 12:42:03 +00:00
Andrey Turbanov
9bc865d38c 8273960: Redundant condition in Metadata.TypeComparator.compare
Reviewed-by: egahlin
2021-09-25 11:42:03 +00:00
Jie Fu
5756385c2b 8274273: Update testing docs for MacOS with Non-US locale
Reviewed-by: erikj
2021-09-24 23:12:31 +00:00
Alex Menkov
61ac53f6e5 8210927: JDB tests do not update source path after doing a redefine class
Reviewed-by: sspitsyn
2021-09-24 21:50:39 +00:00
Thomas Schatzl
341de49f8f 8273492: Move evacuation failure handling into G1YoungCollector
Reviewed-by: sjohanss, ayang
2021-09-24 19:30:21 +00:00
Smita Kamath
13e9ea9e92 8273297: AES/GCM non-AVX512+VAES CPUs suffer after 8267125
Reviewed-by: ascarpino, sviswanathan, aph
2021-09-24 19:21:32 +00:00
Phil Race
753b25633b 8274296: Update or Problem List tests which may fail with uiScale=2 on macOS
Reviewed-by: jdv
2021-09-24 17:31:19 +00:00
Andrey Turbanov
baafa6059e 8274237: Replace 'for' cycles with iterator with enhanced-for in java.base
Reviewed-by: dfuchs, weijun
2021-09-24 16:46:52 +00:00
Daniel D. Daugherty
0c050be64b 8274294: ProblemList sun/tools/jmap/BasicJMapTest.java
Reviewed-by: rriggs
2021-09-24 15:46:18 +00:00
Jonathan Gibbons
e741a18062 8274233: Minor cleanup for ToolBox
Reviewed-by: iris
2021-09-24 15:44:13 +00:00
Aleksey Shipilev
718eff2bb6 8273380: ARM32: Default to {ldrexd,strexd} in StubRoutines::atomic_{load|store}_long
Reviewed-by: dlong, dsamersoff
2021-09-24 15:31:35 +00:00
Andrey Turbanov
f214d6e873 8274234: Remove unnecessary boxing via primitive wrapper valueOf(String) methods in java.sql.rowset
Reviewed-by: lancea, bpb
2021-09-24 14:09:34 +00:00
Andy Herrick
f36a2bbd15 8274087: Windows DLL path not set correctly.
Reviewed-by: almatvee, asemenyuk
2021-09-24 12:43:25 +00:00
Alexey Bakhtin
5ba0d09fe4 8274205: Handle KDC_ERR_SVC_UNAVAILABLE error code from KDC
Co-authored-by: Weijun Wang <weijun@openjdk.org>
Reviewed-by: weijun
2021-09-24 12:09:38 +00:00
Thomas Schatzl
5a12af762d 8271880: Tighten condition for excluding regions from collecting cards with cross-references
Reviewed-by: ayang, sjohanss
2021-09-24 12:07:43 +00:00
Thomas Schatzl
db23ecdfae 8274191: Improve g1 evacuation failure injector performance
Reviewed-by: kbarrett, ayang
2021-09-24 12:06:17 +00:00
Masanori Yano
d91e227abb 8238274: (sctp) JDK-7118373 is not fixed for SctpChannel
Reviewed-by: dfuchs
2021-09-24 11:17:26 +00:00
Aleksey Shipilev
971aa353aa 8274083: Update testing docs to mention tiered testing
Reviewed-by: dholmes, jiefu, stuefe, ihse, mseledtsov, alanb
2021-09-24 09:03:33 +00:00
Hannes Wallnöfer
1d44014171 8273034: Make javadoc navigation collapsible on small displays
Reviewed-by: jjg
2021-09-24 08:51:55 +00:00
Julia Boes
bb74ae87ab 8274171: java/nio/file/Files/probeContentType/Basic.java failed on "Content type" mismatches
Reviewed-by: rriggs, bpb
2021-09-24 08:08:27 +00:00
Andrey Turbanov
56b8b35286 8273261: Replace 'while' cycles with iterator with enhanced-for in java.base
Reviewed-by: dfuchs, rriggs, iris, mullan
2021-09-23 20:04:36 +00:00
Daniel D. Daugherty
0aa63feca8 8274216: ProblemList 2 serviceability/dcmd/gc tests with ZGC on linux-all and windows-all
Reviewed-by: darcy, tschatzl
2021-09-23 17:14:49 +00:00
Pavel Rappo
5ffbe75557 8274195: Doc cleanup in java.nio.file
Reviewed-by: alanb, lancea, bpb
2021-09-23 16:18:07 +00:00
Brian Burkhalter
1fdc656084 8274175: (fc) java/nio/channels/FileChannel/Transfer2GPlus.java still failed in timeout
Reviewed-by: alanb
2021-09-23 15:57:12 +00:00
Roger Riggs
3b1b8fc646 8269850: Most JDK releases report macOS version 12 as 10.16 instead of 12.0
Reviewed-by: naoto, clanger
2021-09-23 15:01:25 +00:00
Liam Miller-Cushon
1b7f4b7dd8 8274169: HotSpot Style Guide has stale link to chromium style guide
Reviewed-by: dholmes, ihse
2021-09-23 13:41:10 +00:00
Tobias Holenstein
653a612a5a 8270156: Add "randomness" and "stress" keys to JTreg tests which use StressGCM, StressLCM and/or StressIGVN
Reviewed-by: thartmann, chagedorn
2021-09-23 12:59:22 +00:00
Tobias Holenstein
66ce09f51e 8272703: StressSeed should be set via FLAG_SET_ERGO
Reviewed-by: chagedorn, thartmann
2021-09-23 12:55:42 +00:00
Naoto Sato
c43452859d 8273546: DecimalFormat documentation contains literal HTML character references
Reviewed-by: joehw, bpb, iris, lancea
2021-09-23 12:48:49 +00:00
Coleen Phillimore
d098751366 8273916: Remove 'special' ranking
Reviewed-by: dholmes, pchilanomate
2021-09-23 11:21:02 +00:00
Andrew Haley
4f3b626a36 8271567: AArch64: AES Galois CounterMode (GCM) interleaved implementation using vector instructions
Reviewed-by: ngasson, adinn, xliu
2021-09-23 09:00:46 +00:00
Pavel Rappo
8799856528 8274075: Fix miscellaneous typos in java.base
Reviewed-by: dfuchs, darcy, iris, lancea, bpb
2021-09-23 08:08:39 +00:00
Andrey Turbanov
8b833bbea8 8274048: IGV: Replace usages of Collections.sort with List.sort call
Reviewed-by: chagedorn
2021-09-23 07:47:04 +00:00
Lin Zang
a74c099d67 8252842: Extend jmap to support parallel heap dump
Reviewed-by: rschmelter, cjplummer
2021-09-23 07:00:06 +00:00
Jaikiran Pai
2166ed1369 8273894: ConcurrentModificationException raised every time ReferralsCache drops referral
Reviewed-by: shade
2021-09-23 05:37:19 +00:00
Matthias Baesken
1c6fa113bd 8273979: move some os time related functions to os_posix for POSIX platforms
Reviewed-by: dholmes, lucy
2021-09-23 05:34:18 +00:00
Prasanta Sadhukhan
45adc9227a 8273578: javax/swing/JMenu/4515762/bug4515762.java fails on macOS 12
Reviewed-by: jdv, serb
2021-09-23 05:15:37 +00:00
Ioi Lam
0fbbe4c9a7 8274033: Some tier-4 CDS EpsilonGC tests throw OOM
Reviewed-by: dholmes, ccheung, minqi
2021-09-23 03:49:06 +00:00
Ningsheng Jian
9d3379b975 8267356: AArch64: Vector API SVE codegen support
Co-authored-by: Xiaohong Gong <xgong@openjdk.org>
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Ningsheng Jian <njian@openjdk.org>
Co-authored-by: Xuejin He <xhe@openjdk.org>
Co-authored-by: Ai Jiaming <aijiaming1@huawei.com>
Co-authored-by: Eric Liu <eliu@openjdk.org>
Reviewed-by: aph, ngasson
2021-09-23 02:58:59 +00:00
Erik Gahlin
603138895f 8273714: jdk/jfr/api/consumer/TestRecordedFrame.java still times out after JDK-8273047
Reviewed-by: mgronlun
2021-09-22 21:28:11 +00:00
Alisen Chung
8821b00041 8205137: Remove Applet support from SwingSet2
8205139: Remove Applet support from J2Ddemo

Reviewed-by: aivanov, kizune
2021-09-22 18:32:05 +00:00
Tom Rodriguez
57fe11c9a3 8274120: [JVMCI] CompileBroker should resolve parameter types for JVMCI compiles
Reviewed-by: dnsimon, thartmann
2021-09-22 17:16:41 +00:00
Brian Burkhalter
81d416477f 8272759: (fc) java/nio/channels/FileChannel/Transfer2GPlus.java failed in timeout
Reviewed-by: alanb
2021-09-22 16:29:04 +00:00
Raffaello Giulietti
da38ced329 8271602: Add Math.ceilDiv() family parallel to Math.floorDiv() family
Reviewed-by: bpb
2021-09-22 16:16:14 +00:00
Naoto Sato
d39aad9230 8273924: ArrayIndexOutOfBoundsException thrown in java.util.JapaneseImperialCalendar.add()
Reviewed-by: rriggs, iris, joehw
2021-09-22 15:50:49 +00:00
Patric Hedlin
c9de80635e 8274039: codestrings gtest fails when hsdis is present
Reviewed-by: shade
2021-09-22 14:20:17 +00:00
Roger Riggs
33df388a24 8274003: ProcessHandleImpl.Info toString has an if check which is always true
Reviewed-by: bpb, naoto, iris
2021-09-22 13:57:37 +00:00
Roger Riggs
0a361638c5 8272600: (test) Use native "sleep" in Basic.java
Reviewed-by: iklam, dholmes
2021-09-22 13:55:19 +00:00
Pavel Rappo
c6df3c9571 8274071: Clean up java.lang.ref comments and documentation
Reviewed-by: rriggs, kbarrett, mchung, iris, lancea
2021-09-22 13:42:23 +00:00
Jan Lahoda
71788c69db 8271287: jdk/jshell/CommandCompletionTest.java fails with "lists don't have the same size expected"
Reviewed-by: vromero
2021-09-22 12:53:57 +00:00
Jan Lahoda
ba7d550c6e 8270139: jshell InternalError crash for import of @Repeatable followed by unresolved ref
Reviewed-by: vromero
2021-09-22 12:52:31 +00:00
Erik Gahlin
aefd4ac4a3 8258734: jdk/jfr/event/oldobject/TestClassLoaderLeak.java failed with "RuntimeException: Could not find class leak"
Reviewed-by: mgronlun
2021-09-22 11:45:29 +00:00
Thomas Schatzl
d245a8cc85 8274069: Clean up g1ParScanThreadState a bit
Reviewed-by: sjohanss, ayang, kbarrett
2021-09-22 11:43:13 +00:00
Thomas Schatzl
3f73ca7fcd 8274068: Rename G1ScanInYoungSetter to G1SkipCardEnqueueSetter
Reviewed-by: sjohanss, ayang
2021-09-22 11:41:13 +00:00
sunxu
7f78803b09 8273961: jdk/nio/zipfs/ZipFSTester.java fails if file path contains '+' character
Reviewed-by: clanger, lancea
2021-09-22 11:38:29 +00:00
Thomas Schatzl
51085b523e 8274054: Add custom enqueue calls during reference processing
Reviewed-by: ayang, kbarrett, sjohanss
2021-09-22 10:17:31 +00:00
Aleksey Shipilev
c77ebe8874 8274060: C2: Incorrect computation after JDK-8273454
Reviewed-by: thartmann, neliasso, chagedorn
2021-09-22 08:40:04 +00:00
Thomas Schatzl
d9872ba3d6 8273590: Move helper classes in G1 post evacuation sub tasks to cpp files
Reviewed-by: sjohanss, kbarrett
2021-09-22 08:07:03 +00:00
Prasanta Sadhukhan
688b3fe2eb 8274070: Rectify problemlist platform for failing test on macos12
Reviewed-by: azvegint
2021-09-22 08:02:13 +00:00
Daniel D. Daugherty
eeaf43b229 8274114: ProblemList serviceability/sa/TestJhsdbJstackMixed.java on linux-aarch64 in -Xcomp mode
Reviewed-by: cjplummer
2021-09-22 02:53:02 +00:00
Ao Qi
517405e462 8273965: some testlibrary_tests/ir_framework tests fail when c1 disabled
Reviewed-by: chagedorn, thartmann
2021-09-22 02:28:49 +00:00
Yi Yang
11cddd3261 8272114: Unused _last_state in osThread_windows
Reviewed-by: stuefe, dholmes
2021-09-22 02:20:30 +00:00
Andrey Turbanov
cbe57e8604 8273684: Replace usages of java.util.Stack with ArrayDeque
Reviewed-by: cjplummer, serb
2021-09-22 01:26:21 +00:00
Leonid Mesnik
a72c8aa6ad 8273921: Refactor NSK/JDI tests to create thread using factory
Reviewed-by: cjplummer, sspitsyn, amenkov
2021-09-21 23:36:16 +00:00
Lance Andersen
161fdb4afb 8273935: (zipfs) Files.getFileAttributeView() throws UOE instead of returning null when view not supported
Reviewed-by: alanb, bpb, sgehwolf
2021-09-21 19:23:49 +00:00
Pavel Rappo
0fc47e99d2 8266666: Implementation for snippets
Co-authored-by: Jonathan Gibbons <jjg@openjdk.org>
Co-authored-by: Hannes Wallnöfer <hannesw@openjdk.org>
Reviewed-by: jjg
2021-09-21 15:53:35 +00:00
Sean Mullan
6d91a3eb7b 8269039: Disable SHA-1 Signed JARs
Reviewed-by: weijun
2021-09-21 13:45:47 +00:00
Artem Semenov
42d5d2abaa 8274056: JavaAccessibilityUtilities leaks JNI objects
Reviewed-by: aivanov, ant
2021-09-21 12:38:29 +00:00
Erik Gahlin
57df0dbc45 8270873: JFR: Catch DirectoryIteratorException when scanning for .jfr files
Reviewed-by: mgronlun
2021-09-21 12:02:00 +00:00
Coleen Phillimore
111d5e1a93 8273915: Create 'nosafepoint' rank
Reviewed-by: dholmes, iklam
2021-09-21 11:37:49 +00:00
Aleksey Shipilev
7acec3f161 8236505: Mark jdk/editpad/EditPadTest.java as @headful
Reviewed-by: jlahoda
2021-09-21 11:26:28 +00:00
Thomas Schatzl
afd218d39a 8274053: [BACKOUT] JDK-8270842: G1: Only young regions need to redirty outside references in remset.
Reviewed-by: sjohanss
2021-09-21 09:20:21 +00:00
Thejasvi Voniadka
a5108a605e 8273646: Add openssl from path variable also in to Default System Openssl Path in OpensslArtifactFetcher
Reviewed-by: weijun
2021-09-21 09:01:09 +00:00
Julia Boes
65ed0a742e 8273655: content-types.properties files are missing some common types
Reviewed-by: bpb, dfuchs
2021-09-21 08:07:25 +00:00
Stefan Karlsson
c60bcd09b7 8273928: Use named run ids when problem listing tests
Reviewed-by: pliden, kbarrett, dholmes
2021-09-21 07:42:36 +00:00
Thomas Stuefe
6642d2eb8b 8273783: Simplify Metaspace arena guard handling
Reviewed-by: coleenp, lucy
2021-09-21 06:27:32 +00:00
Aleksey Shipilev
f242cb5ce0 8273797: Stop impersonating "server" VM in all VM variants
Reviewed-by: dholmes, erikj, ihse
2021-09-21 06:00:06 +00:00
Aleksey Shipilev
240fa6efa2 8273927: Enable hsdis for riscv64
Reviewed-by: ihse
2021-09-21 05:57:57 +00:00
Joe Darcy
9c91ff57e8 8274031: Typo in StringBuilder.readObject
Reviewed-by: bpb
2021-09-21 02:23:52 +00:00
Erik Gahlin
d16bf04c95 8273613: JFR: RemoteRecordingStream::start() blocks close()
Reviewed-by: mgronlun
2021-09-20 23:15:39 +00:00
Erik Gahlin
7ce60c6ff6 8273651: JFR: onMetadata(), setStartTime(), setEndTime() lacks test coverage
Reviewed-by: mgronlun, mseledtsov
2021-09-20 21:58:57 +00:00
Sergey Bylokhov
1bd11a7f2c 8273887: [macos] java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java timed out
Reviewed-by: aivanov
2021-09-20 21:25:40 +00:00
Erik Gahlin
ee3576a48b 8256735: JFR: 'jfr' tool displays incorrect timestamps
Reviewed-by: mseledtsov, mgronlun
2021-09-20 20:43:22 +00:00
Alex Menkov
5fde4b64e2 8273909: vmTestbase/nsk/jdi/Event/request/request001 can still fail with "ERROR: new event is not ThreadStartEvent"
Reviewed-by: cjplummer, sspitsyn
2021-09-20 20:17:57 +00:00
Chris Plummer
04891c95e0 8273912: Add threadControl_dumpThread(jthread) function
Reviewed-by: kevinw, sspitsyn
2021-09-20 20:10:10 +00:00
Mikhailo Seledtsov
5c21c00441 8267163: Rename anonymous loader tests to hidden loader tests
Reviewed-by: dholmes, hseigel
2021-09-20 19:03:34 +00:00
Andrey Turbanov
b3b4b1cc21 8273907: Cleanup redundant Math.max/min calls in DefaultHighlighter
Reviewed-by: pbansal, aivanov, azvegint
2021-09-20 17:23:02 +00:00
Calvin Cheung
a67f0f9dc0 8273505: runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest.java#default-cl crashed with SIGSEGV in MetaspaceShared::link_shared_classes
Reviewed-by: iklam, minqi
2021-09-20 16:56:32 +00:00
Erik Gahlin
26e5e9ae8c 8273654: JFR: Remove unused SecuritySupport.setAccessible(Field)
Reviewed-by: mseledtsov, shade
2021-09-20 16:53:20 +00:00
Thomas Schatzl
4b3a4fff39 8273940: vmTestbase/vm/mlvm/meth/stress/gc/callSequencesDuringGC/Test.java crashes in full gc during VM exit
Reviewed-by: lkorinth
2021-09-20 16:17:52 +00:00
Erik Gahlin
dad5d27172 8272867: JFR: ManagementSupport.removeBefore() lost coverage
Reviewed-by: mseledtsov, mgronlun
2021-09-20 15:59:02 +00:00
Erik Gahlin
48aff23165 8272515: JFR: Names should only be valid Java identifiers
Reviewed-by: mgronlun
2021-09-20 15:44:46 +00:00
Nils Eliasson
4d95a5d6dc 8273933: [TESTBUG] Test must run without preallocated exceptions
Reviewed-by: chagedorn, thartmann
2021-09-20 14:59:44 +00:00
Nils Eliasson
9aa12daa15 8273934: Remove unused perfcounters
Reviewed-by: chagedorn
2021-09-20 14:11:16 +00:00
lawrence.andrews
4da45c4301 8270609: [TESTBUG] java/awt/print/Dialog/DialogCopies.java does not show instruction
Reviewed-by: aivanov
2021-09-20 14:07:50 +00:00
Aleksey Shipilev
544193a3bb 8247980: Exclusive execution of java/util/stream tests slows down tier1
Reviewed-by: iignatyev
2021-09-20 14:05:03 +00:00
Aleksey Shipilev
1f8af524ff 8273314: Add tier4 test groups
Reviewed-by: serb, iignatyev
2021-09-20 14:02:07 +00:00
Jan Lahoda
699865f76c 8259039: Passing different version to --release flag than javac version output warning
Reviewed-by: jjg
2021-09-20 13:43:14 +00:00
Naoto Sato
f71df142a9 8273187: jtools tests fail with missing markerName check
Reviewed-by: iris, sspitsyn, joehw
2021-09-20 13:38:38 +00:00
Christian Hagedorn
6f3e40c16d 8273825: TestIRMatching.java fails after JDK-8266550
Reviewed-by: thartmann, roland
2021-09-20 12:56:08 +00:00
Christian Hagedorn
a561eac912 8273895: compiler/ciReplay/TestVMNoCompLevel.java fails due to wrong data size with TieredStopAtLevel=2,3
Reviewed-by: kvn, dlong
2021-09-20 12:53:56 +00:00
Thomas Stuefe
d2388b7a0f 8273959: Some metaspace diagnostic switches should be develop
Reviewed-by: dholmes, jiefu
2021-09-20 08:46:44 +00:00
Matthias Baesken
dc7f452acb 8273815: move have_special_privileges to os_posix for POSIX platforms
Reviewed-by: mdoerr, stuefe, dholmes
2021-09-20 08:29:12 +00:00
Zhengyu Gu
7c9868c0b3 8273454: C2: Transform (-a)*(-b) into a*b
Reviewed-by: thartmann, eliu, chagedorn
2021-09-18 23:11:06 +00:00
Thomas Stuefe
bb9d142759 8273958: gtest/MetaspaceGtests executes unnecessary tests in debug builds
Reviewed-by: jiefu
2021-09-18 08:29:48 +00:00
lawrence.andrews
2a2e9190d4 8273685: Remove jtreg tag manual=yesno for java/awt/Graphics/LCDTextAndGraphicsState.java & show test instruction
Reviewed-by: aivanov, pbansal
2021-09-17 18:11:23 +00:00
sunxu
83020617e7 8273774: CDSPluginTest should only expect classes_nocoops.jsa exists on supported 64-bit platforms
Reviewed-by: ccheung, mchung
2021-09-17 16:41:51 +00:00
Kartik Ohri
2f8c2211c8 8273681: Add Vector API vs Arrays.mismatch intrinsic benchmark
Reviewed-by: psandoz
2021-09-17 15:12:34 +00:00
Phil Race
17f7a45ce4 8273913: Problem list some headful client jtreg tests that fail on macOS 12
Reviewed-by: pbansal, aivanov
2021-09-17 15:00:52 +00:00
Matthias Baesken
27d747ad4f 8273877: os::unsetenv unused
Reviewed-by: mdoerr, stuefe
2021-09-17 12:53:38 +00:00
Matthias Baesken
35f6f1d69f 8273808: Cleanup AddFontsToX11FontPath
Reviewed-by: pbansal, lucy
2021-09-17 08:20:10 +00:00
Per Liden
1890d85c0e 8273872: ZGC: Explicitly use 2M large pages
Reviewed-by: eosterlund, tschatzl, stefank
2021-09-17 07:51:45 +00:00
Aleksey Shipilev
54b456764b 8273880: Zero: Print warnings when unsupported intrinsics are enabled
Reviewed-by: dholmes
2021-09-17 06:44:18 +00:00
Guoxiong Li
e07ab82ee5 8273408: java.lang.AssertionError: typeSig ERROR on generated class property of record
Reviewed-by: vromero
2021-09-17 05:34:25 +00:00
Alex Menkov
8c022e2c17 8270434: JDI+UT: Unexpected event in JDI tests
Reviewed-by: sspitsyn, kevinw
2021-09-16 23:45:08 +00:00
Ioi Lam
b98290444a 8271073: Improve testing with VM option VerifyArchivedFields
Reviewed-by: ccheung, minqi
2021-09-16 23:26:55 +00:00
Volker Simonis
bc48a0ac29 8273902: Memory leak in OopStorage due to bug in OopHandle::release()
Reviewed-by: sspitsyn, coleenp
2021-09-16 19:56:12 +00:00
Yumin Qi
9c5441c9c4 8271569: Clean up the use of CDS constants and field offsets
Reviewed-by: iklam, dholmes
2021-09-16 17:56:07 +00:00
Calvin Cheung
12fa7073c5 8261941: Use ClassLoader for unregistered classes during -Xshare:dump
Reviewed-by: iklam, minqi
2021-09-16 17:32:02 +00:00
Andrey Turbanov
7e92abe7a4 8273710: Remove redundant stream() call before forEach in jdk.jdeps
Reviewed-by: dfuchs, shade
2021-09-16 15:17:28 +00:00
Roland Westrelin
59b2478abd 8273659: Replay compilation crashes with SIGSEGV since 8271911
Reviewed-by: kvn, dlong
2021-09-16 12:02:46 +00:00
Coleen Phillimore
5e4d09c229 8273300: Check Mutex ranking during a safepoint
Reviewed-by: eosterlund, dholmes, pchilanomate
2021-09-16 12:01:49 +00:00
Christian Hagedorn
c86e24d4be 8271954: C2: assert(false) failed: Bad graph detected in build_loop_late
Reviewed-by: roland, kvn
2021-09-16 11:57:30 +00:00
Albert Mingkun Yang
14dc5178cf 8273372: Remove scavenge trace message in psPromotionManager
Reviewed-by: tschatzl, lkorinth
2021-09-16 11:41:15 +00:00
Aleksey Shipilev
241ac89f12 8273606: Zero: SPARC64 build fails with si_band type mismatch
Reviewed-by: stuefe
2021-09-16 08:53:22 +00:00
Aleksey Shipilev
181292d48c 8273801: Handle VMTYPE for "core" VM variant
Reviewed-by: dholmes, erikj
2021-09-16 08:25:43 +00:00
Aleksey Shipilev
09ecb11927 8273806: compiler/cpuflags/TestSSE4Disabled.java should test for CPU feature explicitly
Reviewed-by: thartmann
2021-09-16 08:23:55 +00:00
Aleksey Shipilev
99cfc160af 8273805: gc/g1/TestGCLogMessages.java test should handle non-JFR configs
Reviewed-by: tschatzl, ayang
2021-09-16 08:22:48 +00:00
Aleksey Shipilev
1c5de8b86b 8273807: Zero: Drop incorrect test block from compiler/startup/NumCompilerThreadsCheck.java
Reviewed-by: thartmann
2021-09-16 08:12:31 +00:00
Aleksey Shipilev
46af82e5b0 8273804: Platform.isTieredSupported should handle the no-compiler case
Reviewed-by: dholmes
2021-09-16 07:52:24 +00:00
Aleksey Shipilev
2d13fb21af 8273803: Zero: Handle "zero" variant in CommandLineOptionTest.java
Reviewed-by: dholmes
2021-09-16 07:51:17 +00:00
Matthias Baesken
d4546b6b36 8273526: Extend the OSContainer API pids controller with pids.current
Reviewed-by: sgehwolf, iklam
2021-09-16 07:08:19 +00:00
Serguei Spitsyn
74ffe12267 8273575: memory leak in appendBootClassPath(), paths must be deallocated
Reviewed-by: dholmes, amenkov
2021-09-15 20:00:21 +00:00
Thomas Schatzl
cbffecc61e 8273832: gc/shenandoah/TestJcmdHeapDump.java does not have a @requires vm.gc.shenandoah
Reviewed-by: zgu
2021-09-15 17:21:44 +00:00
Thomas Schatzl
7b2beb6ba6 8273823: Problemlist gc/stringdedup tests timing out on ZGC
Reviewed-by: zgu, lkorinth
2021-09-15 15:49:15 +00:00
Tobias Holenstein
82904246cd 8272771: frame::pd_ps() is not implemented on any platform
Reviewed-by: shade, dholmes, thartmann
2021-09-15 13:58:28 +00:00
Alexey Semenyuk
a3ca770227 8272815: jpackage --type rpm produces an error: Invalid or unsupported type: [null]
Reviewed-by: herrick, almatvee
2021-09-15 13:22:26 +00:00
Zhengyu Gu
8132bfd23f 8273559: Shenandoah: Shenandoah should support multi-threaded heap dump
Reviewed-by: shade, rkennke, sgehwolf
2021-09-15 13:10:13 +00:00
Ian Graves
f531b5c796 8273514: java/util/DoubleStreamSums/CompensatedSums.java failure
Reviewed-by: rriggs, darcy
2021-09-15 13:08:15 +00:00
Sergey Tsypanov
4c673df31e 8273656: Improve java.lang.invoke.MethodType.parameterList() and its usage
Reviewed-by: jvernee, vlivanov, mchung
2021-09-15 11:11:15 +00:00
Aleksey Shipilev
8fbcc8239a 8273494: Zero: Put libjvm.so into "zero" folder, not "server"
Reviewed-by: ihse, sgehwolf
2021-09-15 08:56:53 +00:00
Thomas Schatzl
92c30c941b 8273599: Remove cross_threshold method usage around GC
Reviewed-by: sjohanss, ayang
2021-09-15 08:28:47 +00:00
Thomas Schatzl
02af541b74 8273605: VM Exit does not abort concurrent mark
Reviewed-by: kbarrett, sjohanss
2021-09-15 08:27:43 +00:00
Prasanta Sadhukhan
febcc72a54 8273366: [testbug] javax/swing/UIDefaults/6302464/bug6302464.java fails on macOS12
Reviewed-by: aivanov, serb
2021-09-15 05:43:03 +00:00
Sergey Bylokhov
1017a2c2d7 8273135: java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java crashes in liblcms.dylib with NULLSeek+0x7
Reviewed-by: aivanov, azvegint
2021-09-15 05:18:35 +00:00
Sergey Bylokhov
6cf70f5f08 8273638: javax/swing/JTable/4235420/bug4235420.java fails in GTK L&F
Reviewed-by: pbansal, psadhukhan, azvegint
2021-09-15 05:15:44 +00:00
Leo Korinth
e66bf47248 8273414: ResourceObj::operator delete should handle nullptr in debug builds
Reviewed-by: stuefe
2021-09-14 21:17:59 +00:00
casparcwang
16c3ad1ff4 8272574: C2: assert(false) failed: Bad graph detected in build_loop_late
Co-authored-by: Hui Shi <hshi@openjdk.org>
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Reviewed-by: thartmann, chagedorn, kvn
2021-09-14 20:55:01 +00:00
Brian Burkhalter
e7ab3724e7 8273641: (bf) Buffer subclasses documentation contains template strings
Reviewed-by: rriggs, alanb
2021-09-14 19:12:53 +00:00
Andy Herrick
22a7191f70 8273040: Turning off JpAllowDowngrades (or Upgrades)
Reviewed-by: asemenyuk
2021-09-14 17:45:49 +00:00
Jonathan Dowland
394ebc8642 8270553: Tests should not use (real, in-use, routable) 1.1.1.1 as dummy IP value
Reviewed-by: shade, dfuchs
2021-09-14 17:12:49 +00:00
Aleksey Shipilev
0f31d0fb2c 8273373: Zero: Cannot invoke JVM in primordial threads on Zero
Reviewed-by: stuefe
2021-09-14 15:49:00 +00:00
Guoxiong Li
fe89dd3b0d 8271254: javac generates unreachable code when using empty semicolon statement
Reviewed-by: vromero
2021-09-14 14:46:21 +00:00
Coleen Phillimore
8974b95886 8273730: WorkGangBarrierSync constructor unused
Reviewed-by: tschatzl, eosterlund
2021-09-14 13:17:27 +00:00
Coleen Phillimore
1d3eb147ee 8273635: Attempting to acquire lock StackWatermark_lock/9 out of order with lock tty_lock/3
Reviewed-by: dholmes, eosterlund
2021-09-14 13:09:46 +00:00
Naoto Sato
31667daa50 8273491: java.util.spi.LocaleServiceProvider spec contains statement that is too strict
Reviewed-by: joehw, lancea
2021-09-14 12:46:08 +00:00
Magnus Ihse Bursie
ed7789d6a0 8256977: Bump minimum GCC from 5.x to 6 for JDK
Reviewed-by: erikj, shade
2021-09-14 11:29:16 +00:00
Magnus Ihse Bursie
5bfd043e16 8273497: building.md should link to both md and html
Reviewed-by: erikj, shade
2021-09-14 11:28:19 +00:00
Per Liden
3884580591 8273597: Rectify Thread::is_ConcurrentGC_thread()
Reviewed-by: stefank, coleenp
2021-09-14 10:28:31 +00:00
Per Liden
f52728993d 8273639: tests fail with "assert(_handle_mark_nesting > 1) failed: memory leak: allocating handle outside HandleMark"
Reviewed-by: coleenp, dholmes
2021-09-14 08:36:39 +00:00
Roland Westrelin
1d2458db34 8266550: C2: mirror TypeOopPtr/TypeInstPtr/TypeAryPtr with TypeKlassPtr/TypeInstKlassPtr/TypeAryKlassPtr
Reviewed-by: vlivanov, thartmann
2021-09-14 08:35:09 +00:00
Aleksey Shipilev
a143372818 8273438: Enable parallelism in vmTestbase/metaspace/stressHierarchy tests
Reviewed-by: mseledtsov, iignatyev
2021-09-14 08:18:21 +00:00
Aleksey Shipilev
86a8e5524d 8273486: Zero: Handle DiagnoseSyncOnValueBasedClasses VM option
Reviewed-by: dholmes
2021-09-14 08:14:35 +00:00
Yasumasa Suenaga
8d73ee684a 8273471: Add foldmultilines to UL for stdout/err
Reviewed-by: dholmes, iklam
2021-09-14 05:12:36 +00:00
David Holmes
c54a918a0e 8273691: Missing comma after 2021 in GraphemeTestAccessor.java copyright notice
Reviewed-by: psandoz
2021-09-14 01:01:07 +00:00
Ian Graves
3d9dc8f824 8273430: Suspicious duplicate condition in java.util.regex.Grapheme#isExcludedSpacingMark
Reviewed-by: naoto
2021-09-13 21:48:28 +00:00
Coleen Phillimore
5095068d3b 8273675: Remove unused Universe::_verify_in_progress flag
Reviewed-by: hseigel
2021-09-13 20:35:19 +00:00
Weijun Wang
fc0f8542c3 8246797: A convenient method to read OPTIONAL element
Reviewed-by: jnimeh, valeriep
2021-09-13 18:05:27 +00:00
Brian Burkhalter
6cf5079d8e 8273513: Make java.io.FilterInputStream specification more precise about overrides
Reviewed-by: dfuchs, naoto
2021-09-13 17:50:10 +00:00
Pavel Rappo
b4b121018d 8273616: Fix trivial doc typos in the java.base module
Reviewed-by: jrose, iris, lancea, dfuchs, rriggs
2021-09-13 17:46:13 +00:00
Mikhailo Seledtsov
7c26ddb575 8195809: [TESTBUG] jps and jcmd -l support for containers is not tested
Reviewed-by: hseigel, kevinw
2021-09-13 17:36:23 +00:00
Naoto Sato
4cfa230e2d 8273259: Character.getName doesn't follow Unicode spec for ideographs
Reviewed-by: bpb, lancea, iris, darcy
2021-09-13 16:06:10 +00:00
Zhengyu Gu
f9b2507f3e 8271834: TestStringDeduplicationAgeThreshold intermittent failures on Shenandoah
Reviewed-by: shade, pliden
2021-09-13 12:23:12 +00:00
Jie Fu
261cb44b13 8273629: compiler/uncommontrap/TestDeoptOOM.java fails with release VMs
Reviewed-by: shade
2021-09-13 12:10:56 +00:00
Jan Lahoda
b0d04976bd 8273584: TypeElement.getSuperclass crashes for a record TypeElement when j.l.Record is not available
Reviewed-by: vromero
2021-09-13 09:24:06 +00:00
Prasanta Sadhukhan
4efcd2006f 8273478: [macos11] JTabbedPane selected and pressed tab is not legible
Reviewed-by: kizune, aivanov, serb
2021-09-13 04:44:01 +00:00
Yi Yang
a73c06de2a 8273021: C2: Improve Add and Xor ideal optimizations
Co-authored-by: yulei <lei.yul@alibaba-inc.com>
Reviewed-by: thartmann, kvn
2021-09-13 02:10:45 +00:00
Ioi Lam
9f86082fd5 8273610: LogTestFixture::restore_config() should not restore options
Reviewed-by: ysuenaga, dholmes
2021-09-13 01:57:04 +00:00
Andrey Turbanov
2ee1f96c14 8273484: Cleanup unnecessary null comparison before instanceof check in java.naming
Reviewed-by: aefimov, dfuchs
2021-09-12 13:48:24 +00:00
Ao Qi
f189dff5cb 8273595: tools/jpackage tests do not work on apt-based Linux distros like Debian
Co-authored-by: Sun Xu <sunxu01@loongson.cn>
Reviewed-by: asemenyuk, herrick
2021-09-10 23:13:18 +00:00
Ioi Lam
922e86f4ff 8273522: Rename test property vm.cds.archived.java.heap to vm.cds.write.archived.java.heap
Reviewed-by: minqi, ccheung, mseledtsov
2021-09-10 22:45:26 +00:00
Pavel Rappo
f42b92790a 8273609: Fix trivial doc typos in the compiler area
Reviewed-by: rriggs, vromero, iris
2021-09-10 19:33:54 +00:00
Coleen Phillimore
e4cd2097a5 8273611: Remove unused ProfilePrint_lock
Reviewed-by: iklam
2021-09-10 19:23:58 +00:00
jovanstevanovic
f690a01f1e 8273278: Support XSLT on GraalVM Native Image--deterministic bytecode generation in XSLT
Reviewed-by: joehw
2021-09-10 19:13:20 +00:00
Jim Laskey
5e1df2c7d7 8273162: AbstractSplittableWithBrineGenerator does not create a random salt
Reviewed-by: rriggs, bpb
2021-09-10 18:03:45 +00:00
Jim Laskey
d4177a98c1 8273351: bad tag in jdk.random module-info.java
Reviewed-by: rriggs, bpb
2021-09-10 17:58:33 +00:00
Mandy Chung
ec9d1bebd7 8273194: Document the two possible cases when Lookup::ensureInitialized returns
Reviewed-by: alanb
2021-09-10 17:17:31 +00:00
Naoto Sato
81d2acee57 8273369: Computing micros between two instants unexpectedly overflows for some cases
Reviewed-by: lancea, rriggs, joehw
2021-09-10 16:36:57 +00:00
Phil Race
efe3ed1e70 8273358: macOS Monterey does not have the font Times needed by Serif
Reviewed-by: kizune, aivanov
2021-09-10 16:36:06 +00:00
Sandhya Viswanathan
e58c12e618 8273512: Fix the copyright header of x86 macroAssembler files
Reviewed-by: dholmes, thartmann
2021-09-10 15:39:48 +00:00
Coleen Phillimore
461a467f91 8273456: Do not hold ttyLock around stack walking
Reviewed-by: dholmes, eosterlund
2021-09-10 14:54:47 +00:00
Daniel D. Daugherty
695b434b44 Merge 2021-09-10 14:34:27 +00:00
Andy Herrick
4afbcaf553 8273592: Backout JDK-8271868
Reviewed-by: kcr, asemenyuk
2021-09-10 14:17:45 +00:00
Aleksei Efimov
c464f09056 8273402: Use derived NamingExceptions in com.sun.jndi.ldap.Connection#readReply
Reviewed-by: dfuchs
2021-09-10 14:15:45 +00:00
kabutz
4e6de5f9de 8273541: Cleaner Thread creates with normal priority instead of MAX_PRIORITY - 2
Reviewed-by: shade, alanb, lancea
2021-09-10 14:13:59 +00:00
Per Liden
c1e39faaa9 8273482: Remove "foreground work" concept from WorkGang
Reviewed-by: tschatzl, kbarrett
2021-09-10 09:49:45 +00:00
Tobias Holenstein
2eaf374c5c 8272698: LoadNode::pin is unused
Reviewed-by: roland, thartmann
2021-09-10 07:44:12 +00:00
Tobias Holenstein
792281d559 8264517: C2: make MachCallNode::return_value_is_used() only available for x86
Reviewed-by: kvn, thartmann
2021-09-10 07:43:15 +00:00
Pankaj Bansal
70c9e026b6 8272148: JDesktopPane:getComponentCount() returns one extra than expected with GTKLookAndFeel
Reviewed-by: prr, serb
2021-09-10 06:13:32 +00:00
matias9927
08f0be8388 8272608: java_lang_System::allow_security_manager() doesn't set its initialization flag
Reviewed-by: coleenp, dholmes
2021-09-10 01:05:37 +00:00
Andrey Turbanov
2e321dc782 8273528: Avoid ByteArrayOutputStream.toByteArray when converting stream to String
Reviewed-by: bpb, xuelei, serb, aivanov
2021-09-09 21:47:59 +00:00
Naoto Sato
54dee132d1 8273188: java/lang/instrument/BootClassPath/BootClassPathTest.sh fails with "FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed"
Reviewed-by: dholmes, alanb
2021-09-09 19:41:56 +00:00
Andy Herrick
a37254c79f 8271868: Warn user when using mac-sign option with unsigned app-image.
Reviewed-by: asemenyuk
2021-09-09 19:31:35 +00:00
Per Liden
4020a60cbb 8273550: Replace os::cgc_thread/pgc_thread with os::gc_thread
Reviewed-by: stefank, coleenp
2021-09-09 19:21:55 +00:00
Per Liden
185eacacdd 8273545: Remove Thread::is_GC_task_thread()
Reviewed-by: stefank, coleenp, shade
2021-09-09 19:19:39 +00:00
Vicente Romero
dd1209e4ae 8268885: duplicate checkcast when destination type is not first type of intersection type
Reviewed-by: jlahoda
2021-09-09 18:36:17 +00:00
Saravana Kumar Vijayasekaran
ef4a532802 8263773: Reenable German localization for builds at Oracle
Reviewed-by: erikj, ihse
2021-09-09 18:24:26 +00:00
Maurizio Cimadamore
96614da025 8272903: Missing license header in ArenaAllocator.java
Reviewed-by: bpb, lancea
2021-09-09 17:28:06 +00:00
Aleksey Shipilev
e3bda63ce2 8273489: Zero: Handle UseHeavyMonitors on all monitorenter paths
Reviewed-by: coleenp
2021-09-09 17:19:14 +00:00
Tobias Hartmann
c81690d716 8273498: compiler/c2/Test7179138_1.java timed out
Reviewed-by: roland
2021-09-09 13:54:47 +00:00
Tobias Hartmann
4866eaa997 8273409: Receiver type narrowed by CCP does not always trigger post-parse call devirtualization
Reviewed-by: vlivanov, neliasso
2021-09-09 13:44:05 +00:00
Aleksey Shipilev
5ca26cbddb 8273433: Enable parallelism in vmTestbase_nsk_sysdict tests
Reviewed-by: mseledtsov, dholmes
2021-09-09 13:41:46 +00:00
Martin Doerr
f6cc1732f4 8273539: [PPC64] gtest build error after JDK-8264207
Reviewed-by: shade, stuefe
2021-09-09 10:48:02 +00:00
Hamlin Li
9690df7fb9 8273476: G1: refine G1CollectedHeap::par_iterate_regions_array_part_from
Reviewed-by: ayang, tschatzl
2021-09-09 10:41:27 +00:00
Evan Whelan
00e059ddb3 8133686: HttpURLConnection.getHeaderFields and URLConnection.getRequestProperties methods return field values in reverse order
Reviewed-by: dfuchs
2021-09-09 10:23:12 +00:00
Aleksey Shipilev
aa9311182a 8273483: Zero: Clear pending JNI exception check in native method handler
Reviewed-by: aph
2021-09-09 09:46:16 +00:00
Aleksey Shipilev
8c16f485b3 8273487: Zero: Handle "zero" variant in runtime tests
Reviewed-by: alanb, dholmes
2021-09-09 08:07:00 +00:00
Aleksey Shipilev
dc33bd8b6c 8273315: Parallelize and increase timeouts for java/foreign/TestMatrix.java test
Reviewed-by: mcimadamore
2021-09-09 07:43:22 +00:00
Thomas Schatzl
5b1dfe4e35 8273439: Fix G1CollectedHeap includes and forward declarations
Reviewed-by: ayang, kbarrett
2021-09-09 07:28:23 +00:00
Matthias Baesken
6eba443428 8273387: remove some unreferenced gtk-related functions
Reviewed-by: pbansal, clanger
2021-09-09 06:15:15 +00:00
Hamlin Li
5df2648086 8273218: G1: Rename g1EvacuationInfo to g1EvacInfo
Reviewed-by: tschatzl, ayang
2021-09-09 00:41:28 +00:00
Daniel D. Daugherty
12f0b77179 8273516: ProblemList compiler/c2/Test7179138_1.java in -Xcomp mode on win-X64
Reviewed-by: dholmes
2021-09-09 00:39:40 +00:00
Roger Riggs
7fd6b0bfd8 8273242: (test) Refactor to use TestNG for RuntimeTests ExecCommand tests
Reviewed-by: naoto, lancea
2021-09-08 20:53:25 +00:00
Leonid Mesnik
a5e4def526 8265489: Stress test times out because of long ObjectSynchronizer::monitors_iterate(...) operation
Reviewed-by: dcubed
2021-09-08 19:31:18 +00:00
Leonid Mesnik
9b5991e811 8273451: Remove unreachable return in mutexLocker::wait
Reviewed-by: minqi, coleenp
2021-09-08 19:30:17 +00:00
Thomas Schatzl
e6805032ff 8273185: Rename the term "atomic" in ReferenceProcessor
Reviewed-by: ayang, shade
2021-09-08 19:02:49 +00:00
Daniel D. Daugherty
ba31eee4fc 8273109: runtime/cds/appcds/loaderConstraints/DynamicLoaderConstraintsTest times out
Reviewed-by: bpb
2021-09-08 18:33:04 +00:00
Jonathan Gibbons
4d5e1ed958 8272375: Improve phrasing of synthesized descriptions in JavaFX docs
Reviewed-by: kcr, prappo
2021-09-08 17:38:05 +00:00
Aleksey Shipilev
267c61a16a 8273361: InfoOptsTest is failing in tier1
Reviewed-by: jpai, ihse, jlahoda
2021-09-08 16:36:31 +00:00
Vladimir Ivanov
f7e9f56e23 8273359: CI: ciInstanceKlass::get_canonical_holder() doesn't respect instance size
Reviewed-by: kvn
2021-09-08 16:17:56 +00:00
Sandhya Viswanathan
d7efd0e8cf 8273450: Fix the copyright header of SVML files
Reviewed-by: dholmes, psandoz
2021-09-08 16:07:45 +00:00
Sergey Tsypanov
e5f298a7f1 8273329: Remove redundant null check from String.getBytes(String charsetName)
Reviewed-by: rriggs, iris, naoto
2021-09-08 15:54:36 +00:00
Masanori Yano
cb112affd6 8269373: some tests in jdk/tools/launcher/ fails on localized Windows platform
Reviewed-by: naoto
2021-09-08 15:46:33 +00:00
Wang Huang
7e662e7b9d 8272413: Incorrect num of element count calculation for vector cast
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Miu Zhuojun <mouzhuojun@huawei.com>
Co-authored-by: Wu Yan <wuyan@openjdk.org>
Reviewed-by: eliu, kvn
2021-09-08 14:39:23 +00:00
jtfuller111
f2f8136cc9 8265443: IGV: disambiguate groups by emiting additional properties
Reviewed-by: thartmann
2021-09-08 14:38:21 +00:00
Andrey Turbanov
59c9f75041 8273375: Remove redundant 'new String' calls after concatenation in java.desktop
Reviewed-by: aivanov
2021-09-08 14:28:07 +00:00
Vladimir Ivanov
faa942c8ba 8273000: Remove WeakReference-based class initialisation barrier implementation
Reviewed-by: psandoz, mchung
2021-09-08 11:28:17 +00:00
Vladimir Ivanov
21012f2bbe 8078641: MethodHandle.asTypeCache can retain classes from unloading
Co-authored-by: Peter Levart <plevart@openjdk.org>
Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Reviewed-by: psandoz, mchung, plevart
2021-09-08 11:27:14 +00:00
Markus Karg
185557423d 8273038: ChannelInputStream.transferTo() uses FileChannel.transferTo(FileChannel)
Reviewed-by: alanb
2021-09-08 11:22:47 +00:00
Andrew Haley
6750c34c92 8270533: AArch64: size_fits_all_mem_uses should return false if its output is a CAS
Reviewed-by: adinn, ngasson
2021-09-08 10:08:30 +00:00
Hamlin Li
a66629a464 8254167: G1: Record regions where evacuation failed to provide targeted iteration
Reviewed-by: tschatzl, ayang
2021-09-08 08:01:18 +00:00
Aleksey Shipilev
286a1f6b7c 8273440: Zero: Disable runtime/Unsafe/InternalErrorTest.java
Reviewed-by: dholmes
2021-09-08 07:44:35 +00:00
Aleksey Shipilev
7d24a33421 8273318: Some containers/docker/TestJFREvents.java configs are running out of memory
Reviewed-by: ngasson, sgehwolf, mseledtsov
2021-09-08 07:43:28 +00:00
Andrey Turbanov
1513dc7afc 8271603: Unnecessary Vector usage in java.desktop
Reviewed-by: prr, serb
2021-09-08 04:36:41 +00:00
Daniel D. Daugherty
ea4907a878 8273047: test jfr/api/consumer/TestRecordedFrame.java timing out
Reviewed-by: dholmes
2021-09-08 02:13:41 +00:00
Yasumasa Suenaga
4eacdb38a8 8273104: Refactoring option parser for UL
Reviewed-by: iklam, dholmes
2021-09-08 01:27:13 +00:00
Daniel D. Daugherty
8884d2f854 8273462: ProblemList vmTestbase/vm/mlvm/anonloader/stress/oome/heap/Test.java in -Xcomp mode
Reviewed-by: dholmes
2021-09-08 00:34:11 +00:00
Mark Sheppard
d6d6c0692b 8273246: Amend the test java/nio/channels/DatagramChannel/ManySourcesAndTargets.java to execute in othervm mode
Reviewed-by: alanb
2021-09-07 22:18:23 +00:00
Andrey Turbanov
708407eddc 8273168: Remove superfluous use of boxing in java.desktop
Reviewed-by: aivanov
2021-09-07 21:12:35 +00:00
Alexey Ivanov
270a9d9293 8273043: [TEST_BUG] Automate NimbusJTreeSelTextColor.java
Reviewed-by: serb
2021-09-07 19:05:35 +00:00
Prasanta Sadhukhan
df05b4d1a1 8271923: [macos] the text color on the selected disabled tabbed pane button remains white making text unreadable
Reviewed-by: jdv
2021-09-07 15:50:27 +00:00
Roland Westrelin
2abf3b3b27 8271340: Crash PhaseIdealLoop::clone_outer_loop
Reviewed-by: kvn, thartmann
2021-09-07 15:15:17 +00:00
Roland Westrelin
99fb12c798 8271341: Opcode() != Op_If && Opcode() != Op_RangeCheck) || outcnt() == 2 assert failure with Test7179138_1.java
Reviewed-by: kvn, thartmann
2021-09-07 15:13:12 +00:00
Fernando Guallini
041ae20b10 8268558: [TESTBUG] Case 2 in TestP11KeyFactoryGetRSAKeySpec is skipped
Reviewed-by: mullan, rhalade
2021-09-07 14:36:15 +00:00
Vladimir Ivanov
377b186724 8269119: C2: Avoid redundant memory barriers in Unsafe.copyMemory0 intrinsic
Reviewed-by: thartmann, roland
2021-09-07 11:35:31 +00:00
Jan Lahoda
70157c78a8 8272135: jshell: Method cannot use its overloaded version
Reviewed-by: vromero
2021-09-07 09:50:10 +00:00
Ivan Šipka
5caa77b043 8263364: sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java wedged in getInputStream
Reviewed-by: dfuchs
2021-09-07 09:46:27 +00:00
Aleksey Shipilev
a522d6b53c 8273376: Zero: Disable vtable/itableStub gtests
Reviewed-by: jiefu, stuefe
2021-09-07 08:52:53 +00:00
Leo Korinth
3cd95a2932 8231356: Fix broken ResourceObj::operator new[] in debug builds
Reviewed-by: kbarrett, iklam
2021-09-07 08:23:32 +00:00
Aleksey Shipilev
81c719be39 8273333: Zero should warn about unimplemented -XX:+LogTouchedMethods
Reviewed-by: minqi, dholmes
2021-09-07 07:35:23 +00:00
Wang Huang
649c22c5b1 8270832: Aarch64: Update algorithm annotations for MacroAssembler::fill_words
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Miu Zhuojun <mouzhuojun@huawei.com>
Co-authored-by: Wu Yan <wuyan@openjdk.org>
Reviewed-by: ngasson, aph
2021-09-07 01:40:24 +00:00
Kim Barrett
eb221812b2 8273386: Remove duplicated code in G1DCQS::abandon_completed_buffers
Reviewed-by: tschatzl
2021-09-06 18:19:58 +00:00
Aleksey Shipilev
fc546d6de9 8273378: Shenandoah: Remove the remaining uses of os::is_MP
Reviewed-by: aph, zgu
2021-09-06 16:00:12 +00:00
Patric Hedlin
7bd4f496b4 8264207: CodeStrings does not honour fixed address assumption.
Reviewed-by: redestad, neliasso
2021-09-06 14:43:54 +00:00
Thomas Schatzl
2cabec8ddc 8253343: Extract G1 Young GC algorithm related code from G1CollectedHeap
Reviewed-by: ayang, sjohanss
2021-09-06 14:28:54 +00:00
Dan Heidinga
44c5c23b96 8272164: DumpAllocStats shouldn't subclass from ResourceObj
Reviewed-by: shade, iklam, dholmes
2021-09-06 13:39:03 +00:00
Markus Grönlund
1bf5bda291 8269418: jdk/jfr/event/oldobject/TestObjectSize.java failed with "RuntimeException: No events: expected false, was true"
Reviewed-by: jbachorik
2021-09-06 09:13:35 +00:00
Thomas Schatzl
fb5b144eca 8272985: Reference discovery is confused about atomicity and degree of parallelism
Reviewed-by: ayang, kbarrett
2021-09-06 09:07:43 +00:00
Daniel Gredler
70ed6c5b8c 8272878: JEP 381 cleanup: Remove unused Solaris code in sun.font.TrueTypeGlyphMapper
Reviewed-by: prr, jdv
2021-09-06 08:13:22 +00:00
Albert Mingkun Yang
b4e5b28b86 8273221: Guard GCIdMark against nested calls
Reviewed-by: tschatzl, kbarrett
2021-09-06 08:11:34 +00:00
Aleksey Shipilev
4d25e6f6c7 8273335: compiler/blackhole tests should not run with interpreter-only VMs
Reviewed-by: kvn
2021-09-06 08:08:05 +00:00
lawrence.andrews
c640fe42c2 7188098: TEST_BUG: closed/javax/sound/midi/Synthesizer/Receiver/bug6186488.java fails
Reviewed-by: serb
2021-09-05 09:15:38 +00:00
Prasanta Sadhukhan
cec6c068b0 8272232: javax/swing/JTable/4275046/bug4275046.java failed with "Expected value in the cell: 'rededited' but found 'redEDITED'."
8257540: javax/swing/JFileChooser/8041694/bug8041694.java failed with "RuntimeException: The selected directory name is not the expected 'd ' but 'D '."

Reviewed-by: serb
2021-09-04 11:04:22 +00:00
Dean Long
14a3ac09fe 8271911: replay compilations of methods which use JSR292 (easy cases)
8012267: ciReplay: fails to resolve @SignaturePolymorphic methods in replay data
8012268: ciReplay: process_ciInstanceKlass: JVM_CONSTANT_MethodHandle not supported

Reviewed-by: kvn, vlivanov
2021-09-03 23:23:10 +00:00
Yumin Qi
d414a88d88 8273240: Dynamic test ArchiveConsistency.java should use CDSArchiveUtils
Reviewed-by: iklam
2021-09-03 20:36:48 +00:00
Albert Mingkun Yang
23fa0dcff0 8272905: Consolidate discovered lists processing
Reviewed-by: tschatzl, kbarrett
2021-09-03 16:53:53 +00:00
Vicente Romero
ff4018bc86 8268148: unchecked warnings handle ? and ? extends Object differently
Reviewed-by: jlahoda
2021-09-03 15:20:23 +00:00
Vicente Romero
8c37909274 8273234: extended 'for' with expression of type tvar causes the compiler to crash
Reviewed-by: jlahoda
2021-09-03 13:11:27 +00:00
Vladimir Ivanov
28ba78e647 8244675: assert(IncrementalInline || (_late_inlines.length() == 0 && !has_mh_late_inlines()))
Reviewed-by: dlong
2021-09-03 12:05:00 +00:00
Guoxiong Li
d05494f98b 8266239: Some duplicated javac command-line options have repeated effect
Reviewed-by: vromero
2021-09-03 09:33:17 +00:00
Jan Lahoda
93eec9a103 8272776: NullPointerException not reported
Reviewed-by: vromero
2021-09-03 09:31:54 +00:00
Jan Lahoda
7b023a3f60 8273257: jshell doesn't compile a sealed hierarchy with a sealed interface and a non-sealed leaf
Reviewed-by: vromero
2021-09-03 09:30:56 +00:00
Jan Lahoda
f17ee0c5c7 8273263: Incorrect recovery attribution of record component type when j.l.Record is unavailable
Reviewed-by: vromero
2021-09-03 09:29:45 +00:00
Xiaowei Lu
fa9c8657df 8273112: -Xloggc:<filename> should override -verbose:gc
Reviewed-by: iklam, dholmes
2021-09-03 05:29:02 +00:00
Ian Graves
dd871819a0 8214761: Bug in parallel Kahan summation implementation
Reviewed-by: darcy
2021-09-03 00:50:11 +00:00
Sergey Bylokhov
7fff22afe7 8272805: Avoid looking up standard charsets
Reviewed-by: weijun, naoto, dfuchs, azvegint, erikj
2021-09-02 22:56:20 +00:00
Patricio Chilano Mateo
92b05fe0f4 8273251: Call check_possible_safepoint() from SafepointMechanism::process_if_requested()
Reviewed-by: coleenp, dholmes
2021-09-02 21:22:47 +00:00
Jamil Nimeh
29e0f1386d 8272385: Enforce ECPrivateKey d value to be in the range [1, n-1] for SunEC provider
Reviewed-by: ascarpino, weijun
2021-09-02 17:54:08 +00:00
Lance Andersen
aaa6f696b0 8273250: Address javadoc issues in Deflater::setDictionationary
Reviewed-by: rriggs, naoto, iris, bpb
2021-09-02 16:06:55 +00:00
Aleksey Shipilev
5ee5dd9b18 8272914: Create hotspot:tier2 and hotspot:tier3 test groups
Reviewed-by: dholmes, coleenp, iignatyev
2021-09-02 15:43:21 +00:00
Thomas Schatzl
5245c1cf02 8273147: Update and restructure TestGCLogMessages log message list
Reviewed-by: iwalulya, ayang
2021-09-02 11:57:55 +00:00
Vladimir Ivanov
632a7e0885 8273165: GraphKit::combine_exception_states fails with "matching stack sizes" assert
Reviewed-by: thartmann, kvn
2021-09-02 11:46:19 +00:00
Matthias Baesken
c2e015c3c1 8273229: Update OS detection code to recognize Windows Server 2022
Reviewed-by: alanb, dholmes
2021-09-02 11:22:49 +00:00
Aleksei Efimov
0c1b16b75a 8273243: Fix indentations in java.net.InetAddress methods
Reviewed-by: dfuchs, bpb
2021-09-02 10:36:08 +00:00
Sergey Tsypanov
152e66923d 8273140: Replace usages of Enum.class.getEnumConstants() with Enum.values() where possible
Reviewed-by: tschatzl
2021-09-02 08:10:40 +00:00
Aleksey Shipilev
857a930bde 8263375: Support stack watermarks in Zero VM
Reviewed-by: eosterlund
2021-09-02 08:00:45 +00:00
Aleksey Shipilev
6cfe314262 8272970: Parallelize runtime/InvocationTests/
Reviewed-by: dholmes, iignatyev
2021-09-02 07:56:56 +00:00
Jie Fu
a9a83b248e 8273256: runtime/cds/appcds/TestEpsilonGCWithCDS.java fails due to Unrecognized VM option 'ObjectAlignmentInBytes=64' on x86_32
Reviewed-by: dholmes, iklam
2021-09-02 04:10:46 +00:00
Valerie Peng
1a5a2b6b15 8271745: Correct block size for KW,KWP mode and use fixed IV for KWP mode for SunJCE
Reviewed-by: xuelei, mullan
2021-09-01 22:17:49 +00:00
Joe Darcy
2f01a6f8b6 8273157: Add convenience methods to Messager
Reviewed-by: jjg
2021-09-01 20:28:05 +00:00
Coleen Phillimore
9689f61520 8272788: Nonleaf ranked locks should not be safepoint_check_never
Reviewed-by: eosterlund, pchilanomate
2021-09-01 18:39:10 +00:00
Daniel D. Daugherty
4ee0dacecd 8273248: ProblemList java/lang/instrument/BootClassPath/BootClassPathTest.sh on all configs
Reviewed-by: naoto
2021-09-01 17:45:39 +00:00
Ioi Lam
655ea6d42a 8270489: Support archived heap objects in EpsilonGC
Reviewed-by: shade, ccheung
2021-09-01 16:50:11 +00:00
Coleen Phillimore
dacd197897 8273217: Make ParHeapInspectTask _safepoint_check_never
Reviewed-by: dholmes, pchilanomate
2021-09-01 16:48:06 +00:00
Yi Yang
02822e1398 8272377: assert preconditions that are ensured when created in add_final_edges
Reviewed-by: thartmann, kvn
2021-09-01 10:41:03 +00:00
Fairoz Matte
a58cf16509 8272563: assert(is_double_stack() && !is_virtual()) failed: type check
Reviewed-by: thartmann, iveresov
2021-09-01 10:12:25 +00:00
Matthias Baesken
0e14bf70cf 8273176: handle latest VS2019 in abstract_vm_version
Reviewed-by: kevinw, dholmes
2021-09-01 07:59:10 +00:00
Jie Fu
f1c5e26e48 8273206: jdk/jfr/event/gc/collection/TestG1ParallelPhases.java fails after JDK-8159979
Reviewed-by: dholmes, ayang
2021-09-01 07:55:20 +00:00
Jan Lahoda
e600fe1a1a 8272618: Unnecessary Attr.visitIdent.noOuterThisPath
Reviewed-by: vromero
2021-09-01 06:06:17 +00:00
David Holmes
2fce7cb4d2 8272963: Update the java manpage markdown source
Reviewed-by: ysuenaga
2021-08-31 23:51:10 +00:00
Alex Menkov
18a731a3e4 8269770: nsk tests should start IOPipe channel before launch debuggee - Debugee.prepareDebugee
Reviewed-by: sspitsyn, kevinw
2021-08-31 22:43:12 +00:00
Daniel D. Daugherty
9c392d008a 8273197: ProblemList 2 jtools tests due to JDK-8273187
8273198: ProblemList java/lang/instrument/BootClassPath/BootClassPathTest.sh due to JDK-8273188

Reviewed-by: naoto
2021-08-31 20:12:19 +00:00
Weijun Wang
3d657eb0a6 8262186: Call X509KeyManager.chooseClientAlias once for all key types
Reviewed-by: xuelei
2021-08-31 20:07:02 +00:00
Thomas Schatzl
c1e0aac846 8273186: Remove leftover comment about sparse remembered set in G1 HeapRegionRemSet
Reviewed-by: ayang
2021-08-31 19:46:55 +00:00
bobpengxie
683e30db79 8273169: java/util/regex/NegativeArraySize.java failed after JDK-8271302
Reviewed-by: jiefu, serb
2021-08-31 17:31:03 +00:00
Ioi Lam
1996f649a3 8273092: Sort classlist in JDK image
Reviewed-by: redestad, ihse, dfuchs
2021-08-31 16:33:02 +00:00
Thomas Schatzl
ba3587e524 8273144: Remove unused top level "Sample Collection Set Candidates" logging
Reviewed-by: iwalulya, ayang
2021-08-31 15:45:56 +00:00
Vicente Romero
75d987a0dd 8262095: NPE in Flow$FlowAnalyzer.visitApply: Cannot invoke getThrownTypes because tree.meth.type is null
Co-authored-by: Jan Lahoda <jlahoda@openjdk.org>
Co-authored-by: Vicente Romero <vromero@openjdk.org>
Reviewed-by: jlahoda
2021-08-31 15:40:17 +00:00
Brian Burkhalter
e551852801 8271225: Add floorDivExact() method to java.lang.[Strict]Math
Reviewed-by: darcy
2021-08-31 14:42:14 +00:00
Ivan Walulya
e67125512f 8237567: Refactor G1-specific code in shared VM_CollectForMetadataAllocation
Reviewed-by: ayang, tschatzl
2021-08-31 13:32:31 +00:00
Albert Mingkun Yang
9bc7cc5651 8273033: SerialGC: remove obsolete comments
Reviewed-by: sjohanss, tschatzl
2021-08-31 12:51:27 +00:00
Ivan Walulya
841e3943c4 8159979: During initial mark, preparing all regions for marking may take a significant amount of time
Reviewed-by: tschatzl, ayang
2021-08-31 12:30:14 +00:00
Claes Redestad
98fa53357a 8273100: Improve AbstractStringBuilder.append(String) when using CompactStrings
Reviewed-by: rriggs, alanb
2021-08-31 11:32:33 +00:00
Yumin Qi
9732fbe428 8273153: Consolidate file_exists into os:file_exists
Reviewed-by: iklam, ccheung
2021-08-31 00:24:05 +00:00
Vicente Romero
0609421d4b 8272347: ObjectMethods::bootstrap should specify NPE if any argument except lookup is null
Reviewed-by: mchung, chegar
2021-08-30 21:16:46 +00:00
Naoto Sato
7fc8540907 8260265: UTF-8 by Default
Reviewed-by: alanb, rriggs
2021-08-30 21:13:59 +00:00
Ioi Lam
32048536e9 8272343: Remove MetaspaceClosure::FLAG_MASK
Reviewed-by: ccheung, minqi
2021-08-30 21:06:26 +00:00
Ian Graves
fecefb8541 8271302: Regex Test Refresh
Reviewed-by: bchristi, smarks
2021-08-30 17:37:29 +00:00
Fernando Guallini
f18c0fac11 8271560: sun/security/ssl/DHKeyExchange/LegacyDHEKeyExchange.java still fails due to "An established connection was aborted by the software in your host machine"
Reviewed-by: xuelei, rhalade
2021-08-30 17:28:49 +00:00
Sandhya Viswanathan
5aaa20f898 8272861: Add a micro benchmark for vector api
Reviewed-by: psandoz
2021-08-30 16:48:28 +00:00
Thomas Schatzl
7a01ba6528 8272093: Extract evacuation failure injection from G1CollectedHeap
Reviewed-by: ayang, sjohanss
2021-08-30 15:54:47 +00:00
Coleen Phillimore
98b9d98032 8272797: Mutex with rank safepoint_check_never imply allow_vm_block
Reviewed-by: dholmes, pchilanomate
2021-08-30 14:47:24 +00:00
Stefan Johansson
f11e099a14 8272651: G1 heap region info print order changed by JDK-8269914
Reviewed-by: tschatzl, iwalulya, ayang
2021-08-30 14:37:03 +00:00
Magnus Ihse Bursie
fbffa54efe 8270438: "Cores to use" output in configure is misleading
Reviewed-by: erikj
2021-08-30 13:41:54 +00:00
Andrey Turbanov
5185dbde67 8273098: Unnecessary Vector usage in java.naming
Reviewed-by: aefimov, dfuchs
2021-08-30 13:12:42 +00:00
Lutz Schmidt
276b07b36a 8271490: [ppc] [s390]: Crash in JavaThread::pd_get_top_frame_for_profiling
Reviewed-by: stuefe, mbaesken
2021-08-30 12:31:08 +00:00
Thomas Schatzl
bb7aa1c6a4 8272161: Make evacuation failure data structures local to collection
Reviewed-by: iwalulya, sjohanss
2021-08-30 12:08:12 +00:00
Magnus Ihse Bursie
9ede41bf89 8229031: Exporting CLASSPATH from shell can result in build failures
Reviewed-by: erikj
2021-08-30 11:37:47 +00:00
Michael McMahon
16e83058ca 8273059: Redundant Math.min call in Http2ClientImpl#getConnectionWindowSize
Reviewed-by: dfuchs
2021-08-30 08:57:17 +00:00
Aleksey Shipilev
f55d5ab517 8272838: Move CriticalJNI tests out of tier1
Reviewed-by: dholmes
2021-08-30 06:41:40 +00:00
Guoxiong Li
a9188f237e 8268894: forged ASTs can provoke an AIOOBE at com.sun.tools.javac.jvm.ClassWriter::writePosition
Reviewed-by: vromero
2021-08-29 07:26:08 +00:00
Bradford Wetmore
1fb798d320 8272915: (doc) package-info typo in extLink
Reviewed-by: xuelei
2021-08-27 23:01:51 +00:00
Raffaello Giulietti
51167846cb 8273091: Doc of [Strict]Math.floorDiv(long,int) erroneously documents int in @return tag
Reviewed-by: darcy, bpb
2021-08-27 22:48:52 +00:00
Jim Laskey
e66c8afb59 8272866: java.util.random package summary contains incorrect mixing function in table
Reviewed-by: rriggs
2021-08-27 18:45:52 +00:00
Brian Burkhalter
d1aeca117c 8272541: Incorrect overflow test in Toom-Cook branch of BigInteger multiplication
Reviewed-by: darcy
2021-08-27 16:09:28 +00:00
Brian Burkhalter
dfeb4132e4 8272964: java/nio/file/Files/InterruptCopy.java fails with java.lang.RuntimeException: Copy was not interrupted
Reviewed-by: dfuchs
2021-08-27 16:08:29 +00:00
Magnus Ihse Bursie
a033aa5a3d 8273072: Avoid using += in configure
Reviewed-by: dholmes, jiefu
2021-08-27 13:53:33 +00:00
Coleen Phillimore
b92214a8d0 8272480: Remove Mutex::access rank
Reviewed-by: dholmes, eosterlund
2021-08-27 13:51:39 +00:00
Magnus Ihse Bursie
596b075591 8258465: Headless build fails due to missing X11 headers on linux
Reviewed-by: shade
2021-08-27 13:13:36 +00:00
Kim Barrett
a49a0c5866 8273062: Generation::refs_discovery_is_xxx functions are unused
Reviewed-by: ayang
2021-08-27 10:32:46 +00:00
Aleksey Shipilev
ebd62bc043 8272846: Move some runtime/Metaspace/elastic/ tests out of tier1
Reviewed-by: mseledtsov, stuefe
2021-08-27 09:35:26 +00:00
Lin Zang
46684a4efa 8262386: resourcehogs/serviceability/sa/TestHeapDumpForLargeArray.java timed out
Reviewed-by: cjplummer, sspitsyn
2021-08-27 09:02:23 +00:00
Tobias Hartmann
c925c7f3e8 8273020: LibraryCallKit::sharpen_unsafe_type does not handle narrow oop array
Reviewed-by: chagedorn
2021-08-27 05:38:24 +00:00
Bradford Wetmore
76baace2f0 8273045: Fix misc javadoc bugs in the java.security and javax.net.ssl code
Reviewed-by: xuelei
2021-08-27 05:11:25 +00:00
Yasumasa Suenaga
b16a04ebf7 8271186: Add UL option to replace newline char
Reviewed-by: iklam, dholmes
2021-08-27 05:06:52 +00:00
Andrey Turbanov
d732c3091f 8272863: Replace usages of Collections.sort with List.sort call in public java modules
Reviewed-by: serb, dfuchs, naoto
2021-08-26 20:47:02 +00:00
Naoto Sato
fe7d70886c 8272473: Parsing epoch seconds at a DST transition with a non-UTC parser is wrong
Reviewed-by: joehw, rriggs, iris, lancea, scolebourne
2021-08-26 16:21:23 +00:00
Ivan Walulya
845e1cea8d 8272983: G1 Add marking details to eager reclaim logging
Reviewed-by: tschatzl, ayang
2021-08-26 13:41:46 +00:00
Alexey Ushakov
c420530549 8272481: [macos] javax/swing/JFrame/NSTexturedJFrame/NSTexturedJFrame.java fails
Reviewed-by: serb, jdv
2021-08-26 12:56:03 +00:00
Prasanta Sadhukhan
e43a907f20 8271315: Redo: Nimbus JTree renderer properties persist across L&F changes
Reviewed-by: aivanov
2021-08-26 12:04:10 +00:00
Albert Mingkun Yang
11c9fd8298 8272975: ParallelGC: add documentation to heap memory layout
Co-authored-by: Thomas Schatzl <tschatzl@openjdk.org>
Reviewed-by: tschatzl, kbarrett
2021-08-26 10:06:38 +00:00
Magnus Ihse Bursie
b94fd32f08 8272859: Javadoc external links should only have feature version number in URL
Reviewed-by: iris
2021-08-26 10:00:21 +00:00
Tobias Hartmann
9166ba37b6 8272973: Incorrect compile command used by TestIllegalArrayCopyBeforeInfiniteLoop
Reviewed-by: chagedorn, jiefu, neliasso
2021-08-26 08:34:46 +00:00
Alexey Ushakov
49b2789a49 8262751: RenderPipelineState assertion error in J2DDemo
Reviewed-by: jdv
2021-08-26 07:28:26 +00:00
Aleksey Shipilev
a3308af060 8272836: Limit run time for java/lang/invoke/LFCaching tests
Reviewed-by: redestad, iignatyev
2021-08-26 06:51:19 +00:00
David Holmes
c4c76e2f34 8272811: Document the effects of building with _GNU_SOURCE in os_posix.hpp
Reviewed-by: iklam
2021-08-26 02:24:36 +00:00
Igor Veresov
673ce7efa5 8272873: C2: Inlining should not depend on absolute call site counts
Reviewed-by: kvn, vlivanov, dlong
2021-08-26 00:17:15 +00:00
Zhengyu Gu
7212561dd1 8267188: gc/stringdedup/TestStringDeduplicationInterned.java fails with Shenandoah
Reviewed-by: rkennke, shade
2021-08-25 20:16:25 +00:00
Ivan Walulya
e36cbd8e05 8242847: G1 should not clear mark bitmaps with no marks
Reviewed-by: tschatzl, sjohanss
2021-08-25 14:33:34 +00:00
Coleen Phillimore
2ef6871118 8272447: Remove 'native' ranked Mutex
Reviewed-by: stuefe, pchilanomate
2021-08-25 13:25:34 +00:00
Ivan Walulya
63e062fb78 8236176: Parallel GC SplitInfo comment should be updated for shadow regions
Reviewed-by: tschatzl, ayang
2021-08-25 10:18:54 +00:00
Aleksey Shipilev
c5a271259d 8272850: Drop zapping values in the Zap* option descriptions
Reviewed-by: stefank, kbarrett
2021-08-25 08:05:47 +00:00
Albert Mingkun Yang
1e3e333f73 8272884: Make VoidClosure::do_void pure virtual
Reviewed-by: kbarrett, dholmes
2021-08-25 07:33:18 +00:00
casparcwang
0f428ca533 8272570: C2: crash in PhaseCFG::global_code_motion
Co-authored-by: Hui Shi <hshi@openjdk.org>
Reviewed-by: thartmann, rbackman
2021-08-25 01:16:48 +00:00
Andy Herrick
b17b821a57 8272639: jpackaged applications using microphone on mac
Reviewed-by: almatvee, serb
2021-08-24 20:59:43 +00:00
Smita Kamath
0e7288ffbf 8267125: AES Galois CounterMode (GCM) interleaved implementation using AVX512 + VAES instructions
Co-authored-by: Smita Kamath <svkamath@openjdk.org>
Co-authored-by: Tomasz Kantecki <tomasz.kantecki@intel.com>
Co-authored-by: Anthony Scarpino <ascarpino@openjdk.org>
Reviewed-by: kvn, valeriep
2021-08-24 18:48:31 +00:00
Igor Ignatyev
6ace805f8c 8272856: DoubleFlagWithIntegerValue uses G1GC-only flag
Reviewed-by: dholmes, kbarrett
2021-08-24 18:43:54 +00:00
Calvin Cheung
c547ead493 8272916: Copyright year was modified unintentionally in jlink.properties and ImagePluginStack.java
Reviewed-by: bpb
2021-08-24 18:09:56 +00:00
Brian Burkhalter
aaedac635a 8265261: java/nio/file/Files/InterruptCopy.java fails with java.lang.RuntimeException: Copy was not interrupted
Reviewed-by: dfuchs
2021-08-24 17:04:35 +00:00
Jonathan Gibbons
d34f17c697 8270195: Add missing links between methods of JavaFX properties
Reviewed-by: kcr, hannesw
2021-08-24 16:10:25 +00:00
Calvin Cheung
f608e81ad8 8264322: Generate CDS archive when creating custom JDK image
Reviewed-by: mchung, alanb
2021-08-24 15:31:20 +00:00
Phil Race
f681d6544a 8272806: [macOS] "Apple AWT Internal Exception" when input method is changed
Reviewed-by: serb, dmarkov, azvegint
2021-08-24 15:23:15 +00:00
Albert Mingkun Yang
6e0328f582 8272725: G1: add documentation on needs_remset_update_t vs bool
Reviewed-by: tschatzl, iwalulya
2021-08-24 15:21:14 +00:00
Sergei Ustimenko
2309b7d8fc 8253178: Replace LinkedList Impl in net.http.FilterFactory
Reviewed-by: dfuchs
2021-08-24 14:49:56 +00:00
Jonathan Gibbons
94f5e441f6 8271258: @param with non-ascii variable names produces incorrect results
Reviewed-by: hannesw
2021-08-24 14:41:24 +00:00
Patricio Chilano Mateo
7454306920 8272526: Cleanup ThreadStateTransition class
Reviewed-by: dholmes, rehn, coleenp
2021-08-24 14:09:59 +00:00
Kim Barrett
0597cde87d 8221360: Eliminate Shared_DirtyCardQ_lock
Reviewed-by: tschatzl, iwalulya
2021-08-24 13:17:37 +00:00
Albert Mingkun Yang
928b9724c9 8271930: Simplify end_card calculation in G1BlockOffsetTablePart::verify
Reviewed-by: tschatzl, iwalulya
2021-08-24 12:14:07 +00:00
Aleksey Shipilev
7f80683cfe 8272783: Epsilon: Refactor tests to improve performance
Reviewed-by: tschatzl
2021-08-24 10:08:18 +00:00
Prasanta Sadhukhan
22ef4f0653 5015261: NPE may be thrown if JDesktopIcon is set to null on a JInternalFrame
Reviewed-by: serb, prr, aivanov
2021-08-24 04:02:03 +00:00
Maxim Kartashev
9bc023220f 8269223: -Xcheck:jni WARNINGs working with fonts on Linux
Reviewed-by: prr, serb
2021-08-23 20:28:17 +00:00
Vladimir Ivanov
2ff4c01d42 8271600: C2: CheckCastPP which should closely follow Allocate is sunk of a loop
Reviewed-by: chagedorn, roland
2021-08-23 20:23:41 +00:00
Tom Rodriguez
ad92033fcc 8272736: [JVMCI] Add API for reading and writing JVMCI thread locals
Reviewed-by: kvn, dnsimon
2021-08-23 18:43:34 +00:00
Igor Ignatyev
709b5910c3 8272553: several hotspot runtime/CommandLine tests don't check exit code
Reviewed-by: dholmes
2021-08-23 18:03:13 +00:00
Jonathan Gibbons
1884072474 8265253: javac -Xdoclint:all gives "no comment" warning for code that can't be commented
Reviewed-by: hannesw
2021-08-23 17:31:29 +00:00
Albert Mingkun Yang
594e5161b4 8272778: Consolidate is_instance and is_instance_inlined in java_lang_String
Reviewed-by: coleenp, redestad
2021-08-23 14:00:31 +00:00
Ivan Walulya
d542745dbe 8267894: Skip work for empty regions in G1 Full GC
Reviewed-by: sjohanss, tschatzl
2021-08-23 12:58:48 +00:00
Tongbao Zhang
741f58c18c 8272417: ZGC: fastdebug build crashes when printing ClassLoaderData
Reviewed-by: stefank, pliden
2021-08-23 11:54:52 +00:00
Matthias Baesken
b7f75c0a73 8271142: package help is not displayed for missing X11/extensions/Xrandr.h
Reviewed-by: clanger
2021-08-23 06:39:46 +00:00
Denghui Dong
e8a289e77d 8272609: Add string deduplication support to SerialGC
Reviewed-by: kbarrett, iwalulya
2021-08-23 06:12:01 +00:00
Alan Hayward
b690f29699 8269687: pauth_aarch64.hpp include name is incorrect
Reviewed-by: rbackman, ngasson
2021-08-23 01:41:27 +00:00
David Holmes
f77a1a156f 8272472: StackGuardPages test doesn't build with glibc 2.34
Reviewed-by: shade, stuefe, jiefu
2021-08-22 01:13:27 +00:00
Sean Coffey
04a806ec86 8270344: Session resumption errors
Reviewed-by: xuelei
2021-08-20 20:10:42 +00:00
lawrence.andrews
d85560ed0f 8267161: Write automated test case for JDK-4479161
Reviewed-by: serb, aivanov
2021-08-20 17:45:46 +00:00
Jie Fu
1ea437a4b8 8272720: Fix the implementation of loop unrolling heuristic with LoopPercentProfileLimit
Reviewed-by: thartmann, rbackman
2021-08-20 12:43:29 +00:00
Vladimir Ivanov
86add21a85 8223923: C2: Missing interference with mismatched unsafe accesses
Reviewed-by: thartmann
2021-08-20 12:41:20 +00:00
Zhengyu Gu
c701f6e538 8272739: Misformatted error message in EventHandlerCreator
Reviewed-by: mgronlun
2021-08-20 12:23:10 +00:00
Ivan Walulya
fb1dfc6f49 8267185: Add string deduplication support to ParallelGC
Reviewed-by: kbarrett, ayang
2021-08-20 11:30:00 +00:00
Hamlin Li
d874e9616f 8271579: G1: Move copy before CAS in do_copy_to_survivor_space
8272070: G1: Simplify age calculation after JDK-8271579

Co-authored-by: shoubing ma <mashoubing1@huawei.com>
Reviewed-by: tschatzl, ayang
2021-08-20 11:26:11 +00:00
Roman Kennke
92bde6738a 8271946: Cleanup leftovers in Space and subclasses
Reviewed-by: stefank, tschatzl
2021-08-20 10:12:01 +00:00
Daniel Fuchs
db9834ff82 8258951: java/net/httpclient/HandshakeFailureTest.java failed with "RuntimeException: Not found expected SSLHandshakeException in java.io.IOException"
Reviewed-by: chegar
2021-08-20 09:05:00 +00:00
Aleksey Shipilev
a81e5e9353 8272654: Mark word accesses should not use Access API
Reviewed-by: stefank, rkennke, eosterlund
2021-08-20 07:34:41 +00:00
Thejasvi Voniadka
4bd37c3153 8272708: [Test]: Cleanup: test/jdk/security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java no longer needs ocspEnabled
Reviewed-by: rhalade
2021-08-20 03:15:04 +00:00
Phil Race
ddcd851c43 8272602: [macos] not all KEY_PRESSED events sent when control modifier is used
Reviewed-by: kizune
2021-08-20 00:08:42 +00:00
Jie Fu
d007be0952 8272700: [macos] Build failure with Xcode 13.0 after JDK-8264848
Reviewed-by: dholmes
2021-08-19 23:11:31 +00:00
Roman Kennke
f4be211ae2 8270041: Consolidate oopDesc::cas_forward_to() and oopDesc::forward_to_atomic()
Reviewed-by: stefank, kbarrett
2021-08-19 19:54:19 +00:00
Roman Kennke
b40e8f0f9e 8271951: Consolidate preserved marks overflow stack in SerialGC
Reviewed-by: tschatzl, kbarrett
2021-08-19 19:51:34 +00:00
Roman Kennke
7eccbd4fde 8266519: Cleanup resolve() leftovers from BarrierSet et al
Reviewed-by: kbarrett, stefank
2021-08-19 19:50:25 +00:00
Weijun Wang
9569159d25 8272674: Logging missing keytab file in Krb5LoginModule
Reviewed-by: coffeys
2021-08-19 19:02:22 +00:00
Andrey Turbanov
51c1b9a687 8272616: Strange code in java.text.DecimalFormat#applyPattern
Reviewed-by: bpb, naoto, iris
2021-08-19 15:57:18 +00:00
Roman Kennke
03b5e99d99 8272165: Consolidate mark_must_be_preserved() variants
Reviewed-by: tschatzl
2021-08-19 10:16:55 +00:00
Albert Mingkun Yang
ab41812951 8272576: G1: Use more accurate integer type for collection set length
Reviewed-by: iwalulya, sjohanss
2021-08-19 09:56:32 +00:00
Albert Mingkun Yang
82b2f21d17 8272579: G1: remove unnecesary null check for G1ParScanThreadStateSet::_states slots
Reviewed-by: iwalulya, kbarrett, sjohanss
2021-08-19 09:55:51 +00:00
Julia Boes
1c80f078f6 8272334: com.sun.net.httpserver.HttpExchange: Improve API doc of getRequestHeaders
Reviewed-by: dfuchs, michaelm, chegar
2021-08-19 09:09:36 +00:00
Jonathan Gibbons
6d3d47957e 8272667: substandard error messages from the docs build
Reviewed-by: darcy, iris
2021-08-18 23:40:44 +00:00
Ralf Schmelter
73da66ffb7 8272318: Improve performance of HeapDumpAllTest
Reviewed-by: lucy, sspitsyn
2021-08-18 18:30:26 +00:00
Vladimir Ivanov
96107e31df 8272573: Redundant unique_concrete_method_4 dependencies
Reviewed-by: kvn, thartmann
2021-08-18 16:45:29 +00:00
Harold Seigel
4d6593ce02 8272124: Cgroup v1 initialization causes NullPointerException when cgroup path contains colon
Reviewed-by: mseledtsov, sgehwolf
2021-08-18 14:24:58 +00:00
Claes Redestad
30b0f820ce 8272626: Avoid C-style array declarations in java.*
Reviewed-by: dfuchs, alanb
2021-08-18 10:47:03 +00:00
Vladimir Ivanov
e8f1219d6f 8271276: C2: Wrong JVM state used for receiver null check
Reviewed-by: kvn, thartmann
2021-08-18 10:31:24 +00:00
Christian Hagedorn
79a06df811 8272567: [IR Framework] Make AbstractInfo.getRandom() static
Reviewed-by: thartmann
2021-08-18 06:39:22 +00:00
Alexander Zuev
481c1f0549 8269951: [macos] Focus not painted in JButton when setBorderPainted(false) is invoked
Reviewed-by: serb, psadhukhan
2021-08-18 05:48:26 +00:00
Tobias Hartmann
5189047d09 8272558: IR Test Framework README misses some flags
Reviewed-by: chagedorn
2021-08-18 04:47:58 +00:00
Mikhailo Seledtsov
ec63957f9d 8272398: Update DockerTestUtils.buildJdkDockerImage()
Reviewed-by: iignatyev, hseigel
2021-08-17 23:22:44 +00:00
Vicente Romero
14623cde3a 8270835: regression after JDK-8261006
Reviewed-by: jlahoda
2021-08-17 20:47:36 +00:00
Igor Ignatyev
fe72197102 8272551: mark hotspot runtime/modules tests which ignore external VM flags
Reviewed-by: mseledtsov, jiefu
2021-08-17 19:37:45 +00:00
Igor Ignatyev
05d64da7f3 8272291: mark hotspot runtime/logging tests which ignore external VM flags
Reviewed-by: mseledtsov, dholmes
2021-08-17 19:36:44 +00:00
Brian Burkhalter
a68b5b9c1d 8272369: java/io/File/GetXSpace.java failed with "RuntimeException: java.nio.file.NoSuchFileException: /run/user/0"
Reviewed-by: alanb
2021-08-17 17:07:03 +00:00
Abdul Kolarkunnu
a199ebc017 8272581: sun/security/pkcs11/Provider/MultipleLogins.sh fails after JDK-8266182
Reviewed-by: weijun
2021-08-17 16:54:32 +00:00
Rajan Halade
1cbf41a87b 8225083: Remove Google certificate that is expiring in December 2021
Reviewed-by: xuelei, mullan
2021-08-17 16:01:42 +00:00
Jim Laskey
cf64c3e7e2 8272326: java/util/Random/RandomTestMoments.java had two Gaussian fails
Reviewed-by: rriggs, bpb
2021-08-17 15:53:41 +00:00
Albert Mingkun Yang
2ed7b709a1 8272521: Remove unused PSPromotionManager::_claimed_stack_breadth
Reviewed-by: kbarrett, iwalulya
2021-08-17 12:42:55 +00:00
Albert Mingkun Yang
2aaf795270 8272520: Inline GenericTaskQueue::initialize() to the constructor
Reviewed-by: kbarrett, iwalulya
2021-08-17 12:42:02 +00:00
Abdul Kolarkunnu
ed57cf1cf3 8266182: Automate manual steps listed in the test jdk/sun/security/pkcs12/ParamsTest.java
Reviewed-by: hchao, ssahoo, xuelei, weijun
2021-08-17 12:12:22 +00:00
Hannes Wallnöfer
0e3fde6c3c 8264274: Block tags in overview.html are ignored
Reviewed-by: jjg
2021-08-17 08:29:49 +00:00
lawrence.andrews
c5c84b8fdc 8270312: Error: Not a test or directory containing tests: java/awt/print/PrinterJob/XparColor.java
Reviewed-by: psadhukhan, jdv
2021-08-17 07:44:35 +00:00
Stefan Karlsson
df1427b72b 8272446: C1: Raw version of UnsafeGet generates load barriers
Reviewed-by: eosterlund, iveresov
2021-08-17 06:36:09 +00:00
Igor Ignatyev
989f39f810 8272552: mark hotspot runtime/cds tests which ignore external VM flags
Reviewed-by: mseledtsov, jiefu, dholmes, iklam
2021-08-17 03:45:26 +00:00
Zhengyu Gu
ee8bf10d32 8272327: Shenandoah: Avoid enqueuing duplicate string candidates
Reviewed-by: rkennke
2021-08-17 00:35:18 +00:00
Jonathan Gibbons
3fb19279da 8271227: Missing {@code } in com.sun.source.*
Reviewed-by: iris
2021-08-16 22:54:54 +00:00
Rajat Mahajan
a5ad7720d2 8272342: [TEST_BUG] java/awt/print/PrinterJob/PageDialogMarginTest.java catches all exceptions
Reviewed-by: aivanov, pbansal
2021-08-16 22:24:00 +00:00
Jonathan Gibbons
ae45592d33 8272374: doclint should report missing "body" comments
Reviewed-by: kcr, hannesw
2021-08-16 20:48:25 +00:00
Igor Ignatyev
b2c272d4e2 8272305: several hotspot runtime/modules don't check exit codes
Reviewed-by: dholmes, mseledtsov
2021-08-16 16:56:15 +00:00
Brian Burkhalter
82688258f6 8272297: FileInputStream should override transferTo() for better performance
Reviewed-by: alanb
2021-08-16 15:53:33 +00:00
Christian Hagedorn
3677734584 8271471: [IR Framework] Rare occurrence of "<!-- safepoint while printing -->" in PrintIdeal/PrintOptoAssembly can let tests fail
Reviewed-by: kvn, thartmann
2021-08-16 14:51:11 +00:00
Ivan Walulya
0a03481a65 8272231: G1: Refactor G1CardSet::get_card_set to return G1CardSetHashTableValue*
Reviewed-by: tschatzl, kbarrett
2021-08-16 13:09:48 +00:00
Ivan Walulya
83d0e128e3 8267833: Improve G1CardSetInlinePtr::add()
Reviewed-by: tschatzl, kbarrett
2021-08-16 13:08:36 +00:00
Albert Mingkun Yang
69cc588fce 8272235: G1: update outdated code root fixup
Reviewed-by: tschatzl, kbarrett
2021-08-16 09:40:56 +00:00
Hannes Wallnöfer
5db36cedc9 8272158: SoftReference related bugs under memory pressure
Reviewed-by: jjg
2021-08-16 07:46:29 +00:00
Albert Mingkun Yang
7a5b37b8ca 8272439: G1: add documentation to G1CardSetInlinePtr
Co-authored-by: Thomas Schatzl <tschatzl@openjdk.org>
Reviewed-by: tschatzl, kbarrett
2021-08-16 07:35:43 +00:00
Albert Mingkun Yang
0209d9f382 8272461: G1: remove empty declaration of cleanup_after_scan_heap_roots
Reviewed-by: kbarrett
2021-08-16 07:34:32 +00:00
Ioi Lam
36e2ddad4d 8272348: Update CDS tests in anticipation of JDK-8270489
Reviewed-by: ccheung, minqi
2021-08-16 03:22:52 +00:00
Yi Yang
3f38a50c52 8271203: C2: assert(iff->Opcode() == Op_If || iff->Opcode() == Op_CountedLoopEnd || iff->Opcode() == Op_RangeCheck) failed: Check this code when new subtype is added
Reviewed-by: chagedorn, roland, thartmann
2021-08-16 02:30:57 +00:00
Phil Race
6a5241c3ad 8272491: Problem list javax/swing/JFrame/NSTexturedJFrame/NSTexturedJFrame.java on macos
Reviewed-by: pbansal
2021-08-15 16:50:38 +00:00
Alexey Ushakov
17b9350023 8266079: Lanai: AlphaComposite shows differences on Metal compared to OpenGL
Reviewed-by: serb
2021-08-14 10:40:37 +00:00
Marcus G K Williams
87d2761f1b 8271883: Math CopySign optimization for x86
Reviewed-by: jbhateja, sviswanathan, kvn
2021-08-14 00:34:51 +00:00
Xue-Lei Andrew Fan
6b8b160e37 8272396: mismatching debug output streams
Reviewed-by: mullan
2021-08-13 21:33:22 +00:00
Phil Race
0af645aa4f 8205138: Remove Applet references from Font2DTest
Reviewed-by: serb, psadhukhan
2021-08-13 19:30:20 +00:00
Daniel D. Daugherty
bd7f9b4fb9 8272459: ProblemList compiler/codecache/TestStressCodeBuffers.java on aarch64
Reviewed-by: iignatyev
2021-08-13 16:57:12 +00:00
Lance Andersen
717792c3b7 8263940: NPE when creating default file system when default file system provider is packaged as JAR file on class path
Reviewed-by: naoto, bpb, iris, joehw
2021-08-13 16:11:04 +00:00
Thomas Stuefe
d06d0b9e9d 8272112: Arena code simplifications
Reviewed-by: kbarrett, coleenp
2021-08-13 06:38:08 +00:00
Prasanta Sadhukhan
0c4be76f7f 8058704: Nimbus does not honor JTextPane background color
6789980: JEditorPane background color not honored with Nimbus L&F

Reviewed-by: aivanov, serb
2021-08-13 05:12:59 +00:00
Jatin Bhateja
020aec5318 8271366: [REDO] JDK-8266054 VectorAPI rotate operation optimization
Reviewed-by: sviswanathan, psandoz
2021-08-13 04:33:53 +00:00
Hui Shi
4d4ba5c5b4 8272116: Update PerfDisableSharedMem with FLAG_SET_ERGO in PerfMemory::create_memory_region
Reviewed-by: dholmes
2021-08-13 01:00:49 +00:00
Lin Zang
09ab86b40c 8269909: getStack method in hprof.parser.Reader should use try-with-resource
Reviewed-by: dholmes, cjplummer, sspitsyn
2021-08-12 23:16:24 +00:00
Xue-Lei Andrew Fan
e4766ee0aa 8272391: Undeleted debug information
Reviewed-by: wetmore
2021-08-12 19:28:01 +00:00
Brian Burkhalter
428d51694f 8140241: (fc) Data transfer from FileChannel to itself causes hang in case of overlap
Reviewed-by: alanb
2021-08-12 15:27:09 +00:00
Kim Barrett
93cab7d07d 8272315: Improve assert_different_registers
Reviewed-by: adinn, vlivanov, thartmann
2021-08-12 14:29:32 +00:00
Harold Seigel
9980b413da 8272107: Removal of Unsafe::defineAnonymousClass left a dangling C++ class
Reviewed-by: coleenp, iklam, dholmes
2021-08-12 13:56:41 +00:00
Coleen Phillimore
464e874a5c 8048190: NoClassDefFoundError omits original ExceptionInInitializerError
Reviewed-by: dholmes, iklam
2021-08-12 13:45:36 +00:00
Xiaohong Gong
7e14c3cc11 8272310: AArch64: Add missing changes for shared vector helper methods in m4 files
Reviewed-by: jiefu
2021-08-12 11:07:04 +00:00
Sergey Tsypanov
b29fbad940 8267844: Replace Integer/Long.valueOf() with Integer/Long.parse*() where applicable
Reviewed-by: redestad
2021-08-12 10:03:52 +00:00
Severin Gehwolf
d38b31438d 8272332: --with-harfbuzz=system doesn't add -lharfbuzz after JDK-8255790
Reviewed-by: prr
2021-08-12 08:52:24 +00:00
Claes Redestad
a15b659278 8271732: Regression in StringBuilder.charAt bounds checking
Reviewed-by: alanb, naoto
2021-08-12 07:01:53 +00:00
Sergey Bylokhov
ec2fc384e5 8272120: Avoid looking for standard encodings in "java." modules
Reviewed-by: alanb, dfuchs, naoto
2021-08-12 05:46:00 +00:00
Igor Ignatyev
bd27bb9cbe 8272345: macos doesn't check os::set_boot_path() result
Reviewed-by: dholmes
2021-08-12 03:45:44 +00:00
Alexey Semenyuk
44f137ff9c 8271170: Add unit test for what jpackage app launcher puts in the environment
Reviewed-by: almatvee, herrick
2021-08-11 23:39:50 +00:00
Alexey Semenyuk
cd2dbe5f00 8272328: java.library.path is not set properly by Windows jpackage app launcher
Reviewed-by: herrick, almatvee
2021-08-11 20:54:58 +00:00
Igor Veresov
9faab400b8 8272330: C2: Cleanup profile counter scaling
Reviewed-by: kvn
2021-08-11 20:19:36 +00:00
Igor Ignatyev
75a06421e5 8272335: runtime/cds/appcds/MoveJDKTest.java doesn't check exit codes
Reviewed-by: iklam
2021-08-11 19:38:52 +00:00
Jonathan Gibbons
9ba8a12cfb 8269774: doclint reports missing javadoc comments for JavaFX properties if the docs are on the property method
Reviewed-by: kcr, hannesw
2021-08-11 18:04:29 +00:00
Jonathan Gibbons
ec8d3badc8 8271159: [REDO] JDK-8249634 doclint should report implicit constructor as missing javadoc comments
Reviewed-by: darcy
2021-08-11 18:03:40 +00:00
Ivan Walulya
619422764d 8272228: G1: G1CardSetInlinePtr Fix tautological assertion
Reviewed-by: ayang, tschatzl
2021-08-11 14:33:23 +00:00
Ivan Walulya
cd1751c34e 8271884: G1CH::_expand_heap_after_alloc_failure is no longer needed
Reviewed-by: kbarrett, tschatzl
2021-08-11 11:56:30 +00:00
Per Liden
3f723ca457 8271862: C2 intrinsic for Reference.refersTo() is often not used
Reviewed-by: kbarrett, mchung
2021-08-11 11:09:59 +00:00
Per Liden
abebbe2335 8267186: Add string deduplication support to ZGC
Reviewed-by: eosterlund, kbarrett, stefank
2021-08-11 11:07:12 +00:00
Albert Mingkun Yang
0d0f2d07f7 8272216: G1: replace G1ParScanThreadState::_dest with a constant
Reviewed-by: kbarrett, tschatzl
2021-08-11 10:19:46 +00:00
Jan Lahoda
3215dbc8b8 8271928: ErroneousTree with start position -1
Reviewed-by: jlaskey, vromero
2021-08-11 08:54:20 +00:00
Christoph Göttschkes
adba09b91d 8272146: Disable Fibonacci test on memory constrained systems
Reviewed-by: dholmes, mseledtsov, shade
2021-08-11 08:48:18 +00:00
Xiaowei Lu
846cc88f94 8272138: ZGC: Adopt relaxed ordering for self-healing
Co-authored-by: Hao Tang <albert.th@alibaba-inc.com>
Reviewed-by: eosterlund, pliden
2021-08-11 08:42:37 +00:00
Hui Shi
5350b9901c 8272131: PhaseMacroExpand::generate_slow_arraycopy crash when clone null CallProjections.fallthrough_ioproj
Reviewed-by: neliasso, xliu, thartmann
2021-08-11 02:00:19 +00:00
Sergey Bylokhov
148935279d 8271718: Crash when during color transformation the color profile is replaced
Reviewed-by: prr
2021-08-10 22:22:42 +00:00
Dean Long
2a9acc31b8 8272050: typo in MachSpillCopyNode::implementation after JDK-8131362
Reviewed-by: kvn, thartmann
2021-08-10 21:30:54 +00:00
Alex Menkov
b62e742045 8213714: AttachingConnector/attach/attach001 failed due to "bind failed: Address already in use"
Reviewed-by: sspitsyn, cjplummer
2021-08-10 19:13:18 +00:00
Raffaello Giulietti
66d1faa784 8271601: Math.floorMod(int, int) and Math.floorMod(long, long) differ in their logic
Reviewed-by: bpb
2021-08-10 17:16:17 +00:00
Joe Darcy
57ae9fbe77 8140442: Add getOutermostTypeElement to javax.lang.model utility class
Reviewed-by: jlahoda
2021-08-10 16:49:49 +00:00
Martin Balao
67869b491a 8270137: Kerberos Credential Retrieval from Cache not Working in Cross-Realm Setup
Reviewed-by: weijun
2021-08-10 16:28:10 +00:00
Andrey Turbanov
35b399aca8 8269130: Replace usages of Collection.toArray() with Collection.toArray(T[]) to avoid redundant array copying
Reviewed-by: mullan, serb
2021-08-10 13:27:59 +00:00
Harold Seigel
2b05fae155 8260262: Use common code in function unmap_shared() in perfMemory_posix.cpp
Reviewed-by: stuefe, coleenp
2021-08-10 12:17:08 +00:00
Albert Mingkun Yang
f2599ad867 8272196: Remove unused class ParStrongRootsScope
Reviewed-by: tschatzl, pliden
2021-08-10 10:12:06 +00:00
Alan Hayward
1f8813495e 8271869: AArch64: build errors with GCC11 in frame::saved_oop_result
Reviewed-by: ngasson, aph
2021-08-10 08:29:52 +00:00
Matthias Baesken
089e83bf1b 8266490: Extend the OSContainer API to support the pids controller of cgroups
Reviewed-by: sgehwolf, lucy
2021-08-10 07:40:21 +00:00
Tobias Hartmann
2384e12888 8270098: ZGC: ZBarrierSetC2::clone_at_expansion fails with "Guard against surprises" assert
Reviewed-by: neliasso, kvn
2021-08-10 05:37:55 +00:00
Tobias Hartmann
d53d94b14d 8271925: ZGC: Arraycopy stub passes invalid oop to load barrier
Reviewed-by: neliasso, kvn
2021-08-10 05:36:52 +00:00
Igor Ignatyev
3b899ef7ff 8272168: some hotspot runtime/logging tests don't check exit code
Reviewed-by: jiefu
2021-08-10 05:11:09 +00:00
Hamlin Li
abdc1074dc 8270454: G1: Simplify region index comparison
Reviewed-by: kbarrett, ayang, tschatzl
2021-08-10 03:18:47 +00:00
Igor Ignatyev
eb6f3fe59d 8272169: runtime/logging/LoaderConstraintsTest.java doesn't build test.Empty
Reviewed-by: dholmes
2021-08-10 02:26:08 +00:00
Igor Ignatyev
9654fd73cd 8271892: mark hotspot runtime/PrintStringTableStats/PrintStringTableStatsTest.java test as ignoring external VM flags
Reviewed-by: dholmes
2021-08-10 02:12:38 +00:00
David Holmes
843943c204 8263567: gtests don't terminate the VM safely
Reviewed-by: stuefe, dcubed
2021-08-09 20:59:22 +00:00
Joe Darcy
7fc99cf9b6 8225488: Examine ExecutableType.getReceiverType behavior when source receiver parameter is absent
Reviewed-by: jjg
2021-08-09 18:33:34 +00:00
Phil Race
4548677e89 8268824: Remove unused jdk.accessibility APIs deprecated for removal in JDK 9
Reviewed-by: serb
2021-08-09 18:15:46 +00:00
Brian Burkhalter
b53828b7c2 8272047: java/nio/channels/FileChannel/Transfer2GPlus.java failed with Unexpected transfer size: 2147418112
Reviewed-by: naoto, alanb
2021-08-09 16:50:50 +00:00
Naoto Sato
41dc795d6c 8264792: The NumberFormat for locale sq_XK formats price incorrectly.
Reviewed-by: joehw, iris
2021-08-09 16:22:35 +00:00
Artem Semenov
9c6457f222 8267385: Create NSAccessibilityElement implementation for JavaComponentAccessibility
8262031: Create implementation for NSAccessibilityNavigableStaticText protocol
8264287: Create implementation for NSAccessibilityComboBox protocol peer
8264303: Create implementation for NSAccessibilityTabGroup protocol peer
8264292: Create implementation for NSAccessibilityList protocol peer
8267387: Create implementation for NSAccessibilityOutline protocol
8267388: Create implementation for NSAccessibilityTable protocol
8264286: Create implementation for NSAccessibilityColumn protocol peer
8264298: Create implementation for NSAccessibilityRow protocol peer
8264291: Create implementation for NSAccessibilityCell protocol peer

Reviewed-by: kizune, pbansal, serb
2021-08-09 16:21:35 +00:00
Phil Race
0ac2be9b35 8272123: Problem list 4 jtreg tests which regularly fail on macos-aarch64
Reviewed-by: jdv, psadhukhan
2021-08-09 15:58:18 +00:00
Ioi Lam
272fcb423a 8272113: Build compare script fails with differences in classlist
Reviewed-by: tschatzl, hseigel
2021-08-09 15:50:10 +00:00
Albert Mingkun Yang
2f7a46934c 8271931: Make AbortVMOnVMOperationTimeout more resilient to OS scheduling
Reviewed-by: shade, dholmes
2021-08-09 15:19:55 +00:00
Roman Kennke
a86ac0d1e3 8271939: Clean up primitive raw accessors in oopDesc
Reviewed-by: stefank, tschatzl
2021-08-09 10:31:31 +00:00
Hao Sun
b84a9c7b37 8271956: AArch64: C1 build failed after JDK-8270947
Reviewed-by: shade, ngasson
2021-08-09 09:38:13 +00:00
Jie Fu
38ff85c824 8271461: CompileCommand support for hidden class methods
Co-authored-by: Tianyelan <vhinf2047@gmail.com>
Reviewed-by: yyang, xliu, iklam
2021-08-06 23:33:32 +00:00
Igor Ignatyev
c495ede2c2 8272099: mark hotspot runtime/Monitor tests which ignore external VM flags
Reviewed-by: dcubed
2021-08-06 18:49:48 +00:00
Igor Ignatyev
e882087f7a 8271904: mark hotspot runtime/ClassFile tests which ignore external VM flags
Reviewed-by: dholmes
2021-08-06 16:36:50 +00:00
Daniel D. Daugherty
fa36e33437 8271513: support JavaThreadIteratorWithHandle replacement by new ThreadsList::Iterator
Co-authored-by: Kim Barrett <kbarrett@openjdk.org>
Reviewed-by: kbarrett, dholmes, coleenp
2021-08-06 14:18:54 +00:00
Hamlin Li
cc61520803 8270842: G1: Only young regions need to redirty outside references in remset.
Reviewed-by: tschatzl
2021-08-06 14:16:11 +00:00
Daniel D. Daugherty
f4cf2f7cef 8272095: ProblemList java/nio/channels/FileChannel/Transfer2GPlus.java on linux-aarch64
Reviewed-by: alanb
2021-08-06 13:38:56 +00:00
Andy Herrick
0aca4f72ce 8271868: Warn user when using mac-sign option with unsigned app-image.
Reviewed-by: almatvee, asemenyuk
2021-08-06 12:24:58 +00:00
Christoph Göttschkes
b6a19f173b 8271128: InlineIntrinsics support for 32-bit ARM
Reviewed-by: shade
2021-08-06 10:23:18 +00:00
Albert Mingkun Yang
c2b7facea4 8271896: Remove unnecessary top address checks in BOT
Reviewed-by: tschatzl, iwalulya
2021-08-06 08:27:42 +00:00
Ioi Lam
e7b6f48182 8265602: -XX:DumpLoadedClassList should support custom loaders
Reviewed-by: ccheung, minqi
2021-08-06 05:58:48 +00:00
David Holmes
ea02dade43 8272067: Initial nroff manpage generation for JDK 18
Reviewed-by: darcy
2021-08-06 03:49:34 +00:00
Denghui Dong
adb0ae56ab 8261441: JFR: Filename expansion
Reviewed-by: jbachorik, egahlin
2021-08-06 02:11:55 +00:00
Jaikiran Pai
e38e365c70 8271208: Typo in ModuleDescriptor.read javadoc
Reviewed-by: alanb, iris
2021-08-06 01:30:45 +00:00
Jesper Wilhelmsson
14692d5ed0 Merge 2021-08-06 01:21:44 +00:00
Jonathan Gibbons
dfacda488b 8270872: Final nroff manpage update for JDK 17
Reviewed-by: darcy, mr, iris, naoto
2021-08-05 22:12:27 +00:00
Patricio Chilano Mateo
62e72adfa7 8271293: Monitor class should use ThreadBlockInVMPreprocess
Reviewed-by: dholmes, dcubed
2021-08-05 19:16:14 +00:00
Rajat Mahajan
cb36880281 8270116: Expand ButtonGroupLayoutTraversalTest.java to run in all LaFs, including Aqua on macOS
Reviewed-by: psadhukhan, aivanov
2021-08-05 17:41:33 +00:00
Igor Ignatyev
3ab95d1917 8271905: mark hotspot runtime/Metaspace tests which ignore external VM flags
Reviewed-by: stuefe
2021-08-05 16:32:11 +00:00
Brian Burkhalter
e2c5bfe083 8271308: (fc) FileChannel.transferTo() transfers no more than Integer.MAX_VALUE bytes in one call
Reviewed-by: alanb, vtewari
2021-08-05 16:10:04 +00:00
Daniel D. Daugherty
7234a433f8 8271953: fix mis-merge in JDK-8271878
Reviewed-by: jwilhelm, ctornqvi
2021-08-05 14:55:54 +00:00
Sergey Tsypanov
d7fc9e4171 8267840: Improve URLStreamHandler.parseURL()
Reviewed-by: dfuchs, redestad
2021-08-05 14:55:00 +00:00
Claes Redestad
55bd52a142 8271840: Add simple Integer.toString microbenchmarks
Reviewed-by: shade
2021-08-05 14:46:38 +00:00
Per Liden
18dd4d469d 8271121: ZGC: stack overflow (segv) when -Xlog:gc+start=debug
Reviewed-by: ayang, eosterlund
2021-08-05 12:40:40 +00:00
Julia Boes
685fc3c677 8270903: sun.net.httpserver.HttpConnection: Improve toString
Reviewed-by: chegar, vtewari
2021-08-05 09:42:16 +00:00
Markus Grönlund
90f85ff70f 8271588: JFR Recorder Thread crashed with SIGSEGV in write_klass
Reviewed-by: egahlin
2021-08-05 09:13:26 +00:00
Richard Reingruber
4abe531140 8271722: [TESTBUG] gc/g1/TestMixedGCLiveThreshold.java can fail if G1 Full GC uses >1 workers
Reviewed-by: ayang, tschatzl
2021-08-05 07:31:14 +00:00
Yi Yang
ea9a59520d 8270058: Use Objects.check{Index,FromIndexSize} for java.desktop
Reviewed-by: psadhukhan, pbansal, jdv
2021-08-05 06:39:20 +00:00
Prasanta Sadhukhan
64d18d45ef 4819544: SwingSet2 JTable Demo throws NullPointerException
Reviewed-by: pbansal, aivanov
2021-08-05 04:56:46 +00:00
Jesper Wilhelmsson
6c8441f075 8271878: UnProblemList jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java in JDK18
Reviewed-by: dholmes
2021-08-05 01:42:32 +00:00
Jesper Wilhelmsson
7728423f8a 8271895: UnProblemList javax/swing/JComponent/7154030/bug7154030.java in JDK18
Reviewed-by: dholmes
2021-08-05 01:41:55 +00:00
Jesper Wilhelmsson
cd6b54ec40 Merge 2021-08-05 01:02:20 +00:00
Daniel D. Daugherty
f312f28b8b 8271863: ProblemList serviceability/sa/TestJmapCore.java on linux-x64 with ZGC
Backport-of: a007cb1a1d
2021-08-05 01:00:35 +00:00
Yasumasa Suenaga
a007cb1a1d 8271863: ProblemList serviceability/sa/TestJmapCore.java on linux-x64 with ZGC
Reviewed-by: dcubed
2021-08-04 23:42:43 +00:00
Daniel D. Daugherty
d62fbea7b4 8271898: disable os.release_multi_mappings_vm on macOS-X64
Reviewed-by: kbarrett
2021-08-04 21:06:23 +00:00
Igor Ignatyev
359c7084a1 8271893: mark hotspot runtime/PerfMemDestroy/PerfMemDestroy.java test as ignoring external VM flags
Reviewed-by: coleenp
2021-08-04 19:50:36 +00:00
Igor Ignatyev
a3b0143970 8271887: mark hotspot runtime/CDSCompressedKPtrs tests which ignore external VM flags
Reviewed-by: coleenp
2021-08-04 19:49:47 +00:00
Igor Ignatyev
6c17e6deb2 8271891: mark hotspot runtime/Safepoint tests which ignore external VM flags
Reviewed-by: coleenp
2021-08-04 19:46:13 +00:00
Igor Ignatyev
ff7431eafe 8271886: mark hotspot runtime/InvocationTests tests which ignore external VM flags
Reviewed-by: coleenp
2021-08-04 19:40:05 +00:00
Igor Ignatyev
cdf3d55c82 8271890: mark hotspot runtime/Dictionary tests which ignore external VM flags
Reviewed-by: coleenp
2021-08-04 19:39:12 +00:00
Daniel D. Daugherty
cebcc07b1b 8271894: ProblemList javax/swing/JComponent/7154030/bug7154030.java in JDK17
Reviewed-by: darcy
2021-08-04 19:23:25 +00:00
Joe Darcy
91bbe2fcbd 8271888: build error after JDK-8271599
Reviewed-by: psandoz, bpb
2021-08-04 18:48:53 +00:00
Sergey Bylokhov
6b55ef3b58 8271456: Avoid looking up standard charsets in "java.desktop" module
Reviewed-by: jdv, azvegint, aivanov
2021-08-04 18:44:18 +00:00
Jatin Bhateja
392fcc9df7 8271589: fatal error with variable shift count integer rotate operation.
Reviewed-by: kvn, sviswanathan
2021-08-04 17:49:17 +00:00
Raffaello Giulietti
9f1edafac4 8271599: Javadoc of floorDiv() and floorMod() families is inaccurate in some places
Reviewed-by: darcy, bpb
2021-08-04 17:16:40 +00:00
Daniel D. Daugherty
5f547e8c11 8271877: ProblemList jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java in JDK17
Reviewed-by: darcy
2021-08-04 16:43:31 +00:00
Kim Barrett
452f7d764f 8271217: Fix race between G1PeriodicGCTask checks and GC request
Reviewed-by: iwalulya, tschatzl, lkorinth
2021-08-04 15:04:55 +00:00
Weijun Wang
221e4b9c61 8270797: ShortECDSA.java test is not complete
Reviewed-by: mullan
2021-08-04 13:37:52 +00:00
Ivan Walulya
0a27f264da 8265057: G1: Investigate removal of maintenance of two BOT thresholds
Reviewed-by: ayang, tschatzl
2021-08-04 13:04:39 +00:00
Thomas Stuefe
eec64f5587 8256844: Make NMT late-initializable
Reviewed-by: coleenp, zgu
2021-08-04 12:19:02 +00:00
Prasanta Sadhukhan
4df1bc4bc6 6350025: API documentation for JOptionPane using deprecated methods.
Reviewed-by: jdv
2021-08-04 11:38:07 +00:00
Erik Österlund
181483b90b 8271064: ZGC several jvm08 perf regressions after JDK-8268372
Reviewed-by: ayang, pliden, tschatzl
2021-08-04 10:28:47 +00:00
Jayathirth D V
efcdcc7fb7 8270893: IndexOutOfBoundsException while reading large TIFF file
Reviewed-by: prr, serb
2021-08-04 09:16:35 +00:00
Jie Fu
977b8c4e16 8271836: runtime/ErrorHandling/ClassPathEnvVar.java fails with release VMs
Reviewed-by: stuefe
2021-08-04 07:25:36 +00:00
Xubo Zhang
04134fcdaa 8264543: Cross modify fence optimization for x86
Reviewed-by: dholmes, tschatzl, sviswanathan
2021-08-04 05:43:58 +00:00
Igor Ignatyev
9e769090a0 8271824: mark hotspot runtime/CompressedOops tests which ignore external VM flags
Reviewed-by: dholmes
2021-08-04 05:19:33 +00:00
Igor Ignatyev
e49b7d958c 8271828: mark hotspot runtime/classFileParserBug tests which ignore external VM flags
Reviewed-by: dholmes
2021-08-04 05:18:10 +00:00
Igor Ignatyev
68f784778c 8271825: mark hotspot runtime/LoadClass tests which ignore external VM flags
Reviewed-by: dholmes
2021-08-04 05:17:14 +00:00
Igor Ignatyev
3d40cac8ce 8271821: mark hotspot runtime/MinimalVM tests which ignore external VM flags
Reviewed-by: dholmes
2021-08-04 05:16:22 +00:00
Igor Ignatyev
33ec3a4d95 8271744: mark hotspot runtime/getSysPackage tests which ignore external VM flags
Reviewed-by: dholmes
2021-08-04 04:53:20 +00:00
Igor Ignatyev
b48f31d381 8271743: mark hotspot runtime/jni tests which ignore external VM flags
Reviewed-by: dholmes
2021-08-04 04:51:46 +00:00
Thomas Stuefe
66c653c561 8271721: Split gc/g1/TestMixedGCLiveThreshold into separate tests
Reviewed-by: tschatzl, rrich
2021-08-04 04:11:12 +00:00
Igor Ignatyev
68dd828088 8271224: runtime/EnclosingMethodAttr/EnclMethodAttr.java doesn't check exit code
Reviewed-by: mseledtsov, dholmes
2021-08-04 02:22:07 +00:00
Igor Ignatyev
34ba70a71b 8269037: jsig/Testjsig.java doesn't have to be restricted to linux only
Reviewed-by: mseledtsov, dholmes
2021-08-04 02:19:01 +00:00
David Holmes
7e518f42c9 8269934: RunThese24H.java failed with EXCEPTION_ACCESS_VIOLATION in java_lang_Thread::get_thread_status
Reviewed-by: stuefe, dcubed, sspitsyn
2021-08-04 02:08:30 +00:00
Igor Ignatyev
659498a07f 8271829: mark hotspot runtime/Throwable tests which ignore external VM flags
Reviewed-by: jiefu
2021-08-04 01:59:33 +00:00
Igor Ignatyev
d3b40cb683 8271826: mark hotspot runtime/condy tests which ignore external VM flags
Reviewed-by: jiefu
2021-08-04 01:49:11 +00:00
Calvin Cheung
3435d299f7 8271003: hs_err improvement: handle CLASSPATH env setting longer than O_BUFLEN
Reviewed-by: dholmes, stuefe, iklam, minqi
2021-08-04 01:38:18 +00:00
Denghui Dong
43a6ba9677 8271726: JFR: should use equal() to check event fields in tests
Reviewed-by: egahlin
2021-08-04 01:35:26 +00:00
Weijun Wang
a8408708b0 8271616: oddPart in MutableBigInteger::mutableModInverse contains info on final result
Reviewed-by: bpb, darcy, valeriep
2021-08-04 00:02:59 +00:00
Andy Herrick
0199b03eb3 8271344: Windows product version issue
Reviewed-by: asemenyuk, almatvee
2021-08-03 18:51:23 +00:00
Joe Darcy
6594d3a3ef 8271711: Remove WorkArounds.isSynthetic
Reviewed-by: jjg
2021-08-03 18:13:17 +00:00
Coleen Phillimore
f15d6cbcaf 8271506: Add ResourceHashtable support for deleting selected entries
Reviewed-by: iklam, stuefe
2021-08-03 17:20:25 +00:00
Xiaowei Lu
bdb50cab79 8270347: ZGC: Adopt release-acquire ordering for forwarding table access
Co-authored-by: Hao Tang <albert.th@alibaba-inc.com>
Reviewed-by: eosterlund, pliden
2021-08-03 12:23:14 +00:00
Albert Mingkun Yang
b217a6ca0f 8271609: Misleading message for AbortVMOnVMOperationTimeoutDelay
Reviewed-by: dholmes
2021-08-03 11:43:41 +00:00
Jesper Wilhelmsson
c8add223a1 Merge
Reviewed-by: mikael
2021-08-03 01:01:25 +00:00
Yumin Qi
84f0231031 8271419: Refactor test code for modifying CDS archive contents
Reviewed-by: iklam, ccheung
2021-08-02 23:07:43 +00:00
Claes Redestad
0b9539405d 8271624: Avoid unnecessary ThreadGroup.checkAccess calls when creating Threads
Reviewed-by: rriggs
2021-08-02 22:59:48 +00:00
Claes Redestad
e621cffa4f 8271627: Use local field access in favor of Class.getClassLoader0
Reviewed-by: mchung
2021-08-02 22:37:56 +00:00
Igor Ignatyev
ada58d13f7 8067223: [TESTBUG] Rename Whitebox API package
Reviewed-by: dholmes, kvn
2021-08-02 20:44:18 +00:00
Saravana Kumar Vijayasekaran
f8fb571307 8271150: Remove EA from JDK 17 version string starting with Initial RC promotion on Aug 5, 2021(B34)
Reviewed-by: iris, mikael
2021-08-02 18:42:41 +00:00
Daniel D. Daugherty
0a85236396 8193559: ugly DO_JAVA_THREADS macro should be replaced
Co-authored-by: Kim Barrett <kbarrett@openjdk.org>
Reviewed-by: eosterlund, ayang, kbarrett, dholmes
2021-08-02 16:01:27 +00:00
Daniel D. Daugherty
db950ca41f 8271348: Add stronger sanity check of thread state when polling for safepoint/handshakes
Co-authored-by: Patricio Chilano Mateo <pchilanomate@openjdk.org>
Reviewed-by: dholmes, pchilanomate
2021-08-02 16:00:13 +00:00
Lance Andersen
3e3051e2ee 8251329: (zipfs) Files.walkFileTree walks infinitely if zip has dir named "." inside
Reviewed-by: alanb, naoto
2021-08-02 15:47:16 +00:00
Claes Redestad
7a4c754e5d 8271611: Use SecurityConstants.ACCESS_PERMISSION in MethodHandles
Reviewed-by: rriggs
2021-08-02 15:34:56 +00:00
Aleksey Shipilev
e74537f924 8271605: Update JMH devkit to 1.32
Reviewed-by: redestad, ecaspole
2021-08-02 15:05:57 +00:00
Sergey Tsypanov
249d641889 8263561: Re-examine uses of LinkedList
Reviewed-by: redestad
2021-08-02 12:50:38 +00:00
Sergey Tsypanov
6a3f8343bc 8268113: Re-use Long.hashCode() where possible
Reviewed-by: redestad
2021-08-02 12:49:41 +00:00
Sergey Tsypanov
2536e4342e 8270160: Remove redundant bounds check from AbstractStringBuilder.charAt()
Reviewed-by: redestad
2021-08-02 12:48:35 +00:00
Sergey Tsypanov
6c4c48faea 8266972: Use String.concat() in j.l.Class where invokedynamic-based String concatenation is not available
Reviewed-by: redestad
2021-08-02 12:47:09 +00:00
Sergey Tsypanov
72145f3b94 8269665: Clean-up toString() methods of some primitive wrappers
Reviewed-by: redestad
2021-08-02 12:46:00 +00:00
Jesper Wilhelmsson
7cc1eb3e57 Merge 2021-07-30 22:30:23 +00:00
Rajan Halade
4bc9b04984 8263059: security/infra/java/security/cert/CertPathValidator/certification/ComodoCA.java fails due to revoked cert
Reviewed-by: mullan
2021-07-30 20:29:18 +00:00
Rajan Halade
d6bb846159 8248899: security/infra/java/security/cert/CertPathValidator/certification/QuoVadisCA.java fails, Certificate has been revoked
Reviewed-by: mullan
2021-07-30 20:16:32 +00:00
Jatin Bhateja
71ca0c08f0 8270848: Redundant unsafe opmask register allocation in some instruction patterns.
Reviewed-by: sviswanathan, kvn
2021-07-30 18:28:30 +00:00
Andrew Haley
6c68ce2d39 8270947: AArch64: C1: use zero_words to initialize all objects
Reviewed-by: ngasson, adinn
2021-07-30 18:02:11 +00:00
Thomas Stuefe
cd7e30ef84 8271242: Add Arena regression tests
Reviewed-by: mseledtsov, coleenp
2021-07-30 16:42:40 +00:00
Sergey Chernyshev
5b3c418249 8270321: Startup regressions in 18-b5 caused by JDK-8266310
Reviewed-by: mchung, alanb
2021-07-30 16:10:25 +00:00
Prasanta Sadhukhan
baf7797b09 8049301: Suspicious use of string identity checks in JComponent.setUIProperty
Reviewed-by: azvegint
2021-07-30 15:37:30 +00:00
Sean Mullan
89f5c96d63 8232066: Remove outdated code/methods from PKIX implementation
Reviewed-by: weijun
2021-07-30 12:43:20 +00:00
Christian Hagedorn
9856ace828 8268963: [IR Framework] Some default regexes matching on PrintOptoAssembly in IRNode.java do not work on all platforms
Reviewed-by: kvn, thartmann
2021-07-30 12:28:57 +00:00
Jan Lahoda
b59418f47d 8270060: (jdeprscan) tools/jdeprscan/tests/jdk/jdeprscan/TestRelease.java failed with class file for jdk.internal.util.random.RandomSupport not found
Reviewed-by: sundar, vromero, darcy
2021-07-30 07:58:51 +00:00
Roland Westrelin
e351de3bd6 8271272: C2: assert(!had_error) failed: bad dominance
Reviewed-by: kvn, thartmann, chagedorn
2021-07-30 07:28:04 +00:00
David Holmes
4f42eb6601 8269523: runtime/Safepoint/TestAbortOnVMOperationTimeout.java failed when expecting 'VM operation took too long'
Reviewed-by: shade, mseledtsov
2021-07-30 04:03:11 +00:00
Chris Plummer
6180cf1f0d 8271512: ProblemList serviceability/sa/sadebugd/DebugdConnectTest.java due to 8270326
Reviewed-by: dcubed
2021-07-30 01:01:52 +00:00
Chris Plummer
77fbd99f79 8270341: Test serviceability/dcmd/gc/HeapDumpAllTest.java timed-out
Reviewed-by: dcubed
2021-07-30 00:57:53 +00:00
Chris Plummer
a1b5b818c5 8271507: ProblemList SA tests that are failing with ZGC due to JDK-8248912
Reviewed-by: dcubed
2021-07-30 00:56:55 +00:00
Jesper Wilhelmsson
048fb2cb17 Merge 2021-07-29 21:49:16 +00:00
Roger Riggs
286d313635 8271489: (doc) Clarify Filter Factory example
Reviewed-by: iris, kcr, naoto, bpb
2021-07-29 20:22:02 +00:00
Emmanuel Bourg
d09b028407 8271396: Spelling errors
Reviewed-by: tschatzl, chegar, iris, psadhukhan, cjplummer
2021-07-29 16:03:31 +00:00
Christian Hagedorn
489e5fd12a 8268019: C2: assert(no_dead_loop) failed: dead loop detected
Reviewed-by: kvn, thartmann
2021-07-29 09:31:22 +00:00
Roland Westrelin
6afcf5f5a2 8270886: Crash in PhaseIdealLoop::verify_strip_mined_scheduling
Reviewed-by: kvn, thartmann
2021-07-29 07:34:20 +00:00
Jesper Wilhelmsson
a0504cff9f Merge 2021-07-29 01:07:57 +00:00
Rajan Halade
2ec45dc2dd 8225082: Remove IdenTrust certificate that is expiring in September 2021
Reviewed-by: shade, mullan
2021-07-29 00:22:09 +00:00
bobpengxie
25f00d787c 8269851: OperatingSystemMXBean getProcessCpuLoad reports incorrect process cpu usage in containers
Co-authored-by: Severin Gehwolf <sgehwolf@openjdk.org>
Reviewed-by: sgehwolf
2021-07-28 23:12:44 +00:00
Igor Ignatyev
20d2dc1f35 8271403: mark hotspot runtime/memory tests which ignore external VM flags
Reviewed-by: dholmes
2021-07-28 23:12:03 +00:00
Igor Ignatyev
e593e3de4c 8271402: mark hotspot runtime/os tests which ignore external VM flags
Reviewed-by: dholmes
2021-07-28 23:11:11 +00:00
Xin Liu
41b4c19086 8271353: PerfDataManager::destroy crashes in VM_Exit
Reviewed-by: dholmes, stuefe, minqi
2021-07-28 23:07:42 +00:00
Ioi Lam
357947acd8 8270061: Change parameter order of ResourceHashtable
Reviewed-by: coleenp, stuefe
2021-07-28 20:39:16 +00:00
Daniel D. Daugherty
7bf72ce301 8271412: ProblemList javax/sound/midi/Sequencer/Looping.java
8271413: ProblemList 2 locale tests on macOS-x64

Reviewed-by: naoto
2021-07-28 18:52:55 +00:00
Dean Long
034788a02c 8270925: replay dump using CICrashAt does not include inlining data
Reviewed-by: kvn, thartmann
2021-07-28 18:50:21 +00:00
Fernando Guallini
9711033780 8209776: Refactor jdk/security/JavaDotSecurity/ifdefs.sh to plain java test
Reviewed-by: rhalade
2021-07-28 18:29:55 +00:00
Liam Miller-Cushon
60c11fef00 8261088: Repeatable annotations without @Target cannot have containers that target module declarations
Reviewed-by: jfranck
2021-07-28 18:21:19 +00:00
Patricio Chilano Mateo
6878b05f8f 8271251: JavaThread::java_suspend() fails with "fatal error: Illegal threadstate encountered: 6"
Reviewed-by: dholmes, dcubed
2021-07-28 16:59:21 +00:00
Prasanta Sadhukhan
dcdb1b6aaa 8137101: [TEST_BUG] javax/swing/plaf/basic/BasicHTML/4251579/bug4251579.java failure due to timing
Reviewed-by: azvegint
2021-07-28 16:12:47 +00:00
Igor Ignatyev
c8ae7e5b03 8271174: runtime/ClassFile/UnsupportedClassFileVersion.java can be run in driver mode
Reviewed-by: mseledtsov, dholmes
2021-07-28 15:38:26 +00:00
Kim Barrett
5fcf72086f 8271352: Extend jcc erratum mitigation to additional processors
Reviewed-by: thartmann, eosterlund
2021-07-28 15:31:14 +00:00
Christoph Göttschkes
6e1da6440b 8270908: TestParallelRefProc fails on single core machines
Reviewed-by: tschatzl, kbarrett
2021-07-28 14:49:02 +00:00
Christoph Göttschkes
a066c7bed0 8270086: ARM32-softfp: Do not load CONSTANT_double using the condy helper methods in the interpreter
Reviewed-by: shade
2021-07-28 13:18:19 +00:00
Yi Yang
072fe486c9 8270901: Typo PHASE_CPP in CompilerPhaseType
Reviewed-by: jiefu
2021-07-28 08:03:29 +00:00
Vladimir Kozlov
d7b5cb6889 8271368: [BACKOUT] JDK-8266054 VectorAPI rotate operation optimization
Reviewed-by: dholmes, iklam
2021-07-28 06:58:36 +00:00
Tejpal Rebari
ecd445562f 8266510: Nimbus JTree default tree cell renderer does not use selected text color
Reviewed-by: psadhukhan, pbansal
2021-07-28 04:29:27 +00:00
Jatin Bhateja
d994b93e21 8266054: VectorAPI rotate operation optimization
Reviewed-by: psandoz, sviswanathan
2021-07-28 02:18:17 +00:00
Yi Yang
ed1cb24027 8271118: C2: StressGCM should have higher priority than frequency-based policy
Reviewed-by: iveresov, kvn
2021-07-28 02:17:30 +00:00
Nick Gasson
9bc52afa48 8271323: [TESTBUG] serviceability/sa/ClhsdbCDSCore.java fails with -XX:TieredStopAtLevel=1
Reviewed-by: cjplummer, kvn
2021-07-28 01:58:02 +00:00
Nick Gasson
752b6df34c 8261236: C2: ClhsdbJstackXcompStress test fails when StressGCM is enabled
Reviewed-by: never, kvn
2021-07-28 01:54:33 +00:00
Jesper Wilhelmsson
a50161b750 Merge 2021-07-28 00:36:16 +00:00
Igor Ignatyev
f1e15c8c8f 8271350: runtime/Safepoint tests use OutputAnalyzer::shouldMatch instead of shouldContaint
Reviewed-by: mseledtsov, dholmes
2021-07-27 23:20:19 +00:00
Hannes Wallnöfer
fbe28e4ee1 8270866: NPE in DocTreePath.getTreePath()
Reviewed-by: jjg
2021-07-27 19:28:54 +00:00
Weijun Wang
90cd2fa164 8270859: Post JEP 411 refactoring: client libs with maximum covering > 10K
Reviewed-by: serb
2021-07-27 17:34:19 +00:00
Markus Grönlund
f662127390 8270491: SEGV at read_string_field(oopDesc*, char const*, JavaThread*)+0x54
Reviewed-by: egahlin
2021-07-27 17:14:04 +00:00
Bradford Wetmore
c8af8238b4 8267485: Remove the dependency on SecurityManager in JceSecurityManager.java
Reviewed-by: mchung
2021-07-27 17:11:13 +00:00
Roman Kennke
ea49691f1d 8270794: Avoid loading Klass* twice in TypeArrayKlass::oop_size()
Reviewed-by: shade, coleenp
2021-07-27 16:37:31 +00:00
Sean Mullan
fc80a6b493 8270946: X509CertImpl.getFingerprint should not return the empty String
Reviewed-by: weijun
2021-07-27 13:49:03 +00:00
Thomas Stuefe
45d277feb0 8270308: Arena::Amalloc may return misaligned address on 32-bit
Reviewed-by: coleenp, kbarrett
2021-07-27 04:21:56 +00:00
Igor Ignatyev
cea7bc2dea 8271223: two runtime/ClassFile tests don't check exit code
Reviewed-by: dholmes
2021-07-27 02:59:40 +00:00
David Holmes
fde183130b 8212961: [TESTBUG] vmTestbase/nsk/stress/jni/ native code cleanup
Reviewed-by: stuefe, iignatyev
2021-07-27 02:49:34 +00:00
Ian Graves
bb508e1303 8269753: Misplaced caret in PatternSyntaxException's detail message
Reviewed-by: prappo
2021-07-27 02:25:30 +00:00
Jaikiran Pai
c3d8e9228d 8190753: (zipfs): Accessing a large entry (> 2^31 bytes) leads to a negative initial size for ByteArrayOutputStream
Reviewed-by: lancea
2021-07-27 01:57:13 +00:00
Jesper Wilhelmsson
eb6da88817 Merge 2021-07-27 00:57:58 +00:00
Dean Long
fcc7d59b99 8269342: CICrashAt=1 does not always catch first Java method
Reviewed-by: kvn, thartmann
2021-07-26 22:09:17 +00:00
Alex Menkov
8785737ba5 8269616: serviceability/dcmd/framework/VMVersionTest.java fails with Address already in use error
Reviewed-by: sspitsyn, kevinw
2021-07-26 20:16:32 +00:00
Andreas Woess
3aadae2077 8271140: Fix native frame handling in vframeStream::asJavaVFrame()
Reviewed-by: dnsimon, kvn, never
2021-07-26 19:47:34 +00:00
Andrey Turbanov
b8f79a7ff7 8268873: Unnecessary Vector usage in java.base
Reviewed-by: mullan
2021-07-26 18:18:56 +00:00
Jim Laskey
b76a83888b 8269150: UnicodeReader not translating \u005c\\u005d to \\]
Reviewed-by: jjg, jlahoda, darcy
2021-07-26 18:04:28 +00:00
Brian Burkhalter
0b12e7c82c 8075806: divideExact is missing in java.lang.Math
Reviewed-by: darcy
2021-07-26 17:19:53 +00:00
Igor Ignatyev
7ddabbff74 8271175: runtime/jni/FindClassUtf8/FindClassUtf8.java doesn't have to be run in othervm
Reviewed-by: dholmes
2021-07-26 17:19:33 +00:00
Igor Ignatyev
3c27f91986 8271222: two runtime/Monitor tests don't check exit code
Reviewed-by: dholmes
2021-07-26 17:18:26 +00:00
Naoto Sato
efa63dc1c6 8171382: java.time.Duration missing isPositive method
Reviewed-by: rriggs, joehw, iris, bpb, scolebourne
2021-07-26 16:33:16 +00:00
Andrey Turbanov
ee5536183a 8265474: Dubious 'null' assignment in CompactByteArray.expand
Reviewed-by: alanb, naoto
2021-07-26 16:31:13 +00:00
Aleksey Shipilev
515113d858 8269924: Shenandoah: Introduce weak/strong marking asserts
Reviewed-by: rkennke
2021-07-26 14:42:14 +00:00
Kim Barrett
f2c359a882 8271215: Fix data races in G1PeriodicGCTask
Reviewed-by: iwalulya, shade
2021-07-26 14:23:47 +00:00
Christian Hagedorn
36aefa351a 8270447: [IR Framework] Add missing compilation level restriction when using FlipC1C2 stress option
Reviewed-by: kvn, thartmann
2021-07-26 07:54:22 +00:00
Xiaohong Gong
e4295ccfcd 8270519: Move several vector helper methods to shared header file
Reviewed-by: jiefu, njian
2021-07-26 04:52:10 +00:00
Clive Verghese
e627caec84 8270317: Large Allocation in CipherSuite
Reviewed-by: xuelei, simonis
2021-07-24 10:14:53 +00:00
Alexander Zvegintsev
049b2ad4df 8015886: java/awt/Focus/DeiconifiedFrameLoosesFocus/DeiconifiedFrameLoosesFocus.java sometimes failed on ubuntu
Reviewed-by: kizune, serb
2021-07-24 08:14:05 +00:00
Jesper Wilhelmsson
0dcfc42f23 Merge 2021-07-24 01:06:15 +00:00
Igor Veresov
7468bbcd64 8266988: compiler/jvmci/compilerToVM/IsMatureTest.java fails with Unexpected isMature state for multiple times invoked method: expected false to equal true
Reviewed-by: kvn
2021-07-23 22:18:51 +00:00
Coleen Phillimore
286106dd2a 8271219: [REDO] JDK-8271063 Print injected fields for InstanceKlass
Reviewed-by: dcubed, fparain
2021-07-23 20:52:45 +00:00
Ian Graves
a1c0a6aafb 8199594: Add doc describing how (?x) ignores spaces in character classes
Reviewed-by: darcy, naoto, iris, lancea, bpb
2021-07-23 19:17:02 +00:00
Vladimir Kozlov
4ed548b3ee 8268261: C2: assert(n != __null) failed: Bad immediate dominator info.
Reviewed-by: iveresov, vlivanov
2021-07-23 18:51:25 +00:00
Alexander Zuev
8adf008b15 8269984: [macos] JTabbedPane title looks like disabled
Reviewed-by: kcr, psadhukhan
2021-07-23 17:36:44 +00:00
Daniel D. Daugherty
ec71e2d891 8271221: [BACKOUT] JDK-8271063 Print injected fields for InstanceKlass
Reviewed-by: coleenp
2021-07-23 15:53:49 +00:00
Igor Ignatyev
e90ed6cc38 8271173: serviceability/jvmti/GetObjectSizeClass.java doesn't check exit code
Reviewed-by: dholmes
2021-07-23 15:53:48 +00:00
Igor Ignatyev
b4c6229fd4 8271189: runtime/handshake/HandshakeTimeoutTest.java can be run in driver mode
Reviewed-by: dholmes
2021-07-23 15:32:42 +00:00
Rajan Halade
f4b3ee5dca 8270280: security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA.java OCSP response error
Reviewed-by: mullan
2021-07-23 15:03:45 +00:00
Rajan Halade
45abbeed2f 8243543: jtreg test security/infra/java/security/cert/CertPathValidator/certification/BuypassCA.java fails
Reviewed-by: mullan
2021-07-23 14:18:55 +00:00
Pavel Rappo
c9251db175 8271209: Fix doc comment typos in JavadocTokenizer
Reviewed-by: jlaskey
2021-07-23 14:05:37 +00:00
Albert Mingkun Yang
96247ae8fb 8270187: G1: Remove ConcGCThreads constraint
Reviewed-by: kbarrett, iwalulya
2021-07-23 13:52:55 +00:00
Coleen Phillimore
9b27df6a4f 8271063: Print injected fields for InstanceKlass
Reviewed-by: fparain, hseigel, yyang
2021-07-23 12:23:12 +00:00
Kim Barrett
0cc4bb729e 8270870: Simplify G1ServiceThread
Reviewed-by: tschatzl, iwalulya
2021-07-23 12:14:45 +00:00
Thomas Schatzl
8c8e3a0df2 8271163: G1 uses wrong degree of MT processing since JDK-8270169
Reviewed-by: kbarrett, ayang
2021-07-23 11:56:52 +00:00
David Holmes
8a789b71fe 8263840: PeriodicTask should declare its destructor virtual
Reviewed-by: xliu, kbarrett
2021-07-23 11:40:19 +00:00
Roman Kennke
f22619032d 8270894: Use acquire semantics in ObjectSynchronizer::read_stable_mark()
Reviewed-by: dholmes
2021-07-23 10:42:00 +00:00
Thomas Schatzl
ea182b5c6e 8271060: Merge G1CollectedHeap::determine_start_concurrent_mark_gc and G1Policy::decide_on_conc_mark_initiation
Reviewed-by: ayang, kbarrett
2021-07-23 09:51:14 +00:00
Matthias Baesken
fb85960015 8271149: remove unreferenced functions from EncodingSupport_md.c
Reviewed-by: alanb
2021-07-23 06:38:47 +00:00
Jaikiran Pai
8156ff609b 8271147: java/nio/file/Path.java javadoc typo
Reviewed-by: iris
2021-07-23 04:06:59 +00:00
Jesper Wilhelmsson
9935440ede Merge 2021-07-23 01:41:14 +00:00
Daniel D. Daugherty
a7d30123f0 8271165: ProblemList serviceability/dcmd/gc/HeapDumpAllTest.java on X64
8271166: ProblemList applications/jcstress/copy.java on Linux-X64

Reviewed-by: darcy
2021-07-22 23:56:22 +00:00
Igor Ignatyev
e3800e6497 8271162: runtime/StackTrace/LargeClassTest.java can be run in driver mode
Reviewed-by: dholmes
2021-07-22 23:54:28 +00:00
Igor Ignatyev
ee93cef8aa 8271158: runtime/handshake/HandshakeTimeoutTest.java test doesn't check exit code
Reviewed-by: dcubed
2021-07-22 23:53:36 +00:00
Igor Ignatyev
84be910e1d 8271169: runtime/Safepoint/TestAbortVMOnSafepointTimeout.java can be run in driver mode
Reviewed-by: dholmes
2021-07-22 23:21:39 +00:00
Igor Ignatyev
2d165a2bdf 8271160: runtime/jni/checked/TestCheckedJniExceptionCheck.java doesn't set -Djava.library.path
Reviewed-by: dcubed, dholmes
2021-07-22 22:15:25 +00:00
Alexey Semenyuk
7165b3f105 8271155: Wrong path separator in env variable
Reviewed-by: herrick, kcr, iris, almatvee
2021-07-22 22:14:31 +00:00
Daniel D. Daugherty
9b93d816c1 8271161: [BACKOUT] JDK-8249634 doclint should report implicit constructor as missing javadoc comments
Reviewed-by: iignatyev
2021-07-22 21:15:20 +00:00
Brian Burkhalter
1362e09479 8211002: test/jdk/java/lang/Math/PowTests.java skips testing for non-corner-case values
Reviewed-by: darcy
2021-07-22 20:35:05 +00:00
Joe Darcy
ecc37b06f2 8270916: Update java.lang.annotation.Target for changes in JLS 9.6.4.1
Reviewed-by: bpb, naoto
2021-07-22 19:50:23 +00:00
Alexey Semenyuk
984003d5c9 8268974: GetJREPath() JLI function fails to locate libjava.so if not standard Java launcher is used
Reviewed-by: almatvee, herrick, alanb
2021-07-22 18:53:51 +00:00
Jonathan Gibbons
c1c404896c 8249634: doclint should report implicit constructor as missing javadoc comments
Reviewed-by: hannesw
2021-07-22 18:52:19 +00:00
Leonid Mesnik
09e5321763 8225313: serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorStatObjectCorrectnessTest.java failed with Unexpected high difference percentage
Reviewed-by: dholmes, kevinw
2021-07-22 18:19:16 +00:00
Leonid Mesnik
258f188bff 8270961: [TESTBUG] Move GotWrongOOMEException into vm.share.gc package
Reviewed-by: kbarrett, tschatzl
2021-07-22 18:18:14 +00:00
Leonid Mesnik
3cadc36060 8270336: [TESTBUG] Fix initialization in NonbranchyTree
Reviewed-by: kbarrett, tschatzl
2021-07-22 18:17:09 +00:00
Igor Ignatyev
4812e53791 8271094: runtime/duplAttributes/DuplAttributesTest.java doesn't check exit code
Reviewed-by: jiefu, dholmes
2021-07-22 17:14:30 +00:00
Igor Ignatyev
6a9ab6a2cf 8271093: remove deadcode from runtime/Thread/TestThreadDumpSMRInfo.java test
Reviewed-by: jiefu, dholmes, dcubed
2021-07-22 17:13:26 +00:00
Thomas Schatzl
c2ed336828 8270912: Clean up G1CollectedHeap::process_discovered_references()
Reviewed-by: iwalulya, kbarrett
2021-07-22 15:20:32 +00:00
Thomas Schatzl
8e27d4e8ce 8271043: Rename G1CollectedHeap::g1mm()
Reviewed-by: kbarrett, iwalulya
2021-07-22 14:38:28 +00:00
Patricio Chilano Mateo
e7f9009315 8270085: Suspend during block transition may deadlock if lock held
Co-authored-by: Robbin Ehn <rehn@openjdk.org>
Co-authored-by: Patricio Chilano Mateo <pchilanomate@openjdk.org>
Reviewed-by: dcubed, dholmes, coleenp
2021-07-22 14:30:19 +00:00
Daniel D. Daugherty
39b486db6d 8271126: ProblemList runtime/InvocationTests/invokevirtualTests.java
Backport-of: d1257d54f9
2021-07-22 14:04:34 +00:00
Jamsheed Mohammed C M
d1257d54f9 8271126: ProblemList runtime/InvocationTests/invokevirtualTests.java
Reviewed-by: thartmann
2021-07-22 12:04:55 +00:00
Julia Boes
50bb7313a7 8270286: com.sun.net.httpserver.spi.HttpServerProvider: remove use of deprecated API
Reviewed-by: chegar
2021-07-22 09:45:49 +00:00
Tobias Hartmann
4119a52c4b 8270461: ZGC: Invalid oop passed to ZBarrierSetRuntime::load_barrier_on_oop_array
Reviewed-by: chagedorn, kvn
2021-07-22 05:59:12 +00:00
Prasanta Sadhukhan
9131a8f5f2 8267940: [macos] java/awt/print/Dialog/DialogOwnerTest.java fails
Reviewed-by: azvegint, prr
2021-07-22 04:29:20 +00:00
Thomas Stuefe
6096dd9765 8268893: jcmd to trim the glibc heap
Reviewed-by: simonis, dholmes
2021-07-22 04:07:10 +00:00
Jesper Wilhelmsson
c36755dedf Merge 2021-07-22 00:46:18 +00:00
Jamsheed Mohammed C M
89f7998aa7 8266347: assert(Dependencies::is_concrete_root_method(fm, ctxk) == Dependencies::is_concrete_method(m, ctxk)) failed: mismatch
Reviewed-by: vlivanov, thartmann
2021-07-21 20:28:57 +00:00
Igor Veresov
e1051ae069 8264066: Enhance compiler validation
Reviewed-by: ahgross, kvn, rhalade, thartmann
2021-07-21 20:28:57 +00:00
Sean Mullan
add995be46 8265201: JarFile.getInputStream not validating invalid signed jars
Reviewed-by: pkoppula, coffeys
2021-07-21 20:28:56 +00:00
Rahul Yadav
ca6b222c97 8258432: Improve File Transfers
Reviewed-by: michaelm, aefimov, dfuchs, chegar, ahgross, rhalade
2021-07-21 20:28:56 +00:00
Jamsheed Mohammed C M
a3acce5210 8264079: Improve abstractions
Reviewed-by: vlivanov, ahgross, thartmann, rhalade
2021-07-21 20:28:56 +00:00
Joe Wang
138f59806f 8262380: Enhance XML processing passes
Reviewed-by: lancea, naoto, ahgross, rhalade
2021-07-21 20:28:56 +00:00
Conor Cleary
0e6c01163f 8262967: Improve Zip file support
Reviewed-by: ahgross, rhalade, aefimov
2021-07-21 20:28:56 +00:00
Weijun Wang
e48af0069e 8264460: Improve NTLM support
Reviewed-by: xuelei
2021-07-21 20:28:56 +00:00
Patrick Concannon
b87e526af1 8256491: Better HTTP transport
Reviewed-by: dfuchs, michaelm, rhalade, ahgross
2021-07-21 20:28:56 +00:00
Phil Race
1c8b9727b7 8262477: Enhance String Conclusions
Reviewed-by: rhalade, mschoene, psadhukhan, jdv, serb
2021-07-21 20:28:56 +00:00
Sergey Bylokhov
9accf7c894 8262403: Enhanced data transfers
Reviewed-by: rhalade, prr, vdyakov, ahgross
2021-07-21 20:28:55 +00:00
Weijun Wang
ef9315bead 8260967: Better jar file validation
Reviewed-by: hchao, valeriep
2021-07-21 20:28:55 +00:00
Hai-May Chao
fc38331f44 8260960: Signs of jarsigner signing
Reviewed-by: weijun, rhalade
2021-07-21 20:28:55 +00:00
Naoto Sato
175b65c0a1 8262410: Enhanced rules for zones
Reviewed-by: rriggs, rhalade
2021-07-21 20:28:55 +00:00
Phil Race
7b6410f213 8260453: Improve Font Bounding
Reviewed-by: rhalade, psadhukhan, mschoene, serb
2021-07-21 20:28:55 +00:00
Vicente Romero
7ad6c23c32 8256157: Improve bytecode assembly
Reviewed-by: jlahoda, rhalade, mschoene
2021-07-21 20:28:55 +00:00
Igor Ignatyev
9b177a7486 8268612: a few runtime/memory tests don't check exit code
Reviewed-by: dholmes, mseledtsov
2021-07-21 19:47:03 +00:00
Ioi Lam
0790f04d8a 8271015: Split cds/SharedBaseAddress.java test into smaller parts
Reviewed-by: ccheung, minqi
2021-07-21 19:07:07 +00:00
Ioi Lam
024c4027d8 8271014: Refactor HeapShared::is_archived_object()
Reviewed-by: ccheung, minqi
2021-07-21 18:49:19 +00:00
Mandy Chung
ddce47cd3c 8270949: Make dynamically generated classes with the class file version of the current release
Reviewed-by: alanb
2021-07-21 18:09:38 +00:00
Leonid Mesnik
b7245c6164 8269849: vmTestbase/gc/gctests/PhantomReference/phantom002/TestDescription.java failed with "OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects"
Reviewed-by: kbarrett
2021-07-21 18:07:43 +00:00
Alexander Zvegintsev
6ce52e6277 8159904: [TEST_BUG] Failure on solaris of java/awt/Window/MultiWindowApp/MultiWindowAppTest.java
Reviewed-by: prr
2021-07-21 16:29:56 +00:00
Daniel D. Daugherty
08c52fd33c 8271070: ProblemList 3 client tests on Linux-X64
Reviewed-by: prr
2021-07-21 16:13:38 +00:00
Thomas Schatzl
57611b3021 8270991: G1 Full GC always performs heap verification after JDK-8269295
Reviewed-by: iwalulya, kbarrett
2021-07-21 15:41:34 +00:00
Matthias Baesken
cd8783c08e 8270820: remove unused stiFileTableIndex from SDE.c
Reviewed-by: cjplummer, sspitsyn
2021-07-21 06:41:02 +00:00
Rado Smogura
1f51e13ea7 8270147: Increase stride size allowing unrolling more loops
Reviewed-by: kvn, iveresov
2021-07-21 05:05:13 +00:00
Ioi Lam
7dd19af259 8270803: Reduce CDS API verbosity
Reviewed-by: minqi, ccheung
2021-07-21 03:52:19 +00:00
Fernando Guallini
6346793c64 8269933: test/jdk/javax/net/ssl/compatibility/JdkInfo incorrect verification of protocol and cipher support
Reviewed-by: xuelei, rhalade
2021-07-21 03:38:40 +00:00
Jesper Wilhelmsson
1eeb1791ab Merge
Reviewed-by: jvernee
2021-07-21 00:24:17 +00:00
Jesper Wilhelmsson
61359c46a7 8270993: Missing forward declaration of ZeroFrame
Reviewed-by: kvn
2021-07-21 00:17:31 +00:00
Daniel D. Daugherty
8e8e87a765 8268223: Problemlist vmTestbase/nsk/jdi/HiddenClass/events/events001.java
Backport-of: 1e1039a7c8
2021-07-20 21:55:38 +00:00
Jorn Vernee
845c31dc4b 8269240: java/foreign/stackwalk/TestAsyncStackWalk.java test failed with concurrent GC
Reviewed-by: vlivanov, dholmes
2021-07-20 13:10:42 +00:00
Tobias Hartmann
38694aa970 8270939: ProblemList java/lang/invoke/RicochetTest.java until JDK-8251969 is fixed
Reviewed-by: chagedorn
2021-07-20 09:45:17 +00:00
Corey Ashford
754352f4c9 8270340: Base64 decodeBlock intrinsic for Power64 needs cleanup
Reviewed-by: ogatak, mdoerr
2021-07-20 08:07:11 +00:00
Yi Yang
0cec11d3eb 8270307: C2: assert(false) failed: bad AD file after JDK-8267687
Co-authored-by: Kuai Wei <kuaiwei.kw@alibaba-inc.com>
Reviewed-by: kvn, thartmann
2021-07-20 06:10:58 +00:00
David Holmes
8cd0769ef2 8270875: Deprecate the FilterSpuriousWakeups flag so it can be removed
Reviewed-by: kbarrett
2021-07-20 05:55:06 +00:00
Alexander Zuev
534f00510e 8268284: javax/swing/JComponent/7154030/bug7154030.java fails with "Exception: Failed to hide opaque button"
Reviewed-by: serb
2021-07-20 03:31:22 +00:00
Calvin Cheung
00195b85ed 8265604: Support unlinked classes in dynamic CDS archive
Reviewed-by: minqi, iklam
2021-07-20 02:06:42 +00:00
Kim Barrett
7f35e5bac9 8270869: G1ServiceThread may not terminate
Reviewed-by: ayang, tschatzl
2021-07-20 00:27:28 +00:00
Jesper Wilhelmsson
c3519c3e20 Merge 2021-07-19 23:12:55 +00:00
Joe Darcy
f644365441 8269689: Update --release 17 symbol information for JDK 17 build 31
Reviewed-by: jlahoda
2021-07-19 17:23:29 +00:00
Kim Barrett
3fc761d97d 8269032: Stringdedup tests are failing if the ergonomically select GC does not support it
Reviewed-by: tschatzl, lkorinth
2021-07-19 13:43:46 +00:00
Thomas Schatzl
a8f1542715 8270455: Remove unused JFR tracer related code in G1CollectedHeap
Reviewed-by: ayang, kbarrett
2021-07-19 09:30:06 +00:00
Roland Westrelin
c1304519b5 8269752: C2: assert(false) failed: Bad graph detected in build_loop_late
Reviewed-by: chagedorn, kvn
2021-07-19 07:31:28 +00:00
Koichi Sakata
edff55607b 8263385: IGV: Graph is not opened in the window that has focus.
Reviewed-by: rrich, chagedorn
2021-07-19 05:46:04 +00:00
David Holmes
e7cdfebbee 8270862: Fix problem list entries for 32-bit
Reviewed-by: sspitsyn
2021-07-17 07:42:14 +00:00
Ioi Lam
f8ec3b68f3 8270801: Print VM arguments with java -Xlog:arguments
Reviewed-by: dholmes, xliu, stuefe, minqi
2021-07-17 04:52:47 +00:00
Jesper Wilhelmsson
a5c9094fdb Merge 2021-07-17 02:06:19 +00:00
Phil Race
2dddcce29b 8270858: Problem List java/awt/Window/MultiWindowApp/MultiWindowAppTest.java on Linux
Reviewed-by: mikael, pbansal
2021-07-16 20:02:08 +00:00
Calvin Cheung
58f1ada271 8269636: Change outputStream's print_raw() and print_raw_cr() second parameter to size_t type
Reviewed-by: iklam, minqi
2021-07-16 19:22:49 +00:00
Christoph Langer
1350e2bd22 8270556: Exclude security/infra/java/security/cert/CertPathValidator/certification/LetsEncryptCA
Reviewed-by: mbaesken
2021-07-16 19:02:50 +00:00
Harold Seigel
67dc1c5bf3 8270837: fix typos in test TestSigParse.java
Reviewed-by: jiefu
2021-07-16 14:02:12 +00:00
Ivan Walulya
1d8d72d2c2 8270540: G1: Refactor range checking in G1BlockOffsetTablePart::block_start* to asserts
Reviewed-by: ayang, tschatzl
2021-07-16 12:00:23 +00:00
Jan Lahoda
90c219f37b 8270547: java.util.Random contains unnecessary @SuppressWarnings("exports")
Reviewed-by: darcy, bpb
2021-07-16 08:54:04 +00:00
David Holmes
4927ee426a 8270814: ProblemList the failing serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitor* tests
Reviewed-by: tschatzl, jiefu
2021-07-16 06:56:46 +00:00
Jie Fu
676d425c6b 8270459: Conflict inlining decisions by C1/C2 with the same CompileCommand
Reviewed-by: kvn, xliu
2021-07-16 05:45:25 +00:00
Alexander Zuev
eab959cbfa 8269269: [macos11] SystemIconTest fails with ClassCastException
Reviewed-by: jdv
2021-07-16 04:43:53 +00:00
David Holmes
e35005d5ce 8268773: Improvements related to: Failed to start thread - pthread_create failed (EAGAIN)
Reviewed-by: stuefe, iklam
2021-07-16 02:49:40 +00:00
Xiaohong Gong
ea77ef8348 8269725: AArch64: Add VectorMask query implementation for NEON
Reviewed-by: aph
2021-07-16 01:54:10 +00:00
Jesper Wilhelmsson
7240d67868 Merge 2021-07-16 00:51:56 +00:00
Christoph Göttschkes
bb82005a81 8270468: TestRangeCheckEliminated fails because methods are not compiled
Reviewed-by: kvn, thartmann
2021-07-15 19:53:31 +00:00
Andy Herrick
057992f206 8269387: jpackage --add-launcher should have option to not create shortcuts for additional launchers
Reviewed-by: asemenyuk, almatvee
2021-07-15 17:04:54 +00:00
Zhengyu Gu
746fe5dc68 8270366: C2: Add associative rule to add/sub node
Reviewed-by: kvn, adinn
2021-07-15 16:40:30 +00:00
William Kemper
e104dede6e 8268635: Corrupt oop in ClassLoaderData
Reviewed-by: coleenp
Backport-of: 3586a233a4
2021-07-15 16:27:30 +00:00
Jonathan Gibbons
1f995e52b2 8265888: StandardJavaFileManager::setLocationForModule specification misses 'Implementation Requirements:'
Reviewed-by: jlahoda
2021-07-15 16:06:40 +00:00
Vicente Romero
c962e6ec0b 8261006: 'super' qualified method references cannot occur in a static context
Reviewed-by: sadayapalam
2021-07-15 15:33:23 +00:00
Ivan Walulya
99d7f9a772 8264908: Investigate adding BOT range check in G1BlockOffsetTablePart::block_at_or_preceding
Reviewed-by: ayang, tschatzl
2021-07-15 08:49:23 +00:00
Ao Qi
e92e2fd4e0 8270517: Add Zero support for LoongArch
Reviewed-by: dholmes, erikj, shade
2021-07-15 08:26:05 +00:00
Thomas Schatzl
7a89ffeddd 8270014: Add scoped objects for g1 young gc verification and young gc internal timing
Reviewed-by: ayang, iwalulya, kbarrett
2021-07-15 08:12:36 +00:00
Thomas Schatzl
793d772afd 8270475: Remove unused G1STWDrainQueueClosure
Reviewed-by: iwalulya, kbarrett
2021-07-15 08:11:21 +00:00
Sibabrata Sahoo
a32d2eefea 8269276: Additional tests for MessageDigest with different providers
Reviewed-by: valeriep, wetmore
2021-07-15 05:42:55 +00:00
Ioi Lam
1ebd9469db 8270333: -XX:+VerifyStringTableAtExit should not do linear search
Reviewed-by: dholmes, minqi
2021-07-15 05:15:24 +00:00
Thejasvi Voniadka
04b73bc4e0 8269656: The test test/langtools/tools/javac/versions/Versions.java has duplicate test cycles
Reviewed-by: darcy
2021-07-15 04:52:38 +00:00
Joshua Zhu
7c23491918 8269598: Regressions up to 5% on aarch64 seems due to JDK-8268858
Reviewed-by: kvn, dlong
2021-07-15 01:57:31 +00:00
Jesper Wilhelmsson
7d0edb5743 Merge 2021-07-14 22:35:40 +00:00
Alexander Zuev
a033866d78 8269637: javax/swing/JFileChooser/FileSystemView/SystemIconTest.java fails on windows
Reviewed-by: aivanov
2021-07-14 18:25:57 +00:00
Doug Simon
14da658d1c 8270453: [JVMCI] remove duplicates in vmStructs_jvmci.cpp
Reviewed-by: kvn
2021-07-14 17:47:08 +00:00
Volker Simonis
fb86d13ec4 8270100: Fix some inaccurate GC logging
Reviewed-by: ayang, tschatzl
2021-07-14 17:39:16 +00:00
Andreas Woess
b1bb05bcf4 8269592: [JVMCI] Optimize c2v_iterateFrames
Reviewed-by: kvn, never, dlong
2021-07-14 17:32:55 +00:00
Brian Burkhalter
c0d4efff3c 6506405: Math.abs(float) is slow
Reviewed-by: darcy
2021-07-14 15:50:51 +00:00
Erik Joelsson
7b4d84c654 8270422: Test build/AbsPathsInImage.java fails after JDK-8259848
Reviewed-by: mikael
2021-07-14 13:00:57 +00:00
Jim Laskey
72db09b1f3 8266313: (JEP-356) - RandomGenerator spec implementation requirements tightly coupled to JDK internal classes
Reviewed-by: rriggs
2021-07-14 12:00:01 +00:00
Jim Laskey
3bbd2332bd 8270075: SplittableRandom extends AbstractSplittableGenerator
Reviewed-by: rriggs, bpb
2021-07-14 11:51:06 +00:00
Anton Kozlov
381bd62107 8266889: [macosx-aarch64] Crash with SIGBUS in MarkActivationClosure::do_code_blob during vmTestbase/nsk/jvmti/.../bi04t002 test run
Reviewed-by: dholmes, aph, sspitsyn
2021-07-14 10:36:04 +00:00
Nick Gasson
357fe09f2e 8247351: [aarch64] NullPointerException during stack walking (clhsdb "where -a")
Reviewed-by: cjplummer
2021-07-14 09:02:43 +00:00
Aleksey Shipilev
589a1d53df 8270155: ARM32: Improve register dump in hs_err
Reviewed-by: dholmes, stuefe
2021-07-14 08:14:12 +00:00
Ivan Walulya
b6d765386e 8264419: Remove has_max_index argument from G1BlockOffsetTablePart::block_at_or_preceding
Reviewed-by: ayang, tschatzl
2021-07-14 07:52:57 +00:00
Hannes Wallnöfer
82c256eb61 8259499: Handling type arguments from outer classes for inner class in javadoc
Reviewed-by: jjg
2021-07-14 06:49:45 +00:00
Christoph Langer
e5db9a9405 8268620: InfiniteLoopException test may fail on x86 platforms
Backport-of: 0b09129fae
2021-07-14 05:38:17 +00:00
Xin Liu
67273ae63c 8269865: Async UL needs to handle ERANGE on exceeding SEM_VALUE_MAX
Reviewed-by: dholmes, pchilanomate
2021-07-14 01:43:53 +00:00
Jesper Wilhelmsson
4a7ccf36e9 Merge 2021-07-14 01:07:52 +00:00
David Holmes
770e2aa3c6 8215948: [TESTBUG] gtest pseudo-JavaThreads could be more regular JavaThreads
Reviewed-by: coleenp, pchilanomate
2021-07-14 01:05:10 +00:00
Yi Yang
0f5470715e 8270056: Generated lambda class can not access protected static method of target class
Reviewed-by: mchung
Backport-of: 07e9052457
2021-07-14 00:46:06 +00:00
Scott Gibbons
9cac94d581 8269404: Base64 Encoding optimization enhancements for x86 using AVX-512
Reviewed-by: kvn, sviswanathan
2021-07-13 23:52:08 +00:00
Vicente Romero
8583aab374 8270025: DynamicCallSiteDesc::withArgs doesn't throw NPE
Reviewed-by: jvernee, mchung
2021-07-13 17:48:21 +00:00
Christoph Langer
ca806ef319 8263531: Remove unused buffer int
Reviewed-by: chegar, vtewari, wetmore
2021-07-13 16:55:54 +00:00
Severin Gehwolf
d32e42cdd4 8270184: [TESTBUG] Add coverage for jvmci ResolvedJavaType.toJavaName() for lambdas
Backport-of: 6a9bc10873
2021-07-13 14:34:35 +00:00
Roman Kennke
7ac08161a8 8269897: Shenandoah: Resolve UNKNOWN access strength, where possible
Reviewed-by: shade
2021-07-13 13:30:04 +00:00
Coleen Phillimore
460c4bb6ce 8270179: Rename Amalloc_4
8270217: Fix Arena::Amalloc to check for overflow better

Reviewed-by: kbarrett, stuefe
2021-07-13 13:06:20 +00:00
Thomas Schatzl
375fc2a2b2 8270009: Factor out and shuffle methods in G1CollectedHeap::do_collection_pause_at_safepoint_helper
Reviewed-by: kbarrett, ayang
2021-07-13 11:27:41 +00:00
Maurizio Cimadamore
b2416b60fb 8269281: java/foreign/Test{Down,Up}call.java time out
Reviewed-by: jvernee
2021-07-13 10:53:49 +00:00
Jesper Wilhelmsson
6b123b0591 Merge 2021-07-13 10:50:18 +00:00
Albert Mingkun Yang
565ec8518b 8270282: Semantically rename reference processing subphases
Reviewed-by: kbarrett, tschatzl
2021-07-13 10:36:55 +00:00
Markus Grönlund
bd95c0c9e0 8269635: Stress test SEGV while emitting OldObjectSample
Reviewed-by: jbachorik
2021-07-13 09:43:49 +00:00
Markus Grönlund
00ef65f34d 8269525: Deadlock during Volano with JFR
Reviewed-by: egahlin
2021-07-13 09:41:56 +00:00
Erik Joelsson
e631addd70 8259848: Interim javadoc build does not support platform links
Reviewed-by: hannesw, jjg, ihse
2021-07-13 09:27:27 +00:00
Christian Hagedorn
040c02b942 8269795: C2: Out of bounds array load floats above its range check in loop peeling resulting in SEGV
Reviewed-by: thartmann, roland, kvn
2021-07-13 08:50:09 +00:00
Erik Joelsson
0f32982872 8270203: Missing build dependency between jdk.jfr-gendata and buildtools-hotspot
Reviewed-by: tbell
2021-07-13 05:55:04 +00:00
Yi Yang
07e9052457 8270056: Generated lambda class can not access protected static method of target class
Co-authored-by: NekoCaffeine <nekocaffeine@qq.com>
Reviewed-by: mchung
2021-07-13 02:24:14 +00:00
Yi Yang
afe957cd97 8268698: Use Objects.check{Index,FromToIndex,FromIndexSize} for java.base
Reviewed-by: mchung, rriggs
2021-07-13 02:23:16 +00:00
Yumin Qi
a4e5f08fef 8267281: Call prepare_for_dynamic_dumping for jcmd dynamic_dump
Reviewed-by: iklam, ccheung
2021-07-12 19:03:38 +00:00
Magnus Ihse Bursie
353e9c8607 8270320: JDK-8270110 committed invalid copyright headers
Reviewed-by: kvn
2021-07-12 18:54:39 +00:00
Albert Mingkun Yang
7d2825e421 8270169: G1: Incorrect reference discovery MT degree in concurrent marking
Reviewed-by: tschatzl, iwalulya, kbarrett
2021-07-12 18:25:33 +00:00
Magnus Ihse Bursie
41a5eb4372 8270117: Broken jtreg link in "Building the JDK" page
Reviewed-by: sgehwolf
2021-07-12 18:14:55 +00:00
Ignasi Marimon-Clos
1aef372ed8 8266578: Disambiguate BigDecimal description of scale
Reviewed-by: darcy, bpb
2021-07-12 16:54:39 +00:00
Sean Mullan
4fc3180f75 8266345: (fs) Custom DefaultFileSystemProvider security related loops
Co-authored-by: Brian Burkhalter <bpb@openjdk.org>
Reviewed-by: bpb, chegar
2021-07-12 14:54:38 +00:00
Harold Seigel
92ae6a5123 8244162: Additional opportunities to use NONCOPYABLE
Reviewed-by: dholmes, kbarrett, shade
2021-07-12 14:21:44 +00:00
Zhengyu Gu
548bb3119c 8270110: Shenandoah: Add test for JDK-8269661
Reviewed-by: rkennke
2021-07-12 12:22:06 +00:00
Jatin Bhateja
c3a42eddec 8269878: Handle redundant reg-2-reg moves in X86 backend
Reviewed-by: kvn, vlivanov
2021-07-12 11:36:14 +00:00
Christoph Göttschkes
999ced03cc 8269873: serviceability/sa/Clhsdb tests are using a C2 specific VMStruct field
Reviewed-by: cjplummer, dholmes, sspitsyn
2021-07-12 11:23:38 +00:00
Anton Kozlov
7cbb67a3f8 8267666: Add option to jcmd GC.heap_dump to use existing file
Reviewed-by: rschmelter, clanger
2021-07-12 11:12:52 +00:00
Alexey Bakhtin
e1d3e73d4e 8268965: TCP Connection Reset when connecting simple socket to SSL server
Reviewed-by: xuelei
Backport-of: 6f171b9f0d
2021-07-12 10:24:39 +00:00
Thomas Schatzl
8973867fb9 8269295: Verification time before/after young collection only covers parts of the verification
Reviewed-by: kbarrett, iwalulya
2021-07-12 08:41:28 +00:00
Severin Gehwolf
6a9bc10873 8270184: [TESTBUG] Add coverage for jvmci ResolvedJavaType.toJavaName() for lambdas
Reviewed-by: kvn
2021-07-12 08:25:22 +00:00
Albert Mingkun Yang
86a20081ae 8051680: (ref) unnecessary process_soft_ref_reconsider
Reviewed-by: kbarrett, tschatzl
2021-07-12 07:53:20 +00:00
Coleen Phillimore
ac75a53fc5 8253779: Amalloc may be wasting space by overaligning
Reviewed-by: kbarrett, stuefe
2021-07-11 18:15:59 +00:00
Serguei Spitsyn
3d82b0e634 8269558: fix of JDK-8252657 missed to update history at the end of JVM TI spec
Reviewed-by: dcubed, cjplummer
2021-07-11 11:03:35 +00:00
Phil Race
254600658a 8270216: [macOS] Update named used for Java run loop mode
Reviewed-by: serb
2021-07-10 19:12:59 +00:00
Yasumasa Suenaga
68b6e11e48 8270083: -Wnonnull errors happen with GCC 11.1.1
Reviewed-by: erikj, dlong, kbarrett
2021-07-10 05:01:23 +00:00
Jesper Wilhelmsson
ec975c6a05 Merge 2021-07-10 01:23:18 +00:00
Ioi Lam
d6c0f5fa22 8270059: Remove KVHashtable
Reviewed-by: dholmes, coleenp
2021-07-09 19:29:13 +00:00
Alexandre Iline
7bfa39f59a 8270108: Update JCov version to 3.0.9
Reviewed-by: serb, erikj
2021-07-09 18:29:39 +00:00
Zhengyu Gu
e4c24f01ef 8270171: Shenandoah: Cleanup TestStringDedup and TestStringDedupStress tests
Reviewed-by: shade
2021-07-09 17:34:34 +00:00
Jonathan Gibbons
3588634d54 8268420: new Reporter method to report a diagnostic within a DocTree node
Reviewed-by: prappo
2021-07-09 16:14:29 +00:00
Jonathan Gibbons
5a74291013 8266565: Spec of ForwardingJavaFileManager/ForwardingFileObject/ForwardingJavaFileObject methods should mention delegation instead of being copied
Reviewed-by: vromero
2021-07-09 14:52:37 +00:00
Roger Riggs
6889a39a3f 8268826: Cleanup Override in Context-Specific Deserialization Filters
Reviewed-by: dfuchs, bchristi
2021-07-09 14:33:56 +00:00
Christian Hagedorn
f791fdf23e 8261147: C2: Node is wrongly marked as reduction resulting in a wrong execution due to wrong vector instructions
Reviewed-by: thartmann, kvn
2021-07-09 11:53:45 +00:00
Jan Lahoda
1196b35684 8270151: IncompatibleClassChangeError on empty pattern switch statement case
Reviewed-by: mcimadamore
2021-07-09 11:03:40 +00:00
Albert Mingkun Yang
3d193adbec 8270082: Remove unnecessary gc_timer null check in ReferenceProcessorPhaseTimes
Reviewed-by: tschatzl, kbarrett
2021-07-09 10:03:10 +00:00
Jan Lahoda
885f7b1141 8269146: Missing unreported constraints on pattern and other case label combination
8269301: Switch statement with a pattern, constant and default label elements crash javac

Reviewed-by: mcimadamore
2021-07-09 08:03:56 +00:00
Aleksey Shipilev
676f1d76ca 8270094: Shenandoah: Provide human-readable labels for test configurations
Reviewed-by: zgu
2021-07-09 07:54:40 +00:00
Thomas Schatzl
c93204ce3d 8269914: Factor out heap printing for G1 young and full gc
8270018: Add scoped object for g1 young gc JFR notification

Reviewed-by: ayang, iwalulya, kbarrett
2021-07-09 06:51:09 +00:00
Jatin Bhateja
62ff55d383 8269952: compiler/vectorapi/VectorCastShape*Test.java tests failed on avx2 machines
Reviewed-by: kvn, dlong
2021-07-09 03:20:59 +00:00
Mikhailo Seledtsov
46c610cbd8 8269840: Update Platform.isDefaultCDSArchiveSupported() to return true for aarch64 platforms
Reviewed-by: minqi, iklam
2021-07-09 01:55:33 +00:00
Jesper Wilhelmsson
dfd6b2be7d Merge 2021-07-08 23:21:00 +00:00
Jonathan Gibbons
6401633800 8269722: NPE in HtmlDocletWriter
Reviewed-by: hannesw
2021-07-08 20:23:02 +00:00
Daniel D. Daugherty
9acb2a69a9 8270109: ProblemList 4 SA tests on macOS-aarch64
Reviewed-by: mikael
2021-07-08 19:23:21 +00:00
Brian Burkhalter
f46a917270 6766844: ByteArrayInputStream#read with a byte array of length 0 not consistent with InputStream when at EOF
Reviewed-by: naoto, lancea, joehw
2021-07-08 19:05:29 +00:00
Anthony Scarpino
5832882492 8269827: JMH tests for AES/GCM byte[] and bytebuffers
Reviewed-by: ecaspole, weijun
2021-07-08 17:19:46 +00:00
Alexey Bakhtin
6f171b9f0d 8268965: TCP Connection Reset when connecting simple socket to SSL server
Reviewed-by: xuelei
2021-07-08 16:44:55 +00:00
Aleksey Shipilev
4f322a9b6c 8270096: Shenandoah: Optimize gc/shenandoah/TestRefprocSanity.java for interpreter mode
Reviewed-by: zgu
2021-07-08 16:42:03 +00:00
Coleen Phillimore
bca570c56e 8269962: SA has unused Hashtable, Dictionary classes
Reviewed-by: cjplummer, iklam, dholmes
2021-07-08 14:28:32 +00:00
Guoxiong Li
9e75f922b1 8269738: AssertionError when combining pattern matching and function closure
Reviewed-by: jlahoda, vromero
2021-07-08 14:15:07 +00:00
Jatin Bhateja
168af2e6b2 8269828: corrections in some instruction patterns for KNL x86 platform
Reviewed-by: kvn, dlong
2021-07-08 12:19:19 +00:00
Jan Lahoda
fa08cc62df 8268766: Desugaring of pattern matching enum switch should be improved
Reviewed-by: mcimadamore, psandoz
2021-07-08 11:56:53 +00:00
Albert Mingkun Yang
4a45d95719 8270021: Incorrect log decorators in gc/g1/plab/TestPLABEvacuationFailure.java
Reviewed-by: tschatzl, iwalulya
2021-07-08 10:39:44 +00:00
Jan Lahoda
30bba54b97 8270064: Problem list tools/jdeprscan/tests/jdk/jdeprscan/TestRelease.java due to JDK-8270060
Reviewed-by: mcimadamore
2021-07-08 10:37:27 +00:00
sunguoyun
2c883eeed4 8267982: Set the node after peephole optimization to be removed
Reviewed-by: kvn, thartmann
2021-07-08 09:12:35 +00:00
Jan Lahoda
4f70759175 8270006: Switches with 'case null:' should be exhaustive
Reviewed-by: vromero
2021-07-08 08:03:09 +00:00
Roland Westrelin
8f798b8222 8269746: C2: assert(!in->is_CFG()) failed: CFG Node with no controlling input?
Reviewed-by: chagedorn, thartmann
2021-07-08 07:25:21 +00:00
Lin Zang
4fbcce119b 8269886: Inaccurate error message for compressed hprof test
Reviewed-by: dholmes, cjplummer
2021-07-08 06:30:24 +00:00
Albert Mingkun Yang
a96012f958 8269803: G1: remove unnecessary NoRefDiscovery
Reviewed-by: tschatzl, kbarrett
2021-07-08 06:15:30 +00:00
Thejasvi Voniadka
4e18ec26dd 8269993: [Test]: java/net/httpclient/DigestEchoClientSSL.java contains redundant @run tags
Reviewed-by: dfuchs, vtewari
2021-07-08 06:01:31 +00:00
TatWai Chong
e54585be57 8268363: AArch64: Implement string_indexof_char intrinsic in SVE
Reviewed-by: aph, njian
2021-07-08 02:29:17 +00:00
Jesper Wilhelmsson
270fbcb3f5 Merge 2021-07-08 00:55:53 +00:00
Roger Riggs
c812bbbe8f 8269929: (test) Add diagnostic info to ProceessBuilder/Basic.java for unexpected output
Reviewed-by: iris, bpb, naoto
2021-07-07 21:46:11 +00:00
Yumin Qi
f741e4ca74 8264735: Make dynamic dump repeatable
Reviewed-by: ccheung, iklam
2021-07-07 19:41:45 +00:00
Alexey Semenyuk
6000950b33 8269185: Directories in /opt/runtimepackagetest and /path/to/jdk-17 are different
Reviewed-by: almatvee, herrick
2021-07-07 16:57:07 +00:00
Brian Burkhalter
d1cecaaa22 8269481: SctpMultiChannel never releases own file descriptor
Reviewed-by: alanb, chegar
2021-07-07 15:49:21 +00:00
Daniel D. Daugherty
2209e3ec65 8270027: ProblemList jdk/jfr/event/oldobject/TestObjectSize.java on macOS-x64
Reviewed-by: mgronlun
2021-07-07 14:05:56 +00:00
Martin Doerr
1f2bf1d194 8269879: [PPC64] C2: Math.rint intrinsic uses wrong rounding mode
Reviewed-by: lucy, goetz
2021-07-07 12:52:18 +00:00
Coleen Phillimore
2dc5486415 8267303: Replace MinObjectAlignmentSize usages for non-Java heap objects
Reviewed-by: kbarrett, tschatzl, minqi
2021-07-07 12:46:07 +00:00
Coleen Phillimore
3586a233a4 8268635: Corrupt oop in ClassLoaderData
Reviewed-by: iklam, dholmes
2021-07-07 12:40:34 +00:00
Zhengyu Gu
bffb1a7199 8269923: runtime/jni/checked/TestPrimitiveArrayCriticalWithBadParam.java failed with "FATAL ERROR in native method: Primitive type array expected but not received for JNI array operation"
Reviewed-by: dcubed, dholmes
2021-07-07 11:47:02 +00:00
Jorn Vernee
77a5b7b27e 8269761: idea.sh missing .exe suffix when invoking javac on WSL
Reviewed-by: mcimadamore, erikj
2021-07-07 10:05:33 +00:00
Jan Lahoda
7fcd5ca025 8266036: class file for sun.misc.Contended not found
8258421: (jdeprscan) tools/jdeprscan/tests/jdk/jdeprscan/TestRelease.java failed with "error: cannot access jdk.internal.ValueBased"

Reviewed-by: darcy
2021-07-07 09:49:53 +00:00
Thomas Schatzl
248aa5014b 8269294: Verify_before/after_young_collection should execute all verification
Reviewed-by: iwalulya, kbarrett
2021-07-07 07:56:41 +00:00
Daniel Fuchs
a49b1dc704 8269772: [macos-aarch64] test compilation failed with "SocketException: No buffer space available"
Reviewed-by: chegar, vtewari
2021-07-07 07:50:45 +00:00
Thomas Schatzl
18b80c70f8 8269908: Move MemoryService::track_memory_usage call into G1MonitoringScope
Reviewed-by: ayang, kbarrett
2021-07-07 07:39:31 +00:00
Thomas Schatzl
a6850111ac 8269022: Put evacuation failure string directly into gc=info log message
Reviewed-by: iwalulya, lkorinth, kbarrett
2021-07-07 07:32:57 +00:00
Jan Lahoda
820f2900d8 8268859: jshell throws exception while parsing illegal "case true"
Reviewed-by: mcimadamore
2021-07-07 07:26:41 +00:00
Richard Reingruber
72530ef666 8269574: C2: Avoid redundant uncommon traps in GraphKit::builtin_throw() for JVMTI exception events
Reviewed-by: kvn, roland, neliasso
2021-07-07 07:17:24 +00:00
Jan Lahoda
815e4af35d 8269802: javac fails to compile nested pattern matching switches
8269808: javac generates class with invalid stack map

Reviewed-by: mcimadamore
2021-07-07 06:24:58 +00:00
Chris Plummer
2daf39a59b 8269830: SA's vm object vtable matching code sometimes matches on incorrect type
Reviewed-by: kevinw, sspitsyn
2021-07-07 02:32:25 +00:00
Nick Gasson
3d090e7ee5 8267625: AARCH64: typo in LIR_Assembler::emit_profile_type
Reviewed-by: aph, dlong
2021-07-07 01:47:11 +00:00
Yi Yang
a9e201016d 8268425: Show decimal nid of OSThread instead of hex format one
Reviewed-by: stuefe, kevinw
2021-07-07 01:37:50 +00:00
Vicente Romero
01c29d8f2c 8266407: remove jdk.internal.javac.PreviewFeature.Feature.SEALED_CLASSES
Reviewed-by: jlahoda
2021-07-06 23:06:00 +00:00
Jesper Wilhelmsson
7a4f08ae32 Merge 2021-07-06 23:00:31 +00:00
Yumin Qi
e8206dbb17 8263538: SharedArchiveConsistency.java should test -Xshare:auto as well
Reviewed-by: iklam, ccheung
2021-07-06 22:27:13 +00:00
Ioi Lam
0ebf8aa9d7 8268778: CDS check_excluded_classes needs DumpTimeTable_lock
Reviewed-by: minqi, ccheung
2021-07-06 22:21:06 +00:00
Vladimir Kozlov
0d1cd3a745 8269825: [TESTBUG] Missing testing for x86 KNL platforms
Reviewed-by: dlong, jbhateja
2021-07-06 21:52:23 +00:00
Vladimir Kozlov
e0c130f484 8269955: ProblemList compiler/vectorapi/VectorCastShape[64|128]Test.java tests on x86
Reviewed-by: iignatyev, dlong
2021-07-06 21:30:48 +00:00
Daniel D. Daugherty
4dfcf53a8b 8269935: ProblemList runtime/jni/checked/TestPrimitiveArrayCriticalWithBadParam.java on windows
Reviewed-by: jjg
2021-07-06 17:00:55 +00:00
Eric Liu
1166ef25e9 8268966: AArch64: 'bad AD file' in some vector conversion tests
Reviewed-by: aph
2021-07-06 15:59:04 +00:00
Patrick Concannon
1578979df7 8269917: Insert missing commas in copyrights in java.net
Reviewed-by: chegar, dfuchs
2021-07-06 15:10:58 +00:00
Mandy Chung
3a69024033 8225667: Clarify the behavior of System::gc w.r.t. reference processing
Reviewed-by: rriggs, kbarrett, tschatzl
2021-07-06 14:59:42 +00:00
Patrick Concannon
326b2e1344 8253119: Remove the legacy PlainSocketImpl and PlainDatagramSocketImpl implementation
Reviewed-by: alanb, dfuchs, chegar
2021-07-06 13:46:02 +00:00
Julia Boes
f485171ce8 8269692: sun.net.httpserver.ServerImpl::createContext should throw IAE
Reviewed-by: dfuchs
2021-07-06 13:29:40 +00:00
Zhengyu Gu
16aa8cbf8d 8269697: JNI_GetPrimitiveArrayCritical() should not accept object array
Reviewed-by: kbarrett, dholmes
2021-07-06 12:25:11 +00:00
Aleksei Voitylov
e47803a84f 8266310: deadlock between System.loadLibrary and JNI FindClass loading another class
Reviewed-by: dholmes, plevart, chegar, mchung
2021-07-06 11:15:10 +00:00
Xiaohong Gong
2b20778225 8269568: JVM crashes when running VectorMask query tests
Co-authored-by: Sandhya Viswanathan <sviswanathan@openjdk.org>
Reviewed-by: psandoz, jiefu, jbhateja, sviswanathan
2021-07-06 08:17:27 +00:00
Kim Barrett
0f4e07b7d9 8269661: JNI_GetStringCritical does not lock char array
8269650: Optimize gc-locker in [Get|Release]StringCritical for latin string

Reviewed-by: dholmes, tschatzl
2021-07-06 07:40:56 +00:00
Roland Westrelin
df1364b508 8269575: C2: assert(false) failed: graph should be schedulable after JDK-8252372
Reviewed-by: kvn, thartmann
2021-07-06 07:03:08 +00:00
Roland Westrelin
6d8fc7249a 8268883: C2: assert(false) failed: unscheduable graph
Reviewed-by: chagedorn, kvn, yyang
2021-07-06 06:47:45 +00:00
Tobias Hartmann
4ad8b04421 8268369: SIGSEGV in PhaseCFG::implicit_null_check due to missing null check
Reviewed-by: chagedorn, kvn
2021-07-06 05:44:59 +00:00
David Holmes
20eba35515 8269882: stack-use-after-scope in NewObjectA
Reviewed-by: kbarrett
2021-07-06 02:20:14 +00:00
Yi Yang
df0e11bb0c 8269672: C1: Remove unaligned move on all architectures
Co-authored-by: Martin Doerr <mdoerr@openjdk.org>
Reviewed-by: thartmann
2021-07-06 02:13:04 +00:00
Yi Yang
2926769800 8267956: C1 code cleanup
Reviewed-by: thartmann
2021-07-06 02:11:56 +00:00
Magnus Ihse Bursie
acc3d99535 8268860: Windows-Aarch64 build is failing in GitHub actions
Reviewed-by: dholmes
2021-07-06 00:28:40 +00:00
Jesper Wilhelmsson
a18a112963 Merge 2021-07-06 00:12:23 +00:00
Erik Gahlin
5b8e1a266e 8266595: jdk/jfr/jcmd/TestJcmdDump.java with slowdebug bits fails with AttachNotSupportedException
Reviewed-by: mseledtsov, dholmes
2021-07-05 15:18:47 +00:00
Jaikiran Pai
fd4de1ed40 8233020: (fs) UnixFileSystemProvider should use StaticProperty.userDir().
Reviewed-by: alanb
2021-07-05 13:54:30 +00:00
Jorn Vernee
76783cd8cb 8269760: idea.sh should not invoke cygpath directly
Reviewed-by: mcimadamore, erikj
2021-07-05 10:24:31 +00:00
Jorn Vernee
73198968e2 8269758: idea.sh doesn't work when there are multiple configurations available.
Reviewed-by: mcimadamore, erikj
2021-07-05 10:18:28 +00:00
James Fuller
164eff8c8a 8263389: IGV: Zooming changes the point that is currently centered
Reviewed-by: rrich, neliasso
2021-07-05 09:59:18 +00:00
Sergei Ustimenko
371d996a89 8269700: source level for IntelliJ JDK project is set incorrectly
Reviewed-by: mcimadamore
2021-07-05 09:09:23 +00:00
Patrick Concannon
8a7b380ebb 8269124: Update java.time to use switch expressions (part II)
Reviewed-by: dfuchs, vtewari, aefimov, iris, lancea, naoto
2021-07-05 09:08:13 +00:00
Severin Gehwolf
e14801cdd9 8269668: [aarch64] java.library.path not including /usr/lib64
Reviewed-by: aph, dholmes
2021-07-05 08:01:51 +00:00
Thomas Schatzl
675a9520b2 8269821: Remove is-queue-active check in inner loop of write_ref_array_pre_work
Reviewed-by: ayang, kbarrett
2021-07-05 07:24:10 +00:00
Ioi Lam
4da52eaf53 8269004: Implement ResizableResourceHashtable
Reviewed-by: coleenp, kbarrett
2021-07-05 02:29:23 +00:00
David Holmes
390d1025ca 8269652: Factor out the common code for creating system j.l.Thread objects
Reviewed-by: coleenp, dcubed, kvn, xliu
2021-07-04 21:58:16 +00:00
Jesper Wilhelmsson
17f53f2f9c Merge 2021-07-02 20:50:11 +00:00
Ian Graves
0d0f6a4bec 8268664: The documentation of the Scanner.hasNextLine is incorrect
Reviewed-by: rriggs, bpb, iris
2021-07-02 19:46:54 +00:00
Alexander Zuev
97e0e9e73d 8268775: Password is being converted to String in AccessibleJPasswordField
Reviewed-by: prr
2021-07-02 19:37:15 +00:00
Brian Burkhalter
cb795893be 8188046: java.lang.Math.mutliplyHigh does not run in constant time
Reviewed-by: rriggs, darcy
2021-07-02 18:21:39 +00:00
Brian Burkhalter
ca4bea4665 8188044: We need Math.unsignedMultiplyHigh
Reviewed-by: rriggs, aph, darcy
2021-07-02 18:15:35 +00:00
Coleen Phillimore
3d84398d12 8268364: jmethod clearing should be done during unloading
Reviewed-by: dcubed, eosterlund
2021-07-02 18:04:45 +00:00
Mikael Vidstedt
1c18f91438 8269768: JFR Terminology Refresh
Reviewed-by: iignatyev, egahlin
2021-07-02 17:58:12 +00:00
Sandhya Viswanathan
6f0e8e79aa 8269775: compiler/codegen/ClearArrayTest.java failed with "assert(false) failed: bad AD file"
Reviewed-by: kvn, dlong
2021-07-02 15:33:07 +00:00
Christoph Göttschkes
53ad903a82 8269135: TestDifferentProtectionDomains runs into timeout in client VM
Reviewed-by: dholmes, dcubed
2021-07-02 15:16:31 +00:00
Weijun Wang
c4ea13edd0 8269543: The warning for System::setSecurityManager should only appear once for each caller
Reviewed-by: lancea, alanb, dfuchs
2021-07-02 14:31:50 +00:00
Albert Mingkun Yang
f8bcbf0172 8269596: Snapshot soft ref policy before marking/copying
Reviewed-by: tschatzl, kbarrett
2021-07-02 09:19:58 +00:00
Christian Hagedorn
2db9005c07 8262017: C2: assert(n != __null) failed: Bad immediate dominator info.
Reviewed-by: roland, neliasso, kvn
2021-07-02 07:43:57 +00:00
Nils Eliasson
7bc96dbc02 8269771: assert(tmp == _callprojs.fallthrough_catchproj) failed: allocation control projection
Reviewed-by: rbackman, kvn
2021-07-02 07:17:55 +00:00
David Holmes
4107dcf6ec 8269466: Factor out the common code for initializing and starting internal VM JavaThreads
Reviewed-by: sspitsyn, pchilanomate, dcubed, coleenp, kvn
2021-07-02 04:29:47 +00:00
Jamsheed Mohammed C M
5644c4f942 8265132: C2 compilation fails with assert "missing precedence edge"
Reviewed-by: iveresov, kvn
2021-07-02 04:26:09 +00:00
miao zheng
2baf498eb5 8269743: test/hotspot/jtreg/vmTestbase/vm/mlvm/meth/stress/jni/nativeAndMH/Test.java crash with small heap (-Xmx50m)
Reviewed-by: dholmes
2021-07-02 03:15:55 +00:00
Hamlin Li
589f084161 8269110: ZGC: Remove dead code in zBarrier
Reviewed-by: pliden
2021-07-02 01:30:41 +00:00
Jesper Wilhelmsson
b0e186792e Merge 2021-07-02 01:07:50 +00:00
Vladimir Kozlov
a4d2a9a77f 8269745: [JVMCI] restore original qualified exports to Graal
Reviewed-by: dnsimon, iveresov
2021-07-01 18:51:15 +00:00
Maurizio Cimadamore
e3773977cf 8268566: java/foreign/TestResourceScope.java timed out
Reviewed-by: jvernee
2021-07-01 16:28:48 +00:00
Vicente Romero
de61328d30 8225559: assertion error at TransTypes.visitApply
Reviewed-by: sadayapalam, jlahoda
2021-07-01 16:18:12 +00:00
Kim Barrett
6c76e77158 8260684: vmTestbase/gc/gctests/PhantomReference/phantom002/TestDescription.java timed out
Reviewed-by: pliden, lkorinth
2021-07-01 16:09:30 +00:00
Jatin Bhateja
4bbf11d4a9 8269580: assert(is_valid()) failed: invalid register (-1)
Reviewed-by: kvn, dlong
2021-07-01 15:08:43 +00:00
Naoto Sato
54dd510bd5 8269704: Typo in j.t.Normalizer.normalize()
Reviewed-by: joehw, prappo, iris
2021-07-01 12:08:21 +00:00
Jan Lahoda
a8385feb30 8269354: javac crashes when processing parenthesized pattern in instanceof
Reviewed-by: vromero
2021-07-01 10:10:03 +00:00
Julia Boes
82bfc5d45c 8268960: com/sun/net/httpserver/Headers.java: Ensure mutators normalize keys and disallow null for keys and values
Reviewed-by: chegar, dfuchs, michaelm
2021-07-01 09:56:22 +00:00
Maxim Kartashev
18f356a38e 8267307: Introduce new client property for XAWT: xawt.mwm_decor_title
Reviewed-by: azvegint, serb
2021-07-01 09:53:28 +00:00
Aleksey Shipilev
c16d1fc981 8269285: Crash/miscompile in CallGenerator::for_method_handle_inline after JDK-8191998
Reviewed-by: kvn, iveresov, vlivanov
2021-07-01 09:27:55 +00:00
Roland Westrelin
ad27d9b3ec 8269088: C2 fails with assert(!n->is_Store() && !n->is_LoadStore()) failed: no node with a side effect
Reviewed-by: kvn, iveresov, neliasso
2021-07-01 08:11:59 +00:00
Albert Mingkun Yang
54a9c3e39f 8133873: Simplify {Register,Unregister}NMethodOopClosure
Reviewed-by: tschatzl, kbarrett
2021-07-01 07:57:54 +00:00
Roland Westrelin
c67a7b039d 8269230: C2: main loop in micro benchmark never executed
Co-authored-by: Maurizio Cimadamore <mcimadamore@openjdk.org>
Reviewed-by: kvn, iveresov
2021-07-01 07:41:22 +00:00
Hannes Wallnöfer
962f1c1a9b 8262886: javadoc generates broken links with {@inheritDoc}
Reviewed-by: jjg
2021-07-01 07:25:39 +00:00
Jayathirth D V
f7ffd5872d 8267602: [macos] [lanai] java/awt/PrintJob/Text/stringwidth.sh doesn't exit on cancelling print dialog
Reviewed-by: aghaisas, serb
2021-07-01 03:01:30 +00:00
Denghui Dong
06d26208c5 8268298: jdk/jfr/api/consumer/log/TestVerbosity.java fails: unexpected log message
Reviewed-by: egahlin
2021-07-01 02:15:19 +00:00
Yi Yang
d89e630cdf 8266746: C1: Replace UnsafeGetRaw with UnsafeGet when setting up OSR entry block
Replace UnsafeGetRaw with UnsafeGetObject when setting up OSR entry block, and rename Unsafe{Get,Put}Object to Unsafe{Get,Put}

Reviewed-by: thartmann, dlong, mdoerr
2021-07-01 01:39:50 +00:00
Hamlin Li
4660f72c38 8268870: Remove dead code in metaspaceShared
Reviewed-by: tschatzl
2021-07-01 01:19:32 +00:00
Jesper Wilhelmsson
9def3b068e Merge 2021-07-01 01:01:34 +00:00
Liam Miller-Cushon
4930ae96d8 8268592: JDK-8262891 causes an NPE in Lint.augment
Reviewed-by: vromero
2021-07-01 00:16:23 +00:00
Mandy Chung
9ac63a6e08 8262841: Clarify the behavior of PhantomReference::refersTo
Reviewed-by: kbarrett, rriggs
2021-06-30 22:43:23 +00:00
Daniel D. Daugherty
aba6c55dac 8269703: ProblemList vmTestbase/nsk/jvmti/scenarios/sampling/SP07/sp07t002/TestDescription.java on Windows-X64 with -Xcomp
Reviewed-by: dholmes
2021-06-30 22:13:06 +00:00
Naoto Sato
3e022247d2 8269513: Clarify the spec wrt useOldISOCodes system property
Reviewed-by: lancea, bpb, iris, joehw
2021-06-30 22:11:58 +00:00
Joe Darcy
85262c7183 8268637: Update --release 17 symbol information for JDK 17 build 28
Reviewed-by: iris
2021-06-30 21:45:48 +00:00
Nils Eliasson
0dc65d3c74 8268897: [TESTBUG] compiler/compilercontrol/mixed/RandomCommandsTest.java must not fail on Command.quiet
Reviewed-by: kvn
2021-06-30 21:05:15 +00:00
Zhengyu Gu
5c08344b64 8269678: Remove unimplemented and unused os::bind_to_processor()
Reviewed-by: dcubed
2021-06-30 19:52:39 +00:00
Hannes Wallnöfer
3826012281 8268557: Module page uses unstyled table class
Reviewed-by: jjg
2021-06-30 18:40:17 +00:00
Daniel D. Daugherty
2b17e95e20 8269691: ProblemList sun/management/jdp/JdpDefaultsTest.java on Linux-aarch64
Reviewed-by: kvn, darcy
2021-06-30 17:39:22 +00:00
Christoph Göttschkes
1da5d4bb78 8269486: CallerAccessTest fails for non server variant
Reviewed-by: dholmes, stuefe, mchung, jvernee
2021-06-30 17:08:36 +00:00
Masanori Yano
83bce94cc8 8268457: XML Transformer outputs Unicode supplementary character incorrectly to HTML
Reviewed-by: lancea, naoto, iris, joehw
2021-06-30 16:25:40 +00:00
Andrew Haley
1810b1c2ad 8269516: AArch64: Assembler cleanups
Reviewed-by: ngasson, adinn
2021-06-30 13:59:39 +00:00
Aleksey Shipilev
a96012a7af 8261495: Shenandoah: reconsider update references memory ordering
Reviewed-by: zgu, rkennke
2021-06-30 13:32:32 +00:00
Martin Doerr
be0ac92e18 8269614: [s390] Interpreter checks wrong bit for slow path instance allocation
Reviewed-by: shade, rrich
2021-06-30 13:32:19 +00:00
Aleksey Shipilev
23d2996fee 8269478: Shenandoah: gc/shenandoah/mxbeans tests should be more resilient
Reviewed-by: rkennke
2021-06-30 13:22:38 +00:00
Doug Simon
a6b253d85c 8269416: [JVMCI] capture libjvmci crash data to a file
Reviewed-by: kvn, dholmes
2021-06-30 12:33:06 +00:00
Zhengyu Gu
4b4bef4e1e 8269594: assert(_handle_mark_nesting > 1) failed: memory leak: allocating handle outside HandleMark
Reviewed-by: coleenp, jvernee
2021-06-30 11:37:09 +00:00
Jan Lahoda
4ee400ae43 8268320: Better error recovery for broken patterns in switch
Reviewed-by: vromero
2021-06-30 09:47:22 +00:00
Thomas Schatzl
a0f32cb140 8268906: gc/g1/mixedgc/TestOldGenCollectionUsage.java assumes that GCs take 1ms minimum
Reviewed-by: kbarrett, ayang, lkorinth
2021-06-30 09:14:26 +00:00
Wang Huang
ca283c3ac0 8265907: JVM crashes when matching VectorMaskCmp Node
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Ai Jiaming <aijiaming1@huawei.com>
Reviewed-by: njian, jbhateja, sviswanathan, dlong, adinn
2021-06-30 08:52:27 +00:00
Jan Lahoda
c3c918928c 8269141: Switch statement containing pattern case label element gets in the loop during execution
Reviewed-by: vromero
2021-06-30 08:45:12 +00:00
Thomas Schatzl
ee0247f056 8263461: jdk/jfr/event/gc/detailed/TestEvacuationFailedEvent.java uses wrong mechanism to cause evacuation failure
Reviewed-by: kbarrett, iwalulya, ayang
2021-06-30 08:05:44 +00:00
Leo Korinth
6b64a7956c 8268350: Remove assert that ensures thread identifier remains the same
Reviewed-by: tschatzl, kbarrett
2021-06-30 07:45:39 +00:00
Thomas Stuefe
3ad20fcdfa 8269571: NMT should print total malloc bytes and invocation count
Reviewed-by: zgu, xliu
2021-06-30 04:38:33 +00:00
Jatin Bhateja
90eb1189ae 8269528: VectorAPI Long512VectorTest fails on X86 KNL target
Reviewed-by: kvn, sviswanathan
2021-06-30 02:33:01 +00:00
Leonid Mesnik
b969136b9f 8245877: assert(_value != __null) failed: resolving NULL _value in JvmtiExport::post_compiled_method_load
Reviewed-by: sspitsyn, dholmes, coleenp
2021-06-30 02:05:25 +00:00
Jie Fu
a661686e1e 8269065: [REDO] vmTestbase/vm/mlvm/anonloader/stress/oome/metaspace/Test.java failed with OutOfMemoryError
Reviewed-by: stuefe, iignatyev
2021-06-30 01:25:28 +00:00
Jesper Wilhelmsson
ee526a2ea8 Merge 2021-06-30 01:19:39 +00:00
Sean Coffey
0d745ae8fd 8269034: AccessControlException for SunPKCS11 daemon threads
Reviewed-by: valeriep
2021-06-29 22:52:45 +00:00
Christoph Langer
d042029509 8269529: javax/swing/reliability/HangDuringStaticInitialization.java fails in Windows debug build
Reviewed-by: serb, psadhukhan, pbansal
2021-06-29 21:02:06 +00:00
Calvin Cheung
1ac8deef4c 8269615: Fix for 8263640 broke Windows build
Reviewed-by: iklam, dcubed
2021-06-29 19:52:06 +00:00
Chris Plummer
7ca753bf0c 8269268: JDWP: Properly fix thread lookup assert in findThread()
Reviewed-by: kevinw, amenkov, sspitsyn
2021-06-29 18:45:52 +00:00
Chris Plummer
401cb0ad55 8269232: assert(!is_jweak(handle)) failed: wrong method for detroying jweak
Reviewed-by: rkennke, amenkov, sspitsyn, sgehwolf
2021-06-29 18:41:19 +00:00
Alex Menkov
7a23c9cbb7 8260540: serviceability/jdwp/AllModulesCommandTest.java failed with "Debuggee error: 'ERROR: transport error 202: bind failed: Address already in use'"
Reviewed-by: sspitsyn, kevinw
2021-06-29 18:39:42 +00:00
Nils Eliasson
b8a16e931b 8268884: C2: Compile::remove_speculative_types must iterate top-down
Reviewed-by: roland, kvn
2021-06-29 18:38:25 +00:00
Calvin Cheung
c1e2a29448 8263640: hs_err improvement: handle class path longer than O_BUFLEN
Reviewed-by: iklam, minqi, dholmes
2021-06-29 17:57:15 +00:00
Man Cao
bb42d75161 8269417: Minor clarification on NonblockingQueue utility
Reviewed-by: kbarrett, iwalulya
2021-06-29 17:03:35 +00:00
Patricio Chilano Mateo
e238cbd596 8269530: runtime/ParallelLoad/ParallelSuperTest.java timeout
Reviewed-by: dholmes, coleenp
2021-06-29 14:35:13 +00:00
Jonathan Gibbons
25f9f19af9 8249646: Runtime.exec(String, String[], File) documentation contains literal {@link ...}
Reviewed-by: sundar, iris
2021-06-29 14:31:01 +00:00
Thomas Schatzl
3f2c372396 8269126: Rename G1AllowPreventiveGC option to G1UsePreventiveGC
Reviewed-by: iwalulya, kbarrett
2021-06-29 14:16:21 +00:00
Zhengyu Gu
0d83dc2411 8268699: Shenandoah: Add test for JDK-8268127
Backport-of: e59acd9860
2021-06-29 12:29:06 +00:00
Jie Fu
7010dfdffa 8269517: compiler/loopopts/TestPartialPeelingSinkNodes.java crashes with -XX:+VerifyGraphEdges
Reviewed-by: kvn, dlong
2021-06-29 11:18:23 +00:00
Thomas Schatzl
fc0fd96a5f 8269126: Rename G1AllowPreventiveGC option to G1UsePreventiveGC
Reviewed-by: kbarrett, iwalulya
2021-06-29 08:34:55 +00:00
Andrew Haley
a97715755d 8261579: AArch64: Support for weaker memory ordering in Atomic
Reviewed-by: adinn, shade
2021-06-29 07:39:24 +00:00
Yumin Qi
ee1e202bc3 8268821: Split systemDictionaryShared.cpp
Reviewed-by: erikj, ccheung, iklam
2021-06-28 23:20:28 +00:00
Jesper Wilhelmsson
03d54e6ef1 Merge 2021-06-28 23:00:32 +00:00
Mandy Chung
56240690f6 8269426: Rename test/jdk/java/lang/invoke/t8150782 to accessClassAndFindClass
Reviewed-by: jvernee
2021-06-28 19:52:27 +00:00
Weijun Wang
e9b2c058a4 8269409: Post JEP 411 refactoring: core-libs with maximum covering > 10K
Reviewed-by: lancea, naoto
2021-06-28 19:05:33 +00:00
Xin Liu
09bb84685f 8267952: async logging supports to dynamically change tags and decorators
Reviewed-by: dholmes, phh
2021-06-28 18:17:45 +00:00
Daniel D. Daugherty
20640a57f3 8269534: Remove java/util/concurrent/locks/Lock/TimedAcquireLeak.java from ProblemList.txt
Reviewed-by: iignatyev, tschatzl
2021-06-28 17:30:41 +00:00
Alexey Semenyuk
efe8423d8c 8269403: Fix jpackage tests to gracefully handle jpackage app launcher crashes
Reviewed-by: almatvee, herrick
2021-06-28 16:55:20 +00:00
Vladimir Kozlov
8d09596f27 8269304: Regression ~5% in 2005 in b27
Reviewed-by: dlong, roland
2021-06-28 15:52:09 +00:00
Albert Mingkun Yang
d0d26f5c55 8269433: Remove effectively unused ReferenceProcessor::_enqueuing_is_done
Reviewed-by: kbarrett, tschatzl
2021-06-28 14:13:32 +00:00
Jim Laskey
e4c5446340 8268236: The documentation of the String.regionMatches method contains error
Reviewed-by: rriggs, dfuchs
2021-06-28 13:51:07 +00:00
Coleen Phillimore
29bc381da5 8268902: Testing for threadObj != NULL is unnecessary in suspend handshake
Reviewed-by: pchilanomate, dcubed
2021-06-28 13:13:32 +00:00
Albert Mingkun Yang
87ff27786b 8269222: Incorrect number of workers reported for reference processing
Reviewed-by: tschatzl, sangheki
2021-06-28 10:47:20 +00:00
Andrew Haley
4d2412ef3e 8269122: The use of "extern const" for Register definitions generates poor code
Reviewed-by: adinn, kbarrett, kvn
2021-06-28 09:14:41 +00:00
David Holmes
f45be1519e 8269003: Update the java manpage for JDK 18
Reviewed-by: minqi
2021-06-28 02:23:23 +00:00
Jesper Wilhelmsson
a29953d805 Merge 2021-06-27 23:51:05 +00:00
David Holmes
8bed35343d 8269261: The PlaceHolder code uses Thread everywhere but is always dealing with JavaThreads
Reviewed-by: ccheung, coleenp
2021-06-27 22:23:42 +00:00
Christoph Göttschkes
561a3a5077 8269129: Multiple tier1 tests in hotspot/jtreg/compiler are failing for client VMs
Reviewed-by: kvn, iveresov
2021-06-27 13:12:51 +00:00
Dean Long
d9cb068f4b 8258746: illegal access to global field _jvmci_old_thread_counters by terminated thread causes crash
Reviewed-by: dholmes, kvn
2021-06-26 20:07:04 +00:00
Mandy Chung
6eb734a60f 8266269: Lookup::accessClass fails with IAE when accessing an arrayClass with a protected inner class as component class
Reviewed-by: chegar, alanb
2021-06-26 18:27:28 +00:00
Mandy Chung
3d0d27ce57 8269351: Proxy::newProxyInstance and MethodHandleProxies::asInterfaceInstance should reject sealed interfaces
Reviewed-by: darcy, alanb
2021-06-26 16:46:57 +00:00
Alexander Zvegintsev
51a1299b68 8264125: Specification of Taskbar::getIconImage doesn't mention that the returned image might not be equal to the Taskbar::setIconImage one. (eg on Mac OS)
Reviewed-by: kizune, prr
2021-06-26 15:57:45 +00:00
Dongbo He
3b83bc1bc3 8268427: Improve AlgorithmConstraints:checkAlgorithm performance
Co-authored-by: GaofengZhang <zhanggaofeng9@huawei.com>
Reviewed-by: xuelei, ascarpino
2021-06-26 09:54:47 +00:00
Vladimir Kozlov
824a51693e 8269260: Add AVX512 and other SSE + AVX combinations testing for tests which generate vector instructions
Reviewed-by: iveresov, dlong
2021-06-25 22:48:56 +00:00
Alex Menkov
1404e4bf44 8269302: serviceability/dcmd/framework/InvalidCommandTest.java still fails after JDK-8268433
Reviewed-by: kevinw, dcubed
2021-06-25 22:10:48 +00:00
Alexander Matveev
fb0a95fed4 8269036: tools/jpackage/share/AppImagePackageTest.java failed with "hdiutil: create failed - Resource busy"
Reviewed-by: asemenyuk, herrick
2021-06-25 21:27:35 +00:00
Brian Burkhalter
68ef21db41 4847239: (spec) File.createTempFile() should make it clear that it doesn't create the temporary directory
Reviewed-by: naoto, lancea
2021-06-25 19:08:35 +00:00
Brian Burkhalter
3fae4b3720 6633375: FileOutputStream_md.c should be merged into FileOutputStream.c
Reviewed-by: naoto
2021-06-25 19:07:39 +00:00
Brian Burkhalter
5ebed06e8a 8269074: (fs) Files.copy fails to copy from /proc on some linux kernel versions
Reviewed-by: alanb, vtewari
2021-06-25 19:06:42 +00:00
Joe Wang
d799563ac0 8256919: BCEL: Utility.encode forget to close
Reviewed-by: lancea, bpb, naoto
2021-06-25 18:42:07 +00:00
Sandhya Viswanathan
1e3b418a53 8269335: Unable to load svml library
Reviewed-by: psandoz
2021-06-25 18:31:18 +00:00
Naoto Sato
223759fb8a 8266901: Clarify the method description of Duration.toDaysPart()
Reviewed-by: bpb, rriggs, lancea, iris, scolebourne
2021-06-25 18:25:57 +00:00
Patrick Concannon
35c4702055 8268967: Update java.security to use switch expressions
Reviewed-by: xuelei
2021-06-25 16:34:18 +00:00
Thomas Stuefe
b565459f83 8267138: Stray suffix when starting gtests via GTestWrapper.java
Reviewed-by: shade
2021-06-25 16:33:19 +00:00
Patrick Concannon
1d167978e5 8268469: Update java.time to use switch expressions
Reviewed-by: lancea, naoto, dfuchs, iris, chegar
2021-06-25 15:42:38 +00:00
Jan Lahoda
4eb321298a 8268871: Adjust javac to updated exhaustiveness specification
Reviewed-by: vromero
2021-06-25 09:52:06 +00:00
Markus Grönlund
ffa34ed429 8265919: RunThese30M fails "assert((!(((((JfrTraceIdBits::load(value)) & ((1 << 4) << 8)) != 0))))) failed: invariant"
Reviewed-by: egahlin
2021-06-25 09:41:23 +00:00
Ludovic Henry
fdcae6653c 8269092: Add OldObjectSampleEvent.allocationSize field
Reviewed-by: egahlin, jbachorik
2021-06-25 08:30:30 +00:00
Denghui Dong
fd43d9cb40 8269225: JFR.stop misses the written info when the filename is only specified by JFR.start
Reviewed-by: egahlin
2021-06-25 08:15:34 +00:00
Aleksey Shipilev
3a8f3d6cac 8269280: (bf) Replace StringBuffer in *Buffer.toString()
Reviewed-by: alanb, chegar, bpb
2021-06-25 08:08:10 +00:00
Scott Gibbons
c37988d079 8268276: Base64 Decoding optimization for x86 using AVX-512
Reviewed-by: erikj, sviswanathan, kvn
2021-06-25 03:19:48 +00:00
Jonathan Gibbons
44691cc3b0 8268972: Add default impl for recent new Reporter.print method
Reviewed-by: prappo
2021-06-25 01:05:23 +00:00
David Holmes
08ee7ae672 8268855: Cleanup name handling in the Thread class and subclasses
Reviewed-by: lfoltan, coleenp
2021-06-24 23:58:32 +00:00
Guoxiong Li
7ab12856c4 8267610: NPE at at jdk.compiler/com.sun.tools.javac.jvm.Code.emitop
8268748: Javac generates uncorrect bytecodes when using nested pattern variables

Reviewed-by: jlahoda, vromero
2021-06-24 23:07:43 +00:00
Zhengyu Gu
c79034e0c9 8269303: Remove unnecessary forward declaration of PSPromotionManager in cpCache.hpp
Reviewed-by: kbarrett
2021-06-24 21:02:16 +00:00
Daniel D. Daugherty
cfa6a995e1 8269316: ProblemList vmTestbase/vm/mlvm/mixed/stress/regression/b6969574/INDIFY_Test.java on Linux-X64 -Xcomp
Reviewed-by: ccheung
2021-06-24 20:27:56 +00:00
Daniel D. Daugherty
22d8675085 8269315: ProblemList javax/swing/JFileChooser/FileSystemView/SystemIconTest.java on Win-X64
Reviewed-by: ccheung
2021-06-24 20:27:10 +00:00
Daniel D. Daugherty
443a79aaa1 8269314: ProblemList serviceability/dcmd/gc/RunFinalizationTest.java on Win-X64 and linux-aarch64
Reviewed-by: ccheung
2021-06-24 20:26:23 +00:00
Coleen Phillimore
42968db173 8269293: ObjectMonitor thread id fields should be 64 bits.
Reviewed-by: mgronlun, dcubed
2021-06-24 19:34:17 +00:00
Patricio Chilano Mateo
2fd7943ec1 8256425: Obsolete Biased Locking in JDK 18
Reviewed-by: kvn, dholmes, dcubed, rrich
2021-06-24 18:54:41 +00:00
Daniel D. Daugherty
424cc50257 8269307: ProblemList java/awt/KeyboardFocusmanager/TypeAhead/ButtonActionKeyTest/ButtonActionKeyTest.java on win-x64
Reviewed-by: mikael
2021-06-24 16:57:05 +00:00
Christoph Göttschkes
595446bff4 8269087: CheckSegmentedCodeCache test fails in an emulated-client VM
Reviewed-by: iveresov, kvn
2021-06-24 16:49:45 +00:00
Paul Sandoz
63bcd3336e 8269246: Scoped ByteBuffer vector access
Reviewed-by: mcimadamore
2021-06-24 16:02:22 +00:00
Yumin Qi
7c31903dd3 8267075: jcmd VM.cds should print directory of the output files
Reviewed-by: ccheung
2021-06-24 14:52:47 +00:00
Aleksey Shipilev
3fb28d3074 8269218: GaloisCounterMode.overlapDetection misses the JDK-8263436 fix again
Reviewed-by: ascarpino
2021-06-24 06:37:21 +00:00
Aleksey Shipilev
e515873f88 8269216: Useless initialization in com/sun/crypto/provider/PBES2Parameters.java
Reviewed-by: valeriep
2021-06-24 06:36:30 +00:00
Yasumasa Suenaga
d3d3b221d3 8269265: ProblemList serviceability/sa/TestJmapCoreMetaspace.java with ZGC
Reviewed-by: cjplummer
2021-06-24 05:19:42 +00:00
Jatin Bhateja
0c3fc27a45 8268482: compiler/intrinsics/VectorizedMismatchTest.java failed with failed: length in range
Reviewed-by: vlivanov, neliasso
2021-06-24 03:01:01 +00:00
Jie Fu
a30141d636 8269179: Crash in TestMacroLogicVector::testSubWordBoolean: assert(_base >= VectorMask && _base <= VectorZ) failed: Not a Vector
Reviewed-by: kvn, neliasso
2021-06-24 01:17:56 +00:00
Alex Menkov
51d915979c 8236212: CompiledMethodLoad and CompiledMethodUnload events can be posted in START phase
Reviewed-by: sspitsyn, cjplummer
2021-06-24 00:29:36 +00:00
Alex Menkov
280f2d57d1 8268433: serviceability/dcmd/framework/VMVersionTest.java fails with Unable to send object throw not established PipeIO Listener Thread connection
Reviewed-by: sspitsyn, cjplummer
2021-06-24 00:28:45 +00:00
Coleen Phillimore
f375916417 8269186: [REDO] Remove CodeCache::mark_for_evol_deoptimization() method
Reviewed-by: hseigel, lfoltan, sspitsyn
2021-06-23 21:11:06 +00:00
Sandhya Viswanathan
b474314342 8266854: LibraryCallKit::inline_preconditions_checkIndex modifies control flow even if the intrinsic bailed out
Reviewed-by: kvn, jbhateja, vlivanov
2021-06-23 17:25:34 +00:00
Vicente Romero
7e96318a1f 8254571: Erroneous generic type inference in a lambda expression with a checked exception
Reviewed-by: jlahoda, mcimadamore
2021-06-23 17:13:09 +00:00
Mahendra Chhipa
7621fa37ef 8268464: Remove dependancy of TestHttpsServer, HttpTransaction, HttpCallback from open/test/jdk/sun/net/www/protocol/https/ tests
Reviewed-by: dfuchs, michaelm
2021-06-23 15:19:10 +00:00
Coleen Phillimore
f3ba2690c5 8256306: ObjectMonitor::_contentions field should not be 'jint'
Reviewed-by: dholmes, stuefe, dcubed
2021-06-23 14:27:31 +00:00
Coleen Phillimore
52d5d1b361 8269188: [BACKOUT] Remove CodeCache::mark_for_evol_deoptimization() method
Reviewed-by: dholmes, sspitsyn
2021-06-23 14:26:30 +00:00
Harold Seigel
f2e690e0ee 8268720: Unspecified checks on NameAndType constants should not be performed
Reviewed-by: dholmes, lfoltan
2021-06-23 12:11:37 +00:00
Markus Grönlund
1b2147a23f 8269125: Klass enqueue element size calculation wrong when traceid value cross compress limit
Reviewed-by: jbachorik, egahlin
2021-06-23 11:49:25 +00:00
Jan Lahoda
bf70620745 8268961: Parenthesized pattern with guards does not work
8268896: Parenthesized pattern is not guarded by source level check

Reviewed-by: vromero
2021-06-23 10:16:42 +00:00
Per Liden
8128ca1381 8269066: assert(ZAddress::is_marked(addr)) failed: Should be marked
Reviewed-by: eosterlund, stefank, kbarrett, tschatzl
2021-06-23 10:14:38 +00:00
miao zheng
2c29d790ca 8269206: A small typo in comment in test/lib/sun/hotspot/WhiteBox.java
Reviewed-by: dholmes
2021-06-23 08:51:35 +00:00
Xin Liu
1323be54d2 8269064: Dropped messages of AsyncLogWriter cause memleak
Reviewed-by: dholmes, simonis
2021-06-23 08:45:49 +00:00
Aleksey Shipilev
ce917b2359 8269148: Update minor GCC version in GitHub Actions pipeline
Reviewed-by: erikj, dholmes, xliu
2021-06-23 07:39:09 +00:00
Aleksey Shipilev
6237630664 8269120: Build failure with GCC 6.3.0 after JDK-8017163
Reviewed-by: iwalulya, tschatzl, kbarrett
2021-06-23 07:03:51 +00:00
Thomas Schatzl
a5e4307050 8269134: Remove sparsePRT.inline.hpp after JDK-8017163
Reviewed-by: iwalulya, kbarrett
2021-06-23 06:51:53 +00:00
Aleksey Shipilev
17daf32a07 8269138: Move typeArrayOop.inline.hpp include to vectorSupport.cpp
Reviewed-by: stefank, vlivanov
2021-06-23 06:27:40 +00:00
Joshua Zhu
36d82b6ef1 8268858: Determine register pressure automatically by the number of available registers for allocation
Reviewed-by: kvn, dlong
2021-06-23 03:54:00 +00:00
miao zheng
ae3eedce9d 8268727: Remove unused slowpath locking method in OptoRuntime
Reviewed-by: dlong
2021-06-23 02:45:58 +00:00
Guoxiong Li
cd678a383f 8268368: Adopt cast notation for JavaThread conversions
Reviewed-by: dholmes, stefank
2021-06-23 02:21:24 +00:00
Dean Long
ab7ff1e137 8266885: [aarch64] Crash with 'Field too big for insn' for some tests under compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/
Reviewed-by: ngasson, dnsimon, kvn
2021-06-23 01:48:19 +00:00
Jesper Wilhelmsson
b6cfca8a89 Merge 2021-06-23 01:05:44 +00:00
Andy Herrick
35e4c2720d 8268404: [TESTBUG] tools/jpackage/windows/WinInstallerIconTest.java failed "AssertionError: Failed: Check icon"
Reviewed-by: asemenyuk
2021-06-22 19:08:58 +00:00
Kim Barrett
0c693e2f03 8268290: Improve LockFreeQueue<> utility
Reviewed-by: iwalulya, tschatzl
2021-06-22 17:43:59 +00:00
Nils Eliasson
dc12cb78b8 8267652: c2 loop unrolling by 8 results in reading memory past array
Reviewed-by: sviswanathan, kvn, vlivanov
2021-06-22 16:21:35 +00:00
Coleen Phillimore
33c23a1cf2 8264941: Remove CodeCache::mark_for_evol_deoptimization() method
Reviewed-by: kvn, vlivanov, sspitsyn
2021-06-22 16:09:17 +00:00
Roland Westrelin
578c55bbe6 8267399: C2: java/text/Normalizer/ConformanceTest.java test failed with assertion
Reviewed-by: kvn, neliasso
2021-06-22 15:46:44 +00:00
Jorn Vernee
8fa2520803 8268888: Upstream 8268230: Foreign Linker API & Windows user32/kernel32: String conversion seems broken
Reviewed-by: mcimadamore
2021-06-22 15:27:43 +00:00
Erik Österlund
9ec7180f1e 8268524: nmethod::post_compiled_method_load_event racingly called on zombie
Reviewed-by: kvn, neliasso, coleenp
2021-06-22 15:20:10 +00:00
Matthias Baesken
18a1dd261c 8269031: linux x86_64 check for binutils 2.25 or higher after 8265783
Reviewed-by: ihse, erikj
2021-06-22 13:28:41 +00:00
Yi Yang
2e639dd34a 8267657: Add missing PrintC1Statistics before incrementing counters
Reviewed-by: iveresov
2021-06-22 08:30:08 +00:00
Denghui Dong
1f0ea7c3d6 8268857: Merge VM_PrintJNI and VM_PrintThreads and remove the unused field 'is_deadlock' of DeadlockCycle
Reviewed-by: dholmes
2021-06-22 08:28:18 +00:00
Stefan Karlsson
1a818154cf 8269077: TestSystemGC uses "require vm.gc.G1" for large pages subtest
Reviewed-by: tschatzl, kbarrett
2021-06-22 07:44:25 +00:00
Jan Lahoda
01f12fba64 8266631: StandardJavaFileManager: getJavaFileObjects() impl violates the spec
8266596: StandardJavaFileManager: default impls of setLocationFromPaths(), getJavaFileObjectsFromPaths() methods don't throw IllegalArgumentException as specified
8266591: StandardJavaFileManager::getJavaFileObjectsFromPaths() methods contain a typo in their spec
8266590: StandardJavaFileManager::setLocationFromPaths() spec contains an error

Reviewed-by: vromero, jjg
2021-06-22 07:34:30 +00:00
Vicente Romero
6b14c8a1e5 8267421: j.l.constant.DirectMethodHandleDesc.Kind.valueOf(int) implementation doesn't conform to the spec regarding REF_invokeInterface handling
Reviewed-by: mchung
2021-06-22 02:08:15 +00:00
Weijun Wang
ef4ba224c4 8268349: Provide clear run-time warnings about Security Manager deprecation
Reviewed-by: lancea, mullan, alanb
2021-06-22 02:06:59 +00:00
Jatin Bhateja
4099810b29 8268293: VectorAPI cast operation on mask and shuffle is broken
Reviewed-by: psandoz, sviswanathan
2021-06-22 01:31:48 +00:00
Weijun Wang
e2d7ec38af 8267100: [BACKOUT] JDK-8196415 Disable SHA-1 Signed JARs
Co-authored-by: Sean Mullan <mullan@openjdk.org>
Reviewed-by: hchao, xuelei
2021-06-22 00:41:45 +00:00
Jesper Wilhelmsson
0458113c6b Merge 2021-06-21 23:09:01 +00:00
Roland Westrelin
d3ad8cd344 8268672: C2: assert(!loop->is_member(u_loop)) failed: can be in outer loop or out of both loops only
Reviewed-by: kvn, neliasso
2021-06-21 14:16:54 +00:00
Jorn Vernee
f25e7197fe 8268717: Upstream: 8268673: Stack walk across optimized entry frame on fresh native thread fails
Reviewed-by: mcimadamore, erikj
2021-06-21 12:06:51 +00:00
Hui Shi
22ebd1926d 8268362: [REDO] C2 crash when compile negative Arrays.copyOf length after loop
Reviewed-by: kvn, roland
2021-06-21 11:59:00 +00:00
Markus Grönlund
f8df953e61 8268702: JFR diagnostic commands lack argument descriptors when viewed using Platform MBean Server
Reviewed-by: egahlin
2021-06-21 11:16:41 +00:00
Thomas Schatzl
cd20c01942 8268458: Add verification type for evacuation failures
Reviewed-by: kbarrett, iwalulya
2021-06-21 11:12:29 +00:00
Thomas Schatzl
a58c477c49 8268952: Automatically update heap sizes in G1MonitoringScope
Reviewed-by: kbarrett, iwalulya
2021-06-21 11:11:14 +00:00
Christoph Göttschkes
cbec37d45d 8269029: compiler/codegen/TestCharVect2.java fails for client VMs
Reviewed-by: kvn, jiefu
2021-06-21 11:08:33 +00:00
Thomas Schatzl
1692fd2eba 8017163: G1: Refactor remembered sets
8048504: G1: Investigate replacing the coarse and fine grained data structures in the remembered sets
6949259: G1: Merge sparse and fine remembered set hash tables

Co-authored-by: Ivan Walulya <iwalulya@openjdk.org>
Co-authored-by: Thomas Schatzl <tschatzl@openjdk.org>
Reviewed-by: sjohanss, iwalulya
2021-06-21 10:06:05 +00:00
Joel Borggrén-Franck
0b8a0e2b58 8266082: AssertionError in Annotate.fromAnnotations with -Xdoclint
Reviewed-by: vromero
2021-06-21 08:39:35 +00:00
Boris Ulasevich
c294ae4fed 8267042: bug in monitor locking/unlocking on ARM32 C1 due to uninitialized BasicObjectLock::_displaced_header
Co-authored-by: Chris Cole <chris@sageembedded.com>
Reviewed-by: dsamersoff
2021-06-21 06:04:57 +00:00
Jie Fu
b358b54c4f 8269063: Build failure due to VerifyReceiverTypes was not declared after JDK-8268405
Reviewed-by: kvn
2021-06-20 22:55:49 +00:00
Jesper Wilhelmsson
b7d78a5b66 Merge 2021-06-18 23:04:20 +00:00
Erik Gahlin
b8f073be84 8268316: Typo in JFR jdk.Deserialization event
Reviewed-by: iignatyev
2021-06-18 22:05:52 +00:00
Xin Liu
b9d7337697 8268638: semaphores of AsyncLogWriter may be broken when JVM is exiting.
Backport-of: fa3b44d438
2021-06-18 21:29:55 +00:00
Chris Plummer
8caeca003e 8264775: ClhsdbFindPC still fails with java.lang.RuntimeException: 'In java stack' missing from stdout/stderr
Reviewed-by: dcubed
2021-06-18 20:27:30 +00:00
Boris Ulasevich
8f2456e5b0 8267042: bug in monitor locking/unlocking on ARM32 C1 due to uninitialized BasicObjectLock::_displaced_header
Co-authored-by: Chris Cole <chris@sageembedded.com>
Reviewed-by: dsamersoff
2021-06-18 16:25:25 +00:00
Joe Wang
7e03cf2916 8265073: XML transformation and indentation when using xml:space
Reviewed-by: naoto, lancea, iris
2021-06-18 16:03:30 +00:00
Igor Ignatyev
60389eedb3 8269025: jsig/Testjsig.java doesn't check exit code
Reviewed-by: hseigel
2021-06-18 15:25:25 +00:00
Paul Sandoz
dab00ee59b 8266518: Refactor and expand scatter/gather tests
Reviewed-by: sviswanathan
2021-06-18 14:22:16 +00:00
Erik Gahlin
f9c8c1c386 8268903: JFR: RecordingStream::dump is missing @since
Reviewed-by: mgronlun
2021-06-18 13:51:57 +00:00
Albert Mingkun Yang
5ae9a12858 8268964: Remove unused ReferenceProcessorAtomicMutator
Reviewed-by: tschatzl, pliden
2021-06-18 11:48:59 +00:00
Mark Sheppard
d8a0582a36 8265369: [macos-aarch64] java/net/MulticastSocket/Promiscuous.java failed with "SocketException: Cannot allocate memory"
Reviewed-by: dfuchs, michaelm, chegar
2021-06-18 10:54:23 +00:00
Igor Ignatyev
21abcc4a5a 8268564: mark hotspot serviceability/attach tests which ignore external VM flags
Reviewed-by: sspitsyn
2021-06-18 10:06:12 +00:00
Igor Ignatyev
f83c6b8a6a 8268531: mark SDTProbesGNULinuxTest as ignoring external VM flags
Reviewed-by: sspitsyn
2021-06-18 10:05:15 +00:00
Igor Ignatyev
8366c6936e 8268541: mark hotspot serviceability/sa tests which ignore external VM flags
Reviewed-by: sspitsyn
2021-06-18 10:04:25 +00:00
Igor Ignatyev
5b198986ce 8268563: mark hotspot serviceability/jvmti tests which ignore external VM flags
Reviewed-by: sspitsyn
2021-06-18 10:03:21 +00:00
Igor Ignatyev
2f65d4021f 8268599: mark hotspot runtime/sealedClasses tests which ignore external VM flags
Reviewed-by: dholmes, mseledtsov
2021-06-18 10:01:58 +00:00
Igor Ignatyev
3e1dc0a765 8268598: mark hotspot runtime/stringtable tests which ignore external VM flags
Reviewed-by: hseigel, mseledtsov
2021-06-18 10:01:03 +00:00
Igor Ignatyev
58eddc8110 8268594: runtime/handshake tests don't need WhiteBox after AOT removal
Reviewed-by: dholmes, mseledtsov
2021-06-18 10:00:21 +00:00
Igor Ignatyev
9f4f039231 8268596: mark hotspot runtime/verifier tests which ignore external VM flags
Reviewed-by: hseigel, mseledtsov
2021-06-18 09:59:34 +00:00
Igor Ignatyev
4006fe735a 8268597: mark hotspot runtime/symboltable tests which ignore external VM flags
Reviewed-by: dholmes, mseledtsov
2021-06-18 09:58:34 +00:00
Igor Ignatyev
8ccb76eb13 8268601: mark hotspot runtime/records tests which ignore external VM flags
Reviewed-by: dholmes, mseledtsov
2021-06-18 09:57:44 +00:00
Igor Ignatyev
59d84787e9 8268591: a few runtime/jni tests don't need /othervm
Reviewed-by: dholmes, mseledtsov
2021-06-18 09:56:36 +00:00
Julia Boes
f4d20b215e 8268900: com/sun/net/httpserver/Headers.java: Fix indentation and whitespace
Reviewed-by: dfuchs, chegar, michaelm
2021-06-18 09:35:48 +00:00
Vladimir Ivanov
7ed3634da8 8268405: Several regressions 4-17% after CHA changes
Reviewed-by: kvn, dlong
2021-06-18 07:50:22 +00:00
Rajan Halade
483f1ee211 8268678: LetsEncryptCA.java test fails as Let’s Encrypt Authority X3 is retired
Backport-of: 58e6e6d919
2021-06-18 00:59:29 +00:00
Valerie Peng
80dc262e81 8265500: Some impls of javax.crypto.Cipher.init() do not throw UnsupportedOperationExc for unsupported modes
Reviewed-by: xuelei
2021-06-17 23:27:54 +00:00
4641 changed files with 159032 additions and 128970 deletions

View File

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

4
.gitignore vendored
View File

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

View File

@@ -1,5 +1,3 @@
[![official JetBrains project](http://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
# Welcome to the JDK!
For build instructions please see the

View File

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

0
configure vendored Executable file → Normal file
View File

View File

@@ -488,7 +488,7 @@
<li><code>CONF</code> and <code>CONF_NAME</code> - Selecting the configuration(s) to use. See <a href="#using-multiple-configurations">Using Multiple Configurations</a></li>
</ul>
<h4 id="test-make-control-variables">Test Make Control Variables</h4>
<p>These make control variables only make sense when running tests. Please see <a href="testing.html">Testing the JDK</a> for details.</p>
<p>These make control variables only make sense when running tests. Please see <strong>Testing the JDK</strong> (<a href="testing.html">html</a>, <a href="testing.md">markdown</a>) for details.</p>
<ul>
<li><code>TEST</code></li>
<li><code>TEST_JOBS</code></li>
@@ -506,7 +506,7 @@
</ul>
<h2 id="running-tests">Running Tests</h2>
<p>Most of the JDK tests are using the <a href="http://openjdk.java.net/jtreg">JTReg</a> test framework. Make sure that your configuration knows where to find your installation of JTReg. If this is not picked up automatically, use the <code>--with-jtreg=&lt;path to jtreg home&gt;</code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc.</p>
<p>The <a href="https://wiki.openjdk.java.net/display/Adoption">Adoption Group</a> provides recent builds of jtreg <a href="https://ci.adoptopenjdk.net/view/Dependencies/job/jtreg/lastSuccessfulBuild/artifact">here</a>. Download the latest <code>.tar.gz</code> file, unpack it, and point <code>--with-jtreg</code> to the <code>jtreg</code> directory that you just unpacked.</p>
<p>The <a href="https://wiki.openjdk.java.net/display/Adoption">Adoption Group</a> provides recent builds of jtreg <a href="https://ci.adoptopenjdk.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/">here</a>. Download the latest <code>.tar.gz</code> file, unpack it, and point <code>--with-jtreg</code> to the <code>jtreg</code> directory that you just unpacked.</p>
<p>Building of Hotspot Gtest suite requires the source code of Google Test framework. The top directory, which contains both <code>googletest</code> and <code>googlemock</code> directories, should be specified via <code>--with-gtest</code>. The supported version of Google Test is 1.8.1, whose source code can be obtained:</p>
<ul>
<li>by downloading and unpacking the source bundle from <a href="https://github.com/google/googletest/releases/tag/release-1.8.1">here</a></li>
@@ -514,7 +514,7 @@
</ul>
<p>To execute the most basic tests (tier 1), use:</p>
<pre><code>make run-test-tier1</code></pre>
<p>For more details on how to run tests, please see the <a href="testing.html">Testing the JDK</a> document.</p>
<p>For more details on how to run tests, please see <strong>Testing the JDK</strong> (<a href="testing.html">html</a>, <a href="testing.md">markdown</a>).</p>
<h2 id="cross-compiling">Cross-compiling</h2>
<p>Cross-compiling means using one platform (the <em>build</em> platform) to generate output that can ran on another platform (the <em>target</em> platform).</p>
<p>The typical reason for cross-compiling is that the build is performed on a more powerful desktop computer, but the resulting binaries will be able to run on a different, typically low-performing system. Most of the complications that arise when building for embedded is due to this separation of <em>build</em> and <em>target</em> systems.</p>

View File

@@ -818,7 +818,7 @@ configuration, as opposed to the "configure time" configuration.
#### Test Make Control Variables
These make control variables only make sense when running tests. Please see
[Testing the JDK](testing.html) for details.
**Testing the JDK** ([html](testing.html), [markdown](testing.md)) for details.
* `TEST`
* `TEST_JOBS`
@@ -848,7 +848,7 @@ containing `lib/jtreg.jar` etc.
The [Adoption Group](https://wiki.openjdk.java.net/display/Adoption) provides
recent builds of jtreg [here](
https://ci.adoptopenjdk.net/view/Dependencies/job/jtreg/lastSuccessfulBuild/artifact).
https://ci.adoptopenjdk.net/view/Dependencies/job/dependency_pipeline/lastSuccessfulBuild/artifact/jtreg/).
Download the latest `.tar.gz` file, unpack it, and point `--with-jtreg` to the
`jtreg` directory that you just unpacked.
@@ -865,8 +865,8 @@ To execute the most basic tests (tier 1), use:
make run-test-tier1
```
For more details on how to run tests, please see the [Testing
the JDK](testing.html) document.
For more details on how to run tests, please see **Testing the JDK**
([html](testing.html), [markdown](testing.md)).
## Cross-compiling

View File

@@ -50,6 +50,7 @@
<li><a href="#nullptr">nullptr</a></li>
<li><a href="#atomic">&lt;atomic&gt;</a></li>
<li><a href="#uniform-initialization">Uniform Initialization</a></li>
<li><a href="#local-function-objects">Local Function Objects</a></li>
<li><a href="#additional-permitted-features">Additional Permitted Features</a></li>
<li><a href="#excluded-features">Excluded Features</a></li>
<li><a href="#undecided-features">Undecided Features</a></li>
@@ -194,7 +195,7 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<p>Similar discussions for some other projects:</p>
<ul>
<li><p><a href="https://google.github.io/styleguide/cppguide.html">Google C++ Style Guide</a> — Currently (2020) targeting C++17.</p></li>
<li><p><a href="https://chromium-cpp.appspot.com">C++11 and C++14 use in Chromium</a> — Categorizes features as allowed, banned, or to be discussed.</p></li>
<li><p><a href="https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++11.md">C++11 and C++14 use in Chromium</a> — Categorizes features as allowed, banned, or to be discussed.</p></li>
<li><p><a href="https://llvm.org/docs/CodingStandards.html">llvm Coding Standards</a> — Currently (2020) targeting C++14.</p></li>
<li><p><a href="https://firefox-source-docs.mozilla.org/code-quality/coding-style/using_cxx_in_firefox_code.html">Using C++ in Mozilla code</a> — C++17 support is required for recent versions (2020).</p></li>
</ul>
@@ -254,8 +255,7 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<li><p>Function argument deduction. This is always permitted, and indeed encouraged. It is nearly always better to allow the type of a function template argument to be deduced rather than explicitly specified.</p></li>
<li><p><code>auto</code> variable declarations (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf">n1984</a>)<br> For local variables, this can be used to make the code clearer by eliminating type information that is obvious or irrelevant. Excessive use can make code much harder to understand.</p></li>
<li><p>Function return type deduction (<a href="https://isocpp.org/files/papers/N3638.html">n3638</a>)<br> Only use if the function body has a very small number of <code>return</code> statements, and generally relatively little other code.</p></li>
<li><p>Generic lambdas. Lambdas are not (yet) permitted.</p></li>
<li><p>Lambda init captures. Lambdas are not (yet) permitted.</p></li>
<li><p>Also see <a href="#lambdaexpressions">lambda expressions</a>.</p></li>
</ul>
<h3 id="expression-sfinae">Expression SFINAE</h3>
<p><a href="https://en.cppreference.com/w/cpp/language/sfinae" title="Substitution Failure Is Not An Error">Substitution Failure Is Not An Error</a> (SFINAE) is a template metaprogramming technique that makes use of template parameter substitution failures to make compile-time decisions.</p>
@@ -288,6 +288,121 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<li><a href="https://en.cppreference.com/w/cpp/language/aggregate_initialization">aggregate initialization</a></li>
</ul>
<p>Although related, the use of <code>std::initializer_list</code> remains forbidden, as part of the avoidance of the C++ Standard Library in HotSpot code.</p>
<h3 id="local-function-objects">Local Function Objects</h3>
<ul>
<li>Local function objects, including lambda expressions, may be used.</li>
<li>Lambda expressions must only be used as a downward value.</li>
<li>Prefer <code>[&amp;]</code> as the capture list of a lambda expression.</li>
<li>Return type deduction for lambda expressions is permitted, and indeed encouraged.</li>
<li>An empty parameter list for a lambda expression may be elided.</li>
<li>A lambda expression must not be <code>mutable</code>.</li>
<li>Generic lambda expressions are permitted.</li>
<li>Lambda expressions should be relatively simple.</li>
<li>Anonymous lambda expressions should not overly clutter the enclosing expression.</li>
<li>An anonymous lambda expression must not be directly invoked.</li>
<li>Bind expressions are forbidden.</li>
</ul>
<p>Single-use function objects can be defined locally within a function, directly at the point of use. This is an alternative to having a function or function object class defined at class or namespace scope.</p>
<p>This usage was somewhat limited by C++03, which does not permit such a class to be used as a template parameter. That restriction was removed by C++11 (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm">n2657</a>). Use of this feature is permitted.</p>
<p>Many HotSpot protocols involve &quot;function-like&quot; objects that involve some named member function rather than a call operator. For example, a function that performs some action on all threads might be written as</p>
<pre><code>void do_something() {
struct DoSomething : public ThreadClosure {
virtual void do_thread(Thread* t) {
... do something with t ...
}
} closure;
Threads::threads_do(&amp;closure);
}</code></pre>
<p>HotSpot code has historically usually placed the DoSomething class at namespace (or sometimes class) scope. This separates the function's code from its use, often to the detriment of readability. It requires giving the class a globally unique name (if at namespace scope). It also loses the information that the class is intended for use in exactly one place, and does not have any subclasses. (However, the latter can now be indicated by declaring it <code>final</code>.) Often, for simplicity, a local class will skip things like access control and accessor functions, giving the enclosing function direct access to the implementation and eliminating some boilerplate that might be provided if the class is in some outer (more accessible) scope. On the other hand, if there is a lot of surrounding code in the function body or the local class is of significant size, defining it locally can increase clutter and reduce readability.</p>
<p><a name="lambdaexpressions"></a> C++11 added <em>lambda expressions</em> as a new way to write a function object. Simple lambda expressions can be significantly more concise than a function object, eliminating a lot of boiler-plate. On the other hand, a complex lambda expression may not provide much, if any, readability benefit compared to an ordinary function object. Also, while a lambda can encapsulate a call to a &quot;function-like&quot; object, it cannot be used in place of such.</p>
<p>A common use for local functions is as one-use <a href="https://en.cppreference.com/w/cpp/language/raii" title="Resource Acquisition Is Initialization">RAII</a> objects. The amount of boilerplate for a function object class (local or not) makes such usage somewhat clumsy and verbose. But with the help of a small amount of supporting utility code, lambdas work particularly well for this use case.</p>
<p>Another use for local functions is <a href="https://en.wikipedia.org/wiki/Partial_application" title="Partial Application">partial application</a>. Again here, lambdas are typically much simpler and less verbose than function object classes.</p>
<p>Because of these benefits, lambda expressions are permitted in HotSpot code, with some restrictions and usage guidance. An anonymous lambda is one which is passed directly as an argument. A named lambda is the value of a variable, which is its name.</p>
<p>Lambda expressions should only be passed downward. In particular, a lambda should not be returned from a function or stored in a global variable, whether directly or as the value of a member of some other object. Lambda capture is syntactically subtle (by design), and propagating a lambda in such ways can easily pass references to captured values to places where they are no longer valid. In particular, members of the enclosing <code>this</code> object are effectively captured by reference, even if the default capture is by-value. For such uses-cases a function object class should be used to make the desired value capturing and propagation explicit.</p>
<p>Limiting the capture list to <code>[&amp;]</code> (implicitly capture by reference) is a simplifying restriction that still provides good support for HotSpot usage, while reducing the cases a reader must recognize and understand.</p>
<ul>
<li><p>Many common lambda uses require reference capture. Not permitting it would substantially reduce the utility of lambdas.</p></li>
<li><p>Referential transparency. Implicit reference capture makes variable references in the lambda body have the same meaning they would have in the enclosing code. There isn't a semantic barrier across which the meaning of a variable changes.</p></li>
<li><p>Explicit reference capture introduces significant clutter, especially when lambda expressions are relatively small and simple, as they should be in HotSpot code.</p></li>
<li><p>There are a number of reasons why by-value capture might be used, but for the most part they don't apply to HotSpot code, given other usage restrictions.</p>
<ul>
<li><p>A primary use-case for by-value capture is to support escaping uses, where values captured by-reference might become invalid. That use-case doesn't apply if only downward lambdas are used.</p></li>
<li><p>By-value capture can also make a lambda-local copy for mutation, which requires making the lambda <code>mutable</code>; see below.</p></li>
<li><p>By-value capture might be viewed as an optimization, avoiding any overhead for reference capture of cheap to copy values. But the compiler can often eliminate any such overhead.</p></li>
<li><p>By-value capture by a non-<code>mutable</code> lambda makes the captured values const, preventing any modification by the lambda and making the captured value unaffected by modifications to the outer variable. But this only applies to captured auto variables, not member variables, and is inconsistent with referential transparency.</p></li>
</ul></li>
<li><p>Non-capturing lambdas (with an empty capture list - <code>[]</code>) have limited utility. There are cases where no captures are required (pure functions, for example), but if the function is small and simple then that's obvious anyway.</p></li>
<li><p>Capture initializers (a C++14 feature - <a href="https://isocpp.org/files/papers/N3649.html">N3649</a>) are not permitted. Capture initializers inherently increase the complexity of the capture list, and provide little benefit over an additional in-scope local variable.</p></li>
</ul>
<p>The use of <code>mutable</code> lambda expressions is forbidden because there don't seem to be many, if any, good use-cases for them in HotSpot. A lambda expression needs to be mutable in order to modify a by-value captured value. But with only downward lambdas, such usage seems likely to be rare and complicated. It is better to use a function object class in any such cases that arise, rather than requiring all HotSpot developers to understand this relatively obscure feature.</p>
<p>While it is possible to directly invoke an anonymous lambda expression, that feature should not be used, as such a form can be confusing to readers. Instead, name the lambda and call it by name.</p>
<p>Some reasons to prefer a named lambda instead of an anonymous lambda are</p>
<ul>
<li><p>The body contains non-trivial control flow or declarations or other nested constructs.</p></li>
<li><p>Its role in an argument list is hard to guess without examining the function declaration. Give it a name that indicates its purpose.</p></li>
<li><p>It has an unusual capture list.</p></li>
<li><p>It has a complex explicit return type or parameter types.</p></li>
</ul>
<p>Lambda expressions, and particularly anonymous lambda expressions, should be simple and compact. One-liners are good. Anonymous lambdas should usually be limited to a couple lines of body code. More complex lambdas should be named. A named lambda should not clutter the enclosing function and make it long and complex; do continue to break up large functions via the use of separate helper functions.</p>
<p>An anonymous lambda expression should either be a one-liner in a one-line expression, or isolated in its own set of lines. Don't place part of a lambda expression on the same line as other arguments to a function. The body of a multi-line lambda argument should be indented from the start of the capture list, as if that were the start of an ordinary function definition. The body of a multi-line named lambda should be indented one step from the variable's indentation.</p>
<p>Some examples:</p>
<ol type="1">
<li><code>foo([&amp;] { ++counter; });</code></li>
<li><code>foo(x, [&amp;] { ++counter; });</code></li>
<li><code>foo([&amp;] { if (predicate) ++counter; });</code></li>
<li><code>foo([&amp;] { auto tmp = process(x); tmp.f(); return tmp.g(); })</code></li>
<li><p>Separate one-line lambda from other arguments:</p>
<pre><code>foo(c.begin(), c.end(),
[&amp;] (const X&amp; x) { do_something(x); return x.value(); });</code></pre></li>
<li><p>Indentation for multi-line lambda:</p>
<pre><code>c.do_entries([&amp;] (const X&amp; x) {
do_something(x, a);
do_something1(x, b);
do_something2(x, c);
});</code></pre></li>
<li><p>Separate multi-line lambda from other arguments:</p>
<pre><code>foo(c.begin(), c.end(),
[&amp;] (const X&amp; x) {
do_something(x, a);
do_something1(x, b);
do_something2(x, c);
});</code></pre></li>
<li><p>Multi-line named lambda:</p>
<pre><code>auto do_entry = [&amp;] (const X&amp; x) {
do_something(x, a);
do_something1(x, b);
do_something2(x, c);
};</code></pre></li>
</ol>
<p>Item 4, and especially items 6 and 7, are pushing the simplicity limits for anonymous lambdas. Item 6 might be better written using a named lambda:</p>
<pre><code>c.do_entries(do_entry);</code></pre>
<p>Note that C++11 also added <em>bind expressions</em> as a way to write a function object for partial application, using <code>std::bind</code> and related facilities from the Standard Library. <code>std::bind</code> generalizes and replaces some of the binders from C++03. Bind expressions are not permitted in HotSpot code. They don't provide enough benefit over lambdas or local function classes in the cases where bind expressions are applicable to warrant the introduction of yet another mechanism in this space into HotSpot code.</p>
<p>References:</p>
<ul>
<li>Local and unnamed types as template parameters (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm">n2657</a>)</li>
<li>New wording for C++0x lambdas (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2927.pdf">n2927</a>)</li>
<li>Generalized lambda capture (init-capture) (<a href="https://isocpp.org/files/papers/N3648.html">N3648</a>)</li>
<li>Generic (polymorphic) lambda expressions (<a href="https://isocpp.org/files/papers/N3649.html">N3649</a>)</li>
</ul>
<p>References from C++17</p>
<ul>
<li>Wording for constexpr lambda (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0170r1.pdf">p0170r1</a>)</li>
<li>Lambda capture of *this by Value (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0018r3.html">p0018r3</a>)</li>
</ul>
<p>References from C++20</p>
<ul>
<li>Allow lambda capture [=, this] (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0409r2.html">p0409r2</a>)</li>
<li>Familiar template syntax for generic lambdas (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0428r2.pdf">p0428r2</a>)</li>
<li>Simplifying implicit lambda capture (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0588r1.html">p0588r1</a>)</li>
<li>Default constructible and assignable stateless lambdas (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0624r2.pdf">p0624r2</a>)</li>
<li>Lambdas in unevaluated contexts (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0315r4.pdf">p0315r4</a>)</li>
<li>Allow pack expansion in lambda init-capture (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0780r2.html">p0780r2</a>) (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2095r0.html">p2095r0</a>)</li>
<li>Deprecate implicit capture of this via [=] (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0806r2.html">p0806r2</a>)</li>
</ul>
<p>References from C++23</p>
<ul>
<li>Make () more optional for lambdas (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1102r2.html">p1102r2</a>)</li>
</ul>
<h3 id="additional-permitted-features">Additional Permitted Features</h3>
<ul>
<li><p><code>constexpr</code> (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf">n2235</a>) (<a href="https://isocpp.org/files/papers/N3652.html">n3652</a>)</p></li>
@@ -305,7 +420,6 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<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>
<h3 id="excluded-features">Excluded Features</h3>
@@ -337,7 +451,6 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<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>
<li><p><code>[[noreturn]]</code> attribute (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf">n2761</a>)</p></li>
<li><p>Rvalue references and move semantics</p></li>
<li><p>Lambdas</p></li>
</ul>
</body>
</html>

View File

@@ -409,7 +409,7 @@ Similar discussions for some other projects:
* [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html) &mdash;
Currently (2020) targeting C++17.
* [C++11 and C++14 use in Chromium](https://chromium-cpp.appspot.com) &mdash;
* [C++11 and C++14 use in Chromium](https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++11.md) &mdash;
Categorizes features as allowed, banned, or to be discussed.
* [llvm Coding Standards](https://llvm.org/docs/CodingStandards.html) &mdash;
@@ -596,9 +596,7 @@ use can make code much harder to understand.
Only use if the function body has a very small number of `return`
statements, and generally relatively little other code.
* Generic lambdas. Lambdas are not (yet) permitted.
* Lambda init captures. Lambdas are not (yet) permitted.
* Also see [lambda expressions](#lambdaexpressions).
### Expression SFINAE
@@ -703,6 +701,273 @@ Some relevant sections from cppreference.com:
Although related, the use of `std::initializer_list` remains forbidden, as
part of the avoidance of the C++ Standard Library in HotSpot code.
### Local Function Objects
* Local function objects, including lambda expressions, may be used.
* Lambda expressions must only be used as a downward value.
* Prefer `[&]` as the capture list of a lambda expression.
* Return type deduction for lambda expressions is permitted, and indeed encouraged.
* An empty parameter list for a lambda expression may be elided.
* A lambda expression must not be `mutable`.
* Generic lambda expressions are permitted.
* Lambda expressions should be relatively simple.
* Anonymous lambda expressions should not overly clutter the enclosing expression.
* An anonymous lambda expression must not be directly invoked.
* Bind expressions are forbidden.
Single-use function objects can be defined locally within a function,
directly at the point of use. This is an alternative to having a function
or function object class defined at class or namespace scope.
This usage was somewhat limited by C++03, which does not permit such a class
to be used as a template parameter. That restriction was removed by C++11
([n2657]). Use of this feature is permitted.
Many HotSpot protocols involve "function-like" objects that involve some
named member function rather than a call operator. For example, a function
that performs some action on all threads might be written as
```
void do_something() {
struct DoSomething : public ThreadClosure {
virtual void do_thread(Thread* t) {
... do something with t ...
}
} closure;
Threads::threads_do(&closure);
}
```
HotSpot code has historically usually placed the DoSomething class at
namespace (or sometimes class) scope. This separates the function's code
from its use, often to the detriment of readability. It requires giving the
class a globally unique name (if at namespace scope). It also loses the
information that the class is intended for use in exactly one place, and
does not have any subclasses. (However, the latter can now be indicated by
declaring it `final`.) Often, for simplicity, a local class will skip
things like access control and accessor functions, giving the enclosing
function direct access to the implementation and eliminating some
boilerplate that might be provided if the class is in some outer (more
accessible) scope. On the other hand, if there is a lot of surrounding code
in the function body or the local class is of significant size, defining it
locally can increase clutter and reduce readability.
<a name="lambdaexpressions"></a>
C++11 added _lambda expressions_ as a new way to write a function object.
Simple lambda expressions can be significantly more concise than a function
object, eliminating a lot of boiler-plate. On the other hand, a complex
lambda expression may not provide much, if any, readability benefit compared
to an ordinary function object. Also, while a lambda can encapsulate a call
to a "function-like" object, it cannot be used in place of such.
A common use for local functions is as one-use [RAII] objects. The amount
of boilerplate for a function object class (local or not) makes such usage
somewhat clumsy and verbose. But with the help of a small amount of
supporting utility code, lambdas work particularly well for this use case.
Another use for local functions is [partial application][PARTIALAPP]. Again
here, lambdas are typically much simpler and less verbose than function
object classes.
Because of these benefits, lambda expressions are permitted in HotSpot code,
with some restrictions and usage guidance. An anonymous lambda is one which
is passed directly as an argument. A named lambda is the value of a
variable, which is its name.
Lambda expressions should only be passed downward. In particular, a lambda
should not be returned from a function or stored in a global variable,
whether directly or as the value of a member of some other object. Lambda
capture is syntactically subtle (by design), and propagating a lambda in
such ways can easily pass references to captured values to places where they
are no longer valid. In particular, members of the enclosing `this` object
are effectively captured by reference, even if the default capture is
by-value. For such uses-cases a function object class should be used to
make the desired value capturing and propagation explicit.
Limiting the capture list to `[&]` (implicitly capture by reference) is a
simplifying restriction that still provides good support for HotSpot usage,
while reducing the cases a reader must recognize and understand.
* Many common lambda uses require reference capture. Not permitting it
would substantially reduce the utility of lambdas.
* Referential transparency. Implicit reference capture makes variable
references in the lambda body have the same meaning they would have in the
enclosing code. There isn't a semantic barrier across which the meaning of
a variable changes.
* Explicit reference capture introduces significant clutter, especially when
lambda expressions are relatively small and simple, as they should be in
HotSpot code.
* There are a number of reasons why by-value capture might be used, but for
the most part they don't apply to HotSpot code, given other usage restrictions.
* A primary use-case for by-value capture is to support escaping uses,
where values captured by-reference might become invalid. That use-case
doesn't apply if only downward lambdas are used.
* By-value capture can also make a lambda-local copy for mutation, which
requires making the lambda `mutable`; see below.
* By-value capture might be viewed as an optimization, avoiding any
overhead for reference capture of cheap to copy values. But the
compiler can often eliminate any such overhead.
* By-value capture by a non-`mutable` lambda makes the captured values
const, preventing any modification by the lambda and making the captured
value unaffected by modifications to the outer variable. But this only
applies to captured auto variables, not member variables, and is
inconsistent with referential transparency.
* Non-capturing lambdas (with an empty capture list - `[]`) have limited
utility. There are cases where no captures are required (pure functions,
for example), but if the function is small and simple then that's obvious
anyway.
* Capture initializers (a C++14 feature - [N3649]) are not permitted.
Capture initializers inherently increase the complexity of the capture list,
and provide little benefit over an additional in-scope local variable.
The use of `mutable` lambda expressions is forbidden because there don't
seem to be many, if any, good use-cases for them in HotSpot. A lambda
expression needs to be mutable in order to modify a by-value captured value.
But with only downward lambdas, such usage seems likely to be rare and
complicated. It is better to use a function object class in any such cases
that arise, rather than requiring all HotSpot developers to understand this
relatively obscure feature.
While it is possible to directly invoke an anonymous lambda expression, that
feature should not be used, as such a form can be confusing to readers.
Instead, name the lambda and call it by name.
Some reasons to prefer a named lambda instead of an anonymous lambda are
* The body contains non-trivial control flow or declarations or other nested
constructs.
* Its role in an argument list is hard to guess without examining the
function declaration. Give it a name that indicates its purpose.
* It has an unusual capture list.
* It has a complex explicit return type or parameter types.
Lambda expressions, and particularly anonymous lambda expressions, should be
simple and compact. One-liners are good. Anonymous lambdas should usually
be limited to a couple lines of body code. More complex lambdas should be
named. A named lambda should not clutter the enclosing function and make it
long and complex; do continue to break up large functions via the use of
separate helper functions.
An anonymous lambda expression should either be a one-liner in a one-line
expression, or isolated in its own set of lines. Don't place part of a
lambda expression on the same line as other arguments to a function. The
body of a multi-line lambda argument should be indented from the start of
the capture list, as if that were the start of an ordinary function
definition. The body of a multi-line named lambda should be indented one
step from the variable's indentation.
Some examples:
1. `foo([&] { ++counter; });`
2. `foo(x, [&] { ++counter; });`
3. `foo([&] { if (predicate) ++counter; });`
4. `foo([&] { auto tmp = process(x); tmp.f(); return tmp.g(); })`
5. Separate one-line lambda from other arguments:
```
foo(c.begin(), c.end(),
[&] (const X& x) { do_something(x); return x.value(); });
```
6. Indentation for multi-line lambda:
```
c.do_entries([&] (const X& x) {
do_something(x, a);
do_something1(x, b);
do_something2(x, c);
});
```
7. Separate multi-line lambda from other arguments:
```
foo(c.begin(), c.end(),
[&] (const X& x) {
do_something(x, a);
do_something1(x, b);
do_something2(x, c);
});
```
8. Multi-line named lambda:
```
auto do_entry = [&] (const X& x) {
do_something(x, a);
do_something1(x, b);
do_something2(x, c);
};
```
Item 4, and especially items 6 and 7, are pushing the simplicity limits for
anonymous lambdas. Item 6 might be better written using a named lambda:
```
c.do_entries(do_entry);
```
Note that C++11 also added _bind expressions_ as a way to write a function
object for partial application, using `std::bind` and related facilities
from the Standard Library. `std::bind` generalizes and replaces some of the
binders from C++03. Bind expressions are not permitted in HotSpot code.
They don't provide enough benefit over lambdas or local function classes in
the cases where bind expressions are applicable to warrant the introduction
of yet another mechanism in this space into HotSpot code.
References:
* Local and unnamed types as template parameters ([n2657])
* New wording for C++0x lambdas ([n2927])
* Generalized lambda capture (init-capture) ([N3648])
* Generic (polymorphic) lambda expressions ([N3649])
[n2657]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm
[n2927]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2927.pdf
[N3648]: https://isocpp.org/files/papers/N3648.html
[N3649]: https://isocpp.org/files/papers/N3649.html
References from C++17
* Wording for constexpr lambda ([p0170r1])
* Lambda capture of *this by Value ([p0018r3])
[p0170r1]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0170r1.pdf
[p0018r3]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0018r3.html
References from C++20
* Allow lambda capture [=, this] ([p0409r2])
* Familiar template syntax for generic lambdas ([p0428r2])
* Simplifying implicit lambda capture ([p0588r1])
* Default constructible and assignable stateless lambdas ([p0624r2])
* Lambdas in unevaluated contexts ([p0315r4])
* Allow pack expansion in lambda init-capture ([p0780r2]) ([p2095r0])
* Deprecate implicit capture of this via [=] ([p0806r2])
[p0409r2]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0409r2.html
[p0428r2]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0428r2.pdf
[p0588r1]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0588r1.html
[p0624r2]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0624r2.pdf
[p0315r4]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0315r4.pdf
[p0780r2]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0780r2.html
[p2095r0]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2095r0.html
[p0806r2]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0806r2.html
References from C++23
* Make () more optional for lambdas ([p1102r2])
[p1102r2]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1102r2.html
### Additional Permitted Features
* `constexpr`
@@ -757,9 +1022,6 @@ 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))
* Local and unnamed types as template parameters
([n2657](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm))
* Range-based `for` loops
([n2930](http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html))
([range-for](https://en.cppreference.com/w/cpp/language/range-for))
@@ -837,9 +1099,6 @@ features that have not yet been discussed.
* Rvalue references and move semantics
* Lambdas
[ADL]: https://en.cppreference.com/w/cpp/language/adl
"Argument Dependent Lookup"
@@ -854,3 +1113,6 @@ features that have not yet been discussed.
[SFINAE]: https://en.cppreference.com/w/cpp/language/sfinae
"Substitution Failure Is Not An Error"
[PARTIALAPP]: https://en.wikipedia.org/wiki/Partial_application
"Partial Application"

View File

@@ -27,6 +27,7 @@
<li><a href="#configuration">Configuration</a></li>
</ul></li>
<li><a href="#test-selection">Test selection</a><ul>
<li><a href="#common-test-groups">Common Test Groups</a></li>
<li><a href="#jtreg">JTReg</a></li>
<li><a href="#gtest">Gtest</a></li>
<li><a href="#microbenchmarks">Microbenchmarks</a></li>
@@ -67,6 +68,19 @@ $ make exploded-test TEST=tier2</code></pre>
<p>All functionality is available using the <code>test</code> make target. In this use case, the test or tests to be executed is controlled using the <code>TEST</code> variable. To speed up subsequent test runs with no source code changes, <code>test-only</code> can be used instead, which do not depend on the source and test image build.</p>
<p>For some common top-level tests, direct make targets have been generated. This includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make test-tier1</code> is equivalent to <code>make test TEST=&quot;tier1&quot;</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>test TEST=&quot;x&quot;</code> solution needs to be used.</p>
<p>The test specifications given in <code>TEST</code> is parsed into fully qualified test descriptors, which clearly and unambigously show which tests will be run. As an example, <code>:tier1</code> will expand to <code>jtreg:$(TOPDIR)/test/hotspot/jtreg:tier1 jtreg:$(TOPDIR)/test/jdk:tier1 jtreg:$(TOPDIR)/test/langtools:tier1 jtreg:$(TOPDIR)/test/nashorn:tier1 jtreg:$(TOPDIR)/test/jaxp:tier1</code>. You can always submit a list of fully qualified test descriptors in the <code>TEST</code> variable if you want to shortcut the parser.</p>
<h3 id="common-test-groups">Common Test Groups</h3>
<p>Ideally, all tests are run for every change but this may not be practical due to the limited testing resources, the scope of the change, etc.</p>
<p>The source tree currently defines a few common test groups in the relevant <code>TEST.groups</code> files. There are test groups that cover a specific component, for example <code>hotspot_gc</code>. It is a good idea to look into <code>TEST.groups</code> files to get a sense what tests are relevant to a particular JDK component.</p>
<p>Component-specific tests may miss some unintended consequences of a change, so other tests should also be run. Again, it might be impractical to run all tests, and therefore <em>tiered</em> test groups exist. Tiered test groups are not component-specific, but rather cover the significant parts of the entire JDK.</p>
<p>Multiple tiers allow balancing test coverage and testing costs. Lower test tiers are supposed to contain the simpler, quicker and more stable tests. Higher tiers are supposed to contain progressively more thorough, slower, and sometimes less stable tests, or the tests that require special configuration.</p>
<p>Contributors are expected to run the tests for the areas that are changed, and the first N tiers they can afford to run, but at least tier1.</p>
<p>A brief description of the tiered test groups:</p>
<ul>
<li><p><code>tier1</code>: This is the lowest test tier. Multiple developers run these tests every day. Because of the widespread use, the tests in <code>tier1</code> are carefully selected and optimized to run fast, and to run in the most stable manner. The test failures in <code>tier1</code> are usually followed up on quickly, either with fixes, or adding relevant tests to problem list. GitHub Actions workflows, if enabled, run <code>tier1</code> tests.</p></li>
<li><p><code>tier2</code>: This test group covers even more ground. These contain, among other things, tests that either run for too long to be at <code>tier1</code>, or may require special configuration, or tests that are less stable, or cover the broader range of non-core JVM and JDK features/components (for example, XML).</p></li>
<li><p><code>tier3</code>: This test group includes more stressful tests, the tests for corner cases not covered by previous tiers, plus the tests that require GUIs. As such, this suite should either be run with low concurrency (<code>TEST_JOBS=1</code>), or without headful tests (<code>JTREG_KEYWORDS=\!headful</code>), or both.</p></li>
<li><p><code>tier4</code>: This test group includes every other test not covered by previous tiers. It includes, for example, <code>vmTestbase</code> suites for Hotspot, which run for many hours even on large machines. It also runs GUI tests, so the same <code>TEST_JOBS</code> and <code>JTREG_KEYWORDS</code> caveats apply.</p></li>
</ul>
<h3 id="jtreg">JTReg</h3>
<p>JTReg tests can be selected either by picking a JTReg test group, or a selection of files or directories containing JTReg tests.</p>
<p>JTReg test groups can be specified either without a test root, e.g. <code>:tier1</code> (or <code>tier1</code>, the initial colon is optional), or with, e.g. <code>hotspot:tier1</code>, <code>test/jdk:jdk_util</code> or <code>$(TOPDIR)/test/hotspot/jtreg:hotspot_all</code>. The test root can be specified either as an absolute path, or a path relative to the JDK top directory, or the <code>test</code> directory. For simplicity, the hotspot JTReg test root, which really is <code>hotspot/jtreg</code> can be abbreviated as just <code>hotspot</code>.</p>
@@ -215,7 +229,7 @@ TEST FAILURE</code></pre>
JTREG=&quot;JAVA_OPTIONS=-Djdk.test.docker.image.name=ubuntu
-Djdk.test.docker.image.version=latest&quot;</code></pre>
<h3 id="non-us-locale">Non-US locale</h3>
<p>If your locale is non-US, some tests are likely to fail. To work around this you can set the locale to US. On Unix platforms simply setting <code>LANG=&quot;en_US&quot;</code> in the environment before running tests should work. On Windows, setting <code>JTREG=&quot;VM_OPTIONS=-Duser.language=en -Duser.country=US&quot;</code> helps for most, but not all test cases.</p>
<p>If your locale is non-US, some tests are likely to fail. To work around this you can set the locale to US. On Unix platforms simply setting <code>LANG=&quot;en_US&quot;</code> in the environment before running tests should work. On Windows or MacOS, setting <code>JTREG=&quot;VM_OPTIONS=-Duser.language=en -Duser.country=US&quot;</code> helps for most, but not all test cases.</p>
<p>For example:</p>
<pre><code>$ export LANG=&quot;en_US&quot; &amp;&amp; make test TEST=...
$ make test JTREG=&quot;VM_OPTIONS=-Duser.language=en -Duser.country=US&quot; TEST=...</code></pre>

View File

@@ -64,6 +64,52 @@ jtreg:$(TOPDIR)/test/nashorn:tier1 jtreg:$(TOPDIR)/test/jaxp:tier1`. You can
always submit a list of fully qualified test descriptors in the `TEST` variable
if you want to shortcut the parser.
### Common Test Groups
Ideally, all tests are run for every change but this may not be practical due to the limited
testing resources, the scope of the change, etc.
The source tree currently defines a few common test groups in the relevant `TEST.groups`
files. There are test groups that cover a specific component, for example `hotspot_gc`.
It is a good idea to look into `TEST.groups` files to get a sense what tests are relevant
to a particular JDK component.
Component-specific tests may miss some unintended consequences of a change, so other
tests should also be run. Again, it might be impractical to run all tests, and therefore
_tiered_ test groups exist. Tiered test groups are not component-specific, but rather cover
the significant parts of the entire JDK.
Multiple tiers allow balancing test coverage and testing costs. Lower test tiers are supposed to
contain the simpler, quicker and more stable tests. Higher tiers are supposed to contain
progressively more thorough, slower, and sometimes less stable tests, or the tests that require
special configuration.
Contributors are expected to run the tests for the areas that are changed, and the first N tiers
they can afford to run, but at least tier1.
A brief description of the tiered test groups:
- `tier1`: This is the lowest test tier. Multiple developers run these tests every day.
Because of the widespread use, the tests in `tier1` are carefully selected and optimized to run
fast, and to run in the most stable manner. The test failures in `tier1` are usually followed up
on quickly, either with fixes, or adding relevant tests to problem list. GitHub Actions workflows,
if enabled, run `tier1` tests.
- `tier2`: This test group covers even more ground. These contain, among other things,
tests that either run for too long to be at `tier1`, or may require special configuration,
or tests that are less stable, or cover the broader range of non-core JVM and JDK features/components
(for example, XML).
- `tier3`: This test group includes more stressful tests, the tests for corner cases
not covered by previous tiers, plus the tests that require GUIs. As such, this suite
should either be run with low concurrency (`TEST_JOBS=1`), or without headful tests
(`JTREG_KEYWORDS=\!headful`), or both.
- `tier4`: This test group includes every other test not covered by previous tiers. It includes,
for example, `vmTestbase` suites for Hotspot, which run for many hours even on large
machines. It also runs GUI tests, so the same `TEST_JOBS` and `JTREG_KEYWORDS` caveats
apply.
### JTReg
JTReg tests can be selected either by picking a JTReg test group, or a selection
@@ -460,7 +506,7 @@ $ make test TEST="jtreg:test/hotspot/jtreg/containers/docker" \
If your locale is non-US, some tests are likely to fail. To work around this
you can set the locale to US. On Unix platforms simply setting `LANG="en_US"`
in the environment before running tests should work. On Windows, setting
in the environment before running tests should work. On Windows or MacOS, setting
`JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US"` helps for most, but
not all test cases.

View File

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

View File

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

View File

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

View File

@@ -1 +0,0 @@
JetBrainsRuntime

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,54 +0,0 @@
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,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
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
source jb/project/tools/common/scripts/common.sh
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
[ -z "$bundle_type" ] && (git apply -p0 < jb/project/tools/patches/exclude_jcef_module.patch || exit $?)
sh configure \
--with-debug-level=release \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-boot-jdk=${BOOT_JDK} \
--enable-cds=yes || exit $?
make clean CONF=linux-aarch64-server-release || exit $?
make images CONF=linux-aarch64-server-release test-image || exit $?
JBSDK=${JBRSDK_BASE_NAME}-linux-aarch64-b${build_number}
BASE_DIR=build/linux-aarch64-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
echo Creating $JBSDK.tar.gz ...
sed 's/JBR/JBRSDK/g' ${BASE_DIR}/${JBRSDK_BUNDLE}/release > release
mv release ${BASE_DIR}/${JBRSDK_BUNDLE}/release
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-aarch64-b$build_number
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.aarch64
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.aarch64 | sed s/" "//g | sed s/,$//g) \
--output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
echo Creating $JBR.tar.gz ...
tar -pcf $JBR.tar -C $BASE_DIR ${JBR_BUNDLE} || exit $?
gzip $JBR.tar || exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-aarch64-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' test || exit $?
gzip $JBRSDK_TEST.tar || exit $?

View File

@@ -1,136 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
# Environment variables:
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_linux_x64
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
JCEF_PATH=${JCEF_PATH:=./jcef_linux_x64}
source jb/project/tools/common/scripts/common.sh
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
[ "$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 "$__modules_path" --no-man-pages --compress=2 \
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__arch_name"
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__arch_name"/release
if [ "$__bundle_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__arch_name"/release > release
mv release "$IMAGES_DIR"/"$__arch_name"/release
fi
# jmod does not preserve file permissions (JDK-8173610)
[ -f "$IMAGES_DIR"/"$__arch_name"/lib/jcef_helper ] && chmod a+x "$IMAGES_DIR"/"$__arch_name"/lib/jcef_helper
echo Creating "$JBR".tar.gz ...
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"
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=linux-x86_64-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=1
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=1
do_reset_changes=1
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=linux-x86_64-server-fastdebug
;;
esac
sh configure \
$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 clean CONF=$RELEASE_NAME || exit $?
make images CONF=$RELEASE_NAME || do_exit $?
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods $JSDK $JCEF_PATH/jmods $JSDK/jmods $JSDK_MODS_DIR || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
jbr_name_postfix="_${bundle_type}"
fi
# create runtime image bundle
modules=$(xargs < modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat $JSDK/release | grep MODULES | sed s/MODULES=//g | sed s/' '/,/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle $JBRSDK_BUNDLE $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $?
if [ -z "$bundle_type" ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-test-x64-b${build_number}
echo Creating "$JBRSDK_TEST" ...
make test-image CONF=$RELEASE_NAME || do_exit $?
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
gzip "$JBRSDK_TEST".tar || do_exit $?
fi
do_exit 0

View File

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

View File

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

View File

@@ -1,175 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
# Environment variables:
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_mac
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
architecture=$5 # aarch64 or x64
enable_aot=$6 # temporary param for building test jre with aot under aarch64
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
WITH_IMPORT_MODULES="--with-import-modules=${MODULAR_SDK_PATH:=./modular-sdk}"
JCEF_PATH=${JCEF_PATH:=./jcef_mac}
architecture=${architecture:=x64}
MAJOR_JBSDK_VERSION=$(echo "$JBSDK_VERSION_WITH_DOTS" | awk -F "." '{print $1}')
BOOT_JDK=${BOOT_JDK:=$(/usr/libexec/java_home -v 16)}
source jb/project/tools/common/scripts/common.sh
function copyJNF {
__contents_dir=$1
mkdir -p ${__contents_dir}/Frameworks
cp -Rp Frameworks/JavaNativeFoundation.framework ${__contents_dir}/Frameworks
}
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
tmp=.bundle.$$.tmp
mkdir "$tmp" || do_exit $?
[ "$bundle_type" == "fd" ] && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-osx-${architecture}-${fastdebug_infix}b${build_number}
JRE_CONTENTS=$tmp/$__arch_name/Contents
mkdir -p "$JRE_CONTENTS" || do_exit $?
echo Running jlink...
"$JSDK"/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
--add-modules "$__modules" --output "$JRE_CONTENTS/Home" || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$JRE_CONTENTS/Home/release"
if [ "$__bundle_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $JRE_CONTENTS/Home/release > release
mv release $JRE_CONTENTS/Home/release
fi
cp -R "$JSDK"/../MacOS "$JRE_CONTENTS"
cp "$JSDK"/../Info.plist "$JRE_CONTENTS"
if [[ "${architecture}" == *aarch64* ]]; then
# we can't notarize this library as usual framework (with headers and tbd-file)
# but single library notarizes correctly
copyJNF $JRE_CONTENTS
fi
[ -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"
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
CONF_ARCHITECTURE=x86_64
if [[ "${architecture}" == *aarch64* ]]; then
CONF_ARCHITECTURE=aarch64
fi
RELEASE_NAME=macosx-${CONF_ARCHITECTURE}-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=1
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=1
do_reset_changes=1
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=macosx-${CONF_ARCHITECTURE}-server-fastdebug
JBSDK=macosx-${architecture}-server-release
;;
esac
if [[ "${architecture}" == *aarch64* ]]; then
sh configure \
$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" \
--disable-hotspot-gtest --disable-javac-server --disable-full-docs --disable-manpages \
--enable-cds=no \
--with-extra-cflags="-F$(pwd)/Frameworks" \
--with-extra-cxxflags="-F$(pwd)/Frameworks" \
--with-extra-ldflags="-F$(pwd)/Frameworks" || do_exit $?
else
sh configure \
$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 $?
fi
make clean CONF=$RELEASE_NAME || do_exit $?
make images CONF=$RELEASE_NAME || do_exit $?
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
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
jbr_name_postfix="_${bundle_type}"
fi
# create runtime image bundle
modules=$(xargs < modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat "$JSDK"/release | grep MODULES | sed s/MODULES=//g | sed s/' '/,/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
if [ -z "$bundle_type" ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-osx-test-${architecture}-b${build_number}
echo Creating "$JBRSDK_TEST" ...
make test-image CONF=$RELEASE_NAME || do_exit $?
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
COPYFILE_DISABLE=1 tar -pczf "$JBRSDK_TEST".tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
fi
do_exit 0

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@@ -1,49 +0,0 @@
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,118 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
# Environment variables:
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_win_x64
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
WORK_DIR=$(pwd)
JCEF_PATH=${JCEF_PATH:=$WORK_DIR/jcef_win_x64}
source jb/project/tools/common/scripts/common.sh
function 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 $__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
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=windows-x86_64-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=1
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=1
do_reset_changes=1
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=windows-x86_64-server-fastdebug
;;
esac
sh ./configure \
$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
make LOG=info CONF=$RELEASE_NAME clean images test-image || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
fi
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* ${JSDK_MODS_DIR} # $JSDK/jmods is not unchanged
jbr_name_postfix="_${bundle_type}"
fi
# create runtime image bundle
modules=$(xargs < modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat ${JSDK}/release | grep MODULES | sed s/MODULES=//g | sed s/' '/,/g | sed s/\"//g | sed s/\\r//g | sed s/\\n//g)
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
do_exit 0

View File

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

View File

@@ -1,77 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies udate release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the bundles without any additional modules (jcef)
# jcef - the bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
source jb/project/tools/common/scripts/common.sh
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
function pack_jbr {
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 ...
/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/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JBSDK=$JBRSDK_BASE_NAME-windows-x64-b$build_number
BASE_DIR=.
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
JBRSDK_BUNDLE=jbrsdk
echo Creating $JBSDK.tar.gz ...
[ -f "$JBSDK.tar.gz" ] && rm "$JBSDK.tar.gz"
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || do_exit $?
fi
pack_jbr $bundle_type
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 || do_exit $?
fi

View File

@@ -1,42 +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
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
JBR_BASE_NAME=jbr-$JBSDK_VERSION
IMAGES_DIR=build/windows-x86-server-release/images
JSDK=$IMAGES_DIR/jdk
JBSDK=$JBRSDK_BASE_NAME-windows-x86-b$build_number
BASE_DIR=.
JBRSDK_BUNDLE=jbrsdk
echo Creating $JBSDK.tar.gz ...
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || exit 1
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
JBR=$JBR_BASE_NAME-windows-x86-b$build_number
echo Creating $JBR.tar.gz ...
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR ${JBR_BUNDLE} || exit 1
JBRSDK_TEST=$JBRSDK_BASE_NAME-windows-test-x86-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || exit 1

View File

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

View File

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

118
make/Hsdis.gmk Normal file
View File

@@ -0,0 +1,118 @@
#
# Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
default: all
include $(SPEC)
include MakeBase.gmk
include JdkNativeCompilation.gmk
################################################################################
# This makefile compiles and installs the hsdis library
#
################################################################################
HSDIS_OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/hsdis
ifeq ($(call isTargetOs, windows), true)
INSTALLED_HSDIS_DIR := $(JDK_OUTPUTDIR)/bin
# On windows, we need to "fake" a completely different toolchain using gcc
# instead of the normal microsoft toolchain. This is quite hacky...
MINGW_BASE := x86_64-w64-mingw32
$(eval $(call DefineNativeToolchain, TOOLCHAIN_MINGW, \
CC := $(MINGW_BASE)-gcc, \
LD := $(MINGW_BASE)-ld, \
OBJCOPY := $(MINGW_BASE)-objcopy, \
RC := $(RC), \
SYSROOT_CFLAGS := --sysroot=/usr/$(MINGW_BASE)/sys-root, \
SYSROOT_LDFLAGS := --sysroot=/usr/$(MINGW_BASE)/sys-root, \
))
TOOLCHAIN_TYPE := gcc
OPENJDK_TARGET_OS := linux
CC_OUT_OPTION := -o$(SPACE)
LD_OUT_OPTION := -o$(SPACE)
GENDEPS_FLAGS := -MMD -MF
CFLAGS_DEBUG_SYMBOLS := -g
DISABLED_WARNINGS :=
DISABLE_WARNING_PREFIX := -Wno-
CFLAGS_WARNINGS_ARE_ERRORS := -Werror
SHARED_LIBRARY_FLAGS := -shared
HSDIS_TOOLCHAIN := TOOLCHAIN_MINGW
HSDIS_TOOLCHAIN_CFLAGS :=
HSDIS_TOOLCHAIN_LDFLAGS := -L/usr/lib/gcc/$(MINGW_BASE)/9.2.0 \
-L/usr/$(MINGW_BASE)/sys-root/mingw/lib
MINGW_DLLCRT := /usr/$(MINGW_BASE)/sys-root/mingw/lib/dllcrt2.o
HSDIS_TOOLCHAIN_LIBS := $(MINGW_DLLCRT) -lmingw32 -lgcc -lgcc_eh -lmoldname \
-lmingwex -lmsvcrt -lpthread -ladvapi32 -lshell32 -luser32 -lkernel32
else
INSTALLED_HSDIS_DIR := $(JDK_OUTPUTDIR)/lib
HSDIS_TOOLCHAIN := TOOLCHAIN_DEFAULT
HSDIS_TOOLCHAIN_CFLAGS := $(CFLAGS_JDKLIB)
HSDIS_TOOLCHAIN_LDFLAGS := $(LDFLAGS_JDKLIB)
HSDIS_TOOLCHAIN_LIBS := -ldl
endif
$(eval $(call SetupJdkLibrary, BUILD_HSDIS, \
NAME := hsdis, \
SRC := $(TOPDIR)/src/utils/hsdis, \
TOOLCHAIN := $(HSDIS_TOOLCHAIN), \
OUTPUT_DIR := $(HSDIS_OUTPUT_DIR), \
OBJECT_DIR := $(HSDIS_OUTPUT_DIR), \
DISABLED_WARNINGS_gcc := undef format-nonliteral sign-compare, \
DISABLED_WARNINGS_clang := undef format-nonliteral, \
CFLAGS := $(HSDIS_TOOLCHAIN_CFLAGS) $(HSDIS_CFLAGS), \
LDFLAGS := $(HSDIS_TOOLCHAIN_LDFLAGS) $(SHARED_LIBRARY_FLAGS), \
LIBS := $(HSDIS_LIBS) $(HSDIS_TOOLCHAIN_LIBS), \
))
build: $(BUILD_HSDIS)
TARGETS += build
INSTALLED_HSDIS_NAME := hsdis-$(OPENJDK_TARGET_CPU_LEGACY_LIB)$(SHARED_LIBRARY_SUFFIX)
INSTALLED_HSDIS := $(INSTALLED_HSDIS_DIR)/$(INSTALLED_HSDIS_NAME)
$(INSTALLED_HSDIS): $(BUILD_HSDIS_TARGET)
$(call LogWarn, NOTE: The resulting build might not be redistributable. Seek legal advice before distibuting.)
$(install-file)
install: $(INSTALLED_HSDIS)
TARGETS += install
################################################################################
all: $(TARGETS)
.PHONY: all default build install

View File

@@ -526,6 +526,18 @@ $(eval $(call SetupTarget, update-x11wrappers, \
DEPS := java.base-copy buildtools-jdk, \
))
ifneq ($(HSDIS_BACKEND), none)
$(eval $(call SetupTarget, build-hsdis, \
MAKEFILE := Hsdis, \
TARGET := build, \
))
$(eval $(call SetupTarget, install-hsdis, \
MAKEFILE := Hsdis, \
TARGET := install, \
))
endif
################################################################################
# Cross compilation support
@@ -857,6 +869,9 @@ else
# virtual target.
jdk.jdwp.agent-libs: jdk.jdwp.agent-gensrc
# jdk.jfr-gendata uses TOOL_JFR_GEN from buildtools-hotspot
jdk.jfr-gendata: buildtools-hotspot
# The swing beans need to have java base properly generated to avoid errors
# in javadoc. The X11 wrappers need the java.base include files to have been
# copied and processed.

View File

@@ -200,9 +200,10 @@ $(eval $(call SetTestOpt,FAILURE_HANDLER_TIMEOUT,JTREG))
$(eval $(call ParseKeywordVariable, JTREG, \
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR FAILURE_HANDLER_TIMEOUT \
TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM RUN_PROBLEM_LISTS \
RETRY_COUNT MAX_OUTPUT, \
RETRY_COUNT MAX_OUTPUT $(CUSTOM_JTREG_SINGLE_KEYWORDS), \
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \
EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS, \
EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS \
$(CUSTOM_JTREG_STRING_KEYWORDS), \
))
ifneq ($(JTREG), )
@@ -789,15 +790,6 @@ define SetupRunJtregTestBody
$1_JTREG_BASIC_OPTIONS += -ea -esa
endif
ifeq ($$(ASAN_ENABLED), yes)
$1_JTREG_BASIC_OPTIONS += -e:ASAN_OPTIONS=handle_segv=0:handle_sigfpe=0:detect_leaks=false
$1_JTREG_BASIC_OPTIONS += -e:LD_PRELOAD=libasan.so.5
endif
ifeq ($$(USAN_ENABLED), yes)
$1_JTREG_BASIC_OPTIONS += -e:LD_PRELOAD=libubsan.so.1
endif
ifneq ($$($1_JTREG_NATIVEPATH), )
$1_JTREG_BASIC_OPTIONS += -nativepath:$$($1_JTREG_NATIVEPATH)
endif
@@ -841,6 +833,8 @@ define SetupRunJtregTestBody
endif
endif
$$(eval $$(call SetupRunJtregTestCustom, $1))
clean-workdir-$1:
$$(RM) -r $$($1_TEST_SUPPORT_DIR)

View File

@@ -298,6 +298,28 @@ AC_DEFUN([BOOTJDK_CHECK_TOOL_IN_BOOTJDK],
])
])
# Setup CLASSPATH environment variable
AC_DEFUN([BOOTJDK_SETUP_CLASSPATH],
[
AC_ARG_WITH([classpath], [AS_HELP_STRING([--with-classpath],
[Optional classpath to set as CLASSPATH to all Java invocations @<:@none@:>@])])
if test "x$CLASSPATH" != x; then
AC_MSG_WARN([CLASSPATH is set in the environment. This will be ignored. Use --with-classpath instead.])
fi
CLASSPATH=
if test "x$with_classpath" != x && test "x$with_classpath" != xyes &&
test "x$with_classpath" != xno ; then
CLASSPATH="$with_classpath"
AC_MSG_CHECKING([for classpath to use for all Java invocations])
AC_MSG_RESULT([$CLASSPATH])
fi
AC_SUBST(CLASSPATH)
])
###############################################################################
#
# We need a Boot JDK to bootstrap the build.
@@ -394,6 +416,8 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
BOOTJDK_USE_LOCAL_CDS=false
AC_MSG_RESULT([no, -XX:SharedArchiveFile not supported])
fi
BOOTJDK_SETUP_CLASSPATH
])
AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],

View File

@@ -102,6 +102,15 @@ if [ "x$OUT" = x ]; then
fi
fi
# Test and fix LoongArch64.
if [ "x$OUT" = x ]; then
if [ `uname -s` = Linux ]; then
if [ `uname -m` = loongarch64 ]; then
OUT=loongarch64-unknown-linux-gnu
fi
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

View File

@@ -217,9 +217,6 @@ JDKOPT_SETUP_CODE_COVERAGE
# AddressSanitizer
JDKOPT_SETUP_ADDRESS_SANITIZER
# UndefinedBehaviorSanitizer
JDKOPT_SETUP_UNDEFINED_BEHAVIOR_SANITIZER
###############################################################################
#
# Check dependencies for external and internal libraries.
@@ -252,6 +249,7 @@ JDKOPT_EXCLUDE_TRANSLATIONS
JDKOPT_ENABLE_DISABLE_MANPAGES
JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE
JDKOPT_ENABLE_DISABLE_COMPATIBLE_CDS_ALIGNMENT
JDKOPT_SETUP_HSDIS
###############################################################################
#

View File

@@ -137,7 +137,7 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
DISABLED_WARNINGS="4800"
if test "x$TOOLCHAIN_VERSION" = x2017; then
# VS2017 incorrectly triggers this warning for constexpr
DISABLED_WARNINGS+=" 4307"
DISABLED_WARNINGS="$DISABLED_WARNINGS 4307"
fi
;;
@@ -230,7 +230,7 @@ AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
DISABLE_FORTIFY_CFLAGS="-U_FORTIFY_SOURCE"
# ASan doesn't work well with _FORTIFY_SOURCE
# See https://github.com/google/sanitizers/wiki/AddressSanitizer#faq
if test "x$ASAN_ENABLED" = xyes || test "x$USAN_ENABLED" = xyes; then
if test "x$ASAN_ENABLED" = xyes; then
ENABLE_FORTIFY_CFLAGS="${DISABLE_FORTIFY_CFLAGS}"
else
ENABLE_FORTIFY_CFLAGS="-D_FORTIFY_SOURCE=2"

View File

@@ -32,16 +32,10 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS],
# Setup the target toolchain
# The target dir matches the name of VM variant
TARGET_JVM_VARIANT_PATH=$JVM_VARIANT_MAIN
# On some platforms (mac) the linker warns about non existing -L dirs.
# For any of the variants server, client or minimal, the dir matches the
# variant name. The "main" variant should be used for linking. For the
# rest, the dir is just server.
if HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client) \
|| HOTSPOT_CHECK_JVM_VARIANT(minimal); then
TARGET_JVM_VARIANT_PATH=$JVM_VARIANT_MAIN
else
TARGET_JVM_VARIANT_PATH=server
fi
FLAGS_SETUP_LDFLAGS_CPU_DEP([TARGET])
# Setup the build toolchain

View File

@@ -89,11 +89,12 @@ AC_DEFUN([FLAGS_SETUP_ASFLAGS],
# Fix linker warning.
# Code taken from make/autoconf/flags-cflags.m4 and adapted.
JVM_BASIC_ASFLAGS+="-DMAC_OS_X_VERSION_MIN_REQUIRED=$MACOSX_VERSION_MIN_NODOTS \
JVM_BASIC_ASFLAGS="$JVM_BASIC_ASFLAGS \
-DMAC_OS_X_VERSION_MIN_REQUIRED=$MACOSX_VERSION_MIN_NODOTS \
-mmacosx-version-min=$MACOSX_VERSION_MIN"
if test -n "$MACOSX_VERSION_MAX"; then
JVM_BASIC_ASFLAGS+="$OS_CFLAGS \
JVM_BASIC_ASFLAGS="$JVM_BASIC_ASFLAGS $OS_CFLAGS \
-DMAC_OS_X_VERSION_MAX_ALLOWED=$MACOSX_VERSION_MAX_NODOTS"
fi
fi

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
@@ -42,21 +42,21 @@ AC_DEFUN([HELP_MSG_MISSING_DEPENDENCY],
PKGHANDLER_COMMAND=
case $PKGHANDLER in
apt-get)
*apt-get)
apt_help $MISSING_DEPENDENCY ;;
yum)
*yum)
yum_help $MISSING_DEPENDENCY ;;
brew)
*brew)
brew_help $MISSING_DEPENDENCY ;;
port)
*port)
port_help $MISSING_DEPENDENCY ;;
pkgutil)
*pkgutil)
pkgutil_help $MISSING_DEPENDENCY ;;
pkgadd)
*pkgadd)
pkgadd_help $MISSING_DEPENDENCY ;;
zypper)
*zypper)
zypper_help $MISSING_DEPENDENCY ;;
pacman)
*pacman)
pacman_help $MISSING_DEPENDENCY ;;
esac
@@ -80,6 +80,14 @@ cygwin_help() {
PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P make )"
HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
;;
i686-w64-mingw32-gcc)
PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P gcc-core i686-w64-mingw32-gcc-core mingw64-i686-glib2.0 )"
HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
;;
x86_64-w64-mingw32-gcc)
PKGHANDLER_COMMAND="( cd <location of cygwin setup.exe> && cmd /c setup -q -P gcc-core x86_64-w64-mingw32-gcc-core mingw64-x86_64-glib2.0 )"
HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
;;
esac
}
@@ -274,7 +282,7 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
printf "\n"
printf "Build performance summary:\n"
printf "* Cores to use: $JOBS\n"
printf "* Build jobs: $JOBS\n"
printf "* Memory limit: $MEMORY_SIZE MB\n"
if test "x$CCACHE_STATUS" != "x"; then
printf "* ccache status: $CCACHE_STATUS\n"

View File

@@ -83,19 +83,10 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_VARIANTS],
AC_MSG_ERROR([Cannot continue])
fi
# All "special" variants share the same output directory ("server")
VALID_MULTIPLE_JVM_VARIANTS="server client minimal"
UTIL_GET_NON_MATCHING_VALUES(INVALID_MULTIPLE_VARIANTS, $JVM_VARIANTS, \
$VALID_MULTIPLE_JVM_VARIANTS)
if test "x$INVALID_MULTIPLE_VARIANTS" != x && \
test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = xtrue; then
AC_MSG_ERROR([You can only build multiple variants using these variants: '$VALID_MULTIPLE_JVM_VARIANTS'])
fi
# The "main" variant is the one used by other libs to link against during the
# build.
if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xtrue"; then
MAIN_VARIANT_PRIO_ORDER="server client minimal"
MAIN_VARIANT_PRIO_ORDER="server client minimal zero"
for variant in $MAIN_VARIANT_PRIO_ORDER; do
if HOTSPOT_CHECK_JVM_VARIANT($variant); then
JVM_VARIANT_MAIN="$variant"

View File

@@ -436,45 +436,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_ADDRESS_SANITIZER],
AC_SUBST(ASAN_ENABLED)
])
###############################################################################
#
# UndefinedBehaviorSanitizer
#
AC_DEFUN_ONCE([JDKOPT_SETUP_UNDEFINED_BEHAVIOR_SANITIZER],
[
UTIL_ARG_ENABLE(NAME: usan, DEFAULT: false,
DESC: [enable UndefinedBehaviorSanitizer],
CHECK_AVAILABLE: [
AC_MSG_CHECKING([if UndefinedBehaviorSanitizer (usan) is available])
if test "x$TOOLCHAIN_TYPE" = "xgcc" ||
test "x$TOOLCHAIN_TYPE" = "xclang"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
AVAILABLE=false
fi
],
IF_ENABLED: [
USAN_FLAGS="-fsanitize=undefined"
USAN_CFLAGS="$USAN_FLAGS -fno-omit-frame-pointer"
USAN_LDFLAGS="$USAN_FLAGS"
JVM_CFLAGS="$JVM_CFLAGS $USAN_CFLAGS"
JVM_LDFLAGS="$JVM_LDFLAGS $USAN_LDFLAGS"
CFLAGS_JDKLIB="$CFLAGS_JDKLIB $USAN_CFLAGS"
CFLAGS_JDKEXE="$CFLAGS_JDKEXE $USAN_CFLAGS"
CXXFLAGS_JDKLIB="$CXXFLAGS_JDKLIB $USAN_CFLAGS"
CXXFLAGS_JDKEXE="$CXXFLAGS_JDKEXE $USAN_CFLAGS"
LDFLAGS_JDKLIB="$LDFLAGS_JDKLIB $USAN_LDFLAGS"
LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE $USAN_LDFLAGS"
USAN_ENABLED="yes"
],
IF_DISABLED: [
USAN_ENABLED="no"
])
AC_SUBST(USAN_ENABLED)
])
################################################################################
#
# Static build support. When enabled will generate static
@@ -743,3 +704,145 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_REPRODUCIBLE_BUILD],
AC_SUBST(SOURCE_DATE)
AC_SUBST(ENABLE_REPRODUCIBLE_BUILD)
])
################################################################################
#
# Helper function to build binutils from source.
#
AC_DEFUN([JDKOPT_BUILD_BINUTILS],
[
BINUTILS_SRC="$with_binutils_src"
UTIL_FIXUP_PATH(BINUTILS_SRC)
if ! test -d $BINUTILS_SRC; then
AC_MSG_ERROR([--with-binutils-src is not pointing to a directory])
fi
if ! test -x $BINUTILS_SRC/configure; then
AC_MSG_ERROR([--with-binutils-src does not look like a binutils source directory])
fi
if test -e $BINUTILS_SRC/bfd/libbfd.a && \
test -e $BINUTILS_SRC/opcodes/libopcodes.a && \
test -e $BINUTILS_SRC/libiberty/libiberty.a && \
test -e $BINUTILS_SRC/zlib/libz.a; then
AC_MSG_NOTICE([Found binutils binaries in binutils source directory -- not building])
else
# On Windows, we cannot build with the normal Microsoft CL, but must instead use
# a separate mingw toolchain.
if test "x$OPENJDK_BUILD_OS" = xwindows; then
if test "x$OPENJDK_TARGET_CPU" = "xx86"; then
target_base="i686-w64-mingw32"
else
target_base="$OPENJDK_TARGET_CPU-w64-mingw32"
fi
binutils_cc="$target_base-gcc"
binutils_target="--host=$target_base --target=$target_base"
# Somehow the uint typedef is not included when building with mingw
binutils_cflags="-Duint=unsigned"
compiler_version=`$binutils_cc --version 2>&1`
if ! [ [[ "$compiler_version" =~ GCC ]] ]; then
AC_MSG_NOTICE([Could not find correct mingw compiler $binutils_cc.])
HELP_MSG_MISSING_DEPENDENCY([$binutils_cc])
AC_MSG_ERROR([Cannot continue. $HELP_MSG])
else
AC_MSG_NOTICE([Using compiler $binutils_cc with version $compiler_version])
fi
elif test "x$OPENJDK_BUILD_OS" = xmacosx; then
if test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then
binutils_target="--enable-targets=aarch64-darwin"
else
binutils_target=""
fi
else
binutils_cc="$CC $SYSROOT_CFLAGS"
binutils_target=""
fi
binutils_cflags="$binutils_cflags $MACHINE_FLAG $JVM_PICFLAG $C_O_FLAG_NORM"
AC_MSG_NOTICE([Running binutils configure])
AC_MSG_NOTICE([configure command line: ./configure --disable-nls CFLAGS="$binutils_cflags" CC="$binutils_cc" $binutils_target])
saved_dir=`pwd`
cd "$BINUTILS_SRC"
./configure --disable-nls CFLAGS="$binutils_cflags" CC="$binutils_cc" $binutils_target
if test $? -ne 0 || ! test -e $BINUTILS_SRC/Makefile; then
AC_MSG_NOTICE([Automatic building of binutils failed on configure. Try building it manually])
AC_MSG_ERROR([Cannot continue])
fi
AC_MSG_NOTICE([Running binutils make])
$MAKE all-opcodes
if test $? -ne 0; then
AC_MSG_NOTICE([Automatic building of binutils failed on make. Try building it manually])
AC_MSG_ERROR([Cannot continue])
fi
cd $saved_dir
AC_MSG_NOTICE([Building of binutils done])
fi
BINUTILS_DIR="$BINUTILS_SRC"
])
################################################################################
#
# Determine if hsdis should be built, and if so, with which backend.
#
AC_DEFUN_ONCE([JDKOPT_SETUP_HSDIS],
[
AC_ARG_WITH([hsdis], [AS_HELP_STRING([--with-hsdis],
[what hsdis backend to use ('none', 'binutils') @<:@none@:>@])])
AC_ARG_WITH([binutils], [AS_HELP_STRING([--with-binutils],
[where to find the binutils files needed for hsdis/binutils])])
AC_ARG_WITH([binutils-src], [AS_HELP_STRING([--with-binutils-src],
[where to find the binutils source for building])])
AC_MSG_CHECKING([what hsdis backend to use])
if test "x$with_hsdis" = xyes; then
AC_MSG_ERROR([--with-hsdis must have a value])
elif test "x$with_hsdis" = xnone || test "x$with_hsdis" = xno || test "x$with_hsdis" = x; then
HSDIS_BACKEND=none
AC_MSG_RESULT(['none', hsdis will not be built])
elif test "x$with_hsdis" = xbinutils; then
HSDIS_BACKEND=binutils
AC_MSG_RESULT(['binutils'])
# We need the binutils static libs and includes.
if test "x$with_binutils_src" != x; then
# Try building the source first. If it succeeds, it sets $BINUTILS_DIR.
JDKOPT_BUILD_BINUTILS
fi
if test "x$with_binutils" != x; then
BINUTILS_DIR="$with_binutils"
fi
AC_MSG_CHECKING([for binutils to use with hsdis])
if test "x$BINUTILS_DIR" != x; then
if test -e $BINUTILS_DIR/bfd/libbfd.a && \
test -e $BINUTILS_DIR/opcodes/libopcodes.a && \
test -e $BINUTILS_DIR/libiberty/libiberty.a; then
AC_MSG_RESULT([$BINUTILS_DIR])
HSDIS_CFLAGS="-I$BINUTILS_DIR/include -I$BINUTILS_DIR/bfd -DLIBARCH_$OPENJDK_TARGET_CPU_LEGACY_LIB"
HSDIS_LIBS="$BINUTILS_DIR/bfd/libbfd.a $BINUTILS_DIR/opcodes/libopcodes.a $BINUTILS_DIR/libiberty/libiberty.a $BINUTILS_DIR/zlib/libz.a"
else
AC_MSG_RESULT([invalid])
AC_MSG_ERROR([$BINUTILS_DIR does not contain a proper binutils installation])
fi
else
AC_MSG_RESULT([missing])
AC_MSG_NOTICE([--with-hsdis=binutils requires specifying a binutils installation.])
AC_MSG_NOTICE([Download binutils from https://www.gnu.org/software/binutils and unpack it,])
AC_MSG_NOTICE([and point --with-binutils-src to the resulting directory, or use])
AC_MSG_NOTICE([--with-binutils to point to a pre-built binutils installation.])
AC_MSG_ERROR([Cannot continue])
fi
else
AC_MSG_RESULT([invalid])
AC_MSG_ERROR([Incorrect hsdis backend "$with_hsdis"])
fi
AC_SUBST(HSDIS_BACKEND)
AC_SUBST(HSDIS_CFLAGS)
AC_SUBST(HSDIS_LIBS)
])

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 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
@@ -525,7 +525,7 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
MACOSX_BUNDLE_BUILD_VERSION="$VERSION_BUILD"
# If VERSION_OPT consists of only numbers and periods, add it.
if [ [[ $VERSION_OPT =~ ^[0-9\.]+$ ]] ]; then
MACOSX_BUNDLE_BUILD_VERSION+=".$VERSION_OPT"
MACOSX_BUNDLE_BUILD_VERSION="$MACOSX_BUNDLE_BUILD_VERSION.$VERSION_OPT"
fi
fi
AC_SUBST(MACOSX_BUNDLE_BUILD_VERSION)

View File

@@ -357,6 +357,13 @@ AC_DEFUN_ONCE([JVM_FEATURES_CHECK_ZGC],
AC_MSG_RESULT([no, $OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU])
AVAILABLE=false
fi
elif test "x$OPENJDK_TARGET_CPU" = "xppc64le"; then
if test "x$OPENJDK_TARGET_OS" = "xlinux"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no, $OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU])
AVAILABLE=false
fi
else
AC_MSG_RESULT([no, $OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU])
AVAILABLE=false

View File

@@ -43,11 +43,9 @@ AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
# No X11 support on windows or macosx
NEEDS_LIB_X11=false
elif test "x$ENABLE_HEADLESS_ONLY" = xtrue; then
# No X11 support needed when building headless only
NEEDS_LIB_X11=false
else
# All other instances need X11
# All other instances need X11, even if building headless only, libawt still
# needs X11 headers.
NEEDS_LIB_X11=true
fi

View File

@@ -72,6 +72,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU],
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
;;
loongarch64)
VAR_CPU=loongarch64
VAR_CPU_ARCH=loongarch
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
;;
m68k)
VAR_CPU=m68k
VAR_CPU_ARCH=m68k

View File

@@ -54,6 +54,9 @@ MAKE := @MAKE@
# Make sure all shell commands are executed with the C locale
export LC_ALL := C
# Make sure we override any local CLASSPATH variable
export CLASSPATH := @CLASSPATH@
# The default make arguments
MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \
MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" $(MAKE_LOG_VARS)
@@ -356,6 +359,10 @@ ENABLE_COMPATIBLE_CDS_ALIGNMENT := @ENABLE_COMPATIBLE_CDS_ALIGNMENT@
ALLOW_ABSOLUTE_PATHS_IN_OUTPUT := @ALLOW_ABSOLUTE_PATHS_IN_OUTPUT@
HSDIS_BACKEND := @HSDIS_BACKEND@
HSDIS_CFLAGS := @HSDIS_CFLAGS@
HSDIS_LIBS := @HSDIS_LIBS@
# The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep
# it in sync.
BOOT_JDK:=@BOOT_JDK@
@@ -423,16 +430,7 @@ JCOV_FILTERS=@JCOV_FILTERS@
export ASAN_ENABLED:=@ASAN_ENABLED@
export DEVKIT_LIB_DIR:=@DEVKIT_LIB_DIR@
ifeq ($(ASAN_ENABLED), yes)
export ASAN_OPTIONS=handle_segv=0:handle_sigfpe=0:detect_leaks=false
ifneq ($(DEVKIT_LIB_DIR),)
export LD_LIBRARY_PATH:=$(LD_LIBRARY_PATH):$(DEVKIT_LIB_DIR)
endif
endif
# UndefinedBehaviorSanitizer
export USAN_ENABLED:=@USAN_ENABLED@
export DEVKIT_LIB_DIR:=@DEVKIT_LIB_DIR@
ifeq ($(USAN_ENABLED), yes)
export ASAN_OPTIONS=handle_segv=0 detect_leaks=0
ifneq ($(DEVKIT_LIB_DIR),)
export LD_LIBRARY_PATH:=$(LD_LIBRARY_PATH):$(DEVKIT_LIB_DIR)
endif

View File

@@ -51,7 +51,7 @@ TOOLCHAIN_DESCRIPTION_xlc="IBM XL C/C++"
# Minimum supported versions, empty means unspecified
TOOLCHAIN_MINIMUM_VERSION_clang="3.5"
TOOLCHAIN_MINIMUM_VERSION_gcc="5.0"
TOOLCHAIN_MINIMUM_VERSION_gcc="6.0"
TOOLCHAIN_MINIMUM_VERSION_microsoft="19.10.0.0" # VS2017
TOOLCHAIN_MINIMUM_VERSION_xlc=""
@@ -221,6 +221,12 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
AC_ARG_WITH(toolchain-type, [AS_HELP_STRING([--with-toolchain-type],
[the toolchain type (or family) to use, use '--help' to show possible values @<:@platform dependent@:>@])])
# Linux x86_64 needs higher binutils after 8265783
# (this really is a dependency on as version, but we take ld as a check for a general binutils version)
if test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
TOOLCHAIN_MINIMUM_LD_VERSION_gcc="2.25"
fi
# Use indirect variable referencing
toolchain_var_name=VALID_TOOLCHAINS_$OPENJDK_BUILD_OS
VALID_TOOLCHAINS=${!toolchain_var_name}
@@ -677,9 +683,10 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
TOOLCHAIN_PREPARE_FOR_LD_VERSION_COMPARISONS
if test "x$TOOLCHAIN_MINIMUM_LD_VERSION" != x; then
AC_MSG_NOTICE([comparing linker version to minimum version $TOOLCHAIN_MINIMUM_LD_VERSION])
TOOLCHAIN_CHECK_LINKER_VERSION(VERSION: $TOOLCHAIN_MINIMUM_LD_VERSION,
IF_OLDER_THAN: [
AC_MSG_WARN([You are using a linker older than $TOOLCHAIN_MINIMUM_LD_VERSION. This is not a supported configuration.])
AC_MSG_ERROR([You are using a linker older than $TOOLCHAIN_MINIMUM_LD_VERSION. This is not a supported configuration.])
]
)
fi

View File

@@ -103,7 +103,7 @@ define ProcessMarkdown
$$(call LogInfo, Post-processing markdown file $2)
$$(call MakeDir, $$(SUPPORT_OUTPUTDIR)/markdown $$($1_$2_TARGET_DIR))
$$(call ExecuteWithLog, $$(SUPPORT_OUTPUTDIR)/markdown/$$($1_$2_MARKER)_post, \
( $$($1_POST_PROCESS) < $$($1_$2_PANDOC_OUTPUT) > $$($1_$2_OUTPUT_FILE) ) )
( $$($1_POST_PROCESS) $$($1_$2_PANDOC_OUTPUT) > $$($1_$2_OUTPUT_FILE) ) )
endif
$1 += $$($1_$2_OUTPUT_FILE)

View File

@@ -1,4 +1,4 @@
# 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
@@ -23,9 +23,9 @@
#
# URLs
JAVADOC_BASE_URL=https://docs.oracle.com/pls/topic/lookup?ctx=javase$(VERSION_NUMBER)&amp;id=homepage
JAVADOC_BASE_URL=https://docs.oracle.com/pls/topic/lookup?ctx=javase$(VERSION_FEATURE)&amp;id=homepage
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
LICENSE_URL=https://www.oracle.com/java/javase/terms/license/java$(VERSION_FEATURE)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

@@ -249,7 +249,7 @@ var getJibProfilesCommon = function (input, data) {
dependencies: ["boot_jdk", "gnumake", "jtreg", "jib", "autoconf", "jmh", "jcov"],
default_make_targets: ["product-bundles", "test-bundles", "static-libs-bundles"],
configure_args: concat("--enable-jtreg-failure-handler",
"--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
"--with-exclude-translations=es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
"--disable-manpages",
"--disable-jvm-feature-shenandoahgc",
versionArgs(input, common))
@@ -394,13 +394,8 @@ var getJibProfilesCommon = function (input, data) {
};
};
if (input.build_os == 'macosx' && input.build_cpu == 'aarch64') {
common.boot_jdk_version = "17";
common.boot_jdk_build_number = "24";
} else {
common.boot_jdk_version = "16";
common.boot_jdk_build_number = "36";
}
common.boot_jdk_version = "17";
common.boot_jdk_build_number = "35";
common.boot_jdk_home = input.get("boot_jdk", "install_path") + "/jdk-"
+ common.boot_jdk_version
+ (input.build_os == "macosx" ? ".jdk/Contents/Home" : "");
@@ -638,7 +633,7 @@ var getJibProfilesProfiles = function (input, common, data) {
// Bootcycle profiles runs the build with itself as the boot jdk. This can
// be done in two ways. Either using the builtin bootcycle target in the
// build system. Or by supplying the main jdk build as bootjdk to configure.
[ "linux-x64", "macosx-x64", "windows-x64" ]
[ "linux-x64", "macosx-x64", "windows-x64", "linux-aarch64" ]
.forEach(function (name) {
var bootcycleName = name + "-bootcycle";
var bootcyclePrebuiltName = name + "-bootcycle-prebuilt";
@@ -1073,11 +1068,7 @@ var getJibProfilesDependencies = function (input, common) {
}
var boot_jdk_os = input.build_os;
if (input.build_os == "macosx") {
if (input.build_cpu == "aarch64") {
boot_jdk_os = "macos";
} else {
boot_jdk_os = "osx";
}
boot_jdk_os = "macos";
}
var boot_jdk_platform = boot_jdk_os + "-" + input.build_cpu;
var boot_jdk_ext = (input.build_os == "windows" ? ".zip" : ".tar.gz")
@@ -1164,7 +1155,7 @@ var getJibProfilesDependencies = function (input, common) {
// build_number: "b07",
// file: "bundles/jcov-3_0.zip",
organization: common.organization,
revision: "3.0-7-jdk-asm+1.0",
revision: "3.0-9-jdk-asm+1.0",
ext: "zip",
environment_name: "JCOV_HOME",
},

View File

@@ -25,19 +25,19 @@
# Versions and download locations for dependencies used by pre-submit testing.
BOOT_JDK_VERSION=16
BOOT_JDK_VERSION=17
JTREG_VERSION=6
JTREG_BUILD=1
GTEST_VERSION=1.8.1
LINUX_X64_BOOT_JDK_FILENAME=openjdk-16_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk16/7863447f0ab643c585b9bdebf67c69db/36/GPL/openjdk-16_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_SHA256=e952958f16797ad7dc7cd8b724edd69ec7e0e0434537d80d6b5165193e33b931
LINUX_X64_BOOT_JDK_FILENAME=openjdk-17_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/openjdk-17_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_SHA256=aef49cc7aa606de2044302e757fa94c8e144818e93487081c4fd319ca858134b
WINDOWS_X64_BOOT_JDK_FILENAME=openjdk-16_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk16/7863447f0ab643c585b9bdebf67c69db/36/GPL/openjdk-16_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_SHA256=a78bdeaad186297601edac6772d931224d7af6f682a43372e693c37020bd37d6
WINDOWS_X64_BOOT_JDK_FILENAME=openjdk-17_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/openjdk-17_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_SHA256=e88b0df00021c9d266bb435c9a95fdc67d1948cce4518daf85c234907bd393c5
MACOS_X64_BOOT_JDK_FILENAME=openjdk-16_osx-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk16/7863447f0ab643c585b9bdebf67c69db/36/GPL/openjdk-16_osx-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_SHA256=16f3e39a31e86f3f51b0b4035a37494a47ed3c4ead760eafc6afd7afdf2ad9f2
MACOS_X64_BOOT_JDK_FILENAME=openjdk-17_macos-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk17/0d483333a00540d886896bac774ff48b/35/GPL/openjdk-17_macos-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_SHA256=18e11cf9bbc6f584031e801b11ae05a233c32086f8e1b84eb8a1e9bb8e1f5d90

View File

@@ -37,6 +37,6 @@ DEFAULT_VERSION_DATE=2022-03-15
DEFAULT_VERSION_CLASSFILE_MAJOR=62 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_CLASSFILE_MINOR=0
DEFAULT_VERSION_DOCS_API_SINCE=11
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="16 17 18"
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="17 18"
DEFAULT_JDK_SOURCE_TARGET_VERSION=18
DEFAULT_PROMOTED_VERSION_PRE=ea

View File

@@ -1,29 +0,0 @@
Owner: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
Issuer: CN=GlobalSign, O=GlobalSign, OU=GlobalSign Root CA - R2
Serial number: 400000000010f8626e60d
Valid from: Fri Dec 15 08:00:00 GMT 2006 until: Wed Dec 15 08:00:00 GMT 2021
Signature algorithm name: SHA1withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
-----BEGIN CERTIFICATE-----
MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
-----END CERTIFICATE-----

View File

@@ -1,27 +0,0 @@
Owner: CN=DST Root CA X3, O=Digital Signature Trust Co.
Issuer: CN=DST Root CA X3, O=Digital Signature Trust Co.
Serial number: 44afb080d6a327ba893039862ef8406b
Valid from: Sat Sep 30 21:12:19 GMT 2000 until: Thu Sep 30 14:01:15 GMT 2021
Signature algorithm name: SHA1withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3
-----BEGIN CERTIFICATE-----
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 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,7 +49,6 @@ charset US-ASCII US_ASCII
alias IBM367
alias cp367
alias csASCII
alias default
# Other aliases
alias 646 # Solaris POSIX locale
alias iso_646.irv:1983

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2000, 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
@@ -32,7 +32,7 @@ formatVersion=3
# Version of the currency code information in this class.
# It is a serial number that accompanies with each amendment.
dataVersion=169
dataVersion=170
# List of all valid ISO 4217 currency codes.
# To ensure compatibility, do not remove codes.
@@ -54,7 +54,7 @@ all=ADP020-AED784-AFA004-AFN971-ALL008-AMD051-ANG532-AOA973-ARS032-ATS040-AUD036
SBD090-SCR690-SDD736-SDG938-SEK752-SGD702-SHP654-SIT705-SKK703-SLL694-SOS706-\
SRD968-SRG740-SSP728-STD678-STN930-SVC222-SYP760-SZL748-THB764-TJS972-TMM795-TMT934-TND788-TOP776-\
TPE626-TRL792-TRY949-TTD780-TWD901-TZS834-UAH980-UGX800-USD840-USN997-USS998-UYI940-\
UYU858-UZS860-VEB862-VEF937-VES928-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\
UYU858-UZS860-VEB862-VED926-VEF937-VES928-VND704-VUV548-WST882-XAF950-XAG961-XAU959-XBA955-\
XBB956-XBC957-XBD958-XCD951-XDR960-XFO000-XFU000-XOF952-XPD964-XPF953-\
XPT962-XSU994-XTS963-XUA965-XXX999-YER886-YUM891-ZAR710-ZMK894-ZMW967-ZWD716-ZWL932-\
ZWN942-ZWR935
@@ -317,6 +317,8 @@ KI=AUD
KP=KPW
# KOREA (THE REPUBLIC OF)
KR=KRW
# KOSOVO - Not in ISO 3166/4217
XK=EUR
# KUWAIT
KW=KWD
# KYRGYZSTAN

View File

@@ -52,7 +52,7 @@ allfonts.myanmar=Myanmar Text
allfonts.dingbats=Wingdings
allfonts.symbol=Symbol
allfonts.symbols=Segoe UI Symbol
allfonts.thai=Tahoma
allfonts.thai=DokChampa
allfonts.georgian=Sylfaen
serif.plain.alphabetic=Times New Roman
@@ -60,140 +60,140 @@ serif.plain.chinese-ms950=MingLiU
serif.plain.chinese-ms950-extb=MingLiU-ExtB
serif.plain.hebrew=David
serif.plain.japanese=MS Mincho
serif.plain.korean=Malgun Gothic
serif.plain.korean=Batang
serif.bold.alphabetic=Times New Roman Bold
serif.bold.chinese-ms950=PMingLiU
serif.bold.chinese-ms950-extb=PMingLiU-ExtB
serif.bold.hebrew=David Bold
serif.bold.japanese=MS Mincho
serif.bold.korean=Malgun Gothic
serif.bold.korean=Batang
serif.italic.alphabetic=Times New Roman Italic
serif.italic.chinese-ms950=PMingLiU
serif.italic.chinese-ms950-extb=PMingLiU-ExtB
serif.italic.hebrew=David
serif.italic.japanese=MS Mincho
serif.italic.korean=Malgun Gothic
serif.italic.korean=Batang
serif.bolditalic.alphabetic=Times New Roman Bold Italic
serif.bolditalic.chinese-ms950=PMingLiU
serif.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
serif.bolditalic.hebrew=David Bold
serif.bolditalic.japanese=MS Mincho
serif.bolditalic.korean=Malgun Gothic
serif.bolditalic.korean=Batang
sansserif.plain.alphabetic=Arial
sansserif.plain.chinese-ms950=MingLiU
sansserif.plain.chinese-ms950-extb=MingLiU-ExtB
sansserif.plain.hebrew=David
sansserif.plain.japanese=MS Gothic
sansserif.plain.korean=Malgun Gothic
sansserif.plain.korean=Gulim
sansserif.bold.alphabetic=Arial Bold
sansserif.bold.chinese-ms950=PMingLiU
sansserif.bold.chinese-ms950-extb=PMingLiU-ExtB
sansserif.bold.hebrew=David Bold
sansserif.bold.japanese=MS Gothic
sansserif.bold.korean=Malgun Gothic
sansserif.bold.korean=Gulim
sansserif.italic.alphabetic=Arial Italic
sansserif.italic.chinese-ms950=PMingLiU
sansserif.italic.chinese-ms950-extb=PMingLiU-ExtB
sansserif.italic.hebrew=David
sansserif.italic.japanese=MS Gothic
sansserif.italic.korean=Malgun Gothic
sansserif.italic.korean=Gulim
sansserif.bolditalic.alphabetic=Arial Bold Italic
sansserif.bolditalic.chinese-ms950=PMingLiU
sansserif.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
sansserif.bolditalic.hebrew=David Bold
sansserif.bolditalic.japanese=MS Gothic
sansserif.bolditalic.korean=Malgun Gothic
sansserif.bolditalic.korean=Gulim
monospaced.plain.alphabetic=Courier New
monospaced.plain.chinese-ms950=MingLiU
monospaced.plain.chinese-ms950-extb=MingLiU-ExtB
monospaced.plain.hebrew=Courier New
monospaced.plain.japanese=MS Gothic
monospaced.plain.korean=Malgun Gothic
monospaced.plain.korean=GulimChe
monospaced.bold.alphabetic=Courier New Bold
monospaced.bold.chinese-ms950=PMingLiU
monospaced.bold.chinese-ms950-extb=PMingLiU-ExtB
monospaced.bold.hebrew=Courier New Bold
monospaced.bold.japanese=MS Gothic
monospaced.bold.korean=Malgun Gothic
monospaced.bold.korean=GulimChe
monospaced.italic.alphabetic=Courier New Italic
monospaced.italic.chinese-ms950=PMingLiU
monospaced.italic.chinese-ms950-extb=PMingLiU-ExtB
monospaced.italic.hebrew=Courier New
monospaced.italic.japanese=MS Gothic
monospaced.italic.korean=Malgun Gothic
monospaced.italic.korean=GulimChe
monospaced.bolditalic.alphabetic=Courier New Bold Italic
monospaced.bolditalic.chinese-ms950=PMingLiU
monospaced.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
monospaced.bolditalic.hebrew=Courier New Bold
monospaced.bolditalic.japanese=MS Gothic
monospaced.bolditalic.korean=Malgun Gothic
monospaced.bolditalic.korean=GulimChe
dialog.plain.alphabetic=Arial
dialog.plain.chinese-ms950=MingLiU
dialog.plain.chinese-ms950-extb=MingLiU-ExtB
dialog.plain.hebrew=David
dialog.plain.japanese=MS Gothic
dialog.plain.korean=Malgun Gothic
dialog.plain.korean=Gulim
dialog.bold.alphabetic=Arial Bold
dialog.bold.chinese-ms950=PMingLiU
dialog.bold.chinese-ms950-extb=PMingLiU-ExtB
dialog.bold.hebrew=David Bold
dialog.bold.japanese=MS Gothic
dialog.bold.korean=Malgun Gothic
dialog.bold.korean=Gulim
dialog.italic.alphabetic=Arial Italic
dialog.italic.chinese-ms950=PMingLiU
dialog.italic.chinese-ms950-extb=PMingLiU-ExtB
dialog.italic.hebrew=David
dialog.italic.japanese=MS Gothic
dialog.italic.korean=Malgun Gothic
dialog.italic.korean=Gulim
dialog.bolditalic.alphabetic=Arial Bold Italic
dialog.bolditalic.chinese-ms950=PMingLiU
dialog.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
dialog.bolditalic.hebrew=David Bold
dialog.bolditalic.japanese=MS Gothic
dialog.bolditalic.korean=Malgun Gothic
dialog.bolditalic.korean=Gulim
dialoginput.plain.alphabetic=Courier New
dialoginput.plain.chinese-ms950=MingLiU
dialoginput.plain.chinese-ms950-extb=MingLiU-ExtB
dialoginput.plain.hebrew=David
dialoginput.plain.japanese=MS Gothic
dialoginput.plain.korean=Malgun Gothic
dialoginput.plain.korean=Gulim
dialoginput.bold.alphabetic=Courier New Bold
dialoginput.bold.chinese-ms950=PMingLiU
dialoginput.bold.chinese-ms950-extb=PMingLiU-ExtB
dialoginput.bold.hebrew=David Bold
dialoginput.bold.japanese=MS Gothic
dialoginput.bold.korean=Malgun Gothic
dialoginput.bold.korean=Gulim
dialoginput.italic.alphabetic=Courier New Italic
dialoginput.italic.chinese-ms950=PMingLiU
dialoginput.italic.chinese-ms950-extb=PMingLiU-ExtB
dialoginput.italic.hebrew=David
dialoginput.italic.japanese=MS Gothic
dialoginput.italic.korean=Malgun Gothic
dialoginput.italic.korean=Gulim
dialoginput.bolditalic.alphabetic=Courier New Bold Italic
dialoginput.bolditalic.chinese-ms950=PMingLiU
dialoginput.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
dialoginput.bolditalic.hebrew=David Bold
dialoginput.bolditalic.japanese=MS Gothic
dialoginput.bolditalic.korean=Malgun Gothic
dialoginput.bolditalic.korean=Gulim
# Search Sequences
@@ -230,7 +230,7 @@ sequence.dialog.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats
sequence.dialoginput.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
sequence.allfonts.UTF-8.hi=alphabetic/1252,devanagari,dingbats,symbol
sequence.allfonts.UTF-8.ja=alphabetic,japanese,devanagari,dingbats,symbol
sequence.allfonts.UTF-8.ja=alphabetic,japanese,dingbats,symbol
sequence.allfonts.windows-1255=hebrew,alphabetic/1252,dingbats,symbol
@@ -257,7 +257,7 @@ sequence.fallback=symbols,\
# Exclusion Ranges
exclusion.alphabetic=0700-1cff,1d80-1e9f,1f00-2017,2020-20ab,20ad-20b8,20bb-20bc,20be-24ff,2501-2501,2503-250b,250d-250f,2511-2513,2515-2517,2519-251b,251d-2523,2525-252b,252d-2533,2535-253b,253d-254f,256d-f8ff
exclusion.alphabetic=0700-1cff,1d80-1e9f,1f00-2017,2020-20ab,20ad-20b8,20bb-20bc,20be-f8ff
exclusion.chinese-gb18030=0390-03d6,2200-22ef,2701-27be
exclusion.hebrew=0041-005a,0060-007a,007f-00ff,20ac-20ac
@@ -303,18 +303,21 @@ filename.MS_PMincho=MSMINCHO.TTC
filename.MS_Gothic=MSGOTHIC.TTC
filename.MS_PGothic=MSGOTHIC.TTC
filename.Gulim=gulim.TTC
filename.Batang=batang.TTC
filename.GulimChe=gulim.TTC
filename.Gautami=gautami.ttf
filename.Iskoola_Pota=iskpota.ttf
filename.Kalinga=kalinga.ttf
filename.Kartika=kartika.ttf
filename.Latha=latha.ttf
filename.Malgun_Gothic=malgun.ttf
filename.Mangal=MANGAL.TTF
filename.Raavi=raavi.ttf
filename.Shruti=shruti.ttf
filename.Tahoma=tahoma.ttf
filename.Tunga=TUNGA.TTF
filename.Vrinda=vrinda.ttf
filename.DokChampa=dokchamp.ttf
filename.Khmer_UI=KhmerUI.ttf
filename.Mongolian_Baiti=monbaiti.ttf
filename.Myanmar_Text=mmrtext.ttf

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 1998, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1998, 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
@@ -134,9 +134,9 @@ JDWP "Java(tm) Debug Wire Protocol"
"<ul>"
"<li>All event requests are cancelled. "
"<li>All threads suspended by the thread-level "
"<a href=\"#JDWP_ThreadReference_Resume\">resume</a> command "
"<a href=\"#JDWP_ThreadReference_Suspend\">suspend</a> command "
"or the VM-level "
"<a href=\"#JDWP_VirtualMachine_Resume\">resume</a> command "
"<a href=\"#JDWP_VirtualMachine_Suspend\">suspend</a> command "
"are resumed as many times as necessary for them to run. "
"<li>Garbage collection is re-enabled in all cases where it was "
"<a href=\"#JDWP_ObjectReference_DisableCollection\">disabled</a> "

View File

@@ -114,8 +114,8 @@ header extends java/lang/Object implements java/lang/annotation/Annotation flags
class name java/lang/System
-method name setSecurityManager descriptor (Ljava/lang/SecurityManager;)V
-method name getSecurityManager descriptor ()Ljava/lang/SecurityManager;
method name setSecurityManager descriptor (Ljava/lang/SecurityManager;)V flags 9 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="17")
method name getSecurityManager descriptor ()Ljava/lang/SecurityManager; flags 9 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="17")
method name setSecurityManager descriptor (Ljava/lang/SecurityManager;)V flags 9 deprecated true runtimeAnnotations @Ljava/lang/Deprecated;(forRemoval=Ztrue,since="17")@Ljdk/internal/reflect/CallerSensitive;
class name java/lang/Thread
-method name checkAccess descriptor ()V
@@ -209,7 +209,8 @@ header extends java/lang/RuntimeException flags 21
class name java/lang/runtime/SwitchBootstraps
header extends java/lang/Object flags 21 classAnnotations @Ljdk/internal/javac/PreviewFeature;(feature=eLjdk/internal/javac/PreviewFeature$Feature;SWITCH_PATTERN_MATCHING;)
innerclass innerClass java/lang/invoke/MethodHandles$Lookup outerClass java/lang/invoke/MethodHandles innerClassName Lookup flags 19
method name typeSwitch descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; thrownTypes java/lang/Throwable flags 89
method name typeSwitch descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; flags 89
method name enumSwitch descriptor (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite; flags 89
class name java/net/DatagramSocket
-method name setDatagramSocketImplFactory descriptor (Ljava/net/DatagramSocketImplFactory;)V
@@ -454,8 +455,7 @@ innerclass innerClass java/io/ObjectInputStream$GetField outerClass java/io/Obje
innerclass innerClass java/io/ObjectOutputStream$PutField outerClass java/io/ObjectOutputStream innerClassName PutField flags 409
class name java/util/SplittableRandom
header extends jdk/internal/util/random/RandomSupport$AbstractSplittableGenerator flags 31 runtimeAnnotations @Ljdk/internal/util/random/RandomSupport$RandomGeneratorProperties;(name="SplittableRandom",i=I64,j=I0,k=I0,equidistribution=I1)
innerclass innerClass jdk/internal/util/random/RandomSupport$AbstractSplittableGenerator outerClass jdk/internal/util/random/RandomSupport innerClassName AbstractSplittableGenerator flags 409
header extends java/lang/Object implements java/util/random/RandomGenerator,java/util/random/RandomGenerator$SplittableGenerator flags 31 runtimeAnnotations @Ljdk/internal/util/random/RandomSupport$RandomGeneratorProperties;(name="SplittableRandom",i=I64,j=I0,k=I0,equidistribution=I1)
innerclass innerClass java/util/random/RandomGenerator$SplittableGenerator outerClass java/util/random/RandomGenerator innerClassName SplittableGenerator flags 609
-method name nextInt descriptor (I)I
-method name nextInt descriptor (II)I

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