Compare commits

..

1005 Commits

Author SHA1 Message Date
Justin Gu
13f0f126b9 8290370: Convert SymbolPropertyTable to ResourceHashtable
Reviewed-by: coleenp, iklam
2022-08-03 19:53:30 +00:00
Vicente Romero
67f001186b 8260892: Compilation fails: lambda parameter not visible in body when generics involved
Reviewed-by: jlahoda
2022-08-03 19:19:34 +00:00
Eric Caspole
1b66cecd31 8291729: Reduce runtime of vm.compiler microbenchmarks
Reviewed-by: kvn
2022-08-03 18:01:26 +00:00
Ao Qi
0cc49fd9ea 8291508: Fix some tests with "requires vm.jvmti & vm.continuations"
Reviewed-by: sspitsyn, lmesnik, alanb
2022-08-03 17:33:11 +00:00
Aleksey Shipilev
c89556f6cd 8291633: Build failures with GCC 11, Alpine 3 due to incompatible casts from nullptr
Reviewed-by: stuefe, mbaesken, jiefu
2022-08-03 16:43:20 +00:00
Marc R. Hoffmann
4d6e6f6741 8291822: ARM32: Build errors with GCC 11 in frame::saved_oop_result
Reviewed-by: shade, stuefe
2022-08-03 16:40:03 +00:00
Naoto Sato
e52a340d7f 8290488: IBM864 character encoding implementation bug
Reviewed-by: iris, joehw, alanb
2022-08-03 15:59:43 +00:00
Daniel Jeliński
af529be069 8285836: sun/net/www/http/KeepAliveCache/KeepAliveProperty.java failed with "RuntimeException: Failed in server"
Reviewed-by: dfuchs, jpai
2022-08-03 14:51:28 +00:00
Coleen Phillimore
b7d2bde8e3 8291733: Remove JFR events that expose hashtable
Reviewed-by: egahlin
2022-08-03 13:06:53 +00:00
David Holmes
0971d34646 Merge 2022-08-03 08:11:10 +00:00
Serguei Spitsyn
0ae8341057 8290908: misc tests fail: assert(!thread->owns_locks()) failed: must release all locks when leaving VM
Reviewed-by: cjplummer, amenkov
2022-08-02 22:41:17 +00:00
Chris Plummer
5acf2d7cb4 8291578: Remove JMX related tests from ProblemList-svc-vthreads.txt
Reviewed-by: sspitsyn, kevinw, lmesnik
2022-08-02 21:15:01 +00:00
Chris Plummer
a6564d495b 8291650: Add delay to ClassUnloadEventTest before exiting to give time for JVM to send all events before VMDeath
Reviewed-by: sspitsyn, amenkov
2022-08-02 21:13:00 +00:00
Erik Gahlin
54c093ab0e 8291524: jdk/jfr/event/runtime/TestClassLoaderStatsEvent.java Value not equal to 2, field='hiddenClassCount', value='0'
Reviewed-by: hseigel
2022-08-02 14:41:38 +00:00
Evgeny Astigeevich
af76c0c199 8291654: AArch64: assert from JDK-8287393 causes crashes
Reviewed-by: dholmes, xliu, phh
2022-08-02 12:01:25 +00:00
Johan Sjölén
a9db5bb373 8291626: Remove Mutex::contains as it is unused
Reviewed-by: stefank, dholmes
2022-08-02 10:38:31 +00:00
Pengfei Li
a2cff2634c 8291597: [BACKOUT] JDK-8289996: Fix array range check hoisting for some scaled loop iv
Reviewed-by: kvn, thartmann
2022-08-02 06:50:55 +00:00
Weijun Wang
554f44ecb1 8282730: LdapLoginModule throw NPE from logout method after login failure
Reviewed-by: mullan
2022-08-01 22:28:30 +00:00
Coleen Phillimore
f714ac52bf 8290718: Remove ALLOCATION_SUPER_CLASS_SPEC
Reviewed-by: zgu, iklam
2022-08-01 21:26:36 +00:00
Evgeny Astigeevich
6cbc234ad1 8287393: AArch64: Remove trampoline_call1
Reviewed-by: aph, phh
2022-08-01 19:52:42 +00:00
Bill Huang
57bf603b73 8289948: Improve test coverage for XPath functions: Node Set Functions
Reviewed-by: joehw
2022-08-01 16:37:22 +00:00
Gerard Ziemski
1df77ec137 8291060: OPEN_MAX is no longer the max limit on macOS >= 10.6 for RLIMIT_NOFILE
Reviewed-by: dholmes, dcubed
2022-08-01 16:07:11 +00:00
Aleksey Shipilev
fcc119531a 8290531: Loom: Parallelize a few tests more deeply
Reviewed-by: rpressler, jpai, alanb
2022-08-01 14:20:27 +00:00
Roger Riggs
226b8e680a 8290885: java/lang/ProcessBuilder/PipelineLeaksFD.java fail: More or fewer pipes than expected
Reviewed-by: bpb, naoto, jpai
2022-08-01 13:44:21 +00:00
Matthias Baesken
464085ed90 8291558: unify print_jni_name_prefix_on and print_jni_name_suffix_on on posix platforms
Reviewed-by: dholmes, stuefe
2022-08-01 13:24:31 +00:00
Prasanta Sadhukhan
f5d1b5bda2 6463708: DefaultButtonModel.setMnemonic generates ChangeEvent for no change
Reviewed-by: azvegint, prr
2022-08-01 11:08:56 +00:00
Thomas Schatzl
30205bb289 8290966: G1: Record number of PLAB filled and number of direct allocations
Reviewed-by: sangheki, kbarrett
2022-08-01 09:53:37 +00:00
Andrew Haley
86ef7b20eb 8289046: Undefined Behaviour in x86 class Assembler
Reviewed-by: shade, kvn
2022-08-01 08:57:49 +00:00
KIRIYAMA Takuya
d61c0c79cf 8290497: some tests in com/sun/jdi fail on localized Windows platform
Reviewed-by: sspitsyn, cjplummer, amenkov
2022-08-01 08:12:25 +00:00
Thomas Stuefe
7ff19694df 8290067: Show stack dimensions in UL logging when attaching threads
Reviewed-by: dholmes, mbaesken
2022-08-01 08:03:52 +00:00
Axel Boldt-Christmas
257c71c35f 8290062: Remove nmethodLocker for nmethods on-stack
Reviewed-by: eosterlund, kvn
2022-08-01 05:23:39 +00:00
Aleksey Shipilev
d9cb410efc 8290466: Default to --with-source-date=current to avoid unmodified Hotspot recompilation
Reviewed-by: erikj, ihse
2022-07-31 18:52:16 +00:00
Aleksey Shipilev
acbe093a66 8291559: x86: compiler/vectorization/TestReverseBitsVector.java fails
Reviewed-by: kvn
2022-07-31 18:49:21 +00:00
Thomas Stuefe
32d410a1af 8290868: NMT: MallocSiteTable statistics improvements
Reviewed-by: zgu, lucy
2022-07-30 13:03:25 +00:00
Johan Sjölén
357902415d 8288904: Incorrect memory ordering in UL
Reviewed-by: rehn, dholmes
2022-07-30 07:34:39 +00:00
Joe Wang
470c0eb216 8290740: Catalog not used when the handler is null
Reviewed-by: lancea, naoto, iris
2022-07-30 01:42:05 +00:00
Yasumasa Suenaga
dd9bd31b86 8289688: jfr command hangs when it processes invalid file
Reviewed-by: egahlin
2022-07-29 23:30:58 +00:00
Jonathan Gibbons
8179a191f0 8290243: move seeTagToContent from HtmlDocletWriter to TagletWriterImpl
Reviewed-by: prappo
2022-07-29 21:55:20 +00:00
Serguei Spitsyn
15943e4242 8282666: nsk/jvmti/PopFrame/popframe004 failed with: TEST FAILED: 30 JVMTI events were generated by the function PopFrame()
Reviewed-by: lmesnik, amenkov
2022-07-29 21:49:27 +00:00
Kevin Driver
0bcf17674e 6227536: KeyGenerator.init() methods do not throw IllegalArgumentException for keysize == 0
Reviewed-by: wetmore
2022-07-29 20:30:28 +00:00
Joe Darcy
cc2861a993 8290901: Reduce use of -source in langtools tests
Reviewed-by: jjg
2022-07-29 17:35:22 +00:00
Aggelos Biboudis
64a1a08ff9 8289647: AssertionError during annotation processing of record related tests
Reviewed-by: vromero
2022-07-29 16:02:18 +00:00
Thomas Schatzl
95fc16bdfa 8290525: Move HeapRegion::_compaction_top to G1FullCollector
Reviewed-by: kbarrett, sangheki
2022-07-29 15:45:25 +00:00
Thomas Schatzl
f58e08e258 8290715: Fix incorrect uses of G1CollectedHeap::heap_region_containing()
Reviewed-by: kbarrett, sangheki
2022-07-29 15:43:43 +00:00
Boris Ulasevich
18cd16d2ea 8291003: ARM32: constant_table.size assertion
Reviewed-by: shade
2022-07-29 06:21:48 +00:00
Bill Huang
cfe9026fe0 8289511: Improve test coverage for XPath Axes: child
Reviewed-by: joehw
2022-07-29 01:42:19 +00:00
Magnus Ihse Bursie
eeac3da795 8289755: Remove --enable-reproducible-build from jib profile
Reviewed-by: wetmore, erikj
2022-07-28 22:34:03 +00:00
Bradford Wetmore
791fc5791a 6383195: javax.crypto.spec.PBEKeySpec is not thread safe
Reviewed-by: weijun
2022-07-28 22:04:44 +00:00
Boris Ulasevich
e052d7f4bc 8288477: nmethod header size reduction
Reviewed-by: kvn, never
2022-07-28 19:49:31 +00:00
Mark Reinhold
1d16c91ba7 8291512: Snippetize modules API examples
Reviewed-by: darcy
2022-07-28 18:22:59 +00:00
Jorn Vernee
54a2c5a6d1 8290059: Do not use std::thread in panama tests
Reviewed-by: mcimadamore, stuefe, erikj
2022-07-28 14:53:26 +00:00
Richard Reingruber
5214a17d81 8291479: ProblemList compiler/rangechecks/TestRangeCheckHoistingScaledIV.java on ppc64le
Reviewed-by: thartmann, goetz
2022-07-28 14:07:18 +00:00
Jatin Bhateja
471a427d10 8287794: Reverse*VNode::Identity problem
Reviewed-by: thartmann, xgong
2022-07-28 11:08:38 +00:00
Matthias Baesken
5d1ad39684 8290839: jdk/jfr/event/compiler/TestJitRestart.java failed with "RuntimeException: No JIT restart event found: expected true, was false"
Reviewed-by: egahlin, lucy
2022-07-28 10:48:45 +00:00
Leslie Zhai
97fc8deb1d 8291106: ZPlatformGranuleSizeShift is redundant
Reviewed-by: eosterlund, jiefu
2022-07-28 08:58:29 +00:00
Aleksey Shipilev
dd69a68d09 8291000: C2: Purge LoadPLocked and Store*Conditional nodes
Reviewed-by: eosterlund, kvn
2022-07-28 08:15:53 +00:00
Matthias Baesken
07f0612c9a 8290532: Adjust PKCS11Exception and handle more PKCS11 error codes
Reviewed-by: valeriep
2022-07-28 07:30:51 +00:00
Prasanta Sadhukhan
93f96d8c9e 8290399: [macos] Aqua LAF does not fire an action event if combo box menu is displayed
Reviewed-by: azvegint, prr
2022-07-28 06:44:49 +00:00
Jatin Bhateja
5d82d67a9e 8290034: Auto vectorize reverse bit operations.
Reviewed-by: xgong, kvn
2022-07-28 04:43:01 +00:00
Leonid Mesnik
348a0521e1 8290846: sun/tools/jstatd/JstatdTest* tests should use VM options
Reviewed-by: cjplummer, sspitsyn
2022-07-28 00:04:17 +00:00
Ioi Lam
bc6a3c7b83 8290739: Simplify storage of dump-time class information
Reviewed-by: ccheung
2022-07-27 23:52:30 +00:00
Hao Sun
16a127524c 8290943: Fix several IR test issues on SVE after JDK-8289801
Reviewed-by: jiefu, adinn
2022-07-27 23:42:11 +00:00
Pavel Rappo
c1a3347f17 8291358: Fix the "overridding" typo
Reviewed-by: rriggs
2022-07-27 21:48:59 +00:00
Thomas Schatzl
37b08c7bf9 8237913: G1CollectedHeap::heap_region_containing shouldn't be a template
Reviewed-by: kbarrett, sangheki
2022-07-27 20:05:06 +00:00
Aleksey Shipilev
dc74ea21f1 8291048: x86: compiler/c2/irTests/TestAutoVectorization2DArray.java fails with lower SSE
Reviewed-by: kvn, jiefu
2022-07-27 16:58:49 +00:00
Roger Riggs
c1040897cd 8290848: LoadLibraryUnload.java still fails with "Too few cleared WeakReferences"
Reviewed-by: mchung, jpai
2022-07-27 14:47:17 +00:00
David Holmes
923462467e Merge 2022-07-27 14:07:11 +00:00
Axel Boldt-Christmas
2f3e494b80 8290074: Remove implicit arguments for RegisterMap constructor
Reviewed-by: eosterlund, tschatzl
2022-07-27 12:43:18 +00:00
Thomas Schatzl
e804236f05 8291289: gc/TestPLABAdaptToMinTLABSize fails after JDK-8289137
Reviewed-by: shade
2022-07-27 12:39:28 +00:00
Zhengyu Gu
adaf3b9014 8291056: Remove unused Generation::par_promote*()
Reviewed-by: kbarrett
2022-07-27 12:25:35 +00:00
Harold Seigel
48b77a6969 8285792: Posix signal handler modification checking issues.
Reviewed-by: dholmes, erikj
2022-07-27 12:22:55 +00:00
Julian Waters
8ec3197683 8291002: Rename Method::build_interpreter_method_data to Method::build_profiling_method_data
Reviewed-by: kvn, thartmann
2022-07-27 11:52:10 +00:00
Tobias Hartmann
61e072d11c 8290705: StringConcat::validate_mem_flow asserts with "unexpected user: StoreI"
Reviewed-by: kvn, xliu
2022-07-27 10:43:52 +00:00
Maurizio Cimadamore
36c00fdd74 8291006: java/foreign/TestUnsupportedPlatform fails after JDK-8290455
Reviewed-by: jvernee
2022-07-27 09:50:58 +00:00
Eric Liu
2bd90c2149 8284990: AArch64: Remove STXR_PREFETCH from CPU features
Reviewed-by: aph, ngasson, njian
2022-07-27 09:38:04 +00:00
Thomas Schatzl
2a1d9cfead 8289137: Automatically adapt Young/OldPLABSize and when setting only MinTLABSize
Reviewed-by: iwalulya, sangheki
2022-07-27 08:01:05 +00:00
Mark Powers
4d796ee8ab 8290887: Unused private method in TrustManagerFactoryImpl
Reviewed-by: weijun, xuelei, mullan
2022-07-26 20:23:55 +00:00
Eric Caspole
f0f78a9125 8290894: Reduce runtime of vm.lang microbenchmarks
Reviewed-by: rriggs
2022-07-26 20:06:35 +00:00
Leonid Mesnik
1451642317 8244976: vmTestbase/nsk/jdi/Event/request/request001.java doesn' initialize eName
Reviewed-by: shade, sspitsyn, cjplummer
2022-07-26 19:02:47 +00:00
Aleksey Shipilev
8159a1ab70 8290706: Remove the support for inline contiguous allocations
Reviewed-by: eosterlund, aph, rrich, fyang, thartmann
2022-07-26 17:19:10 +00:00
Joe Darcy
7318b22209 8289551: Conversions between bit representations of half precision values and floats
Reviewed-by: psandoz, jrose
2022-07-26 16:54:32 +00:00
longxu0509
2ae8e31183 8290669: Fix wording in sun.security.ec
Reviewed-by: mullan
2022-07-26 15:04:49 +00:00
Pengfei Li
893909558b 8289996: Fix array range check hoisting for some scaled loop iv
Co-authored-by: John R Rose <jrose@openjdk.org>
Reviewed-by: roland, kvn, thartmann
2022-07-26 13:45:38 +00:00
Thomas Schatzl
da9cc5c9f4 8290806: Only add eager reclaim task to G1 post evacuate tasks if there were candidates
Reviewed-by: kbarrett, sangheki
2022-07-26 13:29:05 +00:00
Evgeny Astigeevich
330adc03a9 8290969: DumpClassListCLDClosure incorrectly uses ResizeableResourceHashtable
Reviewed-by: iklam, ccheung
2022-07-26 12:10:56 +00:00
Roger Riggs
28bbdc5ebb 8290972: ProblemList java/lang/ProcessBuilder/PipelineLeaksFD.java
Reviewed-by: iris, jpai
2022-07-26 11:53:50 +00:00
Xiaohong Gong
a6faf5d33a 8290485: [vector] REVERSE_BYTES for byte type should not emit any instructions
Reviewed-by: thartmann, kvn
2022-07-26 02:56:26 +00:00
Julian Waters
0ca5cb13a3 8290834: Improve potentially confusing documentation on collection of profiling information
Reviewed-by: thartmann, kvn, dlong
2022-07-25 22:46:19 +00:00
Alexey Semenyuk
7c3cfd13e3 8290557: tools/jpackage/share/AddLauncherTest.java#id1 failed with "ERROR: Failed: Check icon file"
Reviewed-by: almatvee
2022-07-25 21:51:26 +00:00
Maurizio Cimadamore
8c9d5ad4f8 8290455: jck test api/java_lang/foreign/VaList/Empty.html fails on some platforms
Reviewed-by: jvernee, mbaesken
2022-07-25 21:32:44 +00:00
Andrey Turbanov
0ca74f538e 8289659: Refactor I/O stream copying to use InputStream.readAllBytes in X509CertPath
Reviewed-by: attila, weijun
2022-07-25 14:10:26 +00:00
Andrew Haley
1e270ea4f5 8290780: AArch64: Crash in c2 nmethod running RunThese30M.java
Reviewed-by: dlong
2022-07-25 12:40:21 +00:00
Kim Barrett
b17269ad52 8290959: Consistently use "grey" instead of "gray" in GC code
Reviewed-by: tschatzl
2022-07-25 12:26:04 +00:00
Axel Boldt-Christmas
350808a5a3 8290459: Remove unused GCCause enums
Reviewed-by: tschatzl, kbarrett
2022-07-25 11:03:48 +00:00
Prasanta Sadhukhan
d0c365a7b9 8170794: [macosx] Error when using setDesktopManager on a JDesktopPane on MacOS X with Look and Feel Aqua
Reviewed-by: prr
2022-07-25 10:32:11 +00:00
Bhavana Kilambi
80dc6cebc9 8290730: compiler/vectorization/TestAutoVecIntMinMax.java failed with "IRViolationException: There were one or multiple IR rule failures."
Reviewed-by: jiefu, kvn, thartmann
2022-07-25 09:08:23 +00:00
Erik Österlund
228e8e94fe 8290700: Optimize AArch64 nmethod entry barriers
Reviewed-by: kvn, dlong
2022-07-25 07:08:46 +00:00
Thomas Stuefe
852e71d9f0 8290870: NMT: Increase MallocSiteTable size and allocate it only when needed
Reviewed-by: zgu, dholmes
2022-07-25 05:18:34 +00:00
Man Cao
0599a05f8c 8290900: Build failure with Clang 14+ due to function warning attribute
Reviewed-by: kbarrett
2022-07-23 02:54:07 +00:00
Shruthi
987656d690 8289471: Issue in Initialization of keys in ErrorMsg.java and XPATHErrorResources.java
Reviewed-by: joehw
2022-07-22 22:10:43 +00:00
Roger Riggs
2660a9268b 8290893: ProblemList java/lang/ClassLoader/loadLibraryUnload/LoadLibraryUnload
Reviewed-by: dcubed
2022-07-22 20:11:25 +00:00
SWinxy
ef8486a1a4 8286270: [java.desktop] Replace color search in XColors with a switch statement
Reviewed-by: prr, azvegint
2022-07-22 18:36:58 +00:00
Andrey Turbanov
62f22633d1 8290861: Remove unused field URLJarFile.BUF_SIZE
Reviewed-by: jpai, djelinski, aefimov
2022-07-22 15:55:58 +00:00
Erik Österlund
b28f9dab80 8290688: Optimize x86_64 nmethod entry barriers
Reviewed-by: kvn, rrich
2022-07-22 14:42:42 +00:00
Zhengyu Gu
54854d9300 8256811: Delayed/missed jdwp class unloading events
Co-authored-by: Chris Plummer <cjplummer@openjdk.org>
Reviewed-by: cjplummer, coleenp, sspitsyn
2022-07-22 12:27:04 +00:00
Sergey Tsypanov
75c1e99968 8289572: InputStream wrapping with BufferedInputStream is redundant in HttpTimestamper
Reviewed-by: jpai, mullan
2022-07-22 11:50:28 +00:00
Christoph Langer
c29242ebb0 8290460: Alpine: disable some panama tests that rely on std::thread
Backport-of: d7f0de272c
2022-07-22 11:33:05 +00:00
Aleksey Shipilev
7841e5cc38 8290464: Optimize ResourceArea zapping on ResourceMark release
Reviewed-by: stuefe, zgu, coleenp
2022-07-22 11:12:49 +00:00
David Holmes
e9f97b2e8c 8290489: Initial nroff manpage generation for JDK 20
Reviewed-by: dcubed
2022-07-22 04:40:15 +00:00
Chris Plummer
59d85bad34 8290687: serviceability/sa/TestClassDump.java could leave files owned by root on macOS
Reviewed-by: amenkov, lmesnik
2022-07-21 21:34:26 +00:00
Ioi Lam
66f59c2c16 8290731: Clean up CDS handling of LambdaForm Species classes
Reviewed-by: ccheung
2022-07-21 21:32:30 +00:00
Julian Waters
0dda3c14eb 8289275: Remove incorrect __declspec(dllimport) attributes from pointers in jdk.crypto.cryptoki
Reviewed-by: valeriep
2022-07-21 19:11:40 +00:00
Roger Riggs
620c8a045f 8289643: File descriptor leak with ProcessBuilder.startPipeline
Reviewed-by: alanb, jpai, lancea
2022-07-21 18:57:23 +00:00
Alex Menkov
7ec0132ad3 8286844: com/sun/jdi/RedefineCrossEvent.java failed with 1 threads completed while VM suspended
Reviewed-by: sspitsyn, cjplummer
2022-07-21 18:14:40 +00:00
Ryan Ernst
80bd8c3549 8290504: Close streams returned by ModuleReader::list
Reviewed-by: mchung, chegar
2022-07-21 18:01:25 +00:00
Eric Caspole
15f4b30459 8290115: ArrayCopyObject JMH has wrong package
Reviewed-by: rriggs
2022-07-21 17:49:22 +00:00
Jonathan Gibbons
4c1cd66d22 8288368: simplify code in ValueTaglet, remove redundant code
Reviewed-by: prappo
2022-07-21 16:26:52 +00:00
Daniel D. Daugherty
6346c3338c 8290826: validate-source failures after JDK-8290016
Reviewed-by: azvegint
2022-07-21 15:43:00 +00:00
Tobias Holenstein
604a115a5b 8290016: IGV: Fix graph panning when mouse dragged outside of window
Reviewed-by: kvn, thartmann
2022-07-21 14:54:27 +00:00
Aleksey Shipilev
59e495e4d3 8290704: x86: TemplateTable::_new should not call eden_allocate() without contiguous allocs enabled
Reviewed-by: kvn, thartmann, coleenp
2022-07-21 13:23:10 +00:00
Michael McMahon
799a2c844d 8276561: URL$DefaultFactory::PREFIX should be static final
Reviewed-by: djelinski, jpai
2022-07-21 11:03:48 +00:00
Andrey Turbanov
52cc6cd063 8288723: Avoid redundant ConcurrentHashMap.get call in java.time
Reviewed-by: attila, rriggs
2022-07-21 10:22:58 +00:00
Ryan Ernst
3582fd9e93 8290359: Ensure that all directory streams are closed in jdk.link
Reviewed-by: chegar
2022-07-21 06:19:55 +00:00
Ryan Ernst
53fc495e3a 8290316: Ensure that all directory streams are closed in java.base
Reviewed-by: chegar
2022-07-21 06:19:00 +00:00
Ryan Ernst
db1e44c2dd 8290353: ModuleReader::list specification should suggest closing the returned stream
Reviewed-by: chegar, mchung, mr, jpai
2022-07-21 06:16:03 +00:00
Ioi Lam
2c73a1f39d 8290324: Move atomic operations outside of os_xxx.hpp
Reviewed-by: dholmes, kbarrett
2022-07-21 05:12:10 +00:00
Vladimir Kozlov
e8975be94b 8290746: ProblemList compiler/vectorization/TestAutoVecIntMinMax.java
Reviewed-by: dholmes
2022-07-21 00:46:11 +00:00
Daniel D. Daugherty
9c19d89c9c Merge 2022-07-20 22:56:17 +00:00
Leonid Mesnik
b1817a30a0 8290468: Remove gc/gctests/mallocWithGC tests
Reviewed-by: kbarrett, tschatzl
2022-07-20 19:19:57 +00:00
Thomas Schatzl
eeb345a286 8290533: Remove G1ConcurrentMark::mark_in_bitmap(uint, HeapRegion*,oop)
Reviewed-by: sangheki, kbarrett
2022-07-20 16:16:57 +00:00
Bhavana Kilambi
89458e36af 8288107: Auto-vectorization for integer min/max
Reviewed-by: kvn, ngasson
2022-07-20 15:36:39 +00:00
Tobias Holenstein
3d3e3df8f0 8290069: IGV: Highlight both graphs of difference in outline
Reviewed-by: kvn, thartmann
2022-07-20 14:33:05 +00:00
David Holmes
17e65bbd23 8290625: Test jdk/javadoc/tool/CheckManPageOptions.java after manpage update
Reviewed-by: hannesw
2022-07-20 13:09:31 +00:00
Andrew Haley
1c055076e0 8289743: AArch64: Clean up patching logic
Reviewed-by: adinn, ngasson
2022-07-20 13:00:12 +00:00
Zhengyu Gu
011958d30b 8290374: Shenandoah: Remove inaccurate comment on SBS::load_reference_barrier()
Reviewed-by: shade
2022-07-20 12:42:13 +00:00
Thomas Schatzl
984cd02dfb 8290707: runtime/cds/appcds/dynamicArchive/DynamicLambdaWithUseImplMethodHandle.java fails with "Can't find sun.hotspot.whitebox"
Reviewed-by: dholmes
2022-07-20 12:34:55 +00:00
jeremy
4b4d35289a 8264999: GeneralPath.lineTo() to itself produces jagged lines
Reviewed-by: lbourges, prr
2022-07-20 11:34:48 +00:00
Erik Österlund
43c47b1ad7 8290534: Move MacroAssembler::verified_entry to C2_MacroAssembler on x86
Reviewed-by: shade, kvn
2022-07-20 10:26:38 +00:00
Fei Yang
5425573bb4 8290496: riscv: Fix build warnings-as-errors with GCC 11
Reviewed-by: yadongwang, fjiang, shade
2022-07-20 08:26:35 +00:00
Jesper Wilhelmsson
a3e07d950a Merge 2022-07-20 07:39:01 +00:00
Aleksey Shipilev
2ea3f546c2 8290495: Micro-optimize Method::can_be_statically_bound assertions
Reviewed-by: dholmes, stuefe
2022-07-20 06:00:03 +00:00
Prasanta Sadhukhan
971479153d 8190907: Windows 10 default Korean Font Malgun Gothic available not used by GUI elements even though available without Korean Language Pack
Reviewed-by: naoto, prr
2022-07-20 05:49:40 +00:00
David Holmes
618f3a82a4 8278274: Update nroff pages in JDK 19 before RC
Reviewed-by: jjg
2022-07-20 04:40:09 +00:00
Jie Fu
43588648ca 8290511: compiler/vectorapi/TestMaskedMacroLogicVector.java fails IR verification
Reviewed-by: kvn, thartmann
2022-07-19 22:50:00 +00:00
Joe Wang
7b418f9aba 8287916: Address the inconsistency between the constant array and pool size
Reviewed-by: naoto, lancea, rhalade, ahgross
2022-07-19 20:55:28 +00:00
Joe Wang
41ef2b2490 8285407: Improve Xalan supports
Reviewed-by: naoto, lancea, ahgross, rhalade
2022-07-19 20:55:27 +00:00
Weijun Wang
d991ec4f9f 8282676: Improve subject handling
Reviewed-by: ahgross, mullan, rhalade
2022-07-19 20:55:27 +00:00
Lance Andersen
b7b917a0a8 8284370: Improve zlib usage
Reviewed-by: alanb, mschoene, rhalade
2022-07-19 20:55:27 +00:00
Alexander Zuev
a37465b8fa 8283190: Improve MIDI processing
Reviewed-by: prr, rhalade, psadhukhan, mschoene
2022-07-19 20:55:27 +00:00
Tobias Hartmann
632d2d2690 8281866: Enhance MethodHandle invocations
Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Reviewed-by: chagedorn
2022-07-19 20:55:27 +00:00
Tobias Hartmann
84b4e9bb41 8281859: Improve class compilation
Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Reviewed-by: chagedorn
2022-07-19 20:55:27 +00:00
Joe Wang
e7f8003edd 8272249: Better properties of loaded Properties
Reviewed-by: naoto, lancea, rhalade, mschoene
2022-07-19 20:55:27 +00:00
Aleksei Efimov
cdc1582d1d 8277608: Address IP Addressing
Reviewed-by: dfuchs, rhalade, michaelm
2022-07-19 20:55:26 +00:00
Valerie Peng
ec1d338e15 8272243: Improve DER parsing
Reviewed-by: weijun, rhalade
2022-07-19 20:55:26 +00:00
Alexey Semenyuk
c2cbeb3ee8 8290398: jpackage exe installers are not installed in jtreg tests
Reviewed-by: almatvee
2022-07-19 19:46:51 +00:00
Joe Wang
f1001a06b3 8287916: Address the inconsistency between the constant array and pool size
Reviewed-by: naoto, lancea, rhalade, ahgross
2022-07-19 18:39:39 +00:00
Joe Wang
5d1c44871a 8285407: Improve Xalan supports
Reviewed-by: naoto, lancea, ahgross, rhalade
2022-07-19 18:39:39 +00:00
Weijun Wang
d0a2f13dea 8282676: Improve subject handling
Reviewed-by: ahgross, mullan, rhalade
2022-07-19 18:39:39 +00:00
Lance Andersen
83339500ba 8284370: Improve zlib usage
Reviewed-by: alanb, mschoene, rhalade
2022-07-19 18:39:39 +00:00
Alexander Zuev
879ea78037 8283190: Improve MIDI processing
Reviewed-by: prr, rhalade, psadhukhan, mschoene
2022-07-19 18:39:39 +00:00
Tobias Hartmann
78c514d085 8281866: Enhance MethodHandle invocations
Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Reviewed-by: chagedorn
2022-07-19 18:39:39 +00:00
Tobias Hartmann
ac93ab0e0a 8281859: Improve class compilation
Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Reviewed-by: chagedorn
2022-07-19 18:39:38 +00:00
Joe Wang
67dd3f7343 8272249: Better properties of loaded Properties
Reviewed-by: naoto, lancea, rhalade, mschoene
2022-07-19 18:39:38 +00:00
Aleksei Efimov
243c76f59f 8277608: Address IP Addressing
Reviewed-by: dfuchs, rhalade, michaelm
2022-07-19 18:39:38 +00:00
Valerie Peng
ddb106be7a 8272243: Improve DER parsing
Reviewed-by: weijun, rhalade
2022-07-19 18:39:38 +00:00
Alexey Semenyuk
1af7c33df5 8290400: Must run exe installers in jpackage jtreg tests without UI
Reviewed-by: almatvee
2022-07-19 17:01:55 +00:00
Alexey Semenyuk
d67e7ccda5 8290402: jpackage exe uninstallers don't return correct exit code in case of failure
Reviewed-by: almatvee
2022-07-19 17:01:01 +00:00
Alexey Semenyuk
977e09489d 8283707: Support <major.minor.update.build> version format on Windows
Reviewed-by: almatvee
2022-07-19 16:59:28 +00:00
Coleen Phillimore
96a542feb2 8227060: Optimize safepoint cleanup subtask order
Reviewed-by: kbarrett, pchilanomate
2022-07-19 16:32:07 +00:00
Eric Caspole
2cb659e7f4 8290391: Reduce runtime of java.util package microbenchmarks
Reviewed-by: rriggs, redestad
2022-07-19 16:30:44 +00:00
Coleen Phillimore
bbc57483ce 8272096: Exceptions::new_exception can return wrong exception
Reviewed-by: hseigel, dholmes
2022-07-19 14:41:58 +00:00
Maurizio Cimadamore
e062dff1bf 8290524: Typo in javadoc of MemorySegment/MemoryAddress
Reviewed-by: jvernee
2022-07-19 14:33:53 +00:00
Thomas Schatzl
a41b12f430 8290512: G1: Fix typo in allocation statistics log message
Reviewed-by: kbarrett
2022-07-19 12:40:12 +00:00
Roger Riggs
e02627ca0a 8290397: LoadLibraryUnload.java failed with "Too few cleared WeakReferences"
Reviewed-by: mchung
2022-07-19 11:51:28 +00:00
Andrey Turbanov
2ff22087f2 8289804: Remove redundant stream() call before forEach in jdk.jshell
Reviewed-by: psandoz
2022-07-19 11:32:30 +00:00
Markus Grönlund
a6bab2a379 8288482: JFR: Cannot resolve method
Reviewed-by: jbachorik
2022-07-19 09:34:49 +00:00
Aggelos Biboudis
f5a7de8627 8290379: Parse error with parenthesized pattern and guard using an array
Reviewed-by: jlahoda
2022-07-19 09:03:28 +00:00
Matthias Baesken
612d8c6cb1 8290456: remove os::print_statistics()
Reviewed-by: coleenp
2022-07-19 07:15:08 +00:00
Thomas Stuefe
d7f0de272c 8290460: Alpine: disable some panama tests that rely on std::thread
Reviewed-by: jvernee, dholmes
2022-07-19 07:13:18 +00:00
Matthias Baesken
dfbc6919e1 8289524: Add JFR JIT restart event
Reviewed-by: kvn, lucy
2022-07-19 07:07:41 +00:00
George Adams
4e6cd67fec 8290000: Bump macOS GitHub actions to macOS 11
Reviewed-by: shade, clanger
2022-07-19 06:29:43 +00:00
Ioi Lam
4dc421caa0 8290417: CDS cannot archive lamda proxy with useImplMethodHandle
Reviewed-by: dholmes, ccheung, mchung
2022-07-19 04:37:28 +00:00
Hollow Man
af86cd3d8c 8290463: Fix several comment typos in sun.security.ec
Reviewed-by: xuelei
2022-07-19 01:49:20 +00:00
Jesper Wilhelmsson
6cd1c0c14e Merge 2022-07-18 22:51:25 +00:00
Jie Fu
4a4d8ed83b 8289801: [IR Framework] Add flags to whitelist which can be used to simulate a specific machine setup like UseAVX
Reviewed-by: kvn, xgong, thartmann
2022-07-18 22:49:17 +00:00
Leonid Mesnik
5a96a5db13 8289612: Change hotspot/jtreg tests to not use Thread.stop
Reviewed-by: dholmes, dcubed
2022-07-18 21:53:41 +00:00
Mark Powers
b65f7ec2f1 4887998: Use Integer.rotateLeft() and rotateRight() in crypto implementations
Reviewed-by: weijun
2022-07-18 20:50:54 +00:00
Alexander Zuev
6c8d0e617f 8282526: Default icon is not painted properly
Reviewed-by: aivanov, prr
2022-07-18 20:33:19 +00:00
Srinivas Mandalika
e72742eeb5 8286172: Create an automated test for JDK-4516019
Reviewed-by: prr, achung
2022-07-18 17:18:53 +00:00
Srinivas Mandalika
b9de0a7556 8284524: Create an automated test for JDK-4422362
Reviewed-by: prr
2022-07-18 17:17:50 +00:00
Srinivas Mandalika
5ae4320921 8284767: Create an automated test for JDK-4422535
Reviewed-by: prr, achung
2022-07-18 17:16:44 +00:00
Sergey Tsypanov
efed7a7f65 8289908: Skip bounds check for cases when String is constructed from entirely used byte[]
Reviewed-by: prr, rriggs, aturbanov
2022-07-18 17:15:46 +00:00
Zhengyu Gu
b2010a7481 8287805: Shenandoah: consolidate evacuate-update-root closures
Reviewed-by: shade
2022-07-18 16:54:08 +00:00
Phil Race
ea8b75cfe4 8290334: Update FreeType to 2.12.1
Reviewed-by: serb, azvegint
2022-07-18 16:05:03 +00:00
Coleen Phillimore
6882f0eb39 8290013: serviceability/jvmti/GetLocalVariable/GetLocalWithoutSuspendTest.java failed "assert(!in_vm) failed: Undersized StackShadowPages"
Reviewed-by: lmesnik
2022-07-18 15:04:08 +00:00
Fei Yang
92067e2003 8290137: riscv: small refactoring for add_memory_int32/64
Reviewed-by: yadongwang, fjiang, shade
2022-07-18 13:01:35 +00:00
Pengfei Li
2677dd6d23 8289954: C2: Assert failed in PhaseCFG::verify() after JDK-8183390
Reviewed-by: kvn, thartmann, roland
2022-07-18 12:18:06 +00:00
Roland Westrelin
4f3f74c141 8289127: Apache Lucene triggers: DEBUG MESSAGE: duplicated predicate failed which is impossible
Reviewed-by: kvn, dlong
2022-07-18 07:08:49 +00:00
Fei Gao
87340fd540 8288883: C2: assert(allow_address || t != T_ADDRESS) failed after JDK-8283091
Reviewed-by: kvn, mdoerr
2022-07-18 05:54:51 +00:00
Ajit Ghaisas
bc7a1ea249 8288948: Few J2DBench tests indicate lower primitive drawing performance with metal rendering pipeline
Reviewed-by: avu, prr
2022-07-18 05:18:37 +00:00
Ioi Lam
84f23149e2 8286030: Avoid JVM crash when containers share the same /tmp dir
Reviewed-by: stuefe, sgehwolf
2022-07-18 04:10:08 +00:00
Feilong Jiang
4dd236b40a 8290280: riscv: Clean up stack and register handling in interpreter
Reviewed-by: fyang
2022-07-18 02:12:34 +00:00
Jesper Wilhelmsson
522b65743c Merge 2022-07-17 15:11:21 +00:00
Daniel D. Daugherty
441c33f0b1 8289003: JavaThread::check_is_terminated() implementation should rely on Thread-SMR
Reviewed-by: dholmes, pchilanomate
2022-07-16 13:17:52 +00:00
Jatin Bhateja
2342684f2c 8290066: Remove KNL specific handling for new CPU target check in IR annotation
Reviewed-by: kvn, sviswanathan
2022-07-16 01:18:30 +00:00
Ioi Lam
0143cf1d46 8290333: Remove os_share_*.hpp
Reviewed-by: dholmes, jiefu
2022-07-16 01:03:16 +00:00
Roger Riggs
0184f46bdf 8289919: [test] LoadLibraryUnloadTest.java failed with "Failed to unload native library"
Reviewed-by: mchung
2022-07-15 18:27:44 +00:00
Mandy Chung
cca91f7bcc 8290327: Remove java/lang/reflect/callerCache/ReflectionCallerCacheTest.java from ProblemList-Xcomp.txt
Reviewed-by: jpai
2022-07-15 18:11:18 +00:00
Thomas Schatzl
b4e2ce0094 8290366: Remove unused during_conc_mark parameter in HeapRegion::note_self_forwarding_removal_start
Reviewed-by: ayang
2022-07-15 13:58:17 +00:00
Vicente Romero
f3abb82989 8268312: Compilation error with nested generic functional interface
Reviewed-by: mcimadamore
2022-07-15 13:06:03 +00:00
Yoshiki Sato
92deab5465 8028265: Add legacy tz tests to OpenJDK
Reviewed-by: coffeys, naoto
2022-07-15 07:16:14 +00:00
Vladimir Kozlov
70fce07a38 8290246: test fails "assert(init != __null) failed: initialization not found"
Reviewed-by: dlong, iveresov
2022-07-15 05:07:21 +00:00
Pavel Rappo
15d3329edd 8281969: Bad result for the snippet @link tag if substring/regex consists of whitespace
Reviewed-by: jjg
2022-07-14 22:27:53 +00:00
Thomas Schatzl
757a742ac7 8290177: Improve documentation in G1MMUTracker
Reviewed-by: iwalulya, ayang
2022-07-14 21:04:50 +00:00
Doug Lea
890bcedd49 8290264: java/util/concurrent/locks/Lock/OOMEInAQS.java fails with "exit code: 0"
Reviewed-by: dholmes, alanb, dcubed
2022-07-14 19:53:31 +00:00
Zhengyu Gu
c8e0315114 8290250: Shenandoah: disable Loom for iu mode
Reviewed-by: rkennke
2022-07-14 17:19:27 +00:00
Jesper Wilhelmsson
3ad3950560 Merge 2022-07-14 16:29:51 +00:00
Brian Burkhalter
fb27ddcbe5 8290252: Add TEST.properties to java/nio/channels/FileChannel and move tests out of largeMemory sub-dir
Reviewed-by: alanb, jpai
2022-07-14 15:23:42 +00:00
Kim Barrett
3bb2dc8e7f 8290290: Remove addition of TimeInstants
Reviewed-by: stuefe, dholmes
2022-07-14 14:37:10 +00:00
Albert Mingkun Yang
c7c20661ee 8290221: G1: Merge multiple calls of get_next_marked_addr in HeapRegion::oops_on_memregion_iterate_in_unparsable
Reviewed-by: tschatzl, iwalulya
2022-07-14 08:47:29 +00:00
Jie Fu
be58cbc417 8290269: gc/shenandoah/TestVerifyJCStress.java fails due to invalid tag: required after JDK-8290023
Reviewed-by: tschatzl
2022-07-14 08:31:05 +00:00
Albert Mingkun Yang
109e21af66 8290080: G1: Remove unnecessary is-obj-dead check in HeapRegion::do_oops_on_memregion_in_humongous
Reviewed-by: tschatzl, iwalulya
2022-07-14 07:56:49 +00:00
KIRIYAMA Takuya
adf40d25a1 8290149: java/nio/file/Files/probeContentType/Basic.java fails on Windows Server 2019/2022
Reviewed-by: jpai, lancea
2022-07-14 07:00:33 +00:00
Daniel Jeliński
292d909e81 8290178: failure_handler: run netstat without name lookups
Reviewed-by: jpai, dfuchs, msheppar, lmesnik
2022-07-14 06:36:57 +00:00
Jesper Wilhelmsson
a7f83582d3 Merge 2022-07-14 06:19:40 +00:00
Andrey Turbanov
02fae60740 8288067: Avoid redundant HashMap.containsKey call in Type1Font.expandAbbreviation
Reviewed-by: attila, prr
2022-07-14 06:10:28 +00:00
Ichiroh Takiguchi
5d588eda97 8290218: AIX build failure by JDK-8289780
Reviewed-by: iklam, stuefe
2022-07-14 04:35:54 +00:00
Feilong Jiang
3471ac9a90 8290164: compiler/runtime/TestConstantsInError.java fails on riscv
Reviewed-by: fyang, yadongwang
2022-07-14 03:32:52 +00:00
Jatin Bhateja
fd89ab8dac 8288112: C2: Error: ShouldNotReachHere() in Type::typerr()
Reviewed-by: dlong, kvn
2022-07-14 01:46:11 +00:00
Bill Huang
dbab827bee 8249834: java/util/ArrayList/Bug8146568.java and j/u/Vector/Bug8148174.java use @ignore w/o bug-id
Reviewed-by: jpai
2022-07-14 01:31:34 +00:00
lawrence.andrews
3216d198f3 8289559: java/awt/a11y/AccessibleJPopupMenuTest.java test fails with java.lang.NullPointerException
Reviewed-by: serb
2022-07-13 22:42:13 +00:00
Joe Wang
2bf6285c80 8290209: jcup.md missing additional text
Reviewed-by: iris, naoto, lancea
2022-07-13 21:02:45 +00:00
Sergey Tsypanov
c83fcbd18f 8290079: Reduce interaction with volatile in static initializer of BigInteger
Reviewed-by: jpai, rriggs, darcy
2022-07-13 19:36:50 +00:00
Doug Simon
74ac5df96f 8290234: [JVMCI] use JVMCIKlassHandle to protect raw Klass* values from concurrent G1 scanning
Reviewed-by: kvn, never
2022-07-13 19:15:53 +00:00
Thomas Schatzl
5e3ecff7a6 8290253: gc/g1/TestVerificationInConcurrentCycle.java#id1 fails with "Error. can't find sun.hotspot.WhiteBox in test directory or libraries"
Reviewed-by: dcubed
2022-07-13 18:31:03 +00:00
Doug Lea
535804554d 8066859: java/lang/ref/OOMEInReferenceHandler.java failed with java.lang.Exception: Reference Handler thread died
Reviewed-by: alanb
2022-07-13 18:05:42 +00:00
Joe Wang
73b83e0188 8290207: Missing notice in dom.md
Reviewed-by: iris, lancea, naoto
2022-07-13 17:32:02 +00:00
Thomas Schatzl
2583feb21b 8290023: Remove use of IgnoreUnrecognizedVMOptions in gc tests
Reviewed-by: ayang, lkorinth, kbarrett
2022-07-13 16:08:59 +00:00
Brian Burkhalter
44fb92e2aa 8290197: test/jdk/java/nio/file/Files/probeContentType/Basic.java fails on some systems for the ".rar" extension
Reviewed-by: lancea, dfuchs, jpai
2022-07-13 15:13:27 +00:00
Alan Bateman
f528124f57 8289284: jdk.tracePinnedThreads output confusing when pinned due to native frame
Reviewed-by: jpai, mchung
2022-07-13 15:03:37 +00:00
Jonathan Gibbons
572c14efc6 8288624: Cleanup CommentHelper.getText0
Reviewed-by: hannesw
2022-07-13 14:45:04 +00:00
Prasanta Sadhukhan
6e18883d8f 8290162: Reset recursion counter missed in fix of JDK-8224267
Reviewed-by: prr
2022-07-13 05:06:04 +00:00
Daniel D. Daugherty
ce36f6ea85 8290203: ProblemList vmTestbase/nsk/jvmti/scenarios/capability/CM03/cm03t001/TestDescription.java on linux-all
Reviewed-by: naoto
2022-07-12 21:45:19 +00:00
Daniel D. Daugherty
fff7f35300 8290201: ProblemList com/sun/jdi/InvokeHangTest.java on macosx-x64 in vthread mode
Reviewed-by: bpb
2022-07-12 21:04:43 +00:00
Brian Burkhalter
128c6c648c 8290095: java/nio/channels/FileChannel/largeMemory/LargeGatheringWrite.java timed out
Reviewed-by: jpai, alanb
2022-07-12 20:48:23 +00:00
Jayashree Huttanagoudar
31f7fc043b 8283082: sun.security.x509.X509CertImpl.delete("x509.info.validity") nulls out info field
Reviewed-by: weijun
2022-07-12 20:12:22 +00:00
Jesper Wilhelmsson
d9ca438d06 Merge 2022-07-12 16:16:16 +00:00
Ludvig Janiuk
e8568b890a 8290020: Deadlock in leakprofiler::emit_events during shutdown
Reviewed-by: mgronlun, dholmes, egahlin
2022-07-12 15:54:36 +00:00
Ralf Schmelter
7f0e9bd632 8289745: JfrStructCopyFailed uses heap words instead of bytes for object sizes
Reviewed-by: mgronlun, stuefe
2022-07-12 14:53:46 +00:00
Ralf Schmelter
728157fa03 8289917: Metadata for regionsRefilled of G1EvacuationStatistics event is wrong
Reviewed-by: tschatzl, mgronlun, stuefe, egahlin
2022-07-12 14:51:55 +00:00
Alan Bateman
59d0c739ac 8289930: Improve Thread description of inherited AccessControlContext
Reviewed-by: jpai, mchung
2022-07-12 14:46:15 +00:00
Maurizio Cimadamore
4545ed6842 8289365: SegmentAllocator:allocateArray(MemoryLayout, count) does not throw IAEx when count is -1
Reviewed-by: psandoz
2022-07-12 14:22:42 +00:00
Maurizio Cimadamore
0fd1b68972 8290071: Javadoc for MemorySegment/MemoryAddress getter/setters contains some typos
Reviewed-by: uschindler, psandoz
2022-07-12 14:16:22 +00:00
Erik Gahlin
0e906975a8 8290133: JFR: Remove unused methods in Bits.java
Reviewed-by: mgronlun
2022-07-12 14:14:56 +00:00
Maurizio Cimadamore
2baf526fce 8288850: SegmentAllocator:allocate() can return null some cases
Reviewed-by: psandoz
2022-07-12 14:14:46 +00:00
Ryan Ernst
ea12615d2f 8288984: Simplification in java.lang.Runtime::exit
Reviewed-by: dholmes, chegar, alanb, kbarrett
2022-07-12 13:50:36 +00:00
Martin Doerr
393dc7ade7 8290082: [PPC64] ZGC C2 load barrier stub needs to preserve vector registers
Reviewed-by: eosterlund, rrich
2022-07-12 13:31:51 +00:00
Matthias Baesken
e5491a2605 8289910: unify os::message_box across posix platforms
Reviewed-by: iklam, dholmes
2022-07-12 12:10:28 +00:00
Daniel Jeliński
04c47da118 8289768: Clean up unused code
Reviewed-by: dfuchs, lancea, weijun, naoto, cjplummer, alanb, michaelm, chegar
2022-07-12 11:30:17 +00:00
Jorn Vernee
3164c98f4c 8289148: j.l.foreign.VaList::nextVarg call could throw IndexOutOfBoundsException or even crash the VM
8289333: Specification of method j.l.foreign.VaList::skip deserves clarification
8289156: j.l.foreign.VaList::skip call could throw java.lang.IndexOutOfBoundsException: Out of bound access on segment

Reviewed-by: mcimadamore
2022-07-12 11:25:45 +00:00
Daniel Fuchs
3b9059a147 8290083: ResponseBodyBeforeError: AssertionError or SSLException: Unsupported or unrecognized SSL message
Reviewed-by: jpai
2022-07-12 09:59:29 +00:00
Serguei Spitsyn
c3806b93c4 8289709: fatal error: stuck in JvmtiVTMSTransitionDisabler::disable_VTMS_transitions
Reviewed-by: alanb, amenkov, lmesnik
2022-07-11 22:44:03 +00:00
Phil Race
f42dab8592 8289853: Update HarfBuzz to 4.4.1
Reviewed-by: serb, azvegint
2022-07-11 19:19:27 +00:00
Christoph Langer
39715f3da7 8287902: UnreadableRB case in MissingResourceCauseTest is not working reliably on Windows
Backport-of: 975316e3e5
2022-07-11 17:46:22 +00:00
Doug Simon
21db9a507b 8290065: [JVMCI] only check HotSpotCompiledCode stream is empty if installation succeeds
Reviewed-by: kvn
2022-07-11 16:47:05 +00:00
Jesper Wilhelmsson
c79baaa811 Merge 2022-07-11 16:15:49 +00:00
Pavel Rappo
62fbc3f883 8287379: Using @inheritDoc in an inapplicable context shouldn't crash javadoc
Reviewed-by: jjg
2022-07-11 15:43:20 +00:00
Coleen Phillimore
0c1aa2bc8a 8289184: runtime/ClassUnload/DictionaryDependsTest.java failed with "Test failed: should be unloaded"
Reviewed-by: lmesnik, hseigel
2022-07-11 15:34:17 +00:00
Calvin Cheung
c33fa55cf8 8274235: -Xshare:dump should not call vm_direct_exit
Reviewed-by: iklam, dholmes
2022-07-11 15:33:18 +00:00
Pavel Rappo
59980ac8e4 8288309: Rename the "testTagInheritence" directory
Reviewed-by: hannesw
2022-07-11 15:31:22 +00:00
Alan Bateman
fc01666a58 8290002: (se) AssertionError in SelectorImpl.implCloseSelector
Reviewed-by: michaelm
2022-07-11 14:41:13 +00:00
Maurizio Cimadamore
fed3af8ae0 8287809: Revisit implementation of memory session
Reviewed-by: jvernee
2022-07-11 14:30:19 +00:00
Thomas Stuefe
95c8022958 8290046: NMT: Remove unused MallocSiteTable::reset()
Reviewed-by: jiefu, zgu
2022-07-11 14:07:12 +00:00
Coleen Phillimore
0c37008917 8275662: remove test/lib/sun/hotspot
Reviewed-by: mseledtsov, sspitsyn, lmesnik
2022-07-11 13:07:03 +00:00
Prasanta Sadhukhan
46251bc6e2 8224267: JOptionPane message string with 5000+ newlines produces StackOverflowError
Reviewed-by: tr, aivanov
2022-07-11 11:35:32 +00:00
Aggelos Biboudis
bba6be79e0 8269674: Improve testing of parenthesized patterns
Reviewed-by: jlahoda
2022-07-11 11:13:55 +00:00
Koichi Sakata
2579373dd0 8280472: Don't mix legacy logging with UL
Reviewed-by: dholmes, mgronlun
2022-07-11 09:24:16 +00:00
Martin Doerr
cb6e9cb728 8290004: [PPC64] JfrGetCallTrace: assert(_pc != nullptr) failed: must have PC
Reviewed-by: rrich, lucy
2022-07-11 09:21:05 +00:00
Markus Grönlund
0494291490 8289692: JFR: Thread checkpoint no longer enforce mutual exclusion post Loom integration
Reviewed-by: rehn
2022-07-11 09:11:58 +00:00
Jan Lahoda
25f4b04365 8289894: A NullPointerException thrown from guard expression
Reviewed-by: vromero
2022-07-11 08:59:32 +00:00
Thomas Schatzl
0225eb434c 8290018: Remove dead declarations in G1BlockOffsetTablePart
Reviewed-by: ayang
2022-07-11 07:59:00 +00:00
Thomas Schatzl
e25982071d 8290019: Refactor HeapRegion::oops_on_memregion_iterate()
Reviewed-by: ayang, iwalulya
2022-07-11 07:58:07 +00:00
Albert Mingkun Yang
b542bcba57 8289729: G1: Incorrect verification logic in G1ConcurrentMark::clear_next_bitmap
Reviewed-by: tschatzl, iwalulya
2022-07-11 07:58:03 +00:00
Thomas Schatzl
4ab77ac60d 8290017: Directly call HeapRegion::block_start in G1CMObjArrayProcessor::process_slice
Reviewed-by: ayang, iwalulya
2022-07-11 07:36:21 +00:00
Ioi Lam
e9d9cc6d0a 8290027: Move inline functions from vm_version_x86.hpp to cpp
Reviewed-by: kbarrett, dholmes
2022-07-11 05:21:01 +00:00
Andrey Turbanov
87aa3ce03e 8289274: Cleanup unnecessary null comparison before instanceof check in security modules
Reviewed-by: mullan
2022-07-09 17:59:43 +00:00
Jatin Bhateja
81ee7d28f8 8289186: Support predicated vector load/store operations over X86 AVX2 targets.
Reviewed-by: xgong, kvn
2022-07-09 15:13:25 +00:00
Ioi Lam
3c08e6b311 8289780: Avoid formatting stub names when Forte is not enabled
Reviewed-by: dholmes, coleenp, sspitsyn
2022-07-09 03:47:20 +00:00
Joe Wang
c86c51cc72 8282071: Update java.xml module-info
Reviewed-by: lancea, iris, naoto
2022-07-08 21:34:57 +00:00
Daniel D. Daugherty
9981c85d46 8290033: ProblemList serviceability/jvmti/GetLocalVariable/GetLocalWithoutSuspendTest.java on windows-x64 in -Xcomp mode
Reviewed-by: azvegint, tschatzl
2022-07-08 19:47:55 +00:00
Jonathan Gibbons
54b4576f78 8288699: cleanup HTML tree in HtmlDocletWriter.commentTagsToContent
Reviewed-by: hannesw
2022-07-08 19:33:03 +00:00
Lance Andersen
6aaf141f61 8289984: Files:isDirectory and isRegularFile methods not throwing SecurityException
Reviewed-by: iris, alanb
2022-07-08 18:56:04 +00:00
Weijun Wang
1877533f75 6522064: Aliases from Microsoft CryptoAPI has bad character encoding
Reviewed-by: coffeys, hchao
2022-07-08 18:38:08 +00:00
Vladimir Kempik
c142fbbbaf 8289697: buffer overflow in MTLVertexCache.m: MTLVertexCache_AddGlyphQuad
Backport-of: d852e99ae9
2022-07-08 17:49:53 +00:00
Vicente Romero
9c86c82091 8282714: synthetic arguments are being added to the constructors of static local classes
Reviewed-by: jlahoda
2022-07-08 17:24:27 +00:00
Stuart Marks
eeaf0bbabc 8289872: wrong wording in @param doc for HashMap.newHashMap et. al.
Reviewed-by: chegar, naoto, iris
2022-07-08 17:03:48 +00:00
Coleen Phillimore
e7795851d2 8271707: migrate tests to use jdk.test.whitebox.WhiteBox
Reviewed-by: lmesnik, dholmes
2022-07-08 15:55:14 +00:00
Jorn Vernee
460d879a75 8289601: SegmentAllocator::allocateUtf8String(String str) should be clarified for strings containing \0
Reviewed-by: psandoz, mcimadamore
2022-07-08 15:21:11 +00:00
Jorn Vernee
732f1065fe 8289223: Canonicalize header ids in foreign API javadocs
Reviewed-by: mcimadamore
2022-07-08 11:18:32 +00:00
Vladimir Kempik
d852e99ae9 8289697: buffer overflow in MTLVertexCache.m: MTLVertexCache_AddGlyphQuad
Reviewed-by: prr
2022-07-08 09:14:51 +00:00
Dmitry Chuyko
a13af65043 8282322: AArch64: Provide a means to eliminate all STREX family of instructions
Reviewed-by: ngasson, aph
2022-07-08 08:55:13 +00:00
Thomas Schatzl
f1967cfaab 8289997: gc/g1/TestVerificationInConcurrentCycle.java fails due to use of debug-only option
Reviewed-by: lkorinth
2022-07-08 08:49:17 +00:00
Thomas Stuefe
ea21c46531 8289799: Build warning in methodData.cpp memset zero-length parameter
Backport-of: cce77a7001
2022-07-08 08:13:20 +00:00
Thomas Schatzl
1b8f466dba 8289740: Add verification testing during all concurrent phases in G1
Reviewed-by: iwalulya, ayang
2022-07-08 07:15:56 +00:00
Robbin Ehn
ac399e9777 8286957: Held monitor count
Reviewed-by: rpressler, eosterlund
2022-07-08 07:12:19 +00:00
Ioi Lam
1fec62f299 8289710: Move Suspend/Resume classes out of os.hpp
Reviewed-by: dholmes, coleenp
2022-07-08 05:39:24 +00:00
Jesper Wilhelmsson
01b9f95c62 Merge 2022-07-08 02:07:36 +00:00
Alexander Matveev
64286074ba 8289030: [macos] app image signature invalid when creating DMG or PKG
Reviewed-by: asemenyuk
2022-07-08 00:17:11 +00:00
Yasumasa Suenaga
3f1174aa47 8289646: configure script failed on WSL
Reviewed-by: ihse
2022-07-08 00:04:46 +00:00
Mark Powers
f804f2ce8e 8284851: Update javax.crypto files to use proper javadoc for mentioned classes
Reviewed-by: weijun, valeriep
2022-07-07 23:20:58 +00:00
Daniel D. Daugherty
1304390b3e 8289951: ProblemList jdk/jfr/api/consumer/TestRecordingFileWrite.java on linux-x64 and macosx-x64
Reviewed-by: psandoz
2022-07-07 23:09:42 +00:00
Brian Burkhalter
11319c2aeb 8278469: Test java/nio/channels/FileChannel/LargeGatheringWrite.java times out
8289526: java/nio/channels/FileChannel/MapTest.java times out

Reviewed-by: dcubed
2022-07-07 22:36:08 +00:00
Coleen Phillimore
8cdead0c94 8278923: Document Klass::is_loader_alive
Reviewed-by: dholmes, iklam
2022-07-07 20:28:34 +00:00
Coleen Phillimore
f93beacd2f 8252329: runtime/LoadClass/TestResize.java timed out
Reviewed-by: hseigel, iklam
2022-07-07 20:27:31 +00:00
Joe Wang
3212dc9c6f 8289486: Improve XSLT XPath operators count efficiency
Reviewed-by: naoto, lancea
2022-07-07 19:07:04 +00:00
Zdenek Zambersky
3e60e82814 8289301: P11Cipher should not throw out of bounds exception during padding
Reviewed-by: valeriep
2022-07-07 18:18:04 +00:00
Thomas Schatzl
f7b183059a 8289538: Make G1BlockOffsetTablePart unaware of block sizes
Reviewed-by: ayang, iwalulya
2022-07-07 18:08:43 +00:00
Ioi Lam
5564effe9c 8289763: Remove NULL check in CDSProtectionDomain::init_security_info()
Reviewed-by: ccheung, coleenp
2022-07-07 17:29:25 +00:00
Stuart Marks
a8eb728680 8289779: Map::replaceAll javadoc has redundant @throws clauses
Reviewed-by: prappo, iris
2022-07-07 16:54:15 +00:00
Alex Kasko
a694e9e34d 8288838: jpackage: file association additional arguments
Reviewed-by: asemenyuk, almatvee
2022-07-07 16:45:35 +00:00
Thomas Schatzl
95e3190d96 8210708: Use single mark bitmap in G1
Co-authored-by: Stefan Johansson <sjohanss@openjdk.org>
Co-authored-by: Ivan Walulya <iwalulya@openjdk.org>
Reviewed-by: iwalulya, ayang
2022-07-07 15:46:05 +00:00
Coleen Phillimore
8e7b45b820 8282986: Remove "system" in boot class path names
Reviewed-by: iklam, dholmes
2022-07-07 15:27:55 +00:00
Ivan Walulya
74ca6ca25b 8289800: G1: G1CollectionSet::finalize_young_part clears survivor list too early
Reviewed-by: ayang, tschatzl
2022-07-07 15:09:30 +00:00
Justin Gu
86f63f9703 8289164: Convert ResolutionErrorTable to use ResourceHashtable
Reviewed-by: iklam, coleenp
2022-07-07 14:57:24 +00:00
Albert Mingkun Yang
013a5eeeb9 8137280: Remove eager reclaim of humongous controls
Reviewed-by: tschatzl, iwalulya
2022-07-07 13:53:24 +00:00
Jie Fu
77ad998b6e 8289778: ZGC: incorrect use of os::free() for mountpoint string handling after JDK-8289633
Reviewed-by: stuefe, dholmes, mdoerr
2022-07-07 12:52:04 +00:00
Prasanta Sadhukhan
532a6ec7e3 7124313: [macosx] Swing Popups should overlap taskbar
Reviewed-by: serb, dmarkov
2022-07-07 11:51:49 +00:00
Martin Doerr
e05b2f2c3b 8289856: [PPC64] SIGSEGV in C2Compiler::init_c2_runtime() after JDK-8289060
Reviewed-by: dlong, lucy
2022-07-07 10:21:25 +00:00
Thomas Stuefe
cce77a7001 8289799: Build warning in methodData.cpp memset zero-length parameter
Reviewed-by: jiefu, lucy
2022-07-07 09:42:14 +00:00
Maurizio Cimadamore
889150b47a 8289558: Need spec clarification of j.l.foreign.*Layout
Reviewed-by: psandoz, jvernee
2022-07-07 09:08:09 +00:00
Kevin Walls
d1249aa5cb 8198668: MemoryPoolMBean/isUsageThresholdExceeded/isexceeded001/TestDescription.java still failing
Reviewed-by: lmesnik, sspitsyn
2022-07-07 08:41:50 +00:00
Xiaohong Gong
a79ce4e748 8286941: Add mask IR for partial vector operations for ARM SVE
Reviewed-by: kvn, jbhateja, njian, ngasson
2022-07-07 08:14:21 +00:00
Jan Lahoda
8dd94a2c14 8289196: Pattern domination not working properly for record patterns
Reviewed-by: vromero
2022-07-07 07:54:18 +00:00
Thomas Stuefe
569de453c3 8289620: gtest/MetaspaceUtilsGtests.java failed with unexpected stats values
Reviewed-by: coleenp
2022-07-07 05:30:10 +00:00
Tongbao Zhang
403a9bc796 8289436: Make the redefine timer statistics more accurate
Reviewed-by: sspitsyn, cjplummer, lmesnik
2022-07-06 22:49:57 +00:00
Pavel Rappo
8f24d25168 6509045: {@inheritDoc} only copies one instance of the specified exception
Reviewed-by: jjg
2022-07-06 22:01:12 +00:00
Joe Darcy
a40c17b730 8289775: Update java.lang.invoke.MethodHandle[s] to use snippets
Reviewed-by: jrose
2022-07-06 21:28:09 +00:00
Jesper Wilhelmsson
2a6ec88cd0 Merge 2022-07-06 21:01:10 +00:00
Ron Pressler
9a0fa82424 8288949: serviceability/jvmti/vthread/ContStackDepthTest/ContStackDepthTest.java failing
Reviewed-by: dlong, eosterlund, rehn
2022-07-06 20:53:13 +00:00
Daniel D. Daugherty
55fa19b508 8289857: ProblemList jdk/jfr/event/runtime/TestActiveSettingEvent.java
Reviewed-by: darcy
2022-07-06 20:52:25 +00:00
Daniel D. Daugherty
32b650c024 8289840: ProblemList vmTestbase/nsk/jdwp/ThreadReference/ForceEarlyReturn/forceEarlyReturn002/forceEarlyReturn002.java when run with vthread wrapper
Reviewed-by: bpb
2022-07-06 16:51:03 +00:00
Daniel D. Daugherty
ef3f2ed9ba 8289841: ProblemList vmTestbase/gc/gctests/MemoryEaterMT/MemoryEaterMT.java with ZGC on windows
Reviewed-by: rriggs
2022-07-06 16:50:14 +00:00
Raffaello Giulietti
35387d5cb6 8289260: BigDecimal movePointLeft() and movePointRight() do not follow their API spec
Reviewed-by: darcy
2022-07-06 16:22:18 +00:00
Lance Andersen
9f37ba44b8 8288706: Unused parameter 'boolean newln' in method java.lang.VersionProps#print(boolean, boolean)
Reviewed-by: iris, alanb, rriggs
2022-07-06 15:37:23 +00:00
Andrew Haley
dfb24ae4b7 8289060: Undefined Behaviour in class VMReg
Reviewed-by: jvernee, kvn
2022-07-06 15:22:00 +00:00
Xue-Lei Andrew Fan
82a8bd7e92 8287596: Reorg jdk.test.lib.util.ForceGC
Reviewed-by: rriggs
2022-07-06 14:23:44 +00:00
Andrew Haley
cc2b792704 8288992: AArch64: CMN should be handled the same way as CMP
Reviewed-by: adinn, ngasson
2022-07-06 13:49:46 +00:00
Thomas Stuefe
75c0a5b828 8288824: [arm32] Display isetstate in register output
Reviewed-by: dsamersoff, snazarki
2022-07-06 13:17:54 +00:00
Coleen Phillimore
83a5d5996b 8278479: RunThese test failure with +UseHeavyMonitors and +VerifyHeavyMonitors
Reviewed-by: kvn, dcubed, dlong
2022-07-06 12:07:36 +00:00
Roland Westrelin
cbaf6e807e 8288022: c2: Transform (CastLL (AddL into (AddL (CastLL when possible
Reviewed-by: thartmann, kvn
2022-07-06 11:36:12 +00:00
Thomas Stuefe
0526402a02 8289477: Memory corruption with CPU_ALLOC, CPU_FREE on muslc
Backport-of: da6d1fc0e0
2022-07-06 10:15:38 +00:00
Thomas Schatzl
834189527e 8289739: Add G1 specific GC breakpoints for testing
Reviewed-by: kbarrett, iwalulya
2022-07-06 09:39:25 +00:00
Severin Gehwolf
ac6be16519 8289695: [TESTBUG] TestMemoryAwareness.java fails on cgroups v2 and crun
Reviewed-by: sspitsyn
2022-07-06 08:24:47 +00:00
ScientificWare
4ad18cf088 8289730: Deprecated code sample in java.lang.ClassCastException
Reviewed-by: darcy
2022-07-06 08:19:40 +00:00
Matthias Baesken
d8f4e97bd3 8289146: containers/docker/TestMemoryWithCgroupV1.java fails on linux ppc64le machine with missing Memory and Swap Limit output
Reviewed-by: sgehwolf, mdoerr, iklam
2022-07-06 07:12:32 +00:00
Andrey Turbanov
f783244caf 8289706: (cs) Avoid redundant TreeMap.containsKey call in AbstractCharsetProvider
Reviewed-by: attila, naoto
2022-07-06 06:40:19 +00:00
Alan Bateman
b3a0e482ad 8289439: Clarify relationship between ThreadStart/ThreadEnd and can_support_virtual_threads capability
Reviewed-by: dholmes, dcubed, sspitsyn, cjplummer
2022-07-06 06:40:07 +00:00
Xiaohong Gong
fafe8b3f8d 8289604: compiler/vectorapi/VectorLogicalOpIdentityTest.java failed on x86 AVX1 system
Reviewed-by: jiefu, kvn
2022-07-06 06:15:04 +00:00
Tyler Steele
0b6fd4820c 8288128: S390X: Fix crashes after JDK-8284161 (Virtual Threads)
Reviewed-by: mdoerr
2022-07-05 21:11:50 +00:00
Evgeny Astigeevich
351560414d 8280481: Duplicated stubs to interpreter for static calls
Reviewed-by: kvn, phh
2022-07-05 20:50:02 +00:00
Daniel D. Daugherty
30e134e909 8289091: move oop safety check from SharedRuntime::get_java_tid() to JavaThread::threadObj()
Reviewed-by: rehn, dholmes
2022-07-05 20:42:42 +00:00
Lance Andersen
d48694d0f3 8283335: Add exists and readAttributesIfExists methods to FileSystemProvider
Reviewed-by: alanb
2022-07-05 19:45:08 +00:00
Doug Simon
c45d613faa 8289687: [JVMCI] bug in HotSpotResolvedJavaMethodImpl.equals
Reviewed-by: kvn
2022-07-05 18:25:12 +00:00
Chris Plummer
29ea6429d2 8287847: Fatal Error when suspending virtual thread after it has terminated
Reviewed-by: alanb, sspitsyn
2022-07-05 17:46:59 +00:00
Michael McMahon
77c3bbf105 8289617: Remove test/jdk/java/net/ServerSocket/ThreadStop.java
Reviewed-by: alanb, jpai
2022-07-05 09:15:41 +00:00
Andrew Haley
a5934cddca 8289698: AArch64: Need to relativize extended_sp in frame
Reviewed-by: alanb, dholmes
2022-07-05 07:54:38 +00:00
Andrey Turbanov
fd1bb078ea 8287603: Avoid redundant HashMap.containsKey calls in NimbusDefaults.getDerivedColor
Reviewed-by: attila, aivanov
2022-07-05 07:39:05 +00:00
Albert Mingkun Yang
4c997ba830 8289520: G1: Remove duplicate checks in G1BarrierSetC1::post_barrier
Reviewed-by: tschatzl, iwalulya
2022-07-05 07:29:02 +00:00
KIRIYAMA Takuya
1b997db734 8289427: compiler/compilercontrol/jcmd/ClearDirectivesFileStackTest.java failed with null setting
Reviewed-by: kvn, thartmann
2022-07-05 06:38:10 +00:00
Thomas Stuefe
688712f75c 8289633: Forbid raw C-heap allocation functions in hotspot and fix findings
Reviewed-by: kbarrett, dholmes
2022-07-05 04:26:45 +00:00
Andrey Turbanov
df063f7db1 8289484: Cleanup unnecessary null comparison before instanceof check in java.rmi
Reviewed-by: jpai, attila
2022-07-04 20:21:11 +00:00
Ryan Ernst
9ccae7078e 8287593: ShortResponseBody could be made more resilient to rogue connections
Reviewed-by: chegar, dfuchs
2022-07-04 16:09:40 +00:00
Pavel Rappo
f640fc5a1e 8067757: Incorrect HTML generation for copied javadoc with multiple @throws tags
Reviewed-by: jjg
2022-07-04 16:00:53 +00:00
Albert Mingkun Yang
bad9ffe471 8288947: G1: Consolidate per-region is-humongous query in G1CollectedHeap
Reviewed-by: tschatzl, iwalulya
2022-07-04 15:18:24 +00:00
Matthias Baesken
0dff3276e8 8289569: [test] java/lang/ProcessBuilder/Basic.java fails on Alpine/musl
Reviewed-by: clanger
Backport-of: a8edd7a12f
2022-07-04 14:45:48 +00:00
Andrew Haley
b5d965656d 8288971: AArch64: Clean up stack and register handling in interpreter
Reviewed-by: adinn, ngasson
2022-07-04 13:26:54 +00:00
Albert Mingkun Yang
d53b02eb9f 8287312: G1: Early return on first failure in VerifyRegionClosure
Reviewed-by: tschatzl, iwalulya, kbarrett
2022-07-04 12:03:57 +00:00
Jatin Bhateja
1a271645a8 8287851: C2 crash: assert(t->meet(t0) == t) failed: Not monotonic
Reviewed-by: thartmann, chagedorn
2022-07-04 11:31:32 +00:00
Matthias Baesken
a8edd7a12f 8289569: [test] java/lang/ProcessBuilder/Basic.java fails on Alpine/musl
Reviewed-by: clanger, alanb, stuefe
2022-07-04 08:56:35 +00:00
Albert Mingkun Yang
e31003a064 8289575: G1: Remove unnecessary is-marking-active check in G1BarrierSetRuntime::write_ref_field_pre_entry
Reviewed-by: tschatzl, iwalulya
2022-07-04 08:04:01 +00:00
Christoph Langer
5b5bc6c26e 8287672: jtreg test com/sun/jndi/ldap/LdapPoolTimeoutTest.java fails intermittently in nightly run
Reviewed-by: stuefe
Backport-of: 7e211d7daa
2022-07-04 07:52:38 +00:00
Andrey Turbanov
8e7a3cb5ab 8289431: (zipfs) Avoid redundant HashMap.get in ZipFileSystemProvider.removeFileSystem
Reviewed-by: lancea, attila
2022-07-04 06:54:09 +00:00
Erik Gahlin
dc4edd3fe8 8289183: jdk.jfr.consumer.RecordedThread.getId references Thread::getId, should be Thread::threadId
Reviewed-by: alanb
2022-07-03 19:28:39 +00:00
Prasanta Sadhukhan
649f2d8835 8065097: [macosx] javax/swing/Popup/TaskbarPositionTest.java fails because Popup is one pixel off
Reviewed-by: aivanov
2022-07-03 08:36:08 +00:00
Bill Huang
d8444aa45e 8286610: Add additional diagnostic output to java/net/DatagramSocket/InterruptibleDatagramSocket.java
Reviewed-by: msheppar, dfuchs, jpai
2022-07-03 02:37:30 +00:00
Serguei Spitsyn
c4dcce4bca 8289619: JVMTI SelfSuspendDisablerTest.java failed with RuntimeException: Test FAILED: Unexpected thread state
Reviewed-by: alanb, cjplummer
2022-07-02 20:43:11 +00:00
Jesper Wilhelmsson
70f5693356 Merge 2022-07-02 18:07:36 +00:00
Andrey Turbanov
dee5121bd4 8289385: Cleanup redundant synchronization in Http2ClientImpl
Reviewed-by: jpai, dfuchs
2022-07-02 15:24:23 +00:00
Ioi Lam
cdf6979259 8289230: Move PlatformXXX class declarations out of os_xxx.hpp
Reviewed-by: coleenp, ccheung
2022-07-02 14:45:10 +00:00
Igor Veresov
f5cdabad06 8245268: -Xcomp is missing from java launcher documentation
Reviewed-by: kvn
2022-07-02 05:55:10 +00:00
Serguei Spitsyn
9515560c54 8288703: GetThreadState returns 0 for virtual thread that has terminated
Reviewed-by: alanb, amenkov, cjplummer
2022-07-02 05:43:43 +00:00
Sergey Bylokhov
cfc9a881af 8288854: getLocalGraphicsEnvironment() on for multi-screen setups throws exception NPE
Reviewed-by: azvegint, aivanov
2022-07-02 00:25:20 +00:00
Vladimir Ivanov
9925014035 8280320: C2: Loop opts are missing during OSR compilation
Reviewed-by: thartmann, iveresov
2022-07-01 22:56:48 +00:00
Kevin Driver
44e8c462b4 8289603: Code change for JDK-8170762 breaks all build
Reviewed-by: weijun
2022-07-01 22:01:55 +00:00
Maurizio Cimadamore
8e01ffb3a7 8289570: SegmentAllocator:allocateUtf8String(String str) default behavior mismatch to spec
Reviewed-by: alanb, psandoz
2022-07-01 21:46:07 +00:00
Kevin Driver
2dd00f580c 8170762: Document that ISO10126Padding pads with random bytes
Reviewed-by: weijun
2022-07-01 21:28:44 +00:00
Brian Burkhalter
e291a67e96 8289584: (fs) Print size values in java/nio/file/FileStore/Basic.java when they differ by > 1GiB
Reviewed-by: alanb
2022-07-01 19:13:49 +00:00
Daniel D. Daugherty
20124ac755 8289585: ProblemList sun/tools/jhsdb/JStackStressTest.java on linux-aarch64
Reviewed-by: bpb, kevinw
2022-07-01 16:21:31 +00:00
Calvin Cheung
c43bdf7165 8289257: Some custom loader tests failed due to symbol refcount not decremented
Reviewed-by: iklam, coleenp
2022-07-01 16:11:17 +00:00
Naoto Sato
604ea90d55 8289549: ISO 4217 Amendment 172 Update
Reviewed-by: iris
2022-07-01 16:07:23 +00:00
Harold Seigel
09b4032f8b 8289534: Change 'uncomplicated' hotspot runtime options
Reviewed-by: coleenp, dholmes
2022-07-01 14:31:30 +00:00
Thomas Stuefe
a8fe2d97a2 8289512: Fix GCC 12 warnings for adlc output_c.cpp
Reviewed-by: kvn, lucy
2022-07-01 13:43:45 +00:00
Tobias Holenstein
b9b900a61c 8277060: EXCEPTION_INT_DIVIDE_BY_ZERO in TypeAryPtr::dump2 with -XX:+TracePhaseCCP
Reviewed-by: kvn, thartmann, chagedorn, dlong
2022-07-01 13:34:38 +00:00
Harshitha Onkar
f190f4e638 8288444: Remove the workaround for frame.pack() in ModalDialogTest
Reviewed-by: azvegint
2022-07-01 09:07:34 +00:00
Richard Reingruber
d260a4e794 8289434: x86_64: Improve comment on gen_continuation_enter()
Reviewed-by: kvn
2022-07-01 06:12:52 +00:00
Tobias Hartmann
95497772e7 8284358: Unreachable loop is not removed from C2 IR, leading to a broken graph
Co-authored-by: Christian Hagedorn <chagedorn@openjdk.org>
Reviewed-by: kvn, chagedorn
2022-07-01 05:23:57 +00:00
Xiaohong Gong
124c63c17c 8288294: [vector] Add Identity/Ideal transformations for vector logic operations
Reviewed-by: kvn, jbhateja
2022-07-01 01:19:18 +00:00
Jesper Wilhelmsson
918068a115 Merge 2022-07-01 00:47:56 +00:00
Kevin Walls
00d06d4a82 8289440: Remove vmTestbase/nsk/monitoring/MemoryPoolMBean/isCollectionUsageThresholdExceeded/isexceeded003 from ProblemList.txt
Reviewed-by: amenkov, lmesnik
2022-06-30 20:18:52 +00:00
Prasanta Sadhukhan
feb223aacf 8288707: javax/swing/JToolBar/4529206/bug4529206.java: setFloating does not work correctly
Reviewed-by: tr, serb
2022-06-30 11:16:07 +00:00
rmartinc
c3addbb1c0 8288895: LdapContext doesn't honor set referrals limit
Reviewed-by: dfuchs, aefimov
2022-06-30 09:17:57 +00:00
Xiaohong Gong
1305fb5ca8 8287984: AArch64: [vector] Make all bits set vector sharable for match rules
Reviewed-by: kvn, ngasson
2022-06-30 08:53:27 +00:00
Alan Bateman
c20b3aa9c5 8289278: Suspend/ResumeAllVirtualThreads need both can_suspend and can_support_virtual_threads
Reviewed-by: sspitsyn, dcubed, dholmes, iris
2022-06-30 08:49:32 +00:00
Ryan Ernst
7b5bd251ef 8286397: Address possibly lossy conversions in jdk.hotspot.agent
Reviewed-by: cjplummer, chegar
2022-06-30 08:28:45 +00:00
Tobias Holenstein
28c5e483a8 8287094: IGV: show node input numbers in edge tooltips
Reviewed-by: chagedorn, thartmann
2022-06-30 07:14:29 +00:00
Thomas Stuefe
da6d1fc0e0 8289477: Memory corruption with CPU_ALLOC, CPU_FREE on muslc
Reviewed-by: dholmes, clanger
2022-06-30 06:19:25 +00:00
Xin Liu
31e50f2c76 8286104: use aggressive liveness for unstable_if traps
Reviewed-by: kvn, thartmann
2022-06-30 03:59:42 +00:00
Jaikiran Pai
dddd4e7c81 8289291: HttpServer sets incorrect value for "max" parameter in Keep-Alive header value
Reviewed-by: michaelm, dfuchs
2022-06-30 01:43:11 +00:00
Jesper Wilhelmsson
048bffad79 Merge 2022-06-29 23:32:37 +00:00
Harshitha Onkar
15efb2bdeb 8289238: Refactoring changes to PassFailJFrame Test Framework
Reviewed-by: azvegint, aivanov
2022-06-29 18:36:38 +00:00
Zdenek Zambersky
b6bd190d8d 8288985: P11TlsKeyMaterialGenerator should work with ChaCha20-Poly1305
Reviewed-by: valeriep
2022-06-29 17:20:03 +00:00
Doug Simon
ba670ecbb9 8289094: [JVMCI] reduce JNI overhead and other VM rounds trips in JVMCI
Reviewed-by: kvn, dlong
2022-06-29 16:14:55 +00:00
Naoto Sato
cf7154498f 8289252: Recommend Locale.of() method instead of the constructor
Reviewed-by: joehw, rriggs
2022-06-29 15:47:26 +00:00
Raffaello Giulietti
570897498b 8288596: Random:from() adapter does not delegate to supplied generator in all cases
Reviewed-by: darcy
2022-06-29 14:56:28 +00:00
liach
0709a6a1fb 8284942: Proxy building can just iterate superinterfaces once
Reviewed-by: mchung
2022-06-29 14:22:48 +00:00
Albert Mingkun Yang
2961b7eede 8285364: Remove REF_ enum for java.lang.ref.Reference
Co-authored-by: Stefan Karlsson <stefank@openjdk.org>
Reviewed-by: kbarrett, coleenp, stefank
2022-06-29 13:15:19 +00:00
Yasumasa Suenaga
167ce4dae2 8289421: No-PCH build for Minimal VM was broken by JDK-8287001
Reviewed-by: mbaesken, jiefu, stuefe
2022-06-29 11:43:45 +00:00
Quan Anh Mai
108cd69516 8283726: x86_64 intrinsics for compareUnsigned method in Integer and Long
Reviewed-by: kvn, jbhateja
2022-06-29 10:34:05 +00:00
Thomas Stuefe
b96ba19807 8289182: NMT: MemTracker::baseline should return void
Reviewed-by: dholmes, zgu
2022-06-29 04:12:46 +00:00
Yuta Sato
779b4e1d19 8287001: Add warning message when fail to load hsdis libraries
Reviewed-by: kvn, ysuenaga
2022-06-29 01:17:28 +00:00
Joe Darcy
dbc6e11010 8289399: Update SourceVersion to use snippets
Reviewed-by: jjg, iris
2022-06-29 00:14:45 +00:00
KIRIYAMA Takuya
910053b74e 8280235: Deprecated flag FlightRecorder missing from VMDeprecatedOptions test
Reviewed-by: dholmes, mgronlun
2022-06-28 23:37:23 +00:00
Hai-May Chao
7b3bf97760 8289401: Add dump output to TestRawRSACipher.java
Reviewed-by: weijun
2022-06-28 23:30:32 +00:00
Jesper Wilhelmsson
86dc760f9e Merge 2022-06-28 22:11:23 +00:00
Daniel D. Daugherty
1504804896 8289398: ProblemList jdk/jfr/api/consumer/recordingstream/TestOnEvent.java on linux-x64 again
Reviewed-by: azvegint
2022-06-28 20:06:06 +00:00
altrisi
af0088076d 8284640: CollectorImpl class could be a record class
Reviewed-by: phh, rriggs
2022-06-28 17:12:06 +00:00
Alex Kasko
c67149be4b 8288961: jpackage: test MSI installation fix
Reviewed-by: asemenyuk, almatvee
2022-06-28 17:06:08 +00:00
Alex Kasko
1f36ed1fae 8288013: jpackage: test utility Windows registry enhancement
Reviewed-by: asemenyuk, almatvee
2022-06-28 17:03:11 +00:00
Igor Veresov
9b7805e3b4 8289069: Very slow C1 arraycopy jcstress tests after JDK-8279886
Reviewed-by: thartmann, kvn
2022-06-28 16:26:08 +00:00
Jonathan Gibbons
c42b796f91 8288058: Broken links on constant-values page
Reviewed-by: prappo
2022-06-28 15:58:12 +00:00
Jonathan Gibbons
a814293e1f 8275784: Bogus warning generated for record with compact constructor
Reviewed-by: prappo
2022-06-28 15:54:52 +00:00
Yi-Fan Tsai
88fe19c5b2 8289071: Compute allocation sizes of stubs and nmethods outside of lock protection
Reviewed-by: thartmann, phh
2022-06-28 15:16:21 +00:00
Brian Burkhalter
6f9717b46b 8288836: (fs) Files.writeString spec for IOException has "specified charset" when no charset is provided
Reviewed-by: alanb, lancea, iris
2022-06-28 15:05:46 +00:00
Thomas Stuefe
d4eeeb82cb 8271252: os::reserve_memory should not use mtOther as default NMT flag
Reviewed-by: zgu
2022-06-28 12:32:35 +00:00
Claes Redestad
9048cef761 8288425: Footprint regression due MH creation when initializing StringConcatFactory
Reviewed-by: jlaskey
Backport-of: 6d595614a2
2022-06-28 12:27:30 +00:00
Zhengyu Gu
549c6c22ae 8287818: Shenandoah: adapt nmethod arming from Loom
Reviewed-by: shade
2022-06-28 12:16:55 +00:00
Albert Mingkun Yang
aa43824249 8289138: G1: Remove redundant is-marking-active checks in C1 barrier
Reviewed-by: tschatzl, ehelin
2022-06-28 11:54:25 +00:00
Maurizio Cimadamore
adbd200dc5 8289228: SegmentAllocator::allocateArray null handling is too lax
Reviewed-by: jvernee, psandoz
2022-06-28 10:06:42 +00:00
Magnus Ihse Bursie
b4ab5fe1da 8288396: Always create reproducible builds
Reviewed-by: amenkov, ehelin
2022-06-28 09:00:45 +00:00
Calvin Cheung
33369719b2 8289258: ProblemList some failing custom loader tests with ZGC
Reviewed-by: dholmes
2022-06-28 05:22:43 +00:00
Dean Long
b4490386fe 8288445: AArch64: C2 compilation fails with guarantee(!true || (true && (shift != 0))) failed: impossible encoding
Reviewed-by: thartmann, haosun, njian
2022-06-28 03:12:12 +00:00
Thejasvi Voniadka
784fa0add7 8282036: Change java/util/zip/ZipFile/DeleteTempJar.java to stop HttpServer cleanly in case of exceptions
Reviewed-by: jpai, alanb, dfuchs
2022-06-28 01:55:17 +00:00
Hai-May Chao
ca78f7bd76 8286259: Password cleanup after KeyStore.PasswordProtection in P11KeyStore
Reviewed-by: valeriep
2022-06-27 23:15:13 +00:00
Daniel D. Daugherty
2efa89a89e 8289251: ProblemList java/lang/ref/OOMEInReferenceHandler.java
Reviewed-by: dholmes
2022-06-27 21:24:00 +00:00
Calvin Cheung
e322e77e95 8288651: CDS test HelloUnload.java should not use literal string as ClassLoader name
Reviewed-by: coleenp, iklam
2022-06-27 21:16:02 +00:00
Harshitha Onkar
40bf3b1167 8288993: Make AwtFramePackTest generic by removing @requires tag
Reviewed-by: dmarkov, aivanov, serb
2022-06-27 21:02:11 +00:00
Pavel Rappo
17ef8cae33 8288524: Allow @systemProperty to appear in overview documentation
Reviewed-by: jjg
2022-06-27 19:33:16 +00:00
Daniel D. Daugherty
caa6b74b5b 8289240: ProblemList java/lang/reflect/callerCache/ReflectionCallerCacheTest.java in -Xcomp mode
Reviewed-by: bpb, naoto
2022-06-27 18:43:42 +00:00
Daniel D. Daugherty
28913f4747 8289235: ProblemList vmTestbase/nsk/jdi/ClassType/invokeMethod/invokemethod011/TestDescription.java when run with vthread wrapper
Reviewed-by: bpb
2022-06-27 18:42:27 +00:00
Jesper Wilhelmsson
d4b040f42d Merge 2022-06-27 18:25:53 +00:00
Raffaello Giulietti
354ed1034d 8288021: Add hard test cases to jdk.internal.math.DoubleToDecimalChecker
Co-authored-by: Paul Zimmermann <Paul.Zimmermann@inria.fr>
Reviewed-by: darcy
2022-06-27 18:21:17 +00:00
Jonathan Gibbons
7746664819 8280826: Document set of strings javac recognizes for SuppressWarnings
Reviewed-by: darcy
2022-06-27 17:02:21 +00:00
Maurizio Cimadamore
2c8ada689f 8289188: SegmentAllocator:allocateArray(*) default behavior mismatch to spec
Reviewed-by: alanb
2022-06-27 15:37:08 +00:00
Daniel Fuchs
f3f078846f 8288746: HttpClient resources could be reclaimed more eagerly
Reviewed-by: jpai, michaelm
2022-06-27 15:11:35 +00:00
Tobias Holenstein
be6be15efa 8288750: IGV: Improve Shortcuts
Reviewed-by: chagedorn, thartmann
2022-06-27 13:20:38 +00:00
Roland Westrelin
210a06a287 8287227: Shenandoah: A couple of virtual thread tests failed with iu mode even without Loom enabled.
Reviewed-by: shade, rkennke
2022-06-27 12:42:41 +00:00
Damon Nguyen
64f95cfb32 8012675: javax.swing.JEditorPane is unclear on the handling of unsupported HTML script tags
Reviewed-by: prr, aivanov
2022-06-27 12:37:15 +00:00
Jayashree Huttanagoudar
ddb55ede2c 8135292: Remove duplicate code in <OS>Address.java in SA
Reviewed-by: cjplummer, amenkov
2022-06-27 11:52:42 +00:00
Thomas Schatzl
699ad45b43 8289093: BlockLocationPrinter fails to decode addresses with G1
Reviewed-by: ayang, iwalulya
2022-06-27 11:41:24 +00:00
Christian Hagedorn
784a0f0496 8288683: C2: And node gets wrong type due to not adding it back to the worklist in CCP
Reviewed-by: roland, thartmann
2022-06-27 11:32:13 +00:00
Alan Bateman
7e13cdb799 8289079: java/lang/Thread/jni/AttachCurrentThread/AttachTest.java#id1 failed with "RuntimeException: Test failed"
Reviewed-by: dholmes, mcimadamore
2022-06-27 10:22:04 +00:00
Andrey Turbanov
7905788e96 8289126: Cleanup unnecessary null comparison before instanceof check in jdk.hotspot.agent
Reviewed-by: ayang, cjplummer
2022-06-27 07:30:19 +00:00
Andrey Turbanov
47fe9ef5bf 8289078: Make STARTTIME_ANY and STARTTIME_PROCESS_UNKNOWN fields static in ProcessHandleImpl
Reviewed-by: jpai, rriggs, bpb, naoto, iris
2022-06-27 07:13:02 +00:00
Matthias Baesken
62e1e7950b 8289147: unify os::infinite_sleep on posix platforms
Reviewed-by: mdoerr, kbarrett, dholmes
2022-06-27 06:50:11 +00:00
Joe Darcy
de7467146f 8266670: Better modeling of access flags in core reflection
Reviewed-by: mchung, rriggs, asotona
2022-06-25 19:09:43 +00:00
Jaikiran Pai
9c92da5249 8247407: tools/jlink/plugins/CompressorPluginTest.java test failing
Reviewed-by: sundar, jlaskey
2022-06-25 12:19:14 +00:00
Ryan Ernst
a5c25d8837 8286395: Address possibly lossy conversions in java.security.jgss
Reviewed-by: chegar
2022-06-25 08:00:21 +00:00
Ryan Ernst
e93be3acdf 8286389: Address possibly lossy conversions in jdk.crypto.ec
Reviewed-by: chegar, xuelei
2022-06-25 07:55:55 +00:00
Jaikiran Pai
7ac40f3b9f 8288983: broken link in com.sun.net.httpserver.SimpleFileServer
Reviewed-by: dfuchs, aefimov, michaelm
2022-06-25 02:36:27 +00:00
Vicente Romero
53b37fe153 8288130: compiler error with AP and explicit record accessor
Reviewed-by: jlahoda
2022-06-24 21:42:23 +00:00
Daniel D. Daugherty
08288819dd 8289166: ProblemList tools/jlink/plugins/CompressorPluginTest.java
Reviewed-by: lmesnik, bpb
2022-06-24 19:13:41 +00:00
Leonid Mesnik
4cdb97893c 8289098: clean up ported serviceability/jvmti tests
Reviewed-by: kevinw, sspitsyn
2022-06-24 18:13:23 +00:00
Joe Darcy
9918b6d384 8288609: Update --release 19 symbol information for JDK 19 build 28
Reviewed-by: iris
2022-06-24 16:26:03 +00:00
Ioi Lam
f67c5361cc 8288935: Remove excessive includes introduced in loom
Reviewed-by: rehn, stefank
2022-06-24 14:43:16 +00:00
Brian Burkhalter
239b4bb020 8289095: (fs) UnixCopyFile build error on linux-x86
Reviewed-by: alanb, shade, stuefe
2022-06-24 14:24:28 +00:00
Daniel D. Daugherty
0d2952e5b3 8289129: [BACKOUT] JDK-8287281 adjust guarantee in Handshake::execute for the case of target thread being current
Reviewed-by: alanb
2022-06-24 14:17:22 +00:00
Roger Riggs
fdc8455c45 8288495: [test] Make OutputAnalyzer exception more informative
Reviewed-by: lmesnik, naoto, jpai, dholmes
2022-06-24 13:46:32 +00:00
Boris Ulasevich
20f55abd27 8289044: ARM32: missing LIR_Assembler::cmove metadata type support
Reviewed-by: shade, stuefe
2022-06-24 13:37:22 +00:00
Harold Seigel
925084c496 8288976: classfile parser 'wrong name' error message has the names the wrong way around
Reviewed-by: dholmes, shade
2022-06-24 12:03:09 +00:00
Jan Lahoda
bdf9902f75 8288120: VerifyError with JEP 405 pattern match
Reviewed-by: vromero
2022-06-24 08:13:28 +00:00
Christian Hagedorn
17aacde50f 8288669: compiler/vectorapi/VectorFPtoIntCastTest.java still fails with "IRViolationException: There were one or multiple IR rule failures."
Reviewed-by: thartmann, dcubed
2022-06-24 07:28:44 +00:00
Johan Sjölén
9dc9a64fa4 8287281: adjust guarantee in Handshake::execute for the case of target thread being current
Reviewed-by: rehn, pchilanomate, dholmes, dcubed
2022-06-24 05:00:53 +00:00
Ioi Lam
64782a7524 8288623: Move Continuation classes out of javaClasses.hpp
Reviewed-by: stefank, coleenp
2022-06-24 04:29:48 +00:00
Abhishek Kumar
b0db33333a 8288528: broken links in java.desktop
Reviewed-by: prr, aivanov
2022-06-24 04:22:25 +00:00
Brian Burkhalter
651cbebb96 8288080: (fc) FileChannel::map for MemorySegments should state it always throws UOE
Backport-of: a9c2ab67c4
2022-06-23 22:57:35 +00:00
Daniel Jeliński
c8cc94a384 8288979: Improve CLDRConverter run time
Reviewed-by: naoto, rriggs
2022-06-23 18:44:54 +00:00
Sergey Tsypanov
740169ce1c 8285521: Minor improvements in java.net.URI
Reviewed-by: dfuchs
2022-06-23 17:52:37 +00:00
Brian Burkhalter
13cbb3a416 8289073: (fs) UnsatisfiedLinkError for sun.nio.fs.UnixCopyFile.bufferedCopy0()
Reviewed-by: alanb
2022-06-23 17:48:45 +00:00
Joe Wang
1f9521e6cb 8287076: Document.normalizeDocument() produces different results
Reviewed-by: lancea, iris, naoto
2022-06-23 17:12:31 +00:00
Naoto Sato
a716f7934b 8288589: Files.readString ignores encoding errors for UTF-16
Backport-of: 2728770e3d
2022-06-23 17:07:58 +00:00
Serguei Spitsyn
4c9ea7e66a 8286580: serviceability/jvmti/vthread/GetSetLocalTest failed with assert: Not supported for heap frames
Reviewed-by: lmesnik, rpressler, cjplummer
2022-06-23 16:21:32 +00:00
Coleen Phillimore
b206d2d149 8289006: Cleanup from thread.hpp split
Reviewed-by: dholmes, dcubed
2022-06-23 16:21:26 +00:00
Naoto Sato
2728770e3d 8288589: Files.readString ignores encoding errors for UTF-16
Reviewed-by: rriggs, iris, alanb
2022-06-23 15:49:43 +00:00
Brian Burkhalter
ef17ee4dea 8288515: (ch) Unnecessary use of Math.addExact() in java.nio.channels.FileLock.overlaps()
Reviewed-by: alanb
2022-06-23 15:40:23 +00:00
Brian Burkhalter
72f286a9ba 8287580: (se) CancelledKeyException during channel registration
Reviewed-by: alanb
2022-06-23 15:39:32 +00:00
Brian Burkhalter
b8db0c383b 6980847: (fs) Files.copy needs to be "tuned"
Reviewed-by: alanb
2022-06-23 15:36:19 +00:00
Julian Waters
d579916a6b 8288740: Change incorrect documentation for sjavac flag
Reviewed-by: ihse
2022-06-23 14:17:58 +00:00
Thomas Stuefe
26c03c1860 8288719: [arm32] SafeFetch32 thumb interleaving causes random crashes
8284997: arm32 build crashes since JDK-8283326

Reviewed-by: snazarki, xliu, lucy
2022-06-23 10:15:05 +00:00
Thiago Henrique Hüpner
a802b9816a 8287760: --do-not-resolve-by-default gets overwritten if --warn-if-resolved flags is used
Reviewed-by: lancea, alanb, cstein
2022-06-23 09:41:06 +00:00
Evgeny Astigeevich
bf0623b11f 8286314: Trampoline not created for far runtime targets outside small CodeCache
Reviewed-by: aph, phh
2022-06-23 09:30:59 +00:00
Richard Reingruber
3f5e48a44e 8288781: C1: LIR_OpVisitState::maxNumberOfOperands too small
Reviewed-by: shade, mdoerr, thartmann
2022-06-23 05:42:54 +00:00
Jesper Wilhelmsson
5b583e4792 Merge 2022-06-22 23:21:49 +00:00
Jonathan Gibbons
3b1ec3e660 8288994: Incorrect @since tags for @value update in JDK-8286101
Reviewed-by: darcy, prappo
2022-06-22 20:48:31 +00:00
Erik Gahlin
58b6937b09 8288982: JFR: Log event streaming actions
Reviewed-by: mgronlun
2022-06-22 19:37:51 +00:00
Daniel D. Daugherty
6458ebc8e4 8288988: ProblemList serviceability/jvmti/vthread/ContStackDepthTest/ContStackDepthTest.java in -Xcomp mode
Reviewed-by: alanb, azvegint
2022-06-22 16:20:20 +00:00
Xin Liu
82c77ca807 8288926: make runtime/logging/DeoptStats.java more reliable
Reviewed-by: simonis, phh
2022-06-22 15:57:48 +00:00
Naoto Sato
d4de475747 8287868: Localized names update in COMPAT locale provider
Reviewed-by: iris, joehw
2022-06-22 15:47:07 +00:00
Jaikiran Pai
50c37f53f2 8276798: HttpURLConnection sends invalid HTTP request
Reviewed-by: dfuchs, michaelm
2022-06-22 14:45:52 +00:00
Markus Grönlund
6037ccdd50 8288846: misc tests fail "assert(ms < 1000) failed: Un-interruptable sleep, short time use only"
Reviewed-by: egahlin
2022-06-22 13:29:44 +00:00
Coleen Phillimore
270cf67e5f 8288752: Split thread implementation files
Reviewed-by: dholmes, rehn, iklam
2022-06-22 12:49:25 +00:00
Matthias Baesken
d51f4f471f 8287011: Improve container information
Reviewed-by: sgehwolf, stuefe
2022-06-22 10:36:16 +00:00
Alan Bateman
8fa46c8f72 8288840: StructureViolationException should not link to fork method
Reviewed-by: psandoz, mchung
2022-06-22 07:48:58 +00:00
Alan Bateman
7cf71bc2d3 8287982: Concurrent implicit attach from native threads crashes VM
Reviewed-by: dholmes, rehn
2022-06-22 07:48:14 +00:00
Jaikiran Pai
affbd72aa3 8288744: Remove tools/jlink/plugins/CompressorPluginTest.java from problemlist
Reviewed-by: alanb
2022-06-22 05:51:24 +00:00
Joe Wang
9e2d9ac59a 8288529: broken link in java.xml
Reviewed-by: iris, lancea, naoto
2022-06-22 04:49:17 +00:00
Jesper Wilhelmsson
2bf5c9a687 Merge 2022-06-21 22:26:26 +00:00
Alexander Matveev
70008da6b4 8287971: Throw exception for missing values in .jpackage.xml
Reviewed-by: asemenyuk
2022-06-21 21:12:21 +00:00
Maurizio Cimadamore
d7b43af591 8288761: SegmentAllocator:allocate(long bytesSize) not throwing IAEx when bytesSize < 0
Reviewed-by: psandoz
2022-06-21 20:59:45 +00:00
Ioi Lam
9f8bfab290 8288537: Move Devirtualizer out of hotspot/share/memory/iterator.hpp
Reviewed-by: stefank, coleenp
2022-06-21 20:54:59 +00:00
Leonid Mesnik
f080430440 8288599: com/sun/management/OperatingSystemMXBean/TestTotalSwap.java: Expected total swap size ... but getTotalSwapSpaceSize returned ...
Reviewed-by: sspitsyn, kevinw
2022-06-21 18:38:03 +00:00
Aleksey Shipilev
834d92dd72 8288754: GCC 12 fails to build zReferenceProcessor.cpp
Reviewed-by: kbarrett, ayang, stefank, tschatzl
2022-06-21 18:13:36 +00:00
Ron Pressler
198cec9e1b 8286103: VThreadMonitorTest fails "assert(!current->cont_fastpath() || (current->cont_fastpath_thread_state() && !interpreted_native_or_deoptimized_on_stack(current))) failed"
Reviewed-by: sspitsyn, pchilanomate
2022-06-21 16:58:55 +00:00
Ron Pressler
97200a78b1 8278053: serviceability/jvmti/vthread/ContStackDepthTest/ContStackDepthTest.java failing in loom repo with Xcomp
Reviewed-by: sspitsyn, pchilanomate, coleenp
2022-06-21 16:48:33 +00:00
Daniel D. Daugherty
31d981e5ea 8288532: additional review changes for JDK-8286830
Reviewed-by: pchilanomate, dholmes
2022-06-21 16:36:51 +00:00
Daniel D. Daugherty
a144988600 8288139: JavaThread touches oop after GC barrier is detached
Reviewed-by: pchilanomate, dholmes, rehn, eosterlund
2022-06-21 16:21:03 +00:00
Daniel D. Daugherty
e26d3b3c01 8288497: add support for JavaThread::is_oop_safe()
Reviewed-by: pchilanomate, dholmes, rehn, eosterlund
2022-06-21 16:08:09 +00:00
Hannes Wallnöfer
c74a9235fc 8288531: Empty spans in mobile navigation markup
Reviewed-by: jjg
2022-06-21 16:02:22 +00:00
Brian Burkhalter
535fba8bfc 8288687: (fc) Unix version ofFileChannelImpl.transferTo0() should should return IOS_UNSUPPORTED if not Linux, macOS, nor AIX
Reviewed-by: alanb
2022-06-21 15:27:52 +00:00
Emanuel Peter
af05139133 8288467: remove memory_operand assert for spilled instructions
Reviewed-by: thartmann, shade, jbhateja
2022-06-21 15:22:02 +00:00
Weijun Wang
19017358b1 8288209: SSL debug message wrong about unsupported authentication scheme
Reviewed-by: djelinski, jnimeh
2022-06-21 14:33:03 +00:00
Andrey Turbanov
0f801fe6fd 8288628: Unnecessary Hashtable usage in ConditionalSpecialCasing
Reviewed-by: naoto, jpai
2022-06-21 08:28:04 +00:00
Thomas Stuefe
701ea3beaa 8288556: VM crashes if it gets sent SIGUSR2 from outside
Reviewed-by: dholmes, lucy
2022-06-21 07:55:48 +00:00
Jaikiran Pai
5e680d0594 8288724: Prevent NullPointerException in serviceability/tmtools/jstack/DaemonThreadTest.java if jstack process fails
Reviewed-by: kevinw, sspitsyn
2022-06-21 07:12:32 +00:00
Hannes Wallnöfer
b9c396625c 8288671: Problematic fix for font boosting
Reviewed-by: jjg
2022-06-21 05:56:20 +00:00
Ioi Lam
ad8914616b 8288601: Consolidate static/dynamic archive tables
Reviewed-by: ccheung
2022-06-21 05:20:58 +00:00
Rob McKenna
7e211d7daa 8287672: jtreg test com/sun/jndi/ldap/LdapPoolTimeoutTest.java fails intermittently in nightly run
Reviewed-by: dfuchs, aefimov
2022-06-21 00:23:12 +00:00
Jesper Wilhelmsson
7039c6616a Merge 2022-06-20 19:38:49 +00:00
Lance Andersen
453e8beb43 8288527: broken link in java.base/java/util/zip/package-summary.html
Reviewed-by: bpb, martin
2022-06-20 17:32:31 +00:00
Erik Gahlin
33d0363e03 8288741: JFR: Change package name of snippet files
Reviewed-by: mgronlun
2022-06-20 16:20:31 +00:00
Emanuel Peter
302a6c068d 8287801: Fix test-bugs related to stress flags
Reviewed-by: chagedorn, thartmann
2022-06-20 14:29:06 +00:00
Markus Grönlund
0408f9c543 8288663: JFR: Disabling the JfrThreadSampler commits only a partially disabled state
Backport-of: a7df5a4063
2022-06-20 14:24:35 +00:00
Markus Grönlund
a7df5a4063 8288663: JFR: Disabling the JfrThreadSampler commits only a partially disabled state
Reviewed-by: jbachorik, egahlin
2022-06-20 13:30:19 +00:00
tqxia
406cf611d9 8287771: Remove useless G1 After GC summary refinement and sampling thread times
Reviewed-by: tschatzl, kbarrett
2022-06-20 12:58:26 +00:00
Erik Gahlin
1cf83a403f 8287800: JFR: Incorrect error message when starting recording with missing .jfc file
Reviewed-by: mgronlun
2022-06-20 12:23:33 +00:00
Claes Redestad
5cdb4b1960 8288011: StringConcatFactory: Split application of stringifiers
Reviewed-by: jvernee, mchung
2022-06-20 11:56:20 +00:00
Erik Gahlin
46d5b682db 8288685: JFR: Use static methods for Active Recording and Active Setting events
Reviewed-by: mgronlun
2022-06-20 11:48:27 +00:00
Claes Redestad
68bff04515 8288673: Reduce runtime of java.time microbenchmarks
Reviewed-by: jvernee
2022-06-20 10:21:51 +00:00
Claes Redestad
d917e1874e 8288667: Reduce runtime of java.text microbenchmarks
Reviewed-by: jvernee
2022-06-20 10:20:31 +00:00
Andrey Turbanov
695d8656c5 8284672: Collapse identical catch branches in java.desktop
Reviewed-by: prr, aivanov, serb
2022-06-20 09:02:15 +00:00
Martin Doerr
09da87cf5c 8288485: jni/nullCaller/NullCallerTest.java failing (ppc64)
Reviewed-by: alanb
2022-06-20 08:34:06 +00:00
Andrey Turbanov
7acdcc1034 8288329: Avoid redundant TreeMap.containsKey call in PolicyParser.read
Reviewed-by: mullan
2022-06-20 08:03:13 +00:00
Roberto Castañeda Lozano
f62b2bd9cd 8288480: IGV: toolbar action is not applied to the focused graph
Reviewed-by: chagedorn, thartmann
2022-06-20 07:34:45 +00:00
Roberto Castañeda Lozano
02da5f9970 8263384: IGV: Outline should highlight the Graph that has focus
Reviewed-by: xliu, chagedorn, thartmann
2022-06-20 07:27:11 +00:00
Christian Hagedorn
ed714af854 8288564: C2: LShiftLNode::Ideal produces wrong result after JDK-8278114
Reviewed-by: kvn, iveresov, thartmann
2022-06-20 06:47:40 +00:00
Erik Österlund
7d4df6a83f 8284404: Too aggressive sweeping with Loom
Reviewed-by: kvn, thartmann
2022-06-20 06:43:23 +00:00
Xiaohong Gong
ae030bcbc5 8288397: AArch64: Fix register issues in SVE backend match rules
Reviewed-by: njian, ngasson
2022-06-20 01:07:45 +00:00
Jonathan Gibbons
f12d044929 8288692: jdk/javadoc/doclet/testTagMisuse/TestTagMisuse.java fails after JDK-8288545
Reviewed-by: prappo
2022-06-17 21:48:24 +00:00
Erik Gahlin
97544be5b6 8268398: 15% increase in JFR footprint in Noop-Base
Reviewed-by: jbachorik
2022-06-17 19:40:08 +00:00
Joe Darcy
47b86690b6 8288573: Make Executable.getParameterCount() actually abstract
Reviewed-by: iris, alanb, jpai
2022-06-17 16:57:38 +00:00
Jonathan Gibbons
983f75caa6 8288545: Missing space in error message
Reviewed-by: hannesw
2022-06-17 16:53:19 +00:00
Jesper Wilhelmsson
af64d316c0 Merge 2022-06-17 13:46:47 +00:00
Claes Redestad
cc445926cf 8287904: Reduce runtime of java.net microbenchmarks
Reviewed-by: jvernee
2022-06-17 12:24:16 +00:00
Srinivas Mandalika
523d553e13 8282777: Create a Regression test for JDK-4515031
Reviewed-by: serb
2022-06-17 08:22:27 +00:00
Roberto Castañeda Lozano
f3da7ff66e 8288421: IGV: warn user about all unreachable nodes
Reviewed-by: chagedorn, thartmann
2022-06-17 07:32:15 +00:00
Alan Bateman
53bf1bfdab 8286176: Add JNI_VERSION_19 to jni.h and JNI spec
Reviewed-by: dcubed, iris, mchung, dholmes
2022-06-17 05:57:28 +00:00
Sandhya Viswanathan
9d4b25e788 8288281: compiler/vectorapi/VectorFPtoIntCastTest.java failed with "IRViolationException: There were one or multiple IR rule failures."
Reviewed-by: thartmann, chagedorn
2022-06-16 22:07:13 +00:00
Alexey Semenyuk
c254c9d095 8287401: jpackage tests failing on Windows due to powershell issue
Reviewed-by: almatvee
2022-06-16 22:04:17 +00:00
Andrey Turbanov
e833c1d179 8285519: Change usages of TimeUnit.convert to TimeUnit.toXXX
Reviewed-by: rriggs
2022-06-16 17:29:49 +00:00
Adam Sotona
e7d52e25a2 8288594: Address possibly lossy conversions in java.base FloatToDecimal
Reviewed-by: rriggs
2022-06-16 16:59:19 +00:00
Andrew Haley
2cf7c01759 8288478: AArch64: Clean up whitespace in assembler_aarch64.hpp
Reviewed-by: shade
2022-06-16 16:38:39 +00:00
Andrey Turbanov
ce5024f66f 8288468: Avoid redundant HashMap.get call in NegotiateAuthentication.firstToken
Reviewed-by: dfuchs, jpai
2022-06-16 16:03:05 +00:00
Maurizio Cimadamore
ff3db52044 8288534: Out of bound errors for memory segment access mentions wrong values
Reviewed-by: psandoz
2022-06-16 15:59:22 +00:00
Claes Redestad
8fc8fdca96 8287905: Reduce runtime of java.nio microbenchmarks
Reviewed-by: jvernee
2022-06-16 15:05:00 +00:00
Coleen Phillimore
cf4a4966a8 8288064: Class initialization locking
Reviewed-by: rehn, vlivanov
2022-06-16 12:38:06 +00:00
Jesper Wilhelmsson
3d12c0225b Merge 2022-06-16 12:01:32 +00:00
Dmitry Kulikov
b2a58bec4a 8288005: HotSpot build with disabled PCH fails for Windows AArch64
Reviewed-by: shade, kbarrett
2022-06-16 08:12:30 +00:00
Tejesh R
39526e28bc 8284619: javax/swing/JTable/8236907/LastVisibleRow.java failed with "Test Case Failed!!, Last Row not Visible!!!"
Reviewed-by: psadhukhan, honkar
2022-06-16 03:47:30 +00:00
Fei Gao
a1795901ee 8283091: Support type conversion between different data sizes in SLP
Reviewed-by: kvn, sviswanathan
2022-06-16 02:40:59 +00:00
Hao Sun
f7ba3b7e42 8288300: AArch64: Remove the assertion in fmovs/fmovd(FloatRegister, FloatRegister)
Reviewed-by: aph, ngasson
2022-06-16 00:54:27 +00:00
Ioi Lam
07612281b0 8288443: Simplify vmClasses::resolve_all()
Reviewed-by: ccheung, dholmes, coleenp
2022-06-15 22:40:03 +00:00
Jonathan Gibbons
729164f534 8288533: Missing @param tags in com.sun.source classes
Reviewed-by: darcy, iris
2022-06-15 22:31:56 +00:00
Daniel D. Daugherty
9ff40346dd 8288530: ProblemList serviceability/jvmti/VMObjectAlloc/VMObjectAllocTest.java in -Xcomp mode
Reviewed-by: amenkov
2022-06-15 21:19:31 +00:00
Kevin Driver
1855e9d201 8220732: setSeed(long) java api doc is missing warning about provided seed quality
Reviewed-by: wetmore
2022-06-15 21:03:04 +00:00
Claes Redestad
6d595614a2 8288425: Footprint regression due MH creation when initializing StringConcatFactory
Reviewed-by: jvernee, mchung
2022-06-15 19:48:27 +00:00
Daniel D. Daugherty
9254e12993 8288526: ProblemList gc/stress/TestStressG1Humongous.java on windows-x64
Reviewed-by: psandoz
2022-06-15 19:43:38 +00:00
Paul Sandoz
395aea307f 8288414: Long::compress/expand samples are not correct
Reviewed-by: alanb
2022-06-15 19:21:13 +00:00
Andrey Turbanov
3475e12fa6 8288330: Avoid redundant ConcurrentHashMap.get call in Http2ClientImpl.deleteConnection
Reviewed-by: jpai, dfuchs
2022-06-15 18:12:29 +00:00
Magnus Ihse Bursie
cb5ef3da19 8288499: Restore cancel-in-progress in GHA
Reviewed-by: erikj, shade
2022-06-15 17:36:12 +00:00
Conor Cleary
13d4ddc35b 8286962: java/net/httpclient/ServerCloseTest.java failed once with ConnectException
Reviewed-by: dfuchs, jpai
2022-06-15 15:41:18 +00:00
Andrew Leonard
6633855ca7 8288399: MacOS debug symbol files not always deterministic in reproducible builds
Reviewed-by: erikj
2022-06-15 14:00:20 +00:00
Johan Sjölén
d5cd2f2caa 8284849: Add deoptimization to unified logging
Reviewed-by: jvernee, kvn, xliu, coleenp
2022-06-15 12:23:49 +00:00
Andrey Turbanov
dfeeb6f8f3 8288140: Avoid redundant Hashtable.get call in Signal.handle
Reviewed-by: rriggs
2022-06-15 10:35:02 +00:00
Boris Ulasevich
68b2057205 8287373: remove unnecessary paddings in generated code
Reviewed-by: kvn
2022-06-15 09:10:48 +00:00
Alan Bateman
f3b1f60a29 8288289: Preview APIs in jdk.jdi, jdk.management, and jdk.jfr should be reflective preview APIs
Reviewed-by: cjplummer, jlahoda
2022-06-15 08:20:51 +00:00
Emanuel Peter
2471f8f7c5 8287647: VM debug support: find node by pattern in name or dump
Reviewed-by: kvn, chagedorn, thartmann
2022-06-15 08:06:47 +00:00
Aleksey Shipilev
31bc689977 8288324: Loom: Uninitialized JvmtiEnvs in VM_Virtual* ops
Reviewed-by: sspitsyn, dholmes
2022-06-15 07:49:20 +00:00
Matthias Baesken
33f34d540e 8288207: Enhance MalformedURLException in Uri.parseCompat
Reviewed-by: dfuchs, alanb
2022-06-15 06:53:12 +00:00
Matthias Baesken
444a0d98ac 8284977: MetricsTesterCgroupV2.getLongValueEntryFromFile fails when named value doesn't exist
Reviewed-by: sgehwolf, mdoerr
2022-06-15 06:39:23 +00:00
Zhuojun Miao
08400f18ba 8287349: AArch64: Merge LDR instructions to improve C1 OSR performance
Reviewed-by: aph, ngasson, thartmann
2022-06-15 05:57:55 +00:00
Yoshiki Sato
fe807217a7 8287917: System.loadLibrary does not work on Big Sur if JDK is built with macOS SDK 10.15 and earlier
Reviewed-by: mchung
2022-06-15 00:12:53 +00:00
Vladimir Ivanov
50f99c3208 8288360: CI: ciInstanceKlass::implementor() is not consistent for well-known classes
Reviewed-by: thartmann, kvn
2022-06-14 22:37:00 +00:00
Harshitha Onkar
bbaeacb597 8265586: [windows] last button is not shown in AWT Frame with BorderLayout and MenuBar set.
Reviewed-by: aivanov, dmarkov, azvegint
2022-06-14 19:48:06 +00:00
Coleen Phillimore
0f580974a6 8288134: Super class names don't have envelopes
Reviewed-by: iklam, hseigel, fparain
2022-06-14 19:30:39 +00:00
Brian Burkhalter
5a8e1e43a4 8287889: (fs) Files.copy description of REPLACE_EXISTING is hard to read
Reviewed-by: alanb
2022-06-14 17:59:06 +00:00
Paul Sandoz
fb297705f6 8287186: JDK modules participating in preview
Reviewed-by: alanb, jlahoda
2022-06-14 16:22:59 +00:00
Aleksey Shipilev
8cd87e731b 8288303: C1: Miscompilation due to broken Class.getModifiers intrinsic
Reviewed-by: iveresov, dlong
2022-06-14 14:34:45 +00:00
Alan Bateman
c76a06aeb5 8288214: serviceability/jvmti/vthread/VThreadNotifyFramePopTest/VThreadNotifyFramePopTest.java test failed
Reviewed-by: lmesnik, zgu, dcubed, sspitsyn
2022-06-14 13:00:27 +00:00
Matthias Baesken
0530f4e517 8288094: cleanup old _MSC_VER handling
Reviewed-by: mdoerr, clanger, aturbanov
2022-06-14 10:43:07 +00:00
Magnus Ihse Bursie
1a6533225d 8287906: Rewrite of GitHub Actions (GHA) sanity tests
Reviewed-by: shade, erikj, cstein
2022-06-14 07:48:49 +00:00
Matthias Baesken
c2ccf4ca85 8288003: log events for os::dll_unload
Reviewed-by: dholmes, stuefe
2022-06-14 07:18:07 +00:00
Swati Sharma
03dca565cf 8287525: Extend IR annotation with new options to test specific target feature.
Co-authored-by: Jatin Bhateja <jbhateja@openjdk.org>
Reviewed-by: chagedorn, kvn
2022-06-14 06:13:26 +00:00
Eric Liu
86c9241cce 8287028: AArch64: [vectorapi] Backend implementation of VectorMask.fromLong with SVE2
Reviewed-by: xgong, ngasson
2022-06-14 03:38:42 +00:00
Naoto Sato
fbe9266622 8288378: [BACKOUT] DST not applying properly with zone id offset set with TZ env variable
Reviewed-by: dholmes
2022-06-14 01:06:54 +00:00
Jesper Wilhelmsson
19043538e1 Merge 2022-06-14 00:27:47 +00:00
Daniel D. Daugherty
53ef59c402 8288365: ProblemList java/lang/reflect/callerCache/ReflectionCallerCacheTest.java in -Xcomp on macosx-x64 and windows-x64
Reviewed-by: dholmes, mchung
2022-06-13 22:47:33 +00:00
Brian Burkhalter
a9c2ab67c4 8288080: (fc) FileChannel::map for MemorySegments should state it always throws UOE
Reviewed-by: alanb
2022-06-13 22:47:13 +00:00
Daniel D. Daugherty
e90b579b29 8288332: Tier1 validate-source fails after 8279614
Reviewed-by: darcy
2022-06-13 20:47:34 +00:00
Alisen Chung
b42c1ad108 8279614: The left line of the TitledBorder is not painted on 150 scale factor
Co-authored-by: Alexey Ivanov <aivanov@openjdk.org>
Reviewed-by: kizune, aivanov, prr
2022-06-13 20:05:06 +00:00
Gaurav Chaudhari
9b6d0a7e94 8285838: DST not applying properly with zone id offset set with TZ env variable
Reviewed-by: naoto
2022-06-13 20:01:57 +00:00
Jonathan Gibbons
53a0acee06 8286101: Support formatting in @value tag
Reviewed-by: prappo
2022-06-13 18:13:21 +00:00
Hai-May Chao
8f400b9aab 8286779: javax.crypto.CryptoPolicyParser#isConsistent always returns 'true'
Reviewed-by: mullan, rhalade
2022-06-13 15:31:58 +00:00
Severin Gehwolf
e0baf012b1 8287007: [cgroups] Consistently use stringStream throughout parsing code
Reviewed-by: iklam
2022-06-13 15:14:51 +00:00
Mark Powers
17695962ac 8285263: Minor cleanup could be done in java.security
Reviewed-by: weijun
2022-06-13 15:13:56 +00:00
Alexey Ivanov
b97a4f6cdc 8288114: Update JIRA link in vcs.xml
Reviewed-by: mcimadamore, ihse, erikj
2022-06-13 14:48:52 +00:00
Martin Doerr
7aafc69a96 8288105: [PPC64] Problems with -XX:+VerifyStack
Reviewed-by: goetz, mbaesken
2022-06-13 14:42:49 +00:00
Kevin Driver
2adef6a1f8 8267860: Off-by-one bug when searching arrays in AlpnGreaseTest
Co-authored-by: Bradford Wetmore <wetmore@openjdk.org>
Reviewed-by: wetmore
2022-06-13 14:38:36 +00:00
Jie Fu
4aede33fbf 8288282: Zero-release build is broken after JDK-8279047 due to UseHeavyMonitors is read-only
Reviewed-by: dholmes, shade
2022-06-13 14:36:57 +00:00
Andrew Haley
0207d761f4 8287926: AArch64: intrinsics for divideUnsigned and remainderUnsigned methods in java.lang.Integer and java.lang.Long
Reviewed-by: adinn, ngasson
2022-06-13 14:35:43 +00:00
Emanuel Peter
33ed0365c3 8283775: better dump: VM support for graph querying in debugger with BFS traversal and node filtering
Reviewed-by: kvn, chagedorn, thartmann, rcastanedalo
2022-06-13 11:46:13 +00:00
Koichi Sakata
ac28be721f 8283612: IGV: Remove Graal module
Reviewed-by: rcastanedalo, chagedorn
2022-06-13 08:22:57 +00:00
Sibabrata Sahoo
0cb0ecf443 8209935: Test to cover CodeSource.getCodeSigners()
Reviewed-by: mullan
2022-06-13 05:17:58 +00:00
Andrey Turbanov
f1143b1b57 8287696: Avoid redundant Hashtable.containsKey call in JarVerifier.doneWithMeta
Reviewed-by: jpai, lancea
2022-06-11 10:53:35 +00:00
David Holmes
d46f404b31 8279047: Remove expired flags in JDK 20
Reviewed-by: kvn, kbarrett, alanb
2022-06-11 05:52:14 +00:00
Joe Darcy
f4b05a1168 8288173: JDK-8202449 fix causes conformance test failure : api/java_util/Random/RandomGenerator/NextFloat.html
Backport-of: da2339cf69
2022-06-11 00:44:15 +00:00
Hai-May Chao
f7a4be75fb 8288270: Tier1 build failures after JDK-8287178
Reviewed-by: weijun, jiefu
2022-06-10 23:58:15 +00:00
Weijun Wang
d4b473d890 8287178: IntegerModuloP::multiplicativeInverse returns 0 for 0
Reviewed-by: jnimeh
2022-06-10 22:25:18 +00:00
Raffaello Giulietti
da2339cf69 8288173: JDK-8202449 fix causes conformance test failure : api/java_util/Random/RandomGenerator/NextFloat.html
Reviewed-by: bpb, darcy
2022-06-10 21:01:14 +00:00
Joe Darcy
f2e10dce78 8288238: Add missing file jdk.incubator.concurrent-J.sym.txt
Reviewed-by: mikael, dcubed
2022-06-10 20:00:17 +00:00
Jesper Wilhelmsson
fa564e9d58 Merge 2022-06-10 19:53:40 +00:00
Magnus Ihse Bursie
d0c8ff8fdf 8288195: Prepare build system for GHA changes
Reviewed-by: shade, erikj
2022-06-10 19:32:30 +00:00
Joe Darcy
7e940efcbc 8286038: Update --release 19 symbol information for JDK 19 build 26
Reviewed-by: iris
2022-06-10 19:00:41 +00:00
Rajan Halade
c6dd2ab9d7 8224768: Test ActalisCA.java fails
Reviewed-by: mullan
2022-06-10 17:25:54 +00:00
Aleksey Shipilev
d9c1364dde 8288101: False build warning-as-error with GCC 9 after JDK-8214976
Reviewed-by: mdoerr, zgu, kbarrett
2022-06-10 17:07:20 +00:00
Joe Darcy
aaa897148a 8288227: Refactor annotation implementation to use pattern matching for instanceof
Reviewed-by: alanb
2022-06-10 17:05:17 +00:00
Sandhya Viswanathan
2cc40afa07 8287835: Add support for additional float/double to integral conversion for x86
Reviewed-by: kvn, jbhateja
2022-06-10 17:02:33 +00:00
Daniel D. Daugherty
0164145afc 8288222: ProblemList serviceability/jvmti/vthread/VThreadNotifyFramePopTest/VThreadNotifyFramePopTest.java
Reviewed-by: alanb, iklam
2022-06-10 15:37:20 +00:00
Jonathan Gibbons
03276a5153 8281445: Document the default value for the override-methods option
Reviewed-by: prappo
2022-06-10 15:02:59 +00:00
Rajan Halade
3ee1e60595 8288132: Update test artifacts in QuoVadis CA interop tests
Reviewed-by: mullan
2022-06-10 15:01:19 +00:00
Rajan Halade
512db0ff31 8271838: AmazonCA.java interop test fails
Reviewed-by: mullan
2022-06-10 14:49:27 +00:00
Prasanta Sadhukhan
fcb35ed40e 8287743: javax/swing/text/CSSBorder/6796710/bug6796710.java failed
Reviewed-by: aivanov
2022-06-10 13:37:24 +00:00
Andrew Haley
bdd64d6f7d 8288181: AArch64: clean up out-of-date comments
Reviewed-by: shade
2022-06-10 13:27:30 +00:00
Jie Fu
5d0e8b6981 8288203: runtime/ClassUnload/UnloadTestWithVerifyDuringGC.java fails with release VMs
Reviewed-by: shade
2022-06-10 11:40:25 +00:00
Magnus Ihse Bursie
975316e3e5 8287902: UnreadableRB case in MissingResourceCauseTest is not working reliably on Windows
Reviewed-by: naoto
2022-06-10 10:07:10 +00:00
KIRIYAMA Takuya
0901548833 8283724: Incorrect description for jtreg-failure-handler option
Reviewed-by: erikj, ihse
2022-06-10 09:19:06 +00:00
Roland Westrelin
dae4c493e4 8286197: C2: Optimize MemorySegment shape in int loop
Reviewed-by: kvn, thartmann
2022-06-10 08:17:26 +00:00
Thomas Schatzl
94b473e464 8280454: G1: ClassLoaderData verification keeps CLDs live that causes problems with VerifyDuringGC during Remark
Reviewed-by: stefank, coleenp
2022-06-10 07:57:32 +00:00
Andrey Turbanov
900d967da5 8287924: Avoid redundant HashMap.containsKey call in EnvHelp.mapToHashtable
Reviewed-by: sspitsyn, cjplummer
2022-06-09 20:29:16 +00:00
Brian Burkhalter
d482d7f5b9 8286160: (fs) Files.exists returns unexpected results with C:\pagefile.sys because it's not readable
Reviewed-by: alanb
2022-06-09 16:30:53 +00:00
Joe Darcy
edff51e5fd 8284858: Start of release updates for JDK 20
8286035: Add source 20 and target 20 to javac
8286034: Add SourceVersion.RELEASE_20

Reviewed-by: dholmes, kcr, iris, erikj, jjg, ihse
2022-06-09 16:16:49 +00:00
Conor Cleary
267144311c 8286171: HttpClient/2 : Expect:100-Continue blocks indefinitely when response is not 100
Reviewed-by: dfuchs, jpai
2022-06-09 15:03:52 +00:00
Aleksey Shipilev
59b0de6bc7 8288048: Build failure with GCC 6 after JDK-8286562
Reviewed-by: kbarrett, ysuenaga
2022-06-09 14:16:07 +00:00
Andrew Haley
db4405d0f8 8288078: linux-aarch64-optimized build fails in Tier5 after JDK-8287567
Reviewed-by: adinn, thartmann
2022-06-09 14:13:05 +00:00
Claes Redestad
7e948f7ccb 8287903: Reduce runtime of java.math microbenchmarks
Reviewed-by: ecaspole, aph
2022-06-09 13:11:15 +00:00
Harold Seigel
3fa99844a6 8287854: Dangling reference in ClassVerifier::verify_class
Reviewed-by: dholmes, coleenp
2022-06-09 12:03:54 +00:00
Nick Gasson
4285e3d6db 8288023: AArch64: disable PAC-RET when preview is enabled
Reviewed-by: rpressler, adinn
2022-06-09 11:48:46 +00:00
Martin Doerr
560e2927e3 8287738: [PPC64] jdk/incubator/vector/*VectorTests failing
Reviewed-by: kvn, goetz
2022-06-09 10:14:45 +00:00
Aleksey Shipilev
e5b56bafa9 8288040: x86: Loom: Improve cont/monitor-count helper methods
Reviewed-by: coleenp, rpressler
2022-06-09 08:16:22 +00:00
Tejesh R
5a89cb01bc 6429812: NPE after calling JTable.updateUI() when using a header renderer + XP L&F
Reviewed-by: aivanov, serb
2022-06-09 08:12:59 +00:00
Jan Lahoda
bc28baeba9 8287897: Augment src/jdk.internal.le/share/legal/jline.md with information on 4th party dependencies
Reviewed-by: vromero
2022-06-09 07:11:09 +00:00
Aleksey Shipilev
aa2fc54b61 8287493: 32-bit Windows build failure in codeBlob.cpp after JDK-8283689
Reviewed-by: kvn, zgu, alanb, jvernee
2022-06-09 05:49:39 +00:00
Aleksey Shipilev
7e1cce8cb5 8288051: Loom: Extend the compilation warning workaround in stack chunk copy
Reviewed-by: coleenp
2022-06-09 05:48:48 +00:00
wanghaomin
3419beec7f 8286847: Rotate vectors don't support byte or short
Reviewed-by: eliu, xgong, jiefu, jbhateja
2022-06-09 04:00:31 +00:00
XenoAmess
e01cd7c3ed 8284780: Need methods to create pre-sized HashSet and LinkedHashSet
Reviewed-by: naoto, bpb, dfuchs, ascarpino
2022-06-09 01:50:54 +00:00
Jie Fu
a941bc2de6 8288082: Build failure due to __clang_major__ is not defined after JDK-8214976
Reviewed-by: dholmes
2022-06-09 00:01:31 +00:00
Maurizio Cimadamore
65f0829d64 8288068: Javadoc contains spurious reference to CLinker
Reviewed-by: iris
2022-06-08 23:58:28 +00:00
Man Cao
130ce7c6b8 8288052: Small logging clarification during failed heap shrinkage
Co-authored-by: Jonathan Joo <jonathanjoo@google.com>
Reviewed-by: tschatzl
2022-06-08 20:18:28 +00:00
Ron Pressler
b623398555 8287901: Loom: Failures with -XX:+VerifyStack
Reviewed-by: pchilanomate, coleenp
2022-06-08 19:50:31 +00:00
Kim Barrett
04f02ac6b2 8214976: Warn about uses of functions replaced for portability
Reviewed-by: dholmes, tschatzl, coleenp
2022-06-08 19:16:46 +00:00
Pavel Rappo
024a240e1b 8287333: Clean up ParamTaglet and ThrowsTaglet
Reviewed-by: jjg
2022-06-08 17:37:41 +00:00
Raffaello Giulietti
c8cff1bd6f 8202449: overflow handling in Random.doubles
Reviewed-by: darcy
2022-06-08 16:28:18 +00:00
Raffaello Giulietti
c15e10fb6c 8233760: Result of BigDecimal.toString throws overflow exception on new BigDecimal(str)
Reviewed-by: darcy
2022-06-08 16:23:04 +00:00
Tim Prinzing
b92ce2699b 8281001: Class::forName(String) defaults to system class loader if the caller is null
Reviewed-by: mchung
2022-06-08 16:21:55 +00:00
yuu1127
c68419f2f7 8286990: Add compiler name to warning messages in Compiler Directive
Reviewed-by: kvn, thartmann
2022-06-08 16:05:31 +00:00
Naoto Sato
6fb84e2c91 8287541: Files.writeString fails to throw IOException for charset "windows-1252"
Reviewed-by: iris, bpb, alanb, jpai, lancea, aturbanov
2022-06-08 15:50:06 +00:00
Alexey Ivanov
a9b9831f2a 8286663: Resolve IDE warnings in WTrayIconPeer and SystemTray
Reviewed-by: prr, serb, honkar
2022-06-08 15:36:08 +00:00
Alexander Zuev
b021d37cec 8283383: [macos] a11y : Screen magnifier shows extra characters (0) at the end JButton accessibility name
Reviewed-by: serb, dmarkov
2022-06-08 14:44:41 +00:00
Christian Hagedorn
78d371266a 8287432: C2: assert(tn->in(0) != __null) failed: must have live top node
Reviewed-by: kvn, thartmann
2022-06-08 14:12:09 +00:00
Magnus Ihse Bursie
f7791ad0ea 8287895: Some langtools tests fail on msys2
Reviewed-by: jjg
2022-06-08 14:04:48 +00:00
Feilong Jiang
5ad6286b73 8287970: riscv: jdk/incubator/vector/*VectorTests failing
Reviewed-by: kvn, fyang, dlong, yadongwang
2022-06-08 12:38:48 +00:00
Alexey Pavlyutkin
a9d46f3413 8287894: Use fixed timestamp as an alternative of __DATE__ macro in jdk.jdi to make Windows build reproducible
Reviewed-by: erikj, ihse
2022-06-08 11:42:30 +00:00
Christian Hagedorn
6e3e470dac 8285965: TestScenarios.java does not check for "<!-- safepoint while printing -->" correctly
Reviewed-by: thartmann, kvn
2022-06-08 10:41:52 +00:00
Jie Fu
d959c22a95 8288000: compiler/loopopts/TestOverUnrolling2.java fails with release VMs
Reviewed-by: roland, thartmann
2022-06-08 08:08:10 +00:00
Matthias Baesken
230726ea58 8287735: Provide separate event category for dll operations
Reviewed-by: coleenp, stuefe
2022-06-08 07:21:23 +00:00
Claes Redestad
ecf00785f2 8287442: Reduce list to array conversions in java.lang.invoke.MethodHandles
Reviewed-by: jvernee
2022-06-08 07:18:29 +00:00
Claes Redestad
5c39a36641 8287522: StringConcatFactory: Add in prependers and mixers in batches
Reviewed-by: jlaskey, mchung
2022-06-08 07:17:31 +00:00
Jie Fu
47d3c2a175 8287980: Build is broken due to SuperWordMaxVectorSize when C2 is disabled after JDK-8287697
Reviewed-by: kvn
2022-06-08 06:55:33 +00:00
Roland Westrelin
bf0e625fe0 8286451: C2: assert(nb == 1) failed: only when the head is not shared
Reviewed-by: thartmann, chagedorn
2022-06-08 06:41:20 +00:00
Roland Westrelin
0960ecc407 8287700: C2 Crash running eclipse benchmark from Dacapo
Reviewed-by: chagedorn, kvn, xliu, thartmann
2022-06-08 06:36:52 +00:00
Roland Westrelin
590337e2f2 8286625: C2 fails with assert(!n->is_Store() && !n->is_LoadStore()) failed: no node with a side effect
Reviewed-by: thartmann, chagedorn
2022-06-08 06:35:28 +00:00
Daniel Jeliński
4662e06bff 8277307: Pre shared key sent under both session_ticket and pre_shared_key extensions
Reviewed-by: coffeys, ascarpino
2022-06-08 06:33:40 +00:00
Thiago Henrique Hüpner
7df48f97d2 8287353: Use snippet tag instead of pre tag in Javadoc of InterruptedException
Reviewed-by: jpai
2022-06-08 04:08:08 +00:00
Joe Darcy
32dd1eef88 8287967: Update golden test files after JDK-8287886
Reviewed-by: dholmes
2022-06-08 01:59:50 +00:00
Sandhya Viswanathan
45f1b72a6e 8287697: Limit auto vectorization to 32-byte vector on Cascade Lake
Reviewed-by: kvn, jbhateja
2022-06-08 01:05:20 +00:00
Joe Darcy
39ec58b63c 8287886: Further terminology updates to match JLS
Reviewed-by: jjg
2022-06-08 00:56:57 +00:00
Ioi Lam
68c5957b9e 8287869: -XX:+AutoCreateSharedArchive doesn't work when JDK build is switched
Reviewed-by: ccheung, dholmes
2022-06-07 23:11:33 +00:00
Sergey Bylokhov
bf439f8c93 8287876: The recently de-problemlisted TestTitledBorderLeak test is unstable
Reviewed-by: psadhukhan, prr
2022-06-07 23:10:48 +00:00
Daniel D. Daugherty
b7a34f728d 8287927: ProblemList java/awt/GraphicsDevice/DisplayModes/UnknownRefrshRateTest.java on macosx-aarch64
Reviewed-by: aivanov
2022-06-07 21:08:59 +00:00
Joe Wang
8e07839179 8285081: Improve XPath operators count accuracy
Reviewed-by: naoto, lancea
2022-06-07 20:49:45 +00:00
Alex Menkov
b12e7f1bf9 8279358: vmTestbase/nsk/jvmti/scenarios/jni_interception/JI03/ji03t003/TestDescription.java fails with usage tracker
Reviewed-by: cjplummer, lmesnik
2022-06-07 20:32:46 +00:00
Andrey Turbanov
1aa87e0078 8287148: Avoid redundant HashMap.containsKey calls in ExtendedKeyCodes.getExtendedKeyCodeForChar
Reviewed-by: prr
2022-06-07 19:39:56 +00:00
Chris Plummer
74be2d9ef6 8286983: rename jdb -trackvthreads and debug agent enumeratevthreads options and clarify "Preview Feature" nature of these options
Reviewed-by: amenkov, lmesnik, alanb
2022-06-07 19:07:34 +00:00
Leonid Mesnik
8e10c2bfc7 8287877: Exclude vmTestbase/nsk/jvmti/AttachOnDemand/attach022/TestDescription.java until JDK-8277573 is fixed
Reviewed-by: dcubed, sspitsyn
2022-06-07 18:55:33 +00:00
Ioi Lam
9ec27d0e9f 8287872: Disable concurrent execution of hotspot docker tests
Reviewed-by: mseledtsov, ccheung
2022-06-07 17:28:25 +00:00
Daniel D. Daugherty
91e6bf6791 8287919: ProblemList java/lang/CompressExpandTest.java
Reviewed-by: azvegint
2022-06-07 17:25:38 +00:00
Xin Liu
3da7e393ee 8287840: Dead copy region node blocks IfNode's fold-compares
Reviewed-by: kvn, thartmann
2022-06-07 17:12:14 +00:00
Ioi Lam
c41a283f52 8273853: Update the Java manpage for automatic CDS archive updating
Reviewed-by: ccheung, dholmes
2022-06-07 16:57:32 +00:00
Erik Gahlin
41d5809caf 8287811: JFR: jfr configure error message should not print stack trace
Reviewed-by: mgronlun
2022-06-07 16:42:11 +00:00
Joe Darcy
5d4ea9b954 8273346: Expand library mappings to IEEE 754 operations
Reviewed-by: bpb
2022-06-07 16:13:42 +00:00
Tim Prinzing
96641c0c42 8287745: jni/nullCaller/NullCallerTest.java fails with "exitValue = 1"
Reviewed-by: erikj, mchung
2022-06-07 16:02:09 +00:00
Tejesh R
67f1bd7ff1 8286620: Create regression test for verifying setMargin() of JRadioButton
Reviewed-by: jdv, honkar, aivanov
2022-06-07 15:50:16 +00:00
Jan Lahoda
062db59eeb 8286206: Missing cases for RECORD
Reviewed-by: vromero, jjg
2022-06-07 14:44:44 +00:00
Erik Gahlin
ee4a6c23ee 8287799: JFR: Less noisy platform threads with jfr print
Reviewed-by: mgronlun
2022-06-07 14:32:00 +00:00
Alexander Zvegintsev
1499e5eac0 8273573: [macos12] ActionListenerCalledTwiceTest.java fails on macOS 12
Reviewed-by: psadhukhan, serb
2022-06-07 13:57:01 +00:00
Jan Lahoda
2f62f15b09 8287808: javac generates illegal class file for pattern matching switch with records
Reviewed-by: sundar
2022-06-07 13:41:24 +00:00
Adam Sotona
905bcbe34e 8286571: java source launcher from a minimal jdk image containing jdk.compiler fails with --enable-preview option
Reviewed-by: jlahoda
2022-06-07 13:38:56 +00:00
Severin Gehwolf
8d28734ede 8287741: Fix of JDK-8287107 (unused cgv1 freezer controller) was incomplete
Reviewed-by: iklam
2022-06-07 12:28:31 +00:00
Magnus Ihse Bursie
f1dd559e20 8287896: PropertiesTest.sh fail on msys2
Reviewed-by: naoto
2022-06-07 11:53:10 +00:00
Sergey Tsypanov
4fe0ca9ec3 8287860: Revise usage of volatile in j.u.Locale
Reviewed-by: naoto
2022-06-07 11:46:06 +00:00
Jan Lahoda
bde7a7ae03 8287236: Reorganize AST related to pattern matching for switch
Reviewed-by: mcimadamore
2022-06-07 10:31:09 +00:00
Severin Gehwolf
2d8c649054 8287663: Add a regression test for JDK-8287073
Reviewed-by: iklam
2022-06-07 08:40:17 +00:00
Christian Hagedorn
b647a1259b 8286940: [IR Framework] Allow IR tests to build and use Whitebox without -DSkipWhiteBoxInstall=true
Reviewed-by: kvn, thartmann
2022-06-07 08:37:12 +00:00
Christian Hagedorn
dbf0905ff4 8286967: Unproblemlist compiler/c2/irTests/TestSkeletonPredicates.java and add additional test for JDK-8286638
Reviewed-by: kvn, thartmann
2022-06-07 08:34:37 +00:00
Xiaohong Gong
39fa52b5f7 8283667: [vectorapi] Vectorization for masked load with IOOBE with predicate feature
Reviewed-by: sviswanathan, psandoz
2022-06-07 07:41:58 +00:00
Claes Redestad
42261d752a 8287785: Reduce runtime of java.lang.invoke microbenchmarks
Reviewed-by: mchung
2022-06-07 07:25:06 +00:00
Aleksey Shipilev
b6c6cc5d99 8286360: ARM32: Fix crashes after JDK-8284161 (Virtual Threads)
Co-authored-by: Sergey Nazarkin <snazarki@openjdk.org>
Reviewed-by: dsamersoff
2022-06-07 07:24:20 +00:00
Claes Redestad
778ed1a760 8287810: Reduce runtime of java.lang microbenchmarks
Reviewed-by: mchung
2022-06-07 07:23:30 +00:00
Claes Redestad
aa6c568a06 8287798: Reduce runtime of java.lang.reflect/runtime microbenchmarks
Reviewed-by: jvernee, mchung
2022-06-07 07:22:12 +00:00
Aleksey Shipilev
956d44d2da 8287071: Loom: Cleanup x86_64 gen_continuation_enter
Reviewed-by: rpressler, pchilanomate, kvn
2022-06-07 06:55:35 +00:00
Hannes Wallnöfer
f6a79e340f 8287674: CSS improvements for summary lists
Reviewed-by: jjg
2022-06-07 06:32:39 +00:00
Xiaohong Gong
ef7cc2105c 8286279: [vectorapi] Only check index of masked lanes if offset is out of array boundary for masked store
Reviewed-by: psandoz
2022-06-07 01:16:52 +00:00
Sergey Bylokhov
645be42f76 8287824: The MTPerLineTransformValidation tests has a typo in the @run tag
Reviewed-by: iris, prr
2022-06-06 23:17:25 +00:00
Mandy Chung
a50b06e851 8287867: Bad merge of jdk/test/lib/util/ForceGC.java causing test compilation error
Reviewed-by: dcubed
2022-06-06 22:33:18 +00:00
Alexey Semenyuk
c37c8e5d34 8250950: Allow per-user and system wide configuration of a jpackaged app
Reviewed-by: almatvee
2022-06-06 22:17:59 +00:00
Calvin Cheung
124ba45fb8 8287101: CDS should check for file truncation for all regions
Reviewed-by: iklam, coleenp
2022-06-06 21:56:01 +00:00
Joe Darcy
0e06bf3b04 8287838: Update Float and Double to use snippets
Reviewed-by: alanb
2022-06-06 21:26:25 +00:00
Sergey Bylokhov
a277590c89 8287761: Make the logging of J2DBench stable
Reviewed-by: aghaisas, prr
2022-06-06 21:25:14 +00:00
Alisen Chung
5264881a15 8286481: Exception printed to stdout on Windows when storing transparent image in clipboard
Reviewed-by: prr, dnguyen
2022-06-06 21:22:38 +00:00
Andrey Turbanov
e94b05c720 8285285: Avoid redundant allocations in WindowsPreferences
Reviewed-by: jpai
2022-06-06 21:15:37 +00:00
Andrey Turbanov
3eb49fecea 8287766: Unnecessary Vector usage in LdapClient
Reviewed-by: dfuchs, vtewari, aefimov
2022-06-06 21:13:29 +00:00
Mandy Chung
2e332c2760 8287671: Adjust ForceGC to invoke System::gc fewer times for negative case
Reviewed-by: rriggs, bchristi, xuelei
2022-06-06 21:11:37 +00:00
KIRIYAMA Takuya
c328f8fa2a 8287764: runtime/cds/serviceability/ReplaceCriticalClasses failed on localized Windows
Reviewed-by: iklam
2022-06-06 21:08:53 +00:00
Hannes Wallnöfer
4d6fb51551 8287524: Improve checkboxes to select releases on deprecated API page
Reviewed-by: jjg
2022-06-06 11:11:43 +00:00
Aleksey Shipilev
0d1a3053cd 8287732: jdk/jshell/ToolEnablePreviewTest.java fails on x86_32 after JDK-8287496
Reviewed-by: alanb, kvn
2022-06-06 05:29:30 +00:00
Fei Gao
24fe8ad74c 8283307: Vectorize unsigned shift right on signed subword types
Reviewed-by: jiefu, pli, sviswanathan, kvn
2022-06-06 02:02:10 +00:00
Jatin Bhateja
f347ff9986 8283894: Intrinsify compress and expand bits on x86
Reviewed-by: psandoz, sviswanathan, jrose, kvn
2022-06-06 00:37:54 +00:00
Richard Reingruber
ebc012ece2 8287205: generate_cont_thaw generates dead code after jump to exception handler
Reviewed-by: shade, kvn
2022-06-05 19:30:08 +00:00
Nikita Gubarkov
8c460b043e 8287609: macOS: SIGSEGV at [CoreFoundation] CFArrayGetCount / sun.font.CFont.getTableBytesNative
Reviewed-by: prr
2022-06-05 15:34:47 +00:00
Daniel D. Daugherty
3df4b034fb 8287837: ProblemList java/lang/ref/OOMEInReferenceHandler.java in -Xcomp
Reviewed-by: rriggs
2022-06-05 14:08:55 +00:00
Pavel Rappo
a6fc485a22 8287753: [spelling] close well-established compounds
Reviewed-by: jjg
2022-06-04 15:55:43 +00:00
Jie Fu
a113e166e9 8287830: gtest fails to compile after JDK-8287661
Reviewed-by: shade
2022-06-04 06:47:29 +00:00
Alan Bateman
e4e1e8f66c 8284199: Implementation of Structured Concurrency (Incubator)
Co-authored-by: Ron Pressler <rpressler@openjdk.org>
Co-authored-by: Alan Bateman <alanb@openjdk.org>
Co-authored-by: Brian Goetz <briangoetz@openjdk.org>
Co-authored-by: Paul Sandoz <psandoz@openjdk.org>
Reviewed-by: psandoz, mcimadamore, darcy
2022-06-04 06:15:49 +00:00
tqxia
308c068b36 8287558: Remove remset coarsening stats during g1 remset summary printing
Reviewed-by: tschatzl, iwalulya
2022-06-04 04:36:03 +00:00
Manukumar V S
d76c1089ef 8286772: java/awt/dnd/DropTargetInInternalFrameTest/DropTargetInInternalFrameTest.html times out and fails in Windows
Reviewed-by: prr
2022-06-04 03:00:44 +00:00
Jie Fu
005a330387 8287826: javax/accessibility/4702233/AccessiblePropertiesTest.java fails to compile
Reviewed-by: dcubed
2022-06-04 02:49:52 +00:00
Daniel D. Daugherty
e2cfe2e14a 8231491: JDI tc02x004 failed again due to wrong # of breakpoints
Reviewed-by: cjplummer
2022-06-03 22:17:16 +00:00
Artem Semenov
b6cdfd685d 8287740: NSAccessibilityShowMenuAction not working for text editors
Reviewed-by: kizune, serb
2022-06-03 21:29:24 +00:00
Srinivas Mandalika
25e9901aea 8285305: Create an automated test for JDK-4495286
Reviewed-by: serb
2022-06-03 21:28:19 +00:00
Srinivas Mandalika
6f526e1bc3 8285373: Create an automated test for JDK-4702233
Reviewed-by: serb
2022-06-03 21:27:07 +00:00
Martin Desruisseaux
a7e07fdbc1 8287102: ImageReaderSpi.canDecodeInput() for standard plugins should return false if a stream is too short
Reviewed-by: prr
2022-06-03 21:16:21 +00:00
Alexander Matveev
7a0c8b14aa 8286850: [macos] Add support for signing user provided app image
Reviewed-by: asemenyuk
2022-06-03 20:27:58 +00:00
Quan Anh Mai
0b35460fa0 8283694: Improve bit manipulation and boolean to integer conversion operations on x86_64
Reviewed-by: kvn, dlong
2022-06-03 20:19:37 +00:00
Sandhya Viswanathan
a0219da966 8287517: C2: assert(vlen_in_bytes == 64) failed: 2
Reviewed-by: kvn, jiefu, chagedorn, fgao
2022-06-03 17:59:40 +00:00
Aleksey Shipilev
ce5ae51773 8287637: Loom: Mismatched VirtualThread::state accessor
Reviewed-by: alanb
2022-06-03 16:43:45 +00:00
Jonathan Gibbons
59e9700c4e 8252717: Integrate/merge legacy standard doclet diagnostics and doclint
Reviewed-by: erikj, prappo
2022-06-03 16:17:23 +00:00
Xue-Lei Andrew Fan
28c112fcf0 8287685: [BACKOUT] JDK-8287384 Speed up jdk.test.lib.util.ForceGC
Reviewed-by: dcubed
2022-06-03 15:47:19 +00:00
Zhengyu Gu
34bb0a5e6e 8287734: Shenandoah: Consolidate marking closures
Reviewed-by: shade
2022-06-03 12:32:04 +00:00
Aleksey Shipilev
33b9d77065 8287729: Loom: Check alternative implementation on x86_32
Reviewed-by: alanb, zgu
2022-06-03 12:19:25 +00:00
Zhengyu Gu
a75299c3ab 8287686: Add assertion to ensure that disarm value offset < 128
Reviewed-by: tschatzl, shade
2022-06-03 12:18:36 +00:00
Tejesh R
407abf5d65 8233477: [Win LAF]The tooltip doesn't display correctly in Win LAF
Reviewed-by: psadhukhan, prr, honkar
2022-06-03 07:46:17 +00:00
Aleksey Shipilev
625821dae7 8287661: Fix and improve BitMap::print_on(outputStream*)
Reviewed-by: stefank
2022-06-03 07:24:42 +00:00
Ioi Lam
b544b8b7d4 8276789: Support C++ lambda in ResourceHashtable::iterate
Reviewed-by: stefank, coleenp
2022-06-03 05:59:32 +00:00
Maurizio Cimadamore
ba9ee8cb28 8287748: Fix issues in java.lang.foreign package javadoc
Reviewed-by: jvernee
2022-06-03 00:17:45 +00:00
Jonathan Gibbons
deb06539b0 8287337: SnippetUtils should throw exceptions if snippets not found
Reviewed-by: hannesw
2022-06-02 23:53:23 +00:00
Alexey Ushakov
cbaeb00fce 8287600: AA Ovals not rendered under metal
Reviewed-by: aghaisas, prr
2022-06-02 23:51:01 +00:00
Phil Race
2776ff3b03 8276266: Clean up incorrect client-libs ProblemList.txt entries
Reviewed-by: serb, kizune
2022-06-02 22:44:39 +00:00
Alexander Matveev
409157d2af 8287125: [macos] Multiple jpackage tests fail/timeout on same host
Reviewed-by: asemenyuk
2022-06-02 21:44:51 +00:00
Xiaolin Zheng
b5a646ee6c 8287425: Remove unnecessary register push for MacroAssembler::check_klass_subtype_slow_path
Co-authored-by: Wei Kuai <kuaiwei.kw@alibaba-inc.com>
Reviewed-by: kvn
2022-06-02 20:31:26 +00:00
Andrey Turbanov
26048ea21e 8287695: Use String.contains() instead of String.indexOf() in jdk.hotspot.agent
Reviewed-by: cjplummer
2022-06-02 19:28:20 +00:00
Mandy Chung
37e1835be7 8287746: ProblemList jni/nullCaller/NullCallerTest.java
Reviewed-by: alanb, dcubed
2022-06-02 19:13:16 +00:00
Naoto Sato
26d24263c7 8287340: Refactor old code using StringTokenizer in locale related code
Reviewed-by: iris, joehw
2022-06-02 18:35:20 +00:00
Man Cao
ccec5d1e85 8287704: Small logging clarification about shrunk bytes after heap shrinkage
Co-authored-by: Jonathan Joo <jonathanjoo@google.com>
Reviewed-by: tschatzl
2022-06-02 18:12:10 +00:00
vamsi-parasa
7f44f572ea 8285868: x86 intrinsics for floating point method isInfinite
Reviewed-by: kvn, jbhateja
2022-06-02 17:42:42 +00:00
Brian Burkhalter
13596cdf69 8287097: (fs) Files::copy requires an undocumented permission when copying from the default file system to a non-default file system
Reviewed-by: chegar, alanb
2022-06-02 17:36:25 +00:00
Andrew Haley
49e24f0cd8 8287567: AArch64: Implement post-call NOPs
Reviewed-by: adinn, rbackman, dlong
2022-06-02 17:31:32 +00:00
Thomas Schatzl
1fcbaa4116 8278598: AlignmentReserve is repeatedly reinitialized
Reviewed-by: ayang, iwalulya
2022-06-02 17:16:24 +00:00
Tim Prinzing
e51ca1dee3 8287171: Refactor null caller tests to a single directory
Reviewed-by: ihse, mchung
2022-06-02 16:45:05 +00:00
Aleksey Shipilev
3cfd38caf1 8287726: Fix JVMTI tests with "requires vm.continuations" after JDK-8287496
Reviewed-by: alanb, rehn, lmesnik
2022-06-02 15:58:08 +00:00
Jonathan Gibbons
c78392db4d 8287606: standardize spelling of subtype and supertype etc in comments
Reviewed-by: prappo
2022-06-02 15:12:09 +00:00
Patricio Chilano Mateo
5acac2238f 8286830: ~HandshakeState should not touch oops
Reviewed-by: dholmes, rehn
2022-06-02 13:32:25 +00:00
Magnus Ihse Bursie
bddef71518 8287724: Fix various issues with msys2
Reviewed-by: erikj
2022-06-02 12:49:35 +00:00
Alan Bateman
6ff2d89ea1 8287496: Alternative virtual thread implementation that maps to OS thread
Reviewed-by: rehn, mchung
2022-06-02 09:02:37 +00:00
Emanuel Peter
199832a710 8283466: C2: missing skeleton predicates in peeled loop
Reviewed-by: roland, chagedorn
2022-06-02 06:49:23 +00:00
Adam Sotona
a82417fa19 8233269: Improve handling of JAVA_ARGS
Reviewed-by: erikj
2022-06-02 06:20:36 +00:00
Prasanta Sadhukhan
d7341ae42e 8286846: test/jdk/javax/swing/plaf/aqua/CustomComboBoxFocusTest.java fails on mac aarch64
Reviewed-by: tr, prr, honkar
2022-06-02 03:40:52 +00:00
Prasanta Sadhukhan
07d24509a6 8213531: Test javax/swing/border/TestTitledBorderLeak.java fails
Reviewed-by: prr
2022-06-02 03:39:39 +00:00
liach
6030c0e403 8287118: Use monospace font for annotation default values
Reviewed-by: hannesw, jjg
2022-06-01 23:05:51 +00:00
Raffaello Giulietti
72bcf2aa03 4511638: Double.toString(double) sometimes produces incorrect results
Reviewed-by: aturbanov, darcy, bpb
2022-06-01 21:53:54 +00:00
Ana Marsh
2f19144249 8282024: add EscapeAnalysis statistics under PrintOptoStatistics
Reviewed-by: xliu, kvn
2022-06-01 20:19:42 +00:00
Dean Long
cdb476888a 8287396: LIR_Opr::vreg_number() and data() can return negative number
Reviewed-by: kvn, chagedorn
2022-06-01 18:28:21 +00:00
Andrey Turbanov
4caf1ef389 8287390: Cleanup Map usage in AuthenticationInfo.requestAuthentication
Reviewed-by: dfuchs, jpai
2022-06-01 18:15:59 +00:00
Andrey Turbanov
27ad1d5549 8287602: (fs) Avoid redundant HashMap.containsKey call in MimeTypesFileTypeDetector.putIfAbsent
Reviewed-by: bpb, jpai, alanb
2022-06-01 18:14:25 +00:00
Zhengyu Gu
239ac2a5d4 8286829: Shenandoah: fix Shenandoah Loom support
Reviewed-by: shade
2022-06-01 17:01:22 +00:00
Ioi Lam
67ecd30327 8287398: Allow concurrent execution of hotspot docker tests
Reviewed-by: shade, mseledtsov, sgehwolf
2022-06-01 15:51:47 +00:00
Brian Burkhalter
8071b2311c 8287237: (fs) Files.probeContentType returns null if filename contains hash mark on Linux
Reviewed-by: rriggs, jpai, vtewari
2022-06-01 15:15:53 +00:00
Aleksey Shipilev
774928f944 8287625: ProblemList jdk/jshell/HighlightUITest.java on all platforms
Reviewed-by: jlahoda
2022-06-01 14:57:36 +00:00
Yasumasa Suenaga
e3791ecfe4 8287491: compiler/jvmci/errors/TestInvalidDebugInfo.java fails new assert: assert((uint)t < T_CONFLICT + 1) failed: invalid type #
Reviewed-by: kvn, dnsimon
2022-06-01 14:41:23 +00:00
Ron Pressler
f8eb7a892f 8287512: continuationEntry.hpp has incomplete definitions
Reviewed-by: coleenp, pchilanomate
2022-06-01 14:11:55 +00:00
Ron Pressler
b2b4ee212f 8287233: Crash in Continuation.enterSpecial: stop: tried to execute native method as non-native
Reviewed-by: dholmes, pchilanomate
2022-06-01 14:10:10 +00:00
Sergey Tsypanov
168b226b0f 8282662: Use List.of() factory method to reduce memory consumption
Reviewed-by: redestad, rriggs
2022-06-01 13:31:36 +00:00
Alexey Ushakov
48f19e43c5 8287453: RenderPerfTest incorrectly measures performance
Reviewed-by: prr
2022-06-01 09:48:15 +00:00
Feilong Jiang
0ef3d8551d 8287552: riscv: Fix comment typo in li64
Co-authored-by: Dingli Zhang <dingli@iscas.ac.cn>
Reviewed-by: fyang
2022-06-01 09:29:51 +00:00
Magnus Ihse Bursie
e0e15def24 8287366: Improve test failure reporting in GHA
Reviewed-by: clanger
2022-06-01 09:03:24 +00:00
Adam Sotona
7846971381 8236569: -Xss not multiple of 4K does not work for the main thread on macOS
Reviewed-by: dholmes, stuefe
2022-06-01 06:13:29 +00:00
Aleksey Shipilev
7159976335 8287520: Shrink x86_32 problemlists after JDK-8287437
Reviewed-by: alanb
2022-06-01 06:02:54 +00:00
Jaikiran Pai
3deb58a89a 8287318: ConcurrentModificationException in sun.net.httpserver.ServerImpl$Dispatcher
Reviewed-by: dfuchs
2022-06-01 03:55:55 +00:00
Jonathan Gibbons
8fc201e5bb 8285939: javadoc java.lang.Record should not have "Direct Known Subclasses:" section
Reviewed-by: prappo, hannesw
2022-05-31 22:59:59 +00:00
Andrey Turbanov
f5bbade9e4 8287544: Replace uses of StringBuffer with StringBuilder in java.naming
Reviewed-by: rriggs, aefimov, vtewari
2022-05-31 21:07:33 +00:00
Phil Race
97bd4c255a 8286159: Memory leak in getAllConfigs of awt_GraphicsEnv.c:585
Reviewed-by: psadhukhan, aivanov
2022-05-31 20:14:52 +00:00
lawrence.andrews
8db5247ebc 8282771: Create test case for JDK-8262981
Reviewed-by: kizune
2022-05-31 19:39:23 +00:00
Srinivas Mandalika
cfdbde11f0 8282778: Create a regression test for JDK-4699544
Reviewed-by: kizune, serb
2022-05-31 19:38:23 +00:00
Srinivas Mandalika
8df5f1058f 8282857: Create a regression test for JDK-4702690
Reviewed-by: kizune, serb
2022-05-31 19:37:09 +00:00
liach
e0382c5523 8285401: Proxy class initializer should use 3-arg Class.forName to avoid unnecessary class initialization
Reviewed-by: rriggs, mchung
2022-05-31 18:30:39 +00:00
liach
37a513003c 8287064: Modernize ProxyGenerator.PrimitiveTypeInfo
Reviewed-by: rriggs, mchung
2022-05-31 18:29:07 +00:00
Xue-Lei Andrew Fan
d5b6c7bde1 8287384: Speed up jdk.test.lib.util.ForceGC
Reviewed-by: rriggs, bchristi, dfuchs, mchung
2022-05-31 17:44:54 +00:00
Jatin Bhateja
6f6486e977 8284960: Integration of JEP 426: Vector API (Fourth Incubator)
Co-authored-by: Jatin Bhateja <jbhateja@openjdk.org>
Co-authored-by: Paul Sandoz <psandoz@openjdk.org>
Co-authored-by: Sandhya Viswanathan <sviswanathan@openjdk.org>
Co-authored-by: Smita Kamath <svkamath@openjdk.org>
Co-authored-by: Joshua Zhu <jzhu@openjdk.org>
Co-authored-by: Xiaohong Gong <xgong@openjdk.org>
Co-authored-by: John R Rose <jrose@openjdk.org>
Co-authored-by: Eric Liu <eliu@openjdk.org>
Co-authored-by: Ningsheng Jian <njian@openjdk.org>
Reviewed-by: ngasson, vlivanov, mcimadamore, jlahoda, kvn
2022-05-31 16:02:09 +00:00
Jan Lahoda
171a7cdd5d 8286895: InternalError: Exception during analyze
Reviewed-by: vromero
2022-05-31 15:01:38 +00:00
Aleksey Shipilev
1b44f6c483 8287526: java/nio/channels/FileChannel/LargeMapTest.java fails on 32-bit systems
Reviewed-by: alanb, stuefe
2022-05-31 13:48:18 +00:00
Jan Lahoda
7ef6993576 8276836: Error in javac caused by switch expression without result expressions: Internal error: stack sim error
Reviewed-by: vromero
2022-05-31 11:04:50 +00:00
Dmitry Kulikov
c6e0416495 8282863: java/awt/FullScreen/FullscreenWindowProps/FullscreenWindowProps.java fails on Windows 10 with HiDPI screen
Reviewed-by: serb, aivanov
2022-05-31 10:14:52 +00:00
Roberto Castañeda Lozano
6e55a72f25 8287438: IGV: scheduling crashes on non-block-start Region with multiple predecessors
Reviewed-by: kvn, chagedorn
2022-05-31 08:38:11 +00:00
Roberto Castañeda Lozano
8f59422d35 8285558: IGV: scheduling crashes on control-unreachable CFG nodes
Reviewed-by: kvn, chagedorn
2022-05-31 06:59:49 +00:00
Andrey Turbanov
8a9aeff18c 8287497: Use String.contains() instead of String.indexOf() in java.naming
Reviewed-by: aefimov, rriggs, jpai
2022-05-31 06:59:03 +00:00
Johan Sjölén
b2ba9fc9f6 8286180: Enable construction of LogStreamImpl from LogMessageImpl
Reviewed-by: dholmes, stefank
2022-05-30 16:53:35 +00:00
Maurizio Cimadamore
0c420e03ae 8287430: MemorySessionImpl::addOrCleanupIfFail does not rethrow exceptions
Reviewed-by: jvernee
2022-05-30 15:40:06 +00:00
Christoph Langer
1606d5545b 8286855: javac error on invalid jar should only print filename
Reviewed-by: jpai, mdoerr
2022-05-30 15:01:17 +00:00
Christoph Langer
f086d945c3 8287378: GHA: Update cygwin to fix issues in langtools tests on Windows
Reviewed-by: aturbanov, shade
2022-05-30 14:59:51 +00:00
Thomas Schatzl
73ba7fdce8 8287157: Clean up G1Policy::next_gc_should_be_mixed()
Reviewed-by: lkorinth
2022-05-30 09:17:12 +00:00
Martin Doerr
b1b9674663 8287437: Temporarily disable Continuations::enabled() for platforms which don't have an implementation, yet
Reviewed-by: shade, alanb, rrich
2022-05-30 09:00:50 +00:00
Martin Doerr
eb8d067b56 8287433: [PPC64] g1_write_barrier_pre needs extension for Loom
Reviewed-by: rrich, stuefe
2022-05-30 08:57:58 +00:00
Nick Gasson
d8331737ad 8286711: AArch64: serviceability agent tests fail with PAC enabled
Reviewed-by: dholmes, cjplummer
2022-05-30 08:12:05 +00:00
Nick Gasson
19fb8ab8b9 8287195: AArch64: Client VM build failure after JDK-8283689
Reviewed-by: jvernee, adinn
2022-05-30 08:09:28 +00:00
Zhuojun Miao
1b9987cb08 8287288: Fix some typos in C1
Reviewed-by: aph, dholmes, dlong, chagedorn
2022-05-30 07:52:49 +00:00
Xiaolin Zheng
447ae00616 8287418: riscv: Fix correctness issue of MacroAssembler::movptr
Reviewed-by: fjiang, yadongwang, fyang
2022-05-30 07:45:50 +00:00
Yasumasa Suenaga
a27ba1a3db 8287363: null pointer should use NULL instead of 0
Reviewed-by: kbarrett, stuefe, alanb
2022-05-30 07:02:07 +00:00
Maxim Kartashev
744b822ab1 8287073: NPE from CgroupV2Subsystem.getInstance()
Reviewed-by: vkempik, iklam
2022-05-30 06:18:47 +00:00
jeremy
5848a60c01 8286093: java/awt/geom/Path2D/UnitTest.java failed with "RuntimeException: 2D bounds too small"
Reviewed-by: prr
2022-05-30 06:06:42 +00:00
Anthony Vanelverdinghe
3d2d039538 8287440: Typo in package-info.java of java.util.random
Reviewed-by: darcy, iris, jpai
2022-05-29 14:26:19 +00:00
Erik Gahlin
36350bf1be 8287484: JFR: Seal RecordedObject
Reviewed-by: mgronlun
2022-05-29 13:56:33 +00:00
Erik Gahlin
a6e2e223ea 8285008: JFR: jdk/jfr/jmx/streaming/TestClose.java failed with "Exception: Expected repository to be empty"
Reviewed-by: mgronlun
2022-05-28 17:22:10 +00:00
David Holmes
2c461acfeb 8287492: ProblemList compiler/jvmci/errors/TestInvalidDebugInfo.java
Reviewed-by: mikael, kvn
2022-05-28 06:12:52 +00:00
Ichiroh Takiguchi
66340372d5 8287362: FieldAccessWatch testcase failed on AIX platform
Reviewed-by: cjplummer, mdoerr
2022-05-28 05:33:08 +00:00
Yasumasa Suenaga
410a25d59a 8286562: GCC 12 reports some compiler warnings
Reviewed-by: ihse, kbarrett, prr
2022-05-28 02:09:05 +00:00
Joe Wang
ed8e8ac289 8284400: Improve XPath exception handling
Reviewed-by: lancea, naoto
2022-05-27 21:47:05 +00:00
Vladimir Ivanov
d3e781de08 8287223: C1: Inlining attempt through MH::invokeBasic() with null receiver
Reviewed-by: kvn
2022-05-27 21:23:52 +00:00
Erik Gahlin
0df4748216 8287463: JFR: Disable TestDevNull.java on Windows
Reviewed-by: mgronlun
2022-05-27 21:02:53 +00:00
Brian Burkhalter
6520843f86 8287003: InputStreamReader::read() can return zero despite writing a char in the buffer
Reviewed-by: jpai, rriggs
2022-05-27 15:23:01 +00:00
Erik Gahlin
63eb0b7e86 8282947: JFR: Dump on shutdown live-locks in some conditions
Reviewed-by: mgronlun
2022-05-27 13:00:02 +00:00
Zhengyu Gu
f2bc447659 8271406: Kitchensink failed with "assert(early->flag() == current->flag()) failed: Should be the same"
Reviewed-by: coleenp, dholmes, stuefe
2022-05-27 12:16:04 +00:00
Claes Redestad
be93318576 8287292: Improve TransformKey to pack more kinds of transforms efficiently
Reviewed-by: jlaskey, jvernee, mchung
2022-05-27 12:10:40 +00:00
Hannes Wallnöfer
777f813e9b 8268422: Find a better way to select releases in "New API" page
Reviewed-by: jjg
2022-05-27 11:09:26 +00:00
Andrew Dinn
22e2067349 8282182: Document algorithm used to encode aarch64 logical immediate operands.
Reviewed-by: ngasson, aph
2022-05-27 10:09:53 +00:00
Hannes Wallnöfer
37ecbb461c 8277420: Provide a way to copy the hyperlink to a doc element to the clipboard
Reviewed-by: prappo
2022-05-27 09:08:02 +00:00
Leonid Mesnik
176bb23de1 8287200: Test java/lang/management/ThreadMXBean/VirtualThreadDeadlocks.java timed out after JDK-8287103
Reviewed-by: kevinw, cjplummer, alanb
2022-05-27 05:29:25 +00:00
Ioi Lam
ec97da93c1 8287352: DockerTestUtils::execute shows incorrect elapsed time
Reviewed-by: stuefe, mseledtsov
2022-05-27 04:32:05 +00:00
Evgeny Astigeevich
140419fe0e 8286058: AArch64: clarify types of calls
Reviewed-by: kvn, aph
2022-05-27 00:34:34 +00:00
Leonid Mesnik
6a33974a6b 8286737: Test vmTestbase/gc/gctests/WeakReference/weak006/weak006.java fails: Last soft reference has not been cleared
Reviewed-by: ayang
2022-05-26 22:36:43 +00:00
Andrey Turbanov
295be6f10f 8287285: Avoid redundant HashMap.containsKey call in java.util.zip.ZipFile.Source.get
Reviewed-by: jpai, alanb
2022-05-26 20:32:56 +00:00
Brian Burkhalter
7cb368b34d 8286709: (fc) FileChannel/FileChannelImpl cleanup
Reviewed-by: alanb
2022-05-26 18:02:02 +00:00
Xue-Lei Andrew Fan
7eb15593e1 8286045: Use ForceGC for cleaner test cases
Reviewed-by: rriggs
2022-05-26 17:59:28 +00:00
Christoph Langer
e44465d4d6 8287336: GHA: Workflows break on patch versions
Reviewed-by: shade
2022-05-26 15:54:08 +00:00
Naoto Sato
c10749a6a7 8287187: Utilize HashMap.newHashMap() in CLDRConverter
Reviewed-by: joehw
2022-05-26 15:51:37 +00:00
Sean Mullan
f235955eef 8287246: DSAKeyValue should check for missing params instead of relying on KeyFactory provider
Reviewed-by: weijun
2022-05-26 12:36:21 +00:00
Maurizio Cimadamore
f58c9a659b 8287244: Add bound check in indexed memory access var handle
Reviewed-by: psandoz, jvernee
2022-05-26 08:34:49 +00:00
Prasanta Sadhukhan
f710393e35 8257810: Only First page are printed in JTable.scrollRectToVisible
Reviewed-by: aivanov
2022-05-26 06:32:28 +00:00
Ioi Lam
704b9a66bb 8287107: CgroupSubsystemFactory.setCgroupV2Path asserts with freezer controller
Reviewed-by: mseledtsov, sgehwolf
2022-05-26 04:16:45 +00:00
Serguei Spitsyn
94811c0dc7 8286960: Test serviceability/jvmti/vthread/SuspendResume2 crashed: missing ThreadsListHandle in calling context
Reviewed-by: dholmes, pchilanomate, amenkov
2022-05-26 00:29:31 +00:00
Pavel Rappo
3d6d7b7e73 8287338: tools/javac/api/snippets/TestJavaxToolsSnippets.java failing tier1 on all platforms
Reviewed-by: jjg
2022-05-25 19:44:12 +00:00
Jonathan Gibbons
7156f98e32 8279513: jdk/javadoc/doclet/testDocletExample/TestDocletExample.java fails after 8278795
Reviewed-by: prappo
2022-05-25 17:45:02 +00:00
Jonathan Gibbons
f786e2a22f 8284037: Snippet-files subdirectory not automatically detected when in unnamed package
Reviewed-by: prappo
2022-05-25 17:41:58 +00:00
Brian J. Stafford
c6743489d2 8263075: C2: simplify anti-dependence check in PhaseCFG::implicit_null_check()
Reviewed-by: kvn, thartmann, rcastanedalo
2022-05-25 17:28:27 +00:00
Gerard Ziemski
0b3d409540 8261768: SelfDestructTimer should accept seconds
Reviewed-by: dholmes, stuefe
2022-05-25 17:25:28 +00:00
Phil Race
bc0379ea1a 8275303: sun/java2d/pipe/InterpolationQualityTest.java fails with D3D basic render driver
Reviewed-by: serb, psadhukhan
2022-05-25 16:31:50 +00:00
Joe Darcy
0b8dd4ac82 8284966: Update SourceVersion.RELEASE_19 description for language changes
Reviewed-by: iris, jjg
2022-05-25 16:25:44 +00:00
Thomas Schatzl
e990fec195 8287089: G1CollectedHeap::is_in_cset() can be const methods
Reviewed-by: ayang, kbarrett
2022-05-25 14:40:14 +00:00
Jaikiran Pai
81d7eafd91 8287104: AddressChangeListener thread inherits CCL and can cause memory leak for webapp-servers
Reviewed-by: aefimov, dfuchs
2022-05-25 14:32:35 +00:00
Tobias Holenstein
796494d0fe 8284944: assert(cnt++ < 40) failed: infinite cycle in loop optimization
Reviewed-by: kvn, chagedorn
2022-05-25 13:48:19 +00:00
Adam Sotona
e534c133af 8286398: Address possibly lossy conversions in jdk.internal.le
Reviewed-by: jlahoda
2022-05-25 12:36:50 +00:00
Erik Gahlin
e21b527b18 8228990: JFR: TestNetworkUtilizationEvent.java expects 2+ Network interfaces on Linux but finding 1
Reviewed-by: mgronlun
2022-05-25 12:14:20 +00:00
Jan Lahoda
e9bddc18ab 8262889: Compiler implementation for Record Patterns
Co-authored-by: Brian Goetz <briangoetz@openjdk.org>
Co-authored-by: Jan Lahoda <jlahoda@openjdk.org>
Co-authored-by: Aggelos Biboudis <abimpoudis@openjdk.org>
Reviewed-by: mcimadamore, vromero
2022-05-25 11:56:24 +00:00
Alexander Zuev
ebfa27b9f0 8284690: [macos] VoiceOver : Getting java.lang.IllegalArgumentException: Invalid location on Editable JComboBox
Reviewed-by: serb
2022-05-25 10:39:17 +00:00
Thomas Schatzl
e32377e456 8286304: Removal of diagnostic flag GCParallelVerificationEnabled
Reviewed-by: kbarrett, ayang
2022-05-25 10:29:31 +00:00
Maurizio Cimadamore
e1f140d270 8287206: Use WrongThreadException for confinement errors
Reviewed-by: alanb, darcy, mchung
2022-05-25 09:50:55 +00:00
Andrew Haley
e17118aa8a 8272791: java -XX:BlockZeroingLowLimit=1 crashes after 8270947
Reviewed-by: shade, kvn
2022-05-25 09:03:13 +00:00
Christoph Langer
f7a37f5886 8287202: GHA: Add macOS aarch64 to the list of default platforms for workflow_dispatch event
Reviewed-by: ihse, shade
2022-05-25 08:15:39 +00:00
Magnus Ihse Bursie
d889319a86 8287254: Clean up Xcode sysroot logic
Reviewed-by: erikj
2022-05-25 08:06:23 +00:00
Andrew Haley
593d2b7dab 8287091: aarch64 : guarantee(val < (1ULL << nbits)) failed: Field too big for insn
Reviewed-by: ngasson, shade
2022-05-25 07:26:21 +00:00
Andrey Turbanov
65850431ed 8287181: Avoid redundant HashMap.containsKey calls in InternalLocaleBuilder.setExtension
Reviewed-by: naoto, rriggs
2022-05-25 07:23:56 +00:00
Serguei Spitsyn
a0cccb5479 8286490: JvmtiEventControllerPrivate::set_event_callbacks CLEARING_MASK computation is incorrect
Reviewed-by: jbachorik, lmesnik, amenkov
2022-05-25 06:24:39 +00:00
Brian Burkhalter
742644e291 8287263: java/nio/channels/FileChannel/LargeMapTest.java times out on Windows
Reviewed-by: lancea
2022-05-25 02:10:52 +00:00
Valerie Peng
d792cbcc06 8286211: Update PCSC-Lite for Suse Linux to 1.9.5
Reviewed-by: weijun
2022-05-24 21:32:11 +00:00
Alexey Ivanov
9b7e42c0f0 8284209: Replace remaining usages of 'a the' in source code
Reviewed-by: lancea, wetmore, dfuchs, iris, jjg, ihse
2022-05-24 20:08:11 +00:00
Mark Powers
6cc4bb1169 6725221: Standardize obtaining boolean properties with defaults
Reviewed-by: prr, rriggs
2022-05-24 18:16:07 +00:00
Zhengyu Gu
194bc08a89 8287249: Zero: Missing BarrierSetNMethod::arm() method
Reviewed-by: shade
2022-05-24 18:12:03 +00:00
Phil Race
25669bb667 8275170: Some jtreg sound tests should be marked with sound keyword
Reviewed-by: kizune, serb, aivanov
2022-05-24 17:53:43 +00:00
Alexey Semenyuk
45180633d3 8281682: Redundant .ico files in Windows app-image cause unnecessary bloat
Reviewed-by: almatvee
2022-05-24 16:33:45 +00:00
Aleksey Shipilev
fdece9ac71 8287169: compiler/arguments/TestCompileThresholdScaling.java fails on x86_32 after JDK-8287052
Reviewed-by: kvn, dlong
2022-05-24 16:31:10 +00:00
Tyler Steele
25080e0c3a 8286891: thread_local causes undefined symbol error with XL C
Reviewed-by: mdoerr, mbaesken, jvernee
2022-05-24 16:24:35 +00:00
Lance Andersen
a10c5597d9 8287162: (zipfs) Performance regression related to support for POSIX file permissions
Reviewed-by: jpai, alanb, clanger
2022-05-24 15:54:28 +00:00
Erik Gahlin
d888c80bba 8287165: JFR: Add logging to jdk/jfr/api/consumer/recordingstream/TestOnEvent.java
Reviewed-by: mgronlun
2022-05-24 15:52:07 +00:00
Raffaello Giulietti
fdc147e354 8287139: aarch64 intrinsic for unsignedMultiplyHigh
Reviewed-by: aph, ngasson
2022-05-24 15:49:00 +00:00
Jorn Vernee
8f0eb5d401 8287158: Explicitly reject unsupported call shapes on macos-aarch64 in mainline
Reviewed-by: mcimadamore, ngasson
2022-05-24 15:03:53 +00:00
Aleksey Shipilev
0a82c4ebc3 8287137: Problemlist failing x86_32 tests after Loom integration
Reviewed-by: prr, mcimadamore
2022-05-24 14:10:41 +00:00
Alexey Ivanov
5974f5fed3 8284213: Replace usages of 'a the' in xml
Reviewed-by: lancea, dmarkov, iris, prr, joehw
2022-05-24 11:34:53 +00:00
Alexey Ivanov
e0d361cea9 8284191: Replace usages of 'a the' in hotspot and java.base
Reviewed-by: lancea, wetmore, naoto, iris, kevinw, xuelei
2022-05-24 11:25:13 +00:00
Aggelos Biboudis
9473c383c6 8286057: Make javac error on a generic enum friendlier
Reviewed-by: jlahoda
2022-05-24 10:31:11 +00:00
Christian Stein
a0f6dd3291 8287121: Fix typo in jlink's description resource key lookup
Reviewed-by: alanb, lancea
2022-05-24 10:14:31 +00:00
Erik Österlund
bd361bc077 8286376: Wrong condition for using non-immediate oops on AArch64
Reviewed-by: aph, thartmann
2022-05-24 09:16:10 +00:00
Thomas Schatzl
4042dba3d0 8287138: Make VerifyOption an enum class
Reviewed-by: stefank, kbarrett
2022-05-24 08:25:24 +00:00
Thomas Schatzl
a276cd2d59 8287151: Remove unused parameter in G1CollectedHeap::mark_evac_failure_object
Reviewed-by: ayang, lkorinth
2022-05-24 08:24:03 +00:00
Magnus Ihse Bursie
cf57d72fe8 8287174: Remove deprecated configure arguments
Reviewed-by: shade, dholmes
2022-05-24 07:53:46 +00:00
Roberto Castañeda Lozano
6458a56e60 8286177: C2: "failed: non-reduction loop contains reduction nodes" assert failure
Reviewed-by: chagedorn, kvn
2022-05-24 07:19:00 +00:00
Feilong Jiang
1cd7850f87 8287194: build failure on riscv after JDK-8286825
Reviewed-by: fyang, shade
2022-05-24 07:12:31 +00:00
Alan Bateman
15f15830f0 8287008: Improve tests for thread dumps in JSON format
Reviewed-by: cjplummer
2022-05-24 06:20:53 +00:00
Prasanta Sadhukhan
a5caffd4a5 8286786: [macos] javax/swing/JInternalFrame/8146321/JInternalFrameIconTest.java still fails
Reviewed-by: serb, dnguyen
2022-05-24 04:32:55 +00:00
Quan Anh Mai
c1db70d827 8285973: x86_64: Improve fp comparison and cmove for eq/ne
Reviewed-by: kvn, sviswanathan
2022-05-24 00:15:54 +00:00
Kim Barrett
782ae3801c 8286262: Windows: Cleanup deprecation warning suppression
Reviewed-by: ihse, dholmes
2022-05-23 22:47:24 +00:00
Alexandre Iline
9f73fb5a72 8225013: sanity/client/SwingSet/src/ScrollPaneDemoTest.java fails on Linux
Reviewed-by: prr, serb
2022-05-23 22:31:27 +00:00
Magnus Ihse Bursie
02fec1e6e5 8287155: Additional make typos
Reviewed-by: lancea, iris
2022-05-23 20:56:49 +00:00
Rajan Halade
5b7d066ca5 8287109: Distrust.java failed with CertificateExpiredException
Reviewed-by: mullan
2022-05-23 20:32:52 +00:00
Hannes Wallnöfer
6a192206b8 8286832: JavaDoc pages call browser history API too often
Reviewed-by: prappo
2022-05-23 20:10:46 +00:00
Hannes Wallnöfer
9df93a180c 8286887: Remove logging from search.js
Reviewed-by: prappo
2022-05-23 20:01:02 +00:00
Ioi Lam
646c8aaeec 8286277: CDS VerifyError when calling clone() on object array
Reviewed-by: dholmes, ccheung
2022-05-23 16:23:12 +00:00
Naoto Sato
ef7a9f8170 8279185: Support for IsoFields in JapaneseDate/MinguoDate/ThaiBuddhistDate
Reviewed-by: joehw, rriggs
2022-05-23 16:20:52 +00:00
Aleksey Shipilev
ac274c4ca6 8286956: Loom: Define test groups for development/porting use
Reviewed-by: alanb, zgu
2022-05-23 16:17:41 +00:00
Sandhya Viswanathan
5d8d6da36a 8286972: Support the new loop induction variable related PopulateIndex IR node on x86
Reviewed-by: kvn, jbhateja
2022-05-23 15:28:32 +00:00
Erik Gahlin
8122466fbb 8287113: JFR: Periodic task thread uses period for method sampling events
Reviewed-by: jbachorik
2022-05-23 15:12:21 +00:00
Leonid Mesnik
940e94f194 8285739: disable EscapeBarrier deopt for virtual threads
Reviewed-by: kvn, rrich, sspitsyn
2022-05-23 14:50:46 +00:00
Leonid Mesnik
110d906432 8287103: java/lang/management/ThreadMXBean/VirtualThreadDeadlocks.java fails with Xcomp
Reviewed-by: alanb, kevinw
2022-05-23 14:49:15 +00:00
Weijun Wang
8040aa0073 8286908: ECDSA signature should not return parameters
Reviewed-by: ascarpino, hchao, valeriep
2022-05-23 13:34:23 +00:00
Thomas Schatzl
689f80cbad 8287153: Whitespace typos in HeapRegion class
Reviewed-by: ayang
2022-05-23 11:14:37 +00:00
Adam Sotona
c9065915b6 8286391: Address possibly lossy conversions in jdk.compiler
Reviewed-by: mcimadamore
2022-05-23 10:30:04 +00:00
Thomas Schatzl
88018c4d3e 8287150: Remove HeapRegion::block_start_const declaration without definition
Reviewed-by: ayang
2022-05-23 10:28:52 +00:00
Maurizio Cimadamore
81f128b903 8287154: java/nio/channels/FileChannel/LargeMapTest.java does not compile
Reviewed-by: alanb, jvernee
2022-05-23 10:19:12 +00:00
Jorn Vernee
7becf13e61 8286825: Linker naming cleanup
Reviewed-by: mcimadamore, rehn
2022-05-23 10:03:28 +00:00
Thomas Schatzl
a0042de411 8276549: Improve documentation about ContainerPtr encoding
Reviewed-by: kbarrett, iwalulya
2022-05-23 08:50:41 +00:00
Maurizio Cimadamore
89a1d055d9 8286715: Generalize MemorySegment::ofBuffer
Reviewed-by: jvernee
2022-05-23 08:43:51 +00:00
Thomas Schatzl
cb08b4e86a 8287024: G1: Improve the API boundary between HeapRegionRemSet and G1CardSet
Reviewed-by: ayang, iwalulya
2022-05-23 08:31:03 +00:00
Andrey Turbanov
01916e1920 8287053: Avoid redundant HashMap.containsKey calls in ZoneInfoFile.getZoneInfo0
Reviewed-by: redestad, naoto, rriggs
2022-05-23 08:29:29 +00:00
Thomas Schatzl
414265bd83 8189669: Deduplicate VerifyOption documentation
Reviewed-by: kbarrett
2022-05-23 08:28:39 +00:00
Aleksey Shipilev
9008cfad45 8287044: Loom: Incorrect StackChunk::pc accessors
Reviewed-by: rpressler, coleenp
2022-05-23 05:40:34 +00:00
Phil Race
c156bcc599 8285399: JNI exception pending in awt_GraphicsEnv.c:1432
Reviewed-by: azvegint, serb
2022-05-21 16:05:24 +00:00
Pavel Rappo
7c0864752a 8287099: Clean up terminology regarding doc comment descriptions.
Reviewed-by: jjg
2022-05-21 08:48:11 +00:00
Rajan Halade
da8fd4547f 8287119: Add Distrust.java to ProblemList
Reviewed-by: wetmore
2022-05-21 00:41:24 +00:00
Alexander Zuev
b33c6e52c1 8286266: [macos] Voice over moving JTable column to be the first column JVM crashes
Reviewed-by: prr
2022-05-20 21:19:42 +00:00
Dean Long
ba23f14025 8287052: comparing double to max_intx gives unexpected results
Reviewed-by: kvn
2022-05-20 20:24:04 +00:00
Erik Gahlin
7b274feba5 8285513: JFR: Add more static support for event classes
Reviewed-by: mgronlun
2022-05-20 20:05:49 +00:00
Calvin Cheung
087bccfe28 8286978: SIGBUS in libz during CDS initialization
Reviewed-by: iklam
2022-05-20 17:51:47 +00:00
Andrey Turbanov
4587337e95 8286858: Remove dead code in sun.reflect.misc.MethodUtil
Reviewed-by: mchung, iris
2022-05-20 09:09:05 +00:00
Prasanta Sadhukhan
6d56caff3d 8285962: NimbusDefaults has a typo in a L&F property
Reviewed-by: prr
2022-05-20 08:59:21 +00:00
Claes Redestad
d5d19f52ce 8287013: StringConcatFactory: remove short and byte mixers/prependers
Reviewed-by: jlaskey
2022-05-20 08:17:23 +00:00
tqxia
828dc89ab8 8286893: G1: Recent card set coarsening statistics wrong
Reviewed-by: tschatzl, ayang
2022-05-20 08:04:33 +00:00
Thomas Schatzl
6569666b05 8286943: G1: With virtualized remembered sets, maximum number of cards configured is wrong
Reviewed-by: ayang, iwalulya
2022-05-20 07:39:26 +00:00
Phil Race
40e99a19f2 8285308: Win: Japanese logical fonts are drawn with wrong size
Reviewed-by: kizune, naoto
2022-05-19 23:41:45 +00:00
Ichiroh Takiguchi
890771e708 8285517: System.getenv() returns unexpected value if environment variable has non ASCII character
Reviewed-by: naoto, rriggs
2022-05-19 23:38:15 +00:00
Andrey Turbanov
de74e0e25a 8280035: Use Class.isInstance instead of Class.isAssignableFrom where applicable
Reviewed-by: prr, rriggs
2022-05-19 21:43:32 +00:00
Alexey Ivanov
9f562ef754 8286872: Refactor add/modify notification icon (TrayIcon)
Reviewed-by: azvegint, kizune, honkar
2022-05-19 20:04:19 +00:00
Dean Long
b0892295ee 8271078: jdk/incubator/vector/Float128VectorTests.java failed a subtest
Reviewed-by: kvn, vlivanov
2022-05-19 19:59:39 +00:00
Quan Anh Mai
079312c835 8286182: [BACKOUT] x86: Handle integral division overflow during parsing
8287035: [BACKOUT] PPC64: Handle integral division overflow during parsing

Reviewed-by: mdoerr, thartmann
2022-05-19 19:12:28 +00:00
Naoto Sato
7b19226be2 8267038: Update IANA Language Subtag Registry to Version 2022-03-02
Reviewed-by: rriggs
2022-05-19 18:50:09 +00:00
Valerie Peng
e60d8b516e 8253176: Signature.getParameters should specify that it can throw UnsupportedOperationException
Reviewed-by: weijun
2022-05-19 18:44:15 +00:00
Phil Race
aa5062584c 8286447: [Linux] AWT should start in Headless mode if headful AWT library not installed
Reviewed-by: asemenyuk, kcr
2022-05-19 18:40:27 +00:00
Christian Stein
655500a4f5 8286654: Add an optional description accessor on ToolProvider interface
Reviewed-by: jjg, darcy, lancea
2022-05-19 18:25:12 +00:00
Phil Race
ac6a7d7b36 8278367: JNI critical region violation in CTextPipe.m:363
Reviewed-by: kizune, azvegint
2022-05-19 17:57:29 +00:00
Gerard Ziemski
83cec4b6cc 8284273: Early crashes in os::print_context on AArch64
Reviewed-by: stefank, stuefe
2022-05-19 16:19:36 +00:00
Aggelos Biboudis
fd36f3730e 8286797: Guards of constant value false are not permitted
Reviewed-by: vromero
2022-05-19 16:11:24 +00:00
Tobias Hartmann
fa1b56ede6 8280696: C2 compilation hits assert(is_dominator(c, n_ctrl)) failed
Reviewed-by: kvn, chagedorn, roland
2022-05-19 14:52:54 +00:00
Lutz Schmidt
af7cda5d8f 8285733: [s390] Vector Instruction Emitters for element-wise access are broken
Reviewed-by: mdoerr, mbaesken
2022-05-19 13:58:25 +00:00
Daniel Jeliński
d24c84e768 8286873: Improve websocket test execution time
Reviewed-by: dfuchs, prappo
2022-05-19 13:22:14 +00:00
Mark Powers
db19dc6bb9 8284688: Minor cleanup could be done in java.security.jgss
Reviewed-by: weijun
2022-05-19 13:13:48 +00:00
Aleksey Shipilev
6e386669e3 8286944: Loom: Common ContinuationEntry cookie handling
Reviewed-by: rbackman, coleenp
2022-05-19 09:35:31 +00:00
Aleksey Shipilev
47500b2429 8286897: Loom: Cleanup x86_64 StubGenerator
Reviewed-by: rpressler, kvn
2022-05-19 08:45:03 +00:00
lawrence.andrews
fc3edf2412 8285687: Remove jtreg tag manual=yesno for java/awt/print/PrinterJob/PageRangesDlgTest.java
Reviewed-by: prr, aivanov
2022-05-19 08:04:05 +00:00
yyrrzhang
022e71704c 8286462: Incorrect copyright year for src/java.base/share/classes/jdk/internal/vm/FillerObject.java
Reviewed-by: jiefu
2022-05-19 07:45:14 +00:00
Sibabrata Sahoo
dbda0e2bda 8286969: Add a new test library API to execute kinit in SecurityTools.java
Reviewed-by: rhalade, weijun
2022-05-19 06:05:57 +00:00
Yasumasa Suenaga
26c7c92bc9 8286694: Incorrect argument processing in java launcher
Reviewed-by: dholmes
2022-05-19 05:53:10 +00:00
5775 changed files with 193585 additions and 204719 deletions

46
.github/actions/config/action.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Config'
description: 'Read JDK Configuration Variables'
inputs:
var:
description: 'The name of the variable to read'
required: true
outputs:
value:
description: 'The value of the configuration variable'
value: ${{ steps.read-config.outputs.value }}
runs:
using: composite
steps:
- name: 'Read configuration variable from repo'
id: read-config
run: |
# Extract value from configuration file
value="$(grep -h ${{ inputs.var }}= make/conf/github-actions.conf | cut -d '=' -f 2-)"
echo "::set-output name=value::$value"
shell: bash

80
.github/actions/do-build/action.yml vendored Normal file
View File

@@ -0,0 +1,80 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Do build'
description: 'Build the JDK using make'
inputs:
make-target:
description: 'Make target(s)'
required: true
platform:
description: 'Platform name'
required: true
debug-suffix:
description: 'File name suffix denoting debug level, possibly empty'
required: false
runs:
using: composite
steps:
- name: 'Build'
id: build
run: >
make LOG=info ${{ inputs.make-target }}
|| bash ./.github/scripts/gen-build-failure-report.sh "$GITHUB_STEP_SUMMARY"
shell: bash
- name: 'Check for failure'
id: check
run: |
# Check for failure marker file
build_dir="$(ls -d build/*)"
if [[ -e $build_dir/build-failure ]]; then
# Collect relevant log files
mkdir failure-logs
cp \
$build_dir/spec.gmk \
$build_dir/build.log \
$build_dir/configure.log \
$build_dir/make-support/failure-summary.log \
$build_dir/make-support/failure-logs/* \
failure-logs/ 2> /dev/null || true
echo '::set-output name=failure::true'
fi
shell: bash
- name: 'Upload build logs'
uses: actions/upload-artifact@v3
with:
name: failure-logs-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: failure-logs
if: steps.check.outputs.failure == 'true'
# This is the best way I found to abort the job with an error message
- name: 'Notify about build failures'
uses: actions/github-script@v6
with:
script: core.setFailed('Build failed. See summary for details.')
if: steps.check.outputs.failure == 'true'

109
.github/actions/get-bootjdk/action.yml vendored Normal file
View File

@@ -0,0 +1,109 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Get BootJDK'
description: 'Download the BootJDK from cache or source location'
inputs:
platform:
description: 'Platform'
required: true
outputs:
path:
description: 'Path to the installed BootJDK'
value: ${{ steps.path-name.outputs.path }}
runs:
using: composite
steps:
- name: 'Determine platform prefix'
id: platform-prefix
run: |
# Convert platform name to upper case
platform_prefix="$(echo ${{ inputs.platform }} | tr [a-z-] [A-Z_])"
echo "::set-output name=value::$platform_prefix"
shell: bash
- name: 'Get URL configuration'
id: url
uses: ./.github/actions/config
with:
var: ${{ steps.platform-prefix.outputs.value}}_BOOT_JDK_URL
- name: 'Get SHA256 configuration'
id: sha256
uses: ./.github/actions/config
with:
var: ${{ steps.platform-prefix.outputs.value}}_BOOT_JDK_SHA256
- name: 'Get file extension configuration'
id: ext
uses: ./.github/actions/config
with:
var: ${{ steps.platform-prefix.outputs.value}}_BOOT_JDK_EXT
- name: 'Check cache for BootJDK'
id: get-cached-bootjdk
uses: actions/cache@v3
with:
path: bootjdk/jdk
key: boot-jdk-${{ inputs.platform }}-${{ steps.sha256.outputs.value }}
# macOS is missing sha256sum
- name: 'Install sha256sum'
run: |
# Run Homebrew installation
brew install coreutils
shell: bash
if: steps.get-cached-bootjdk.outputs.cache-hit != 'true' && runner.os == 'macOS'
- name: 'Download BootJDK'
run: |
# Download BootJDK and verify checksum
mkdir -p bootjdk/jdk
mkdir -p bootjdk/unpacked
wget --progress=dot:mega -O bootjdk/jdk.${{ steps.ext.outputs.value }} '${{ steps.url.outputs.value }}'
echo '${{ steps.sha256.outputs.value }} bootjdk/jdk.${{ steps.ext.outputs.value }}' | sha256sum -c >/dev/null -
shell: bash
if: steps.get-cached-bootjdk.outputs.cache-hit != 'true'
- name: 'Unpack BootJDK'
run: |
# Unpack the BootJDK and move files to a common location
if [[ '${{ steps.ext.outputs.value }}' == 'tar.gz' ]]; then
tar -xf bootjdk/jdk.${{ steps.ext.outputs.value }} -C bootjdk/unpacked
else
unzip -q bootjdk/jdk.${{ steps.ext.outputs.value }} -d bootjdk/unpacked
fi
jdk_root="$(dirname $(find bootjdk/unpacked -name bin -type d))"
mv "$jdk_root"/* bootjdk/jdk/
shell: bash
if: steps.get-cached-bootjdk.outputs.cache-hit != 'true'
- name: 'Export path to where BootJDK is installed'
id: path-name
run: |
# Export the path
echo '::set-output name=path::bootjdk/jdk'
shell: bash

109
.github/actions/get-bundles/action.yml vendored Normal file
View File

@@ -0,0 +1,109 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Get bundles'
description: 'Download resulting JDK bundles'
inputs:
platform:
description: 'Platform name'
required: true
debug-suffix:
description: 'File name suffix denoting debug level, possibly empty'
required: false
outputs:
jdk-path:
description: 'Path to the installed JDK bundle'
value: ${{ steps.path-name.outputs.jdk }}
symbols-path:
description: 'Path to the installed symbols bundle'
value: ${{ steps.path-name.outputs.symbols }}
tests-path:
description: 'Path to the installed tests bundle'
value: ${{ steps.path-name.outputs.tests }}
runs:
using: composite
steps:
- name: 'Download bundles artifact'
id: download-bundles
uses: actions/download-artifact@v3
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles
continue-on-error: true
- name: 'Download bundles artifact (retry)'
uses: actions/download-artifact@v3
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles
if: steps.download-bundles.outcome == 'failure'
- name: 'Unpack bundles'
run: |
if [[ -e bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.zip ]]; then
echo 'Unpacking jdk bundle...'
mkdir -p bundles/jdk
unzip -q bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.zip -d bundles/jdk
fi
if [[ -e bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz ]]; then
echo 'Unpacking jdk bundle...'
mkdir -p bundles/jdk
tar -xf bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz -C bundles/jdk
fi
if [[ -e bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz ]]; then
echo 'Unpacking symbols bundle...'
mkdir -p bundles/symbols
tar -xf bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz -C bundles/symbols
fi
if [[ -e bundles/tests-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz ]]; then
echo 'Unpacking tests bundle...'
mkdir -p bundles/tests
tar -xf bundles/tests-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz -C bundles/tests
fi
shell: bash
- name: 'Export paths to where bundles are installed'
id: path-name
run: |
# Export the paths
jdk_dir="$GITHUB_WORKSPACE/$(dirname $(find bundles/jdk -name bin -type d))"
symbols_dir="$GITHUB_WORKSPACE/$(dirname $(find bundles/symbols -name bin -type d))"
tests_dir="$GITHUB_WORKSPACE/bundles/tests"
if [[ '${{ runner.os }}' == 'Windows' ]]; then
jdk_dir="$(cygpath $jdk_dir)"
symbols_dir="$(cygpath $symbols_dir)"
tests_dir="$(cygpath $tests_dir)"
fi
echo "::set-output name=jdk::$jdk_dir"
echo "::set-output name=symbols::$symbols_dir"
echo "::set-output name=tests::$tests_dir"
shell: bash

54
.github/actions/get-gtest/action.yml vendored Normal file
View File

@@ -0,0 +1,54 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Get GTest'
description: 'Download GTest source'
outputs:
path:
description: 'Path to the installed GTest'
value: ${{ steps.path-name.outputs.path }}
runs:
using: composite
steps:
- name: 'Get GTest version configuration'
id: version
uses: ./.github/actions/config
with:
var: GTEST_VERSION
- name: 'Checkout GTest source'
uses: actions/checkout@v3
with:
repository: google/googletest
ref: 'release-${{ steps.version.outputs.value }}'
path: gtest
- name: 'Export path to where GTest is installed'
id: path-name
run: |
# Export the path
echo '::set-output name=path::gtest'
shell: bash

72
.github/actions/get-jtreg/action.yml vendored Normal file
View File

@@ -0,0 +1,72 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Get JTReg'
description: 'Download JTReg from cache or source location'
outputs:
path:
description: 'Path to the installed JTReg'
value: ${{ steps.path-name.outputs.path }}
runs:
using: composite
steps:
- name: 'Get JTReg version configuration'
id: version
uses: ./.github/actions/config
with:
var: JTREG_VERSION
- name: 'Check cache for JTReg'
id: get-cached-jtreg
uses: actions/cache@v3
with:
path: jtreg/installed
key: jtreg-${{ steps.version.outputs.value }}
- name: 'Checkout the JTReg source'
uses: actions/checkout@v3
with:
repository: openjdk/jtreg
ref: jtreg-${{ steps.version.outputs.value }}
path: jtreg/src
if: steps.get-cached-jtreg.outputs.cache-hit != 'true'
- name: 'Build JTReg'
run: |
# Build JTReg and move files to the proper locations
bash make/build.sh --jdk "$JAVA_HOME_11_X64"
mkdir ../installed
mv build/images/jtreg/* ../installed
working-directory: jtreg/src
shell: bash
if: steps.get-cached-jtreg.outputs.cache-hit != 'true'
- name: 'Export path to where JTReg is installed'
id: path-name
run: |
# Export the path
echo '::set-output name=path::jtreg/installed'
shell: bash

44
.github/actions/get-msys2/action.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Get MSYS2'
description: 'Download MSYS2 and prepare a Windows host'
runs:
using: composite
steps:
- name: 'Install MSYS2'
uses: msys2/setup-msys2@v2
with:
install: 'autoconf tar unzip zip make'
path-type: minimal
location: msys2
# We can't run bash until this is completed, so stick with pwsh
- name: 'Set MSYS2 path'
run: |
# Prepend msys2/msys64/usr/bin to the PATH
echo "$env:GITHUB_WORKSPACE/msys2/msys64/usr/bin" >> $env:GITHUB_PATH
shell: pwsh

View File

@@ -0,0 +1,77 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Upload bundles'
description: 'Upload resulting JDK bundles'
inputs:
platform:
description: 'Platform name'
required: true
debug-suffix:
description: 'File name suffix denoting debug level, possibly empty'
required: false
runs:
using: composite
steps:
- name: 'Determine bundle names'
id: bundles
run: |
# Rename bundles to consistent names
jdk_bundle_zip="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.zip 2> /dev/null || true)"
jdk_bundle_tar_gz="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
symbols_bundle="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}-symbols.tar.gz 2> /dev/null || true)"
tests_bundle="$(ls build/*/bundles/jdk-*_bin-tests${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
mkdir bundles
if [[ "$jdk_bundle_zip" != "" ]]; then
mv "$jdk_bundle_zip" "bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.zip"
fi
if [[ "$jdk_bundle_tar_gz" != "" ]]; then
mv "$jdk_bundle_tar_gz" "bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz"
fi
if [[ "$symbols_bundle" != "" ]]; then
mv "$symbols_bundle" "bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz"
fi
if [[ "$tests_bundle" != "" ]]; then
mv "$tests_bundle" "bundles/tests-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz"
fi
if [[ "$jdk_bundle_zip$jdk_bundle_tar_gz$symbols_bundle$tests_bundle" != "" ]]; then
echo '::set-output name=bundles-found::true'
else
echo '::set-output name=bundles-found::false'
fi
shell: bash
- name: 'Upload bundles artifact'
uses: actions/upload-artifact@v3
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles
retention-days: 1
if: steps.bundles.outputs.bundles-found == 'true'

View File

@@ -0,0 +1,51 @@
#!/bin/bash
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
GITHUB_STEP_SUMMARY="$1"
BUILD_DIR="$(ls -d build/*)"
# Send signal to the do-build action that we failed
touch "$BUILD_DIR/build-failure"
(
echo '### :boom: Build failure summary'
echo ''
echo 'The build failed. Here follows the failure summary from the build.'
echo '<details><summary><b>View build failure summary</b></summary>'
echo ''
echo '```'
if [[ -f "$BUILD_DIR/make-support/failure-summary.log" ]]; then
cat "$BUILD_DIR/make-support/failure-summary.log"
else
echo "Failure summary ($BUILD_DIR/make-support/failure-summary.log) not found"
fi
echo '```'
echo '</details>'
echo ''
echo ''
echo ':arrow_right: To see the entire test log, click the job in the list to the left. To download logs, see the `failure-logs` [artifact above](#artifacts).'
) >> $GITHUB_STEP_SUMMARY

92
.github/scripts/gen-test-results.sh vendored Normal file
View File

@@ -0,0 +1,92 @@
#!/bin/bash
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
GITHUB_STEP_SUMMARY="$1"
test_suite_name=$(cat build/run-test-prebuilt/test-support/test-last-ids.txt)
results_dir=build/run-test-prebuilt/test-results/$test_suite_name/text
report_dir=build/run-test-prebuilt/test-support/$test_suite_name
failures=$(sed -E -e 's/(.*)\.(java|sh)/\1/' -e '/^#/d' $results_dir/newfailures.txt 2> /dev/null || true)
errors=$(sed -E -e 's/(.*)\.(java|sh)/\1/' -e '/^#/d' $results_dir/other_errors.txt 2> /dev/null || true)
if [[ "$failures" = "" && "$errors" = "" ]]; then
# If we have nothing to report, exit this step now
exit 0
fi
echo "### Test output for failed tests" >> $GITHUB_STEP_SUMMARY
for test in $failures $errors; do
anchor="$(echo "$test" | tr [A-Z/] [a-z_])"
base_path="$(echo "$test" | tr '#' '_')"
report_file="$report_dir/$base_path.jtr"
hs_err_files=$(ls $report_dir/$base_path/hs_err*.log 2> /dev/null || true)
echo "#### <a id="$anchor">$test"
echo '<details><summary>View test results</summary>'
echo ''
echo '```'
if [[ -f "$report_file" ]]; then
cat "$report_file"
else
echo "Error: Result file $report_file not found"
fi
echo '```'
echo '</details>'
echo ''
if [[ "$hs_err_files" != "" ]]; then
echo '<details><summary>View HotSpot error log</summary>'
echo ''
for hs_err in $hs_err_files; do
echo '```'
echo "$hs_err:"
echo ''
cat "$hs_err"
echo '```'
done
echo '</details>'
echo ''
fi
done >> $GITHUB_STEP_SUMMARY
# With many failures, the summary can easily exceed 1024 kB, the limit set by Github
# Trim it down if so.
summary_size=$(wc -c < $GITHUB_STEP_SUMMARY)
if [[ $summary_size -gt 1000000 ]]; then
# Trim to below 1024 kB, and cut off after the last detail group
head -c 1000000 $GITHUB_STEP_SUMMARY | tac | sed -n -e '/<\/details>/,$ p' | tac > $GITHUB_STEP_SUMMARY.tmp
mv $GITHUB_STEP_SUMMARY.tmp $GITHUB_STEP_SUMMARY
(
echo ''
echo ':x: **WARNING: Summary is too large and has been truncated.**'
echo ''
) >> $GITHUB_STEP_SUMMARY
fi
echo ':arrow_right: To see the entire test log, click the job in the list to the left.' >> $GITHUB_STEP_SUMMARY

69
.github/scripts/gen-test-summary.sh vendored Normal file
View File

@@ -0,0 +1,69 @@
#!/bin/bash
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
GITHUB_STEP_SUMMARY="$1"
test_suite_name=$(cat build/run-test-prebuilt/test-support/test-last-ids.txt)
results_dir=build/run-test-prebuilt/test-results/$test_suite_name/text
if [[ ! -f build/run-test-prebuilt/make-support/exit-with-error ]]; then
# There were no failures, exit now
exit
fi
failures=$(sed -E -e 's/(.*)\.(java|sh)/\1/' -e '/^#/d' $results_dir/newfailures.txt 2> /dev/null || true)
errors=$(sed -E -e 's/(.*)\.(java|sh)/\1/' -e '/^#/d' $results_dir/other_errors.txt 2> /dev/null || true)
failure_count=$(echo $failures | wc -w || true)
error_count=$(echo $errors | wc -w || true)
if [[ "$failures" = "" && "$errors" = "" ]]; then
# We know something went wrong, but not what
echo '::set-output name=error-message::Unspecified test suite failure. Please see log for job for details.'
exit 0
fi
echo '::set-output name=failure::true'
echo "::set-output name=error-message::Test run reported $failure_count test failure(s) and $error_count error(s). See summary for details."
echo '### :boom: Test failures summary' >> $GITHUB_STEP_SUMMARY
if [[ "$failures" != "" ]]; then
echo '' >> $GITHUB_STEP_SUMMARY
echo 'These tests reported failure:' >> $GITHUB_STEP_SUMMARY
for test in $failures; do
anchor="$(echo "$test" | tr [A-Z/] [a-z_])"
echo "* [$test](#user-content-$anchor)"
done >> $GITHUB_STEP_SUMMARY
fi
if [[ "$errors" != "" ]]; then
echo '' >> $GITHUB_STEP_SUMMARY
echo 'These tests reported errors:' >> $GITHUB_STEP_SUMMARY
for test in $errors; do
anchor="$(echo "$test" | tr [A-Z/] [a-z_])"
echo "* [$test](#user-content-$anchor)"
done >> $GITHUB_STEP_SUMMARY
fi

View File

@@ -0,0 +1,154 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Build (cross-compile)'
on:
workflow_call:
inputs:
gcc-major-version:
required: false
type: string
default: '10'
apt-gcc-version:
required: false
type: string
default: '10.3.0-1ubuntu1~20.04'
apt-gcc-cross-suffix:
required: false
type: string
default: 'cross1'
jobs:
build-cross-compile:
name: build
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
target-cpu:
- aarch64
- arm
- s390x
- ppc64le
include:
- target-cpu: aarch64
debian-arch: arm64
gnu-arch: aarch64
- target-cpu: arm
debian-arch: armhf
gnu-arch: arm
gnu-abi: eabihf
- target-cpu: s390x
debian-arch: s390x
gnu-arch: s390x
- target-cpu: ppc64le
debian-arch: ppc64el
gnu-arch: powerpc64le
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v3
- name: 'Get the BootJDK'
id: bootjdk
uses: ./.github/actions/get-bootjdk
with:
platform: linux-x64
# Use linux-x64 JDK bundle as build JDK
- name: 'Get build JDK'
id: buildjdk
uses: ./.github/actions/get-bundles
with:
platform: linux-x64
# Upgrading apt to solve libc6 installation bugs, see JDK-8260460.
- name: 'Install toolchain and dependencies'
run: |
# Install dependencies using apt-get
sudo apt-get update
sudo apt-get install --only-upgrade apt
sudo apt-get install \
gcc-${{ inputs.gcc-major-version }}=${{ inputs.apt-gcc-version }} \
g++-${{ inputs.gcc-major-version }}=${{ inputs.apt-gcc-version }} \
gcc-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}=${{ inputs.apt-gcc-version }}${{ inputs.apt-gcc-cross-suffix }} \
g++-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}=${{ inputs.apt-gcc-version }}${{ inputs.apt-gcc-cross-suffix }} \
libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
- name: 'Check cache for sysroot'
id: get-cached-sysroot
uses: actions/cache@v3
with:
path: sysroot
key: sysroot-${{ matrix.debian-arch }}-${{ hashFiles('./.github/workflows/build-cross-compile.yml') }}
- name: 'Install sysroot dependencies'
run: sudo apt-get install debootstrap qemu-user-static
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
- name: 'Create sysroot'
run: >
sudo qemu-debootstrap
--arch=${{ matrix.debian-arch }}
--verbose
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev
--resolve-deps
buster
sysroot
https://httpredir.debian.org/debian/
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
- name: 'Prepare sysroot'
run: |
# Prepare sysroot and remove unused files to minimize cache
sudo chroot sysroot symlinks -cr .
sudo chown ${USER} -R sysroot
rm -rf sysroot/{dev,proc,run,sys}
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
- name: 'Configure'
run: >
bash configure
--with-conf-name=linux-${{ matrix.target-cpu }}
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
--with-zlib=system
--enable-debug
--disable-precompiled-headers
--openjdk-target=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}
--with-sysroot=sysroot
--with-build-jdk=${{ steps.buildjdk.outputs.jdk-path }}
CC=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-gcc-10
CXX=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-g++-10
- name: 'Build'
id: build
uses: ./.github/actions/do-build
with:
make-target: 'hotspot'
platform: linux-${{ matrix.target-cpu }}

132
.github/workflows/build-linux.yml vendored Normal file
View File

@@ -0,0 +1,132 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Build (linux)'
on:
workflow_call:
inputs:
platform:
required: true
type: string
extra-conf-options:
required: false
type: string
make-target:
required: false
type: string
default: 'product-bundles test-bundles'
debug-levels:
required: false
type: string
default: '[ "debug", "release" ]'
apt-gcc-version:
required: true
type: string
apt-architecture:
required: false
type: string
apt-extra-packages:
required: false
type: string
jobs:
build-linux:
name: build
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
debug-level: ${{ fromJSON(inputs.debug-levels) }}
include:
- debug-level: debug
flags: --with-debug-level=fastdebug
suffix: -debug
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v3
- name: 'Get the BootJDK'
id: bootjdk
uses: ./.github/actions/get-bootjdk
with:
platform: linux-x64
- name: 'Get JTReg'
id: jtreg
uses: ./.github/actions/get-jtreg
- name: 'Get GTest'
id: gtest
uses: ./.github/actions/get-gtest
- name: 'Set architecture'
id: arch
run: |
# Set a proper suffix for packages if using a different architecture
if [[ '${{ inputs.apt-architecture }}' != '' ]]; then
echo '::set-output name=suffix:::${{ inputs.apt-architecture }}'
fi
# Upgrading apt to solve libc6 installation bugs, see JDK-8260460.
- name: 'Install toolchain and dependencies'
run: |
# Install dependencies using apt-get
if [[ '${{ inputs.apt-architecture }}' != '' ]]; then
sudo dpkg --add-architecture ${{ inputs.apt-architecture }}
fi
sudo apt-get update
sudo apt-get install --only-upgrade apt
sudo apt-get install gcc-${{ inputs.apt-gcc-version }} g++-${{ inputs.apt-gcc-version }} libxrandr-dev${{ steps.arch.outputs.suffix }} libxtst-dev${{ steps.arch.outputs.suffix }} libcups2-dev${{ steps.arch.outputs.suffix }} libasound2-dev${{ steps.arch.outputs.suffix }} ${{ inputs.apt-extra-packages }}
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10
- name: 'Configure'
run: >
bash configure
--with-conf-name=${{ inputs.platform }}
${{ matrix.flags }}
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
--with-jtreg=${{ steps.jtreg.outputs.path }}
--with-gtest=${{ steps.gtest.outputs.path }}
--enable-jtreg-failure-handler
--with-zlib=system
${{ inputs.extra-conf-options }}
- name: 'Build'
id: build
uses: ./.github/actions/do-build
with:
make-target: '${{ inputs.make-target }}'
platform: ${{ inputs.platform }}
debug-suffix: '${{ matrix.suffix }}'
- name: 'Upload bundles'
uses: ./.github/actions/upload-bundles
with:
platform: ${{ inputs.platform }}
debug-suffix: '${{ matrix.suffix }}'

114
.github/workflows/build-macos.yml vendored Normal file
View File

@@ -0,0 +1,114 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Build (macos)'
on:
workflow_call:
inputs:
platform:
required: true
type: string
extra-conf-options:
required: false
type: string
make-target:
required: false
type: string
default: 'product-bundles test-bundles'
debug-levels:
required: false
type: string
default: '[ "debug", "release" ]'
xcode-toolset-version:
required: true
type: string
jobs:
build-macos:
name: build
runs-on: macos-11
strategy:
fail-fast: false
matrix:
debug-level: ${{ fromJSON(inputs.debug-levels) }}
include:
- debug-level: debug
flags: --with-debug-level=fastdebug
suffix: -debug
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v3
- name: 'Get the BootJDK'
id: bootjdk
uses: ./.github/actions/get-bootjdk
with:
platform: macos-x64
- name: 'Get JTReg'
id: jtreg
uses: ./.github/actions/get-jtreg
- name: 'Get GTest'
id: gtest
uses: ./.github/actions/get-gtest
- name: 'Install toolchain and dependencies'
run: |
# Run Homebrew installation and xcode-select
brew install make
sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-toolset-version }}.app/Contents/Developer
# This will make GNU make available as 'make' and not only as 'gmake'
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH
- name: 'Configure'
run: >
bash configure
--with-conf-name=${{ inputs.platform }}
${{ matrix.flags }}
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
--with-jtreg=${{ steps.jtreg.outputs.path }}
--with-gtest=${{ steps.gtest.outputs.path }}
--enable-jtreg-failure-handler
--with-zlib=system
${{ inputs.extra-conf-options }}
- name: 'Build'
id: build
uses: ./.github/actions/do-build
with:
make-target: '${{ inputs.make-target }}'
platform: ${{ inputs.platform }}
debug-suffix: '${{ matrix.suffix }}'
- name: 'Upload bundles'
uses: ./.github/actions/upload-bundles
with:
platform: ${{ inputs.platform }}
debug-suffix: '${{ matrix.suffix }}'

131
.github/workflows/build-windows.yml vendored Normal file
View File

@@ -0,0 +1,131 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Build (windows)'
on:
workflow_call:
inputs:
platform:
required: true
type: string
extra-conf-options:
required: false
type: string
make-target:
required: false
type: string
default: 'product-bundles test-bundles'
debug-levels:
required: false
type: string
default: '[ "debug", "release" ]'
msvc-toolset-version:
required: true
type: string
msvc-toolset-architecture:
required: true
type: string
env:
# These are needed to make the MSYS2 bash work properly
MSYS2_PATH_TYPE: minimal
CHERE_INVOKING: 1
jobs:
build-windows:
name: build
runs-on: windows-2019
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
debug-level: ${{ fromJSON(inputs.debug-levels) }}
include:
- debug-level: debug
flags: --with-debug-level=fastdebug
suffix: -debug
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v3
- name: 'Get MSYS2'
uses: ./.github/actions/get-msys2
- name: 'Get the BootJDK'
id: bootjdk
uses: ./.github/actions/get-bootjdk
with:
platform: windows-x64
- name: 'Get JTReg'
id: jtreg
uses: ./.github/actions/get-jtreg
- name: 'Get GTest'
id: gtest
uses: ./.github/actions/get-gtest
- name: 'Install toolchain and dependencies'
run: |
# Run Visual Studio Installer
'/c/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe' \
modify --quiet --installPath 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise' \
--add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.${{ inputs.msvc-toolset-architecture }}
- name: 'Configure'
run: >
bash configure
--with-conf-name=${{ inputs.platform }}
${{ matrix.flags }}
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
--with-jtreg=${{ steps.jtreg.outputs.path }}
--with-gtest=${{ steps.gtest.outputs.path }}
--enable-jtreg-failure-handler
--with-msvc-toolset-version=${{ inputs.msvc-toolset-version }}
${{ inputs.extra-conf-options }}
env:
# We need a minimal PATH on Windows
# Set PATH to "", so just GITHUB_PATH is included
PATH: ''
- name: 'Build'
id: build
uses: ./.github/actions/do-build
with:
make-target: '${{ inputs.make-target }}'
platform: ${{ inputs.platform }}
debug-suffix: '${{ matrix.suffix }}'
- name: 'Upload bundles'
uses: ./.github/actions/upload-bundles
with:
platform: ${{ inputs.platform }}
debug-suffix: '${{ matrix.suffix }}'

331
.github/workflows/main.yml vendored Normal file
View File

@@ -0,0 +1,331 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'OpenJDK GHA Sanity Checks'
on:
push:
branches-ignore:
- master
- pr/*
workflow_dispatch:
inputs:
platforms:
description: 'Platform(s) to execute on (comma separated, e.g. "linux-x64, macos, aarch64")'
required: true
default: 'linux-x64, linux-x86, linux-x64-variants, linux-cross-compile, macos-x64, macos-aarch64, windows-x64, windows-aarch64'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
###
### Determine platforms to include
###
select:
name: 'Select platforms'
runs-on: ubuntu-20.04
outputs:
linux-x64: ${{ steps.include.outputs.linux-x64 }}
linux-x86: ${{ steps.include.outputs.linux-x86 }}
linux-x64-variants: ${{ steps.include.outputs.linux-x64-variants }}
linux-cross-compile: ${{ steps.include.outputs.linux-cross-compile }}
macos-x64: ${{ steps.include.outputs.macos-x64 }}
macos-aarch64: ${{ steps.include.outputs.macos-aarch64 }}
windows-x64: ${{ steps.include.outputs.windows-x64 }}
windows-aarch64: ${{ steps.include.outputs.windows-aarch64 }}
steps:
# This function must be inlined in main.yml, or we'd be forced to checkout the repo
- name: 'Check what jobs to run'
id: include
run: |
# Determine which platform jobs to run
# Returns 'true' if the input platform list matches any of the platform monikers given as argument,
# 'false' otherwise.
# arg $1: platform name or names to look for
function check_platform() {
if [[ '${{ !secrets.JDK_SUBMIT_FILTER || startsWith(github.ref, 'refs/heads/submit/') }}' == 'false' ]]; then
# If JDK_SUBMIT_FILTER is set, and this is not a "submit/" branch, don't run anything
echo 'false'
return
fi
if [[ $GITHUB_EVENT_NAME == workflow_dispatch ]]; then
input='${{ github.event.inputs.platforms }}'
elif [[ $GITHUB_EVENT_NAME == push ]]; then
input='${{ secrets.JDK_SUBMIT_PLATFORMS }}'
else
echo 'Internal error in GHA'
exit 1
fi
normalized_input="$(echo ,$input, | tr -d ' ')"
if [[ "$normalized_input" == ",," ]]; then
# For an empty input, assume all platforms should run
echo 'true'
return
else
# Check for all acceptable platform names
for part in $* ; do
if echo "$normalized_input" | grep -q -e ",$part," ; then
echo 'true'
return
fi
done
fi
echo 'false'
}
echo "::set-output name=linux-x64::$(check_platform linux-x64 linux x64)"
echo "::set-output name=linux-x86::$(check_platform linux-x86 linux x86)"
echo "::set-output name=linux-x64-variants::$(check_platform linux-x64-variants variants)"
echo "::set-output name=linux-cross-compile::$(check_platform linux-cross-compile cross-compile)"
echo "::set-output name=macos-x64::$(check_platform macos-x64 macos x64)"
echo "::set-output name=macos-aarch64::$(check_platform macos-aarch64 macos aarch64)"
echo "::set-output name=windows-x64::$(check_platform windows-x64 windows x64)"
echo "::set-output name=windows-aarch64::$(check_platform windows-aarch64 windows aarch64)"
###
### Build jobs
###
build-linux-x64:
name: linux-x64
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x64
apt-gcc-version: '10=10.3.0-1ubuntu1~20.04'
# The linux-x64 jdk bundle is used as buildjdk for the cross-compile job
if: needs.select.outputs.linux-x64 == 'true' || needs.select.outputs.linux-cross-compile == 'true'
build-linux-x86:
name: linux-x86
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x86
apt-gcc-version: '10-multilib'
apt-architecture: 'i386'
# Some multilib libraries do not have proper inter-dependencies, so we have to
# install their dependencies manually.
apt-extra-packages: 'libfreetype6-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386'
extra-conf-options: '--with-target-bits=32'
if: needs.select.outputs.linux-x86 == 'true'
build-linux-x64-hs-nopch:
name: linux-x64-hs-nopch
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x64
make-target: 'hotspot'
debug-levels: '[ "debug" ]'
apt-gcc-version: '10=10.3.0-1ubuntu1~20.04'
extra-conf-options: '--disable-precompiled-headers'
if: needs.select.outputs.linux-x64-variants == 'true'
build-linux-x64-hs-zero:
name: linux-x64-hs-zero
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x64
make-target: 'hotspot'
debug-levels: '[ "debug" ]'
apt-gcc-version: '10=10.3.0-1ubuntu1~20.04'
extra-conf-options: '--with-jvm-variants=zero --disable-precompiled-headers'
if: needs.select.outputs.linux-x64-variants == 'true'
build-linux-x64-hs-minimal:
name: linux-x64-hs-minimal
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x64
make-target: 'hotspot'
debug-levels: '[ "debug" ]'
apt-gcc-version: '10=10.3.0-1ubuntu1~20.04'
extra-conf-options: '--with-jvm-variants=minimal --disable-precompiled-headers'
if: needs.select.outputs.linux-x64-variants == 'true'
build-linux-x64-hs-optimized:
name: linux-x64-hs-optimized
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x64
make-target: 'hotspot'
# Technically this is not the "debug" level, but we can't inject a new matrix state for just this job
debug-levels: '[ "debug" ]'
apt-gcc-version: '10=10.3.0-1ubuntu1~20.04'
extra-conf-options: '--with-debug-level=optimized --disable-precompiled-headers'
if: needs.select.outputs.linux-x64-variants == 'true'
build-linux-cross-compile:
name: linux-cross-compile
needs:
- select
- build-linux-x64
uses: ./.github/workflows/build-cross-compile.yml
if: needs.select.outputs.linux-cross-compile == 'true'
build-macos-x64:
name: macos-x64
needs: select
uses: ./.github/workflows/build-macos.yml
with:
platform: macos-x64
xcode-toolset-version: '11.7'
if: needs.select.outputs.macos-x64 == 'true'
build-macos-aarch64:
name: macos-aarch64
needs: select
uses: ./.github/workflows/build-macos.yml
with:
platform: macos-aarch64
xcode-toolset-version: '12.4'
extra-conf-options: '--openjdk-target=aarch64-apple-darwin'
if: needs.select.outputs.macos-aarch64 == 'true'
build-windows-x64:
name: windows-x64
needs: select
uses: ./.github/workflows/build-windows.yml
with:
platform: windows-x64
msvc-toolset-version: '14.25'
msvc-toolset-architecture: 'x86.x64'
if: needs.select.outputs.windows-x64 == 'true'
build-windows-aarch64:
name: windows-aarch64
needs: select
uses: ./.github/workflows/build-windows.yml
with:
platform: windows-aarch64
msvc-toolset-version: '14.29'
msvc-toolset-architecture: 'arm64'
make-target: 'hotspot'
extra-conf-options: '--openjdk-target=aarch64-unknown-cygwin'
if: needs.select.outputs.windows-aarch64 == 'true'
###
### Test jobs
###
test-linux-x64:
name: linux-x64
needs:
- build-linux-x64
uses: ./.github/workflows/test.yml
with:
platform: linux-x64
bootjdk-platform: linux-x64
runs-on: ubuntu-20.04
test-linux-x86:
name: linux-x86
needs:
- build-linux-x86
uses: ./.github/workflows/test.yml
with:
platform: linux-x86
bootjdk-platform: linux-x64
runs-on: ubuntu-20.04
test-macos-x64:
name: macos-x64
needs:
- build-macos-x64
uses: ./.github/workflows/test.yml
with:
platform: macos-x64
bootjdk-platform: macos-x64
runs-on: macos-11
test-windows-x64:
name: windows-x64
needs:
- build-windows-x64
uses: ./.github/workflows/test.yml
with:
platform: windows-x64
bootjdk-platform: windows-x64
runs-on: windows-2019
# Remove bundles so they are not misconstrued as binary distributions from the JDK project
remove-bundles:
name: 'Remove bundle artifacts'
runs-on: ubuntu-20.04
if: always()
needs:
- build-linux-x64
- build-linux-x86
- build-linux-x64-hs-nopch
- build-linux-x64-hs-zero
- build-linux-x64-hs-minimal
- build-linux-x64-hs-optimized
- build-linux-cross-compile
- build-macos-x64
- build-macos-aarch64
- build-windows-x64
- build-windows-aarch64
- test-linux-x64
- test-linux-x86
- test-macos-x64
- test-windows-x64
steps:
# Hack to get hold of the api environment variables that are only defined for actions
- name: 'Get API configuration'
id: api
uses: actions/github-script@v6
with:
script: 'return { url: process.env["ACTIONS_RUNTIME_URL"], token: process.env["ACTIONS_RUNTIME_TOKEN"] }'
- name: 'Remove bundle artifacts'
run: |
# Find and remove all bundle artifacts
ALL_ARTIFACT_URLS="$(curl -s \
-H 'Accept: application/json;api-version=6.0-preview' \
-H 'Authorization: Bearer ${{ fromJson(steps.api.outputs.result).token }}' \
'${{ fromJson(steps.api.outputs.result).url }}_apis/pipelines/workflows/${{ github.run_id }}/artifacts?api-version=6.0-preview')"
BUNDLE_ARTIFACT_URLS="$(echo "$ALL_ARTIFACT_URLS" | jq -r -c '.value | map(select(.name|startswith("bundles-"))) | .[].url')"
for url in $BUNDLE_ARTIFACT_URLS; do
echo "Removing $url"
curl -s \
-H 'Accept: application/json;api-version=6.0-preview' \
-H 'Authorization: Bearer ${{ fromJson(steps.api.outputs.result).token }}' \
-X DELETE "$url" \
|| echo "Failed to remove bundle"
done

File diff suppressed because it is too large Load Diff

205
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,205 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
name: 'Run tests'
on:
workflow_call:
inputs:
platform:
required: true
type: string
bootjdk-platform:
required: true
type: string
runs-on:
required: true
type: string
env:
# These are needed to make the MSYS2 bash work properly
MSYS2_PATH_TYPE: minimal
CHERE_INVOKING: 1
jobs:
test:
name: test
runs-on: ${{ inputs.runs-on }}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
test-name:
- 'jdk/tier1 part 1'
- 'jdk/tier1 part 2'
- 'jdk/tier1 part 3'
- 'langtools/tier1'
- 'hs/tier1 common'
- 'hs/tier1 compiler'
- 'hs/tier1 gc'
- 'hs/tier1 runtime'
- 'hs/tier1 serviceability'
include:
- test-name: 'jdk/tier1 part 1'
test-suite: 'test/jdk/:tier1_part1'
- test-name: 'jdk/tier1 part 2'
test-suite: 'test/jdk/:tier1_part2'
- test-name: 'jdk/tier1 part 3'
test-suite: 'test/jdk/:tier1_part3'
- test-name: 'langtools/tier1'
test-suite: 'test/langtools/:tier1'
- test-name: 'hs/tier1 common'
test-suite: 'test/hotspot/jtreg/:tier1_common'
debug-suffix: -debug
- test-name: 'hs/tier1 compiler'
test-suite: 'test/hotspot/jtreg/:tier1_compiler'
debug-suffix: -debug
- test-name: 'hs/tier1 gc'
test-suite: 'test/hotspot/jtreg/:tier1_gc'
debug-suffix: -debug
- test-name: 'hs/tier1 runtime'
test-suite: 'test/hotspot/jtreg/:tier1_runtime'
debug-suffix: -debug
- test-name: 'hs/tier1 serviceability'
test-suite: 'test/hotspot/jtreg/:tier1_serviceability'
debug-suffix: -debug
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v3
- name: 'Get MSYS2'
uses: ./.github/actions/get-msys2
if: runner.os == 'Windows'
- name: 'Get the BootJDK'
id: bootjdk
uses: ./.github/actions/get-bootjdk
with:
platform: ${{ inputs.bootjdk-platform }}
- name: 'Get JTReg'
id: jtreg
uses: ./.github/actions/get-jtreg
- name: 'Get bundles'
id: bundles
uses: ./.github/actions/get-bundles
with:
platform: ${{ inputs.platform }}
debug-suffix: ${{ matrix.debug-suffix }}
- name: 'Install dependencies'
run: |
# On macOS we need to install some dependencies for testing
brew install make
sudo xcode-select --switch /Applications/Xcode_11.7.app/Contents/Developer
# This will make GNU make available as 'make' and not only as 'gmake'
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH
if: runner.os == 'macOS'
- name: 'Set PATH'
id: path
run: |
# We need a minimal PATH on Windows
# Set PATH to "", so just GITHUB_PATH is included
if [[ '${{ runner.os }}' == 'Windows' ]]; then
echo "::set-output name=value::"
else
echo "::set-output name=value::$PATH"
fi
- name: 'Run tests'
id: run-tests
run: >
make test-prebuilt
TEST='${{ matrix.test-suite }}'
BOOT_JDK=${{ steps.bootjdk.outputs.path }}
JT_HOME=${{ steps.jtreg.outputs.path }}
JDK_IMAGE_DIR=${{ steps.bundles.outputs.jdk-path }}
SYMBOLS_IMAGE_DIR=${{ steps.bundles.outputs.symbols-path }}
TEST_IMAGE_DIR=${{ steps.bundles.outputs.tests-path }}
JTREG='JAVA_OPTIONS=-XX:-CreateCoredumpOnCrash;VERBOSE=fail,error,time;KEYWORDS=!headful'
&& bash ./.github/scripts/gen-test-summary.sh "$GITHUB_STEP_SUMMARY"
env:
PATH: ${{ steps.path.outputs.value }}
# This is a separate step, since if the markdown from a step gets bigger than
# 1024 kB it is skipped, but then the short summary above is still generated
- name: 'Generate test report'
run: bash ./.github/scripts/gen-test-results.sh "$GITHUB_STEP_SUMMARY"
if: always()
- name: 'Package test results'
id: package
run: |
# Package test-results and relevant parts of test-support
mkdir results
if [[ -d build/run-test-prebuilt/test-results ]]; then
cd build/run-test-prebuilt/test-results/
zip -r -9 "$GITHUB_WORKSPACE/results/test-results.zip" .
cd $GITHUB_WORKSPACE
else
echo '::warning ::Missing test-results directory'
fi
if [[ -d build/run-test-prebuilt/test-support ]]; then
cd build/run-test-prebuilt/test-support/
zip -r -9 "$GITHUB_WORKSPACE/results/test-support.zip" . -i *.jtr -i */hs_err*.log -i */replay*.log
cd $GITHUB_WORKSPACE
else
echo '::warning ::Missing test-support directory'
fi
artifact_name="results-${{ inputs.platform }}-$(echo ${{ matrix.test-name }} | tr '/ ' '__')"
echo "::set-output name=artifact-name::$artifact_name"
if: always()
- name: 'Upload test results'
uses: actions/upload-artifact@v3
with:
path: results
name: ${{ steps.package.outputs.artifact-name }}
if: always()
# This is the best way I found to abort the job with an error message
- name: 'Notify about test failures'
uses: actions/github-script@v6
with:
script: core.setFailed('${{ steps.run-tests.outputs.error-message }}')
if: steps.run-tests.outputs.failure == 'true'

2
.gitignore vendored
View File

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

View File

@@ -1,7 +1,7 @@
[general]
project=jdk
jbs=JDK
version=19
version=20
[checks]
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists

View File

@@ -1,7 +1,11 @@
[![official JetBrains project](http://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
# Welcome to the JDK!
# Welcome to JetBrains Runtime!
<a name="jetbrains-runtime"></a>
For build instructions please see the
[online documentation](https://openjdk.java.net/groups/build/doc/building.html),
or either of these files:
Do not use this branch. It is [outdated](https://youtrack.jetbrains.com/issue/JBR-4375/New-branch-naming-policy-in-JBR-repo).
Please use [main](https://github.com/JetBrains/JetBrainsRuntime/tree/main) instead.
- [doc/building.html](doc/building.html) (html version)
- [doc/building.md](doc/building.md) (markdown version)
See <https://openjdk.java.net/> for more information about
the OpenJDK Community and the JDK.

View File

@@ -25,26 +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>] [-c|--conf <conf_name>] [modules...]"
echo " -h | --help"
echo " -q | --quiet
No stdout output"
echo " -a | --absolute-paths
Use absolute paths to this jdk, so that generated .idea
project files can be moved independently of jdk sources"
echo " -r | --root <path>
Project content root
Default: $TOPLEVEL_DIR"
echo " -o | --output <path>
Where .idea directory with project files will be generated
(e.g. using '-o .' will place project files in './.idea')
Default: same as --root"
echo " -c | --conf <conf_name>
make configuration (release, slowdebug etc)"
echo " [modules...]
Generate project modules for specific java modules
(e.g. 'java.base java.desktop')
Default: all existing modules (java.* and jdk.*)"
echo "usage: $0 [-h|--help] [-v|--verbose] [-o|--output <path>] [-c|--conf <conf_name>] [modules]+"
exit 1
}
@@ -52,13 +33,10 @@ 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
@@ -67,24 +45,14 @@ 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
@@ -101,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
@@ -124,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="$*" $CONF_ARG || 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
@@ -159,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
@@ -219,106 +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
"src/"*) MAIN_SOURCE_DIRS="$MAIN_SOURCE_DIRS <sourceFolder url=\"file://$MODULE_DIR/$dir\" isTestSource=\"false\" />" ;;
*"/support/gensrc/$module") ;; # Exclude generated sources to avoid module-info conflicts, see https://youtrack.jetbrains.com/issue/IDEA-185108
*) CONTENT_ROOTS="$CONTENT_ROOTS <content url=\"file://$MODULE_DIR/$dir\">\
<sourceFolder url=\"file://$MODULE_DIR/$dir\" isTestSource=\"false\" generated=\"true\" /></content>" ;;
esac
done
if [ "x$MAIN_SOURCE_DIRS" != "x" ] ; then
CONTENT_ROOTS="<content url=\"file://$MODULE_DIR/src/$module\">$MAIN_SOURCE_DIRS</content>$CONTENT_ROOTS"
fi
add_replacement "###MODULE_CONTENT_ROOTS###" "$CONTENT_ROOTS"
DEPENDENCIES=""
for dep in $moduleDependencies; do
case $MODULE_NAMES in # Exclude skipped modules from dependencies
*"$dep"*) DEPENDENCIES="$DEPENDENCIES<orderEntry type=\"module\" module-name=\"$dep\" /> "
esac
done
add_replacement "###DEPENDENCIES###" "$DEPENDENCIES"
cp "$IDEA_OUTPUT/module.iml" "$IDEA_OUTPUT/$module.iml"
IFS="$DEFAULT_IFS"
replace_template_file "$IDEA_OUTPUT/$module.iml"
)
done
)
rm "$IDEA_OUTPUT/module.iml"
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

@@ -810,7 +810,7 @@ ls build/linux-aarch64-server-release/</code></pre></li>
<p><a href="http://github.com/icecc/icecream">icecc/icecream</a> is a simple way to setup a distributed compiler network. If you have multiple machines available for building the JDK, you can drastically cut individual build times by utilizing it.</p>
<p>To use, setup an icecc network, and install icecc on the build machine. Then run <code>configure</code> using <code>--enable-icecc</code>.</p>
<h3 id="using-sjavac">Using sjavac</h3>
<p>To speed up Java compilation, especially incremental compilations, you can try the experimental sjavac compiler by using <code>--enable-sjavac</code>.</p>
<p>To speed up compilation of Java code, especially during incremental compilations, the sjavac server is automatically enabled in the configuration step by default. To explicitly enable or disable sjavac, use either <code>--enable-javac-server</code> or <code>--disable-javac-server</code>.</p>
<h3 id="building-the-right-target">Building the Right Target</h3>
<p>Selecting the proper target to build can have dramatic impact on build time. For normal usage, <code>jdk</code> or the default target is just fine. You only need to build <code>images</code> for shipping, or if your tests require it.</p>
<p>See also <a href="#using-fine-grained-make-targets">Using Fine-Grained Make Targets</a> on how to build an even smaller subset of the product.</p>
@@ -898,13 +898,13 @@ spawn failed</code></pre>
<pre><code>export SOURCE_DATE_EPOCH=946684800
bash configure --with-version-opt=adhoc
make</code></pre>
<p>Note that regardless if you specify a source date for <code>configure</code> or not, the JDK build system will set <code>SOURCE_DATE_EPOCH</code> for all build tools when building. If <code>--with-source-date</code> has the value <code>updated</code> (which is the default unless <code>SOURCE_DATE_EPOCH</code> is found by in the environment by <code>configure</code>), the source date value will be determined at build time.</p>
<p>Note that regardless if you specify a source date for <code>configure</code> or not, the JDK build system will set <code>SOURCE_DATE_EPOCH</code> for all build tools when building. If <code>--with-source-date</code> has the value <code>current</code> (which is the default unless <code>SOURCE_DATE_EPOCH</code> is found by in the environment by <code>configure</code>), the source date value will be determined at configure time.</p>
<p>There are several aspects of reproducible builds that can be individually adjusted by <code>configure</code> arguments. If any of these are given, they will override the value derived from <code>SOURCE_DATE_EPOCH</code>. These arguments are:</p>
<ul>
<li><p><code>--with-source-date</code></p>
<p>This option controls how the JDK build sets <code>SOURCE_DATE_EPOCH</code> when building. It can be set to a value describing a date, either an epoch based timestamp as an integer, or a valid ISO-8601 date.</p>
<p>It can also be set to one of the special values <code>current</code>, <code>updated</code> or <code>version</code>. <code>current</code> means that the time of running <code>configure</code> will be used. <code>version</code> will use the nominal release date for the current JDK version. <code>updated</code>, which means that <code>SOURCE_DATE_EPOCH</code> will be set to the current time each time you are running <code>make</code>. All choices, except for <code>updated</code>, will set a fixed value for the source date timestamp.</p>
<p>When <code>SOURCE_DATE_EPOCH</code> is set, the default value for <code>--with-source-date</code> will be the value given by <code>SOURCE_DATE_EPOCH</code>. Otherwise, the default value is <code>updated</code>.</p></li>
<p>When <code>SOURCE_DATE_EPOCH</code> is set, the default value for <code>--with-source-date</code> will be the value given by <code>SOURCE_DATE_EPOCH</code>. Otherwise, the default value is <code>current</code>.</p></li>
<li><p><code>--with-hotspot-build-time</code></p>
<p>This option controls the build time string that will be included in the hotspot library (<code>libjvm.so</code> or <code>jvm.dll</code>). When the source date is fixed (e.g. by setting <code>SOURCE_DATE_EPOCH</code>), the default value for <code>--with-hotspot-build-time</code> will be an ISO 8601 representation of that time stamp. Otherwise the default value will be the current time when building hotspot.</p></li>
<li><p><code>--with-copyright-year</code></p>

View File

@@ -1296,8 +1296,10 @@ run `configure` using `--enable-icecc`.
### Using sjavac
To speed up Java compilation, especially incremental compilations, you can try
the experimental sjavac compiler by using `--enable-sjavac`.
To speed up compilation of Java code, especially during incremental compilations,
the sjavac server is automatically enabled in the configuration step by default.
To explicitly enable or disable sjavac, use either `--enable-javac-server`
or `--disable-javac-server`.
### Building the Right Target
@@ -1557,9 +1559,9 @@ make
Note that regardless if you specify a source date for `configure` or not, the
JDK build system will set `SOURCE_DATE_EPOCH` for all build tools when building.
If `--with-source-date` has the value `updated` (which is the default unless
If `--with-source-date` has the value `current` (which is the default unless
`SOURCE_DATE_EPOCH` is found by in the environment by `configure`), the source
date value will be determined at build time.
date value will be determined at configure time.
There are several aspects of reproducible builds that can be individually
adjusted by `configure` arguments. If any of these are given, they will override
@@ -1580,7 +1582,7 @@ the value derived from `SOURCE_DATE_EPOCH`. These arguments are:
When `SOURCE_DATE_EPOCH` is set, the default value for `--with-source-date`
will be the value given by `SOURCE_DATE_EPOCH`. Otherwise, the default value
is `updated`.
is `current`.
* `--with-hotspot-build-time`

View File

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

View File

@@ -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/zulu17.28.13-ca-jdk17.0.0-linux_x64.tar.gz \
-O - | tar xz -C /
RUN mv /zulu17.28.13-ca-jdk17.0.0-linux_x64 /jdk17.0.0
ENV PATH /opt/rh/devtoolset-8/root/usr/bin:$PATH
RUN mkdir .git
RUN git config user.email "teamcity@jetbrains.com"
RUN git config user.name "builduser"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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 jb/project/tools/common/modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.x86
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.x86 | sed s/" "//g | sed s/,$//g) --output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
echo Creating $JBR.tar.gz ...
tar -pcf $JBR.tar -C $BASE_DIR $JBR_BUNDLE || exit $?
gzip $JBR.tar || exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-x86-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' --exclude='test/hotspot/gtest' test || exit $?
gzip $JBRSDK_TEST.tar || exit $?

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

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

View File

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

View File

@@ -1,63 +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 jb/project/tools/common/modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.x86
echo ",jdk.crypto.mscapi" >> modules.list.x86
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.x86 | sed s/" "//g) --output ${JBR_BUNDLE} || exit $?
echo Modifying release info ...
#grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${JBR_BUNDLE}/release

View File

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

View File

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

@@ -1,5 +1,5 @@
#
# Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -226,13 +226,6 @@ else
JMOD_FLAGS += --exclude '**{_the.*,_*.marker*,*.diz,*.debuginfo,*.dSYM/**,*.dSYM}'
endif
# For reproducible builds specify the jmod --date using SOURCE_DATE in ISO-8601
ifeq ($(ENABLE_REPRODUCIBLE_BUILD), true)
JMOD_SOURCE_DATE := --date $(SOURCE_DATE_ISO_8601)
else
JMOD_SOURCE_DATE :=
endif
# Create jmods in the support dir and then move them into place to keep the
# module path in $(IMAGES_OUTPUTDIR)/jmods valid at all times.
$(eval $(call SetupExecute, create_$(JMOD_FILE), \
@@ -244,7 +237,7 @@ $(eval $(call SetupExecute, create_$(JMOD_FILE), \
COMMAND := $(JMOD) create --module-version $(VERSION_SHORT) \
--target-platform '$(OPENJDK_MODULE_TARGET_PLATFORM)' \
--module-path $(JMODS_DIR) $(JMOD_FLAGS) \
$(JMOD_SOURCE_DATE) \
--date $(SOURCE_DATE_ISO_8601) \
$(JMODS_SUPPORT_DIR)/$(JMOD_FILE), \
POST_COMMAND := $(MV) $(JMODS_SUPPORT_DIR)/$(JMOD_FILE) $(JMODS_DIR)/$(JMOD_FILE), \
))

View File

@@ -104,14 +104,14 @@ JAVADOC_DISABLED_DOCLINT_PACKAGES := org.w3c.* javax.smartcardio
# The initial set of options for javadoc
JAVADOC_OPTIONS := -use -keywords -notimestamp \
-serialwarn -encoding ISO-8859-1 -docencoding UTF-8 -breakiterator \
-encoding ISO-8859-1 -docencoding UTF-8 -breakiterator \
-splitIndex --system none -javafx --expand-requires transitive \
--override-methods=summary
# The reference options must stay stable to allow for comparisons across the
# development cycle.
REFERENCE_OPTIONS := -XDignore.symbol.file=true -use -keywords -notimestamp \
-serialwarn -encoding ISO-8859-1 -breakiterator -splitIndex --system none \
-encoding ISO-8859-1 -breakiterator -splitIndex --system none \
-html5 -javafx --expand-requires transitive
# Should we add DRAFT stamps to the generated javadoc?

View File

@@ -436,21 +436,24 @@ else # $(HAS_SPEC)=true
define PrintFailureReports
$(if $(filter none, $(LOG_REPORT)), , \
$(RM) $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log ; \
$(if $(wildcard $(MAKESUPPORT_OUTPUTDIR)/failure-logs/*.log), \
$(PRINTF) "\n=== Output from failing command(s) repeated here ===\n" $(NEWLINE) \
$(foreach logfile, $(sort $(wildcard $(MAKESUPPORT_OUTPUTDIR)/failure-logs/*.log)), \
$(PRINTF) "* For target $(notdir $(basename $(logfile))):\n" $(NEWLINE) \
$(if $(filter all, $(LOG_REPORT)), \
$(GREP) -v -e "^Note: including file:" < $(logfile) || true $(NEWLINE) \
, \
($(GREP) -v -e "^Note: including file:" < $(logfile) || true) | $(HEAD) -n 15 $(NEWLINE) \
if test `$(WC) -l < $(logfile)` -gt 15; then \
$(ECHO) " ... (rest of output omitted)" ; \
fi $(NEWLINE) \
) \
) \
$(PRINTF) "\n* All command lines available in $(MAKESUPPORT_OUTPUTDIR)/failure-logs.\n" $(NEWLINE) \
$(PRINTF) "=== End of repeated output ===\n" \
( \
$(PRINTF) "\n=== Output from failing command(s) repeated here ===\n" ; \
$(foreach logfile, $(sort $(wildcard $(MAKESUPPORT_OUTPUTDIR)/failure-logs/*.log)), \
$(PRINTF) "* For target $(notdir $(basename $(logfile))):\n" ; \
$(if $(filter all, $(LOG_REPORT)), \
$(GREP) -v -e "^Note: including file:" < $(logfile) || true ; \
, \
($(GREP) -v -e "^Note: including file:" < $(logfile) || true) | $(HEAD) -n 15 ; \
if test `$(WC) -l < $(logfile)` -gt 15; then \
$(ECHO) " ... (rest of output omitted)" ; \
fi ; \
) \
) \
$(PRINTF) "\n* All command lines available in $(MAKESUPPORT_OUTPUTDIR)/failure-logs.\n" ; \
$(PRINTF) "=== End of repeated output ===\n" ; \
) >> $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log \
) \
)
endef
@@ -465,7 +468,8 @@ else # $(HAS_SPEC)=true
else \
$(PRINTF) "\nNo indication of failed target found.\n" ; \
$(PRINTF) "HELP: Try searching the build log for '] Error'.\n" ; \
fi \
fi >> $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log ; \
$(CAT) $(MAKESUPPORT_OUTPUTDIR)/failure-summary.log \
)
endef

View File

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

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