Compare commits

..

875 Commits

Author SHA1 Message Date
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
3057 changed files with 110164 additions and 109287 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

@@ -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>

View File

@@ -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.

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

View File

@@ -857,6 +857,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

@@ -789,15 +789,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

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.

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

@@ -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
@@ -274,7 +274,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

@@ -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

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

@@ -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)
@@ -423,16 +426,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

@@ -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

@@ -1164,7 +1164,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

@@ -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
@@ -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

@@ -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

View File

@@ -39,6 +39,7 @@ innerclass innerClass jdk/incubator/foreign/CLinker$VaList$Builder outerClass jd
-method name toCString descriptor (Ljava/lang/String;Ljava/nio/charset/Charset;Ljdk/incubator/foreign/NativeScope;)Ljdk/incubator/foreign/MemorySegment;
-method name toJavaStringRestricted descriptor (Ljdk/incubator/foreign/MemoryAddress;)Ljava/lang/String;
-method name toJavaStringRestricted descriptor (Ljdk/incubator/foreign/MemoryAddress;Ljava/nio/charset/Charset;)Ljava/lang/String;
-method name toJavaString descriptor (Ljdk/incubator/foreign/MemorySegment;Ljava/nio/charset/Charset;)Ljava/lang/String;
-method name allocateMemoryRestricted descriptor (J)Ljdk/incubator/foreign/MemoryAddress;
-method name freeMemoryRestricted descriptor (Ljdk/incubator/foreign/MemoryAddress;)V
method name getInstance descriptor ()Ljdk/incubator/foreign/CLinker; flags 9 runtimeAnnotations @Ljdk/internal/reflect/CallerSensitive;
@@ -47,10 +48,7 @@ method name downcallHandle descriptor (Ljava/lang/invoke/MethodType;Ljdk/incubat
method name upcallStub descriptor (Ljava/lang/invoke/MethodHandle;Ljdk/incubator/foreign/FunctionDescriptor;Ljdk/incubator/foreign/ResourceScope;)Ljdk/incubator/foreign/MemoryAddress; flags 401
method name toCString descriptor (Ljava/lang/String;Ljdk/incubator/foreign/SegmentAllocator;)Ljdk/incubator/foreign/MemorySegment; flags 9
method name toCString descriptor (Ljava/lang/String;Ljdk/incubator/foreign/ResourceScope;)Ljdk/incubator/foreign/MemorySegment; flags 9
method name toCString descriptor (Ljava/lang/String;Ljava/nio/charset/Charset;Ljdk/incubator/foreign/SegmentAllocator;)Ljdk/incubator/foreign/MemorySegment; flags 9
method name toCString descriptor (Ljava/lang/String;Ljava/nio/charset/Charset;Ljdk/incubator/foreign/ResourceScope;)Ljdk/incubator/foreign/MemorySegment; flags 9
method name toJavaString descriptor (Ljdk/incubator/foreign/MemoryAddress;)Ljava/lang/String; flags 9 runtimeAnnotations @Ljdk/internal/reflect/CallerSensitive;
method name toJavaString descriptor (Ljdk/incubator/foreign/MemoryAddress;Ljava/nio/charset/Charset;)Ljava/lang/String; flags 9 runtimeAnnotations @Ljdk/internal/reflect/CallerSensitive;
method name allocateMemory descriptor (J)Ljdk/incubator/foreign/MemoryAddress; flags 9 runtimeAnnotations @Ljdk/internal/reflect/CallerSensitive;
method name freeMemory descriptor (Ljdk/incubator/foreign/MemoryAddress;)V flags 9 runtimeAnnotations @Ljdk/internal/reflect/CallerSensitive;
method name systemLookup descriptor ()Ljdk/incubator/foreign/SymbolLookup; flags 9 runtimeAnnotations @Ljdk/internal/reflect/CallerSensitive;

View File

@@ -29,9 +29,9 @@
class name jdk/javadoc/doclet/Reporter
header extends java/lang/Object flags 601
innerclass innerClass javax/tools/Diagnostic$Kind outerClass javax/tools/Diagnostic innerClassName Kind flags 4019
method name print descriptor (Ljavax/tools/Diagnostic$Kind;Ljavax/tools/FileObject;IIILjava/lang/String;)V flags 401
method name getStandardWriter descriptor ()Ljava/io/PrintWriter; flags 1
method name getDiagnosticWriter descriptor ()Ljava/io/PrintWriter; flags 1
method name print descriptor (Ljavax/tools/Diagnostic$Kind;Ljavax/tools/FileObject;IIILjava/lang/String;)V flags 1
class name jdk/javadoc/doclet/StandardDoclet
header extends java/lang/Object implements jdk/javadoc/doclet/Doclet flags 21

View File

@@ -272,14 +272,12 @@ XEvent.xclient 0
XEvent.xcolormap 0
XEvent.xconfigure 0
XEvent.xconfigurerequest 0
XEvent.xcookie 0
XEvent.xcreatewindow 0
XEvent.xcrossing 0
XEvent.xdestroywindow 0
XEvent.xerror 0
XEvent.xexpose 0
XEvent.xfocus 0
XEvent.xgeneric 0
XEvent.xgraphicsexpose 0
XEvent.xgravity 0
XEvent.xkey 0
@@ -372,22 +370,6 @@ XGCValues.subwindow_mode 96
XGCValues.tile 64
XGCValues.ts_x_origin 80
XGCValues.ts_y_origin 84
XGenericEvent 40
XGenericEventCookie 56
XGenericEventCookie.cookie 40
XGenericEventCookie.data 48
XGenericEventCookie.display 24
XGenericEventCookie.evtype 36
XGenericEventCookie.extension 32
XGenericEventCookie.send_event 16
XGenericEventCookie.serial 8
XGenericEventCookie.type 0
XGenericEvent.display 24
XGenericEvent.evtype 36
XGenericEvent.extension 32
XGenericEvent.send_event 16
XGenericEvent.serial 8
XGenericEvent.type 0
XGraphicsExposeEvent 72
XGraphicsExposeEvent.count 56
XGraphicsExposeEvent.display 24
@@ -414,9 +396,6 @@ XHostAddress 16
XHostAddress.address 8
XHostAddress.family 0
XHostAddress.length 4
XIButtonState 16
XIButtonState.mask 8
XIButtonState.mask_len 0
XIconSize 24
XIconSize.height_inc 20
XIconSize.max_height 12
@@ -424,29 +403,6 @@ XIconSize.max_width 8
XIconSize.min_height 4
XIconSize.min_width 0
XIconSize.width_inc 16
XIDeviceEvent 200
XIDeviceEvent.buttons 128
XIDeviceEvent.child 80
XIDeviceEvent.detail 56
XIDeviceEvent.deviceid 48
XIDeviceEvent.display 24
XIDeviceEvent.event 72
XIDeviceEvent.event_x 104
XIDeviceEvent.event_y 112
XIDeviceEvent.evtype 36
XIDeviceEvent.extension 32
XIDeviceEvent.flags 120
XIDeviceEvent.group 184
XIDeviceEvent.mods 168
XIDeviceEvent.root 64
XIDeviceEvent.root_x 88
XIDeviceEvent.root_y 96
XIDeviceEvent.send_event 16
XIDeviceEvent.serial 8
XIDeviceEvent.sourceid 52
XIDeviceEvent.time 40
XIDeviceEvent.type 0
XIDeviceEvent.valuators 144
XImage 136
XImage.bitmap_bit_order 32
XImage.bitmap_pad 36
@@ -480,11 +436,6 @@ XIMHotKeyTrigger.modifier_mask 12
XIMHotKeyTriggers 16
XIMHotKeyTriggers.key 8
XIMHotKeyTriggers.num_hot_key 0
XIModifierState 16
XIModifierState.base 0
XIModifierState.effective 12
XIModifierState.latched 4
XIModifierState.locked 8
XIMPreeditCaretCallbackStruct 12
XIMPreeditCaretCallbackStruct.direction 4
XIMPreeditCaretCallbackStruct.position 0
@@ -521,10 +472,6 @@ XIMText.string 24
XIMValuesList 16
XIMValuesList.count_values 0
XIMValuesList.supported_values 8
XIValuatorState 24
XIValuatorState.mask 8
XIValuatorState.mask_len 0
XIValuatorState.values 16
XkbAccessXNotifyEvent 64
XkbAccessXNotifyEvent.debounce_delay 60
XkbAccessXNotifyEvent.detail 48

View File

@@ -127,22 +127,6 @@ XKeymapEvent
display long
window long
key_vector array byte 32
XGenericEvent
type int
serial long
send_event Bool
display long
extension int
evtype int
XGenericEventCookie
type int
serial long
send_event Bool
display long
extension int
evtype int
cookie int
data pointer
XDestroyWindowEvent
type int
serial long
@@ -830,8 +814,6 @@ XEvent
xmapping struct XMappingEvent
xerror struct XErrorEvent
xkeymap struct XKeymapEvent
xgeneric struct XGenericEvent
xcookie struct XGenericEventCookie
pad array long 24
XkbAnyEvent
@@ -1057,42 +1039,3 @@ XkbEvent
accessx struct XkbAccessXNotifyEvent
device struct XkbExtensionDeviceNotifyEvent
core struct XEvent
XIButtonState
mask_len int
mask pointer byte
XIValuatorState
mask_len int
mask pointer byte
values pointer double
XIModifierState
base int
latched int
locked int
effective int
XIDeviceEvent
type int
serial long
send_event Bool
display long
extension int
evtype int
time ulong
deviceid int
sourceid int
detail int
root long
event long
child long
root_x double
root_y double
event_x double
event_y double
flags int
buttons struct XIButtonState
valuators struct XIValuatorState
mods struct XIModifierState
group struct XIModifierState

View File

@@ -1,6 +1,6 @@
#!/bin/bash -e
#
# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2018, 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
@@ -26,7 +26,7 @@
# Create a bundle in the build directory, containing what's needed to
# build and run JMH microbenchmarks from the OpenJDK build.
JMH_VERSION=1.28
JMH_VERSION=1.32
COMMONS_MATH3_VERSION=3.2
JOPT_SIMPLE_VERSION=4.6

View File

@@ -1,6 +1,6 @@
#!/bin/bash
#
# Copyright (c) 2015, 2020, 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
@@ -102,7 +102,7 @@ EXCLUDE_DIRS=" \
"
for ex in $EXCLUDE_DIRS; do
EXCLUDE_ARGS+="--exclude=$ex "
EXCLUDE_ARGS="$EXCLUDE_ARGS --exclude=$ex"
done
echo "Copying Xcode.app..."

View File

@@ -116,8 +116,12 @@ endif
ifneq ($(call check-jvm-feature, cds), true)
JVM_CFLAGS_FEATURES += -DINCLUDE_CDS=0
JVM_EXCLUDE_FILES += \
cdsProtectionDomain.cpp \
classLoaderDataShared.cpp \
classLoaderExt.cpp \
dumpTimeSharedClassInfo.cpp \
lambdaProxyClassDictionary.cpp \
runTimeSharedClassInfo.cpp \
systemDictionaryShared.cpp
JVM_EXCLUDE_PATTERNS += cds/
endif
@@ -183,7 +187,6 @@ ifeq ($(call check-jvm-feature, opt-size), true)
assembler.cpp \
barrierSet.cpp \
basicLock.cpp \
biasedLocking.cpp \
bytecode.cpp \
bytecodeInterpreter.cpp \
c1_Compilation.cpp \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2013, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@ ifeq ($(TOOLCHAIN_TYPE), gcc)
BUILD_LIBJVM_assembler_x86.cpp_CXXFLAGS := -Wno-maybe-uninitialized
BUILD_LIBJVM_cardTableBarrierSetAssembler_x86.cpp_CXXFLAGS := -Wno-maybe-uninitialized
BUILD_LIBJVM_interp_masm_x86.cpp_CXXFLAGS := -Wno-uninitialized
BUILD_LIBJVM_ad_$(HOTSPOT_TARGET_CPU_ARCH).cpp_CXXFLAGS := -Wno-nonnull
ifeq ($(DEBUG_LEVEL), release)
# Need extra inlining to collapse shared marking code into the hot marking loop
BUILD_LIBJVM_shenandoahMark.cpp_CXXFLAGS := --param inline-unit-growth=1000

View File

@@ -0,0 +1,42 @@
<!-- importing.xml -->
<project name="jdk">
<taskdef name="wrapLogger" classname="idea.IdeaLoggerWrapper" classpath="${idea.dir}/classes"/>
<wrapLogger/>
<macrodef name="call-make">
<attribute name="dir"/>
<attribute name="args"/>
<sequential>
<exec executable="make" dir="@{dir}" failonerror="true">
<arg line="@{args}"/>
<env key="CLASSPATH" value = ""/>
</exec>
</sequential>
</macrodef>
<target name="cond-clean" unless="${intellij.ismake}">
<antcall target="clean"/>
</target>
<target name="post-make" depends="cond-clean, build-module"/>
<!--
**** Global JDK Build Targets
-->
<target name="clean">
<echo message="base = ${basedir}"/>
<call-make dir = "${build.target.dir}" args = "reconfigure"/>
<call-make dir = "${build.target.dir}" args = "clean"/>
</target>
<target name="images">
<call-make dir = "${build.target.dir}" args = "images"/>
</target>
<target name="build-module">
<call-make dir = "${build.target.dir}" args = "${module.name}"/>
</target>
</project>

View File

@@ -46,18 +46,13 @@ else #with SPEC
endif
idea:
$(ECHO) "MODULES=\"$(foreach mod, $(SEL_MODULES), \
module='$(mod)' \
moduleSrcDirs='$(foreach m,$(call FindModuleSrcDirs,$(mod)),$(call RelativePath,$m,$(topdir)))' \
moduleDependencies='$(call FindTransitiveDepsForModule,$(mod))' \
#)\"" > $(OUT)
$(ECHO) "SUPPORT=$(SUPPORT_OUTPUTDIR)" >> $(OUT)
$(ECHO) "MODULE_ROOTS=\"$(foreach mod, $(SEL_MODULES), $(call FindModuleSrcDirs,$(mod)))\"" >> $(OUT)
$(ECHO) "MODULE_NAMES=\"$(strip $(foreach mod, $(SEL_MODULES), $(mod)))\"" >> $(OUT)
$(ECHO) "RELATIVE_TOPLEVEL_PROJECT_DIR=\"$(call RelativePath,$(TOPLEVEL_DIR),$(IDEA_OUTPUT_PARENT))\"" >> $(OUT)
$(ECHO) "RELATIVE_PROJECT_DIR=\"$(call RelativePath,$(topdir),$(IDEA_OUTPUT_PARENT))\"" >> $(OUT)
$(ECHO) "RELATIVE_BUILD_DIR=\"$(call RelativePath,$(OUTPUTDIR),$(IDEA_OUTPUT_PARENT))\"" >> $(OUT)
$(ECHO) "CLION_RELATIVE_PROJECT_DIR=\"$(call RelativePath,$(topdir),$(IDEA_OUTPUT_PARENT)/.idea/jdk-clion)\"" >> $(OUT)
$(ECHO) "PATHTOOL=\"$(PATHTOOL)\"" >> $(OUT)
$(ECHO) "SEL_MODULES=\"$(SEL_MODULES)\"" >> $(OUT)
$(ECHO) "BOOT_JDK=\"$(BOOT_JDK)\"" >> $(OUT)
$(ECHO) "CYGPATH=\"$(PATHTOOL)\"" >> $(OUT)
$(ECHO) "SPEC=\"$(SPEC)\"" >> $(OUT)
$(ECHO) "JT_HOME=\"$(JT_HOME)\"" >> $(OUT)
$(ECHO) "WINENV_ROOT=\"$(WINENV_ROOT)\"" >> $(OUT)
endif

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