Compare commits

..

2869 Commits

Author SHA1 Message Date
Joe Darcy
99c7b2b85b 8249273: Documentation of BigInteger(String) constructor does not mention leading plus
Reviewed-by: bpb
2020-08-06 09:58:57 -07:00
Chihiro Ito
db4d59cc0c 8250912: Recording#copy() doesn't copy the flush interval
Reviewed-by: jbachorik
2020-08-06 23:47:55 +09:00
Zhengyu Gu
b0e4e9a2e4 8251192: Shenandoah: Shenandoah build failed after JDK-8235573
Reviewed-by: stuefe, ysuenaga, adityam
2020-08-06 08:30:37 -04:00
Joe Darcy
2d3372c8b5 8250660: Clarify that WildcardType and AnnotatedWildcardType bounds methods return one
Reviewed-by: mchung, dholmes
2020-08-05 23:02:22 -07:00
Mikael Vidstedt
dc86b2e22b Added tag jdk-16+9 for changeset c075a286cc7d 2020-08-05 19:05:05 -07:00
Igor Ignatyev
b37b1a391a 8251126: nsk.share.GoldChecker should read golden file from ${test.src}
Reviewed-by: dholmes
2020-08-05 16:39:38 -07:00
Igor Ignatyev
65577cf58a 8251132: make main classes public in vmTestbase/jit tests
Reviewed-by: kvn
2020-08-05 16:39:08 -07:00
Brian Burkhalter
3ea5fdc9ac 8235792: LineNumberReader.getLineNumber() behavior is inconsistent with respect to EOF
Reviewed-by: alanb, darcy, rriggs
2020-08-05 11:40:07 -07:00
Ludovic Henry
339016a0f2 8250902: Implement MD5 Intrinsics on x86
Reviewed-by: kvn, vdeshpande, ascarpino
2020-08-05 11:32:15 -07:00
Leonid Mesnik
13946835b5 8244537: JDI tests fail due to "ERROR: Exception : nsk.share.jdi.JDITestRuntimeException: JDITestRuntimeException : ** event IS NOT a breakpoint **"
Reviewed-by: sspitsyn, amenkov
2020-08-05 10:48:55 -07:00
Igor Ignatyev
0019679c69 8251190: nsk jdi tests failing "TestBug: Exception during config file parsing: java.io.FileNotFoundException"
Reviewed-by: dholmes, sspitsyn
2020-08-05 08:57:21 -07:00
Galder Zamarreno
96f56eb4fc 8248158: Configure fails with autoconf not found even though it's installed
Reviewed-by: erikj, ihse, stooke
2020-08-05 11:59:10 +02:00
Coleen Phillimore
97bbbbba51 8235573: Move JFR ObjectSample oop into OopStorage
Reviewed-by: mgronlun, dholmes, kbarrett
2020-08-05 10:25:49 -04:00
Harold Seigel
c200b4f1cb 8139875: [TESTBUG] Improve nsk/stress/stack/* tests
Use -Xss200k to limit the stack size, avoid running with -Xcomp, and, in one test, reduce iterations.

Reviewed-by: dholmes, lfoltan
2020-08-05 13:27:43 +00:00
Boris Ulasevich
1066357887 8248445: Use of AbsI/AbsL nodes should be limited to supported platforms
Reviewed-by: kvn, vlivanov
2020-08-05 06:31:32 -04:00
Joe Darcy
3a0741afa1 8250920: Increase @jls usage in core reflection
Reviewed-by: mchung
2020-08-04 20:31:57 -07:00
Igor Ignatyev
61ebb6adb7 8249030: clean up FileInstaller $test.src $cwd in vmTestbase_nsk_jdi tests
Reviewed-by: dholmes, sspitsyn
2020-08-04 20:05:47 -07:00
Igor Ignatyev
a53ecac07c 8251128: remove vmTestbase/vm/compiler/jbe/combine
Reviewed-by: kvn
2020-08-04 20:04:47 -07:00
Jie Fu
30c8811d11 8251031: Some vmTestbase/nsk/monitoring/RuntimeMXBean tests fail with hostnames starting from digits
Reviewed-by: dholmes, cjplummer, sspitsyn
2020-08-05 10:54:18 +08:00
David Holmes
6b8c16cf41 8248906: runtime/Thread/ThreadObjAccessAtExit.java fails due to OutOfMemoryErrors
Reviewed-by: mdoerr
2020-08-04 21:11:45 -04:00
Alexander Matveev
45c4d9d519 8250646: hdiutil detach fix JDK-8245311 still fails sometimes
Reviewed-by: herrick, asemenyuk
2020-08-04 17:47:51 -07:00
Yasumasa Suenaga
36b129fe84 8250826: jhsdb does not work with coredump which comes from Substrate VM
Reviewed-by: cjplummer, sspitsyn
2020-08-05 09:24:02 +09:00
Chris Plummer
eaf70e0ab8 8247516: DSO.closestSymbolToPC() should use dbg.lookup() rather than rely on java ELF file support
Reviewed-by: sspitsyn, ysuenaga
2020-08-04 13:58:11 -07:00
Vladimir Kozlov
c79e6346d0 8250233: -XX:+CITime triggers guarantee(events != NULL) in jvmci.cpp:173
Add missing EnableJVMCI flag check. Refactoring compiler print statistic code.

Reviewed-by: thartmann
2020-08-04 13:16:45 -07:00
Calvin Cheung
d7c7f70a6a 8249586: Test runtime/cds/appcds/DirClasspathTest.java will fail if run twice
Add the StandardCopyOption.REPLACE_EXISTING option when calling Files.copy().

Reviewed-by: iklam
2020-08-04 19:17:31 +00:00
Mandy Chung
f4de95a97c 8250219: Proxy::newProxyInstance spec should specify the behavior if a given proxy interface is hidden
Reviewed-by: alanb
2020-08-04 10:36:02 -07:00
Mandy Chung
38af8be984 8022795: Method.isVarargs of dynamic proxy generated method to match the proxy interface method
Reviewed-by: rriggs, darcy
2020-08-04 10:26:39 -07:00
Kim Barrett
b0ceab23dd 8250652: Add logical operations on types
Add stand-ins for C++17 logical operations on types.

Reviewed-by: eosterlund, tschatzl
2020-08-04 04:19:23 -04:00
Yasumasa Suenaga
39616b4d7c 8250930: [TESTBUG] Some forceEarlyReturn00* tests failed due to compiler optimization
Reviewed-by: cjplummer, dholmes
2020-08-04 15:28:27 +09:00
Mikael Vidstedt
00d223cff6 8250899: Backout JDK-8249628 from jdk/jdk
Reviewed-by: erikj
2020-08-03 22:10:31 -07:00
Mikael Vidstedt
bafa476135 Merge 2020-08-03 22:08:37 -07:00
Mikael Vidstedt
15a9c29036 Merge 2020-08-03 21:56:35 -07:00
Mikhailo Seledtsov
4bd94fb9ea 8250986: Problem list docker/TestMemoryAwareness.java and docker/TestDockerMemoryMetrics.java for linux-5.4.0-1019-oracle
Problem listed the tests

Reviewed-by: dholmes
2020-08-03 18:58:53 -07:00
Chris Plummer
54bed60bfe 8250750: JDK-8247515 fix for OSX pc_to_symbol() lookup fails with some symbols
8249150: SA core file tests sometimes time out on OSX with "java.io.IOException: App waiting timeout"

Reviewed-by: sspitsyn, amenkov
2020-08-03 17:38:22 -07:00
Chris Plummer
d12fdfa3b7 8250750: JDK-8247515 fix for OSX pc_to_symbol() lookup fails with some symbols
Reviewed-by: sspitsyn, kevinw
2020-08-03 16:11:41 -07:00
Rajan Halade
1e535dfa53 8243320: Add SSL root certificates to Oracle Root CA program
Reviewed-by: mullan
2020-08-03 11:35:24 -07:00
Albert Mingkun Yang
9385203fbd 8250628: ZGC: fixup_partial_loads was removed, but still are referenced
Reviewed-by: eosterlund, kbarrett, lkorinth
2020-08-03 14:01:00 +02:00
Christian Hagedorn
696b9e1847 8249605: C2: assert(no_dead_loop) failed: dead loop detected
Fixed dead loop detection in PhiNode::Ideal() to additionally account for dead MergeMemNodes

Reviewed-by: kvn, thartmann
2020-08-03 09:21:45 +02:00
Monica Beckwith
d9abf606d9 8250824: AArch64: follow up for JDK-8248414
The original change missed to update an assert.

Co-authored-by: Ludovic Henry <luhenry@microsoft.com>
Co-authored-by: Bernhard Urban-Forster <beurba@microsoft.com>
Reviewed-by: dholmes
2020-08-03 00:16:49 -04:00
Aleksey Shipilev
ddb726d4a0 8250844: Make sure {type,obj}ArrayOopDesc accessors check the bounds
Reviewed-by: rrich, coleenp
2020-08-02 16:58:14 +02:00
Thomas Stuefe
aab365f746 8250911: [windows] os::pd_map_memory() error detection broken
Reviewed-by: iklam, kbarrett
2020-08-02 09:54:33 +02:00
Prasanta Sadhukhan
13a335722f Merge 2020-08-02 10:34:21 +05:30
Robert Field
9390446081 8249566: jshell tool: retained modes from JDK-13 or prior cause confusing messages to be generated for records
Reviewed-by: jlahoda
2020-08-01 14:18:06 -07:00
Prasanta Sadhukhan
b76a154c6d Merge 2020-08-01 17:54:03 +05:30
Chihiro Ito
ee5dc7cbb4 8250818: idea.sh script doesn't work on WSL 1 and 2
Reviewed-by: erikj
2020-08-01 20:25:02 +09:00
Jie Fu
e03ca73dc1 8250825: C2 crashes with assert(field != __null) failed: missing field
Reviewed-by: kvn, thartmann
2020-07-31 17:10:46 +08:00
Xin Liu
a9ad296a55 8249809: avoid calling DirectiveSet::clone(this) in compilecommand_compatibility_init
Add DirectiveSet smart pointer to isolate cloning

Reviewed-by: simonis, thartmann
2020-07-31 11:35:25 -07:00
Joe Wang
024fa0969a 8250638: Address reliance on default constructors in java.xml
Reviewed-by: darcy, lancea
2020-07-31 18:25:12 +00:00
Patrick Concannon
dc71097c2e 8250889: Disable testing SendReceiveMaxSize with preferIPv4Stack=true on the old impl until JDK-8250886 is fixed
The `test java/net/DatagramSocket/SendReceiveMaxSize` is currently failing when run with `-Djdk.net.usePlainDatagramSocketImpl` and `-Djava.net.preferIPv4Stack=true`. This fix removes these run settings from the test until a more permanent solution can be found.

Reviewed-by: dfuchs
2020-07-31 18:59:27 +01:00
Vicente Romero
229f41808d 8250629: do not allow C-style array declaration in record components
Reviewed-by: jlahoda
2020-07-31 12:13:52 -04:00
Naoto Sato
58107e52a8 8233048: WeekFields.ISO is not a singleton
Reviewed-by: joehw, rriggs, scolebourne
2020-07-31 09:09:53 -07:00
Vicente Romero
0f5e57aa8c 8250741: an annotation interface may not be declared as a local interface
Reviewed-by: jlahoda
2020-07-31 12:05:55 -04:00
Patrick Concannon
7fd5cb6117 8242885: PlainDatagramSocketImpl doesn’t allow for the sending of IPv6 datagrams on macOS with sizes between 65508-65527 bytes
This fix changes the current max size for IPv6 datagrams on macOS from it's current size of 65507, which is the IPv4 limit, to 65527, the actual limit for IPv6 on macOS

Reviewed-by: alanb, dfuchs, vtewari
2020-07-31 12:42:32 +01:00
Patrick Concannon
2dda9965cd 8246164: SendDatagramToBadAddress.java and ChangingAddress.java should be changed to explicitly require the new DatagramSocket implementation
This fix updates these tests to explicitly run with `-Djdk.net.usePlainDatagramSocketImpl=false` to avoid false failures when running all tests with a global jtreg -Djdk.net.usePlainDatagramSocketImpl switch.

Reviewed-by: vtewari
2020-07-31 12:12:49 +01:00
Hannes Wallnöfer
1cc8d3a34b 8241518: Member signature parameter span contains closing but not opening parens
Reviewed-by: prappo
2020-07-31 12:09:59 +02:00
Pankaj Bansal
38636a8c96 8233635: [TESTBUG] ProgressMonitorEscapeKeyPress.java fails on macos
Reviewed-by: psadhukhan
2020-07-31 13:25:15 +05:30
Igor Ignatyev
d5c4c292a0 6501010: test/java/io/File/GetXSpace.java fails on Windows
Reviewed-by: bpb
2020-07-30 19:39:44 -07:00
Koichi Sakata
e3c6574ac0 8250863: Build error with GCC 10 in NetworkInterface.c and k_standard.c
Reviewed-by: aph, ysuenaga
2020-07-31 09:15:57 +09:00
Sergey Bylokhov
72b530aac4 8250755: Better cleanup for jdk/test/javax/imageio/plugins/shared/CanWriteSequence.java
Reviewed-by: jdv
2020-07-31 00:19:42 +01:00
Brian Burkhalter
d6035a522e 8249772: (ch) Improve sun/nio/ch/TestMaxCachedBufferSize.java
Reviewed-by: alanb
2020-07-30 15:06:29 -07:00
Hannes Wallnöfer
39892bf43f 8250779: Anchor is ignored when reloading a page in Chrome
Reviewed-by: prappo
2020-07-30 16:53:56 +02:00
Coleen Phillimore
9798a0846b 8249837: Avoid direct or implicit Thread::current() calls when we already have a current thread variable
Add current thread OR remove unneeded HandleMark

Reviewed-by: kvn, dholmes
2020-07-30 10:41:31 -04:00
Prasanta Sadhukhan
fff8122978 8146451: javax/swing/JComponent/4337267/bug4337267.java failed on Windows
Reviewed-by: serb
2020-07-29 17:29:45 +05:30
Prasanta Sadhukhan
8812113984 8169959: javax/swing/JTable/6263446/bug6263446.java: Table should be editing
Reviewed-by: serb
2020-07-28 12:07:20 +05:30
Prasanta Sadhukhan
74eb250e36 8246742: ServiceUI.printDialog does not support properties dialog
Reviewed-by: prr, jdv
2020-07-28 12:00:55 +05:30
Huang Wang
846d21961c 8250609: C2 crash in IfNode::fold_compares
Reviewed-by: kvn, chagedorn
2020-07-28 10:38:04 +08:00
Dean Long
6986d53af9 8248597: [Graal] api/java_security/SignatureSpi/DelegationTests.html fails with Method "javasoft.sqe.tests.api.java.security.SignatureSpi.JCKSignatureSpi.clear" doesn't exist
Reviewed-by: kvn
2020-07-29 23:15:48 -07:00
Matthias Baesken
11a8c9c13e 8250770: Net.java translateToSocketException does not handle IOException
Reviewed-by: alanb, dfuchs
2020-07-29 12:56:02 +02:00
Mikael Vidstedt
7efa6090e8 Added tag jdk-15+34 for changeset b0817631d2f4 2020-07-29 18:24:00 -07:00
Igor Ignatyev
03cf1c3a83 8250688: missed open parenthesis for GTEST_FRAMEWORK_SRC var in Main.gmk
Reviewed-by: erikj
2020-07-28 09:05:06 -07:00
Zhengyu Gu
3a8a15b5d0 8250588: Shenandoah: LRB needs to save/restore fp registers for runtime call
Reviewed-by: rkennke
2020-07-28 10:32:57 -04:00
Prasanta Sadhukhan
831e98327b Merge 2020-07-26 14:46:36 +05:30
Joe Darcy
dfd3080c05 8250583: Address reliance on default constructors in java.management
Reviewed-by: alanb
2020-07-25 12:49:09 -07:00
Prasanta Sadhukhan
091b0c95c3 Merge 2020-07-25 12:48:29 +05:30
Doug Simon
41eaa00eed 8250548: libgraal can deadlock in -Xcomp mode
Reviewed-by: never, kvn
2020-07-25 08:41:51 +02:00
Aleksei Voitylov
5a365e8627 8248239: jpackage adds some arguments twice in case it is re-executed by JLI
Reviewed-by: herrick, almatvee
2020-07-24 19:54:01 -04:00
Joe Darcy
c0b9999c35 8250578: Address reliance on default constructors in javax.sql
Reviewed-by: lancea
2020-07-25 09:46:08 -07:00
Joe Darcy
0e54ce2a8e 8250244: Address reliance on default constructors in java.net
Reviewed-by: alanb, vtewari
2020-07-25 09:42:45 -07:00
Coleen Phillimore
ac4dc0470e 8250519: [REDO] Move mirror oops from Universe into OopStorage
Redo the patch but add a null pointer check where one belongs.

Reviewed-by: dcubed, iklam, dholmes
2020-07-25 10:36:19 -04:00
Hai-May Chao
cce3929e07 8247960: jarsigner says "signer errors" for some normal warnings when -strict is set
8250586: jarsigner refactoring in displayMessagesAndResult() method

Reviewed-by: weijun
2020-07-25 16:40:10 +08:00
Alexander Matveev
bbddae5552 8248248: [macos] EmptyFolderPackageTest.java fails EmptyFolderPackageTest-dmg-setup.scpt exited with 134 code
Reviewed-by: herrick, asemenyuk
2020-07-24 16:46:18 -07:00
Joe Darcy
5db58348f8 8250246: Address reliance on default constructors in security libs
Reviewed-by: mullan
2020-07-24 13:49:38 -07:00
Harold Seigel
9b73fb125d 8250557: Rename vmTestbase/nsk shared timeout handler package to Terminator.java
Rename the class and fix the tests that use it.

Reviewed-by: dcubed
2020-07-24 18:44:27 +00:00
Erik Joelsson
fcd5d414d6 8246094: [macos] Sound Recording and playback is not working
Reviewed-by: prr, serb
2020-07-24 10:52:02 -07:00
Yumin Qi
4b076cb93f 8249624: update appcds/sharedStrings/IncompatibleOptions test in view of 8081416 closed as WNF
With CDS can archive with compressed oops off, the result of the test gives correct information.

Reviewed-by: iklam, dholmes
2020-07-24 10:29:27 -07:00
Pavel Rappo
922ba8da30 8240777: Update all nroff manpages for JDK 15 release
Reviewed-by: dholmes
2020-07-24 17:06:35 +01:00
Roger Riggs
a0149f53f1 8249217: Unexpected StackOverflowError in "process reaper" thread still happens
Reviewed-by: martin, plevart, dholmes
2020-07-24 11:00:50 -04:00
Coleen Phillimore
e6875c9bac Merge 2020-07-24 10:51:38 -04:00
Vicente Romero
75d642a467 8243057: compilation of annotated static record fields fails with NPE
Reviewed-by: jlahoda
2020-07-24 10:34:18 -04:00
Coleen Phillimore
cbf6894299 8250516: [BACKOUT] Move mirror oops from Universe into OopStorage
Reviewed-by: dholmes, tschatzl
2020-07-24 10:34:11 -04:00
Boris Ulasevich
77c4adbeb5 8249189: AARCH64: more L2I conversions can be skipped
Reviewed-by: aph
2020-07-24 09:07:10 -04:00
Harold Seigel
890ca6ea2c 8222582: [TESTBUG] AbstractMethodErrorTest.java fails with "did not test both cases (interpreted and compiled)."
Exclude the test from running with Graal

Reviewed-by: dholmes, coleenp
2020-07-24 12:40:41 +00:00
Coleen Phillimore
bd12e85975 8249938: Move mirror oops from Universe into OopStorage
Save and restore mirror oops to temporary array for CDS, and move them to OopStorage once restored.

Reviewed-by: iklam, dholmes
2020-07-24 08:32:27 -04:00
Boris Ulasevich
4a1d4be729 8248870: AARCH64: I2L/L2I conversions can be skipped for masked positive values
Reviewed-by: aph
2020-07-24 08:21:11 -04:00
Michael McMahon
f79b7e62db Merge 2020-07-24 12:49:33 +01:00
Coleen Phillimore
c63911b33b 8249822: SymbolPropertyTable creates an extra OopHandle per entry
Add an assert to OopHandle assigment operator to catch leaking OopHandles, and fix code accordingly.

Reviewed-by: sspitsyn, eosterlund, dholmes
2020-07-24 07:45:38 -04:00
Rahul Yadav
778d8a45cb 8245306: Update sun.security.ssl.SSLLogger to use Immutable DateTimeFormatter
The fix updates sun.security.ssl.SSLLogger to use DateTimeFormatter to make it virtual thread friendly

Reviewed-by: alanb, jnimeh
2020-07-24 12:07:59 +01:00
Kim Barrett
8b005fa74e 8249945: Improve ARRAY_SIZE()
Make ARRAY_SIZE type-safe.

Reviewed-by: tschatzl, lfoltan, dholmes
2020-07-24 05:07:37 -04:00
Monica Beckwith
26680f0c1a 8248668: AArch64: Avoid MIN/MAX macros when using MSVC
MSVC employs min/max as macros

Co-authored-by: Ludovic Henry <luhenry@microsoft.com>
Reviewed-by: tschatzl, kbarrett
2020-07-24 11:16:08 +02:00
Cesar Soares Lucas
eaeb43542b 8249225: Move definition of PADDING_ELEM_NUM
Reviewed-by: tschatzl, kbarrett
2020-07-24 11:16:05 +02:00
Nick Gasson
22006dceb4 8249781: AArch64: AOT compiled code crashes if C2 allocates r27
Reviewed-by: aph
2020-07-24 11:28:28 +08:00
Kim Barrett
df923ff2fb 8249944: Move and improve the AllStatic class
Move AllStatic to it's own standalone file, and use C++11 deleted functions

Reviewed-by: dholmes, stuefe
2020-07-24 04:43:08 -04:00
Kim Barrett
55b19e84f2 8247908: Replace IsRegisteredEnum with std::is_enum
Reviewed-by: tschatzl, dholmes
2020-07-24 04:29:34 -04:00
Joe Darcy
0ef80293f9 8250240: Address use of default constructors in the java.util.concurrent
Reviewed-by: martin, lancea
2020-07-23 22:50:12 -07:00
David Holmes
1f91e0ebe3 8194309: JNI handle allocation failure not reported correctly
Reviewed-by: kbarrett, coleenp
2020-07-23 21:46:39 -04:00
Stuart Monteith
e427697e55 8246373: AArch64: Refactor register spilling code in ZGC barriers
Tidy up code spilling registers, reduce in some cases.

Reviewed-by: aph, eosterlund
2020-07-24 09:00:40 +08:00
Joe Darcy
5c8a154e93 8250237: Address use of default constructors in the javax.script package
Reviewed-by: lancea, psandoz
2020-07-23 15:13:08 -07:00
Daniel D. Daugherty
2abefad512 8250236: ProblemList java/lang/invoke/lambda/LambdaFileEncodingSerialization.java on linux-x64
Reviewed-by: rriggs
2020-07-23 16:36:44 -04:00
Daniel Fuchs
9f23c2c159 8249812: java/net/DatagramSocket/PortUnreachable.java still fails intermittently with SocketTimeoutException
Fixed the test to reenable its retry logic

Reviewed-by: alanb
2020-07-23 20:25:41 +01:00
Thomas Schatzl
6d665ed31f 8249192: MonitorInfo stores raw oops across safepoints
Change raw oops in MonitorInfo to Handles and update Resource/HandleMarks.

Reviewed-by: sspitsyn, dholmes, coleenp, dcubed
2020-07-23 21:10:52 +02:00
Joe Darcy
bb6647c845 8250221: Address use of default constructors in java.logging
Reviewed-by: lancea
2020-07-23 11:26:23 -07:00
Mark Reinhold
8a9d2b08a0 8250216: The README need not mention retrieving source code
Reviewed-by: darcy, erikj
2020-07-23 10:40:52 -07:00
Robert Field
6e198fec0b 8249197: JShell: variable declaration with unicode type name gets garbled result
8249199: JShell: Consistent representation of unicode

Reviewed-by: jlahoda
2020-07-23 10:37:06 -07:00
Calvin Cheung
5088193336 8249630: unused is_static_archive parameter in SystemDictionaryShared::write_dictionary
Reviewed-by: minqi, dholmes
2020-07-23 16:52:08 +00:00
Aleksei Voitylov
8b87402a44 8247592: refactor test/jdk/tools/launcher/Test7029048.java
Reviewed-by: mchung
2020-07-23 09:43:55 -07:00
Naoto Sato
1f63603288 8248655: Support supplementary characters in String case insensitive operations
8248434: some newly added locale cannot parse uppercased date string

Reviewed-by: jlaskey, joehw, rriggs, bchristi
2020-07-23 08:46:31 -07:00
Roman Kennke
a28f4100ce 8249787: Make TestGCLocker more resilient with concurrent GCs
Reviewed-by: eosterlund, tschatzl
2020-07-23 14:44:13 +02:00
Aleksey Shipilev
dc80e63811 8249953: Shenandoah: gc/shenandoah/mxbeans tests should account for corner cases
Reviewed-by: rkennke
2020-07-23 12:46:24 +02:00
Doug Simon
63d2421c3b 8249888: failure to create a libgraal JavaVM should result in a VM crash
Reviewed-by: never, kvn
2020-07-23 11:47:20 +02:00
Alexander Scherbatiy
993b1b0afa 8249612: Remove unused ISNANF and ISNAND from jdk_util_md.h
Reviewed-by: darcy
2020-07-23 11:39:56 +03:00
Mikael Vidstedt
54ad4f9a80 Added tag jdk-15+33 for changeset 6b65f4e7a975 2020-07-22 19:17:32 -07:00
Bob Vandette
33016a8325 8249880: JVMCI calling register_nmethod without CodeCache lock
Reviewed-by: eosterlund, kvn, never
2020-07-22 17:59:33 +00:00
Phil Race
b1ff2bd00a 8249821: Separate libharfbuzz from libfontmanager
Reviewed-by: erikj
2020-07-22 07:46:50 -07:00
Bernhard Urban-Forster
2f8653fbf0 8248666: AArch64: Use THREAD_LOCAL instead of __thread
__thread is gcc-ism, instead rely on compiler independent macro.

Reviewed-by: dholmes
2020-07-22 15:03:50 +02:00
David Holmes
1b1c1cd7b9 8249940: Remove unnecessary includes of jni_util.h in native tests
Reviewed-by: iignatyev, mchung
2020-07-23 00:47:02 -04:00
Yasumasa Suenaga
401d3ea9bc 8249875: GCC 10 warnings -Wtype-limits with JFR code
Reviewed-by: mgronlun
2020-07-23 12:19:59 +09:00
Mikael Vidstedt
9cf96bf398 Merge 2020-07-22 19:45:45 -07:00
Mikael Vidstedt
668acc7581 Added tag jdk-16+7 for changeset c3a4a7ea7c30 2020-07-22 19:20:42 -07:00
Alexander Matveev
f8a06bc497 8245311: [macos] misc package tests failed due to "execution error: Finder got an error: AppleEvent timed out."
Reviewed-by: herrick, asemenyuk
2020-07-22 14:19:01 -07:00
Bob Vandette
a764279daa 8249880: JVMCI calling register_nmethod without CodeCache lock
Reviewed-by: eosterlund, kvn, never
2020-07-22 17:59:33 +00:00
Roman Kennke
9b42f4786c 8249884: Shenandoah: Call report_num_dead() from ShParallelWeakRootsCleaningTask destructor
Reviewed-by: zgu
2020-07-22 17:08:01 +02:00
Coleen Phillimore
2d8e74ddea 8249768: Move static oops and NullPointerException oops from Universe into OopStorage
Make NPE oops an objArrayOop.

Reviewed-by: dholmes, eosterlund
2020-07-22 10:32:44 -04:00
Raffaello Giulietti
4d43cf9fc6 8222187: java.util.Base64.Decoder stream adds unexpected null bytes at the end
Reviewed-by: lancea, rriggs
2020-07-22 10:01:03 -04:00
Roman Kennke
45e17d8dd2 8249877: Shenandoah: Report number of dead weak oops during STW weak roots
Reviewed-by: zgu
2020-07-22 15:16:57 +02:00
Christian Hagedorn
18cf3d8080 8247743: Segmentation fault in debug builds due to stack overflow in find_recur with deep graphs
Replace the recursive algorithm of Node::find() by an iterative one to avoid a stack overflow crash with deep graphs.

Reviewed-by: kvn, thartmann
2020-07-22 10:31:37 +02:00
Christian Hagedorn
4f99e1fb11 8248467: C2: compiler/intrinsics/object/TestClone fails with -XX:+VerifyGraphEdges
Fix assert by taking MemBarNodes into account whose precedence edge can be NULL.

Reviewed-by: kvn, thartmann
2020-07-22 10:28:34 +02:00
David Holmes
73c75ed838 8249650: Optimize JNIHandle::make_local thread variable usage
Reviewed-by: kbarrett, dcubed, kvn, coleenp, sspitsyn
2020-07-22 01:27:08 -04:00
Kim Barrett
2a8f92e7e7 8246032: Implementation of JEP 347: Enable C++14 Language Features
Update build configuration to use C++14

Reviewed-by: jlaskey, mdoerr, ihse, erikj
2020-07-22 00:13:53 -04:00
Jamsheed Mohammed C M
39b22d134f 8242895: failed: sanity at src/hotspot/share/opto/escape.cpp:2361
The address_offset code in EA was improved to detect raw stores(init captured ones) after loopopt.

Reviewed-by: kvn, thartmann
2020-07-21 08:03:20 -07:00
Bernhard Urban-Forster
dff37f89c5 8248671: AArch64: Remove unused variables
Remove unused variables in the AArch64 backend. Detected by compiling with MSVC, which warns about them.

Reviewed-by: aph, dholmes
2020-07-21 10:32:52 -04:00
Mikael Vidstedt
9ff01f7b2f Merge 2020-07-21 20:55:29 -07:00
Markus Grönlund
c7b074a9db 8249713: JFR: java.base events have incomplete stacktraces
Reviewed-by: egahlin
2020-07-21 11:54:19 +02:00
Igor Ignatyev
f8c1d79917 8249697: remove temporary fixes from java/lang/invoke/RicochetTest.java
Reviewed-by: mchung
2020-07-20 12:16:35 -07:00
Vladimir A Ivanov
cd98f7d5bf 8249672: Include microcode revision in features_string on x86
Reviewed-by: kvn, stuefe
2020-07-21 13:06:45 -07:00
Roman Kennke
006d0bcec1 8249801: Shenandoah: Clear soft-refs on requested GC cycle
Reviewed-by: shade
2020-07-21 17:27:44 +02:00
Thomas Stuefe
a20c31865d 8249748: gtest silently ignores bad jvm arguments
Reviewed-by: shade, dholmes, iignatyev
2020-07-21 16:46:37 +02:00
Daniel Fuchs
d116022893 8249774: Add java/foreign/TestMismatch.java to ProblemList.txt
Reviewed-by: lancea
2020-07-20 20:33:59 +01:00
Mandy Chung
35554ea085 8217527: jmod hash does not work if --hash-module does not include the target module
Reviewed-by: alanb
2020-07-20 11:40:03 -07:00
Vicente Romero
3a69dfb5c5 8245652: some tests at RecordCompilationTests are resetting the wrong compilation options
Reviewed-by: darcy
2020-07-20 12:14:44 -04:00
Igor Ignatyev
8d97637cf2 8249700: java/io/File/GetXSpace.java should be added to exclude list, and not @ignore-d
Reviewed-by: alanb
2020-07-20 09:11:53 -07:00
Igor Ignatyev
af0d6d28b0 8249698: java/lang/invoke/LFCaching/LFGarbageCollectedTest.java should be ProblemList-ed and not @ignored
Reviewed-by: kvn, mchung
2020-07-20 09:11:51 -07:00
Coleen Phillimore
6ee76b6b05 8249760: Unnecessary #include oopStorageSet
Reviewed-by: hseigel
2020-07-20 10:53:29 -04:00
Igor Ignatyev
ac38b399de 8249681: gc/stress/TestJNIBlockFullGC/TestJNIBlockFullGC.java fails w/ UnsatisfiedLinkError
Reviewed-by: tschatzl
2020-07-17 15:01:10 -07:00
Igor Ignatyev
4a4003e900 8249678: @ignore should be used instead of ProblemList for 8158860, 8163894, 8193479, 8194310
Reviewed-by: kvn
2020-07-17 11:54:14 -07:00
Igor Ignatyev
1c882d91f0 8249673: cleanup graal problem lists
Reviewed-by: kvn
2020-07-17 10:51:55 -07:00
Igor Ignatyev
24a7d8c766 8249622: use 8249621 to ignore 8 jvmci tests
Reviewed-by: kvn, epavlova
2020-07-16 20:03:10 -07:00
Jerry Zhou
4d13bf33d4 8249628: Remove EA from JDK 15 version string starting with Initial RC promotion
Reviewed-by: tbell, erikj
2020-07-17 01:50:44 +00:00
Jamsheed Mohammed C M
d63aebe6cb 8246381: VM crashes with "Current BasicObjectLock* below than low_mark"
Save and restores "donotunlock" flag in check_and_handle_async_exceptions

Reviewed-by: coleenp, dholmes
2020-07-16 08:28:55 -07:00
Ivan Sipka
4320afbd58 8242935: test/jdk/java/util/ServiceLoader/ReloadTest.java uses nashorn script engine
Reviewed-by: alanb, iignatyev
2020-07-16 12:03:51 +01:00
Roman Kennke
546158fb42 8249543: Force DirectBufferAllocTest to run with -ExplicitGCInvokesConcurrent
Reviewed-by: alanb
2020-07-16 15:04:58 +02:00
Roman Kennke
9694ca9eaf 8249560: Shenandoah: Fix racy GC request handling
Reviewed-by: shade
2020-07-16 11:49:04 +02:00
Jan Lahoda
3770be7f70 8249367: JShell uses 100% of one core all the time
Workarounding busy wait while reading from NonBlocking.NonBlockingReaderInputStream wrapping NonBlockingPumpReader.

Reviewed-by: rfield, cstein
2020-07-16 11:30:11 +02:00
Matthias Baesken
3e641b796f 8249588: libwindowsaccessbridge issues on 64bit Windows
Reviewed-by: arapte, prr
2020-07-16 09:52:48 +02:00
Phil Race
631085bdfd Merge 2020-07-21 13:55:53 -07:00
Phil Race
1ce6ec6a28 8199529: javax/swing/text/Utilities/8142966/SwingFontMetricsTest.java fails on windows
Reviewed-by: serb, psadhukhan
2020-07-21 13:14:35 -07:00
Phil Race
3ec5f6b374 8249725: testbug: ZeroWithStringBoundsTest.java needs update to copyright header
Reviewed-by: jdv
2020-07-20 08:13:02 -07:00
Phil Race
ca2df0e543 8245159: Font.getStringBounds() throws IAE for empty string if the Font has layout attributes
Reviewed-by: serb
2020-07-19 11:03:50 -07:00
Prasanta Sadhukhan
df3c55230e 8042055: Nimbus DerivedColor incorrectly clamps hue
Reviewed-by: serb
2020-07-18 12:12:41 +05:30
Prasanta Sadhukhan
c9f9fde366 8245785: javax.swing.JTabbedPane cannot be deserialized
Reviewed-by: serb, prr, kizune
2020-07-18 12:10:35 +05:30
Tejpal Rebari
39d4b22fc0 8249619: Nimbus L&F Fix for 8041701 is causing some Nimbus tests to fail
Reviewed-by: prr
2020-07-17 10:05:38 -07:00
Jie Fu
507e54840f 8246805: Incorrect copyright header in TestInvalidTieredStopAtLevel.java
Reviewed-by: mikael, iignatyev
2020-07-16 10:30:39 +08:00
Mikael Vidstedt
1108a4a77c Added tag jdk-15+32 for changeset 2dad000726b8 2020-07-15 19:19:36 -07:00
Ambarish Rapte
18f3591a1b 8249278: Revert JDK-8226253 which breaks the spec of AccessibleState.SHOWING for JList
Reviewed-by: prr, serb
2020-07-16 06:35:01 +05:30
Ambarish Rapte
d11b0078a1 8249278: Revert JDK-8226253 which breaks the spec of AccessibleState.SHOWING for JList
Reviewed-by: prr, serb
2020-07-16 04:47:27 +05:30
Mark Reinhold
55039aa1c6 8249205: Remove unnecessary trademark symbols
Reviewed-by: darcy, lancea, bpb, prr, jjg, cjplummer, iris, dfuchs, weijun, joehw, wetmore, bchristi
2020-07-15 14:21:54 -07:00
Daniel D. Daugherty
24f4f14c3d Merge 2020-07-15 17:08:28 -04:00
Daniel D. Daugherty
f636b84f48 8246676: monitor list lock operations need more fencing
Reviewed-by: dholmes, eosterlund, rehn, pchilanomate
2020-07-15 17:01:38 -04:00
Daniel D. Daugherty
62d77dc3fc 8247280: more fencing needed in async deflation for non-TSO machines
Reviewed-by: dholmes, pchilanomate
2020-07-15 16:59:39 -04:00
Tom Rodriguez
8cfc7e39df 8248524: [JVMCI] Memory corruption / segfault during NumPy installation
Reviewed-by: kvn
2020-07-15 12:17:19 -07:00
Igor Ignatyev
e07ad838b5 8249040: clean up FileInstaller $test.src $cwd in vmTestbase_nsk_jdb tests
Reviewed-by: dholmes
2020-07-15 11:34:34 -07:00
Igor Ignatyev
b27e717c56 8249034: clean up FileInstaller $test.src $cwd in vmTestbase_nsk_jvmti tests
Reviewed-by: sspitsyn
2020-07-15 11:33:43 -07:00
Igor Ignatyev
1b5391264a 8249039: clean up FileInstaller $test.src $cwd in vmTestbase_nsk_aod tests
Reviewed-by: dholmes, sspitsyn
2020-07-15 11:31:35 -07:00
Pankaj Bansal
be2a92d8c7 8249251: [dark_mode ubuntu 20.04] The selected menu is not highlighted in GTKLookAndFeel
Reviewed-by: serb, prr
2020-07-15 23:40:18 +05:30
Ekaterina Pavlova
681d06d39b 8242388: compiler/graalunit/CoreTest.java timed out
Reviewed-by: kvn
2020-07-15 10:26:48 -07:00
Goetz Lindenmaier
8906904591 8248476: No helpful NullPointerException message after calling fillInStackTrace
Reported by christoph.dreis@freenet.de

Reviewed-by: coleenp, dholmes, mchung
2020-07-15 18:47:47 +02:00
Jim Laskey
a640835c62 8249258: java/util/StringJoiner/StringJoinerTest.java failed due to OOM
Reviewed-by: dcubed, rriggs
2020-07-15 09:22:29 -03:00
Henry Jen
d7c1bb1fb7 Merge 2020-07-14 19:11:16 +00:00
Igor Ignatyev
6d201dbba6 8249036: clean up FileInstaller $test.src $cwd in vmTestbase_nsk_stress tests
Reviewed-by: kvn
2020-07-14 11:24:39 -07:00
Igor Ignatyev
919eb12b14 8249032: clean up FileInstaller $test.src $cwd in vmTestbase_nsk_sysdict tests
Reviewed-by: dholmes
2020-07-14 11:16:00 -07:00
Igor Ignatyev
6c95a87157 8249035: clean up FileInstaller $test.src $cwd in vmTestbase_nsk_jdwp tests
Reviewed-by: dholmes
2020-07-14 11:10:40 -07:00
Igor Ignatyev
ba1db57dde 8249028: clean up FileInstaller $test.src $cwd in vmTestbase_nsk_monitoring tests
Reviewed-by: dholmes
2020-07-14 11:09:34 -07:00
Igor Ignatyev
765abcb329 8249033: clean up FileInstaller $test.src $cwd in vmTestbase_vm_metaspace tests
Reviewed-by: dholmes
2020-07-14 11:09:06 -07:00
Igor Ignatyev
606aad5dc8 8249029: clean up FileInstaller $test.src $cwd in vmTestbase_vm_defmeth tests
Reviewed-by: dholmes
2020-07-14 11:08:21 -07:00
Henry Jen
52977fd914 Merge 2020-07-14 17:25:17 +00:00
Ekaterina Pavlova
265b36ff28 8236809: [Graal] java/lang/Class/getDeclaredField/FieldSetAccessibleTest.java timeouts
Reviewed-by: kvn
2020-07-14 10:07:32 -07:00
Matthias Baesken
7a0914c44c 8248802: Add log helper methods to FontUtilities.java
Reviewed-by: clanger, jdv
2020-07-14 17:02:48 +02:00
Tejpal Rebari
13bcda40dc 8041701: Nimbus JTree renderer properties persist across L&F changes
Reviewed-by: serb, psadhukhan
2020-07-15 11:37:55 +05:30
Erik Joelsson
a9b7ae8ac2 8249255: Build fails if source code in cygwin home dir
Reviewed-by: tbell
2020-07-14 07:09:11 -07:00
Vladimir Ivanov
7a6c1a66b2 8247502: PhaseStringOpts crashes while optimising effectively dead code
Reviewed-by: kvn, thartmann
2020-07-14 16:57:34 +03:00
Alexander Matveev
be04c8c724 8249256: [macos] Add EmptyFolderPackageTest test to problem list
Reviewed-by: herrick
2020-07-13 18:08:26 -07:00
Henry Jen
92be493f0b Merge 2020-07-13 20:46:15 +00:00
Hannes Wallnöfer
77c83d9ee6 8236935: Improve UX of the search control
Reviewed-by: jjg, prappo
2020-07-13 11:33:50 +02:00
Zhengyu Gu
5b2fd36a6d 8247670: Shenandoah: deadlock during class unloading OOME
Reviewed-by: rkennke
2020-07-10 11:40:57 -04:00
Igor Ignatyev
04280a0d05 8249000: vm.gc.X should take selected JIT into account
Reviewed-by: kvn
2020-07-10 11:52:35 -07:00
Igor Ignatyev
c5ad1daa96 8249019: clean up FileInstaller $test.src $cwd in vmTestbase_vm_compiler tests
Reviewed-by: kvn, epavlova
2020-07-10 11:49:58 -07:00
Igor Ignatyev
9bbec0433c 8249038: clean up FileInstaller $test.src $cwd in vmTestbase_vm_gc tests
Reviewed-by: kbarrett
2020-07-10 11:49:02 -07:00
Roger Riggs
a376fb7720 8217475: Unexpected StackOverflowError in "process reaper" thread
Reviewed-by: martin, dholmes
2020-07-10 09:17:00 -04:00
Roland Westrelin
32482c82a6 8248598: [Graal] Several testcases from applications/jcstress/acqrel.java fails with forbidden state
Reviewed-by: dlong
2020-07-09 10:20:32 +02:00
Tejpal Rebari
54c0178787 8041705: Bugs in DefaultTreeCellRenderer.updateUI()
Reviewed-by: psadhukhan, pbansal
2020-07-09 12:59:25 +05:30
Patric Hedlin
3e0dc68883 8248901: Signed immediate support in .../share/assembler.hpp is broken
Reviewed-by: neliasso, kvn, thartmann
2020-07-06 21:29:51 +02:00
Chihiro Ito
ba2caf0014 8249720: Generated bytecodes of EventWriter don't be output to the log
Reviewed-by: egahlin
2020-07-20 22:43:28 +09:00
Yu Li
907719baec 8245694: java.util.Properties.entrySet() does not override Object methods
Add missing override methods

Reviewed-by: bchristi, jboes
2020-07-20 13:11:09 +01:00
Coleen Phillimore
99eccaf6ec 8247878: Move Management strong oops to OopStorage
Use OopStorage for strong oops stored with memory and thread sampling and dumping, and remove oops_do and GC calls.

Reviewed-by: dholmes, kbarrett
2020-07-20 07:50:27 -04:00
Andrew Haley
c7d84850bf 8248414: AArch64: Remove uses of long and unsigned long ints
Reviewed-by: adinn, dholmes
2020-07-09 11:01:29 -04:00
Mikael Vidstedt
ec074011a4 Merge 2020-07-19 21:34:28 -07:00
Poonam Bajaj
9376dd810c 8236042: [TESTBUG] serviceability/sa/ClhsdbCDSCore.java fails with -Xcomp -XX:TieredStopAtLevel=1
Modify the test case to handle the scenario's of no printmdo's.

Reviewed-by: cjplummer, kvn
2020-07-19 22:39:07 +00:00
Aleksey Shipilev
5d270677f7 8249649: Shenandoah: provide per-cycle pacing stats
Reviewed-by: rkennke
2020-07-19 15:34:08 +02:00
Joe Darcy
b7c307c019 8249687: Use inline @jls and @jvm tages in more places in java.base
Reviewed-by: bpb, mchung, mikael
2020-07-17 17:27:31 -07:00
Joe Darcy
d1d17200c5 8249632: remove no-arg constructor from ToolProvider
Reviewed-by: jjg
2020-07-17 16:38:44 -07:00
Andy Herrick
59cd79a8f9 8247734: [macos] jpackage fails to retrieve signing certificate when there are multiple
Reviewed-by: asemenyuk, almatvee
2020-07-17 10:37:28 -04:00
Jean Christophe Beyler
7339cf8f54 8247615: Initialize the bytes left for the heap sampler
Initialize the heap sampler correctly before usage

Reviewed-by: sspitsyn, martin, manc
2020-07-16 16:58:55 -07:00
Andy Herrick
2f6afe55d8 8249289: Exception thrown when --temp points to non-existant directory
Reviewed-by: asemenyuk, almatvee
2020-07-17 09:18:51 -04:00
Hannes Wallnöfer
e13cb76baa 8249133: Javadoc: Browser back navigation does not jump to previous position anymore
Reviewed-by: jjg
2020-07-17 12:54:12 +02:00
Vyom Tewari
955aee3bfa 8237858: PlainSocketImpl.socketAccept() handles EINTR incorrectly
PlainSocketImpl.socketAccept() handles EINTR incorrectly

Reviewed-by: alanb, dfuchs, martin
2020-07-17 11:15:00 +05:30
Kim Barrett
a8d6a05ce8 8248391: Unify handling of all OopStorage instances in weak root processing
OopStorage instance now owned by subsystems, and generalize dead entry notification

Co-authored-by: Erik Osterlund <erik.osterlund@oracle.com>
Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Reviewed-by: coleenp, tschatzl
2020-07-16 17:41:14 -04:00
Albert Yang
55af701cc3 8245030: CardTable::precleaned_card is unused
Reviewed-by: lkorinth, kbarrett
2020-07-16 14:48:38 +02:00
Coleen Phillimore
749be7e761 8247808: Move JVMTI strong oops to OopStorage
Remove JVMTI oops_do calls from JVMTI and GCs

Reviewed-by: sspitsyn, stefank, zgu, dholmes, iklam
2020-07-16 08:29:11 -04:00
Mikael Vidstedt
1f5e21a16e Merge 2020-07-15 21:24:39 -07:00
Mikael Vidstedt
cdc1dc939f Added tag jdk-16+6 for changeset 4a8fd81d64ba 2020-07-15 20:10:13 -07:00
Vicente Romero
bcd4690bc3 8247790: javac shouldn't allow type variable references from local static declarations
Reviewed-by: jlahoda
2020-07-15 22:36:45 -04:00
Chris Plummer
fd206e1e7e 8247272: SA ELF file support has never worked for 64-bit causing address to symbol name mapping to fail
Reviewed-by: sspitsyn, kevinw
2020-07-15 16:54:12 -07:00
Chris Plummer
f1bdd9fca6 8248878: SA: Implement simple workaround for JDK-8248876
Reviewed-by: sspitsyn, ysuenaga
2020-07-15 16:07:24 -07:00
Erik Joelsson
c83ce2e8d9 8249292: DependOnVariable macro fails on empty value
Reviewed-by: tbell
2020-07-15 14:04:54 -07:00
Daniel D. Daugherty
ee1efed55d Merge 2020-07-15 17:13:00 -04:00
Andy Herrick
05bb6f1ec2 8248864: JPackage test extension misspelled "extention"
Reviewed-by: asemenyuk, almatvee, prr
2020-07-15 14:53:05 -04:00
Athijegannathan Sundararajan
2f989d273d 8246113: re-visit javax/script test that still requires jdk.scripting.nashorn module
Reviewed-by: jlaskey
2020-07-15 21:52:56 +05:30
Lance Andersen
023c53d190 8247677: Incorrect class name displayed in DriverManager trace output
Reviewed-by: joehw
2020-07-15 09:19:20 -04:00
Mikael Vidstedt
1982432db4 Merge 2020-07-14 23:29:45 -07:00
Leonid Mesnik
590de670a9 8242891: vmTestbase/nsk/jvmti/ test should be fixed to fail early if JVMTI function return error
Reviewed-by: sspitsyn, cjplummer
2020-07-14 14:31:14 -07:00
Naoto Sato
f8f35d30af 8248695: HostLocaleProviderAdapterImpl provides invalid date-only
Reviewed-by: joehw
2020-07-14 09:30:08 -07:00
Joe Darcy
10e6a6a19a 8248605: Update --release 15 symbol information for JDK 15 build 31
Reviewed-by: jlahoda, jjg
2020-07-14 09:05:50 -07:00
Jesper Wilhelmsson
4922a35c6a Merge 2020-07-03 19:05:00 +02:00
Daniel Fuchs
82cc03fa89 8248703: Clarify the behavior of java.net.NetworkInterface::equals
The API documentation of NetworkInterface::equals is clarified to warn about the possibility that two NetworkInterface representing the same underlying interface objects might not compare equal if the IP addresses bound to the interfaces are being dynamically updated by the system.

Reviewed-by: alanb, chegar
2020-07-03 16:50:16 +01:00
Roman Kennke
734a6c94d3 8248799: Shenandoah: Claim threads token in constructor of ShenandoahRootVerifier
Reviewed-by: zgu
2020-07-03 17:36:56 +02:00
Thomas Schatzl
83fff05498 8248306: gc/stress/gclocker/TestExcessGCLockerCollections.java does not compile
Update the test to use the method suggested in JDK-8244010.

Reviewed-by: kbarrett
2020-07-03 16:32:33 +02:00
Thomas Schatzl
6c89a9653e 8248306: gc/stress/gclocker/TestExcessGCLockerCollections.java does not compile
Update the test to use the method suggested in JDK-8244010.

Reviewed-by: kbarrett
2020-07-03 16:32:33 +02:00
Prasanta Sadhukhan
20147c36fe Merge 2020-07-03 18:58:03 +05:30
Nils Eliasson
4506975561 8248398: Add diagnostic RepeatCompilation utility
Reviewed-by: redestad, kvn, thartmann
2020-07-03 11:46:41 +02:00
Rahul Yadav
e2072bba70 8245302: Upgrade LogRecord to support long thread ids and remove its usage of ThreadLocal
Java.util.logging.LogRecord has been updated to use long thread ids instead of int thread id

Reviewed-by: alanb, dfuchs
2020-07-03 10:19:54 +01:00
Roman Kennke
5cf33168d7 8248725: Shenandoah: Claim verifier thread roots for parallel processing
Reviewed-by: shade
2020-07-03 11:09:59 +02:00
Nils Eliasson
999357250a 8248388: ZGC: Load barrier incorrectly elided in jdk/java/text/Format/DateFormat/SDFTCKZoneNamesTest.java
Reviewed-by: kvn, thartmann
2020-07-03 10:05:53 +02:00
Prasanta Sadhukhan
396146854b Merge 2020-07-03 09:26:16 +05:30
Chris Plummer
af51a73224 8244383: jhsdb/HeapDumpTestWithActiveProcess.java fails with "AssertionFailure: illegal bci"
Reviewed-by: sspitsyn, dcubed, dtitov
2020-07-02 17:19:16 -07:00
Joe Wang
e0c26b37fd 8248348: Regression caused by the update to BCEL 6.0
Reviewed-by: smarks, plevart
2020-07-03 00:09:45 +00:00
Jesper Wilhelmsson
6b8bf62a75 Merge 2020-07-03 00:14:21 +02:00
Chris Plummer
4858141ce4 8247533: SA stack walking sometimes fails with sun.jvm.hotspot.debugger.DebuggerException: get_thread_regs failed for a lwp
Reviewed-by: sspitsyn, ysuenaga, dtitov
2020-07-02 13:13:10 -07:00
Dean Long
8b7c959164 8247922: Update Graal
Reviewed-by: kvn
2020-07-02 13:03:32 -07:00
Vladimir Kozlov
ec25b42804 8076985: Allocation path: biased locking + compressed oops code quality
Use 64-bit constant class pointer for loading class prototype header.

Reviewed-by: roland
2020-07-02 12:52:49 -07:00
Markus Grönlund
5a90271d01 8237488: jdk/jfr/event/compiler/TestCompilerCompile.java failed due to "RuntimeException: No thread in event"
Reviewed-by: egahlin
2020-07-02 21:13:41 +02:00
Jonathan Gibbons
579ed70629 8248417: some jdk/javadoc/doclet tests fail (JDK 16)
Reviewed-by: prappo
2020-07-02 11:06:16 -07:00
Vladimir Kempik
78b9de8e40 8248495: [macos] zerovm is broken due to libffi headers location
Reviewed-by: ihse, erikj
2020-07-02 20:33:06 +03:00
Jonathan Gibbons
dc0c0c7eca 8248060: small HTML issues in java.xml package-info.java files
Reviewed-by: joehw
2020-07-02 10:21:21 -07:00
Jesper Wilhelmsson
1eaa4116f5 Added tag jdk-16+4 for changeset e2622818f0bd 2020-07-02 18:39:35 +02:00
Doug Simon
4e962f9675 8248321: [JVMCI] improve libgraal logging and fatal error handling
Reviewed-by: kvn, never
2020-07-02 18:02:20 +02:00
Magnus Ihse Bursie
1356a0f1ac 8248667: Need support for building native libraries located in the test/lib directory
Reviewed-by: erikj
2020-07-02 17:35:03 +02:00
Igor Ignatyev
72ae322022 8208207: Test nsk/stress/jni/gclocker/gcl001 fails after co-location
Reviewed-by: tschatzl
2020-07-02 08:05:00 -07:00
Sean Coffey
3d9bad16d1 8218021: Have jarsigner preserve posix permission attributes
Reviewed-by: weijun, lancea, alanb
2020-07-02 08:17:31 +00:00
Thomas Schatzl
dc63bf261b 8248650: [BACKOUT] Backout JDK-8244603 because it generates too much noise in CI
Reviewed-by: kbarrett
2020-07-02 09:40:27 +02:00
Aleksey Shipilev
51937e18f8 8248634: Shenandoah: incorrect include in shenandoahInitLogger.cpp
Reviewed-by: rkennke
2020-07-02 08:32:45 +02:00
Aleksey Shipilev
00e0a60955 8248632: Shenandoah: build fails without both JVMTI and JFR
Reviewed-by: rkennke, zgu
2020-07-02 08:32:39 +02:00
Vyom Tiwari
5fbac4a34c 8244324: RTFEditorKit does not display some of Japanese characters correctly
Reviewed-by: serb, psadhukhan
2020-07-02 09:31:42 +05:30
Prasanta Sadhukhan
911c553cd2 8245921: Minor copy/paste issue in BasicScrollBarUI
Reviewed-by: serb
2020-07-02 09:29:42 +05:30
Prasanta Sadhukhan
c3ec97d41a 8248187: javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java fails with String is not properly drawn
Reviewed-by: serb, pbansal
2020-07-02 09:27:58 +05:30
Jesper Wilhelmsson
43a2010936 Merge 2020-07-02 03:25:23 +02:00
Jesper Wilhelmsson
637fdbc83c Added tag jdk-16+4 for changeset 78c07dd72404 2020-07-02 03:19:33 +02:00
Jesper Wilhelmsson
2e65885257 Added tag jdk-15+30 for changeset 6909e4a1f25b 2020-07-02 03:15:27 +02:00
Alexander Matveev
55e7003fd5 8248059: [macos] EmptyFolderPackageTest.java failed "hdiutil: create failed - No child processes"
Reviewed-by: herrick, asemenyuk
2020-07-01 14:52:09 -04:00
Roland Westrelin
b67814941f 8229495: SIGILL in C2 generated OSR compilation
Reviewed-by: kvn, chagedorn
2020-07-01 17:28:49 +02:00
Christian Hagedorn
83a8c4acc7 8244724: CTW: C2 compilation fails with "Live Node limit exceeded limit"
Fix live limit assert in node construction to be ignored during code generation in Compile::Code_Gen().

Reviewed-by: kvn, neliasso
2020-07-01 09:18:28 +02:00
Pankaj Bansal
5699024184 8197560: test javax/swing/JTree/8003400/Test8003400.java fails
Reviewed-by: serb, psadhukhan
2020-07-01 09:14:59 +05:30
Jie Fu
7e93e03da5 8248612: Back quotes and double quotes must not be escaped in: Cannot convert \"$unix_path\" to Windows path
Reviewed-by: ihse
2020-07-01 10:27:10 +08:00
Vladimir Kozlov
bf04926d72 8005088: remove unused NativeInstruction::test methods
Reviewed-by: iignatyev
2020-07-01 15:37:56 -07:00
Calvin Cheung
dc74336a65 8243586: Optimize calls to SystemDictionaryShared::define_shared_package for classpath
Define_shared_package only needs to be called once for each package in a jar specified in the shared class path.

Reviewed-by: iklam, dholmes, minqi
2020-07-01 21:05:14 +00:00
Magnus Ihse Bursie
4b85bd546e 8248610: Clean up handling of Windows RC files
Reviewed-by: erikj
2020-07-01 22:39:58 +02:00
Joe Darcy
32aa66126e 8247534: Update --release 15 symbol information for JDK 15 build 29
Reviewed-by: jlahoda
2020-07-01 13:12:11 -07:00
Jesper Wilhelmsson
292a3d5722 Merge 2020-07-01 21:14:55 +02:00
Doug Simon
03d47d58d6 8248359: Update JVMCI
Reviewed-by: kvn, never
2020-07-01 12:06:44 +02:00
Harold Seigel
eb78035d05 8247741: Test test/hotspot/jtreg/runtime/7162488/TestUnrecognizedVmOption.java fails when -XX:+IgnoreUnrecognizedVMOptions is set
Use createJavaProcessBuilder() to prevent JTreg flags from being passed to the new process created by the test

Reviewed-by: lfoltan, dholmes
2020-07-01 18:42:13 +00:00
Christian Hagedorn
13b7c2e131 8244724: CTW: C2 compilation fails with "Live Node limit exceeded limit"
Fix live limit assert in node construction to be ignored during code generation in Compile::Code_Gen().

Reviewed-by: kvn, neliasso
2020-07-01 09:18:28 +02:00
Magnus Ihse Bursie
2a37607e98 8248563: Gtest CFLAGS/warnings is not properly handled
Reviewed-by: erikj
2020-07-01 01:56:52 +02:00
Yasumasa Suenaga
f5673586b7 8248526: configure script failed on WSL in May 2020 update
Reviewed-by: ihse
2020-07-01 07:23:48 +09:00
Jesper Wilhelmsson
545d56dd42 Merge 2020-06-30 20:59:15 +02:00
Daniel D. Daugherty
7d54e71d38 8246493: JDI stress/serial/mixed002 needs to use WhiteBox.deflateIdleMonitors support
Reviewed-by: cjplummer, sspitsyn
2020-06-30 15:24:01 -04:00
Jonathan Gibbons
46ff8fdce9 8248409: some jdk/javadoc/doclet tests fail (JDK 15)
Reviewed-by: prappo
2020-06-30 11:36:02 -07:00
Jesper Wilhelmsson
7c3d72fd3a Merge 2020-06-30 20:09:03 +02:00
Daniel Fuchs
0f43de9f02 8246114: java/net/MulticastSocket/Promiscuous.java fails after 8241072 (multi-homed systems)
Fixed the test - an IPv4 group cannot be joined from an interface that has no IPv4 address configured

Reviewed-by: alanb, amlu
2020-06-30 18:52:59 +01:00
Stefan Karlsson
a18e8d3d57 8248048: ZGC: AArch64: SIGILL in load barrier register spilling
Reviewed-by: adinn, aph
2020-06-30 19:20:22 +02:00
Alexey Semenyuk
8f26a1f748 8247229: jpackage tests failed due to "semop(1): encountered an error: Invalid argument"
Reviewed-by: herrick, almatvee
2020-07-09 16:11:55 -04:00
Vicente Romero
37880ba60d 8242529: javac defines type annotations incorrectly for record members (constructor and property accessor)
Reviewed-by: psandoz, jlahoda
2020-07-09 17:37:53 -04:00
Leo Jiang
1b1fb08000 8249086: JDK 15 L10N resource file update - msg drop 10
Reviewed-by: naoto
2020-07-09 17:04:06 +00:00
Igor Ignatyev
183dadbef2 8249037: clean up FileInstaller $test.src $cwd in vmTestbase_vm_g1classunloading tests
Reviewed-by: kbarrett
2020-07-09 09:05:58 -07:00
Jesper Wilhelmsson
2fe15bc62e Added tag jdk-15+31 for changeset a32f58c6b8be 2020-07-09 04:02:21 +02:00
Igor Veresov
69a9403995 8248822: 8 vm/classfmt/atr_ann/atr_rtm_annot007/atr_rtm_annot00709 tests fail w/ AOT
Remove Remove jdk.internal.reflect.ConstantPool intrinsics.

Reviewed-by: kvn
2020-07-08 17:00:50 -07:00
Daniel D. Daugherty
9f0bafe6ad 8249097: test/lib/jdk/test/lib/util/JarBuilder.java has a bad copyright
Reviewed-by: iignatyev
2020-07-08 17:19:57 -04:00
Ivan Sipka
dda0c6cecd 8211974: move test/jdk/lib/testlibrary/java/util/jar/*.java to top-level library or a local library
Reviewed-by: rriggs, bchristi, lancea, iignatyev
2020-07-08 20:35:36 +01:00
Igor Ignatyev
e5c43ab86e 8249018: clean up FileInstaller $test.src $cwd in vmTestbase_vm_mlvm tests
Reviewed-by: kvn
2020-07-08 11:28:06 -07:00
Anthony Scarpino
a0e5043781 8246806: Incorrect copyright header in KeyAgreementTest.java, GroupName.java
Reviewed-by: weijun
2020-07-08 08:58:05 -07:00
Nick Gasson
802737cae7 8248845: AArch64: stack corruption after spilling vector register
Reviewed-by: kvn
2020-07-07 14:14:22 +08:00
Calvin Cheung
ddcb17e1e0 8248112: array index out of bound in FileMapInfo::check_paths
Check runtime classpath lengths after calling create_path_array().

Reviewed-by: iklam, minqi
2020-07-07 22:47:59 +00:00
Zhuo Wang
e87c864847 8248570: Incorrect copyright header in TestUnsafeUnalignedSwap.java
Reviewed-by: kvn
2020-07-07 11:38:05 -07:00
Igor Ignatyev
5899ef11fb 8208243: vmTestbase/gc/lock/jni/jnilock002/TestDescription.java fails in jdk/hs nightly
Reviewed-by: tschatzl
2020-07-02 11:38:00 -07:00
Valerie Peng
f4756fdf48 8248505: Unexpected NoSuchAlgorithmException when using secure random impl from BCFIPS provider
Use getService(...) call for Provider.getDefaultSecureRandomService()

Reviewed-by: weijun, coffeys, mullan
2020-07-07 16:55:29 +00:00
Markus Grönlund
ca91da0e0c 8248794: Transition JFR Periodic Task Thread to "_thread_in_native" before invoking performance counters
Reviewed-by: egahlin
2020-07-07 17:52:55 +02:00
Stefan Karlsson
13750b6aca 8248048: ZGC: AArch64: SIGILL in load barrier register spilling
Reviewed-by: adinn, aph
2020-06-30 19:20:22 +02:00
Markus Grönlund
abc55dea7e 8248485: Poor scalability in JfrCheckpointManager when using many threads after JDK-8242008
Reviewed-by: egahlin
2020-06-30 19:00:14 +02:00
Kim Barrett
a338213bb4 8248545: Remove unneeded warning suppression of MSVC++ 4521/4522
Reviewed-by: tschatzl, ihse
2020-06-30 12:41:27 -04:00
Markus Grönlund
eb1bacc71b 8248475: Suppress unconditional warning "JFR will be disabled during CDS dumping"
Reviewed-by: redestad
2020-06-30 18:10:44 +02:00
Magnus Ihse Bursie
2de3595895 8248548: Use DISABLED_WARNINGS for globally disabled warnings on Visual Studio in Hotspot
Reviewed-by: kbarrett, erikj
2020-06-30 16:26:24 +02:00
Magnus Ihse Bursie
f19db799f3 8248547: Use SetupJdkLibrary for hotspot libraries
Reviewed-by: erikj
2020-06-30 16:23:34 +02:00
Matthias Baesken
f23c983a46 8248468: java/awt/font/DefaultFontTest/DefaultFontTest.java fails in SunFontManager.findFont2D
Reviewed-by: jdv
2020-06-29 09:59:45 +02:00
Yaofei Song
c7ecaa4a1d 8248219: aarch64: missing memory barrier in fast_storefield and fast_accessfield
Reviewed-by: aph
2020-06-28 16:47:25 +08:00
Markus Grönlund
1b3a127d06 8241803: JFR TestThreadStartEndEvents.java failed due to "RuntimeException: Wrong thread id"
Reviewed-by: egahlin
2020-07-07 16:20:30 +02:00
Joe Wang
653af300cc 8248348: Regression caused by the update to BCEL 6.0
Reviewed-by: smarks, plevart
2020-07-07 00:09:29 +00:00
Andy Herrick
7a4bf2456e 8248501: [macos] App created with jpackage on Mac fails with error -10810
Reviewed-by: asemenyuk, almatvee
2020-07-03 07:49:00 -04:00
John Jiang
45fce6baf9 8242538: java/security/SecureRandom/ThreadSafe.java failed on windows
Reviewed-by: mullan
2020-07-07 06:06:18 +08:00
Vladimir Kozlov
a8d20c9254 8247527: serviceability/dcmd/gc/HeapDumpCompressedTest.java fails with Graal + ZGC
Excludes running Graal with GC which it does not support

Reviewed-by: dholmes, iignatyev
2020-07-04 01:06:07 -07:00
Yong Zhou
79ad5512cf 8243670: Unexpected test result caused by C2 MergeMemNode::Ideal
Reviewed-by: thartmann, roland
2020-07-04 08:18:17 +08:00
Chris Plummer
63a6adf2b5 8248746: Undo jhsdb related exclusiveAccess.dirs changes that were done for JDK-8220295
Reviewed-by: iignatyev
2020-07-03 10:02:37 -07:00
Patric Hedlin
622117d275 8234605: C2 failed "assert(C->live_nodes() - live_at_begin <= 2 * _nodes_required) failed: Bad node estimate: actual = 208 >> request = 101"
Reviewed-by: neliasso, kvn
2020-06-26 15:47:16 +02:00
Jonathan Gibbons
20a1e352c0 8248492: ProblemList open/test/langtools//jdk/javadoc/doclet/testHeadTag/TestHeadTag.java
Reviewed-by: prappo
2020-06-29 15:03:36 -07:00
Stefan Karlsson
46f86477ad 8248346: Move OopStorage mutex setup out from OopStorageSet
Reviewed-by: kbarrett, eosterlund
2020-06-29 23:17:50 +02:00
Paul Hohensee
51b7c76a95 8245129: Enhance jstat gc option output and tests
Widen and right-justify size fields assuming 2tb heap

Reviewed-by: simonis, dtitov
2020-06-29 13:39:35 -07:00
Bob Vandette
ba711f63ba 8248410: Correct Fix for 8236647: java/lang/invoke/CallSiteTest.java failed with InvocationTargetException in Graal mode
Reviewed-by: kvn, never
2020-06-29 17:25:44 +00:00
Magnus Ihse Bursie
682e836d60 8248488: JDK-8246484 actually broke COMPARE_BUILD
Reviewed-by: erikj
2020-06-29 18:39:40 +02:00
Zhuo Wang
5a6954abba 8246051: SIGBUS by unaligned Unsafe compare_and_swap
Reviewed-by: aph
2020-06-29 10:15:45 -04:00
Christian Hagedorn
840867efa6 8247218: Add default constructor to VectorSet to use Thread::current()->resource_area() as arena by default
Add a default construction to VectorSet and clean up uses of the old constructor.

Reviewed-by: kvn, thartmann
2020-06-29 17:14:19 +02:00
Zhengyu Gu
fe145646e7 8248227: Shenandoah: Refactor Shenandoah::heap() to match other GCs
Reviewed-by: shade
2020-06-29 10:14:18 -04:00
Rahul Yadav
c07ce7eec7 8245245: Websocket can lose the URL encoding of URI query parameters
The fix updates jdk.internal.net.http.websocket.OpeningHandshake to avoid double encoding and decoding of URL

Reviewed-by: dfuchs, chegar, prappo
2020-06-29 14:49:03 +01:00
Harold Seigel
55bbaf1ae1 8248273: Small clean up for PerfClassTraceTime
Remove the unused code.

Reviewed-by: dholmes, redestad
2020-06-29 12:28:55 +00:00
Boris Ulasevich
48c0ce3b4b 8247408: IdealGraph bit check expression canonicalization
Reviewed-by: aph, kvn, adinn
2020-06-29 07:26:10 -04:00
Tobias Hartmann
a25bacdd13 8248234: Disabling UseExactTypes crashes C2
Remove the flag since it is broken, untested and hasn't been used in many years.

Reviewed-by: kvn, redestad, neliasso
2020-06-29 08:21:42 +02:00
Aleksey Shipilev
a793293464 8247845: Shenandoah: refactor TLAB/GCLAB retirement code
Reviewed-by: rkennke
2020-06-29 07:16:53 +02:00
Yasumasa Suenaga
5ad963cf61 8248379: Handshake closures for JVMTI monitor functions lack of some validations
Reviewed-by: sspitsyn, dholmes
2020-06-29 13:35:45 +09:00
Jesper Wilhelmsson
9d6797019b Merge 2020-06-29 04:38:30 +02:00
Pengfei Li
ac4f14c386 8247307: C2: Loop array fill stub routines are not called
Ignore safepoint polling use of CountedLoopNode when matching loop array fill pattern.

Reviewed-by: kvn, thartmann
2020-06-28 06:15:31 +00:00
Mikael Vidstedt
f44f885f27 8248044: Backout ProblemList-ed tests introduced by JDK-8247876
Reviewed-by: dcubed
2020-06-26 20:07:49 -07:00
Robert Field
a2db08ae98 8247438: JShell: When FailOverExecutionControlProvider fails the proximal cause is not shown
8237743: test/langtools/jdk/jshell/FailOverExecutionControlTest.java fails No ExecutionControlProvider with name 'nonExistent' and parameter keys: []
8199646: JShell tests: jdk/jshell/FailOverDirectExecutionControlTest.java failed with java.lang.UnsupportedOperationException

Reviewed-by: jlahoda
2020-06-26 18:20:22 -07:00
Joe Darcy
bdab5a0a3a 8248428: Cleanup pass on javax.lang.model docs
Reviewed-by: jjg
2020-06-26 17:14:14 -07:00
Igor Veresov
1ef33e4df9 8248168: [Graal] jck tests timeout in Graal with -Xcomp mode
Re-enable deadlock avoidance logic for JVMCI and Xcomp.

Reviewed-by: kvn
2020-06-26 15:08:25 -07:00
Calvin Cheung
a0a0539b0d 8248112: array index out of bound in FileMapInfo::check_paths
Check runtime classpath lengths after calling create_path_array().

Reviewed-by: iklam, minqi
2020-06-26 19:26:30 +00:00
Robert Field
f6c537f8bc 8247438: JShell: When FailOverExecutionControlProvider fails the proximal cause is not shown
8237743: test/langtools/jdk/jshell/FailOverExecutionControlTest.java fails No ExecutionControlProvider with name 'nonExistent' and parameter keys: []
8199646: JShell tests: jdk/jshell/FailOverDirectExecutionControlTest.java failed with java.lang.UnsupportedOperationException

Reviewed-by: jlahoda
2020-06-26 11:56:21 -07:00
Lance Andersen
fc82a465d3 8248412: test/jdk/java/sql/testng/test/sql/DriverManagerPermissionsTests.java can fail
Reviewed-by: naoto, dfuchs
2020-06-26 13:37:43 -04:00
Chris Hegarty
c0c4a8d738 8248326: Add a minimal serialization test for local records
Reviewed-by: dfuchs
2020-06-26 14:55:09 +01:00
Erik Österlund
57b792cba2 8248216: JFR: Unify handling of all OopStorage instances in LeakProfiler root processing
Reviewed-by: mgronlun, stefank
2020-06-26 13:20:12 +00:00
Thomas Schatzl
18cddad5a2 8247819: G1: Process strong OopStorage entries in parallel
Implement parallel processing of strong OopStorage entries for G1.

Co-authored-by: Erik Osterlund <erik.osterlund@oracle.com>
Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Reviewed-by: kbarrett, stefank
2020-06-26 14:43:09 +02:00
Harold Seigel
51ddc2adbf 8246337: Add more JVM tests for sealed classes
Add missing test cases for sealed interfaces and sealed classes.

Reviewed-by: dholmes, lfoltan
2020-06-26 12:38:00 +00:00
Matthias Baesken
e7fa180e05 8248334: hs build errors on ppc64 and s390x platforms
Reviewed-by: dholmes, mdoerr
2020-06-26 12:05:57 +02:00
Kim Barrett
9ffba3002a 8247747: Remove macro definition of "inline" in stack.hpp
Removed "inline" macro and some microoptimizations.

Reviewed-by: lfoltan, tschatzl
2020-06-26 05:26:19 -04:00
Jesper Wilhelmsson
55b472251e Merge 2020-06-26 04:15:33 +02:00
Vladimir Kozlov
b87302ca99 8248347: windows build broken by JDK-8243114
Reviewed-by: dcubed, dholmes
2020-06-25 16:01:16 -07:00
Daniel D. Daugherty
2534e72618 8248358: ProblemList sun/nio/ch/TestMaxCachedBufferSize.java on macOSX
Reviewed-by: iignatyev
2020-06-25 18:47:26 -04:00
Daniel D. Daugherty
e098a31307 8248351: ProblemList serviceability/jvmti/ModuleAwareAgents/ThreadStart/MAAThreadStart.java on Windows
Reviewed-by: iignatyev
2020-06-25 18:29:53 -04:00
Daniel D. Daugherty
708b60e8c6 8248354: ProblemList vmTestbase/nsk/jdi/stress/serial/mixed002/TestDescription.java
Reviewed-by: cjplummer
2020-06-25 17:54:18 -04:00
Vicente Romero
fc82768478 8247849: permits clause of sealed interfaces should not allow parameterized types
Reviewed-by: jlahoda
2020-06-25 17:48:53 -04:00
Erik Gahlin
23bbc981a6 8248302: JFR: Add test for OldObjectSample event when using ZGC
Reviewed-by: mgronlun
2020-06-25 21:46:12 +02:00
Yumin Qi
4682835fb4 8203005: The top-of-stack type specified for nofast_* bytecodes are wrong
The change was left by 8074345 the types were wrongly put as T_ILLEGAL for T_OBJECT, and T_ILLEGAL for T_INT.

Reviewed-by: dcubed, cjplummer
2020-06-25 12:40:02 -07:00
Daniel D. Daugherty
8a424425e1 8248341: ProblemList java/lang/management/ThreadMXBean/ThreadMXBeanStateTest.java
Reviewed-by: iignatyev
2020-06-25 15:00:59 -04:00
Daniel D. Daugherty
5724c0d321 8248339: ProblemList jdk/jfr/event/os/TestThreadContextSwitches.java
Reviewed-by: iignatyev
2020-06-25 13:10:47 -04:00
Daniel D. Daugherty
b4ea9cf23e 8248335: ProblemList compiler/ciReplay/TestServerVM.java and TestVMNoCompLevel.java with AOT
Reviewed-by: kvn
2020-06-25 13:08:50 -04:00
Thomas Schatzl
e00aa7c866 8248329: JDK-8244603 breaks windows build
Reviewed-by: sundar, dcubed
2020-06-25 18:58:14 +02:00
Magnus Ihse Bursie
aacb827896 8220639: Need a way to augment JTREG_LAUNCHER_OPTIONS from command-line
Reviewed-by: erikj, dholmes
2020-06-25 18:35:40 +02:00
Chris Plummer
d886d8c465 8247730: 2 JNI exception pending defect groups in DwarfParser.cpp
Reviewed-by: sspitsyn, amenkov
2020-06-25 08:36:59 -07:00
Andrew Haley
47e465cf1b 8243114: Implement montgomery{Multiply,Square}intrinsics on Windows
Reviewed-by: dholmes, andrew
2020-06-25 14:19:37 +01:00
Thomas Schatzl
0f2ac2021b 8244603: G1 incorrectly limiting young gen size when using the reserve can result in repeated full gcs
8238858: G1 Mixed gc young gen sizing might cause the first mixed gc to immediately follow the prepare mixed gc

Reviewed-by: sjohanss, iwalulya
2020-06-25 16:07:43 +02:00
Thomas Schatzl
8c20401051 8243672: Short term pause time ratio calculation in G1 off
Reviewed-by: sjohanss, kbarrett
2020-06-25 16:07:39 +02:00
Sibabrata Sahoo
a953a0f4ab 8247968: test/jdk/javax/crypto/SecretKeyFactory/security.properties has wrong header
Wrong copyright header removed

Reviewed-by: weijun
2020-06-25 06:12:29 -07:00
Coleen Phillimore
a6e794b3e8 8248240: Remove extendedPC.hpp and fetch_frame_from_ucontext
This empty interface was left over from deleting code from before safepoint polling.

Reviewed-by: lfoltan, dholmes
2020-06-25 08:04:28 -04:00
Coleen Phillimore
06cea107ef 8248271: linux-x86-zero build failure
Reviewed-by: dholmes
2020-06-25 08:01:17 -04:00
Christian Hagedorn
601e566b26 8245128: Kitchensink fails with: assert(destination == (address)-1 || destination == entry) failed: b) MT-unsafe modification of inline cache
Fix too strong assertion by additionally considering races due to class unloading and redefinition.

Reviewed-by: eosterlund, kvn, coleenp, sspitsyn
2020-06-25 11:43:20 +02:00
Jan Lahoda
31c511e6a5 8246704: --release => \"unknown enum constant PreviewFeature$Feature.TEXT_BLOCKS\"
Use a synthetic annotation instead of inaccessible jdk.internal.PreviewFeature in ct.sym, and avoid resolving that annotation, to prevent errors being printed for the inaccessible types.

Reviewed-by: jlaskey
2020-06-25 11:06:46 +02:00
Chris Hegarty
42d3bad0b1 8248233: Avoid superfluous Class::isRecord invocations during deserialization
Co-authored-by: Peter Levart <peter.levart@gmail.com>
Reviewed-by: redestad, plevart
2020-06-25 09:54:19 +01:00
Andrey Turbanov
921155dfc7 8036604: Typo in BufferedBufImgOps.java in the exception message
Reviewed-by: serb
2020-06-24 20:32:32 -07:00
Jesper Wilhelmsson
233cac3232 Merge 2020-06-25 03:11:32 +02:00
Jesper Wilhelmsson
9e5f6885d8 Added tag jdk-16+3 for changeset 76810b3a88c8 2020-06-25 02:54:12 +02:00
Jesper Wilhelmsson
34755c3528 Added tag jdk-15+29 for changeset b58fc6058055 2020-06-25 02:47:58 +02:00
Sergey Bylokhov
a1b5e01003 8213535: Windows HiDPI html lightweight tooltips are truncated
Reviewed-by: kizune
2020-06-24 15:35:43 -07:00
Alexander Matveev
f45d121128 8248255: [macos] Add failing DMG tests to problem list
Reviewed-by: herrick, asemenyuk
2020-06-24 17:53:16 -04:00
Daniel D. Daugherty
ac37a29914 8248049: minor cleanups in gc/whitebox/TestWBGC.java
Reviewed-by: hseigel
2020-06-24 17:49:10 -04:00
Daniel D. Daugherty
3e4ad5d8d1 8246477: add whitebox support for deflating idle monitors
Reviewed-by: dholmes, eosterlund
2020-06-24 17:48:53 -04:00
Erik Gahlin
362f168d23 8242501: JFR: oldobject/TestG1.java can't find leaking object
Reviewed-by: mgronlun
2020-06-24 23:47:16 +02:00
Magnus Ihse Bursie
2ad638621c 8247573: gtest/GTestWrapper.java is not helpful if gtest framework is missing
Reviewed-by: erikj, iignatyev
2020-06-24 23:45:01 +02:00
Ioi Lam
1e45eb3b13 8248235: appcds/jigsaw/PatchModule/Simple.java failed when running in dynamic CDS mode
Reviewed-by: minqi
2020-06-24 13:52:01 -07:00
Jonathan Gibbons
95b9024ab2 8164597: TestIOException.java fails after push for JDK-8164130
Reviewed-by: prappo
2020-06-24 12:41:50 -07:00
Mandy Chung
4b3c33bac1 8247785: Small clarification of the javadoc about builtin class loaders
Reviewed-by: alanb, rriggs, dholmes
2020-06-24 12:21:51 -07:00
Yumin Qi
0e60e8ad85 8246181: Avoid walking SymbolTable during -Xshare:dump
All symbols at dump are created as permanent. Store them in a global array to avoid working SymbolTable.

Reviewed-by: iklam, ccheung
2020-06-24 11:15:22 -07:00
Coleen Phillimore
1550fd889b 8239782: CC_INTERP is only used by Zero interpreter
Change CC_INTERP conditional to ZERO and remove in places where unnecessary. Fix build to exclude compilers and rename CppInterpreter to ZeroInterpreter. The "C++ Interpreter" has been removed from the code a while ago.

Reviewed-by: dholmes, ihse
2020-06-24 09:56:20 -04:00
Claes Redestad
6b251191e0 8248131: Simplify ServicesCatalog provider handling
Reviewed-by: alanb
2020-06-24 15:18:13 +02:00
Harold Seigel
112a4bd8bc 8247966: runtime/logging/loadLibraryTest/LoadLibraryTest.java failed "RuntimeException: 'Unloaded library with handle' missing from stdout/stderr"
Make sure the native library is unloaded before exiting the main thread.

Reviewed-by: dcubed, dholmes
2020-06-24 12:34:14 +00:00
Alexander Matveev
9584e01d24 8225251: Minimise import statements in jpackage sources
Reviewed-by: herrick, asemenyuk
2020-06-23 20:31:38 -04:00
Stefan Karlsson
ef3b0ec567 8247755: Leaner and more versatile GrowableArray classes
Reviewed-by: kbarrett, coleenp
2020-06-24 13:16:52 +02:00
Stefan Karlsson
9d6aa42a7c 8247820: ParallelGC: Process strong OopStorage entries in parallel
Reviewed-by: pliden, eosterlund, kbarrett, tschatzl
2020-06-24 13:16:24 +02:00
Stefan Karlsson
3797364ce9 8248133: SerialGC: Unify handling of all OopStorage instances in root processing
Reviewed-by: eosterlund, kbarrett, pliden
2020-06-24 13:15:54 +02:00
Stefan Karlsson
156f6174ed 8248132: ZGC: Unify handling of all OopStorage instances in root processing
Reviewed-by: pliden, kbarrett, tschatzl
2020-06-24 13:15:00 +02:00
Stefan Karlsson
a1f02d13e5 8248130: AArch64: pf() uses mtNone instead of mtInternal
Reviewed-by: tschatzl, kbarrett, dholmes
2020-06-24 12:19:14 +02:00
Ioi Lam
27fc8b6787 8246546: Simplify SystemDictionary::is_shared_class_visible
Reviewed-by: minqi, ccheung
2020-06-23 21:23:00 -07:00
Naoto Sato
e178f0467b 8248184: AMPM_OF_DAY doc fix in ChronoField
Reviewed-by: bpb, lancea
2020-06-23 17:43:58 -07:00
Erik Gahlin
1aa6539576 8241885: JFR tool: print does not work with inner class events
Reviewed-by: jbachorik
2020-06-23 21:28:45 +02:00
Erik Gahlin
0a6262f0b8 8242593: JFR: EventFactory does not scale well past unique 1000 events
Reviewed-by: jbachorik
2020-06-23 20:15:54 +02:00
Alexey Semenyuk
d85ff3c7f0 8246212: JPKG001-012: application icon is missing in Control Panel Add/Remove
Reviewed-by: herrick, almatvee
2020-06-23 13:42:57 -04:00
Tom Rodriguez
29936542ad 8247246: Add explicit ResolvedJavaType.link and expose presence of default methods
Reviewed-by: kvn
2020-06-24 10:42:26 -07:00
Markus Grönlund
6715f2306e 8241718: assert ((klass)->trace_id()) & ((JfrTraceIdEpoch::method_and_class_in_use_this_epoch_bits()))) != 0 in ObjectSampleCheckpoint::add_to_leakp_set
Reviewed-by: dholmes, iklam, ccheung
2020-06-24 11:22:14 +02:00
Peter Levart
2f09989ec0 8247532: Records deserialization is slow
8248135: Build microbenchmarks with --enable-preview

Test contributed by Chris Hegarty <chris.hegarty@oracle.com>

Reviewed-by: chegar, psandoz, redestad, ihse
2020-06-24 11:05:09 +02:00
Markus Grönlund
4bcd70acc0 8247967: SparkExamples24H.java SIGSEGV in various places
Reviewed-by: dcubed, dholmes
2020-06-24 01:02:19 +02:00
Jonathan Gibbons
e66a2a3384 8247955: doclint: don't complain about summary/caption when role=presentation
Reviewed-by: prappo
2020-06-23 12:27:31 -07:00
Xin Liu
4076ca82d2 8151779: Some intrinsic flags could be replaced with one general flag
Add ControlIntrinsic switch

Reviewed-by: neliasso, phh
2020-06-23 10:40:26 -07:00
Zhengyu Gu
6986ab256d 8248041: Shenandoah: pre-Full GC root updates may miss some roots
Reviewed-by: shade
2020-06-23 13:38:20 -04:00
Athijegannathan Sundararajan
1e1985da9b 8247956: remove scripts under bin/nashorn and doc/nashorn/source
Reviewed-by: jlaskey
2020-06-23 17:22:07 +05:30
Maurizio Cimadamore
36d716aa08 8248011: Improve javadoc of Foreign Memory Access API
Reviewed-by: psandoz
2020-06-23 11:49:48 +01:00
Chris Hegarty
7f69acc778 8247696: Incorrect tail computation for large segments in AbstractMemorySegmentImpl::mismatch
Reviewed-by: psandoz, mcimadamore
2020-06-23 10:09:26 +01:00
Doug Simon
6469685285 8247992: [JVMCI] HotSpotNmethod.executeVarargs can try execute a zombie nmethod
Reviewed-by: eosterlund, kvn, never
2020-06-23 09:57:30 +02:00
Jonathan Gibbons
4167ba1288 8248061: bad reference in @throws in HotSpotDiagnosticMXBean
Reviewed-by: dcubed
2020-06-22 19:39:18 -07:00
Phil Race
2c868d6101 Merge 2020-06-22 15:55:57 -07:00
Phil Race
12554c2c03 8244818: Java2D Queue Flusher crash while moving application window to external monitor
Reviewed-by: serb, jdv, kcr
2020-06-22 13:37:41 -07:00
Jonathan Gibbons
9a99f511aa 8247958: minor HTML errors in com.sun.jdi
Reviewed-by: dholmes, sspitsyn
2020-06-22 09:42:42 -07:00
Jonathan Gibbons
9a120e7f79 8247959: doclint errors in NIO code
Reviewed-by: alanb, lancea
2020-06-22 09:29:16 -07:00
Jesper Wilhelmsson
4862d0d542 Merge 2020-06-22 18:23:49 +02:00
Zhengyu Gu
3192ef367a 8247736: Shenandoah: assert(_nm->is_alive()) failed: only alive nmethods here
Reviewed-by: rkennke, shade
2020-06-22 11:40:06 -04:00
Dong Wangya
cb9d3efe5d 8247979: aarch64: missing side effect of killing flags for clearArray_reg_reg
Reviewed-by: adinn
2020-06-22 20:26:02 +08:00
Jamil Nimeh
c0b348f3ef 8239950: Update PKCS9 Attributes to PKCS#9 v2.0 Encodings
Reviewed-by: weijun
2020-06-23 07:48:39 -07:00
Erik Joelsson
d8219d0a78 8213214: Set -Djava.io.tmpdir= when running tests
Reviewed-by: alanb, mikael
2020-06-23 06:51:35 -07:00
Erik Österlund
2765410a28 8247319: Remove on-stack nmethod hotness counter sampling from safepoints
Reviewed-by: kvn, dholmes
2020-06-23 11:59:13 +00:00
Erik Österlund
a10a9284c1 8247179: Mechanism for VM operations to not take part in safepoint coalescing
Reviewed-by: rehn, dholmes
2020-06-23 11:59:13 +00:00
Vladimir Kempik
88df2f0f7f 8243470: [macos] bring back O2 opt level for unsafe.cpp
Remove special case for unsafe.cpp on clang macos

Reviewed-by: erikj, ihse
2020-06-23 13:41:55 +03:00
Kim Barrett
f8596b57f3 8247740: Inline derived CollectedHeap access for G1 and ParallelGC
Added shared helper in CollectedHeap, and inlined for G1 and ParallelGC

Reviewed-by: stefank, pliden
2020-06-23 05:58:52 -04:00
Hai-May Chao
e3eb38f4d2 8244148: keytool -printcert and -printcrl should support the -trustcacerts and -keystore options
Reviewed-by: weijun, jjiang
2020-06-23 16:30:38 +08:00
Claes Redestad
8d9826e4d1 8247995: Avoid use of a mapping function in Permissions.getPermissionCollection
Reviewed-by: rriggs
2020-06-23 10:07:10 +02:00
Stefan Karlsson
17f2250c5a 8247879: Rework WeakHandle and OopHandle to dynamically support different OopStorages
Reviewed-by: coleenp, eosterlund
2020-06-23 09:38:21 +02:00
Jesper Wilhelmsson
b7e944953e Merge 2020-06-23 03:05:07 +02:00
Jan Lahoda
61e44cdb6a 8247932: JShell crashes when typing text block
Setting up Log before running javac's scanner, so that errors reported from the scanner are properly ignored.

Reviewed-by: rfield
2020-06-22 12:03:11 +02:00
Pankaj Bansal
3c472b6700 8198623: java/awt/KeyboardFocusmanager/TypeAhead/EnqueueWithDialogButtonTest/EnqueueWithDialogButtonTest.java fails on mac
Reviewed-by: jdv
2020-06-22 12:39:59 +05:30
Sergey Bylokhov
02201d19c6 7131400: [macosx] Desktop.edit(a directory) should throw IOException
Reviewed-by: pbansal, aivanov
2020-06-22 06:48:26 +01:00
Severin Gehwolf
79f02a67ce 8247863: Unreachable code in OperatingSystemImpl.getTotalSwapSpaceSize()
After 8231111 we have -1 for missing metrics, thus the fix of 8236617 is obsolete

Reviewed-by: mbaesken
2020-06-19 10:40:04 +02:00
Ludovic Henry
a4eaf9536c 8250810: Push missing parts of JDK-8248817
Push changes from JDK-8248817 that were accidentally excluded from the commit.

Reviewed-by: kbarrett, dholmes
2020-07-30 02:47:00 -04:00
Jie Fu
cf345fd768 8250745: assert(eval_map.contains(n)) failed: absent
Reviewed-by: vlivanov, kvn
2020-07-29 11:38:28 +08:00
Mikael Vidstedt
d86ab942f6 Added tag jdk-16+8 for changeset 0a73d6f3aab4 2020-07-29 18:31:44 -07:00
Ludovic Henry
0417fcf13f 8248682: AArch64: Use ATTRIBUTE_ALIGNED helper
Reviewed-by: kbarrett, tschatzl, dholmes
2020-07-29 20:28:11 -04:00
Ludovic Henry
257809d744 8248817: Windows: Improving common cross-platform code
Reviewed-by: kbarrett, dholmes
2020-07-29 20:25:39 -04:00
Igor Ignatyev
7685e53426 8250797: remove CompileReason::Reason_CTW
Reviewed-by: kvn, epavlova
2020-07-29 16:52:23 -07:00
Alexandre Iline
bd843673a8 8250743: Switch to JCov build which supports byte code version 60
Reviewed-by: erikj
2020-07-29 16:12:10 -07:00
Eric Caspole
0aefe6f20a 8249663: LogCompilation cannot process log from o.r.scala.dotty.JmhDotty
Fix stale site and uncommon trap processing in LogParser

Reviewed-by: vlivanov, kvn
2020-07-29 15:41:37 -04:00
Naoto Sato
4946a162aa 8247546: Pattern matching does not skip correctly over supplementary characters
Reviewed-by: joehw
2020-07-29 09:49:43 -07:00
Rajan Halade
6e32338330 8243321: Add Entrust root CA - G4 to Oracle Root CA program
Reviewed-by: mullan
2020-07-29 09:31:38 -07:00
Huang Wang
eef2e1e3fc 8250609: C2 crash in IfNode::fold_compares
Reviewed-by: kvn, chagedorn
2020-07-28 10:38:04 +08:00
Severin Gehwolf
e6517d1ae2 8250627: Use -XX:+/-UseContainerSupport for enabling/disabling Java container metrics
Reviewed-by: aph, dholmes, bobv
2020-07-24 19:57:06 +02:00
Richard Reingruber
10b9d0b6a6 8250610: SafepointMechanism::disarm_if_needed() is declared but not used
Reviewed-by: shade, dholmes
2020-07-29 14:11:46 +02:00
Jan Lahoda
27a9a2f64a 8249261: AssertionError in StructuralStuckChecker
Reviewed-by: mcimadamore
2020-07-29 11:34:25 +02:00
Jan Lahoda
b37228e11f 8248641: Trees.getScope returns incorrect results for code inside a rule case
Ensuring rule cases are copied correctly by TreeCopier.

Reviewed-by: vromero
2020-07-29 11:34:24 +02:00
Rahul Yadav
17035efe87 8250602: Update sun/security/ssl/SSLLogger/LoggerDateFormatterTest.java to handle TimeZones
This fix updates the test LoggerDateFormatterTest.java to be able to handle different TimeZones

Reviewed-by: alanb, dfuchs, xuelei
2020-07-29 10:26:39 +01:00
Ludovic Henry
6af643e5a1 8248657: Windows: strengthening in ThreadCritical regarding memory model
Reviewed-by: dholmes, kbarrett, aph, stuefe
2020-07-29 10:38:28 +02:00
Aleksey Shipilev
3349e10b7f 8250612: jvmciCompilerToVM.cpp declares jio_printf with "void" return type, should be "int"
Reviewed-by: thartmann, kvn
2020-07-29 09:48:08 +02:00
Andrei Pangin
a72a8984a9 8249719: MethodHandle performance suffers from bad ResolvedMethodTable hash function
Reviewed-by: simonis, stuefe, coleenp
2020-07-24 15:33:38 +03:00
Mikael Vidstedt
25d1305f7e Merge 2020-07-28 22:37:23 -07:00
Chris Plummer
76baa501fa 8250742: ProblemList serviceability/sa/ClhsdbPstack.java #id0 and #id1 for ZGC
Reviewed-by: sspitsyn
2020-07-28 16:41:07 -07:00
Joe Wang
64d130efc4 8249643: Clarify DOM documentation
Reviewed-by: lancea
2020-07-28 23:29:33 +00:00
Joe Darcy
77a10a182f 8250580: Address reliance on default constructors in java.rmi
Reviewed-by: smarks
2020-07-28 16:26:28 -07:00
Igor Ignatyev
0b42b1cf15 8250739: remove Compile::Generate_*_Graph methods declarations
Reviewed-by: kvn
2020-07-28 15:31:10 -07:00
Igor Ignatyev
f4301530b4 8250738: C2Compiler::is_intrinsic_supported(methodHandle&, bool) shouldn't be virtual
Reviewed-by: xliu, kvn
2020-07-28 15:31:09 -07:00
Harold Seigel
99ae9558fe 8250562: Clean up weird comment in vmTestbase class Terminator.java
Delete the weird comment.

Reviewed-by: lfoltan
2020-07-28 20:14:01 +00:00
Chris Plummer
816a7060ba 8248882: SA PMap and PStack support on OSX works with core files. Enable them
Reviewed-by: sspitsyn, amenkov
2020-07-28 12:04:58 -07:00
Chris Plummer
ab729d7075 8247515: OSX pc_to_symbol() lookup does not work with core files
Reviewed-by: sspitsyn, kevinw
2020-07-28 09:52:07 -07:00
Joe Darcy
1a5ef6606f 8249219: Update --release 15 symbol information for JDK 15 build 33
Reviewed-by: jlahoda
2020-07-28 09:25:23 -07:00
Joe Darcy
8a9675663f 8250640: Address reliance on default constructors in jdk.jdi
Reviewed-by: alanb
2020-07-28 09:21:04 -07:00
Christian Hagedorn
31368cd1f0 8249602: C2: assert(cnt == _outcnt) failed: no insertions allowed
Use DUIterator instead of DUIterator_Fast due to legit insertions.

Reviewed-by: kvn, thartmann
2020-07-28 16:05:30 +02:00
Coleen Phillimore
aff80ee900 8250589: Move Universe::_reference_pending_list into OopHandle
Use synchronization to reference the _reference_pending_list with OopHandle

Reviewed-by: shade, kbarrett, dholmes, eosterlund
2020-07-28 08:10:43 -04:00
Coleen Phillimore
42ac8e1856 8250042: Clean up methodOop and method_oop names from the code
Reviewed-by: dholmes, sspitsyn, cjplummer, chagedorn
2020-07-28 07:33:51 -04:00
Nick Gasson
0ebcf5c59d 8237483: AArch64 C1 OopMap inserted twice fatal error
Reviewed-by: aph
2020-07-28 16:50:32 +08:00
Aleksey Shipilev
5b99c6ae1f 8250605: Linux x86_32 builds fail after JDK-8249821
Reviewed-by: erikj, prr
2020-07-28 09:05:36 +02:00
Mikael Vidstedt
e7289aa4d4 Merge 2020-07-27 22:26:00 -07:00
Kim Barrett
188ad9714d 8247976: Update HotSpot Style Guide for C++14 adoption
Update and move style guide from wiki to jdk repo.

Reviewed-by: jrose, stefank, dholmes, mikael, stuefe, kvn
2020-07-27 22:19:33 -04:00
Jamil Nimeh
2aa291ad2c 8247630: Use two key share entries
Reviewed-by: xuelei
2020-07-27 18:20:57 -07:00
Doug Simon
f2e69156c8 8250556: revert JVMCI part of JDK-8230395
Reviewed-by: never, dholmes
2020-07-27 22:59:27 +02:00
Daniil Titov
277ec3d260 8216324: GetClassMethods is confused by the presence of default methods in super interfaces
Reviewed-by: sspitsyn, amenkov
2020-07-27 11:34:19 -07:00
Joe Darcy
ed7f796494 8250213: Address use of default constructors in com.sun.source.util
Reviewed-by: jjg
2020-07-27 11:07:30 -07:00
Patric Hedlin
761a92d7c9 8247766: [aarch64] guarantee(val < (1U << nbits)) failed: Field too big for insn
Reviewed-by: neliasso, aph
2020-07-27 10:56:51 +02:00
Martin Balao
31753ef9bf 8250582: Revert Principal Name type to NT-UNKNOWN when requesting TGS Kerberos tickets
Reviewed-by: weijun
2020-07-25 01:02:51 -03:00
Vicente Romero
6c2ff1781b 8249829: javac is issuing an incorrect static access error
Reviewed-by: jlahoda
2020-07-27 10:12:30 -04:00
Albert Yang
af8c3b4a7e 8242036: G1 HeapRegionRemSet::_n_coarse_entries could be a bool
Reviewed-by: kbarrett, eosterlund, tschatzl, lkorinth
2020-07-27 12:59:32 +02:00
Christian Hagedorn
417e8e449d 8248552: C2 crashes with SIGFPE due to division by zero
Bail out in PhaseIdealLoop:split_thru_phi when trying to split a Div or ModNode iv phi whose zero check was removed but could potentially still be zero based on type information.

Reviewed-by: kvn, thartmann
2020-07-27 11:03:17 +02:00
Yasumasa Suenaga
f84b5d2f80 8248362: JVMTI frame operations should use Thread-Local Handshake
Reviewed-by: sspitsyn, dholmes, dcubed
2020-07-27 15:49:53 +09:00
David Holmes
3dba35d248 8247296: Optimize JVM_GetDeclaringClass
Co-authored-by: Christoph Dreis <christoph.dreis@freenet.de>
Reviewed-by: shade, minqi
2020-07-26 20:29:42 -04:00
Ioi Lam
112bbcb396 8249087: Always initialize _body[0..1] in Symbol constructor
Reviewed-by: dholmes, lfoltan
2020-07-24 13:56:45 -07:00
Roland Westrelin
eb758d53f1 8247763: assert(outer->outcnt() == 2) failed: 'only phis' failure in LoopNode::verify_strip_mined()
Reviewed-by: kvn, thartmann
2020-06-18 15:44:55 +02:00
Weijun Wang
f834dc3dc9 8247964: All log0() in com/sun/org/slf4j/internal/Logger.java should be private
Reviewed-by: rriggs, xuelei
2020-06-21 08:32:54 +08:00
Weijun Wang
c4df79117d 8247907: XMLDsig logging does not work
Reviewed-by: mullan
2020-06-20 15:11:19 +08:00
Daniel D. Daugherty
25b1e5a7bd 8247876: ProblemList various crypto tests on aarch64
Reviewed-by: wetmore
2020-06-19 15:22:19 -04:00
Jonathan Gibbons
e0a7782a9e 8247784: Bad link causes invalid documentation
Reviewed-by: mchung, dholmes, sspitsyn
2020-06-19 11:10:31 -07:00
Jonathan Gibbons
8b6d3147fb 8247815: doclint: recategorize "no description for ..." as MISSING, not SYNTAX
Reviewed-by: prappo
2020-06-19 11:04:52 -07:00
Hannes Wallnöfer
2e6923ffd6 8243533: Only one of several deprecated overloaded methods listed in the Deprecated list
Reviewed-by: jjg
2020-06-19 18:21:08 +02:00
Pavel Rappo
9d40d80237 8247780: Refine the Help page for API Documentation
Reviewed-by: jjg
2020-06-19 16:42:52 +01:00
Mandy Chung
f2b191a6e9 8247444: Trust final fields in records
Co-authored-by: Christoph Dreis <christoph.dreis@freenet.de>
Reviewed-by: jrose, dholmes, forax, coleenp, vlivanov
2020-06-19 08:27:59 -07:00
Hannes Wallnöfer
983e012c9f 8241969: Type annotation is not shown for wildcard type in Javadoc
Reviewed-by: jjg
2020-06-19 17:24:46 +02:00
Hannes Wallnöfer
ffbee17d8a 8198705: Javadoc search needs a fix to handle duplicate package names in different modules
Reviewed-by: jjg
2020-06-19 17:17:40 +02:00
Jan Lahoda
226e852831 8242214: NullPointerException in JDK 14 javac compiling a method reference
Ensuring a proper receiver is used to invoke protected method when method reference is unrolled into a lambda.

Reviewed-by: vromero
2020-06-19 14:26:09 +02:00
Pavel Rappo
5d1255bf52 8246078: Javadoc Search specification link from Javadoc Help page points to JDK 13 spec
Reviewed-by: jjg
2020-06-19 11:52:01 +01:00
Tobias Hartmann
326ba31787 8237950: C2 compilation fails with "Live Node limit exceeded limit" during ConvI2L::Ideal optimization
Postpone ConvI2L::Ideal optimization to IGVN.

Reviewed-by: kvn, neliasso
2020-06-19 11:32:51 +02:00
Goetz Lindenmaier
bf1e6903a2 8233014: Enable ShowCodeDetailsInExceptionMessages by default
Reviewed-by: coleenp, stuefe, dholmes
2020-06-18 22:03:18 +02:00
Jonathan Gibbons
e208d9aa1f 8247899: HTML errors and warnings in threadPrimitiveDeprecation.html
Reviewed-by: lancea
2020-06-18 17:32:57 -07:00
Jonathan Gibbons
510354452f 8247896: Invalid (@throw) tags in 2 java.io classes
Reviewed-by: mchung
2020-06-18 16:21:34 -07:00
Jonathan Gibbons
6c2c0563eb 8247894: Invalid @see in java.management
Reviewed-by: mchung, darcy
2020-06-18 16:19:07 -07:00
Jonathan Gibbons
2155d525dd 8247880: bad HTML(href==...) in table
Reviewed-by: lancea, darcy
2020-06-18 15:54:26 -07:00
Jonathan Gibbons
de3923edf9 8247788: DocCommentParser should not reject standalone '>'
Reviewed-by: prappo
2020-06-18 14:07:49 -07:00
Roland Westrelin
05dc2af21f 8247824: CTW: C2 (Shenandoah) compilation fails with SEGV in SBC2Support::pin_and_expand
Reviewed-by: rkennke, thartmann
2020-06-18 13:51:40 +02:00
Tobias Hartmann
d5ae932b3f 8248265: compiler/ciReplay tests fail with AOT compiled java.base
The test should use a non-empty method to trigger compilation.

Reviewed-by: kvn, neliasso, iignatyev
2020-06-30 15:08:40 +02:00
Zhuo Wang
a7e352b554 8246051: SIGBUS by unaligned Unsafe compare_and_swap
Reviewed-by: aph
2020-06-29 10:15:45 -04:00
Chris Plummer
144267d30f 7107012: sun.jvm.hostspot.code.CompressedReadStream readDouble() conversion to long mishandled
Reviewed-by: sspitsyn, dcubed
2020-06-29 14:22:01 -07:00
Patric Hedlin
d19f2bdec0 8234605: C2 failed "assert(C->live_nodes() - live_at_begin <= 2 * _nodes_required) failed: Bad node estimate: actual = 208 >> request = 101"
Reviewed-by: neliasso, kvn
2020-06-29 19:33:35 +02:00
Alexey Semenyuk
320af9b34b 8248264: WinUpgradeUUIDTest application is missing in downgrade scenario
Reviewed-by: herrick, almatvee
2020-06-29 10:52:24 -04:00
Alexey Semenyuk
d180fb3044 8248254: jpackage fails if app module is in external runtime
Reviewed-by: herrick, almatvee
2020-06-29 10:52:24 -04:00
Alexey Semenyuk
1a4f31409a 8248427: jpackage jtreg BasicTest.testTemp() test fails on Windows
Reviewed-by: herrick, almatvee
2020-06-29 10:51:39 -04:00
Bob Vandette
d16ea55b62 8236647: Correct Fix for 8236647: java/lang/invoke/CallSiteTest.java failed with InvocationTargetException in Graal mode
Reviewed-by: kvn, never
2020-06-29 15:25:16 +00:00
Tobias Hartmann
97cdfb92f8 8247832: [Graal] Many Javafuzzer tests failures with Graal, due to unexpected results, after last update JDK-8243380
Cherry-picking GR-24281

Reviewed-by: roland, kvn
2020-06-29 08:18:23 +02:00
Aleksey Shipilev
a750ac5feb 8247358: Shenandoah: reconsider free budget slice for marking
Reviewed-by: zgu
2020-06-11 18:16:26 +02:00
Chris Hegarty
56048d0480 8247789: Remove use of reflection from test/jdk/java/io/Serializable/records/StreamRefTest.java
Reviewed-by: rriggs, mchung
2020-06-18 17:46:15 +01:00
Alexey Semenyuk
11ac92c8fb 8246244: BasicShortcutHintTest shortcut can not be found
Reviewed-by: herrick, almatvee
2020-06-16 16:23:32 -04:00
Aleksey Shipilev
cfab7f4c68 8247778: ZGC: More parallel gc/z/TestUncommit.java test configuration
Reviewed-by: iignatyev, stefank
2020-06-18 11:23:19 +02:00
Gilles Duboscq
2cbdd21ed7 8241802: [Graal] compiler/loopopts/TestLogSum.java timed out
Reviewed-by: kvn
2020-06-18 10:39:36 +02:00
Jesper Wilhelmsson
59a4517d07 Added tag jdk-15+28 for changeset 06c9f89459da 2020-06-18 03:05:41 +02:00
Vicente Romero
ecb4cbfd4a 8245842: provide tests for binary compatibility assertions for sealed classes
Reviewed-by: jjg
2020-06-17 14:39:44 -04:00
Vicente Romero
ce4978ffe6 8246257: Annotated record's vararg type component started to be uncompilable with JDK15b24
Reviewed-by: jjg, jlaskey
2020-06-17 13:19:51 -04:00
Jonathan Gibbons
2a794b696c 8245696: javadoc crashes when a doc-files directory contains a '#' file
Reviewed-by: hannesw
2020-06-17 09:20:24 -07:00
Adam Sotona
ed4b801771 8238735: NPE compiling lambda expression within conditional expression
The fix saves result type from the first pass through the Attr.visitLambda and returns it after recovery pass to avoid NPE caused by exposure of Type.recoveryType

Reviewed-by: mcimadamore
2020-06-17 13:18:19 +02:00
Igor Ignatyev
338dd21cfe 8247725: move two tests for whitebox from test/hotspot/jtreg/sanity to test/lib-test
Reviewed-by: dcubed
2020-06-17 07:40:11 -07:00
Igor Ignatyev
f740cda526 8247716: JVM_RegisterWhiteBoxMethods checks wrong classloader
Reviewed-by: dcubed
2020-06-17 07:40:09 -07:00
Patric Hedlin
5547d3204d 8247200: assert((unsigned)fpargs < 32)
Reviewed-by: aph, neliasso
2020-06-17 11:08:44 +02:00
Calvin Cheung
3237e82b4b 8247526: [TESTBUG] runtime/cds/appcds/dynamicArchive tests failing with Graal
Adjusted the "shouldMatch" statement and increased the timeout of some tests.

Reviewed-by: iklam
2020-06-16 22:05:09 +00:00
Jonathan Gibbons
a27ee6b284 8236539: Relative link tags in record javadoc don't resolve
Reviewed-by: hannesw
2020-06-16 14:42:06 -07:00
Vicente Romero
dee90e4736 8246098: API for Class::permittedSubclasses should clarify if returned elements are ordered or not
Reviewed-by: chegar
2020-06-16 17:25:02 -04:00
Igor Ignatyev
e7f8e1fdb5 8211977: move testlibrary tests into one place
Reviewed-by: erikj, dholmes, ihse
2020-06-16 09:50:45 -07:00
Yumin Qi
5073b8c163 8247528: runtime/cds/appcds/jigsaw/modulepath/OptimizeModuleHandlingTest.java failing with Graal
OptimizeModuleHandlingTest.java should be disabled for jvmci since jvmci will set jdk.module.addmods.0=jdk.internal.vm.ci which lead to optimization disabled.

Reviewed-by: dcubed
2020-06-16 08:03:40 -07:00
Markus Grönlund
e5d33163c7 8247660: 12 Uninitialised variable in 1 files
Reviewed-by: egahlin
2020-06-16 16:33:45 +02:00
Nils Eliasson
bf300e8d8c 8247421: ReturnBlobToWrongHeapTest.java failed allocating blob
Reviewed-by: kvn
2020-06-16 11:15:43 +02:00
Dean Long
02cec3470f 8236647: java/lang/invoke/CallSiteTest.java failed with InvocationTargetException in Graal mode
Reviewed-by: kvn
2020-06-15 17:17:28 -07:00
Valerie Peng
f968f32789 8246077: Cloneable test in HmacCore seems questionable
Updated java.security.MessageDigest and Signature classes to return Cloneable obj for Cloneable spi obj

Reviewed-by: weijun, xuelei, coffeys
2020-06-15 23:30:49 +00:00
Jonathan Gibbons
c55b06a4d5 8247382: doclint errors (missing comments) in jdk.compiler and jdk.javadoc
Reviewed-by: darcy
2020-06-15 16:05:47 -07:00
Markus Grönlund
898c638b95 8247530: JfrCheckpointManager failed "assert(!SafepointSynchronize::is_at_safepoint()) failed: invariant"
Reviewed-by: egahlin
2020-06-15 21:52:25 +02:00
Daniil Titov
6cdf06f02b 8246196: javax/management/MBeanServer/OldMBeanServerTest fails with AssertionError
Reviewed-by: amenkov, dholmes, sspitsyn
2020-06-15 09:03:45 -07:00
Roger Riggs
6c3c3dad97 8247521: (test) jdk/test/lib/hexdump/HexPrinterTest.java fails on windows
Reviewed-by: iignatyev, joehw
2020-06-15 11:57:33 -04:00
Aleksey Shipilev
b71dac2502 8247575: serviceability/dcmd/gc/HeapDumpCompressedTest unlocks experimental options for Shenandoah and Z
Reviewed-by: tschatzl, stefank
2020-06-15 16:16:48 +02:00
Jie Fu
fd7123b268 8247463: java/nio/channels/etc/OpenAndConnect.java fails due to IPv6 not available
Reviewed-by: dfuchs, alanb
2020-06-13 14:29:08 +08:00
Jie Fu
ca85c5ab15 8247522: assert(is_aligned(class_space_rs.base(), class_space_alignment)) failed: Sanity
Co-authored-by: Thomas Stuefe <thomas.stuefe@gmail.com>
Reviewed-by: stuefe, iklam
2020-06-13 23:10:26 +08:00
Aleksey Shipilev
e3b04bc135 8247560: Shenandoah: heap iteration holds root locks all the time
Reviewed-by: zgu
2020-06-15 14:11:43 +02:00
Aleksey Shipilev
bc73f12313 8247474: Shenandoah: Windows build warning after JDK-8247310
Reviewed-by: rkennke
2020-06-14 18:16:31 +02:00
Ao Qi
faaf52cc30 8247388: Minimal build broken after JDK-8240245 (undefined reference to `MetaspaceShared::_use_optimized_module_handling')
Reviewed-by: iklam, coleenp, dholmes
2020-06-13 18:59:44 -07:00
Weijun Wang
2536cbf2cf 8245679: KeyStore cannot probe PKCS12 keystore if BouncyCastle is the top security provider
Reviewed-by: mullan
2020-06-13 17:49:15 +08:00
Vladimir Kozlov
241f401815 8247350: [aarch64] assert(false) failed: wrong size of mach node
Use movptr() to load address of string

Reviewed-by: adinn, azeemj
2020-06-12 14:33:20 -07:00
Daniel D. Daugherty
e68f81ab4c 8247495: ProblemList vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw001/TestDescription.java
Reviewed-by: cjplummer, minqi
2020-06-12 17:28:39 -04:00
Phil Race
7b988b31c6 8240654: ZGC can cause severe UI application repaint issues
Reviewed-by: serb, jdv, stefank, kcr
2020-06-12 09:31:08 -07:00
Daniel D. Daugherty
eeb3c5e9e3 8247492: ProblemList tools/jlink/plugins/CompressorPluginTest.java
Reviewed-by: jlaskey
2020-06-12 12:06:24 -04:00
Andy Herrick
4bc69f4255 8247418: Only validate the certificates trust if using the default key user name
Reviewed-by: asemenyuk, almatvee
2020-06-12 11:24:09 -04:00
Jan Lahoda
19c5bfe42f 8247334: Trees.getScope crashes for annotated local records
Reviewed-by: vromero
2020-06-12 13:38:06 +02:00
Jesper Wilhelmsson
56d333c538 Added tag jdk-15+27 for changeset 93813843680b 2020-06-12 05:00:09 +02:00
Valerie Peng
0b8f18beda 8246613: Choose the default SecureRandom algo based on registration ordering
Fixed java.security.Provider and SecureRandom to use the 1st registered SecureRandom service

Reviewed-by: weijun, mullan
2020-06-12 02:34:44 +00:00
Alexey Semenyuk
edefd3c198 8247422: --runtime-image on Mac should work for runtime root
8247424: jpackage BasicTest.java failed two sub-tests

Reviewed-by: herrick, almatvee
2020-06-11 19:46:39 -04:00
Mandy Chung
c0475c81f2 8247247: JFR tests fail due to JDK-8235521 missing doPrivileged block
Reviewed-by: egahlin
2020-06-11 11:07:09 -07:00
Calvin Cheung
30ff2ad58c 8246382: assert in MetaspaceShared::map_archives
Perform base archive header CRC check earlier.

Reviewed-by: iklam, coleenp
2020-06-11 15:47:36 +00:00
Evgeny Nikitin
212ab17635 8242923: Trigger interface MethodHandle resolve in test without Nashorn
Reviewed-by: iignatyev
2020-06-10 13:17:03 +02:00
Prasanta Sadhukhan
a6df9ae23a Merge 2020-06-10 12:43:22 +05:30
Jonathan Gibbons
07e6b75ff5 8242607: -Xdoclint doesn't report missing/unexpected comments
Reviewed-by: ksrini
2020-06-09 20:05:04 -07:00
Jonathan Gibbons
0652a7883d 8246705: javadoc gives "misleading" and incomplete warning message
Reviewed-by: hannesw
2020-06-09 19:50:30 -07:00
Jonathan Gibbons
56abdc178e 8246712: doclint incorrectly reports some HTML elements as empty
Reviewed-by: prappo
2020-06-09 19:34:18 -07:00
Jie Fu
80ae89b1aa 8247284: Zero VM is broken after JDK-8244920 ('class JavaFrameAnchor' has no member named 'set_last_Java_sp')
Reviewed-by: iklam, dholmes
2020-06-10 09:32:27 +08:00
Anthony Scarpino
ee452946fc 8245686: Ed25519 and Ed448 present in handshake messages
Reviewed-by: jnimeh, xuelei, wetmore
2020-06-09 18:27:59 -07:00
Anthony Scarpino
b6a9f3015a 8241680: crypto microbenchmarks need updating for disabled EC curves
Reviewed-by: ecaspole, redestad, skuksenko, jnimeh
2020-06-09 16:01:25 -07:00
Kim Barrett
0bf3ba402b 8246718: ParallelGC should not check for forward objects for copy task queue
Prefetch task's oop markword and unconditionally push task.

Reviewed-by: tschatzl, eosterlund
2020-06-09 18:42:00 -04:00
Naoto Sato
27e168677f 8246662: Test java/time/test/java/time/format/TestUnicodeExtension.java failed on japanese locale
Reviewed-by: rriggs, joehw
2020-06-09 14:46:08 -07:00
Joe Wang
140a79765f 8237456: Transform filtered through SAX filter mishandles character entities
Reviewed-by: aefimov, lancea
2020-06-09 21:23:33 +00:00
Prasanta Sadhukhan
41c5a07fa9 Merge 2020-06-09 17:03:35 +05:30
Per Lidén
9d0ba7ae7f 8246220: ZGC: Introduce ZUnmapper to asynchronous unmap pages
Reviewed-by: eosterlund, stefank
2020-06-09 11:01:09 +02:00
Per Lidén
d7e68f375c 8245208: ZGC: Don't hold the ZPageAllocator lock while committing/uncommitting memory
Reviewed-by: eosterlund, stefank
2020-06-09 11:01:09 +02:00
Per Lidén
cd16b568ce 8246265: ZGC: Introduce ZConditionLock
Reviewed-by: eosterlund, stefank
2020-06-09 11:01:09 +02:00
Per Lidén
63a3d8f0f2 8245204: ZGC: Introduce ZListRemoveIterator
Reviewed-by: eosterlund, stefank
2020-06-09 11:01:09 +02:00
Per Lidén
4d8189b265 8245203: ZGC: Don't track size in ZPhysicalMemoryBacking
Reviewed-by: eosterlund, stefank
2020-06-09 11:01:09 +02:00
Shivangi Gupta
82e3640eb1 8246330: Add TLS Tests for Legacy ECDSA curves
Reviewed-by: rhalade
2020-06-09 00:04:40 -07:00
Thomas Stuefe
8dc66431d4 8243535: NMT may show wrong numbers for CDS and CCS
Reviewed-by: zgu, iklam
2020-06-09 08:41:33 +02:00
Igor Ignatyev
dc91b06661 8244614: cleanup keywords used/available in hotspot testbase
Reviewed-by: coleenp, mseledtsov
2020-06-08 21:27:22 -07:00
Andy Herrick
b37d806d82 8246706: [macos] Allow SigningPackageTest to be built with real certificates
Reviewed-by: asemenyuk, almatvee
2020-06-08 20:24:29 -04:00
Alexander Matveev
976c469305 8236282: [macos] Find permanent solution to macOS test timeout problem JDK-8235738
Reviewed-by: herrick, asemenyuk
2020-06-08 20:19:12 -04:00
Mandy Chung
71d646a160 8235521: Replacement API for Unsafe::ensureClassInitialized
Reviewed-by: alanb, chegar, psandoz
2020-06-08 16:55:45 -07:00
Dean Long
6fc6476da8 8246719: remove LambdaStableNameTest from problem list
Reviewed-by: kvn
2020-06-08 15:12:08 -07:00
Claes Redestad
9cd41b6555 8246592: Simplify checking of boolean file attributes
Reviewed-by: rriggs, alanb
2020-06-08 22:47:16 +02:00
Brian Burkhalter
1786701011 8246729: MappedByteBuffer.force() throws IndexOutOfBoundsException
Reviewed-by: psandoz, alanb
2020-06-08 13:15:59 -07:00
Adam Sotona
63ade9c49c 8236697: Stack overflow with cyclic hierarchy in class file
Implemented minimal necessary cycle detection to avoid stack overflow in c.s.t.j.code.Types::asSuper

Reviewed-by: vromero
2020-06-08 16:07:03 -04:00
Erik Joelsson
46f4bf93db 8246750: Docs bundle should be published to common dir
Reviewed-by: ihse
2020-06-08 11:06:36 -07:00
Markus Grönlund
a748779e1e 8246770: Atomic::add() with 64 bit value fails to link on 32-bit platforms
Reviewed-by: egahlin
2020-06-08 19:49:21 +02:00
Anthony Scarpino
785b914282 8243424: Signature and SignatureSpi get parameter methods may return null when unsupported
Reviewed-by: mullan
2020-06-08 10:45:58 -07:00
Claes Redestad
a043bd0ff8 8246632: StringConcatFactory::makeConcatWithConstants no longer throws NullPointerException when an unexpected constant is null
Reviewed-by: rriggs, mchung
2020-06-08 19:23:51 +02:00
Daniil Titov
5805cbeaaf 8081652: [TESTBUG] java/lang/management/ThreadMXBean/ThreadMXBeanStateTest.java timed out intermittently
Reviewed-by: cjplummer, dholmes
2020-06-08 09:58:55 -07:00
Daniil Titov
ea9aeda5ee 8131745: java/lang/management/ThreadMXBean/AllThreadIds.java still fails intermittently
Reviewed-by: sspitsyn, amenkov
2020-06-08 09:47:21 -07:00
Magnus Ihse Bursie
b073038e54 8246751: Mac OS build settings should use -O3
Reviewed-by: erikj
2020-06-08 18:15:55 +02:00
Vicente Romero
e90621c169 8246199: 'permits' is a restricted identifier
Reviewed-by: mcimadamore
2020-06-08 11:08:28 -04:00
Jan Lahoda
358714bcd0 8246353: Sealed types not supported by jshell
Reviewed-by: rfield, vromero
2020-06-08 16:59:43 +02:00
Julia Boes
3943f9d0b7 8246431: java/net/httpclient/PathSubscriber tests fail due to missing FilePermission
Add explicit jtreg build configuration and adjust permissions accordingly

Reviewed-by: chegar, dfuchs
2020-06-08 15:27:31 +01:00
Alexander Scherbatiy
2845c3d029 8245938: Remove unused print_stack(void) method from XToolkit.c
Reviewed-by: serb
2020-06-08 16:38:23 +03:00
Alexey Semenyuk
f87ef60b09 8238204: run_tests.sh fails on macOS when called from test_jpackage.sh
Reviewed-by: herrick, almatvee
2020-06-08 09:13:01 -04:00
Alexey Semenyuk
28d2cdf99a 8246627: Consolidate app image bundlers
Reviewed-by: herrick, almatvee
2020-06-08 09:13:00 -04:00
Alexey Semenyuk
045d61b5e0 8246624: Refactor JLinkBundlerHelper and StandardBundlerParam classes
Reviewed-by: herrick, almatvee
2020-06-08 09:12:58 -04:00
Erik Österlund
086c5f1750 8246442: nmethod::can_convert_to_zombie() asserts when not called by the sweeper
Reviewed-by: dholmes, dcubed, kvn
2020-06-08 12:15:30 +00:00
Patric Hedlin
201d0a48d1 8246689: Enable independent compressed oops/class ptrs on Aarch64
Reviewed-by: eosterlund
2020-06-08 13:57:55 +02:00
Erik Österlund
6cbd66b1c1 8242240: JfrStacktrace_lock rank not special enough
Reviewed-by: mgronlun, pliden
2020-06-09 16:22:54 +00:00
Erik Österlund
f160c80e3b 8244920: Access violation in frames::interpreter_frame_method
Reviewed-by: mgronlun, coleenp
2020-06-09 16:22:54 +00:00
Hannes Wallnöfer
ac2828ddf1 8164408: Add module support for @see, @link and @linkplain javadoc tags
Reviewed-by: jjg
2020-06-09 18:18:22 +02:00
Erik Österlund
9a8ace2c0a 8246837: Rename WeakHandle<vm_class_loader_data> to better reflect its OopStorage association
Reviewed-by: coleenp
2020-06-09 16:09:55 +00:00
Pavel Rappo
6e43cddad7 8247115: Fix typos in java.lang.invoke and java.lang
Reviewed-by: lancea
2020-06-09 16:28:10 +01:00
Pavel Rappo
3df95aa377 8247212: Use assistant markup in java.lang.module.ModuleDescriptor
Reviewed-by: alanb
2020-06-09 16:17:09 +01:00
Patrick Concannon
5b6f050fce 8245828: Remove unnecessary NetworkPermission checks from jdk/net/ExtendedSocketOptions.java
This fix removes NetworkPermission checks that were made redundant in jdk/net/ExtendedSocketOptions after the socket option SO_FLOW_SLA was removed.

Reviewed-by: alanb
2020-06-09 15:39:22 +01:00
Vicente Romero
59428f4a0d 8245958: j.l.Record need to mention that canonical constructor may not be public
Reviewed-by: mchung
2020-06-09 10:31:05 -04:00
Patrick Concannon
ac906168c8 8243999: DatagramSocket and MulticastSocket constructors don't specify how a null InetAddress is handled
This fix clarifies the behaviours of constructors from DatagramSocket and MulticastSocket when no address or a null address is supplied.

Reviewed-by: dfuchs
2020-06-09 15:26:53 +01:00
Erik Joelsson
c47f27e1c6 8236469: macOS devkit needs 64-bit SetFile for Catalina
Reviewed-by: ihse
2020-06-09 14:09:22 +00:00
Adam Sotona
022d7a19d3 8236108: tools/javac/lambda/LambdaParserTest.java timed out
The patch filters redundant or non-sense combinations of lambdas and it reduces the number of performed sub-tests.

Reviewed-by: vromero
2020-06-09 09:37:53 -04:00
Yasumasa Suenaga
9149f10fa4 8241439: jdk.NativeLibraryEvent hooks all opened regular files
Reviewed-by: stuefe, cito
2020-06-08 17:21:09 +09:00
Matthias Baesken
7d6c1cf4a8 8246648: issue with OperatingSystemImpl getFreeSwapSpaceSize in docker after 8242480
Reviewed-by: bobv, sgehwolf
2020-06-08 09:29:32 +02:00
Tobias Hartmann
a98bad2b22 8246453: TestClone crashes with "all collected exceptions must come from the same place"
Set deoptimize_on_exception for slow paths.

Reviewed-by: neliasso
2020-06-08 08:30:52 +02:00
Yang Zhang
35ceac0083 8243597: AArch64: Add support for integer vector abs
Reviewed-by: aph
2020-06-08 02:42:57 +00:00
Serguei Spitsyn
be14526569 8196450: Deprecate JDWP/JDI canUnrestrictedlyRedefineClasses to match JVM TI capabilities
Deprecate capabilities unsupported in JVM TI

Reviewed-by: dholmes, cjplummer
2020-06-06 08:13:40 +00:00
John Jiang
ff8c6d5deb 8246709: sun/security/tools/jarsigner/TsacertOptionTest.java compilation failed after JDK-8244683
Reviewed-by: weijun
2020-06-06 13:51:23 +08:00
Magnus Ihse Bursie
2625942c43 8246484: Verify patch at start of COMPARE_BUILD=PATCH run
Reviewed-by: erikj
2020-06-06 02:06:48 +02:00
Magnus Ihse Bursie
cd651b9aad 8246435: Replace Javascript implementation of pandoc filters with Java
Reviewed-by: erikj
2020-06-06 02:04:21 +02:00
Phil Race
2048bcb648 8244621: [macos10.15] Garbled FX printing plus CoreText warnings on Catalina when building with Xcode 11
Reviewed-by: kcr, psadhukhan
2020-06-05 16:40:56 -07:00
Jim Laskey
71c926c4f6 8246697: Test: java/util/StringJoiner/StringJoinerTest.java failing with OOM
Reviewed-by: iignatyev
2020-06-05 16:34:23 -03:00
Stuart Marks
a46a94c431 8245068: Implement Deprecation of RMI Activation
Reviewed-by: lancea, rriggs
2020-06-05 10:14:10 -07:00
Fernando Guallini
8d19eca78c 8222241: Example in ServiceLoader API docs should have one provides directive
This patch fixes an example given in the ServiceLoader API doc that, if used, would result in a compilation error.

Reviewed-by: alanb
2020-06-05 17:34:49 +01:00
Hannes Wallnöfer
9c3be78826 8246429: Javadoc comparators are not module-aware
Reviewed-by: jjg
2020-06-05 18:06:13 +02:00
Patrick Concannon
97fc959e35 8246132: AsynchronousSocketChannelNAPITest failing with a NotYetConnectedException
Fix for intermitant failure with AsynchronousSocketChannelNAPITest that sometimes fails with a NotYetConnectedException while trying to read data after connecting

Reviewed-by: alanb, dfuchs
2020-06-05 16:40:16 +01:00
John Jiang
13d30235e1 8244683: A TSA server used by tests
Reviewed-by: weijun
2020-06-05 23:36:01 +08:00
Jim Laskey
ec4240b342 8246696: Test: java/util/StringJoiner/StringJoinerTest.java failing with OOM
Reviewed-by: sundar
2020-06-05 11:46:58 -03:00
Igor Ignatyev
efffff1dbb 8245874: requires.extraPropDefns.vmOpts doesn't need -Xbootclasspath/a:bootClasses
Reviewed-by: lmesnik, vlivanov
2020-06-05 07:28:50 -07:00
Pavel Rappo
0b02c5b5e0 8245981: Upgrade to jQuery 3.5.1
Reviewed-by: hannesw
2020-06-05 15:03:09 +01:00
Coleen Phillimore
498b0e61ed 8246340: Move SystemDictionary GC roots into OopStorage
Use vm_global() OopStorage for system dictionary roots

Reviewed-by: eosterlund, lfoltan
2020-06-05 09:55:31 -04:00
Per Lidén
06e47d05b6 8246622: Remove CollectedHeap::print_gc_threads_on()
Reviewed-by: stefank, tschatzl, sjohanss
2020-06-05 15:22:53 +02:00
Markus Grönlund
c66bef0289 8233705: Let artifact iteration running time be a function of incrementally tagged artifacts
Reviewed-by: egahlin
2020-06-05 15:11:44 +02:00
Markus Grönlund
45fa5aa699 8242088: Replace mutually exclusive lists with concurrent alternatives
Reviewed-by: egahlin
2020-06-05 14:59:27 +02:00
Jim Laskey
4de4200652 8230743: StringJoiner does not handle too large strings correctly
Reviewed-by: rriggs, psandoz, martin
2020-06-05 09:37:14 -03:00
Coleen Phillimore
cb960ee7b5 8245487: Potential double-free of interfaces array
Free _local_interfaces when we free _transitive_interfaces since they can share memory.

Reviewed-by: fparain, lfoltan, iklam
2020-06-05 06:54:05 -04:00
Weijun Wang
f833afa660 8246640: @systemproperty should be @systemProperty in java.security.jgss
Reviewed-by: xuelei
2020-06-05 17:55:57 +08:00
Prasanta Sadhukhan
5aea3f0250 8245668: closed test javax/swing/JComboBox/4765319/bug4765319.java fails on windows
Reviewed-by: kizune
2020-06-03 21:51:50 +05:30
Martin Doerr
5f0f4d75e0 8246377: [PPC64] Further improvements for assembler stop function
Reviewed-by: goetz, xliu
2020-06-03 00:22:26 +02:00
Dean Long
6c3bc71079 8243380: Update Graal
Reviewed-by: kvn
2020-06-05 02:00:02 -07:00
Thomas Schatzl
0963050548 8246557: test_os_linux.cpp uses NULL instead of MAP_FAILED to check for failed mmap call
Reviewed-by: sjohanss, stefank
2020-06-05 10:44:24 +02:00
Patrick Concannon
d071ed0294 8244582: Remove terminally deprecated Solaris-specific SO_FLOW_SLA socket option
This patch removes ExtendedSocketOptions.SO_FLOW_SLA, SocketFlow and SocketFlow.Status which were terminally deprecated in JDK 14 in preparation for the removal of the Solaris port.

Reviewed-by: alanb, dfuchs, chegar, vtewari
2020-06-05 09:35:42 +01:00
Alexander Zuev
b4943a3f02 8237243: [macOS] java/awt/event/KeyEvent/DisabledTargetF10/DisabledTargetF10.html fails
Reviewed-by: psadhukhan
2020-06-02 19:32:44 +03:00
Pankaj Bansal
e97c5f41ee 8196094: javax/swing/JFileChooser/8002077/bug8002077.java fails
Reviewed-by: psadhukhan
2020-06-01 23:06:02 +05:30
Prasanta Sadhukhan
d616488567 Merge 2020-05-30 10:33:28 +05:30
Brian Burkhalter
c328bca493 8246183: Scanner/ScanTest.java fails due to SIGSEGV in StubRoutines::jshort_disjoint_arraycopy
Reviewed-by: mikael, smarks
2020-05-29 19:08:57 -07:00
Brian Burkhalter
cd340d5e70 8245121: (bf) XBuffer.put(Xbuffer src) can give unexpected result when storage overlaps
Reviewed-by: alanb, darcy, psandoz
2020-05-29 14:23:51 -07:00
Xue-Lei Andrew Fan
7514ad9ad0 8240871: SSLEngine handshake status immediately after the handshake can be NOT_HANDSHAKING rather than FINISHED with TLSv1.3
Reviewed-by: ascarpino
2020-05-29 13:48:13 -07:00
Phil Race
604005d65c 8159597: [TEST_BUG] closed/javax/swing/JPopupMenu/4760494/bug4760494.java leaves key pressed
Reviewed-by: serb, psadhukhan
2020-05-29 13:11:36 -07:00
Alexey Semenyuk
1d4bd253e4 8245831: Unify code parsing version strings on Mac and Windows
Reviewed-by: herrick, almatvee
2020-05-29 15:57:18 -04:00
Daniel Fuchs
9e43496c42 8245867: Logger/bundleLeak/BundleTest.java fails due to "OutOfMemoryError: Java heap space"
The test is fixed to release the memory as soon as it's no longer needed.

Reviewed-by: lancea, dcubed, dholmes
2020-05-29 20:35:46 +01:00
Bob Vandette
f79801b74d 8245832: JDK build make-static-libs should build all JDK libraries
Reviewed-by: erikj
2020-05-29 19:18:23 +00:00
Coleen Phillimore
5314d28f84 8245289: Clean up offset code in JavaClasses
Make offset member names consistent and private, move static initializations near owning classes

Reviewed-by: fparain, lfoltan
2020-05-29 15:00:19 -04:00
Zhengyu Gu
e639c9a840 8246162: Shenandoah: full GC does not mark code roots when class unloading is off
Reviewed-by: shade
2020-05-29 13:44:02 -04:00
Zhengyu Gu
4f9020f481 8245880: Shenandoah: check class unloading flag early in concurrent code root scan
Reviewed-by: shade
2020-05-29 13:40:51 -04:00
Andrew Haley
d101efc16b Merge 2020-05-29 13:16:30 -04:00
Erik Gahlin
72f1a49746 8246130: JFR: TestInheritedAnnotations has incorrect validation
Reviewed-by: mgronlun
2020-05-29 18:59:39 +02:00
Erik Gahlin
984373408e 8246128: JFR: Fix warnings
Reviewed-by: mgronlun
2020-05-29 17:02:11 +02:00
Erik Gahlin
6fd44901ec 8216303: JFR: Simplify generated files
Reviewed-by: erikj, mgronlun
2020-05-29 15:19:01 +02:00
Aleksei Efimov
02fbf44cc7 8244958: preferIPv4Stack and preferIPv6Addresses do not affect addresses returned by HostsFileNameService
Reviewed-by: dfuchs, alanb, vtewari
2020-05-29 13:39:16 +01:00
Hannes Wallnöfer
b43f356288 8177280: @see {@link} syntax should allow generic types
8237826: DocTrees should provide getType(DocTreePath) method

Reviewed-by: jjg
2020-05-29 14:28:13 +02:00
Julia Boes
c0a1a4e4fc 8237470: HttpResponse.BodySubscriber::ofFile throws UOE with non-default file systems
Rework non-default file system paths of BodySubscriber::ofFile and BodyHandler::ofFile and fix BodyHandler::ofFileDownload to throw consistently for non-default file system paths

Reviewed-by: dfuchs, chegar
2020-05-29 12:59:13 +01:00
Maurizio Cimadamore
55ed0d853f 8246040: java/foreign/TestAddressHandle fails on big endian platforms
Make test more robust by not relying on implicit endianness-related assumption

Reviewed-by: chegar
2020-05-29 12:40:50 +01:00
Peter Levart
5967aaf629 8246050: Improve scalability of MemoryScope
Reiplement memory scope using StampedLock

Reviewed-by: psandoz
2020-05-29 12:12:09 +01:00
Patrick Concannon
4708c6d343 8243507: DatagramSocket constructors don’t always specify what happens when passed invalid parameters
This fix updates the spec for DatagramSocket's constructors to inform the user of the Exceptions thrown when an invalid argument is passed.

Reviewed-by: dfuchs
2020-05-29 11:08:09 +01:00
Prasanta Sadhukhan
53015e6d82 Merge 2020-05-29 09:44:27 +05:30
David Holmes
7228978b19 8242504: Enhance the system clock to nanosecond precision
Co-authored-by: Mark Kralj-Taylor <kralj.mark@gmail.com>
Reviewed-by: dfuchs, rriggs, dcubed, vtewari
2020-05-28 22:34:02 -04:00
Kim Barrett
60ac615aa8 8240259: Disable -Wshift-negative-value warnings
Disable warning for gcc/clang.

Reviewed-by: ihse, iklam
2020-05-28 21:40:35 -04:00
Mikael Vidstedt
e29685febd 8246109: Remove unneeded undef CS
Reviewed-by: dcubed
2020-05-28 17:21:00 -07:00
Chris Plummer
e0d03881d0 8244668: Remove SA's javascript support
Reviewed-by: sspitsyn, sundar
2020-05-28 17:12:14 -07:00
Chris Plummer
de34e258ef 8244622: Remove SA's memory/FreeChunk.java. It's no longer used
Reviewed-by: sspitsyn, stefank, coleenp
2020-05-28 17:08:15 -07:00
Daniil Titov
7045a46250 8244993: Revert changes to OutputAnalyzer stderrShouldBeEmptyIgnoreVMWarnings() that allow version strings
Reviewed-by: dholmes, cjplummer
2020-05-28 15:58:59 -07:00
Jesper Wilhelmsson
6df2a95d17 Added tag jdk-15+25 for changeset 90b266a84c06 2020-05-28 23:30:34 +02:00
Alex Menkov
f3c463b50a 8244703: "platform encoding not initialized" exceptions with debugger, JNI
Reviewed-by: alanb, sspitsyn
2020-05-28 11:39:51 -07:00
Igor Veresov
23ce03d2ca 8245505: Prelink j.l.ref.Reference when loading AOT library
Reviewed-by: dlong, kvn
2020-05-28 11:36:39 -07:00
Aleksey Shipilev
b189d0b918 8245478: Implementation: JEP 379: Shenandoah: A Low-Pause-Time Garbage Collector (Production)
Reviewed-by: rkennke, smonteith, zgu
2020-05-28 18:50:58 +02:00
Aleksey Shipilev
3459f9b861 8245942: Shenandoah: x86_32 builds fail after JDK-8245594
Reviewed-by: zgu
2020-05-28 18:50:56 +02:00
Andrew Haley
339d52600b 8245986: AArch64: Provide information when hitting a HaltNode
Reviewed-by: adinn
2020-05-28 12:49:27 -04:00
Mikael Vidstedt
f702f4d93a 8246023: Obsolete LIRFillDelaySlot
Reviewed-by: thartmann, kvn
2020-05-28 09:26:11 -07:00
Aleksey Shipilev
a9477eb8c9 8245718: Epsilon: improve configuration logging
Reviewed-by: rkennke
2020-05-28 18:17:21 +02:00
Mikael Vidstedt
919f10c407 8245864: Obsolete BranchOnRegister
Reviewed-by: thartmann, kvn
2020-05-28 09:08:53 -07:00
Roman Kennke
6f4f6a2a59 8245955: Shenandoah: Remove LRB/is_redundant optimization
Reviewed-by: roland, shade
2020-05-28 16:43:04 +02:00
Roland Westrelin
57388f807f 8244504: C2: refactor counted loop code in preparation for long counted loop
Reviewed-by: jrose, thartmann
2020-05-28 14:34:01 +02:00
Tejpal Rebari
7cc3ba5f9b 8239827: The test OpenByUNCPathNameTest.java should be changed to be manual
Reviewed-by: psadhukhan
2020-05-28 14:30:39 +05:30
Adam Sotona
456fe234ce 8230827: javac gives inappropriate warning about potentially ambiguous methods
Fix of too strict com.sun.tools.javac.comp.Comp:checkPotentiallyAmbiguousOverloads method

Reviewed-by: jlahoda
2020-05-28 10:52:37 +02:00
Jan Lahoda
7671f2716b 8245786: Scope is wrong for ClassTree representing record
Listing RECORD as a class-like Tree Kind while computing Scope.

Reviewed-by: jjg
2020-05-28 13:37:39 +02:00
Ao Qi
dfc7905a10 8246027: Minimal fastdebug build broken after JDK-8245801
Added COMPILER2_PRESENT macro

Reviewed-by: shade, thartmann
2020-05-28 09:15:25 +02:00
Athijegannathan Sundararajan
8ea971e373 8246034: Remove java.base/share/classes/jdk/internal/jrtfs/jrtfsviewer.js and java.base/share/classes/jdk/internal/jrtfs/jrtls.js
Reviewed-by: jlaskey, alanb
2020-05-28 12:38:03 +05:30
David Holmes
686ca5ae49 8243936: NonWriteable system properties are actually writeable
Reviewed-by: iklam, dcubed
2020-05-28 02:58:56 -04:00
Jesper Wilhelmsson
60ce159dad Added tag jdk-15+25 for changeset 588330449887 2020-05-28 08:23:00 +02:00
Pankaj Bansal
e4a972de1a 8245968: javax/swing/JTable/7124218/SelectEditTableCell.java is added to ProblemList twice
Reviewed-by: psadhukhan
2020-05-28 11:23:23 +05:30
Jonathan Gibbons
4aea73361d 8245062: HtmlStyle: group and document members for nav, header, summary, details
Reviewed-by: hannesw
2020-05-27 16:44:10 -07:00
Yumin Qi
e6855f20b0 8245264: Test runtime/cds/appcds/SignedJar.java fails
Concurrent work of symbol table caused _shared_table not walkable in dumping archive which led symbols not sorted in shared archive. Change to use do_safepoint_scan of _local_table to collect symbols.

Reviewed-by: iklam, ccheung
2020-05-27 16:04:28 -07:00
Claes Redestad
7e85b2c787 8245969: Simplify String concat constant folding
Reviewed-by: psandoz, forax
2020-05-28 00:35:04 +02:00
Claes Redestad
69f7f95b93 8245959: Extend String concat testing to account for folded constants
Reviewed-by: psandoz
2020-05-28 00:34:41 +02:00
Mikael Vidstedt
4ad89925d0 8245850: Obsolete UseLWPSynchronization
Reviewed-by: dholmes, dcubed
2020-05-27 14:31:23 -07:00
Xue-Lei Andrew Fan
17a298962c 8206925: Support the certificate_authorities extension
Reviewed-by: mullan
2020-05-27 09:46:40 -07:00
Alexander Matveev
6f5e8a2aa3 8237908: [TESTBUG] [macos] Add support to jtreg helpers to unpack pkg packages
Reviewed-by: herrick, asemenyuk
2020-05-27 09:30:46 -04:00
Alexander Matveev
93d89d3bf3 8242786: [macos] tools/jpackage/share/IconTest.java fails: ABORT trying to dequeue work
Reviewed-by: herrick, asemenyuk
2020-05-27 09:14:20 -04:00
Andy Herrick
4af3a1e078 8245202: Convert existing jpackage tests to newer form
Reviewed-by: asemenyuk, almatvee
2020-05-27 08:59:43 -04:00
Zhengyu Gu
afbdb4932e 8245827: Shenandoah: Cleanup Shenandoah code root iterators and root scanner
Reviewed-by: shade
2020-05-27 10:55:39 -04:00
Adam Sotona
954db3353e 8241312: missing code coverage for records
Added tests for better coverage of records

Reviewed-by: vromero
2020-05-27 10:16:19 -04:00
Aleksey Shipilev
37c3b0bf10 8245814: Shenandoah: reconsider format specifiers for stats
Reviewed-by: rkennke
2020-05-27 15:57:42 +02:00
Zhengyu Gu
b8d49f8c2f 8245825: Shenandoah: Remove diagnostic flag ShenandoahConcurrentScanCodeRoots
Reviewed-by: shade
2020-05-27 08:53:49 -04:00
Zhengyu Gu
db1ef58d5c 8245823: Shenandoah: inline/optimize ShenandoahEvacOOMScope
Reviewed-by: shade, rkennke
2020-05-27 08:36:47 -04:00
Pankaj Bansal
342e9f88cd 8233647: [TESTBUG] JColorChooser/Test8051548.java is failing on macos
Reviewed-by: psadhukhan
2020-05-27 18:02:49 +05:30
Pankaj Bansal
85822a50d5 8233566: [TESTBUG] KeyboardFocusManager tests failing on MacoS
Reviewed-by: psadhukhan
2020-05-27 17:55:47 +05:30
Pankaj Bansal
9b3fb5d1d5 8233551: [TESTBUG] SelectEditTableCell.java fails on MacOS
Reviewed-by: psadhukhan
2020-05-27 17:35:42 +05:30
Vaibhav Choudhary
c14590378a 8245179: JvmciNotifyBootstrapFinishedEventTest.java fails with custom Tiered Level set externally
Fixed to not to run the testcase with TieredStopAtLevel set

Reviewed-by: thartmann
2020-05-27 17:28:22 +05:30
Tobias Hartmann
76ac621394 8245801: StressRecompilation triggers assert "redundunt OSR recompilation detected. memory leak in CodeCache!"
Assert is too strong.

Reviewed-by: roland
2020-05-27 13:26:23 +02:00
Claes Redestad
5200d162bc 8245756: Reduce bootstrap cost of StringConcatFactory prependers
Reviewed-by: forax, psandoz
2020-05-27 12:42:55 +02:00
Stefan Johansson
6e1403480a 8245724: Move g1 periodic gc logging to G1InitLogger
Reviewed-by: kbarrett, tschatzl
2020-05-27 11:48:33 +02:00
Stefan Johansson
2ff952bf32 8245723: Remove PrintCompressedOopsMode and change gc+heap+coops info log to debug level
Reviewed-by: dholmes, coleenp, tschatzl
2020-05-27 11:48:13 +02:00
Aleksey Shipilev
d0294c3845 8245812: Shenandoah: compute root phase parallelism
Reviewed-by: zgu
2020-05-27 09:22:24 +02:00
Xiaohong Gong
bc669dfc82 8243339: AArch64: Obsolete UseBarriersForVolatile option
Reviewed-by: adinn, aph, drwhite
2020-05-27 15:17:09 +08:00
Tejpal Rebari
c638618814 8233559: [TESTBUG] TestNimbusOverride.java is failing on macos
Reviewed-by: psadhukhan, pbansal
2020-05-27 09:08:08 +05:30
Serguei Spitsyn
1357c01e57 8245392: Remove duplication in class redefinition and retransformation specs
Remove duplications from the Instrumentation, JDI and JDWP redefinition specs

Reviewed-by: dholmes, cjplummer
2020-05-27 03:21:15 +00:00
Kim Barrett
eb20ed7374 8228692: BitMap::reallocate might not clear some bits
Ensure trailing bits in last copied word are cleared.

Reviewed-by: tschatzl, sjohanss
2020-05-26 21:26:57 -04:00
Igor Ignatyev
64c5823aa4 8245870: GTEST_FRAMEWORK_SRC should go through UTIL_FIXUP_PATH
Reviewed-by: erikj
2020-05-26 15:11:33 -07:00
John Jiang
845799935b 8245134: test/lib/jdk/test/lib/security/KeyStoreUtils.java should allow to specify aliases
Reviewed-by: valeriep
2020-05-27 05:42:28 +08:00
Igor Ignatyev
846fd238fc 8245610: remove in-tree copy on gtest
Reviewed-by: erikj, ihse
2020-05-26 13:33:00 -07:00
Michael McMahon
5374383dcd 8245582: j.net.URLConnection::getHeaderFieldKey(int) behavior does not reliably conform to its specification
Reviewed-by: chegar, dfuchs
2020-05-26 21:29:33 +01:00
Jonathan Gibbons
aabcf9f792 8245847: Update Profile.java to not require per-release updates
Reviewed-by: darcy
2020-05-26 13:25:23 -07:00
Pavel Rappo
0400119e5b 8245841: Remove unused com.sun.tools.javac.comp.Modules.XMODULES_PREFIX
Reviewed-by: jjg
2020-05-26 21:20:34 +01:00
Mikael Vidstedt
1401fe0087 8245521: Remove STACK_BIAS
Reviewed-by: dholmes, mbaesken, kvn
2020-05-26 12:36:59 -07:00
Mikael Vidstedt
44a0a08991 8245600: Clean up libjli
Reviewed-by: dholmes, alanb
2020-05-26 10:18:32 -07:00
Coleen Phillimore
6aa15ad7ab 8166358: Re-enable String verification in java_lang_String::create_from_str()
Check for invalid strings in class names in debug mode, and only verify valid strings in create_for_str().

Reviewed-by: dholmes, hseigel
2020-05-26 09:44:17 -04:00
Aleksey Shipilev
a689a1108c 8245773: Shenandoah: Windows assertion failure after JDK-8245464
Reviewed-by: stuefe
2020-05-26 13:07:21 +02:00
Aleksey Shipilev
c31cae7b53 8245720: Shenandoah: improve configuration logging
Reviewed-by: rkennke
2020-05-26 13:06:42 +02:00
Thomas Schatzl
035d5dffb1 8245088: Always provide logs for G1 heap expansion calculations
Reviewed-by: sjohanss, kbarrett
2020-05-26 09:25:23 +02:00
Thomas Schatzl
bf1f78b9f0 8245087: Use ratios instead of percentages in G1HeapSizingPolicy::expansion_amount
Reviewed-by: kbarrett, sjohanss
2020-05-26 09:25:23 +02:00
Thomas Schatzl
47be3b098e 8245086: G1: Rename measured pause time ratios
Reviewed-by: sjohanss, kbarrett
2020-05-26 09:25:21 +02:00
Aleksey Shipilev
220061b13e 8245757: Shenandoah: AlwaysPreTouch should not disable heap resizing or uncommits
Reviewed-by: rkennke
2020-05-26 09:31:00 +02:00
Aleksey Shipilev
1a8b2a700e 8245755: Shenandoah: missing logging for CWR Roots
Reviewed-by: rkennke
2020-05-26 09:30:23 +02:00
Aleksey Shipilev
ad7f611149 8245754: Shenandoah: ditch ShenandoahAlwaysPreTouch
Reviewed-by: rkennke
2020-05-26 09:30:17 +02:00
Aleksey Shipilev
66f6c8c3fe 8245726: Shenandoah: lift/cleanup ShenandoahHeuristics names and properties
Reviewed-by: rkennke
2020-05-26 09:30:09 +02:00
Aleksey Shipilev
30b750dcd0 8245722: 32-bit build failures after JDK-8243491
Reviewed-by: stuefe
2020-05-26 09:29:00 +02:00
Stefan Johansson
371a663180 8244817: Add configuration logging similar to ZGCs to other GCs
Reviewed-by: kbarrett, pliden, shade
2020-05-26 09:18:13 +02:00
Jie Fu
039b259e94 8245761: [TESTBUG] runtime/logging/TestMethodHandlesVerbose.java fails with release VMs
Reviewed-by: dholmes
2020-05-26 09:18:27 +08:00
Kim Barrett
d3042cc401 8245594: Remove volatile-qualified member functions and parameters from oop class
Remove volatile qualifications in oop and derived classes; use Atomic for access.

Reviewed-by: dholmes, coleenp
2020-05-25 16:21:25 -04:00
Christoph Dreis
bc822ffad8 8245678: Avoid allocations in Executable.getAllGenericParameterTypes
Reviewed-by: jlaskey, redestad
2020-05-25 22:26:18 +02:00
Christoph Dreis
742d35e08a 8245677: Optimize lookups in empty HashMaps
Reviewed-by: jlaskey, redestad
2020-05-25 22:21:45 +02:00
Daniel Fuchs
e04e052889 8239013: java.util.logging.Logger catalog cache keeps strong references to ResourceBundles
Changed the Logger catalog cache to use WeakReference<ResourceBundle>

Reviewed-by: lancea, mchung, naoto
2020-05-25 17:59:40 +01:00
Martin Doerr
ce4e780f53 8244949: [PPC64] Reengineer assembler stop function
Reviewed-by: lucy, xliu
2020-05-25 18:39:31 +02:00
Erik Gahlin
ad940d3154 8245120: JFR: Parser unable to return typed version
Reviewed-by: mgronlun
2020-05-25 16:36:34 +02:00
Claes Redestad
36c4b11bc6 8245455: Remove alternative StringConcatFactory strategies
Reviewed-by: jlaskey, psandoz, forax, mchung
2020-05-25 12:03:30 +02:00
Chris Hegarty
f3eb44a94d 8243491: Implementation of Foreign-Memory Access API (Second Incubator)
Upstream latest changes of the Foreign-Memory Access API

Co-authored-by: Jorn Vernee <jorn.vernee@oracle.com>
Co-authored-by: Mandy Chung <mandy.chung@oracle.com>
Co-authored-by: Paul Sandoz <paul.sandoz@oracle.com>
Co-authored-by: Peter Levart <peter.levart@gmail.com>
Reviewed-by: chegar, psandoz
2020-05-25 10:54:39 +01:00
Christian Hagedorn
9b94b9d1a1 8244946: fatal error: memory leak: allocating without ResourceMark with -XX:+Verbose -Xlog:methodhandles
Fix crash due to a missing ResourceMark when logging methodhandles with Verbose.

Reviewed-by: dcubed, dholmes, coleenp
2020-05-25 11:34:11 +02:00
Aleksey Shipilev
de4b15e52e 8245465: Shenandoah: test_in_cset can use more efficient encoding
Reviewed-by: rkennke, roland
2020-05-25 11:05:23 +02:00
Aleksey Shipilev
360554e41f 8245464: Shenandoah: allocate collection set bitmap at lower addresses
Reviewed-by: rkennke
2020-05-25 11:05:23 +02:00
Aleksey Shipilev
4059e44b94 8244729: Shenandoah: remove resolve paths from SBSA::generate_shenandoah_lrb
Reviewed-by: rkennke
2020-05-25 11:05:23 +02:00
Aleksey Shipilev
008d69e5e2 8245703: 32-bit build failures after JDK-8243392
Reviewed-by: dholmes, stuefe
2020-05-25 11:04:08 +02:00
John Jiang
98cb95b7b7 8245691: Add EdDSA certificstes to SSLSocketTemplate and CertUtils
Reviewed-by: xuelei
2020-05-25 11:29:56 +08:00
Thomas Stuefe
04e6b743db 8243392: Remodel CDS/Metaspace storage reservation
Reviewed-by: iklam, coleenp, ngasson, aph
2020-05-24 19:25:29 +02:00
Serguei Spitsyn
8e01f3ad02 8244571: assert(!_thread->is_pending_jni_exception_check()) failed: Pending JNI Exception Check during class loading
Fix the -Xcheck:jni asserts

Reviewed-by: dholmes, cjplummer
2020-05-23 10:39:07 +00:00
Pankaj Bansal
04b3bf6024 8233550: [TESTBUG] JTree tests fail regularly on MacOS
Reviewed-by: psadhukhan, jdv
2020-05-23 13:27:09 +05:30
Pankaj Bansal
15433df97f 8233552: [TESTBUG] JTable Test bug7068740.java fails on MacOS
Reviewed-by: psadhukhan
2020-05-23 13:11:41 +05:30
Hai-May Chao
ccd7d70586 8245665: Test WeakAlg.java should only make sure no warning for weak signature algorithms by keytool on root CA
Reviewed-by: weijun
2020-05-23 14:49:55 +08:00
Michael McMahon
2f80d69518 8241389: URLConnection::getHeaderFields returns result inconsistent with getHeaderField/Key for FileURLConnection, FtpURLConnection
Reviewed-by: dfuchs
2020-05-22 21:59:40 +01:00
Chris Plummer
9dc6f10755 8244203: sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java fails with NullPointerException
Reviewed-by: sspitsyn, dtitov
2020-05-22 13:29:26 -07:00
Vladimir A Ivanov
4aa057013c 8245517: java/net/SocketOption/AfterClose.java fails with Invalid value 'READ_ONLY'
Reviewed-by: dfuchs, pconcannon
2020-05-22 10:25:40 -07:00
Vladimir A Ivanov
505d3da49b 8245569: Add jtreg tests for SO_INCOMING_NAPI_ID
Reviewed-by: dfuchs, pconcannon
2020-05-22 10:18:34 -07:00
Erik Gahlin
50f24ca0cb 8227559: JFR: Slow dump with path-to-gc-roots=true
Reviewed-by: mgronlun
2020-05-22 16:55:13 +02:00
Claes Redestad
b2269be8db 8245623: Remove unused code in sun/nio/fs after Solaris removal
Reviewed-by: alanb
2020-05-22 14:21:30 +02:00
Claes Redestad
de37507b8e 8245619: Remove unused methods in UnixNativeDispatcher
Reviewed-by: alanb
2020-05-22 12:10:55 +02:00
Claes Redestad
113c48f5da 8215401: Add isEmpty default method to CharSequence
Reviewed-by: jlaskey, rriggs, jjg, alanb, smarks, darcy
2020-05-22 11:20:57 +02:00
Jayathirth D V
ab042c601f 8213129: java/awt/font/FontNames/LocaleFamilyNames.java times out in Win7
Reviewed-by: psadhukhan
2020-05-22 11:31:31 +05:30
Ioi Lam
7d330d34f1 8245335: [TESTBUG] DeterministicDump.java fails with release JVM
Reviewed-by: stuefe, dholmes, jiefu
2020-05-21 15:56:27 -07:00
Naoto Sato
ea38873d30 8239480: Support for CLDR version 37
Reviewed-by: joehw
2020-05-21 13:56:11 -07:00
Naoto Sato
b5b6ae32d2 8245241: Incorrect locale provider preference is not logged
Reviewed-by: joehw, dfuchs
2020-05-21 13:55:06 -07:00
Coleen Phillimore
e3be308329 8245260: Missing file header for test/hotspot/jtreg/containers/docker/TEST.properties
Reviewed-by: dcubed, hseigel
2020-05-21 16:45:55 -04:00
Prasanta Sadhukhan
af85c26514 8067986: Test javax/swing/JComboBox/ConsumedKeyTest/ConsumedKeyTest.java fails
Reviewed-by: serb
2020-05-21 12:02:18 +05:30
Jayathirth D V
b58735ea76 8028701: java/awt/Focus/ShowFrameCheckForegroundTest/ShowFrameCheckForegroundTest.java fails
Reviewed-by: pbansal
2020-05-21 11:13:28 +05:30
Prasanta Sadhukhan
270674ce1b Merge 2020-05-21 09:56:19 +05:30
Mikael Vidstedt
20dbc949d5 8245518: Problem list java/net/SocketOption/AfterClose.java
Reviewed-by: dholmes
2020-05-20 19:16:54 -07:00
Erik Gahlin
040d70c155 8238592: JFR: Crash when dumping paths to gc roots on deep heaps
Reviewed-by: mgronlun
2020-05-21 04:09:18 +02:00
Jesper Wilhelmsson
804576efd9 Added tag jdk-15+24 for changeset 497fd9f9129c 2020-05-21 03:53:18 +02:00
Phil Race
f39a0d585b Merge 2020-05-20 17:40:46 -07:00
Mikael Vidstedt
071bd521bc 8244224: Implementation of JEP 381: Remove the Solaris and SPARC Ports
Reviewed-by: alanb, bchristi, dcubed, dfuchs, eosterlund, erikj, glaubitz, ihse, iignatyev, jjiang, kbarrett, ksrini, kvn, naoto, prr, rriggs, serb, sspitsyn, stefank, tschatzl, valeriep, weijun, weijun
2020-05-20 17:33:37 -07:00
Erik Gahlin
9fe4b69c1a 8235921: jdk/jfr/event/oldobject/TestLargeRootSet.java times out with debug bits
Reviewed-by: mgronlun
2020-05-21 01:36:46 +02:00
Severin Gehwolf
732d8865df 8244500: jtreg test error in test/hotspot/jtreg/containers/docker/TestMemoryAwareness.java
When the kernel doesn't support swap limits, expect host values instead.

Reviewed-by: mbaesken, bobv, stuefe
2020-05-20 21:12:20 +02:00
Roland Westrelin
5adfaa3986 8247763: assert(outer->outcnt() == 2) failed: 'only phis' failure in LoopNode::verify_strip_mined()
Reviewed-by: kvn, thartmann
2020-06-18 15:44:55 +02:00
Erik Gahlin
04adafb753 8247901: Multiple conflicting @return for FlightRecorderMXBean
Reviewed-by: mgronlun
2020-06-22 09:44:32 +02:00
Erik Gahlin
3576a88369 8246436: JFR: Avoid parsing metadata.xml during startup
Reviewed-by: mgronlun, erikj, redestad
2020-06-22 08:09:23 +02:00
Weijun Wang
927a7287b7 8247907: XMLDsig logging does not work
Reviewed-by: mullan
2020-06-20 15:11:19 +08:00
Daniel D. Daugherty
5bd6e9d790 8247876: ProblemList various crypto tests on aarch64
Reviewed-by: wetmore
2020-06-19 15:22:19 -04:00
Jonathan Gibbons
4ef42b9215 8247760: Improve documentation for javadoc.tester.JavadocTester
Reviewed-by: prappo
2020-06-19 07:55:30 -07:00
Yasumasa Suenaga
cd3354756a 8247729: GetObjectMonitorUsage() might return inconsistent information
Reviewed-by: dholmes, dcubed, sspitsyn
2020-06-19 16:09:49 +09:00
Ludovic Henry
651c20d4ef 8247697: Remove delayed_forbidden dead code in C2
The delayed_forbidden parameter to Compile::call_generator is never used.

Reviewed-by: kvn, vlivanov, thartmann
2020-06-19 08:06:08 +02:00
Jesper Wilhelmsson
a16994ff7b Merge 2020-06-19 00:30:46 +02:00
Aleksey Shipilev
0bacc69a4c 8247860: Shenandoah: add update watermark line in rich assert failure message
Reviewed-by: rkennke
2020-06-18 19:14:13 +02:00
David Holmes
2627f15348 8238832: Obsolete PrintVMQWaitTime
Reviewed-by: ccheung, dcubed
2020-06-17 21:07:08 -04:00
Jesper Wilhelmsson
9a26a01e2f Added tag jdk-16+2 for changeset bcbe7b8a77b8 2020-06-18 03:04:27 +02:00
Chris Plummer
07f9376f54 8246369: CodeCache.findBlobUnsafe(addr) sometimes asserts with valid address
Reviewed-by: sspitsyn, amenkov
2020-06-17 13:12:54 -07:00
Joe Darcy
1cb5a48ed7 8245588: Update --release 15 symbol information for JDK 15 build 27
Reviewed-by: jjg
2020-06-17 13:00:14 -07:00
Martin Buchholz
175b597ad2 8247706: Unintentional use of new Date(year...) with absolute year
Reviewed-by: naoto, rriggs
2020-06-17 12:45:17 -07:00
Martin Buchholz
4f2edacaaf 8247782: typos in java.math
Reviewed-by: rriggs, lancea, darcy
2020-06-17 12:29:58 -07:00
Claes Redestad
34c79640e7 8247681: Improve bootstrapping of unary concatenations
Reviewed-by: jlaskey, psandoz
2020-06-17 19:36:26 +02:00
Jonathan Gibbons
1d87958ead 8243113: Always identify version of javadoc used to generate docs
Reviewed-by: prappo
2020-06-17 09:24:28 -07:00
Aleksey Shipilev
44d4e37ccb 8247757: Shenandoah: split heavy tests by heuristics to improve parallelism
Reviewed-by: rkennke
2020-06-17 17:22:09 +02:00
Aleksey Shipilev
00dc525e5f 8247754: Shenandoah: mxbeans tests can be shorter
Reviewed-by: rkennke
2020-06-17 17:21:56 +02:00
Aleksey Shipilev
d2c1027edc 8247751: Shenandoah: options tests should run with smaller heaps
Reviewed-by: zgu, rkennke
2020-06-17 17:21:47 +02:00
Aleksey Shipilev
aeeaffa888 8247593: Shenandoah: should not block pacing reporters
Reviewed-by: rkennke
2020-06-17 09:43:16 +02:00
Jesper Wilhelmsson
6d2959b393 Merge 2020-06-17 05:28:05 +02:00
Jonathan Gibbons
3e5abdaf32 8152313: [javadoc] convert tool tests to doclet tests
Reviewed-by: ksrini
2020-06-16 14:27:16 -07:00
Patric Hedlin
3839c8656e 8247200: assert((unsigned)fpargs < 32)
Reviewed-by: aph, neliasso
2020-06-04 10:17:40 +02:00
Rahul Yadav
a512099313 8247675: Update DateFormatterTest Copyright
The fix updates the test DateFormatterTest copyright by adding missing comma

Reviewed-by: dfuchs, chegar
2020-06-16 13:15:42 +01:00
Magnus Ihse Bursie
9e4b9e9151 8201575: Allow numbers in VERSION_PRE according to JEP 223
Reviewed-by: erikj
2020-06-16 14:22:15 +02:00
Stefan Karlsson
77bdc30650 8247470: Fix CHeap GrowableArray NMT accounting
Reviewed-by: coleenp, tschatzl, kbarrett
2020-06-16 09:37:53 +02:00
Tagir F. Valeev
0a108f9ef2 8247605: Avoid array allocation when concatenating with empty string
Reviewed-by: redestad, plevart
2020-06-16 03:16:41 +00:00
Jesper Wilhelmsson
e33ebc7f0a Merge 2020-06-16 04:20:30 +02:00
Kim Barrett
c1cd3893bd 8247524: Remove unnecessary volatile qualifiers from member functions
Remove qualifiers for oopDesc and metadata-related member functions.

Reviewed-by: stefank, dholmes, stuefe, coleenp
2020-06-15 21:14:52 -04:00
David Holmes
0be5b7d66e 8247289: Obsolete unused UseBsdPosixThreadCPUClocks
8247292: Obsolete unused UseOprofile flag on BSD

Co-authored-by: Christoph Dreis <christoph.dreis@freenet.de>
Reviewed-by: hseigel, dcubed
2020-06-15 18:35:46 -04:00
Naoto Sato
23e2f27996 8246623: Remove minimum 4 digit requirement from Year.parse()
Reviewed-by: lancea, rriggs, joehw
2020-06-15 09:21:39 -07:00
Rahul Yadav
38f9a938e5 8245307: Update ExchangeImpl to use thread safe DateTimeFormatter
The fix updates sun.net.httpserver.ExchangeImpl to use thread safe DateTimeFormatter for response headers, this replaces DateFormat that was using ThreadLocal.

Reviewed-by: dfuchs, alanb, chegar
2020-06-15 16:26:31 +01:00
Erik Helin
ab57f7d628 8193686: Allow --with-jtreg to accept a zip compressed jtreg image
Reviewed-by: ihse
2020-06-15 12:28:27 +02:00
Christian Hagedorn
08df6a1f15 8246203: Segmentation fault in verification due to stack overflow with -XX:+VerifyIterativeGVN
Replace the recursive verification algorithm with an iterative one to avoid a stack overflow for large graphs.

Reviewed-by: kvn, thartmann
2020-06-15 09:50:11 +02:00
Matthias Baesken
3341d36131 8247469: getSystemCpuLoad() returns -1 on linux when some offline cpus are present and cpusets.effective_cpus is not available
Reviewed-by: bobv, dtitov
2020-06-12 16:40:47 +02:00
Yang Zhang
3752a81ec8 8244926: Add absolute check for int/long to generate Abs nodes
Reviewed-by: neliasso, thartmann
2020-06-15 06:05:17 +00:00
Jesper Wilhelmsson
76879aa9c6 Merge 2020-06-15 02:40:51 +02:00
David Holmes
0f7b18a9c8 8231560: Remove expired flags in JDK 16
Reviewed-by: kvn, iklam, iignatyev, eosterlund
2020-06-14 17:43:54 -04:00
Ioi Lam
c82c50b2a2 8245925: G1 allocates EDEN region after CDS has executed GC
Reviewed-by: jiangli, minqi, tschatzl
2020-06-14 01:19:48 -07:00
Jesper Wilhelmsson
af83d6ab25 Merge 2020-06-13 01:00:00 +02:00
Xue-Lei Andrew Fan
1faed205df 8247510: typo in IllegalHandshakeMessage
Reviewed-by: wetmore
2020-06-12 15:55:08 -07:00
Leonid Mesnik
bac2e7fcad 8242328: Update mentions of ThreadMBean to ThreadMXBean
Reviewed-by: dholmes, iignatyev, sspitsyn
2020-06-12 14:33:55 -07:00
Daniel D. Daugherty
8c90f4c0a7 8247495: ProblemList vmTestbase/nsk/jvmti/SetFieldAccessWatch/setfldw001/TestDescription.java
Reviewed-by: cjplummer, minqi
2020-06-12 17:28:39 -04:00
Xin Liu
892d998587 8139046: Compiler Control: IGVPrintLevel directive should set PrintIdealGraph
Make !PrintIdealGraph a synonym for PrintIdealGraphLevel=-1 => print nothing

Reviewed-by: simonis, phh, neliasso
2020-06-12 13:33:29 -07:00
Joe Darcy
be278bc564 8246222: Rename javac test T6395981.java to be more informative
Reviewed-by: jjg
2020-06-12 13:16:40 -07:00
Magnus Ihse Bursie
1a681a434f 8200738: Use --hash-style=gnu for gcc
Reviewed-by: erikj
2020-06-12 20:28:07 +02:00
Calvin Cheung
0e4829ef0a 8245060: remove copying of s.h.WB$WhiteBoxPermission in cds/appcds tests
Reviewed-by: dholmes, minqi, iklam
2020-06-12 16:48:27 +00:00
Daniel D. Daugherty
c06fe155ef 8247492: ProblemList tools/jlink/plugins/CompressorPluginTest.java
Reviewed-by: jlaskey
2020-06-12 12:06:24 -04:00
Poonam Bajaj
ac4603144d 8243290: Improve diagnostic messages for class verification and redefinition failures
Reviewed-by: coleenp, hseigel, sspitsyn
2020-06-12 12:51:32 +00:00
Jan Lahoda
1b64fb2063 8247334: Trees.getScope crashes for annotated local records
Reviewed-by: vromero
2020-06-12 13:38:06 +02:00
Jie Fu
24f040da36 8247396: Exclude PCH for files in $(OPT_SPEED_SRC) with clang after JDK-8246751
Reviewed-by: ihse, erikj
2020-06-12 10:52:20 +08:00
Conor Cleary
1b75b7de80 8246143: UnreferencedXXX tests fail when run with --illegal-access=deny
This patch updates the @modules tag with +open in the tests UnreferencedDatagramSockets and UnreferncedMulticastSockets in advance of the removal of --illegal-access to allow access to private member fields required by the tests.

Reviewed-by: alanb, dfuchs
2020-06-12 09:48:30 +01:00
Jesper Wilhelmsson
08304ada3c Added tag jdk-16+1 for changeset 4a485c89d5a0 2020-06-12 09:47:25 +02:00
Jesper Wilhelmsson
494f9667b4 Merge 2020-06-12 05:12:32 +02:00
Joe Darcy
2f5d4c633b 8247374: Remove default constructors from javax.net.sslK
Reviewed-by: xuelei
2020-06-11 16:35:29 -07:00
Joe Darcy
b81f2f1f48 8245620: Improve Annotation.annotationType() documentation
Reviewed-by: alanb, prappo
2020-06-11 15:55:19 -07:00
Leonid Mesnik
6341f8c077 8244965: Incorrect error message in vmTestbase/nsk/jdi/VirtualMachine/suspend/suspend001/TestDescription.java
Reviewed-by: dholmes
2020-06-11 14:03:00 -07:00
Iris Clark
319b4e71e1 8246803: Update link to license in Docs.gmk
Reviewed-by: darcy, mikael
2020-06-09 08:56:13 -07:00
Joe Darcy
a5b5712733 8235496: Start of release updates for JDK 16
8245585: Add SourceVersion.RELEASE_16
8245586: Add source 16 and target 16 to javac
8245544: com/sun/tools/javac/platform/JDKPlatformProvider.java does not support ct.sym with platform versions 16+

Co-authored-by: David Holmes <david.holmes@oracle.com>
Co-authored-by: Jan Lahoda <jan.lahoda@oracle.com>
Reviewed-by: erikj, dholmes, ihse, neugens, jjg, jlahoda, jlaskey, mikael
2020-06-07 20:02:03 -07:00
Sean Coffey
15999a9f21 Merge 2020-06-11 20:06:46 +00:00
Mandy Chung
6dec50a7e8 8247247: JFR tests fail due to JDK-8235521 missing doPrivileged block
Reviewed-by: egahlin
2020-06-11 11:07:09 -07:00
Lance Andersen
65455ff60b 8207936: TestZipFile.java can fail with an OOM error
Reviewed-by: joehw, redestad
2020-06-11 12:58:13 -04:00
Prasadrao Koppula
bb86779366 8246031: SSLSocket.getSession() doesn't close connection for timeout/ interrupts
Reviewed-by: xuelei, coffeys
2020-06-11 21:54:51 +05:30
Aleksey Shipilev
4862a00f6b 8247367: Shenandoah: pacer should wait on lock instead of exponential backoff
Reviewed-by: zgu
2020-06-11 18:16:32 +02:00
Aleksey Shipilev
9ac1ab372d 8247358: Shenandoah: reconsider free budget slice for marking
Reviewed-by: zgu
2020-06-11 18:16:26 +02:00
Jesper Wilhelmsson
7da56dfbf3 Added tag jdk-16+0 for changeset 93813843680b 2020-06-11 18:08:29 +02:00
Phil Race
59dc384fbd Merge 2020-05-20 08:40:27 -07:00
Thomas Stuefe
66514251c1 8244733: Add ResourceHashtable::xxx_if_absent
Reviewed-by: coleenp, iklam, rehn, dholmes
2020-05-20 15:56:39 +02:00
Aleksey Shipilev
ac93f38b16 8245463: Shenandoah: refine ShenandoahPhaseTimings constructor arguments
Reviewed-by: zgu
2020-05-20 15:24:32 +02:00
Aleksey Shipilev
0a94d85172 8245461: Shenandoah: refine mode name()-s
Reviewed-by: zgu
2020-05-20 15:24:16 +02:00
Erik Österlund
3f7cd1f204 8244416: Remove incorrect assert during inline cache cleaning
Reviewed-by: kvn, pliden
2020-05-20 13:20:08 +00:00
Jim Laskey
afe76a97d5 8245398: Remove addition preview adornment from String::formatted
Reviewed-by: psandoz
2020-05-20 10:00:52 -03:00
Magnus Ihse Bursie
600d82adf8 8245281: Disabling hotspot gtest builds make it impossible to run tests
Reviewed-by: erikj
2020-05-20 14:09:18 +02:00
Jan Lahoda
d191d2f4e2 8245445: Langtools NetBeans ant build broken after JDK-8244093
Correcting paths in the NetBeans-specific langtools ant build.

Reviewed-by: mcimadamore
2020-05-20 13:23:46 +02:00
Coleen Phillimore
47ceb80368 8245428: Remove unused oopFactory functions
Reviewed-by: stuefe, dholmes
2020-05-20 07:00:25 -04:00
Tejpal Rebari
9ae8b32dee 8233553: [TESTBUG] JSpinner test bug4973721.java fails on MacOS
Reviewed-by: psadhukhan
2020-05-20 15:04:37 +05:30
Stefan Karlsson
3d659eff6e 8245000: Windows GDI functions don't support large pages
Reviewed-by: kbarrett, sjohanss
2020-05-20 08:56:40 +02:00
Stefan Karlsson
6f29ba1991 8245002: Windows GDI functions don't support NUMA interleaving
Reviewed-by: kbarrett, sjohanss, tschatzl
2020-05-19 13:40:02 +02:00
Markus Grönlund
0d5f6548a9 8245042: Improve scalability of reading Windows Performance counters via PDH when using the Process object
Reviewed-by: dcubed, egahlin
2020-05-20 12:06:05 +02:00
Per Lidén
8c7fac8a2d 8245450: ZGC: Remove unused ZArguments::initialize_platform()
Reviewed-by: tschatzl
2020-05-20 11:59:09 +02:00
Claes Redestad
6812f6f641 8218173: exception during StringConcatFactory clinit breaks string concat with no fallback
Reviewed-by: psandoz, jlaskey
2020-05-20 11:35:58 +02:00
Erik Österlund
6508c5a38d 8243996: Remove hardcoded field offsets from HotSpot
Reviewed-by: jrose, coleenp, dholmes, fparain
2020-05-20 09:31:38 +00:00
Phil Race
1f233c8b99 6949753: [TEST BUG]: java/awt/print/PageFormat/PDialogTest.java needs update by removing a infinite loop
Reviewed-by: jdv
2020-05-18 17:16:29 -07:00
Jan Lahoda
a4b135316c 8244763: Update --release 8 symbol information after JSR 337 MR3
Reviewed-by: jjg, wetmore
2020-05-18 18:20:53 +02:00
Sergey Bylokhov
9c415c4d52 8243925: Toolkit#getScreenInsets() returns wrong value on HiDPI screens (Windows)
Reviewed-by: prr, psadhukhan
2020-05-18 15:27:54 +01:00
Jayathirth D V
08ded85a5c 8245165: Update bug id for javax/swing/text/StyledEditorKit/4506788/bug4506788.java in ProblemList
Reviewed-by: psadhukhan
2020-05-18 15:50:22 +05:30
Prasanta Sadhukhan
f76b6e7450 8238824: [macos] javax/swing/JSpinner/4840869/bug4840869.java fails on macos
Reviewed-by: serb, prr
2020-05-18 11:18:51 +05:30
Tejpal Rebari
4cf3e6bfd8 8238085: PIT: javax/swing/JSpinner/8223788/JSpinnerButtonFocusTest.java fails on Mac
Reviewed-by: serb
2020-05-13 19:53:02 +05:30
Tejpal Rebari
79905b14b1 8229856: [macos] Opening a menu on a JTextField can clear the text selection
Reviewed-by: psadhukhan, jdv
2020-05-13 19:43:46 +05:30
Evgeny Nikitin
7e05213271 8244282: test/hotspot/jtreg/compiler/intrinsics/Test8237524.java fails with --illegal-access=deny
Add modules to test/hotspot/jtreg/compiler/intrinsics/Test8237524

Reviewed-by: iignatyev
2020-05-11 17:00:16 +02:00
Alexey Semenyuk
95730995b6 8246792: Mac signing tests failed (unsealed contents present in the bundle root)
Reviewed-by: herrick, almatvee
2020-06-11 09:51:33 -04:00
Jim Laskey
03642a01af 8230744: Several classes throw OutOfMemoryError without message
Reviewed-by: psandoz, martin, bchristi, rriggs, smarks
2020-06-11 10:08:23 -03:00
Thomas Stuefe
2085fd32ff 8247252: TestCombinedCompressedFlags.java failed src/hotspot/share/services/virtualMemoryTracker.cpp:388 Error: ShouldNotReachHere()
Reviewed-by: minqi, dholmes
2020-06-11 12:51:09 +02:00
Markus Grönlund
83d0318ea1 8239024: Kitchensink24HStress.java failed due to timeout
Reviewed-by: egahlin
2020-06-11 10:56:59 +02:00
Markus Grönlund
0228a5c767 8245113: JFR Recorder Thread to run in thread state "_thread_in_native"
Reviewed-by: egahlin
2020-06-11 10:48:35 +02:00
Fairoz Matte
b9ce3b435e 8243451: nsk.share.jdi.Debugee.isJFR_active() is incorrect and corresponsing logic seems to be broken
Fix check isJFR_active()

Reviewed-by: sspitsyn, lmesnik
2020-06-11 08:23:09 +00:00
Robbin Ehn
6a2e3ca206 8247248: JVM TI Monitor queries might create JNI locals in another thread when using handshakes
Reviewed-by: dholmes, dcubed, sspitsyn, ysuenaga
2020-06-11 10:00:23 +02:00
Alan Bateman
c563c3d15b 8241770: Module xxxAnnotation() methods throw NCDFE if module-info.class found as resource in unnamed module
Reviewed-by: mchung
2020-06-11 07:27:22 +01:00
Yumin Qi
96fadefaa3 8240245: Avoid calling is_shared_class_visible() in SystemDictionary::load_shared_class()
SystemDitionary::load_shared_class can avoid calling is_shared_class_visible if dumptime and runtime do not use modulepath and boot classpath appending.

Reviewed-by: iklam, ccheung
2020-06-10 23:16:27 -07:00
Serguei Spitsyn
6d8c81f694 8245126: Kitchensink fails with: assert(!method->is_old()) failed: Should not be installing old methods
Fix the method->is_old() assert

Reviewed-by: dlong, chagedorn
2020-06-11 06:04:05 +00:00
Serguei Spitsyn
2ff9f53a44 8222005: ClassRedefinition crashes with: guarantee(false) failed: OLD and/or OBSOLETE method(s) found
Remove optimizations from class redefinition that cause the guarantee hit

Reviewed-by: coleenp, dcubed
2020-06-11 05:53:33 +00:00
Jesper Wilhelmsson
bb5e5b3826 Added tag jdk-15+27 for changeset 506abc554cae 2020-06-11 04:07:58 +02:00
Jie Fu
462f806818 8247377: Zero and Minimal VMs are broken after JDK-8198698 ('SystemDictionaryShared' has not been declared)
Reviewed-by: dholmes
2020-06-11 10:08:33 +08:00
Alexey Semenyuk
259662fe77 8247353: jtreg tests minor issues clean up
Reviewed-by: herrick, almatvee
2020-06-10 20:45:28 -04:00
Alexey Semenyuk
a2401333fa 8246042: Non-ASCII characters are not handled correctly in the native launcher
Reviewed-by: herrick, almatvee
2020-06-10 20:45:28 -04:00
Alexey Semenyuk
609819173e 8233244: Add tests for icons configuration in rpm/deb packages
Reviewed-by: herrick, almatvee
2020-06-10 20:45:28 -04:00
Jonathan Gibbons
e3cb4df4ef 8247235: doclint should permit "self-closing" tags for void elements in HTML5
Reviewed-by: hannesw
2020-06-10 17:23:05 -07:00
Alexander Matveev
52be8949e7 8245788: EmptyFolderPackageTest fails on Windows 10
Reviewed-by: herrick, asemenyuk
2020-06-10 18:18:30 -04:00
Ralf Schmelter
7450098458 8247362: HeapDumpComressedTest fails
Reviewed-by: dcubed, stefank
2020-06-10 23:40:44 +02:00
Naoto Sato
54f7732c2b 8246721: java/util/Locale/LocaleProvidersRun.java failed on Windows platforms
Reviewed-by: rriggs
2020-06-10 13:29:44 -07:00
Igor Ignatyev
b03766fb79 8183040: update jdk/test/lib/Platform.java to use NIO file
Reviewed-by: amenkov, bpb
2020-06-10 13:15:27 -07:00
Roger Riggs
120a0d116a 8247274: (test) HexPrinter cleanup
Reviewed-by: lancea
2020-06-10 14:51:28 -04:00
Claes Redestad
99136026b8 8246129: ZIP entries created for DOS epoch include local timezone metadata
Reviewed-by: lancea
2020-06-10 20:53:04 +02:00
Igor Ignatyev
e47b2bc8c3 8246387: switch to jtreg 5.1
Reviewed-by: dholmes, erikj
2020-06-10 10:47:40 -07:00
Christian Hagedorn
bf22f82207 8244719: CTW: C2 compilation fails with "assert(!VerifyHashTableKeys || _hash_lock == 0) failed: remove node from hash table before modifying it"
Fix Parse::Block::init_graph() to also count predecessors for exception blocks because they can have a direct bytecode jump to them resulting in this assertion failure.

Reviewed-by: kvn, thartmann
2020-06-10 17:56:23 +02:00
Calvin Cheung
847a3baca8 8198698: Support Lambda proxy classes in dynamic CDS archive
Added archving of hidden classes of type lambda proxy classes.

Co-authored-by: Ioi Lam <ioi.lam@oracle.com>
Reviewed-by: mchung, iklam, dholmes
2020-06-10 15:50:26 +00:00
Alexey Semenyuk
268d870187 8231283: Add support to jpackage to create install Linux packages in /usr hierarchy
Reviewed-by: herrick, almatvee
2020-06-10 11:12:33 -04:00
Aleksey Shipilev
714b345bf5 8247310: Shenandoah: pacer should not affect interrupt status
Reviewed-by: zgu
2020-06-10 16:05:36 +02:00
Alexander Matveev
191fe75c0f 8233215: jpackage doesn't allow enough flexibility for file type binding
Reviewed-by: herrick, asemenyuk
2020-06-10 09:44:56 -04:00
Zhengyu Gu
d36a55d2ac 8246591: Shenandoah: move string dedup roots scanning to concurrent phase
Reviewed-by: shade
2020-06-10 08:34:10 -04:00
Coleen Phillimore
f3c2a17a30 8247220: Make OopHandle constructor explicit
Fix null initializations to explicitly call the OopHandle constructor

Reviewed-by: lfoltan, kbarrett
2020-06-10 08:29:39 -04:00
Erik Gahlin
65c461ed74 8247320: JFR: Reduce logging overhead
Reviewed-by: mgronlun
2020-06-10 13:58:15 +02:00
Erik Gahlin
7e3d4f8c4f 8247266: Speed up test\jdk\jdk\jfr\event\gc\detailed\TestZUncommitEvent.java
Reviewed-by: mgronlun
2020-06-10 13:01:49 +02:00
Erik Gahlin
1dc79293a0 8247269: JFR: Reduce allocation when using AnnotationElement
Reviewed-by: mgronlun
2020-06-10 12:42:02 +02:00
Ralf Schmelter
19be497143 8237354: Add option to jcmd to write a gzipped heap dump
Reviewed-by: rrich, clanger, goetz
2020-06-10 12:29:01 +02:00
Patrick Concannon
2e8356ea40 8244933: DatagramSocket.connect does not specify that it may cause datagrams in the socket receive buffer to be discarded
This fix updates the javadoc for `DatagramSocket.connect` to inform the user that it may cause datagrams in the socket receive buffer to be discarded if not previously received via a call to `DatagramSocket.receive`.

Reviewed-by: alanb, dfuchs
2020-06-10 11:08:19 +01:00
Jan Lahoda
c4985fb868 8237210: Modify the header to include Oracle copyright line
Reviewed-by: jjg
2020-06-10 11:01:34 +02:00
Jan Lahoda
a5e03e234b 8235564: javac crashes while compiling incorrect method invocation with member reference
Reviewed-by: vromero
2020-06-10 11:01:29 +02:00
Conor Cleary
0e770d1e3f 8243655: Map.replace javadoc code snippet typo
Replace 'value' with 'oldValue' in Map.replace(K, V, V) javadoc

Reviewed-by: jlaskey, martin, prappo, jboes
2020-06-10 09:56:33 +01:00
Stefan Karlsson
b4d09cc9e4 8247236: fieldDescriptor::print_on_for prints extra newline after NULL
Reviewed-by: iklam, coleenp, tschatzl
2020-06-10 09:00:59 +02:00
Stefan Karlsson
81685b2ab3 8247214: ZGC: ZUncommit initialization should use precious logging
Reviewed-by: pliden, eosterlund, tschatzl
2020-06-10 09:00:12 +02:00
Stefan Karlsson
c58aaca77e 8247201: Print potential pointer value of readable stack memory in hs_err file
Reviewed-by: eosterlund, dholmes, tschatzl
2020-06-10 08:59:34 +02:00
Stefan Karlsson
8e865fc569 8246926: Clean up newlines and whitespaces in hs_err files
Reviewed-by: dholmes, eosterlund, iklam
2020-06-10 08:58:43 +02:00
Stefan Karlsson
90a774b922 8246272: Make use of GCLogPrecious for G1, Parallel and Serial
Reviewed-by: pliden, eosterlund, sjohanss
2020-06-10 08:57:50 +02:00
Prasanta Sadhukhan
d8510ea0c1 Merge 2020-05-09 09:49:08 +05:30
Aleksey Shipilev
15d7ef7102 8244667: Shenandoah: SBC2Support::test_gc_state takes loop for wrong control
Reviewed-by: rkennke
2020-05-08 23:17:17 +02:00
Evgeny Nikitin
bdb8ef1d18 8242150: [GRAAL] Add jtreg "serviceability/sa/ClhsdbJstackXcompStress.java" to graal problem list
Reviewed-by: kvn
2020-05-08 18:59:03 +02:00
Vladimir A Ivanov
93fcbec20a 8243099: SO_INCOMING_NAPI_ID support
Add support for the SO_INCOMING_NAPI_ID socket option to jdk.net.ExtendedSocketOptions

Co-authored-by: Dinesh Kumar <dinesh.kumar@intel.com>
Reviewed-by: alanb, chegar, dfuchs, vtewari, pconcannon
2020-05-20 15:12:28 -07:00
Erik Joelsson
822ec45b02 8245401: AbsPathsInImage.java fails on Windows on jdwp.dll
Reviewed-by: mikael, ihse
2020-05-20 14:30:28 -07:00
Zhengyu Gu
3802524153 8245288: Shenandoah: move up ShenandoahEvacOOM scope for code root processing during concurrent class unloading
Reviewed-by: shade
2020-05-20 17:45:07 -04:00
Kim Barrett
5b3c33ac67 8245022: ParallelGC abuses StarTask to also include partial objarray scan tasks
Change ParallelGC young collections to use ScannerTasks.

Reviewed-by: tschatzl, sjohanss
2020-05-20 17:21:16 -04:00
Zhengyu Gu
275079ce7f 8245240: Shenandoah: support nesting evacuation OOM scope
Reviewed-by: shade, rkennke
2020-05-20 17:16:42 -04:00
Xin Liu
612c38cdc9 8245051: c1 is broken if it is compiled by gcc without -fno-lifetime-dse
Initialize BlockBegin block id in constructor rather than operator new

Reviewed-by: kbarrett, thartmann
2020-05-20 11:29:11 -07:00
Daniel Fuchs
58adc04d69 8244031: HttpClient should have more tests for HEAD requests
Http2TestExchangeImpl.java updated to support HEAD responses; ForbiddenHeadTest.java added.

Reviewed-by: chegar, michaelm
2020-05-20 18:57:06 +01:00
Mandy Chung
692f753580 8240910: jmod rejects duplicate entries in --class-path jars
Reviewed-by: alanb, lancea
2020-05-08 08:23:35 -07:00
Erik Gahlin
f3519016c7 8244508: JFR: FlightRecorderOptions reset date format
Reviewed-by: mgronlun
2020-05-08 15:34:14 +02:00
Sean Mullan
e544a6afc5 Merge 2020-05-08 08:13:15 -04:00
Sean Mullan
59eb03151a 8237888: security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java fails when checking validity interval
Reviewed-by: xuelei
2020-05-08 08:12:21 -04:00
Magnus Ihse Bursie
d5b5059af5 8244653: Suppress gcc 9.1 ABI change notes on aarch64
Reviewed-by: kbarrett
2020-05-08 14:10:36 +02:00
Aleksei Efimov
3f505750ed 8237834: com/sun/jndi/ldap/LdapDnsProviderTest.java failing with LDAP response read timeout
Reviewed-by: dfuchs
2020-05-08 11:23:37 +01:00
Jan Lahoda
3beee2cd93 8242919: Paste locks up jshell
Not waiting until the full block is available while reading from input.

Reviewed-by: rfield
2020-05-08 09:16:12 +02:00
Prasanta Sadhukhan
b75ea9b069 Merge 2020-05-08 09:52:42 +05:30
Prasanta Sadhukhan
1f2f808794 8233643: [TESTBUG] JMenu test bug4515762.java fails on macos
Reviewed-by: serb
2020-05-08 09:45:57 +05:30
Prasanta Sadhukhan
5f0d11e1e9 8233642: [TESTBUG] JMenuBar test bug 4750590.java fails on macos
Reviewed-by: serb
2020-05-08 09:43:13 +05:30
Jie Fu
13d6b49ed8 8244625: Zero VM is broken after JDK-8244550 (java_lang_Class::as_Klass(oopDesc*) undefined)
Reviewed-by: dholmes
2020-05-08 09:23:50 +08:00
Jesper Wilhelmsson
601891ac2b 8244618: WinUpgradeUUIDTest.java fails after JDK-8236518
Reviewed-by: dholmes
2020-05-08 02:43:36 +02:00
Zhengyu Gu
88722a82ed 8244243: Shenandoah: Cleanup Shenandoah phase timing tracking and JFR event supporting
Reviewed-by: shade
2020-05-07 17:44:53 -04:00
Aleksei Efimov
61864c28d1 8062947: Fix exception message to correctly represent LDAP connection failure
Reviewed-by: dfuchs, xyin, vtewari
2020-05-07 19:18:22 +01:00
Xin Liu
e05227a2ce 8244248: boot-jdk.m4 captures the version line using regex
Use awk instead of head

Reviewed-by: ihse, erikj
2020-05-07 11:13:21 -07:00
Prasanta Sadhukhan
f64bdedeac 8244557: test/jdk/javax/swing/JTabbedPane/TestBackgroundScrollPolicy.java failed
Reviewed-by: prr
2020-05-07 22:29:25 +05:30
Naoto Sato
ed4bc1bf23 8244245: localizedBy() should override localized values with default values
Reviewed-by: joehw, rriggs, scolebourne
2020-05-07 09:27:48 -07:00
Andy Herrick
29f015cf61 8236518: There is no Native Packages WinUpgradeUUIDTest-2.0.exe after creating Native packages on win
Reviewed-by: asemenyuk, almatvee
2020-05-07 10:54:18 -04:00
Magnus Ihse Bursie
1a16a4b628 8244592: Start supporting SOURCE_DATE_EPOCH
Reviewed-by: erikj
2020-05-07 17:47:11 +02:00
Magnus Ihse Bursie
74132fe7e1 8244615: build-performance.m4 is not always parsing /proc/cpuinfo correctly
Reviewed-by: erikj
2020-05-07 17:44:21 +02:00
Aleksey Shipilev
54b49db321 8244606: Non-PCH build is broken after JDK-8244550
Reviewed-by: redestad, dcubed
2020-05-07 16:44:48 +02:00
Alan Bateman
f6dda95113 8243596: ModuleLayer::parents should return an unmodifiable list
Reviewed-by: mchung
2020-05-07 14:44:09 +01:00
Pavel Rappo
93b0516d5d 8224613: javadoc should better handle bad options
Reviewed-by: jjg
2020-05-07 13:59:18 +01:00
Claes Redestad
c2780c9556 8244550: Unsafe::allocateInstance does redundant transitions
Reviewed-by: coleenp, mchung, dholmes
2020-05-07 14:09:20 +02:00
Roman Kennke
62bf2d07e7 8244551: Shenandoah: Fix racy update of update_watermark
Reviewed-by: shade
2020-05-07 08:00:30 -04:00
Aleksey Shipilev
b231ad70c8 8244510: Shenandoah: invert SHC2Support::is_in_cset condition
Reviewed-by: rkennke, roland
2020-05-07 12:48:21 +02:00
Matthias Baesken
c3e3459027 8244183: linker error jpackageapplauncher on Windows 32bit
Reviewed-by: asemenyuk
2020-05-06 17:24:47 +02:00
Per Lidén
58a34f7c32 8244291: Test: gc/z/TestGarbageCollectorMXBean.java failed: "unexpected cycles"
Reviewed-by: eosterlund, tschatzl
2020-05-20 10:54:11 +02:00
Kim Barrett
e9b8463d3d 8245236: Remove MO_VOLATILE Access decorator
Use MO_RELAXED instead of MO_VOLATILE and removed MO_VOLATILE.

Reviewed-by: stefank, tschatzl
2020-05-20 02:02:48 -04:00
Nick Gasson
18db3dec42 8244164: AArch64: jaotc generates incorrect code for compressed OOPs with non-zero heap base
Reviewed-by: aph
2020-05-11 12:05:55 +08:00
Joe Darcy
6cbf57aa37 8245147: Refactor and improve utility of test/langtools/tools/javac/versions/Versions.java
Reviewed-by: vromero
2020-05-19 15:17:00 -07:00
Alex Menkov
dc3843919e 8229829: java/lang/management/ThreadMXBean/Locks.java fails with java.lang.RuntimeException: Thread WaitingThread is at WAITING state but is expected to be in Thread.State = WAITING
Reviewed-by: sspitsyn, dholmes
2020-05-19 14:46:20 -07:00
Thomas Stuefe
939c0a46a7 8245035: Clean up os::split_reserved_memory()
Reviewed-by: coleenp, stefank
2020-05-19 21:04:44 +02:00
Dan Lemmond
d3e0c4ce9c 8244966: Add .vscode to .hgignore and .gitignore
Add .vscode to .hgignore and .gitignore

Reviewed-by: erikj, ihse
2020-05-19 11:20:13 -07:00
Xin Liu
104ea2d56d 8244170: [aarch64] correct instruction typo for dcps1/2/3
Replace dpcs with dcps

Reviewed-by: adinn, phh
2020-05-19 10:38:26 -07:00
Jonathan Gibbons
554e988bea 8243396: Add a brief description of argfiles to the javadoc help output
Reviewed-by: prappo
2020-05-19 10:11:13 -07:00
Daniil Titov
9d4872f612 8241080: Consolidate signature parsing code in serviceability tools
Reviewed-by: sspitsyn, cjplummer
2020-05-19 09:40:21 -07:00
Weijun Wang
fa36d28aff 8245280: Add runtime/cds/appcds/SignedJar.java to problem list
Reviewed-by: dcubed
2020-05-19 22:06:10 +08:00
Magnus Ihse Bursie
1cb7df63e7 8245287: Start using ModuleWrapper for gensrc as well
Reviewed-by: erikj
2020-05-19 15:59:51 +02:00
Magnus Ihse Bursie
74f1e6da4e 8244093: Move all IDE support into coherent structure in make directory
Reviewed-by: mcimadamore, jlahoda, chegar, erikj
2020-05-19 15:49:46 +02:00
Martin Doerr
b6fde85f33 8245047: [PPC64] C2: ReverseBytes + Load always match to unordered Load (acquire semantics missing)
Introduce separate nodes with acquire semantics which match ReverseBytes + Load.acquire.

Reviewed-by: shade, lucy
2020-05-19 15:11:58 +02:00
Yasumasa Suenaga
ebf928a0e7 8244819: hsdis does not compile with binutils 2.34+
Reviewed-by: kvn, thartmann
2020-05-19 20:58:51 +09:00
Sibabrata Sahoo
13cf783154 8209632: Develop new tests for EdDSA API
New Tests for EdDSA

Reviewed-by: ascarpino
2020-05-19 02:36:17 -07:00
Magnus Ihse Bursie
77826c0a39 8245168: jlink should not be treated as a "small" tool
Reviewed-by: erikj
2020-05-19 09:12:10 +02:00
Per Lidén
8ec7512fec 8245106: ZGC: Fix incorrect setup when using -XX:+UseTransparentHugePages
Reviewed-by: stefank, eosterlund
2020-05-19 08:34:14 +02:00
Per Lidén
bcf99aa98e 8245098: Make SafeFetch32/N available earlier
Reviewed-by: kbarrett, dholmes
2020-05-19 08:34:14 +02:00
Per Lidén
ce6aadbd2f 8245196: ZGC: No need to disable UseBiasedLocking by default
Reviewed-by: tschatzl, kbarrett
2020-05-19 08:34:14 +02:00
Per Lidén
cc3a8595a4 8245233: ZGC: Load volatile oops using Atomic::load()
Reviewed-by: stefank, kbarrett, smonteith
2020-05-19 08:34:13 +02:00
Valerie Peng
080b3b83eb 8242151: Improve OID mapping and reuse among JDK security providers for aliases registration
Use sun.security.util.KnownOIDs enum instead of hardcoding oid strings everywhere

Reviewed-by: weijun
2020-05-19 04:05:03 +00:00
Hai-May Chao
a97932d8fc 8245151: jarsigner should not raise duplicate warnings on verification
Reviewed-by: weijun
2020-05-19 11:55:44 +08:00
Yasumasa Suenaga
4159f6852e 8233706: JFR emergency dump should be performed after error reporting
Reviewed-by: mgronlun, egahlin
2020-05-19 09:02:30 +09:00
Joe Wang
b08140dade 8245231: Javadoc for the readObject methods needs to be updated
Reviewed-by: lancea, msheppar
2020-05-18 22:13:35 +00:00
Jonathan Gibbons
039cb65753 8239816: Make handling of module / package / types consistent
Reviewed-by: hannesw
2020-05-18 13:24:35 -07:00
Zhengyu Gu
b26516309a 8245124: Shenandoah: optimize code root evacuation/update during concurrent class unloading
Reviewed-by: shade
2020-05-18 14:47:09 -04:00
Joe Wang
3eaf944203 8244342: Compilation warnings about unexpected serialization related method signatures
Reviewed-by: lancea, naoto, rriggs
2020-05-18 17:15:32 +00:00
Anthony Scarpino
fd28aad72d 8166597: Crypto support for the EdDSA Signature Algorithm
Reviewed-by: weijun, mullan, wetmore
2020-05-18 09:42:52 -07:00
Yumin Qi
02293daa64 8245070: 32-bit builds are broken after JDK-8242524
Reviewed-by: erikj, ihse
2020-05-18 09:28:06 -07:00
Coleen Phillimore
60728a487c 8242424: Deprecate InitialBootClassLoaderMetaspaceSize
8243147: Deprecate UseLargePagesInMetaspace

Mark these options for deprecation

Reviewed-by: stuefe, dcubed
2020-05-18 11:31:16 -04:00
Kim Barrett
b957788c32 8245137: aarch64 ICache flush depends on enabling gnu extensions
Use __builtin___clear_cache.

Reviewed-by: aph, dholmes
2020-05-18 10:47:52 -04:00
Andy Herrick
840c3050e9 8237971: Package type for runtime image on macosx
Reviewed-by: asemenyuk, almatvee
2020-05-18 10:11:10 -04:00
Christian Hagedorn
6bd9391f03 8244433: Remove saving of RSP in Assembler::pusha_uncached()
Remove move instruction to save the actual value of RSP in Assembler::pusha_uncached() on x86.

Reviewed-by: eosterlund, thartmann, kvn
2020-05-18 12:32:11 +02:00
Aleksey Shipilev
1ac381171e 8244509: Shenandoah: refactor ShenandoahBarrierC2Support::test_* methods
Reviewed-by: rkennke, roland
2020-05-06 11:40:27 +02:00
Roman Kennke
1c136aae13 8244595: [REDO] 8244523: Shenandoah: Remove null-handling in LRB expansion
Reviewed-by: shade
2020-05-07 12:36:59 +02:00
Roman Kennke
441e4cd91b 8244594: [BACKOUT] 8244523: Shenandoah: Remove null-handling in LRB expansion
Reviewed-by: shade
2020-05-07 12:03:08 +02:00
Roman Kennke
2f9cfb1178 8244523: Shenandoah: Remove null-handling in LRB expansion
Reviewed-by: shade, roland
2020-05-06 16:09:24 +02:00
Hai-May Chao
76507eef63 8242060: Add revocation checking to jarsigner
Reviewed-by: mullan, weijun
2020-05-07 10:48:06 +08:00
Yumin Qi
0ef6d1dff5 8244495: Some jlink tests crash on Windows after JDK-8237750
Fix of 8237750 changed the loading zip library to on-demand loading, on Windows, jlink/jimage still assume that zip has been loaded already. Fix to load zip on not loaded.

Reviewed-by: kbarrett, mchung, dholmes, dcubed
2020-05-06 19:43:57 -07:00
Erik Gahlin
6dd8443493 8243452: JFR: Could not create chunk in repository with over 200 recordings
Reviewed-by: mgronlun
2020-05-07 03:18:49 +02:00
Jesper Wilhelmsson
28f6cd5917 Added tag jdk-15+22 for changeset 7223c6d61034 2020-05-07 02:45:49 +02:00
Ioi Lam
b0f7ebc26b 8244542: ProblemList cds/DeterministicDump.java for Windows
Reviewed-by: ccheung
2020-05-06 14:20:35 -07:00
Volker Simonis
6a9d0579ca 8244094: Fix Amazon copyright in various test files
Reviewed-by: phh
2020-05-06 22:06:16 +02:00
Zhengyu Gu
0cf828153c 8241086: Test runtime/NMT/HugeArenaTracking.java is failing on 32bit Windows
Reviewed-by: stuefe
2020-05-06 16:02:10 -04:00
Jayashree Sk1
d2e6339992 6415694: Clarification in Javadoc for java.rmi.AlreadyBoundException
Reviewed-by: rriggs
2020-05-06 12:48:32 -07:00
Leonid Mesnik
b24c0d21ee 8244267: Improve serviceability task definitions in CI
Reviewed-by: cjplummer, sspitsyn
2020-05-06 11:58:41 -07:00
Daniel Fuchs
a2c35a6acb 8244205: HTTP/2 tunnel connections through proxy may be reused regardless of which proxy is selected
The key used in the HTTP/2 connection pool is updated to take into account the proxy address in case of tunnel connections

Reviewed-by: chegar
2020-05-06 19:19:38 +01:00
Gerard Ziemski
91ed3fc599 8236177: assert(status == 0) failed: error ETIMEDOUT(60), cond_wait
Extend the assert to cover the new case.

Reviewed-by: dholmes, kbarrett
2020-05-06 12:42:28 -05:00
Gerard Ziemski
1f31afd855 8237777: "Dumping core ..." is shown despite claiming that "# No core dump will be written."
Remove the unneeded and possibly misleading message.

Reviewed-by: dholmes, ysuenaga
2020-05-06 12:40:50 -05:00
Naoto Sato
09287ab1ac 8244459: Optimize the hash map size in LocaleProviderAdapters
Reviewed-by: joehw, plevart, smarks
2020-05-06 10:26:22 -07:00
Rahul Yadav
ed24927500 8240666: Websocket client’s OpeningHandshake discards the HTTP response body
The fix updates jdk.internal.net.http.websocket. OpeningHandshake.send() method to process the response body from server

Reviewed-by: chegar, dfuchs, prappo
2020-05-06 17:33:32 +01:00
Prasanta Sadhukhan
eb91535be5 8172269: When checking the default behaviour for a scroll tab layout and checking the 'opaque' checkbox, the area behind tabs is not red
Reviewed-by: serb
2020-05-06 14:02:11 +05:30
Prasanta Sadhukhan
ddb1d7a163 8232243: Wrong caret position in JTextPane on Windows with a screen resolution > 100%
Reviewed-by: prr, jdv
2020-05-06 13:58:09 +05:30
Igor Ignatyev
9f86d94580 8244491: make runtime/cds/appcds/TestZGCWithCDS.java test more robust
Reviewed-by: dholmes
2020-05-05 18:02:11 -07:00
Jim Laskey
5e83cb6ca5 8241602: jlink does not produce reproducible jimage files
Reviewed-by: alanb, ihse
2020-05-06 12:49:58 -03:00
Claes Redestad
72704aaba1 8244413: Avoid rebinds in MethodHandle.viewAsType
Reviewed-by: mchung, jrose
2020-05-06 15:51:49 +02:00
Phil Race
a040c56dd9 8221305: java/awt/FontMetrics/MaxAdvanceIsMax.java fails on MacOS + Solaris
Reviewed-by: serb
2020-05-04 11:32:21 -07:00
Prasanta Sadhukhan
823d1d222f 8233638: [TESTBUG] Swing test ScreenMenuBarInputTwice.java fails on macos
Reviewed-by: serb
2020-05-04 09:08:17 +05:30
Prasanta Sadhukhan
4071546506 8221902: PIT: javax/swing/JRadioButton/FocusTraversal/FocusTraversal.java fails on ubuntu
Reviewed-by: serb
2020-05-04 09:00:03 +05:30
Prasanta Sadhukhan
2731d62234 Merge 2020-05-02 09:00:04 +05:30
Igor Ignatyev
eb6ef3c24d 8243436: use reproducible random in :vmTestbase_nsk_monitoring
Reviewed-by: sspitsyn, cjplummer
2020-05-01 16:23:06 -07:00
Igor Ignatyev
d29e5b72f0 8243435: use reproducible random in :vmTestbase_nsk_jvmti
Reviewed-by: sspitsyn, cjplummer
2020-05-01 16:22:20 -07:00
Igor Ignatyev
56fcd54843 8243437: use reproducible random in :vmTestbase_nsk_jdi
Reviewed-by: sspitsyn, cjplummer
2020-05-01 16:21:20 -07:00
Phil Race
b938a4c5ed 8244113: [TESTBUG] java/awt/font/Rotate/RotatedSyntheticBoldTest.java test comments interpreted as args
Reviewed-by: serb
2020-05-01 14:36:32 -07:00
Rajan Halade
a777dcff82 8225069: Remove Comodo root certificate that is expiring in May 2020
Reviewed-by: mullan
2020-05-01 11:09:57 -07:00
Yumin Qi
832272da71 8178349: Cache builtin class loader constraints to avoid re-initializing itable/vtable for shared classes
Record loader constraints for built-in class which is loaded by app loader or platform loader in shared archive in dump time.  When the class loaded from shared archive at runtime, directly check loader constraints using the saved info so avoid lengthy relayout i/v-table at class link stage.

Reviewed-by: iklam, ccheung
2020-05-01 10:58:45 -07:00
Igor Ignatyev
eaf3306e44 8243433: use reproducible random in :vmTestbase_nsk_sysdict
Reviewed-by: dholmes
2020-05-01 09:20:48 -07:00
Igor Ignatyev
0264b050f6 8243429: use reproducible random in :vmTestbase_nsk_stress
Reviewed-by: epavlova, dholmes
2020-05-01 09:19:55 -07:00
Aleksey Shipilev
da064f8060 8244226: Shenandoah: per-cycle statistics contain worker data from previous cycles
Reviewed-by: rkennke
2020-05-01 16:03:26 +02:00
Ichiroh Takiguchi
318fab950a 8242541: Small charset issues (ISO8859-16, x-eucJP-Open, x-IBM834 and x-IBM949C)
Modify ISO8859-16, x-eucJP-Open, x-IBM834 and x-IBM949C charset related files

Reviewed-by: naoto
2020-05-01 21:43:28 +09:00
Kim Barrett
60b41575ea 8243628: Deprecate -XX:ForceNUMA option
Added ForceNUMA to the deprecation table for jdk15.

Reviewed-by: pliden, tschatzl
2020-05-01 00:25:23 -04:00
Weijun Wang
07cb35a9f3 8244087: 2020-04-24 public suffix list update
Reviewed-by: mullan
2020-05-01 12:26:34 +08:00
Sergey Bylokhov
26e37d13a7 8232744: j.awt.Window::setShape(Shape) paints visible artifacts outside of the given shape
Reviewed-by: prr
2020-04-30 22:47:27 +01:00
Phil Race
b3e1ea0407 Merge 2020-04-30 10:32:23 -07:00
Andy Herrick
908e57638c 8219536: Add Option for user defined jlink options
Reviewed-by: asemenyuk, almatvee
2020-04-30 13:03:20 -04:00
David Holmes
a0d04ad0ae 8244173: Uncomment subtest in runtime/InvocationTests/invocationC1Tests.java
Reviewed-by: hseigel, iignatyev
2020-04-30 19:18:28 -04:00
Rajan Halade
eddab115d8 8225068: Remove DocuSign root certificate that is expiring in May 2020
Reviewed-by: mullan
2020-04-30 15:21:15 -07:00
Naoto Sato
2ebf5a261c 8244152: Remove unnecessary hash map resize in LocaleProviderAdapters
Reviewed-by: joehw, vtewari
2020-04-30 13:48:21 -07:00
Erik Joelsson
a15b1ea09b 8244210: The javac server is never used
Reviewed-by: tbell, redestad, fweimer
2020-04-30 13:34:15 -07:00
Zhengyu Gu
227868034a 8241793: Shenandoah: Enable concurrent class unloading for aarch64
Reviewed-by: smonteith, rkennke
2020-04-30 14:00:50 -04:00
Aleksey Shipilev
7f877f6384 8243495: Shenandoah: print root statistics for concurrent weak/strong root phases
Reviewed-by: rkennke
2020-04-30 18:05:55 +02:00
Aleksey Shipilev
38e6f3665c 8244180: Shenandoah: carry Phase to ShWorkerTimingsTracker explicitly
Reviewed-by: zgu
2020-04-30 18:05:53 +02:00
Matthias Baesken
463e377053 8244196: adjust output in os_linux
Reviewed-by: dholmes, mdoerr
2020-04-30 17:37:59 +02:00
Erik Gahlin
ca371c9536 8244463: JFR: Clean up jdk.jfr.internal.RepositoryChunk
Reviewed-by: jbachorik, mgronlun
2020-05-06 13:31:00 +02:00
Igor Ignatyev
1e1c724c0d 8243428: use reproducible random in :vmTestbase_vm_compiler
Reviewed-by: thartmann
2020-04-30 08:07:36 -07:00
Igor Ignatyev
a0ed53b986 8243427: use reproducible random in :vmTestbase_vm_mlvm
Reviewed-by: thartmann
2020-04-30 08:06:51 -07:00
Jayathirth D V
188106be4d 8242557: Add length limit for strings in PNGImageWriter
Reviewed-by: prr, psadhukhan
2020-04-30 20:03:36 +05:30
Coleen Phillimore
c37bd06081 8244107: Incorrect parameters in ReservedSpace constructor change
Revert cardTable.cpp change from JDK-8243393.

Reviewed-by: dholmes
2020-04-30 09:48:30 -04:00
Harold Seigel
d74e4f2237 8243572: Multiple tests fail with assert(cld->klasses() != 0LL) failed: unexpected NULL for cld->klasses()
Merge unsafe anonymous class stats with hidden classes, avoiding having to call cld->klasses()

Reviewed-by: lfoltan, mchung, mgronlun
2020-04-30 13:10:09 +00:00
Coleen Phillimore
5b86c4aa68 Merge 2020-04-30 06:15:34 -04:00
Coleen Phillimore
3153373e49 8242898: Clean up InstanceKlass::_array_klasses
Make type ObjArrayKlass

Reviewed-by: dholmes, iklam
2020-04-30 06:05:53 -04:00
Per Lidén
68e53065e0 8240679: ZGC GarbageCollectorMXBean reports inaccurate post GC heap size for ZHeap pool
Reviewed-by: eosterlund
2020-04-30 10:59:23 +02:00
Aleksey Shipilev
05b3bc57ac 8243573: Shenandoah: rename GCParPhases and related code
Reviewed-by: rkennke
2020-04-30 10:02:10 +02:00
Prasanta Sadhukhan
7dad5d261a 8226464: TitledBorder label appears cut off on hidpi devices
Reviewed-by: serb, jdv
2020-04-30 12:42:03 +05:30
Prasanta Sadhukhan
e9cc3da89c 8208566: [TEST_BUG] javax\swing\text\GlyphPainter2\6427244\bug6427244.java: Test failed
Reviewed-by: jdv
2020-04-30 12:38:19 +05:30
Chris Plummer
e513acab16 8214797: TestJmapCoreMetaspace.java timed out
Reviewed-by: dcubed
2020-04-29 21:03:15 -07:00
Igor Ignatyev
46fe7e303b 8243945: use driver mode in runtime tests
Reviewed-by: dholmes, dcubed, gziemski
2020-04-29 19:51:45 -07:00
Jan Lahoda
ed9cbe252d 8241616: Timestamps on ct.sym entries lead to non-reproducible builds
Generate ct.sym in a reproducible way

Reviewed-by: ihse
2020-04-29 18:35:14 +02:00
Ivan Walulya
31479a0d48 8244752: Enable Linux support for multiple huge page sizes -XX:LargePageSizeInBytes
Reviewed-by: kbarrett, sjohanss, stuefe, tschatzl
2020-05-14 15:27:17 +02:00
Nick Gasson
dde3b90050 8244981: jpackage error due to missing final newline in Debian control file
Reviewed-by: herrick, asemenyuk
2020-05-18 10:33:12 +08:00
Martin Doerr
76b76654d2 8235673: [C1, C2] Split inlining control flags
Reviewed-by: neliasso, kvn, thartmann
2020-05-18 10:57:16 +02:00
Ioi Lam
d5bd523869 8244536: cds/DeterministicDump.java failed: File content different
Reviewed-by: ccheung, stuefe
2020-05-17 15:10:06 -07:00
Michael McMahon
0f7aeed416 8241305: Add protocol specific factory creation methods to SocketChannel and ServerSocketChannel
Reviewed-by: alanb, chegar, dfuchs
2020-05-17 21:15:33 +01:00
Joe Darcy
42bad03de8 8245146: Update description of SourceVersion.RELEASE_15 with text blocks
Reviewed-by: jlaskey
2020-05-17 11:34:32 -07:00
Vicente Romero
9efdaacc31 8242478: compiler implementation for records (Second Preview)
Reviewed-by: mcimadamore, jlahoda, darcy
2020-05-17 11:09:52 -04:00
Magnus Ihse Bursie
a2057ad440 8240228: "make hotspot-ide-project" on Windows creates a Visual Studio project with empty preprocessor defines
Reviewed-by: erikj
2020-05-16 09:43:44 +02:00
Claes Redestad
a09720f2ee 8232213: runtime/MemberName/MemberNameLeak.java fails intermittently
Reviewed-by: dcubed, coleenp
2020-05-16 01:35:38 +02:00
John Jiang
46cf294250 8245005: javax/net/ssl/compatibility/BasicConnectTest.java failed with No enum constant
Reviewed-by: xuelei
2020-05-16 05:49:47 +08:00
Roland Westrelin
1e251e9471 8241070: Shenandoah: remove unused local variables in C2 support
Reviewed-by: shade
2020-05-13 17:00:59 +02:00
Roland Westrelin
6d98502550 8244663: Shenandoah: C2 assertion fails in Matcher::collect_null_checks
Reviewed-by: shade
2020-05-15 21:54:28 +02:00
Pavel Rappo
36fb21dc2f 8245111: Update doc comments for improved processing by the Standard Doclet
Reviewed-by: dfuchs, joehw, lancea, rriggs
2020-05-15 20:38:28 +01:00
Roland Westrelin
35a7eff951 8244721: CTW: C2 (Shenandoah) compilation fails with "unexpected infinite loop graph shape"
Reviewed-by: shade
2020-05-15 10:24:38 +02:00
Roland Westrelin
b61c88c693 8245083: [REDO] Shenandoah: Remove null-handling in LRB expansion
Reviewed-by: shade
2020-05-15 19:57:37 +02:00
Magnus Ihse Bursie
fb6e7b06fb 8245119: Fix include path for hotspot-ide-project
Reviewed-by: erikj
2020-05-15 18:58:17 +02:00
Claes Redestad
150d6cfea8 8245094: Reduce overhead of initializing the default StringConcatFactory strategy
Reviewed-by: psandoz, jlaskey
2020-05-15 18:37:08 +02:00
Magnus Ihse Bursie
e83968799e 8245096: Better windows environment output in configure
Reviewed-by: erikj
2020-05-15 18:14:58 +02:00
Magnus Ihse Bursie
adf1d4757b 8245093: WSL support broke cygwin toolchain detection
Reviewed-by: erikj
2020-05-15 18:13:20 +02:00
Patrick Concannon
fad2cf51ba 8241072: Reimplement the Legacy DatagramSocket API
Replace the underlying implementations of the java.net.DatagramSocket and java.net.MulticastSocket APIs with simpler and more modern implementations that are easy to maintain and debug.

Co-authored-by: Alan Bateman <alan.bateman@oracle.com>
Co-authored-by: Chris Hegarty <chris.hegarty@oracle.com>
Co-authored-by: Daniel Fuchs <daniel.fuchs@oracle.com>
Reviewed-by: alanb, chegar, dfuchs
2020-05-12 21:51:53 +01:00
Zhengyu Gu
3930460af5 8244953: Shenandoah: gc/shenandoah/TestStringInternCleanup fails with broken string table root
Reviewed-by: shade
2020-05-15 10:43:20 -04:00
Rahul Yadav
178e69a3b9 8244652: Add test for non utf-8 response handling by websocket
The test java.net.httpclient.websocket.WSHandshakeExceptionTest.java checks that the websocket client handles invalid utf-8 sent by the websocket server

Reviewed-by: dfuchs
2020-05-15 14:46:17 +01:00
Claes Redestad
82f2a0e2e4 8245024: Simplify and eagerly initialize StringConcatFactory
Reviewed-by: psandoz
2020-05-15 12:25:37 +02:00
Magnus Ihse Bursie
b76a215ff6 8245046: SetupTarget incorrect for hotspot-ide-project
Reviewed-by: erikj
2020-05-15 12:09:59 +02:00
Fernando Guallini
4c54fa2274 8209774: Refactor shell test javax/xml/jaxp/common/8035437/run.sh to java
Reviewed-by: dfuchs, joehw, alanb
2020-05-15 09:49:54 +08:00
Mandy Chung
b883badc47 8244961: MethodHandles::privateLookupIn throws NPE when called during initPhase2
Reviewed-by: chegar
2020-05-14 17:05:41 -07:00
Alex Menkov
cab61f1515 8243012: Fix issues in j.l.i package info
Reviewed-by: alanb, sspitsyn
2020-05-14 15:17:45 -07:00
Yumin Qi
8da07d1ae9 8242524: Use different default CDS archives depending on UseCompressOops
Reviewed-by: erikj, iklam, ccheung
2020-05-14 14:24:55 -07:00
Calvin Cheung
71cc95e4b1 8243947: [TESTBUG] hotspot/jtreg:hotspot_appcds_dynamic fails when the JDK doesn't have default CDS archive
Generate a default CDS archive when necessary before running AppCDS dynamic tests.

Reviewed-by: iklam
2020-05-14 20:34:18 +00:00
Robbin Ehn
95b8e9eaa3 8244340: Handshake processing thread lacks yielding
Reviewed-by: pchilanomate, dholmes, dcubed
2020-05-14 19:36:51 +02:00
Alex Menkov
9a0463165d 8244973: serviceability/attach/RemovingUnixDomainSocketTest.java fails "stderr was not empty"
Reviewed-by: dholmes, sspitsyn
2020-05-14 10:29:52 -07:00
Magnus Ihse Bursie
43da9ff24e 8245032: Remove exceptions from compare.sh
Reviewed-by: erikj
2020-05-14 19:17:11 +02:00
Magnus Ihse Bursie
014095c4ab 8245041: Fix incorrect output order in configure
Reviewed-by: erikj
2020-05-14 19:15:39 +02:00
Magnus Ihse Bursie
8c5430972f 8245033: Fixes for building in WSL
Reviewed-by: erikj
2020-05-14 18:56:30 +02:00
Weijun Wang
e13c481c7f 8218482: sun/security/krb5/auto/ReplayCachePrecise.java failed - no KrbException thrown
Reviewed-by: mullan
2020-05-14 23:09:52 +08:00
Erik Joelsson
c992521995 8244951: Missing entitlements for hardened runtime
Reviewed-by: ihse
2020-05-14 06:58:59 -07:00
Andy Herrick
0cc7f3585f 8244576: [macos] Volume icon deleted by osascript for background image
Reviewed-by: asemenyuk, almatvee
2020-05-13 16:05:02 -04:00
Erik Joelsson
9768618bab 8244945: Mark VS2019 as supported and default
Reviewed-by: ihse
2020-05-14 05:35:06 -07:00
Kim Barrett
1856ff8913 8244684: G1 abuses StarTask to also include partial objarray scan tasks
New ScannerTask and PartialArrayScanTask, initially used by G1

Reviewed-by: tschatzl, sjohanss
2020-05-14 08:24:36 -04:00
Thomas Stuefe
5b6f81de07 8244777: ClassLoaderStats VM Op uses constant hash value
Reviewed-by: coleenp, jbachorik
2020-05-14 08:48:36 +02:00
Jie Fu
587505f14a 8244971: Zero VM is broken after JDK-8241825 (COMPRESSED_CLASS_POINTERS_DEPENDS_ON_COMPRESSED_OOPS not defined)
Reviewed-by: dholmes
2020-05-14 09:25:49 +08:00
David Holmes
17dd7dc38c 8240588: _threadObj cannot be used on an exiting JavaThread
Reviewed-by: rehn, dcubed, kbarrett
2020-05-13 22:29:54 -04:00
Jesper Wilhelmsson
be7771b2b9 Added tag jdk-15+23 for changeset f143729ca00e 2020-05-14 04:25:42 +02:00
Naoto Sato
80c75c9fa9 8239383: Support for Unicode 13.0
Reviewed-by: rriggs, joehw
2020-05-13 15:46:08 -07:00
Alex Menkov
073e095e60 8235211: serviceability/attach/RemovingUnixDomainSocketTest.java fails with AttachNotSupportedException: Unable to open socket file
Reviewed-by: sspitsyn, ysuenaga
2020-05-13 15:25:59 -07:00
Kim Barrett
659aa08fbc 8242901: Duplicate PSYoung/OldGen max size functions
Use (nonvirtual) min/max_gen_size consistently, and remove duplicates.

Reviewed-by: stefank, sjohanss
2020-05-13 17:01:10 -04:00
Claes Redestad
168cdcf65d 8244936: Reduce JNI overhead of accessing FileDescriptor
Reviewed-by: rriggs, alanb
2020-05-13 22:25:14 +02:00
Kelvin Nilsen
ad2afe0bf4 8241062: Shenandoah: rich asserts trigger "empty statement" inspection
Reviewed-by: shade
2020-05-13 20:19:09 +02:00
Ioi Lam
92d1c4a61a 8244775: Remove unnecessary dependency to jfrEvents.hpp
Reviewed-by: kbarrett, kvn
2020-05-13 10:56:51 -07:00
Jonathan Gibbons
49bfbd3bc7 8243417: Clean up com.sun.tools.javac.main.CommandLine
Reviewed-by: prappo
2020-05-13 10:39:35 -07:00
Bob Vandette
3d50f242c2 8244853: The static build of libextnet is missing the JNI_OnLoad_extnet function
Reviewed-by: alanb
2020-05-13 11:35:48 -04:00
Bob Vandette
658fb7ac3e 8244852: GraalVM native-image fails after JDK-8238048 change
Reviewed-by: dholmes
2020-05-13 11:33:52 -04:00
Patricio Chilano Mateo
398a2b3c37 8231264: Implementation of JEP 374: Disable biased-locking and deprecate all flags related to biased-locking
Changed default value of UseBiasedLocking to false and deprecated related flags.

Reviewed-by: dholmes, dcubed
2020-05-13 15:47:10 +00:00
Erik Gahlin
ca53ee2593 8242934: test/jdk/jdk/jfr/tool/TestPrintJSON.java uses nashorn script engine
Reviewed-by: mgronlun
2020-05-13 16:18:16 +02:00
Magnus Ihse Bursie
707462edc2 8244930: Building without test failure handler broken after JDK-8244844
Reviewed-by: erikj
2020-05-13 15:03:24 +02:00
Andy Herrick
fe46f44bd1 8244758: DMG bundler ignores --install-dir option
Reviewed-by: asemenyuk, almatvee
2020-05-12 19:20:28 -04:00
Erik Österlund
382e5dc334 8241825: Make compressed oops and compressed class pointers independent (x86_64, PPC, S390)
Reviewed-by: coleenp, fparain, stuefe, mdoerr
2020-05-13 09:36:12 +00:00
Thomas Schatzl
9651edd247 8244815: Always log MMU information in G1
Reviewed-by: sjohanss, kbarrett
2020-05-13 12:47:49 +02:00
Thomas Schatzl
0dab181993 8244714: G1 young gen sizer allows zero young gen with huge -XX:NewRatio
Reviewed-by: sjohanss
2020-05-13 12:47:07 +02:00
Magnus Ihse Bursie
7345502884 8244928: Build log output too verbose after JDK-8244844
Reviewed-by: alanb
2020-05-13 10:35:08 +02:00
Prasanta Sadhukhan
0d2cc3b449 8169953: JComboBox/8057893: ComboBoxEdited event is not fired! on Windows
Reviewed-by: jdv
2020-04-29 14:01:30 +05:30
Nick Gasson
820f7227b7 8242188: [TESTBUG] error in jtreg test jdk/jfr/api/consumer/TestRecordedFrame.java on linux-aarch64
Reviewed-by: egahlin
2020-04-29 16:15:14 +08:00
Alexey Semenyuk
e48410a466 8244634: LoadLibraryW failed from tools/jpackage tests after JDK-8242302
Reviewed-by: herrick, almatvee
2020-05-12 19:34:59 -04:00
Yong Zhou
dc54da232d 8244407: JVM crashes after transformation in C2 IdealLoopTree::split_fall_in
Reviewed-by: thartmann, kvn
2020-05-13 07:25:47 +08:00
Brent Christian
cdf8cc5706 8244855: Remove unused "getParent" function from Windows jni_util_md.c
Reviewed-by: lancea, naoto
2020-05-12 14:19:21 -07:00
Johannes Kuhn
06d6234213 8244767: Potential non-terminated string in getEncodingInternal() on Windows
Reviewed-by: bpb, naoto
2020-05-12 11:20:34 -07:00
Magnus Ihse Bursie
be6f74718e 8244844: javac command line is not re-executable
Reviewed-by: erikj
2020-05-12 19:48:50 +02:00
Daniil Titov
a726aca6de 8242009: Review setting test.java/vm.opts in jcmd/jhsdb and debugger in serviceability tests
Reviewed-by: cjplummer
2020-05-12 09:45:24 -07:00
Magnus Ihse Bursie
e686fb6bf6 8244757: Introduce SetupTarget in Main.gmk
Reviewed-by: erikj
2020-05-12 16:35:58 +02:00
Aleksey Shipilev
e722efa65c 8244807: Shenandoah: ditch filter in ShenandoahUnload::unload
Reviewed-by: rkennke, zgu
2020-05-12 16:19:53 +02:00
Roman Kennke
ba59fe9503 8244813: [BACKOUT] 8244523: Shenandoah: Remove null-handling in LRB expansion
Reviewed-by: shade
2020-05-12 16:12:37 +02:00
Zhengyu Gu
25dcb1f717 8244821: Shenandoah: disarmed_value is initialized at wrong place
Reviewed-by: shade
2020-05-12 10:01:36 -04:00
Erik Gahlin
a6cdce1404 8244661: JFR: Remove use of thread-locals for java.base events
Reviewed-by: jbachorik, mgronlun
2020-05-12 15:20:15 +02:00
Magnus Ihse Bursie
b29d982a9c 8244756: Build broken with some awk version after JDK-8244248
Reviewed-by: mbaesken, xliu
2020-05-12 11:11:02 +02:00
Xin Liu
52e1bec7bc 8022574: remove HaltNode code after uncommon trap calls
Reviewed-by: thartmann, mdoerr, simonis
2020-05-12 10:59:12 +02:00
Weijun Wang
cc47d0aa61 8244674: Third-party code version check
Reviewed-by: mullan
2020-05-12 15:15:40 +08:00
Aleksey Shipilev
45e0c6a181 8244759: Shenandoah: print verbose class unloading counters
Reviewed-by: zgu
2020-05-12 08:25:17 +02:00
David Holmes
46d287916c 8244779: ProblemList serviceability/jvmti/HiddenClass/P/Q/HiddenClassSigTest.java pending JDK-8244571
Reviewed-by: iignatyev
2020-05-12 00:47:27 -04:00
Eric Liu
babaab2edb 8242429: Better implementation for sign extract
Reviewed-by: vlivanov, thartmann
2020-05-12 10:19:01 +08:00
Yang Zhang
e93cd7ed3c 8243155: AArch64: Add support for SqrtVF
Reviewed-by: aph
2020-04-29 09:58:09 +08:00
Jesper Wilhelmsson
d813a883c3 Added tag jdk-15+21 for changeset 12b55fad80f3 2020-04-30 04:05:36 +02:00
Alex Menkov
8a7ff65d98 8242522: Minor LingeredApp improvements
Reviewed-by: lmesnik, cjplummer
2020-04-29 16:02:56 -07:00
Mandy Chung
560da25f46 8243598: Typos in java.lang.invoke package-info
Reviewed-by: psandoz, lancea
2020-04-29 13:14:27 -07:00
Mikael Vidstedt
5c70479bec 8244061: Disable jvmci/graal/aot when building linux-aarch64 at Oracle
Reviewed-by: kvn, ihse, erikj
2020-04-29 12:56:53 -07:00
Erik Joelsson
25e0f4737b 8244051: AbsPathsInImage.java still fails on Windows
Reviewed-by: ihse
2020-04-29 09:26:49 -07:00
Andy Herrick
bef54e0a7e 8243673: Mac signing process should not use --deep arg
Reviewed-by: asemenyuk, almatvee
2020-04-29 11:47:05 -04:00
Phil Race
943f8df793 8230672: Specification for java.awt.FontMetrics.getMaxAdvance() is too prescriptive
Reviewed-by: serb
2020-04-28 12:29:03 -07:00
Phil Race
70165f56a4 8197797: Test java/awt/Graphics2D/DrawString/RotTransText.java fails
Reviewed-by: psadhukhan, jdv
2020-04-27 14:20:10 -07:00
Michael Zucchi
a3443d0fd1 8243656: Shell built-in test in configure depends on help
Help might not be available to check for built-ins: Use 'command -v' instead

Reviewed-by: erikj
2020-04-27 11:00:29 +02:00
Kim Barrett
5b066096a4 8243325: Cleanup TaskQueueSuper<>::peek
Replaced uses of peek with new assert_empty.

Reviewed-by: tschatzl, sjohanss
2020-05-06 00:23:51 -04:00
Jie Fu
611fda672f 8244497: [TESTBUG] Incompatible types conversion error in vmTestbase/vm/runtime/defmeth/StressTest.java after JDK-8243432
Reviewed-by: dholmes
2020-05-06 13:41:11 +08:00
Kim Barrett
98d41015ca 8244307: Improve assertions against taskqueue underflow
Added assert_not_underflow.

Reviewed-by: tschatzl, sjohanss
2020-05-06 00:28:12 -04:00
Kim Barrett
7ae3bea212 8243961: ForceNUMA and only one available NUMA node fails assertion on Windows
Improve ergnomics for UseNUMA and UseNUMAInterleaving

Reviewed-by: tschatzl, sjohanss
2020-05-05 22:34:54 -04:00
Jie Fu
317bd88e33 8244489: Zero and minimal VM build failure after JDK-8241071 (MetaspaceShared::symbol_space_alloc is undefined)
Reviewed-by: dholmes
2020-05-06 09:00:30 +08:00
Yumin Qi
0c0d485c37 8237750: Load libzip.so only if necessary
Libzip.so is unconditionally loaded even without usage. Fix by on demand loading.

Reviewed-by: dlong, iklam, ccheung
2020-05-05 15:40:18 -07:00
Igor Ignatyev
bc8065facd 8244485: runtime/cds/appcds/TestZGCWithCDS.java fails after 8244385
Reviewed-by: dcubed
2020-05-05 14:55:23 -07:00
Ioi Lam
eadcb08c3c 8241071: Generation of classes.jsa with -Xshare:dump is not deterministic
Reviewed-by: dholmes, stuefe
2020-05-05 11:10:02 -07:00
Hannes Wallnöfer
957eb270f0 8243388: Moving search result selection clears search input
Reviewed-by: prappo
2020-05-05 22:56:01 +02:00
Jonathan Gibbons
98cbf4660c 8242532: convert tests to use Text Blocks
Reviewed-by: hannesw
2020-05-05 13:02:30 -07:00
Alexander Matveev
5868c76ec6 8233166: jpackage tool skips empty directories
Reviewed-by: herrick, asemenyuk
2020-05-05 15:25:27 -04:00
Erik Joelsson
2254cf5a24 8244247: Build failures after sjavac cleanup
Reviewed-by: ihse, tbell
2020-05-05 11:02:43 -07:00
Sergey Bylokhov
14b7dd4090 7185258: [macosx] Deadlock in SunToolKit.realSync()
Reviewed-by: prr
2020-04-26 19:42:04 -07:00
Sergey Bylokhov
b36738a55a 8238575: DragSourceEvent.getLocation() returns wrong value on HiDPI screens (Windows)
Reviewed-by: prr
2020-04-26 19:36:04 -07:00
Sergey Bylokhov
a0a9595d8b 8236980: Cleanup of toString methods in JavaSound
Reviewed-by: prr
2020-04-26 18:49:18 -07:00
Prasanta Sadhukhan
c18080fef7 8213123: javax/swing/JButton/4368790/bug4368790.java fails on mac
Reviewed-by: serb, jdv
2020-04-27 10:37:30 +05:30
Prasanta Sadhukhan
059329b346 Merge 2020-04-24 16:12:53 +05:30
Yang Zhang
b54a34786a 8243240: AArch64: Add support for MulVB
Reviewed-by: aph
2020-04-24 09:47:19 +00:00
Aleksey Shipilev
53e4de6cf7 8239786: Shenandoah: print per-cycle statistics
Reviewed-by: rkennke
2020-04-24 11:45:24 +02:00
Magnus Ihse Bursie
76e5da4d59 8243477: FreeType library check should prefer 64-bit directory
Reviewed-by: erikj
2020-04-24 11:19:16 +02:00
John Jiang
2a4596cfe4 8243029: Rewrite javax/net/ssl/compatibility/Compatibility.java with a flexible interop test framework
Reviewed-by: xuelei
2020-04-24 15:28:57 +08:00
Sibabrata Sahoo
e5c84ff282 8242929: The values of jdk.tls.namedGroups should not be case-sensitive
The values of jdk.tls.namedGroups should not be case-sensitive

Reviewed-by: xuelei
2020-04-23 22:49:55 -07:00
Yang Zhang
905eb57ede 8242905: AArch64: Client build failed
Reviewed-by: aph
2020-04-24 02:16:06 +00:00
Jonathan Gibbons
009dd60ea3 8241780: Allow \n@ inside inline tags
Reviewed-by: prappo
2020-04-23 16:10:45 -07:00
Alexey Semenyuk
0c56c3511a 8242302: Refactor jpackage native code
Reviewed-by: herrick, almatvee, erikj
2020-04-23 16:40:09 -04:00
Coleen Phillimore
90ada6a314 8238048: Close alignment gaps in InstanceKlass
Moved fields around and some constant fields into ConstantPool

Reviewed-by: cjplummer, dlong, iklam
2020-04-23 16:29:22 -04:00
Aleksey Shipilev
37e5aec119 8243494: Shenandoah: set counters once per cycle
Reviewed-by: zgu
2020-04-23 21:24:01 +02:00
Per Lidén
2bf4c06182 8243486: ZGC: Adjust "Allocated" statistics to take undone page allocations into account
Reviewed-by: eosterlund, stefank
2020-04-23 19:23:15 +02:00
Phil Race
4765b3bdd8 Merge 2020-04-23 10:06:36 -07:00
Kim Barrett
e1f07cd05b 8239357: Revert gcc implementation of offset_of
Revert definition of offset_of and reenable -Winvalid-offsetof.

Reviewed-by: erikj, ihse, dholmes
2020-04-23 12:57:18 -04:00
Aleksey Shipilev
079b60c6b9 8243487: Shenandoah: make _num_phases illegal phase type
Reviewed-by: rkennke
2020-04-23 18:37:09 +02:00
Evgeny Nikitin
91220287fc 8147018: CompilerControl: Improve handling of timeouts and failures for tests
Dump expected method states, improve compile commands dumping in CompilerControl tests

Reviewed-by: iignatyev, rbackman
2020-04-23 16:20:17 +02:00
Claes Redestad
fc842d2b4b 8193066: Avoid use of capturing lambdas in JarFile
Reviewed-by: lancea, alanb
2020-05-11 21:43:57 +02:00
Erik Gahlin
3b9367636e 8244676: test/jdk/jdk/jfr/startupargs/TestOptionsWithLocale.java fails
Reviewed-by: mgronlun
2020-05-11 21:42:23 +02:00
Andy Herrick
9253c29fd2 8244620: Fix test WinUpgradeUUIDTest failures in Mach5
Reviewed-by: asemenyuk, prr
2020-05-11 15:29:52 -04:00
Valerie Peng
78825925a5 8244151: Update MUSCLE PC/SC-Lite headers to the latest release 1.8.26
Updated from 1.8.24 to 1.8.26

Reviewed-by: xuelei
2020-05-11 18:49:01 +00:00
Daniil Titov
aebc856c44 8194874: SA: Remove scripts with sa-jdi.jar dependencies
Reviewed-by: cjplummer, amenkov
2020-05-11 10:29:13 -07:00
Aleksey Shipilev
d5414d7929 8244740: Shenandoah: rename ShenandoahNormalMode to ShenandoahSATBMode
Reviewed-by: rkennke
2020-05-11 18:33:50 +02:00
Aleksey Shipilev
4016667300 8244739: Shenandoah: break superclass dependency on ShenandoahNormalMode
Reviewed-by: rkennke
2020-05-11 18:33:42 +02:00
Aleksey Shipilev
e3138f8cba 8244737: Shenandoah: move mode code to gc/shenandoah/mode
Reviewed-by: rkennke
2020-05-11 18:33:33 +02:00
Aleksey Shipilev
f37b72c0ee 8244732: Shenandoah: move heuristics code to gc/shenandoah/heuristics
Reviewed-by: rkennke
2020-05-11 18:33:24 +02:00
Aleksey Shipilev
68e55bdf72 8244730: Shenandoah: gc/shenandoah/options/TestHeuristicsUnlock.java should only verify the heuristics
Reviewed-by: rkennke
2020-05-11 18:33:18 +02:00
Harold Seigel
39670b0e57 8241934: Simplify parse_stream() and remove has_class_mirror_holder_cld()
Added paramter to register_loader() which allowed removing of has_class_mirror_holder_cld()

Reviewed-by: coleenp, lfoltan
2020-05-11 15:00:16 +00:00
Christian Hagedorn
3887904c16 8244207: Simplify usage of Compile::print_method() when debugging with gdb and enable its use with rr
Improve debugging with usage of Compile::print_method() for IGV at breakpoints from gdb and rr.

Reviewed-by: kvn, thartmann
2020-05-11 12:57:39 +02:00
Claes Redestad
ceda3089db 8244624: Improve handling of JarFile META-INF resources
Reviewed-by: lancea, weijun, martin
2020-05-11 10:37:54 +02:00
Joe Darcy
a06585af49 8244673: Add periods to SourceVersion.isName javadoc
Reviewed-by: jjg
2020-05-09 13:42:16 -07:00
Zhengyu Gu
8db994854f 8243478: Shenandoah: avoid implicit worker_id = 0
Reviewed-by: shade
2020-04-23 10:14:42 -04:00
Roland Westrelin
f0b37f161b 8239569: PublicMethodsTest.java failed due to NPE in java.base/java.nio.file.FileSystems.getFileSystem(FileSystems.java:230)
Reviewed-by: thartmann, kvn
2020-04-23 15:54:08 +02:00
Igor Ignatyev
e7aafcd61d 8243933: use driver mode in gc tests
Reviewed-by: kbarrett
2020-04-29 07:08:31 -07:00
Igor Ignatyev
311c9ab5ba 8244052: remove copying of s.h.WB$WhiteBoxPermission in test/jdk
Reviewed-by: dholmes, sspitsyn
2020-04-29 07:08:31 -07:00
Igor Ignatyev
d7b3692983 8243929: use @requires in serviceability/attach/AttachWithStalePidFile.java test
Reviewed-by: cjplummer
2020-04-29 07:08:31 -07:00
Magnus Ihse Bursie
354033ecc7 8244097: make bootcycle-images fails after JDK-8244036
Co-authored-by: Jie Fu <jiefu@tencent.com>
Reviewed-by: ihse, erikj
2020-04-29 21:54:57 +08:00
Denghui Dong
5bb821771e 8242792: interval < flushInterval is always false in jdk.jfr.internal.RequestEngine#setFlushInterval
Reviewed-by: egahlin
2020-04-23 15:48:55 +02:00
Per Lidén
3b9b4b2fdc 8241603: ZGC: java/lang/management/MemoryMXBean/MemoryTestZGC.sh crashes on macOS
Reviewed-by: eosterlund, clanger, mbaesken, azeller
2020-04-23 15:37:12 +02:00
Volker Simonis
2594f0b9b8 8242848: Improve performance of InflaterOutputStream.write()
Reviewed-by: stuefe, vtewari, redestad, lancea
2020-04-23 14:23:53 +02:00
Aleksey Shipilev
4f05f3f885 8243465: Shenandoah: ditch unused pause_other, conc_other counters
Reviewed-by: rkennke
2020-04-23 13:48:32 +02:00
Aleksey Shipilev
fde66512df 8243464: Shenandoah: print statistic counters in time order
Reviewed-by: rkennke
2020-04-23 13:48:23 +02:00
Aleksey Shipilev
cbdb4ba7ca 8243463: Shenandoah: ditch total_pause counters
Reviewed-by: rkennke
2020-04-23 13:48:13 +02:00
Aleksey Shipilev
b28137b093 8243460: Shenandoah: purge init_update_refs_prepare counter
Reviewed-by: rkennke
2020-04-23 13:48:07 +02:00
Christoph Langer
a7830958e3 8243117: Cleanups in Java code of module jdk.jlink
Reviewed-by: redestad, alanb
2020-04-23 11:56:45 +02:00
Chris Yin
7553c132d3 8243138: Enhance BaseLdapServer to support starttls extended request
Reviewed-by: aefimov, dfuchs
2020-04-23 16:36:05 +08:00
Serguei Spitsyn
e507405f5c 8241214: Test debugging of hidden classes using jdb
Add test and enable jdb support for hidden classes

Reviewed-by: cjplummer, amenkov, mchung, lmesnik
2020-04-23 07:46:18 +00:00
Yasumasa Suenaga
8d388381ee 8243450: Remove VMOps from jdk.hotspot.agent
Reviewed-by: cjplummer, dholmes
2020-04-23 12:14:58 +09:00
Jesper Wilhelmsson
6efcb818bc Added tag jdk-15+20 for changeset 46bca5e5e6fb 2020-04-23 05:01:23 +02:00
Chris Plummer
7f634155b5 8243210: ClhsdbScanOops fails with NullPointerException in FileMapHeader.inCopiedVtableSpace
Reviewed-by: iklam, sspitsyn
2020-04-22 15:09:32 -07:00
Zhengyu Gu
58e284c017 8243323: Shenandoah: Recycle immediate garbage before concurrent class unloading
Reviewed-by: shade
2020-04-22 17:59:59 -04:00
Zhengyu Gu
82e43b2527 8243200: Shenandoah: Allow concurrent nmethod iteration
Reviewed-by: rkennke, shade
2020-04-22 17:10:17 -04:00
Patrick Concannon
42d2a7411b 8243408: Inconsistent Exceptions are thrown by MulticastSocket when sending a DatagramPacket to port 0
This fix adds a check for port == 0 to MulticastSocket's 2-arg send method to ensure a consistent exception is thrown across platforms

Reviewed-by: dfuchs
2020-04-22 20:41:56 +01:00
Adam Farley
2785fe5621 8239365: ProcessBuilder test modifications for AIX execution
Reviewed-by: rriggs, stuefe
2020-04-22 15:37:37 -04:00
Claes Redestad
268ea904ec 8243254: Examine ZipFile slash optimization for non-ASCII compatible charsets
Reviewed-by: lancea, naoto, martin
2020-04-22 21:13:10 +02:00
Xue-Lei Andrew Fan
72446bb0dc 8242141: New System Properties to configure the TLS signature schemes
Reviewed-by: ascarpino, jnimeh, mullan
2020-04-22 10:51:16 -07:00
Bhawesh Choudhary
c1eb104fa1 8233584: [Win LAF] When navigating the contents of the file list changes in Win LAF
Reviewed-by: serb, aivanov
2020-04-22 13:43:07 +05:30
Prasanta Sadhukhan
08784f18ea 8178028: Typing 'C' cannot change the tab layout to WRAP_TAB_LAYOUT
Reviewed-by: jdv
2020-04-22 12:16:37 +05:30
Phil Race
1a7f6af1bc 8243314: Problem list java/awt/image/multiresolution/MultiresolutionIconTest.java on Windows
Reviewed-by: bpb
2020-04-21 17:03:13 -07:00
Phil Race
def1d5a8c0 8242004: TextLayout throws Exception with a non-invertible transform
Reviewed-by: serb, jdv
2020-04-20 15:19:55 -07:00
Phil Race
9ad39392db 8233006: freetype incorrectly adjusts advances when emboldening rotated glyphs
Reviewed-by: serb, jdv
2020-04-20 13:50:16 -07:00
Anton Litvinov
62a2354299 8242498: Invalid "sun.awt.TimedWindowEvent" object leads to JVM crash
Reviewed-by: prr, serb
2020-04-20 19:25:41 +01:00
Sergey Bylokhov
73e52d0690 8242174: [macos] The NestedModelessDialogTest test make the macOS unstable
Reviewed-by: prr
2020-04-20 09:35:04 -07:00
Weijun Wang
b852688c05 8237592: Enhance certificate verification
Reviewed-by: xuelei, mullan, rhalade, ahgross
2020-04-18 12:16:42 +08:00
Prasanta Sadhukhan
8b002d881d 8242526: PIT: javax/swing/JInternalFrame/8020708/bug8020708.java fails in mach5 ubuntu system
8233644: [TESTBUG] JInternalFrame test bug8020708.java is failing on macos

Reviewed-by: serb, pbansal, jdv
2020-04-17 11:29:01 +05:30
Jayathirth D V
12d93f11c0 8195841: PNGImageReader.readNullTerminatedString() doesnt check for non-null terminated strings with length equal to maxLen
Reviewed-by: serb, prr
2020-04-17 11:10:45 +05:30
Sergey Bylokhov
a11993519a 8196181: sun/java2d/GdiRendering/InsetClipping.java fails
Reviewed-by: jdv
2020-04-16 10:12:08 -07:00
Roger Riggs
34fc33074a 8234836: Improve serialization handling
Reviewed-by: chegar, rhalade, skoivu
2020-04-16 10:33:44 -04:00
Roland Westrelin
3cb0f002b3 8242502: UnexpectedDeoptimizationTest.java failed "assert(phase->type(obj)->isa_oopptr()) failed: only for oop input"
Reviewed-by: kvn, thartmann
2020-04-15 10:56:30 +02:00
Alex Menkov
19c29923a5 8241522: Manifest improved jar headers redux
Reviewed-by: sspitsyn, jwilhelm, mschoene, rhalade
2020-04-14 14:21:25 -07:00
Igor Ignatyev
5efa545d48 8242312: use reproducible random in hotspot gc tests
Reviewed-by: kbarrett, tschatzl
2020-04-14 12:50:09 -07:00
Joe Wang
d7bbb5c4a6 8242136: Better XML namespace handling
Reviewed-by: lancea, dfuchs, skoivu, rhalade, kravikumar
2020-04-14 16:29:15 +00:00
Sergey Bylokhov
74b556d666 8240290: Clean the "libawt_xawt" library from code for macOS
Reviewed-by: prr
2020-04-14 08:19:48 -07:00
Sergey Bylokhov
2d350addf7 8152332: [macosx] JFileChooser cannot be serialized on Mac OS X
Reviewed-by: pbansal, jdv
2020-04-13 23:43:37 -07:00
Kim Barrett
478773c102 8243326: Cleanup use of volatile in taskqueue code
Removed volatile on queue elements, cleaned up other uses, made atomics explicit.

Reviewed-by: tschatzl, iwalulya
2020-04-14 02:25:19 -04:00
Nikolay Martynov
313758a57a 8243489: Thread CPU Load event may contain wrong data for CPU time under certain conditions
Reviewed-by: jbachorik
2020-04-29 13:27:01 +02:00
Magnus Ihse Bursie
5bbee05c7a 8243665: exploded-image-optimize touches module-info.class in all modules
Reviewed-by: alanb
2020-04-29 13:01:40 +02:00
Matthias Baesken
46a67f4b31 8243648: Windows 32bit compile error src/jdk.incubator.jpackage/windows/native/libjpackage/VersionInfo.cpp
Reviewed-by: asemenyuk, herrick
2020-04-29 10:05:30 +02:00
Alan Bateman
fe152cdcc5 8243666: ModuleHashes attribute generated for JMOD and JAR files depends on timestamps
Reviewed-by: mchung
2020-04-29 08:38:28 +01:00
Stefan Karlsson
35af52dd4f 8244010: Simplify usages of ProcessTools.createJavaProcessBuilder in our tests
Reviewed-by: lmesnik, iignatyev, coleenp, dholmes
2020-04-29 08:52:18 +02:00
Matthias Baesken
60e2afe2d3 8243389: enhance os::pd_print_cpu_info on linux
Reviewed-by: dholmes, mdoerr
2020-04-29 08:57:40 +02:00
Magnus Ihse Bursie
0de9bbd4f3 8244044: Refactor phase makefiles to be structured per module
Reviewed-by: erikj
2020-04-29 08:55:01 +02:00
Stuart Monteith
739e8e322d 8216557: Aarch64: Add support for Concurrent Class Unloading
Co-authored-by: Andrew Haley <aph@redhat.com>
Reviewed-by: aph, eosterlund, pliden, njian
2020-04-29 14:53:48 +08:00
Magnus Ihse Bursie
408bc486e0 8244036: Refresh SetupJavaCompilation, and remove support for sjavac
Reviewed-by: erikj
2020-04-29 08:49:17 +02:00
Serguei Spitsyn
0783dd69a5 8241807: JDWP needs update for hidden classes
Introduce test coverage for hidden class events

Reviewed-by: lmesnik, amenkov
2020-04-29 06:33:10 +00:00
Igor Ignatyev
7f49c9167a 8244066: ClassFileInstaller should be run in driver mode
Reviewed-by: iklam
2020-04-28 21:59:31 -07:00
Igor Ignatyev
a9d14e1462 8243944: use SkippedException and @requires in runtime/memory/ReadFromNoaccessArea.java test
Reviewed-by: minqi
2020-04-28 21:17:32 -07:00
Igor Ignatyev
6ff66db553 8242314: use reproducible random in vmTestbase shared code
Reviewed-by: kbarrett, lmesnik
2020-04-28 20:49:28 -07:00
Mikael Vidstedt
9320f9c60a 8243634: Add pandoc dependency when building linux-aarch64 at Oracle
Reviewed-by: ihse
2020-04-28 20:36:20 -07:00
Igor Ignatyev
70e632d5ec 8243935: remove copying of s.h.WB$WhiteBoxPermission in hotspot tests
Reviewed-by: dholmes, stefank
2020-04-28 19:57:02 -07:00
Chris Plummer
6911667eb7 8243500: SA: Incorrect BCI and Line Number with jstack if the top frame is in the interpreter (BSD and Windows)
Reviewed-by: amenkov, sspitsyn
2020-04-28 13:38:45 -07:00
Chris Plummer
5d2740b524 8231634: SA stack walking fails with "illegal bci"
Reviewed-by: amenkov, sspitsyn
2020-04-28 13:35:46 -07:00
Kiran Sidhartha Ravikumar
066346ce9c 8243541: (tz) Upgrade time-zone data to tzdata2020a
Reviewed-by: naoto, martin, andrew
2020-04-28 17:31:20 +00:00
Magnus Ihse Bursie
f159234fe5 8243991: Remove obsolete -XX:ThreadStackSize from java command line
Reviewed-by: erikj
2020-04-28 20:54:06 +02:00
Igor Ignatyev
9687723c81 8243932: compiler/codecache/cli/printcodecache/TestPrintCodeCacheOption.java test can use driver mode
Reviewed-by: thartmann
2020-04-28 11:33:37 -07:00
Igor Ignatyev
9921097bd9 8243942: use SkippedException in gc/arguments/TestSmallInitialHeapWithLargePageAndNUMA.java test
Reviewed-by: kbarrett
2020-04-28 11:32:45 -07:00
Magnus Ihse Bursie
3a416b9f67 8243988: Added flexibility in build system for unusal hotspot configurations
Reviewed-by: erikj
2020-04-28 19:41:39 +02:00
Magnus Ihse Bursie
f4cb2bfd92 8244009: Separate -Xdoclint options in CompileJavaModules.gmk
Reviewed-by: erikj
2020-04-28 19:26:47 +02:00
John Paul Adrian Glaubitz
1b16192363 8243997: Linux build failed after JDK-8242244
Reviewed-by: ihse
2020-04-28 18:23:12 +02:00
Zhengyu Gu
04ae3fd603 8243848: Shenandoah: Windows build fails after JDK-8239786
Reviewed-by: rkennke, stuefe
2020-04-28 12:20:15 -04:00
Magnus Ihse Bursie
b723b94614 8244021: Hide warning from jlink about incubating modules
Reviewed-by: erikj
2020-04-28 18:12:02 +02:00
Erik Joelsson
87f0ff6c10 8243510: AbsPathsInImage.java fails on Windows
Reviewed-by: ihse, tbell
2020-04-28 08:22:28 -07:00
Harold Seigel
941643ece9 8242921: test/hotspot/jtreg/runtime/CompactStrings/TestMethodNames.java uses nashorn script engine
Put method names in a .jcod file instead of using nashorn to generate them

Reviewed-by: lfoltan, coleenp
2020-04-28 14:13:44 +00:00
Magnus Ihse Bursie
09e8b7ca4d 8243985: Make source generation by generatecharacter reproducible
Reviewed-by: naoto
2020-04-28 15:36:53 +02:00
Magnus Ihse Bursie
c03a9bc9a2 8243973: Clarify difference between JAVA_OPTIONS and VM_OPTIONS
Reviewed-by: erikj
2020-04-28 15:35:41 +02:00
Magnus Ihse Bursie
0b5f5d54f6 8243982: Fix testing documentation after JDK-8240241
Reviewed-by: erikj
2020-04-28 15:33:41 +02:00
Coleen Phillimore
3ed0849504 8243393: Improve ReservedSpace constructor resolution
Remove possibly ambiguous constructor and use directly in ReservedCodeHeap

Reviewed-by: stuefe
2020-04-28 07:35:28 -04:00
David Holmes
a8ffbb350d 8243989: test/hotspot/jtreg/serviceability/jvmti/CanGenerateAllClassHook/CanGenerateAllClassHook.java needs to use othervm
Reviewed-by: mdoerr
2020-04-28 05:53:19 -04:00
John Paul Adrian Glaubitz
1b0a423f6f 8242244: Remove redundant ELF machine definitions
Reviewed-by: dholmes
2020-04-28 11:43:00 +02:00
Rahul Yadav
184b433630 8242999: HTTP/2 client may not handle CONTINUATION frames correctly
Updated jdk.internal.net.http.Stream.incoming(Http2Frame frame) to handle continuation frame with END_HEADER flag

Reviewed-by: chegar, dfuchs
2020-04-28 10:30:27 +01:00
Anirvan Sarkar
7a937e0dde 8243567: Update download link of jtreg provided by Adoption Group
Reviewed-by: ihse
2020-04-28 11:10:33 +02:00
Jan Lahoda
65344142d3 8243000: javac only build fails after removal of Nashorn
Adjusting langtools ant build and Idea project to Nashorn removal.

Co-authored-by: Maurizio Cimadamore <maurizio.cimadamore@oracle.com>
Reviewed-by: mcimadamore, jlahoda
2020-04-28 10:43:29 +02:00
Igor Ignatyev
9cea1a5179 8243954: serviceability/logging/TestQuotedLogOutputs.java fails after 8243928
Reviewed-by: dholmes
2020-04-28 03:29:38 -04:00
Kim Barrett
538e005813 8242459: ForceNUMA and only one available NUMA node hits a guarantee
Fix some asserts to handle the single-NUMA node + ForceNUMA case.

Reviewed-by: sjohanss, tschatzl
2020-04-28 03:02:21 -04:00
Igor Ignatyev
1041efe027 8243946: serviceability/sa and jvmti tests fail after JDK-8243928
Reviewed-by: dholmes, mikael, sspitsyn
2020-04-27 22:24:54 -07:00
Serguei Spitsyn
ae9d5636f1 8243941: build issue introduced with the push of 8242237
Use right type to declare function argument

Reviewed-by: iignatyev
2020-04-28 04:46:08 +00:00
Igor Ignatyev
3a9f7648d2 8243928: several svc tests can be run in driver mode
Reviewed-by: amenkov
2020-04-27 20:06:22 -07:00
Serguei Spitsyn
223ca800cc 8242237: Improve JVM TI HiddenClasses tests
Improve JVM TI HiddenClasses test: cleanup + more comments

Reviewed-by: lmesnik, amenkov
2020-04-28 02:37:15 +00:00
Igor Ignatyev
a740f83da3 8243930: update copyright years
Reviewed-by: dholmes
2020-04-27 17:58:27 -07:00
Calvin Cheung
18c43241fb 8241815: Unnecessary calls to SystemDictionaryShared::define_shared_package
Avoid calling ClassLoaders.definePackage during loading of shared classes originated from the module image since java.lang.Package for named modules are automatically defined.

Reviewed-by: mchung, lfoltan
2020-04-28 00:09:53 +00:00
Dean Long
03f8e6ccd8 8219607: Add support in Graal and AOT for hidden class
Reviewed-by: kvn
2020-04-27 14:23:15 -07:00
Mikael Vidstedt
68b189ae8b 8243633: Remove cups dependency when building linux at Oracle
Reviewed-by: ihse, erikj, tbell
2020-04-27 14:21:19 -07:00
Naoto Sato
9697772b1f 8243664: JavaDoc of CompactNumberFormat points to wrong enum
Reviewed-by: rriggs, joehw
2020-04-27 14:03:45 -07:00
Daniil Titov
c2d3ff3bf8 8242239: [Graal] javax/management/generified/GenericTest.java fails: FAILED: queryMBeans sets same
Reviewed-by: cjplummer, sspitsyn
2020-04-27 12:48:09 -07:00
Igor Ignatyev
d84e4f1fd6 8243565: some gc tests use 'test.java.opts' and not 'test.vm.opts'
Reviewed-by: stefank
2020-04-27 10:25:29 -07:00
Igor Ignatyev
e0f46d0cb6 8243620: a few compiler/jvmci tests can be run in driver mode
Reviewed-by: thartmann
2020-04-27 09:16:39 -07:00
Igor Ignatyev
a3d14c6de5 8243622: all actions in compiler/aot/fingerprint/SelfChangedCDS.java can be run in driver mode
Reviewed-by: thartmann
2020-04-27 09:16:26 -07:00
Igor Ignatyev
a075c328e4 8243621: use SkippedException in compiler/jsr292/MHInlineTest.java test
Reviewed-by: thartmann
2020-04-27 09:16:11 -07:00
Igor Ignatyev
83a6527e44 8243619: compiler/codecache/CheckSegmentedCodeCache.java test misses -version
Reviewed-by: thartmann
2020-04-27 09:16:00 -07:00
Igor Ignatyev
9097c799f2 8243618: compiler/rtm/cli tests can be run w/o WhiteBox
Reviewed-by: thartmann
2020-04-27 09:15:47 -07:00
Igor Ignatyev
27dc913618 8243617: compiler/onSpinWait/TestOnSpinWaitC1.java test uses wrong class
Reviewed-by: thartmann
2020-04-27 09:15:34 -07:00
Roger Riggs
bdf672659c 8243010: Test support: Customizable Hex Printer
Reviewed-by: lancea, dfuchs, weijun
2020-04-16 15:45:37 -04:00
Claes Redestad
d2e0d0e06a 8243469: Lazily encode name in ZipFile.getEntryPos
Co-authored-by: Eirik Bjørsnøs <eirbjo@gmail.com>
Reviewed-by: lancea, simonis
2020-04-27 17:26:05 +02:00
Erik Gahlin
c55e7d5a4a 8242034: Remove JRE_HOME references
Reviewed-by: mbaesken
2020-04-27 15:01:22 +02:00
Erik Gahlin
0bbdcdac5a 8240783: JFR: TestClose could not finish chunk
Reviewed-by: mgronlun, mseledtsov
2020-04-27 14:29:44 +02:00
Pavel Rappo
32eb99e3e3 8243563: Doc comments cleanup
Reviewed-by: egahlin
2020-04-27 12:34:32 +01:00
Ao Qi
5d783f761f 8242846: Bring back test/jdk/tools/jlink/plugins/OrderResourcesPluginTest.java
Reviewed-by: alanb, sundar
2020-04-27 16:28:52 +05:30
Erik Gahlin
e34508cba2 8242933: jdk/jfr/api/consumer/TestHiddenMethod uses nashorn script engine
Reviewed-by: mgronlun
2020-04-27 11:32:52 +02:00
Athijegannathan Sundararajan
d07d6bd123 8243576: Remove residual reference to nashorn modules in make/CompileJavaModules.gmk
Reviewed-by: ihse
2020-04-27 14:53:07 +05:30
Martin Doerr
0e07f5a7d7 8151030: PPC64: AllocatePrefetchStyle=4 is out of range
Cleanup prefetching code and use AllocatePrefetchLines=1 by default.

Reviewed-by: goetz, mhorie, lucy
2020-04-27 10:01:04 +02:00
Bin Liao
b2db7a0c9a 8243539: Copyright info (Year) should be updated for fix of 8241638
Reviewed-by: weijun
2020-04-27 12:32:12 +08:00
Kim Barrett
7fb48971ee 8243587: Missing comma in copyright header
Added comma.

Reviewed-by: iignatyev
2020-04-26 22:28:19 -04:00
Igor Ignatyev
806566519a 8243568: serviceability/logging/TestLogRotation.java uses 'test.java.opts' and not 'test.vm.opts'
Reviewed-by: lmesnik, dholmes
2020-04-26 18:09:33 -07:00
Mikael Vidstedt
0fd64dea3d 8243591: Change to GCC 9.2 for building Linux/aarch64 at Oracle
Reviewed-by: tbell
2020-04-25 18:11:08 -07:00
Mikael Vidstedt
b0739f4683 8243590: Bump boot jdk to JDK 14 on aarch64 at Oracle
Reviewed-by: tbell
2020-04-25 18:10:45 -07:00
John Jiang
5fc5cb9f25 8243549: sun/security/ssl/CipherSuite/NamedGroupsWithCipherSuite.java failed with Unsupported signature algorithm: DSA
Reviewed-by: xuelei
2020-04-25 05:17:26 +08:00
Coleen Phillimore
f8ab03fa04 8243503: InstanceKlass::_array_name is not needed and leaks
Decrement the refcount for all Klass in class unloading.

Reviewed-by: lfoltan, hseigel
2020-04-24 16:54:28 -04:00
Zhengyu Gu
05bf8dced5 8243578: Shenandoah: Cleanup ShenandoahStringDedup::parallel_oops_do()
Reviewed-by: shade
2020-04-24 16:37:09 -04:00
Xue-Lei Andrew Fan
bfcb340606 8236464: SO_LINGER option is ignored by SSLSocket in JDK 11
Reviewed-by: ascarpino
2020-04-24 13:30:47 -07:00
Alexey Semenyuk
88f3861cb7 8236129: Exe installers have wrong properties
Reviewed-by: herrick, almatvee
2020-04-24 16:13:23 -04:00
Mandy Chung
33d9178ebd 8243574: java.lang.invoke.InvokerBytecodeGenerator.ClassData should be package-private
Reviewed-by: alanb
2020-04-24 12:59:04 -07:00
Raffaello Giulietti
e19d880581 8243575: Trivial javadoc fix of j.l.i.MethodHandles::arrayElementVarHandle
Reviewed-by: mchung
2020-04-24 12:58:44 -07:00
Hannes Wallnöfer
b4615b163c 8243562: Make display of search results consistent with color scheme
Reviewed-by: jjg
2020-04-24 21:55:48 +02:00
Jonathan Gibbons
f9b816b8f9 8242649: improve the CSS class names used for summary and details tables
Reviewed-by: hannesw
2020-04-24 09:14:51 -07:00
Daniel Fuchs
94a99ab9e5 8243246: HTTP Client sometimes gets java.io.IOException -> Invalid chunk header byte 32
The HTTP/1 chunked body parser is updated to discard chunk extensions

Reviewed-by: chegar, alanb
2020-04-24 16:54:30 +01:00
Stefan Johansson
04c6d13322 8241153: Refactor HeapRegionManager::find_unavailable_from_idx to simplify expand_at
Reviewed-by: tschatzl, sangheki
2020-04-24 14:39:20 +02:00
Tejpal Rebari
816d9483f0 8241228: Test jdk/javax/swing/UIDefaults/8146330/UIDefaultKeySizeTest.java is failing
Reviewed-by: serb, pbansal, psadhukhan
2020-04-13 17:42:05 +05:30
Prasanta Sadhukhan
efba976cfb Merge 2020-04-11 10:32:17 +05:30
Prasanta Sadhukhan
6b0b851a7c Merge 2020-04-10 11:47:09 +05:30
Stuart Monteith
ca46bba505 8241587: Aarch64: remove x86 specifics from os_linux.cpp/hpp/inline.hpp
Reviewed-by: dholmes
2020-04-10 09:41:20 +08:00
Joe Darcy
455d2e7cea 8225540: In core reflection note whether returned annotations are declaration or type annotations
Reviewed-by: alanb, prappo
2020-04-09 14:16:17 -07:00
Jim Laskey
b7d5172b89 8242472: Comment for unused PreviewFeature.Feature.TEXT_BLOCKS enum
Reviewed-by: abuckley
2020-04-09 16:32:22 -03:00
Vladimir Ivanov
1d7dee9ae4 8242289: C2: Support platform-specific node cloning in Matcher
Reviewed-by: kvn
2020-04-09 21:29:34 +03:00
Chris Plummer
e0a75ed00d 8242162: convert clhsdb "sysprops" command from javascript to java
Reviewed-by: sspitsyn, ysuenaga
2020-04-09 07:13:49 -07:00
Jim Laskey
ef8537ec1a 8241741: Implement Text Blocks as a standard feature in javac
Reviewed-by: jlahoda
2020-04-09 10:55:01 -03:00
Jim Laskey
d9bf934831 8241742: Remove the preview status for methods introduced for Text Blocks
Reviewed-by: psandoz, chegar, alanb
2020-04-09 10:55:01 -03:00
Claes Redestad
36f22938ed 8241920: G1: Lazily initialize OtherRegionsTable::_coarse_map
Reviewed-by: tschatzl, eosterlund
2020-04-09 14:59:11 +02:00
Zhengyu Gu
136450572e 8242400: Shenandoah: Restore logging to pre-jdk8241984 format
Reviewed-by: shade
2020-04-09 08:43:03 -04:00
Claes Redestad
cdfe841d3d 8242038: G1: Lazily initialize RSHashTables
Reviewed-by: kbarrett, sjohanss, tschatzl
2020-04-09 13:04:10 +02:00
Igor Ignatyev
7c351405c4 8242310: use reproducible random in hotspot compiler tests
Reviewed-by: kvn, thartmann
2020-04-08 22:58:42 -07:00
Igor Ignatyev
0eb72d4e74 8241707: introduce randomness k/w to hotspot test suite
Reviewed-by: kvn, mseledtsov
2020-04-08 22:54:35 -07:00
Chris Plummer
d1091364aa 8240990: convert clhsdb "dumpclass" command from javascript to java
Reviewed-by: sspitsyn, ysuenaga
2020-04-08 21:01:01 -07:00
Joe Wang
cd8be04b8a 8237187: Obsolete references to java.sun.com
Reviewed-by: lancea, naoto
2020-04-09 03:51:32 +00:00
Jesper Wilhelmsson
16f8c294b5 Added tag jdk-15+18 for changeset 44aef192b488 2020-04-09 05:28:47 +02:00
Jie Fu
3487361a39 8242379: [TESTBUG] compiler/loopopts/TestLoopUnswitchingLostCastDependency.java fails with release VMs
Reviewed-by: roland, kvn
2020-04-09 09:20:18 +08:00
Phil Race
3850f28ed8 8242325: Remove VIS version of medialib
Reviewed-by: serb, bpb, erikj
2020-04-08 16:55:27 -07:00
Chris Plummer
82dfec76c6 8242384: sa/TestSysProps.java failed due to "RuntimeException: Could not find property in jinfo output: [0.058s][info][cds] Archive was created with UseCompressedOops"
Reviewed-by: dcubed
2020-04-08 14:11:06 -07:00
Phil Race
64365fb908 8223090: Clean up obsolete logic & reference to Amble fonts
Reviewed-by: serb, psadhukhan
2020-04-08 13:19:12 -07:00
Leonid Mesnik
3a6249d0c7 8242295: Change ThreadMBean in vmTestbase/nsk/monitoring to ThreadMXBean
Reviewed-by: iignatyev
2020-04-08 13:14:19 -07:00
Hannes Wallnöfer
ac8d42087a 8240169: javadoc fails to link to non-modular api docs
Reviewed-by: jjg
2020-04-08 22:04:51 +02:00
Hannes Wallnöfer
cdb379e5b4 8237383: Members inherited from non-public types are not included in index
Reviewed-by: jjg
2020-04-08 21:28:14 +02:00
Chris Plummer
64957a1770 8242265: serviceability/sa/ClhsdbScanOops.java fails due to bad @requires expression
Reviewed-by: sspitsyn, lmesnik
2020-04-08 12:03:02 -07:00
Naoto Sato
62060fc278 8242337: javadoc typo in NumberFormat::setMinimumFractionDigits
Reviewed-by: lancea, martin
2020-04-08 11:40:33 -07:00
Patricio Chilano Mateo
89a33e69a7 8240918: [REDO] Allow direct handshakes without VMThread intervention
REDO of 8230594

Reviewed-by: dholmes, rehn, mdoerr, coleenp, dcubed
2020-04-08 18:32:21 +00:00
Naoto Sato
51a5e9ca3c 8242010: Upgrade IANA Language Subtag Registry to Version 2020-04-01
Reviewed-by: rriggs, joehw
2020-04-08 09:50:03 -07:00
Stefan Johansson
52ea4802f1 8241141: Restructure humongous object allocation in G1
Reviewed-by: tschatzl, kbarrett
2020-04-08 18:38:31 +02:00
Calvin Cheung
dd4e04d6f5 8242134: Consolidate the get_package_entry() in SystemDictionaryShared and ClassLoader
Keep the version in ClassLoader.

Reviewed-by: hseigel, redestad, lfoltan
2020-04-08 08:56:05 -07:00
Roger Riggs
0ffbbc821a 8242382: test/jdk/TEST.groups cleanup of sun/tools/java
Reviewed-by: lancea, dfuchs
2020-04-08 11:43:50 -04:00
Erik Österlund
a5b81d97f9 8240693: Sweeper should not examine dying metadata in is_unloading() nmethod during static call stub cleaning
Reviewed-by: kvn, coleenp, pliden
2020-04-08 15:34:56 +00:00
Erik Österlund
76a8557d0c 8241438: Move IntelJccErratum mitigation code to platform-specific code
Reviewed-by: vlivanov, kvn
2020-04-08 15:34:56 +00:00
Zhengyu Gu
6c1f8e1dc2 8242370: Enable JFR TestGCPhaseConcurrent test for Shenandoah
Reviewed-by: stefank
2020-04-08 11:33:17 -04:00
Zhengyu Gu
29b0912bc3 8242375: Shenandoah: Remove ShenandoahHeuristic::record_gc_start/end methods
Reviewed-by: shade, rkennke
2020-04-08 11:21:40 -04:00
Sergey Bylokhov
10ca487305 8239819: XToolkit: Misread of screen information memory
Reviewed-by: prr
2020-04-08 02:53:43 -07:00
Prasanta Sadhukhan
a6678d2e58 8240877: NPE at javax.swing.text.html.FormView.appendBuffer with null option values
Reviewed-by: serb
2020-04-08 16:29:03 +05:30
Sergey Bylokhov
f67e608861 8238567: SoftMainMixer.processAudioBuffers(): Wrong handling of stoppedMixers
Reviewed-by: prr
2020-04-08 02:36:04 -07:00
Sergey Bylokhov
a62b24f573 8241829: Cleanup the code for PrinterJob on windows
Reviewed-by: prr, aivanov
2020-04-08 02:03:56 -07:00
Sergey Bylokhov
84fc4850a6 7105119: [TEST_BUG] [macosx] In test UIDefaults.toString() must be called with the invokeLater()
Reviewed-by: prr, psadhukhan
2020-04-07 21:56:04 -07:00
Stuart Marks
343ecd806b 8231800: Better listing of arrays
Reviewed-by: alanb, rhalade, ahgross, igerasim
2020-04-07 13:27:55 -07:00
Sergey Bylokhov
8eb7c3efb1 8196019: java/awt/Window/Grab/GrabTest.java fails on Windows
Reviewed-by: prr, jdv
2020-04-06 20:27:40 -07:00
Chris Hegarty
0ffa6b75fd 8237117: Better ForkJoinPool behavior
Reviewed-by: dfuchs, alanb, rhalade, mullan
2020-04-03 17:20:45 +01:00
Weijun Wang
fe514a2e55 8241379: Update JCEKS support
Reviewed-by: ahgross, mullan, rhalade
2020-04-03 17:24:59 +08:00
Martin Balao
1c651455a7 8241888: Mirror jdk.security.allowNonCaAnchor system property with a security one
Reviewed-by: mullan
2020-04-02 18:18:23 -03:00
Andy Herrick
1cca0e48e0 8237490: [macos] Add support notarizing jpackage app-image and dmg
Reviewed-by: asemenyuk, almatvee
2020-04-08 09:44:53 -04:00
Roger Riggs
50ed53076f 8225319: Remove rmic from the set of supported tools
Reviewed-by: erikj, alanb, lancea, jjg, amlu
2020-04-08 09:22:08 -04:00
Adam Sotona
c2efd224ca 8239544: Javac does not respect should-stop.ifNoError policy to stop after CompileState PARSE, ENTER and PROCESS
JavaCompiler patch fixing its response to should-stop.ifNoError= option for PARSE, ENTER and PROCESS compiler states + new T8239544.java matrix regression test

Reviewed-by: jlaskey, jlahoda
2020-04-08 15:00:39 +02:00
Zhengyu Gu
9292b4002d 8241984: Shenandoah: enhance GCTimer and JFR support
Reviewed-by: rkennke
2020-04-08 08:13:22 -04:00
Aleksey Shipilev
64aee56add 8242365: Shenandoah: use uint16_t instead of jushort for liveness cache
Reviewed-by: rkennke
2020-04-08 13:44:58 +02:00
Aleksey Shipilev
7b870e70d0 8242353: Shenandoah: micro-optimize region liveness handling
Reviewed-by: rkennke
2020-04-08 13:44:57 +02:00
Pavel Rappo
4c4271f283 8242230: Whitespace typos, relaxed javadoc, formatting
Reviewed-by: darcy, igerasim
2020-04-08 11:16:56 +01:00
David M Lloyd
59684e10d1 8242356: (se) epoll Selector should use epoll_create1 instead of epoll_create
Reviewed-by: alanb, stuefe
2020-04-08 10:31:58 +01:00
Roman Kennke
343f7603e7 8242316: Shenandoah: Turn NULL-check into assert in SATB slow-path entry
Reviewed-by: zgu, shade
2020-04-08 11:26:49 +02:00
Erik Gahlin
05c26d8b65 8241828: JFR: Some streaming tests require a larger heap size with ZGC
Reviewed-by: stefank
2020-04-08 10:43:16 +02:00
Roland Westrelin
6405d75070 8241900: Loop unswitching may cause dependence on null check to be lost
Reviewed-by: thartmann, kvn
2020-04-02 15:03:27 +02:00
Jamil Nimeh
6b7a466f74 8242294: JSSE Client does not throw SSLException when an alert occurs during handshaking
Reviewed-by: xuelei
2020-04-08 00:03:56 -07:00
Nick Gasson
67fd181eb8 8242029: AArch64: skip G1 array copy pre-barrier if marking not active
Reviewed-by: aph
2020-04-08 14:03:35 +08:00
Weijun Wang
d8539a51ef 8242184: CRL generation error with RSASSA-PSS
Reviewed-by: xuelei
2020-04-08 10:13:12 +08:00
Chris Plummer
ccd2a16c58 8242165: SA sysprops support fails to dump all system properties
Reviewed-by: sspitsyn, ysuenaga
2020-04-07 18:32:55 -07:00
Chris Plummer
9fb91b4e9c 8242142: convert clhsdb "class" and "classes" commands from javascript to java
Reviewed-by: sspitsyn, amenkov
2020-04-07 16:31:46 -07:00
Liam Miller-Cushon
25642dd303 8035787: SourcePositions are wrong for Strings concatenated with '+' operator
Reviewed-by: jlahoda
2020-04-06 15:40:16 -07:00
Chris Plummer
a40ef7e41d 8242235: Disable SA testing on Solaris. Remove JDK-8193639 entries from ProblemList.txt
Reviewed-by: dcubed, amenkov
2020-04-07 13:56:53 -07:00
Roman Kennke
2b42382e7e 8242301: Shenandoah: Inline LRB runtime call
Reviewed-by: zgu
2020-04-07 22:31:18 +02:00
Jonathan Gibbons
7ac64b81ee 8241895: use new "details-list" CSS class instead of general "block-list" for list of details sections
Reviewed-by: hannesw
2020-04-07 12:41:49 -07:00
Jonathan Gibbons
8523e37f7e 8242056: Merge support for AnnotationType builders/writers into support for other types
Reviewed-by: hannesw
2020-04-07 09:50:36 -07:00
Chris Plummer
cceee2c638 8242168: ClhsdbFindPC.java failed due to "RuntimeException: 'In code in NMethod for LingeredAppWithTrivialMain.main' missing from stdout/stderr"
Reviewed-by: lmesnik, iignatyev
2020-04-07 09:36:13 -07:00
Patrick Concannon
378aef32ab 8240533: Inconsistent Exceptions are thrown by DatagramSocket and DatagramChannel when sending a DatagramPacket to port 0
Fix adds checks for port == 0 to the send and connect methods in DatagramSocket and DatagramChannelImpl

Reviewed-by: alanb, chegar, dfuchs, lancea
2020-04-07 16:21:01 +01:00
Zhengyu Gu
e53ae5ae63 8242216: ObjectSampler::weak_oops_do() should not trigger barrier
Reviewed-by: rkennke, eosterlund
2020-04-07 10:43:15 -04:00
Mikhailo Seledtsov
1a40b7931a 8241695: JFR TestCrossProcessStreaming.java child process exited with SIGQUIT (131)
Waiting for child's main() to start before attaching

Reviewed-by: egahlin
2020-04-07 07:21:41 -07:00
Lance Andersen
6351f95bc1 8242006: (zipfs) Improve Zip FS FileChannel and SeekableByteChannel test coverage
Reviewed-by: clanger
2020-04-07 09:03:05 -04:00
Aleksey Shipilev
9ba424ee57 8242267: Shenandoah: regions space needs to be aligned by os::vm_allocation_granularity()
Reviewed-by: rkennke, stuefe
2020-04-07 14:32:58 +02:00
Denghui Dong
9743ec80f1 8240360: NativeLibraryEvent has wrong library name on Linux
Reviewed-by: ysuenaga, clanger
2020-04-07 21:18:24 +09:00
Aleksey Shipilev
951cda8d1f 8242273: Shenandoah: accept either SATB or IU barriers, but not both
Reviewed-by: rkennke
2020-04-07 13:18:47 +02:00
Aleksey Shipilev
5fff119dde 8242271: Shenandoah: add test to verify GC mode unlock
Reviewed-by: rkennke
2020-04-07 13:18:46 +02:00
Egor Ushakov
76b1119f61 8241958: Slow ClassLoaderReferenceImpl.findType
Optimize ClassLoaderReferenceImpl.findType

Reviewed-by: cjplummer, sspitsyn
2020-04-07 07:24:09 +00:00
Ralf Schmelter
f5a728af03 8238289: Use _byteswap_ functions to implenent Bytes::swap_uX on Windows
Reviewed-by: minqi, dholmes
2020-04-07 09:06:01 +02:00
John Paul Adrian Glaubitz
edc4ffe54b 8199138: Add RISC-V support to Zero
Reviewed-by: erikj, stuefe
2020-04-07 08:45:01 +02:00
Lin Zang
b317d0ee39 8241638: launcher time metrics always report 1 on Linux when _JAVA_LAUNCHER_DEBUG set
Reviewed-by: alanb, dholmes
2020-04-07 03:25:11 +00:00
Alex Menkov
e18d66174a 8237572: Combine the two LingeredApp classes
Reviewed-by: cjplummer, lmesnik
2020-04-06 12:51:40 -07:00
Alexey Semenyuk
3aa216ecdf 8241713: Linux desktop shortcuts with spaces make postinst/prerm fail
Reviewed-by: almatvee, herrick
2020-04-04 07:09:52 -04:00
Aleksey Shipilev
c1016d5de2 8242229: Shenandoah: inline ShenandoahHeapRegion liveness-related methods
Reviewed-by: rkennke
2020-04-06 20:35:50 +02:00
Aleksey Shipilev
e3aae42d33 8242228: Shenandoah: remove unused ShenandoahCollectionSet methods
Reviewed-by: rkennke
2020-04-06 20:35:43 +02:00
Aleksey Shipilev
0d1e636aba 8242227: Shenandoah: transit regions to cset state when adding to collection set
Reviewed-by: rkennke
2020-04-06 20:35:36 +02:00
Aleksey Shipilev
59f28e56a2 8242213: Shenandoah: remove ShenandoahHeuristics::_bytes_in_cset
Reviewed-by: rkennke
2020-04-06 20:35:31 +02:00
Aleksey Shipilev
1d687b3525 8242212: Shenandoah: initialize ShenandoahHeuristics::_region_data eagerly
Reviewed-by: rkennke
2020-04-06 20:35:25 +02:00
Aleksey Shipilev
185f372127 8242211: Shenandoah: remove ShenandoahHeuristics::RegionData::_seqnum_last_alloc
Reviewed-by: rkennke
2020-04-06 20:35:19 +02:00
Roman Kennke
c4d01f8c8b 8242054: Shenandoah: New incremental-update mode
Reviewed-by: shade
2020-04-06 17:08:46 +02:00
Daniil Titov
ba26538cef 8241530: com/sun/jdi tests fail due to network issues on OSX 10.15
Reviewed-by: amenkov, sspitsyn
2020-04-06 07:39:58 -07:00
Roman Kennke
843a86214e 8242217: Shenandoah: Enable GC mode to be diagnostic/experimental and have a name
Reviewed-by: shade
2020-04-06 16:29:04 +02:00
Roman Kennke
ec5ccb8de3 8242130: Shenandoah: Simplify arraycopy-barrier dispatching
Reviewed-by: shade
2020-04-06 13:45:27 +02:00
Christoph Dreis
08b90285b2 8242208: Use Method.getParameterCount where applicable
Reviewed-by: redestad, chegar
2020-04-06 13:46:09 +02:00
Christoph Dreis
e9adf7bbe1 8242186: Reduce allocations in URLStreamHandler.parseURL for some cases
Reviewed-by: redestad, chegar
2020-04-06 13:44:54 +02:00
Tobias Hartmann
722a18d31e 8242090: Remove dead code from c1_LIR
Removed dead code.

Reviewed-by: redestad
2020-04-06 12:09:59 +02:00
Aleksey Shipilev
b73460b366 8242114: Shenandoah: remove ShenandoahHeapRegion::reset_alloc_metadata_to_shared
Reviewed-by: rkennke
2020-04-06 10:31:07 +02:00
Thomas Stuefe
5aed2164ea 8241726: Re-enable gtest for BitMap::count_one_bits()
Reviewed-by: mdoerr, clanger
2020-04-06 10:19:28 +02:00
Tobias Hartmann
3d36ef14b3 8241997: Scalar replacement of cloned array is broken after JDK-8238759
Replacement code still expected ArrayCopyNode::Dest to be an AddPNode.

Reviewed-by: roland, neliasso
2020-04-06 09:52:28 +02:00
Liam Miller-Cushon
4895a19dd1 8241798: Allow enums to have more constants
Reviewed-by: mcimadamore, briangoetz, forax
2020-03-28 16:15:52 -07:00
Chris Plummer
3a0a3d21d0 8184249: SA: clhsdb 'intConstant' throws a NullPointerException when not attached to a VM
Reviewed-by: amenkov
2020-04-10 14:00:49 -07:00
Roger Riggs
3cf922b3d1 8242462: Residual Cleanup of rmic removal
Reviewed-by: jjg, amlu, erikj, iignatyev, mseledtsov
2020-04-10 16:33:56 -04:00
Lance Andersen
93831d4ed2 8241883: (zipfs) SeekableByteChannel:close followed by SeekableByteChannel:close will throw an NPE coverage
Reviewed-by: clanger, alanb
2020-04-10 14:00:01 -04:00
Alex Menkov
f11d4628c1 8242282: Test sun/tools/jps/TestJps.java fails after JDK-8237572
Reviewed-by: dcubed, cjplummer
2020-04-10 10:52:26 -07:00
Joe Wang
8ace920733 8242470: Update Xerces to Version 2.12.1
Reviewed-by: lancea, naoto
2020-04-10 17:00:40 +00:00
Daniil Titov
5ad5aa49ce 8242430: Correct links in javadoc of OperatingSystemMXBean
Reviewed-by: dholmes
2020-04-10 08:46:17 -07:00
Rahul Yadav
86722cb038 8239594: jdk.tls.client.protocols is not respected
8239595: ssl context version is not respected

The java.net.HttpClient is updated to no longer override any default selected protocols in the SSLContext, in the absence of  any SSLParameters explicitly supplied to the HttpClient.builder.

Reviewed-by: chegar, dfuchs
2020-04-10 10:05:33 +01:00
Weijun Wang
502d45955f 8240848: ArrayIndexOutOfBoundsException buf for TextCallbackHandler
Reviewed-by: mullan
2020-04-10 15:05:42 +08:00
Yang Zhang
592b9a9571 8241911: AArch64: Fix a potential register clash issue in reduce_add2I
Reviewed-by: aph
2020-04-10 05:43:40 +00:00
Martin Balao
2883bccf48 8239385: KerberosTicket client name refers wrongly to sAMAccountName in AD
Reviewed-by: weijun
2020-03-28 19:41:10 -03:00
Patrick Concannon
469c13a86d 8243488: Add tests for set/get SendBufferSize and getReceiveBufferSize in DatagramSocket
Tests added for methods: setSendBufferSize(int), getSendBufferSize(), and getReceieveBufferSize() to increase test coverage in the DatagramSocket class

Reviewed-by: alanb, chegar, dfuchs
2020-05-05 18:34:39 +01:00
Fernando Guallini
cd9b2bb97f 8244444: [TESTBUG] Test for XPathEvaluationResult.XPathResultType
Reviewed-by: joehw
2020-05-05 16:59:41 +00:00
Igor Ignatyev
2163dec6c4 8243432: use reproducible random in :vmTestbase_vm_defmeth
Reviewed-by: dholmes
2020-05-05 09:54:51 -07:00
Igor Ignatyev
0b7a47665f 8243431: use reproducible random in :vmTestbase_vm_metaspace
Reviewed-by: dholmes
2020-05-05 09:54:51 -07:00
Fernando Guallini
80d280263a 8183266: [TESTBUG]Add test to cover XPathEvaluationResult.XPathResultType.getQNameType method
Reviewed-by: joehw
2020-05-05 16:35:48 +00:00
Igor Ignatyev
a899004d4e 8244384: @requires-related clean up in gc/metaspace/ tests
Reviewed-by: kbarrett, stefank
2020-05-05 09:27:24 -07:00
Igor Ignatyev
c976be69c3 8244385: various clean-ups in runtime tests
Reviewed-by: minqi
2020-05-05 09:27:22 -07:00
Zhengyu Gu
5ac755681f 8244420: Shenandoah: Ensure _disarmed_value offset < 128
Reviewed-by: rkennke
2020-05-05 12:32:40 -04:00
Anirvan Sarkar
704749a094 8244293: Remove outdated @apiNote in java.util.Objects
Reviewed-by: psandoz
2020-05-05 09:12:40 -07:00
Erik Joelsson
1a0755008d 8244214: Change to VS2019 for building on Windows at Oracle
Reviewed-by: mikael
2020-05-05 08:11:44 -07:00
Aleksey Shipilev
00e15ff4e6 8244326: Shenandoah: global statistics should not accept bogus samples
Reviewed-by: rkennke
2020-05-05 11:44:09 +02:00
Stefan Karlsson
81597d9f8f 8244078: ProcessTools executeTestJvm and createJavaProcessBuilder have inconsistent handling of test.*.opts
Reviewed-by: dholmes, cjplummer
2020-05-04 21:20:39 +02:00
Sibabrata Sahoo
a8edd11d7a 8242335: Additional Tests for RSASSA-PSS
New Tests for RSASSA-PSS

Reviewed-by: valeriep
2020-05-04 23:07:04 -07:00
Erik Gahlin
600319b68a 8244149: jdk/jfr/api/consumer/recordingstream/TestOnEvent.java times out
Reviewed-by: mgronlun
2020-05-04 23:16:44 +02:00
Leonid Mesnik
df182ea6e0 8244133: Refactor nsk/jdi tests to reduce code duplication in settingBreakpoint communication
Reviewed-by: cjplummer, sspitsyn
2020-05-04 11:40:09 -07:00
Andy Herrick
342edb4c6d 8244018: No error message for non-existent icon path
Reviewed-by: asemenyuk, almatvee
2020-05-04 13:39:46 -04:00
Andy Herrick
14ae7cf769 8242865: Usability problems using mac signing in jpackage
Reviewed-by: asemenyuk, almatvee
2020-05-03 13:50:30 -04:00
Alan Bateman
0efacb3eed 8244292: Headful clients failing with --illegal-access=deny
Reviewed-by: prr
2020-05-04 19:07:41 +01:00
Toshio Nakamura
90e8a0a3db 8243453: java --describe-module failed with non-ASCII module name under non-UTF8 environment
Reviewed-by: alanb
2020-05-04 19:01:27 +01:00
Aleksey Shipilev
e70d76d741 8244200: Shenandoah: build breakages after JDK-8241743
Reviewed-by: rkennke
2020-05-04 19:09:07 +02:00
Jorn Vernee
31041d406a 8241100: Make Boolean, Character, Byte, and Short implement Constable
Reviewed-by: jrose, briangoetz, psandoz
2020-05-04 09:41:01 -07:00
Zhengyu Gu
2d8bea8c1d 8244328: Shenandoah: move ShenandoahThreadLocalData::_disarmed_value initialization
Reviewed-by: shade
2020-05-04 10:01:25 -04:00
Stefan Johansson
cbfcae7746 8233439: G1 zero_filled optimization when committing CardCountsTable does not work
Reviewed-by: tschatzl, kbarrett
2020-05-04 15:05:38 +02:00
Alan Bateman
c7b1b1bb74 8244284: Two tests in test/hotspot/jtreg/vmTestbase fail with --illegal-access=deny
Reviewed-by: iignatyev
2020-05-04 12:45:12 +01:00
Alan Bateman
e5099daae2 8244283: test/jdk/sun/net/idn/TestStringPrep.java fails with --illegal-access=deny
Reviewed-by: chegar
2020-05-04 12:40:17 +01:00
Alan Bateman
352e460529 8244281: test/jdk/com/sun/crypto/provider/KeyProtector/IterationCount.java fails with --illegal-access=deny
Reviewed-by: weijun, xuelei
2020-05-04 12:37:58 +01:00
Jan Lahoda
4e55421171 8243548: Javac incorrectly collects enum fields when verifying switch expression exhaustivness
When gathering enum constants for exhaustivness analysis, make sure nested enum classes are not included

Reviewed-by: vromero
2020-05-04 12:28:36 +02:00
Jan Lahoda
1a35219f01 8243557: Inconvenient span for multi-catch error diagnostics
Reviewed-by: vromero
2020-05-04 12:28:35 +02:00
Christian Hagedorn
09912cc509 8244182: Use root node as default for find_node when called from debugger
Improve find_node for simpler debugging.

Reviewed-by: roland, thartmann
2020-05-04 10:27:46 +02:00
Christian Hagedorn
bbcb3b638b 8230402: Allocation of compile task fails with assert: "Leaking compilation tasks?"
Remove assert that is only hit with hand written edge case tests.

Reviewed-by: kvn, thartmann
2020-05-04 10:23:23 +02:00
Daniel D. Daugherty
57fbf93ef9 8230940: Obsolete MonitorBound
Obsolete MonitorBound option and delete associated code.

Reviewed-by: kbarrett, dholmes, redestad
2020-05-03 10:00:36 -04:00
Jie Fu
765a5b858b 8244276: Zero and minimal VM build failure after JDK-8178349 (use of undeclared identifier 'SystemDictionaryShared')
Reviewed-by: minqi, dholmes
2020-05-03 20:11:14 +08:00
Alexey Semenyuk
eee32495a1 8244220: Compiler error in jpackage with VS2019
Reviewed-by: herrick, almatvee, prr
2020-05-02 11:02:48 -04:00
Jatin Bhateja
f0f7070cb5 8244186: assertion failure test/jdk/javax/net/ssl/DTLS/RespondToRetransmit.java
Removing an assertion which prevents logic folding over cones already having a MacroLogic node.

Reviewed-by: kvn
2020-05-02 20:37:56 +05:30
Igor Ignatyev
bcf3ae8245 8244142: some hotspot/runtime tests don't check exit code of forked JVM
Reviewed-by: gziemski, minqi
2020-04-29 19:55:52 -07:00
Igor Ignatyev
47c30dbc16 8244141: use @requires and SkippedException in some hotspot/runtime tests
Reviewed-by: minqi, gziemski
2020-05-02 07:17:20 -07:00
Phil Race
e3673d4677 8238843: Enhanced font handing
Reviewed-by: serb, psadhukhan, mschoene, rhalade
2020-03-25 16:26:21 -07:00
Igor Ignatyev
1ad4834807 8203238: [TESTBUG] rewrite MemOptions shell test in Java
Reviewed-by: mseledtsov, kbarrett
2020-03-24 17:18:35 -07:00
Tobias Hartmann
0c7e01fa32 8242108: Performance regression after fix for JDK-8229496
Backed out the fix for 8229496.

Reviewed-by: kvn, roland
2020-04-22 16:22:53 +02:00
Erik Joelsson
d8d8424db9 8243109: Bootcycle build failures after Nashorn removal
Reviewed-by: ihse
2020-04-22 07:06:23 -07:00
Aleksey Shipilev
6b5fc175a1 8243395: Shenandoah: demote guarantee in ShenandoahPhaseTimings::record_workers_end
Reviewed-by: zgu
2020-04-22 15:19:52 +02:00
Aleksey Shipilev
1ba7cf7dd6 8243291: Shenandoah: no need to retire TLABs at Init Update Refs
Reviewed-by: rkennke
2020-04-22 15:19:52 +02:00
Aleksey Shipilev
91d204780d 8243301: Shenandoah: ditch ShenandoahAllowMixedAllocs
Reviewed-by: rkennke
2020-04-22 15:19:52 +02:00
Patrick Concannon
8e21a2a1e4 8237890: DatagramPacket::getSocketAddress doesn't specify what happens if address or port are not set
This fix changes the default port of a DatagramPacket from -1 to 0, which changes the behaviour of calling getSocketAddress with no port set from throwing an IAE to returning an InetSocketAddress representing any local address with port 0.

Reviewed-by: alanb, chegar, dfuchs
2020-04-22 12:34:09 +01:00
Aleksey Shipilev
ac088b4631 8243307: Shenandoah: remove ShCollectionSet::live_data
Reviewed-by: rkennke
2020-04-22 11:45:27 +02:00
Ivan Walulya
59521b0389 8209162: Page size selection does not always select optimal page size
Reviewed-by: sjohanss, tschatzl
2020-04-21 19:44:17 +02:00
Corey Ashford
d945999862 8241874: [PPC64]: Improve performance of Long.reverseBytes() and Integer.reverseBytes() on Power9
Reviewed-by: mdoerr, mhorie
2020-04-22 02:30:14 -05:00
Rahul Raghavan
0d09d682a4 8241986: The java man page erroneously refers to XEND when it should refer XTEST
Fixed typo in the man page

Reviewed-by: thartmann
2020-04-22 11:53:27 +05:30
Yang Zhang
306eeb0861 8242482: AArch64: Change parameter names of reduction operations to make code clear
Reviewed-by: aph
2020-04-22 05:19:53 +00:00
Chris Yin
61b03fbfa6 8242614: cleanup duplicated test ldap server in some com/sun/jndi/ldap/ tests
Reviewed-by: aefimov, vtewari, dfuchs
2020-04-22 09:44:10 +08:00
Vicente Romero
78a0baa57c 8241627: Updating ASM to 8.0.1 for JDK 15
Co-authored-by: Igor Ignatyev <igor.ignatyev@oracle.com>
Reviewed-by: psandoz, chegar
2020-04-21 21:25:26 -04:00
Pavel Rappo
c7ae195a03 8243318: New test jdk/javadoc/tool/8224612/OptionsTest.java is failing
Reviewed-by: jjg
2020-04-22 01:30:16 +01:00
David Buck
f8f698465d 8234691: Potential double-free in ParallelSPCleanupTask constructor
Prevent extraneous constructor call

Reviewed-by: dholmes, stefank
2020-04-21 19:52:18 -04:00
Chris Plummer
d041941e64 8242789: sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java fails with 'JShellToolProvider' missing from stdout/stderr
Reviewed-by: amenkov, sspitsyn
2020-04-21 16:13:24 -07:00
Chris Plummer
d80f55e7e9 8243206: Cleanup error checking and handling in serviceability/sa/JhsdbThreadInfoTest.ja
Reviewed-by: amenkov, sspitsyn
2020-04-21 16:11:25 -07:00
Pavel Rappo
392b75d158 8224612: javadoc should better handle empty set of doclet options
Reviewed-by: hannesw
2020-04-21 20:09:49 +01:00
Patricio Chilano Mateo
d19f5f6830 8242484: Rework thread deletion during VM termination
Always delete JavaThread that calls Thread::destroy_vm()

Reviewed-by: dholmes, rehn, coleenp
2020-04-21 17:50:48 +00:00
Lois Foltan
efa570126b 8243045: AOTCompiledMethod::print_on triggers assertion after JDK-8210012
Fix outputStream time stamp issue when AOT and -Xlog:all=trace are specified together.

Reviewed-by: coleenp, hseigel, kvn
2020-04-21 17:20:08 +00:00
Mandy Chung
1c6ca09b02 8238195: Lookup::defineClass should link the class to match the specification
Reviewed-by: alanb, chegar
2020-04-21 07:09:18 -07:00
Mandy Chung
1feb24e561 8243274: suppress warnings in LookupDefineClass microbenchmarks due to JDK-8243156
Reviewed-by: lfoltan
2020-04-21 07:08:55 -07:00
Mandy Chung
7cc1371059 8238358: Implementation of JEP 371: Hidden Classes
Co-authored-by: Lois Foltan <lois.foltan@oracle.com>
Co-authored-by: David Holmes <david.holmes@oracle.com>
Co-authored-by: Harold Seigel <harold.seigel@oracle.com>
Co-authored-by: Serguei Spitsyn <serguei.spitsyn@oracle.com>
Co-authored-by: Alex Buckley <alex.buckley@oracle.com>
Co-authored-by: Jamsheed Mohammed C M <jamsheed.c.m@oracle.com>
Co-authored-by: Jan Lahoda <jan.lahoda@oracle.com>
Co-authored-by: Amy Lu <amy.lu@oracle.com>
Reviewed-by: alanb, cjplummer, coleenp, dholmes, dlong, forax, jlahoda, psandoz, plevart, sspitsyn, vromero
2020-04-21 06:55:38 -07:00
Jim Laskey
642041adbc 8243168: Remove addition preview adornment from String::stripIndent and String::translateEscapes
Reviewed-by: chegar
2020-04-21 10:11:36 -03:00
Magnus Ihse Bursie
93032c637b 8242943: Fix all remaining unchecked warnings in jdk.hotspot.agent
Reviewed-by: darcy, sspitsyn, dholmes
2020-04-21 13:55:23 +02:00
Magnus Ihse Bursie
48569d9da0 8243156: Fix deprecation and unchecked warnings in microbenchmark
Reviewed-by: erikj, redestad
2020-04-21 13:52:32 +02:00
Stefan Karlsson
71b06ed298 8243146: Further cleanups after UseAdaptiveGCBoundary removal
Reviewed-by: kbarrett, sjohanss
2020-04-21 10:10:23 +02:00
Aleksey Shipilev
74b3243f8c 8243238: Shenandoah: explicit GC request should wait for a complete GC cycle
Reviewed-by: rkennke
2020-04-21 11:20:54 +02:00
Yang Zhang
6a905b6546 8242070: AArch64: Fix a typo introduced by JDK-8238690
Change LShiftCntV to RShiftVS in match rule of vector shift right with imm for short type.

Reviewed-by: aph
2020-04-21 04:07:37 +00:00
Yang Zhang
5a665c39c9 8242796: Fix client build failure
Reviewed-by: kvn
2020-04-21 04:02:27 +00:00
Ioi Lam
0bc7cc4d28 8241158: SA TestHeapDumpForInvokeDynamic.java fails when CDS archive is relocated
Reviewed-by: ccheung
2020-04-20 17:33:52 -07:00
Yumin Qi
7b8c373494 8240204: Optimize package handling for archived classes
ClassLoader::add_package just sets classpath_index to PackageEntry, moved the code to InstanceKlass. Also avoid calling check_prohibited_package since CDS does not archive prohibited classe in set_package.

Reviewed-by: hseigel, lfoltan, redestad, iklam
2020-04-20 16:36:15 -07:00
Vladimir Kozlov
8da1ee7833 8242357: [JVMCI] Incorrect use of JVMCI_CHECK_ on return statement
Reviewed-by: dholmes, xliu
2020-04-20 13:13:56 -07:00
Erik Joelsson
bc3ed7bdb4 8242863: Bump minimum boot jdk to JDK 14
Reviewed-by: ihse, jlahoda, dholmes
2020-04-20 10:38:16 -07:00
Severin Gehwolf
85d07da475 8243059: Build fails when --with-vendor-name contains a comma
Use $$(VERSION_CFLAGS) so as to avoid the variable getting evaluated early

Reviewed-by: ihse, erikj
2020-04-17 11:14:17 +02:00
Daniil Titov
db8757ad12 8231585: java/lang/management/ThreadMXBean/MaxDepthForThreadInfoTest.java fails with java.lang.NullPointerException
Reviewed-by: dholmes, cjplummer, sspitsyn
2020-04-20 09:24:47 -07:00
Daniel Fuchs
da1abd18db 8238270: java.net HTTP/2 client does not decrease stream count when receives 204 response
The HTTP/2 Stream is updated to register a trivial data subscriber in case of 204 so that the END_STREAM is correctly processed.

Reviewed-by: chegar
2020-04-20 13:15:45 +01:00
Magnus Ihse Bursie
e8dfd8ce54 8243154: Fix deprecation warnings in failure handler
Reviewed-by: dholmes
2020-04-20 13:37:38 +02:00
Jan Lahoda
ec1c111c6c 8243074: Misplaced and/or duplicate super or this constructor invocation not attributed
Fully attributing misplaced and/or duplicated super/this constructor invocations

Reviewed-by: mcimadamore
2020-04-20 12:36:09 +02:00
Jan Lahoda
4b6e75dc72 8243047: javac may crash when processing exits in class initializers
Flow should handle invalid exits from class initializers gracefully

Reviewed-by: vromero
2020-04-20 12:36:09 +02:00
Jan Lahoda
df82d9a4b5 8242802: javac crashes when checking equals and hashCode in unresolvable anonymous class
Preventing NullPointerException when a class has an erroneous supertype and does not have an implementation of the equals method.

Reviewed-by: darcy, vromero
2020-04-20 12:36:09 +02:00
Jan Lahoda
f08b5a8006 8241950: JShell could support auto-indent
Reviewed-by: rfield
2020-04-20 12:36:09 +02:00
Kuai Wei
f51088e261 8242449: AArch64: r27 can be allocated in CompressedOops mode
Reviewed-by: aph, xliu
2020-04-20 09:40:43 +00:00
Richard Reingruber
25cd1774a7 8242793: Incorrect copyright header in ContinuousCallSiteTargetChange.java
Reviewed-by: kvn
2020-04-15 22:02:36 +02:00
Yasumasa Suenaga
efcb6bd20e 8242425: JVMTI monitor operations should use Thread-Local Handshakes
Reviewed-by: sspitsyn, dholmes
2020-04-20 13:57:11 +09:00
Eirik Bjørsnøs
fc728278c2 8242959: Optimize ZipFile.getEntry by folding lookups for name and name+'/'
Reviewed-by: lancea, redestad
2020-04-18 20:19:45 +02:00
Claes Redestad
d185fe9953 8242452: During module definition, move conversion of packages from native to VM
8242290: Pointless verification in get_package_entry_by_name

Reviewed-by: lfoltan, iklam, hseigel
2020-04-18 19:45:45 +02:00
Kim Barrett
4d487927ad 8228991: Obsolete -XX:UseAdaptiveGCBoundary
Make option obsolete and removed supporting code.

Reviewed-by: tschatzl, stefank
2020-04-17 23:22:34 -04:00
Weijun Wang
05d6a66330 8242811: AlgorithmId::getDefaultAlgorithmParameterSpec returns incompatible PSSParameterSpec for an RSASSA-PSS key
Reviewed-by: valeriep, hchao
2020-04-18 11:13:14 +08:00
Jie Fu
f6f97ea24b 8242480: Negative value may be returned by getFreeSwapSpaceSize() in the docker
Reviewed-by: sgehwolf, dholmes
2020-04-17 14:48:11 +08:00
Chris Plummer
a4d318c92c 8242787: sun/tools/jhsdb/HeapDumpTestWithActiveProcess.java fails with sun.jvm.hotspot.types.WrongTypeException
Reviewed-by: amenkov, sspitsyn, iklam
2020-04-17 10:09:06 -07:00
Mikhailo Seledtsov
1b45bf2d58 8241975: Run jdk/jfr/event/metadata/TestLookForUntestedEvents.java in tier3
Added the test to jdk_tier3 via jdk_jfr_tier3

Reviewed-by: egahlin
2020-04-17 09:53:56 -07:00
Tom Rodriguez
12f8b52fb8 8231756: [JVMCI] need support for deoptimizing virtual byte arrays encoding non-byte primitives
Reviewed-by: kvn
2020-04-17 09:31:37 -07:00
Vladimir Ivanov
430f8020fd 8242492: C2: Remove Matcher::vector_shift_count_ideal_reg()
Reviewed-by: kvn
2020-04-17 17:59:15 +03:00
Vladimir Ivanov
078c027441 8242491: C2: assert(v2->bottom_type() == vt) failed: mismatch when creating MacroLogicV
Reviewed-by: kvn, sviswanathan, jbhateja
2020-04-17 17:58:52 +03:00
Athijegannathan Sundararajan
124caec26c 8242859: test/jdk/tools/jlink/JLinkTest.java uses nashorn module
Reviewed-by: jlaskey
2020-04-17 18:12:19 +05:30
Hai-May Chao
f04a7e5cb4 8172404: Tools should warn if weak algorithms are used before restricting them
Reviewed-by: mullan, weijun
2020-04-17 20:11:39 +08:00
Coleen Phillimore
9735678c26 8242896: typo #ifdef INCLUDE_JVMTI in codeCache.cpp
Reviewed-by: dholmes, sspitsyn
2020-04-17 07:46:17 -04:00
Athijegannathan Sundararajan
25c70b3bc3 8242860: test/jdk/tools/jlink/ModuleNamesOrderTest.java uses nashorn module
Reviewed-by: alanb
2020-04-17 15:39:21 +05:30
Claes Redestad
aeb2f9492e 8242596: Improve JarFile.getEntry performance for multi-release jar files
Co-authored-by: Eirik Bjørsnøs <eirbjo@gmail.com>
Reviewed-by: lancea, redestad
2020-04-17 11:46:59 +02:00
Matthias Baesken
07156dd25b 8242626: enhance posix print_rlimit_info
Reviewed-by: mdoerr, gziemski
2020-04-17 08:39:41 +02:00
Athijegannathan Sundararajan
b09a8ee657 8242931: Few more tests that use nashorn have been missed
Reviewed-by: dfuchs, dholmes
2020-04-17 09:50:02 +05:30
Igor Ignatyev
59563a4ca9 8240904: Screen flashes on test failures when running tests from make
Reviewed-by: erikj, serb
2020-04-16 17:42:13 -07:00
Philipp Kunz
455eaca215 8241055: Regex Grapheme Matcher Performance Depends too much on Total Input Sequence Size
Reviewed-by: naoto
2020-04-16 16:09:47 -07:00
Denghui Dong
d0f5c5c6bb 8242844: JFR: Clean up typos and log format
Fixed the typos and format

Reviewed-by: egahlin, mseledtsov
2020-04-16 15:45:17 -07:00
Zhengyu Gu
50bca089c4 8243008: Shenandoah: TestVolatilesShenandoah test failed on aarch64
Reviewed-by: shade
2020-04-16 15:57:27 -04:00
Jamsheed Mohammed C M
2ec33aa077 8237949: CTW: C1 compilation fails with "too many stack slots used"
Old bailout code is preserved with changes in comments

Reviewed-by: vlivanov
2020-04-16 10:01:14 -07:00
Alexey Semenyuk
f64a255a3a 8232935: jpackage failed with NPE whenever --file-associations provided
Reviewed-by: herrick, almatvee
2020-04-16 10:30:06 -04:00
Chris Plummer
c6c1f9bad9 8230731: SA tests fail with "Windbg Error: ReadVirtual failed
Reviewed-by: amenkov, sspitsyn
2020-04-16 07:23:26 -07:00
Sean Mullan
3efd000036 8242565: Policy initialization issues when the denyAfter constraint is enabled
Reviewed-by: weijun
2020-04-16 09:48:32 -04:00
Magnus Ihse Bursie
3cc1fdf2b6 8242808: Fix all remaining deprecation warnings in jdk.hotspot.agent
Reviewed-by: sspitsyn
2020-04-16 12:54:29 +02:00
Magnus Ihse Bursie
d295762f4c 8242804: Fix trivial deprecation issues in jdk.hotspot.agent
Reviewed-by: dholmes, erikj, darcy
2020-04-16 12:51:52 +02:00
Yudi Zheng
46963fc14f 8241234: Unify monitor enter/exit runtime entries
Reviewed-by: dcubed, coleenp
2020-04-16 10:14:25 +02:00
David Holmes
5f03df7d25 8242913: Bump the SPECIAL_FLAG_VALIDATION_BUILD to 25
Reviewed-by: shade
2020-04-16 03:29:28 -04:00
Athijegannathan Sundararajan
d5cd165965 8241749: Remove the Nashorn JavaScript Engine
Reviewed-by: jlaskey, ihse, mchung
2020-04-16 12:26:20 +05:30
Weijun Wang
dc6d76f518 8242260: Add forRemoval=true to already deprecated ContentSigner
Reviewed-by: alanb, mullan, xuelei
2020-04-16 13:47:09 +08:00
Kim Barrett
474ce89ebc 8242631: Missing but used special functions for some classes
Adjust some special function definitions to avoid deprecation warnings.

Reviewed-by: dholmes
2020-04-15 22:47:58 -04:00
Jesper Wilhelmsson
c7fd570e65 Added tag jdk-15+19 for changeset 7cc27caabe6e 2020-04-16 03:04:48 +02:00
Lois Foltan
d37985cd70 8210012: Implement Unified Logging Option for -XX:+TraceMethodHandles and -XX:+TraceInvokeDynamic
Transition the tracing method handles command line options to unified logging, -Xlog:methodhandles.

Reviewed-by: dholmes, iklam, jrose
2020-04-15 21:01:02 +00:00
Anthony Scarpino
ed18906c08 8242008: SSLSession inconsistencies
Reviewed-by: jnimeh, xuelei
2020-04-15 13:50:41 -07:00
Vipin Sharma
cc05419e1a 8242366: Fix JavaDoc warnings
Reviewed-by: dfuchs, mullan, prappo, weijun
2020-04-15 20:42:43 +01:00
Claes Redestad
941bb3bcb8 8242842: Avoid reallocating name when checking for trailing slash in ZipFile.getEntryPos
Co-authored-by: Eirik Bjørsnøs <eirbjo@gmail.com>
Reviewed-by: alanb, lancea
2020-04-15 19:03:59 +02:00
Magnus Ihse Bursie
d983fa6ca3 8242629: Remove references to deprecated java.util.Observer and Observable
Reviewed-by: erikj, cjplummer, sspitsyn
2020-04-15 09:35:27 +02:00
Kim Barrett
7bd2cd0bf8 8242597: Remove GenericTaskQueue<>::push_slow
Remove push_slow and comment invariants.

Reviewed-by: tschatzl, iwalulya
2020-04-15 03:05:30 -04:00
Magnus Ihse Bursie
b0d709cc23 8241618: Fix trivial unchecked warnings for jdk.hotspot.agent
Reviewed-by: cjplummer, sspitsyn
2020-04-15 08:58:03 +02:00
Denghui Dong
919027a90e 8242485: Null _file checking in fileStream::flush()
Reviewed-by: dholmes, ysuenaga, iklam
2020-04-14 16:37:36 +08:00
Zhengyu Gu
23709c830e 8242643: Shenandoah: split concurrent weak and strong root processing
Reviewed-by: shade
2020-04-14 21:08:15 -04:00
Zhengyu Gu
346d09e7aa 8242602: Shenandoah: allow earlier recycle of trashed regions during concurrent root processing
Reviewed-by: shade
2020-04-14 20:03:29 -04:00
Henry Jen
0278846eaa Merge 2020-04-14 23:11:49 +00:00
Valerie Peng
7bce9a9158 8172680: Support SHA-3 based Hmac algorithms
Enhanced SunJCE provider with Hmac with SHA3 digests

Reviewed-by: weijun
2020-04-14 22:31:54 +00:00
Valerie Peng
4c7d85b636 8242556: Cannot load RSASSA-PSS public key with non-null params from byte array
Update AlgorithmId to use alg name before oid str when parsing DER bytes

Reviewed-by: mullan
2020-04-14 22:12:13 +00:00
Kim Barrett
4694da31f8 8242078: G1: Improve concurrent refinement analytics and logging
Unify data collection and reporting.

Reviewed-by: tschatzl, sjohanss
2020-04-14 17:31:53 -04:00
Aleksey Shipilev
b98e863f57 8242641: Shenandoah: clear live data and update TAMS optimistically
Reviewed-by: rkennke
2020-04-14 22:18:37 +02:00
Christoph Langer
3602186430 8242039: Improve jlink VersionPropsPlugin
Reviewed-by: redestad
2020-04-14 21:43:34 +02:00
Aditya Mandaleeka
e969c158d8 8241142: Shenandoah: should not use parallel reference processing with single GC thread
Reviewed-by: shade
2020-04-14 21:17:48 +02:00
Denghui Dong
a62a0e5282 8238665: Add JFR event for direct memory statistics
Reviewed-by: egahlin, alanb
2020-04-14 20:36:33 +02:00
Hannes Wallnöfer
1cc71b41de 8241982: Make TestSearchScript.java run with GraalJS
Reviewed-by: sundar, jjg
2020-04-14 19:22:51 +02:00
Erik Joelsson
165fa2450c 8242468: VS2019 build missing vcruntime140_1.dll
Reviewed-by: tbell, ihse
2020-04-14 07:58:08 -07:00
Erik Joelsson
416f4ed7ae 8242463: ProcessTools.createNativeTestProcessBuilder() in testlib needs jdk/bin on PATH on Windows
Reviewed-by: iignatyev, mseledtsov, tbell
2020-04-14 07:54:54 -07:00
Prasadrao Koppula
aadc7c7ca8 8237474: Default SSLEngine should create in server role
Reviewed-by: xuelei, coffeys
2020-04-14 14:16:58 +00:00
Aleksey Shipilev
b812e8baff 8242638: Shenandoah: restore heap logging for uncommit
Reviewed-by: zgu
2020-04-14 15:33:01 +02:00
Aleksey Shipilev
e0ccd77617 8242625: Shenandoah: restore heap logging for Degenerated/Full cycles
Reviewed-by: rkennke, zgu
2020-04-14 15:33:00 +02:00
Stefan Johansson
b18e006b55 8242448: Change HeapRegionManager::guarantee_contiguous_range to be assert_contiguous_range
Reviewed-by: tschatzl, kbarrett
2020-04-14 15:18:22 +02:00
Magnus Ihse Bursie
5dca7ec6b7 8231572: Use -lobjc instead of -fobjc-link-runtime in libosxsecurity
Reviewed-by: erikj
2020-04-14 14:58:24 +02:00
Weijun Wang
8cd9241448 8242330: Arrays should be cloned in several JAAS Callback classes
Reviewed-by: mullan
2020-04-14 10:04:05 +08:00
Yasumasa Suenaga
d34f732b99 8242283: Can't start JVM when java home path includes non-ASCII character
Reviewed-by: naoto, hseigel
2020-04-14 09:03:38 +09:00
Chris Plummer
4a09f31eff 8237250: pmap and pstack should do a better of making it clear that they are not supported on Mac OS X
Reviewed-by: amenkov, sspitsyn
2020-04-13 16:30:11 -07:00
Stuart Marks
a46f4bfa95 8242327: List spec should state that unmodifiable lists implement RandomAccess
Reviewed-by: lancea
2020-04-13 14:37:07 -07:00
Igor Veresov
45258a1799 8236867: Enhance Graal interface handling
Reviewed-by: never, dnsimon, kvn, ahgross, rhalade
2020-03-24 08:42:32 -07:00
Evgeny Nikitin
99a6b6b848 8174768: Make ProcessTools print executed process output into a separate file
Reviewed-by: dholmes, iignatyev
2020-03-24 15:21:38 +01:00
Chris Plummer
77041dc4ec 8235220: ClhsdbScanOops.java fails with sun.jvm.hotspot.types.WrongTypeException
Reviewed-by: amenkov, iklam
2020-04-13 13:21:56 -07:00
Igor Ignatyev
c73934d8c8 8242311: use reproducible random in hotspot runtime tests
Reviewed-by: iklam, mseledtsov
2020-04-13 12:32:57 -07:00
Igor Ignatyev
116fe806c3 8242313: use reproducible random in hotspot svc tests
Reviewed-by: cjplummer
2020-04-13 12:31:34 -07:00
Igor Ignatyev
15464b36c3 8242471: remove "temporarily" restrictions of nsk/jdi/Argument/value/value004
Reviewed-by: amenkov, cjplummer
2020-04-13 12:30:07 -07:00
Serguei Spitsyn
68e0e49bc8 8242241: add assert to ClassUnloadEventImpl::className
Add assert

Reviewed-by: cjplummer, dcubed
2020-04-13 18:02:13 +00:00
Jonathan Gibbons
7a608f40fc 8242326: use new "summary-list" CSS class instead of general "block-list" for list of summary sections
Reviewed-by: hannesw
2020-04-13 10:54:12 -07:00
Brian Burkhalter
ea36a53b75 8241952: (fs) FileChannel.write(ByteBuffer src, long position) does not check for the FileChannel being closed first
Reviewed-by: lancea, alanb
2020-04-13 10:17:03 -07:00
Brian Burkhalter
447d6499f1 8242292: (fs) FileSystems.getFileSystem(URI) should throw IAE if the URI scheme is null
Reviewed-by: lancea, alanb
2020-04-13 10:16:38 -07:00
Andy Herrick
83a1d70f0f 8242155: Enhance automated macos signing tests
Reviewed-by: asemenyuk, almatvee
2020-04-10 16:21:12 -04:00
Sergey Bylokhov
0c58055bac 8240482: Improved WAV file playback
Reviewed-by: amenkov, rhalade, mschoene, prr
2020-03-23 19:57:51 -07:00
Roland Westrelin
048c5c0ddd 8241041: C2: "assert((Value(phase) == t) || (t != TypeInt::CC_GT && t != TypeInt::CC_EQ)) failed: missing Value() optimization" still happens after fix for 8239335
Reviewed-by: thartmann, neliasso
2020-03-23 10:06:33 +01:00
Matthias Baesken
fc9389c164 8241996: on linux set full relro in the linker flags
Reviewed-by: erikj, redestad
2020-04-02 09:07:07 +02:00
Xue-Lei Andrew Fan
ed00873148 8215711: Missing key_share extension for (EC)DHE key exchange should alert missing_extension
Reviewed-by: ascarpino
2020-04-05 20:17:08 -07:00
Chris Plummer
a6b990f74a 8242153: ProblemList serviceability/sa/ClhsdbDumpheap.java on OSX
Reviewed-by: dcubed
2020-04-04 09:24:23 -07:00
Per Lidén
2e4783411e 8240745: Implementation: JEP 377: ZGC: A Scalable Low-Latency Garbage Collector (Production)
Reviewed-by: stefank, eosterlund
2020-04-03 23:40:33 +02:00
Alexey Bakhtin
76d534986b 8241960: The SHA3 message digests impl of SUN provider are not thread safe after cloned
Fix sun.security.provider.SHA3 class to correctly clone its lanes field

Reviewed-by: valeriep
2020-04-03 22:39:00 +00:00
Calvin Cheung
512644de06 8240205: Avoid PackageEntry lookup when loading shared classes
Do the PackageEntry lookup at one place and then pass it along to the subsequently called functions which need it.

Reviewed-by: redestad, lfoltan
2020-04-03 14:26:42 -07:00
Chris Plummer
965404dd98 8240989: convert clhsdb "dumpheap" command from javascript to java
Reviewed-by: amenkov, ysuenaga
2020-04-03 12:58:15 -07:00
Joe Wang
acafdb3f60 8238183: SAX2StAXStreamWriter cannot deal with comments prior to the root element
Reviewed-by: naoto, lancea
2020-04-03 17:34:31 +00:00
Roman Kennke
ff34c4cdf8 8242107: Shenandoah: Fix aarch64 build after JDK-8242082
Reviewed-by: shade
2020-04-03 19:33:06 +02:00
Jaikiran Pai
59af1c2af4 8241138: http.nonProxyHosts=* causes StringIndexOutOfBoundsException in DefaultProxySelector
Reviewed-by: dfuchs, chegar
2020-03-24 15:47:51 +05:30
Claes Redestad
a309046028 8241585: Remove unused _recursion_counter facility from PerfTraceTime
8241705: Tune PerfData collections

Reviewed-by: iklam, dholmes
2020-04-03 17:20:53 +02:00
Aleksey Shipilev
fe2a82031f 8242101: Shenandoah: coalesce and parallelise heap region walks during the pauses
Reviewed-by: rkennke
2020-04-03 16:13:01 +02:00
Christoph Langer
746d28d110 8242030: Wrong package declarations in jline classes after JDK-8241598
Reviewed-by: jlahoda
2020-04-03 15:40:28 +02:00
Daniel Fuchs
f541970b31 8241786: Improve heuristic to determine default network interface on macOS
DefaultInetrface.getDefault is updated to prefer interfaces that have non link-local addresses. NetworkConfiguration is updated to skip interface that have only link-local addresses, whether IPv4 or IPv6, for multicasting.

Reviewed-by: chegar, alanb
2020-04-03 14:27:03 +01:00
Roman Kennke
553ea1e891 8242082: Shenandoah: Purge Traversal mode
Reviewed-by: shade
2020-04-03 15:06:08 +02:00
Aleksey Shipilev
c09b0a7793 8242089: Shenandoah: per-worker stats should be summed up, not averaged
Reviewed-by: rkennke
2020-04-03 13:58:38 +02:00
Aleksey Shipilev
21d5f88f40 8242083: Shenandoah: split "Prepare Evacuation" tracking into cset/freeset counters
Reviewed-by: rkennke
2020-04-03 13:58:32 +02:00
Matthias Baesken
218d0f71cf 8242000: clean up list of environment variables printed in hs_err file
Reviewed-by: redestad, stuefe
2020-04-02 12:44:05 +02:00
Aleksey Shipilev
cd76575df1 8242075: Shenandoah: rename ShenandoahHeapRegionSize flag
Reviewed-by: rkennke
2020-04-03 11:33:31 +02:00
Aleksey Shipilev
62b7404bd9 8242042: Shenandoah: tune down ShenandoahGarbageThreshold
Reviewed-by: rkennke
2020-04-03 11:33:30 +02:00
Aleksey Shipilev
f82e44cc40 8242073: x86_32 build failure after JDK-8241040
Reviewed-by: vlivanov
2020-04-03 11:33:29 +02:00
Pengfei Li
a21c4fb0a6 8241475: AArch64: Add missing support for PopCountVI node
Reviewed-by: aph, njian
2020-04-03 17:06:14 +08:00
Man Cao
934b8a9849 8241556: Memory leak if -XX:CompileCommand is set
Reviewed-by: rasbold, thartmann, neliasso
2020-04-03 02:00:34 -07:00
Chris Hegarty
9a69bb807b 8242044: Add basic HTTP/1.1 support to the HTTP/2 Test Server
Reviewed-by: dfuchs, michaelm
2020-04-03 07:27:53 +01:00
Chris Hegarty
61940fe4ce 8241988: DatagramSocket incorrectly caches the first set of socket options
Reviewed-by: msheppar, dfuchs, alanb
2020-04-03 07:16:35 +01:00
Leonid Mesnik
a76f0f78ad 8241456: ThreadRunner shouldn't use Wicket for threads starting synchronization
Reviewed-by: dholmes, iignatyev
2020-04-02 17:30:21 -07:00
David Holmes
cf22d4440a 8239895: assert(_stack_base != 0LL) failed: Sanity check
Reviewed-by: dcubed, stuefe
2020-04-02 19:13:27 -04:00
Stefan Johansson
80b8644499 8241670: Enhance heap region size ergonomics to improve OOTB performance
Reviewed-by: redestad, tschatzl
2020-04-02 21:33:57 +02:00
Tom Rodriguez
3ae56fdf10 8191930: [Graal] emits unparseable XML into compile log
Reviewed-by: kvn
2020-04-02 11:20:53 -07:00
Aleksey Shipilev
487070cc09 8242041: Shenandoah: adaptive heuristics should account evac reserve in free target
Reviewed-by: rkennke
2020-04-02 20:11:01 +02:00
Aleksey Shipilev
6570425dc4 8242040: Shenandoah: print allocation failure type
Reviewed-by: rkennke
2020-04-02 20:10:59 +02:00
Jatin Bhateja
5532b27d22 8241040: Support for AVX-512 Ternary Logic Instruction
A new pass has been added which folds expression tree involving vector boolean logic operations into a MacroLogic node.

Reviewed-by: vlivanov, neliasso
2020-04-02 22:38:23 +05:30
Claes Redestad
fb56759d08 8242027: Clean up LinkResolver::check_klass_accessability
Reviewed-by: dholmes
2020-04-02 18:22:27 +02:00
Roland Westrelin
ea56776ef5 8239072: subtype check macro node causes node budget to be exhausted
Reviewed-by: vlivanov, kvn
2020-03-31 10:40:17 +02:00
Roland Westrelin
73ddea766a 8241492: Strip mining not working for test/hotspot/jtreg/compiler/c2/Test6850611.java
Reviewed-by: mdoerr, thartmann, neliasso
2020-03-24 17:56:15 +01:00
Chris Hegarty
c6b22388b7 8241921: Remove leftover diagnostic from test/jdk/java/io/Serializable/records/SerialPersistentFieldsTest.java
Reviewed-by: lancea
2020-04-02 12:33:53 +01:00
Christoph Langer
15fcf27414 8241947: Minor comment fixes for system property handling
Reviewed-by: ihse, mchung, alanb
2020-04-02 13:06:29 +02:00
Stefan Karlsson
2718bcd0c7 8242031: TestLookForUntestedEvents.java fails because newly added test tests experimental events
Reviewed-by: eosterlund, pliden
2020-04-02 12:52:24 +02:00
Tagir F. Valeev
0386b7d0c3 8176894: Provide specialized implementation for default methods putIfAbsent, computeIfAbsent, computeIfPresent, compute, merge in TreeMap
Co-authored-by: Sergey Kuksenko <sergey.kuksenko@oracle.com>
Reviewed-by: martin, stuefe, rriggs
2020-04-02 05:44:04 +00:00
Ivan Gerasimov
3790e58090 8241761: Typos: empty lines in javadoc, inconsistent indents, etc. (security-libs only)
Reviewed-by: weijun
2020-04-01 18:38:05 -07:00
Jesper Wilhelmsson
cc25927f2d Added tag jdk-15+17 for changeset dd5198db2e5b 2020-04-02 03:04:26 +02:00
Leonid Mesnik
13af7bb9ad 8240698: LingeredApp does not pass getTestJavaOpts() to the children process if vmArguments is already specified
Reviewed-by: iignatyev, iklam, cjplummer
2020-04-01 16:27:03 -07:00
Claes Redestad
e08f25a942 8242003: Remove CallInfo::_selected_klass
Reviewed-by: lfoltan, dcubed, coleenp
2020-04-01 20:53:46 +02:00
Aleksey Shipilev
25b2118bb4 8241983: Shenandoah: simplify FreeSet logging
Reviewed-by: rkennke
2020-04-01 19:50:12 +02:00
Aleksey Shipilev
961c1d6a66 8241985: Shenandoah: simplify collectable garbage logging
Reviewed-by: rkennke
2020-04-01 19:50:11 +02:00
Aleksey Shipilev
6af855fd97 8241926: Shenandoah: only print heap changes for operations that directly affect it
Reviewed-by: rkennke
2020-04-01 19:50:10 +02:00
Matthias Baesken
fc806b6706 8241948: enhance list of environment variables printed in hs_err file
Reviewed-by: dholmes, hseigel
2020-03-31 17:11:30 +02:00
Lutz Schmidt
15c3d76a49 8241101: [s390] jtreg test failure after JDK-8238696: not conformant features string
Reviewed-by: stuefe, mdoerr, clanger
2020-04-01 14:51:25 +02:00
Robbin Ehn
bf41f548e1 8220051: Remove global safepoint code
Reviewed-by: mdoerr, dcubed, eosterlund, bulasevich, coleenp
2020-04-01 14:54:44 +02:00
Claes Redestad
8d84cf5a3b 8241837: Cleanup stringStream usage in ObjectSynchronizer
Reviewed-by: dcubed, dholmes
2020-04-01 14:35:43 +02:00
Per Lidén
6c9d6507da 8241881: ZGC: Add tests for JFR events
Reviewed-by: stefank, eosterlund, egahlin
2020-04-01 13:44:12 +02:00
Jan Lahoda
f1ef83b02e 8241598: Upgrade JLine to 3.14.0
Upgrading to JLine 3.14.0

Reviewed-by: psandoz, rfield
2020-04-01 13:12:49 +02:00
Stefan Karlsson
c8b1f966cb 8241976: Add test for GCPhaseConcurrentLevel1 JFR event
Reviewed-by: pliden, eosterlund
2020-04-01 12:37:38 +02:00
Tobias Hartmann
990a11e421 8241909: Remove useless code cache lookup in frame::patch_pc
Removed useless code cache lookup.

Reviewed-by: kvn, dlong
2020-04-01 10:06:25 +02:00
Mandy Chung
5700a934bb 8241964: Clean up java.lang.Class javadoc
Reviewed-by: darcy
2020-03-31 19:18:16 -07:00
Chris Yin
aba017fa70 8214694: cleanup rawtypes warnings in open jndi tests
Reviewed-by: darcy, vtewari
2020-04-01 10:11:46 +08:00
Jonathan Gibbons
35f4df51d4 8241625: use new "member-list" CSS class instead of general "block-list" for list of members
Reviewed-by: hannesw
2020-03-31 14:47:07 -07:00
Martin Buchholz
6d44ff7d93 8186780: clang fastdebug assertion failure in os_linux_x86:os::verify_stack_alignment()
Reviewed-by: jiangli
2020-03-31 14:15:44 -07:00
Jonathan Gibbons
8cb3cc01f1 8241693: The paragraphs in the help page should not be in a <ul>
Reviewed-by: hannesw
2020-03-31 13:47:16 -07:00
Leonid Mesnik
931af1260c 8241478: vmTestbase/gc/gctests/Steal/steal001/steal001.java fails with OOME
Reviewed-by: tschatzl, kbarrett
2020-03-31 13:35:21 -07:00
Claes Redestad
b31bea8a99 8241830: Simplify commit error messages in G1PageBasedVirtualSpace
Reviewed-by: sjohanss, lkorinth, kbarrett
2020-03-31 16:09:26 +02:00
Stefan Karlsson
8fdf2925d1 8241827: JFR: TestVMInfoEvent.java requires SerialGC
Reviewed-by: mseledtsov
2020-03-31 14:57:46 +02:00
Magnus Ihse Bursie
75849a5ca0 8241421: Cleanup handling of jtreg
Reviewed-by: erikj
2020-03-31 14:58:18 +02:00
Stefan Karlsson
16df851efd 8241160: Concurrent class unloading reports GCTraceTime events as JFR pause sub-phase events
Reviewed-by: eosterlund, kbarrett
2020-03-18 17:28:41 +01:00
Ravi Reddy
4b4633d976 8240988: Incorrect copyright header in CertificateValidation.java
Reviewed-by: pkoppula, coffeys
2020-03-31 14:07:23 +03:00
Stefan Johansson
6a4e93bbc9 8241666: Enhance log messages in ReferenceProcessor
Reviewed-by: tschatzl, sangheki
2020-03-31 11:45:29 +02:00
Christoph Langer
2bc8691156 8241568: (fs) UserPrincipalLookupService.lookupXXX failure with IOE "Operation not permitted"
Reviewed-by: alanb
2020-03-31 09:10:16 +02:00
Aleksey Shipilev
de7ea8db92 8241845: Shenandoah: align ShenandoahHeapRegions to cache lines
Reviewed-by: rkennke
2020-03-31 08:42:00 +02:00
Claes Redestad
83a9afaff1 8241852: Cleanup error message generation in LinkResolver::resolve_field
Reviewed-by: dcubed
2020-03-30 23:55:25 +02:00
Ivan Gerasimov
53b2368d49 8241760: Typos: empty lines in javadoc, inconsistent indents, etc. (net and nio)
Reviewed-by: alanb, prappo, dfuchs
2020-03-30 13:59:16 -07:00
Joe Darcy
916f00acc1 8241374: add Math.absExact
Reviewed-by: smarks, chegar, bpb
2020-03-30 13:49:02 -07:00
Stefan Karlsson
b7439a8ae3 8241361: ZGC: Implement memory related JFR events
Co-authored-by: Per Liden <per.liden@oracle.com>
Reviewed-by: pliden, eosterlund
2020-03-27 15:28:07 +01:00
Aleksey Shipilev
6df2370120 8241844: Shenandoah: rename ShenandoahHeapRegion::region_number
Reviewed-by: rkennke
2020-03-30 19:38:31 +02:00
Aleksey Shipilev
87396af743 8241842: Shenandoah: inline ShenandoahHeapRegion::region_number
Reviewed-by: rkennke
2020-03-30 19:38:05 +02:00
Aleksey Shipilev
a8a9fb95e1 8241841: Shenandoah: ditch one of allocation type counters in ShenandoahHeapRegion
Reviewed-by: rkennke
2020-03-30 19:37:37 +02:00
Aleksey Shipilev
af15605bab 8241838: Shenandoah: no need to trash cset during final mark
Reviewed-by: rkennke
2020-03-30 19:37:23 +02:00
Andrew Dinn
8cb7635372 8241665: Configuring --with-jvm-features=-compiler2 fails to build on AArch64
Build config --with-jvm-features=-compiler2 fails on AArch64 because JVMCI path includes opto and ad headers

Reviewed-by: kvn, aph
2020-03-26 15:26:51 +00:00
Ivan Gerasimov
b0e1ee4b3b 8241727: Typos: empty lines in javadoc, inconsistent indents, etc. (core-libs only)
Reviewed-by: prappo
2020-03-28 21:07:55 -07:00
Toshio Nakamura
7f8d785086 8232846: ProcessHandle.Info command with non-English shows question marks
Reviewed-by: stuefe, ysuenaga, rriggs
2020-03-28 16:47:21 -04:00
Claes Redestad
253ccad50a 8241771: Remove dead code in SparsePRT
Reviewed-by: sjohanss, tschatzl
2020-03-28 21:08:32 +01:00
Joe Darcy
98e6be7cc2 8241789: Make citations of JLS and JVMS consistent in java.lang.Class
Reviewed-by: jjg
2020-03-28 13:01:26 -07:00
Zhengyu Gu
6b6c5bd622 8241765: Shenandoah: AARCH64 need to save/restore call clobbered registers before calling keepalive barrier
Reviewed-by: rkennke, smonteith, aph
2020-03-28 11:00:09 -04:00
Mikael Vidstedt
fee15cac0c 8241721: Change to GCC 9.2 for building on Linux at Oracle
Reviewed-by: erikj
2020-03-27 12:50:11 -07:00
Jonathan Gibbons
ccc699600f 8241631: PropertyGetterTaglet, PropertySetterTaglet may be removed
Reviewed-by: hannesw
2020-03-27 11:24:40 -07:00
Weijun Wang
6ac3892e16 8238804: Enhance key handling process
Reviewed-by: rriggs, mullan, ahgross, rhalade
2020-03-18 13:35:16 +08:00
Brian Burkhalter
c90e523e0a 8238920: Better Buffer support
Reviewed-by: alanb, ahgross, rhalade, psandoz
2020-03-17 14:05:19 -07:00
Phil Race
800f133a29 8240119: Less Affine Transformations
Reviewed-by: serb, bpb, mschoene, rhalade
2020-03-17 13:46:19 -07:00
Sergey Bylokhov
45cace2867 8238925: Enhance WAV file playback
Reviewed-by: prr, amenkov, rhalade, mschoene
2020-03-10 07:07:09 +01:00
Xue-Lei Andrew Fan
8fdbb29079 8236191: Enhance OID processing
Reviewed-by: jnimeh, weijun, ahgross, rhalade
2020-03-05 14:59:34 -08:00
Aleksei Efimov
fa3d79c2f8 8230613: Better ASCII conversions
Reviewed-by: dfuchs, naoto, mschoene, rhalade
2020-02-28 14:24:39 +00:00
Bob Vandette
c17ed6a5e5 8239563: Reduce public exports in dynamic libraries built from JDK static libraries
Reviewed-by: dholmes, ihse
2020-02-27 11:36:55 -05:00
Aleksey Shipilev
9e9f110d05 8241750: x86_32 build failure after JDK-8227269
Reviewed-by: rkennke, cjplummer
2020-03-27 19:05:07 +01:00
Jamsheed Mohammed C M
211e529373 8193210: [JVMCI/Graal] add JFR compiler phase/inlining events
C++ EventCompilerPhase/EventCompilerInlining definitions are extended for JVMCI use.

Reviewed-by: dnsimon, egahlin, kvn, mgronlun, thartmann
2020-03-27 09:47:13 -07:00
Andy Herrick
bfa3ad9108 8241400: [macos] jpackageapplauncher/main.m built using CXXFLAGS_JDKEXE
Reviewed-by: erikj
2020-03-27 11:43:23 -04:00
Aleksey Shipilev
6e580b3847 8241748: Shenandoah: inline MarkingContext TAMS methods
Reviewed-by: rkennke
2020-03-27 15:33:24 +01:00
Aleksey Shipilev
92d854f5e1 8241740: Shenandoah: remove ShenandoahHeapRegion::_heap
Reviewed-by: rkennke
2020-03-27 15:33:18 +01:00
Aleksey Shipilev
0861f3f796 8241743: Shenandoah: refactor and inline ShenandoahHeap::heap()
Reviewed-by: rkennke
2020-03-27 15:33:11 +01:00
Aleksey Shipilev
7056b96854 8241692: Shenandoah: remove ShenandoahHeapRegion::_reserved
Reviewed-by: zgu, rkennke
2020-03-27 15:33:05 +01:00
Matthias Baesken
a45889dc5e 8241660: Add virtualization information output to hs_err file on macOS
Reviewed-by: clanger, mdoerr
2020-03-26 10:38:17 +01:00
Daniel Fuchs
5ddbcb7a51 8241336: Some java.net tests failed with NoRouteToHostException on MacOS with special network configuration
NetworkConfiguration updated to skip interfaces that have only IPv6 link local addresses.

Reviewed-by: alanb, chegar
2020-03-27 12:42:03 +00:00
Roman Kennke
bb7a8f643f 8241700: Shenandoah: Fold ShenandoahKeepAliveBarrier flag into ShenandoahSATBBarrier
Reviewed-by: shade
2020-03-27 12:47:36 +01:00
Vladimir Ivanov
2df18266b9 8241597: x86: Remove MMX support
Reviewed-by: kvn, redestad
2020-03-27 13:42:57 +03:00
Vladimir Ivanov
d0a672292f 8241434: x86: Fix Assembler::emit_operand asserts for XMM registers
Reviewed-by: kvn, redestad
2020-03-27 13:42:57 +03:00
Vladimir Ivanov
536e062a56 8241436: C2: Factor out C2-specific code from MacroAssembler
Reviewed-by: mdoerr, kvn, adinn
2020-03-27 13:42:57 +03:00
Patric Hedlin
195c45a0e1 8245226: Clean-up FlagSetting and remove misuse
Reviewed-by: neliasso, dholmes
2020-02-24 14:06:01 +01:00
Erik Gahlin
30bc2b7ca1 8248997: JFR: Improve javadoc for @Name
Reviewed-by: mgronlun
2020-07-14 05:10:46 +02:00
Alexander Matveev
49002194fb 8249264: Build validate-headers task fails after JDK-8248261
Reviewed-by: herrick
2020-07-13 17:52:35 -07:00
Vladimir Kozlov
c4f835b3a7 8249165: Remove unneeded nops introduced by 8234160 changes
Check for branch instruction at the end of code block

Reviewed-by: vlivanov
2020-07-13 16:41:01 -07:00
Daniel D. Daugherty
7436ef236e 8246476: remove AsyncDeflateIdleMonitors option and the safepoint based deflation mechanism
Reviewed-by: dholmes, pchilanomate, coleenp
2020-07-13 16:36:01 -04:00
Alexander Matveev
231a8408b2 8248261: Add timestamps to jpackage and jpackage tests verbose output
Reviewed-by: herrick, asemenyuk
2020-07-13 12:04:58 -07:00
Joe Wang
8f8ff52cae 8248486: SafeThread illegal access to java.lang private fields should be removed
Reviewed-by: chegar, rriggs, mchung, alanb
2020-07-13 18:19:02 +00:00
Andy Herrick
83a458c5f7 8247779: Remove deprecated --bind-services option from jpackage
Reviewed-by: asemenyuk, almatvee
2020-07-13 12:04:40 -04:00
Calvin Cheung
5146474954 8246308: Reference count for PackageEntry::name may be incorrectly decremented
Corrected the usage of TempNewSymbol.

Reviewed-by: minqi, iklam
2020-07-13 16:05:25 +00:00
Erik Joelsson
097720cce5 8249195: Change to Xcode 11.3.1 for building on Macos at Oracle
Reviewed-by: ihse
2020-07-13 07:52:59 -07:00
Vladimir Ivanov
a14490dd16 8247502: PhaseStringOpts crashes while optimising effectively dead code
Reviewed-by: kvn, thartmann
2020-07-13 16:44:13 +03:00
Erik Gahlin
deddbe5a85 8248988: JFR: Split up TestThreadStartEndEvents.java
Reviewed-by: mgronlun
2020-07-13 13:17:43 +02:00
Aleksey Shipilev
f613d43f26 8249230: Shenandoah: assertion failure with -XX:-ResizeTLAB
Reviewed-by: rkennke
2020-07-13 11:55:26 +02:00
Richard Reingruber
870e67d520 8247695: PPC/S390: compiler/intrinsics/math/TestFpMinMaxIntrinsics.java fails
Reviewed-by: goetz, lucy
2020-07-13 10:33:14 +02:00
Aleksey Shipilev
2d3c928f0b 8249137: Remove CollectedHeap::obj_size
Reviewed-by: rkennke, tschatzl, cjplummer
2020-07-13 07:39:39 +02:00
Yasumasa Suenaga
faf4d7ccb7 8242428: JVMTI thread operations should use Thread-Local Handshake
Reviewed-by: dcubed, sspitsyn, dholmes
2020-07-11 23:28:02 +09:00
Mikael Vidstedt
09510a15a1 Merge 2020-07-10 23:12:29 -07:00
Zhengyu Gu
086124845f 8247670: Shenandoah: deadlock during class unloading OOME
Reviewed-by: rkennke
2020-07-10 11:40:57 -04:00
Frederic Parain
985061ac28 8249149: Remove obsolete UseNewFieldLayout option and associated code
Reviewed-by: hseigel, iklam
2020-07-10 09:13:03 -04:00
Aleksey Shipilev
0a38584c10 8248652: Shenandoah: SATB buffer handling may assume no forwarded objects
Reviewed-by: rkennke
2020-07-10 10:37:12 +02:00
Jesper Wilhelmsson
d3d29a4f82 Merge 2020-07-10 02:51:04 +02:00
Joe Darcy
5c76194ae9 8248983: Add links to definition of empty name
Reviewed-by: forax, jjg, jlaskey
2020-07-09 16:06:09 -07:00
Zhengyu Gu
9bac33fbc6 8248426: NMT: VirtualMemoryTracker::split_reserved_region() does not properly update summary counting
Reviewed-by: stuefe, minqi
2020-07-09 13:34:24 -04:00
Andrew Haley
97b948a9b2 8248336: AArch64: C2: offset overflow in BoxLockNode::emit
Reviewed-by: adinn
2020-06-25 12:24:50 -04:00
Thomas Schatzl
6b911624f2 8210462: Fix remaining mentions of initial mark
Reviewed-by: lkorinth, kbarrett
2020-07-09 16:22:23 +02:00
Thomas Schatzl
59e3ebb4a5 8248322: G1: Refactor full collection sizing code
Reviewed-by: iwalulya, kbarrett
2020-07-09 16:22:22 +02:00
Bob Vandette
65b23ca67a 8249080: Reduce MemberName class dependency on MethodHandles
Reviewed-by: mchung
2020-07-08 19:59:22 +00:00
Aleksey Shipilev
f4f094021c 8249141: Fix indent in java_lang_Record definition in vmSymbols.hpp
Reviewed-by: dholmes
2020-07-09 12:26:10 +02:00
Andrew Haley
6a91c73dda 8248403: AArch64: Remove uses of kernel integer types
Reviewed-by: kbarrett, dholmes
2020-07-09 05:30:22 -04:00
Koichi Sakata
ed31b661d3 8247818: GCC 10 warning stringop-overflow with symbol code
Reviewed-by: kbarrett, iklam
2020-07-08 11:39:11 -07:00
Jesper Wilhelmsson
3dcd1c1ab0 Merge 2020-07-09 04:32:30 +02:00
Jesper Wilhelmsson
11ba454f39 Added tag jdk-16+5 for changeset 143e258f64af 2020-07-09 04:10:33 +02:00
Weijun Wang
fc1b24e4e8 8243592: Subject$SecureSet::addAll should not call contains(null)
Reviewed-by: mullan
2020-07-09 09:22:01 +08:00
Vladimir Kozlov
e2353cc324 8248987: AOT's Linker.java seems to eagerly fail-fast on Windows
Treat all problems in getVC141AndNewerLinker() as non-fatal. Print error messages with --verbose flag.

Reviewed-by: iignatyev, iveresov
2020-07-08 15:46:02 -07:00
Leonid Mesnik
dfe381ae08 8248658: Remove vmTestbase/vm/share/vmcrasher
Reviewed-by: cjplummer, sspitsyn
2020-07-08 12:11:06 -07:00
Erik Gahlin
4d2b0b53b4 8248016: JFR: Remove Javadoc warnings
Reviewed-by: mgronlun
2020-07-08 17:37:27 +02:00
Andrew Leonard
0853b33004 8248701: On Windows generated modules-deps.gmk can contain backslash-r (CR) characters
Reviewed-by: erikj
2020-07-08 03:08:30 -07:00
Daniel Fuchs
d308558d4f 8248865: Document JNDI/LDAP timeout properties
Documentation added in the module-info of java.naming

Reviewed-by: chegar, aefimov, mullan
2020-07-08 15:16:47 +01:00
Andrew Leonard
d42f541dc3 8248231: deserializeLambda created with wrong encoding if platform encoding not UTF-8
Reviewed-by: vromero
2020-07-08 09:23:59 -04:00
Patric Hedlin
1d5ec8f363 8247762: [aarch64] Timeout in .../HeapDumpTestWithActiveProcess.java due to inf. loop in AARCH64CurrentFrameGuess.run()
Reviewed-by: cjplummer, aph
2020-06-17 19:53:48 +02:00
Ioi Lam
d7b097f117 8244764: Improve assertion for CPP_VTABLE_PATCH_TYPES_DO
Reviewed-by: lfoltan, coleenp
2020-07-07 23:11:13 -07:00
Chris Plummer
eeb4b15f06 8249002: New serviceability/sa/ClhsdbFindPC.java #id2 and #id3 tests are failing with ZGC
Reviewed-by: iignatyev
2020-07-07 19:17:47 -07:00
Alexander Matveev
ed05d57603 8223955: Eliminate or reduce mixing of old File API and new Path/Files APIs
Reviewed-by: herrick, asemenyuk
2020-07-07 16:08:29 -07:00
Jesper Wilhelmsson
c782d0e486 Merge 2020-07-07 23:42:50 +02:00
Chris Plummer
db2d4e8f5a 8248194: Need better support for running SA tests on core files
Reviewed-by: amenkov, lmesnik
2020-07-07 13:07:53 -07:00
Daniil Titov
f243b281ea 8205467: javax/management/remote/mandatory/connection/MultiThreadDeadLockTest.java possible deadlock
Reviewed-by: phh
2020-07-07 10:27:47 -07:00
Daniil Titov
50e18e29e3 8227337: javax/management/remote/mandatory/connection/ReconnectTest.java NoSuchObjectException no such object in table
Reviewed-by: phh
2020-07-07 10:18:53 -07:00
Christian Hagedorn
a6cf325152 8248226: TestCloneAccessStressGCM fails with -XX:-ReduceBulkZeroing
Taking GC barriers into account in LoadNode::find_previous_arraycopy() when ReduceInitialCardMarks is disabled.

Reviewed-by: kvn, roland
2020-07-07 13:00:46 +02:00
Boris Ulasevich
584e983c38 8248568: compiler/c2/TestBit.java failed: test missing from stdout/stderr
Reviewed-by: kvn
2020-07-07 06:20:03 -04:00
Kelvin Nilsen
c5bb023584 8232782: Shenandoah: streamline post-LRB CAS barrier (aarch64)
Reviewed-by: rkennke
2020-07-07 11:35:14 +02:00
Patric Hedlin
485194c1a7 8245021: Adding method 'remove_if_existing' to growableArray
Reviewed-by: thartmann, neliasso
2020-04-21 10:35:53 +02:00
Ioi Lam
3d1b1a6bc9 8248170: Excessive include of compiledMethod, codeCache, javaClasses and systemDictionary
Reviewed-by: dholmes, kvn, coleenp, stefank
2020-07-06 23:11:37 -07:00
Jesper Wilhelmsson
e58423796e Merge 2020-07-07 03:12:11 +02:00
Ioi Lam
8170244a81 8248886: InstanceKlass::initialize_impl crashes with -XX:-UsePerfData after JDK-8246019
Reviewed-by: ccheung
2020-07-06 17:52:52 -07:00
Toshio Nakamura
28e219f038 8233829: javac cannot find non-ASCII module name under non-UTF8 environment
Reviewed-by: jjg
2020-07-06 16:08:00 -07:00
Ioi Lam
2e09a58f64 8246019: PerfClassTraceTime slows down VM start-up
Reviewed-by: dholmes, redestad, minqi, ccheung
2020-07-06 15:14:44 -07:00
Boris Ulasevich
6d137a3616 8248043: Need to eliminate excessive i2l conversions
Reviewed-by: redestad, kvn, iveresov
2020-07-06 04:44:25 -04:00
Christian Hagedorn
b02e4d4aba 8248596: [TESTBUG] compiler/loopopts/PartialPeelingUnswitch.java times out with Graal enabled
Change C2 specific test to be executed only with server compiler.

Reviewed-by: roland, kvn, thartmann
2020-07-06 09:16:58 +02:00
Yaofei Song
459da4aa11 8248219: aarch64: missing memory barrier in fast_storefield and fast_accessfield
Reviewed-by: aph
2020-06-28 16:47:25 +08:00
Erik Joelsson
7e20cf75f9 8238960: linux-i586 builds are inconsistent as the newly build jdk is not able to reserve enough space for object heap
Reviewed-by: ihse, tbell, ahgross, jwilhelm
2020-02-20 14:05:38 -08:00
Erik Joelsson
5fff0506f9 8239429: AbsPathsInImage.java fails in JDK 11u and 14u on Windows
Reviewed-by: tbell
2020-02-20 09:09:25 -08:00
Jayathirth D V
151b6f1402 8233239: Enhance TIFF support
Reviewed-by: prr, bpb, mschoene, rhalade
2020-02-20 11:32:54 +05:30
Richard Reingruber
4d75aef609 8238585: JvmtiEventControllerPrivate::enter_interp_only_mode() should not make compiled methods on stack not_entrant
Reviewed-by: mdoerr, kvn, sspitsyn
2020-02-13 15:56:28 +01:00
Stefan Karlsson
8384f7ff28 8246406: ZGC: Generate crash reports in debug builds for a few important errors paths
Reviewed-by: pliden, eosterlund
2020-06-05 09:05:41 +02:00
Stefan Karlsson
1c27ce30b4 8246405: Add GCLogPrecious functionality to log and report debug errors
Reviewed-by: pliden, eosterlund
2020-06-05 07:56:07 +02:00
Zhengyu Gu
aee74901f7 8246593: Shenandoah: string dedup roots should be processed during concurrent weak roots phase
Reviewed-by: shade
2020-06-04 20:57:04 -04:00
Shravya Rukmannagari
9d5f388498 8245512: CRC32 optimization using AVX512 instructions
Reviewed-by: kvn
2020-06-04 17:36:58 -07:00
Serguei Spitsyn
9a7f519aee 8245321: refactor the redefine check that an attribute consisting of a list of classes has not changed
Refactor the redefine check of an array attribute

Reviewed-by: hseigel, coleenp
2020-06-05 00:06:16 +00:00
Weijun Wang
507816d550 8244565: Accept PKCS #8 with version number 1
Reviewed-by: valeriep
2020-06-05 07:53:50 +08:00
Vicente Romero
0db1be28c7 8246486: javac doesn't allow a subclass to be declared before a sealed superclass with no permits clause
Reviewed-by: mcimadamore
2020-06-04 19:02:43 -04:00
Valerie Peng
b94314a0d9 8087327: CipherStream produces new byte array on every update or doFinal operation
Changed Cipher[In/Out]putStream to allocate a buffer and reuse it

Reviewed-by: weijun
2020-06-04 20:30:16 +00:00
Ziyi Luo
9a88048a05 8246274: G1 old gen allocation tracking is not in a separate class
Add G1OldGenAllocationTracker

Reviewed-by: tschatzl, phh
2020-06-04 13:25:33 -07:00
Zhengyu Gu
1b59097077 8246612: Shenandoah: add timing tracking to ShenandoahStringDedupRoots
Reviewed-by: shade
2020-06-04 15:01:04 -04:00
Brian Burkhalter
9cadf1a004 8246282: [REDO] JDK-8245121 (bf) XBuffer.put(Xbuffer src) can give unexpected result when storage overlaps
Reviewed-by: psandoz, alanb
2020-06-04 11:39:39 -07:00
Vladimir Kozlov
dd016c34dd 8227647: [Graal] Test8009761.java fails due to "RuntimeException: static java.lang.Object compiler.uncommontrap.Test8009761.m3(boolean,boolean) not compiled"
Wait Graal compilation to finish if request came from testing environment.

Reviewed-by: thartmann, iignatyev
2020-06-04 10:59:06 -07:00
Eric Caspole
a351ebd40b 8245043: Simplified contention benchmark
Reviewed-by: shade, skuksenko
2020-06-04 13:16:38 -04:00
Magnus Ihse Bursie
e1b8e91e80 8246478: Remove src/utils/reorder
Reviewed-by: iklam
2020-06-04 14:56:32 +02:00
Jorn Vernee
4365c2b745 8246572: Always pass java.library.path when running micro benchmarks
Reviewed-by: ihse, redestad
2020-06-04 14:56:36 +02:00
Jesper Wilhelmsson
62d1de37e2 Added tag jdk-15+26 for changeset 0a32396f7a69 2020-06-04 04:34:51 +02:00
Weijun Wang
bcbe46b0b3 8246397: Use KnownOIDs for known OIDs
Reviewed-by: xuelei
2020-06-04 10:04:32 +08:00
Erik Gahlin
2bfc64ad1f 8245283: JFR: Can't handle constant dynamic used by Jacoco agent
Reviewed-by: mgronlun
2020-06-04 00:14:33 +02:00
Erik Gahlin
7d1eb8f07c 8246260: JFR: Write event size field without padding
Reviewed-by: jbachorik, mgronlun
2020-06-04 00:09:04 +02:00
Claes Redestad
827c8865d8 8246451: Reduce overhead of normalizing file paths with trailing slash
Reviewed-by: lancea
2020-06-03 22:29:34 +02:00
Zhengyu Gu
d9fc44540e 8246458: Shenandoah: TestAllocObjects.java test fail with -XX:+ShenandoahVerify
Reviewed-by: shade
2020-06-03 12:09:04 -04:00
Chris Hegarty
f1e1cb7055 8246095: Tweaks to memory access API
Add more user friendly API points to the foreign memory acesss API

Reviewed-by: chegar, psandoz
2020-06-03 16:50:03 +01:00
Chris Hegarty
eec7750e55 8238763: ObjectInputStream readUnshared method handling of Records
Reviewed-by: rriggs
2020-06-03 15:46:53 +01:00
Man Cao
f7cb0f760f 8244278: Excessive code cache flushes and sweeps
Reviewed-by: neliasso
2020-06-03 15:26:23 +02:00
Nils Eliasson
99d6bea20d 8244660: Code cache sweeper heuristics is broken
Reviewed-by: thartmann, rehn
2020-06-03 15:26:18 +02:00
Nils Eliasson
06b49fa3f7 8244658: Remove dead code in code cache sweeper
Reviewed-by: mdoerr, kvn
2020-06-03 15:26:04 +02:00
Conor Cleary
10874e0291 8245658: Arrays.java has two occurrences of bad unicode constants in Javadoc
This patch fixes two instances of bad unicode formatting in the javadoc for Arrays.java where the null character constant was incorrectly specified.

Reviewed-by: jlaskey, lancea, prappo, dfuchs
2020-06-03 14:31:04 +01:00
Stefan Karlsson
a809ff0e3f 8246434: Threads::print_on_error assumes that the heap has been set up
Reviewed-by: dholmes
2020-06-03 14:34:35 +02:00
Stefan Karlsson
b5678a43cc 8246258: Enable hs_err heap printing earlier during initialization
Reviewed-by: stuefe, sjohanss
2020-06-02 09:57:35 +02:00
Stefan Karlsson
a180444c6f 8246404: ZGC: Use GCLogPrecious for important logging lines
Reviewed-by: sjohanss, pliden, eosterlund
2020-06-03 14:32:31 +02:00
Stefan Karlsson
5fc89b6e72 8246135: Save important GC log lines and print them when dumping hs_err files
Reviewed-by: sjohanss, pliden, eosterlund
2020-06-03 14:30:56 +02:00
Aleksey Shipilev
1314ca87c1 8246433: Shenandoah: walk roots in more efficient order in ShenandoahRootUpdater
Reviewed-by: zgu
2020-06-03 14:02:51 +02:00
Stefan Karlsson
26a18414f6 8246134: ZGC: Restructure hs_err sections
Reviewed-by: pliden, eosterlund
2020-05-29 11:58:00 +02:00
Valerie Peng
56b7960496 8242897: KeyFactory.generatePublic( x509Spec ) failed with java.security.InvalidKeyException
Changed SunRsaSign provider to accept RSA signature oid in RSA key encoding for backward compatibility

Reviewed-by: weijun
2020-06-03 04:29:04 +00:00
Daniel D. Daugherty
563ce12127 8246359: clarify confusing comment in ObjectMonitor::EnterI()'s race with async deflation
Reviewed-by: cvarming, eosterlund, dholmes
2020-06-02 19:49:07 -04:00
Naoto Sato
d347d2ebf9 8246261: TCKLocalTime.java failed due to "AssertionError: expected [18:14:22] but found [18:14:23]"
Reviewed-by: lancea, joehw
2020-06-02 13:49:47 -07:00
Alex Menkov
3dc78e76e4 8204994: SA might fail to attach to process with "Windbg Error: WaitForEvent failed"
Reviewed-by: sspitsyn, cjplummer
2020-06-02 13:22:06 -07:00
Igor Ignatyev
453f6cf4d9 8243434: use reproducible random in :vmTestbase_vm_g1classunloading
Reviewed-by: kbarrett, lmesnik
2020-06-02 13:04:21 -07:00
Igor Ignatyev
f2cd6d6a10 8243430: use reproducible random in :vmTestbase_vm_gc
Reviewed-by: kbarrett, lmesnik, tschatzl
2020-06-02 13:04:21 -07:00
Claes Redestad
0366f6bf45 8246338: Reduce overhead of normalizing file paths
Reviewed-by: alanb
2020-06-02 22:22:58 +02:00
Serguei Spitsyn
ddbc7ed0a1 8221306: JVMTI spec for FramePop(), MethodExit(), and MethodEnter() could use some cleanup
JVMTI spec cleanup for functions FramePop(), MethodExit(), and MethodEnter()

Reviewed-by: cjplummer, amenkov
2020-06-02 19:34:19 +00:00
Joe Darcy
7e862f91dc 8246368: Add override for return tag of Modifier::toString
Reviewed-by: jjg
2020-06-02 12:16:58 -07:00
Alexander Matveev
47cc808b98 8232841: [TESTBUG] [macos] SigningPackageTest fails when untrusted certificates exist on machine
Reviewed-by: herrick, asemenyuk
2020-06-02 09:39:54 -04:00
Andy Herrick
1933fe39ae 8246010: AdditionalLaunchersTest is not enabled, and fails
Reviewed-by: asemenyuk, almatvee
2020-06-02 09:30:21 -04:00
Thomas Stuefe
5ce3d0d8e5 8245707: Increase Metaspace reserve alignment
Reviewed-by: iklam, coleenp
2020-06-02 21:04:13 +02:00
Zhengyu Gu
334df28eca 8246342: Shenandoah: remove unused ShenandoahIsMarkedNextClosure
Reviewed-by: shade
2020-06-02 15:01:45 -04:00
Zhengyu Gu
512cc3ebf2 8245961: Shenandoah: move some root marking to concurrent phase
Reviewed-by: shade
2020-06-02 14:57:40 -04:00
Gerard Ziemski
8752e02e66 8245833: crash_with_sigfpe uses pthread_kill(SIGFPE) on macOS
Changed division code to ensure that real crash happens

Reviewed-by: dholmes
2020-06-02 13:15:13 -05:00
Gerard Ziemski
5f67125ba6 8245509: Crash handler itself crashes when reporting Unsafe.putInt(0) crash
Added ResourceMarker

Reviewed-by: coleenp, dholmes
2020-06-02 13:12:50 -05:00
Pavel Rappo
f6ad22fce5 8236823: Ensure that API documentation uses minified libraries
Reviewed-by: jjg
2020-06-02 18:43:22 +01:00
Joe Darcy
a1114948b0 8246290: Refine specification of javax.lang.model.element.Modifier::toString
Reviewed-by: vromero, jjg
2020-06-02 09:54:51 -07:00
Ioi Lam
ccb6d0e572 8234628: Change BasicHashTables::new_entry() to use clamp()
Reviewed-by: dcubed
2020-06-02 09:29:10 -07:00
Roland Westrelin
9c99008aff 8245714: "Bad graph detected in build_loop_late" when loads are pinned on loop limit check uncommon branch
Reviewed-by: thartmann
2020-05-28 13:21:54 +02:00
Roland Westrelin
01cfedf2c9 8244086: Following 8241492, strip mined loop may run extra iterations
Reviewed-by: mdoerr, thartmann
2020-04-29 10:06:38 +02:00
Aleksey Shipilev
ed538ea5e0 8246097: Shenandoah: limit parallelism in CLDG root handling
Reviewed-by: zgu
2020-06-02 14:27:18 +02:00
Aleksey Shipilev
82dc495ca0 8246100: Shenandoah: walk roots in more efficient order
Reviewed-by: zgu
2020-06-02 14:26:16 +02:00
Claes Redestad
19257f4fb7 8246241: LambdaFormEditor should use a transform lookup key that is not a SoftReference
Reviewed-by: psandoz, mchung
2020-06-02 12:34:05 +02:00
Conor Cleary
22532ff30e 8242281: IntStream.html#reduce doc should not mention average
Remove mention of average function in apiNote of IntStream::reduce(int, IntBinaryOperator)

Reviewed-by: psandoz, jlaskey, lancea, dfuchs
2020-06-02 11:25:58 +01:00
Christian Hagedorn
f7a65b7fff 8239083: C1 assert(known_holder == NULL || (known_holder->is_instance_klass() && (!known_holder->is_interface() || ((ciInstanceKlass*)known_holder)->has_nonstatic_concrete_methods())), "should be non-static concrete method");
Remove unnecessary preparation to profile the holder of a static method called by a method handle in C1.

Reviewed-by: thartmann, kvn
2020-06-02 11:05:34 +02:00
Ioi Lam
f39a71cafe 8243506: SharedBaseAddress is ignored by -Xshare:dump
Reviewed-by: stuefe, ccheung
2020-06-02 01:08:44 -07:00
Tobias Hartmann
b5775c831d 8239477: jdk/jfr/jcmd/TestJcmdStartStopDefault.java fails -XX:+VerifyOops with "verify_oop: rsi: broken oop"
Use T_ADDRESS instead of T_OBJECT to load metadata.

Reviewed-by: kvn
2020-06-02 10:00:40 +02:00
Tobias Hartmann
f822eed55c 8245957: Remove unused LIR_OpBranch::type after SPARC port removal
Removed LIR_OpBranch::type after the only remaining usage was removed with the SPARC port removal.

Reviewed-by: kvn, mdoerr
2020-06-02 09:57:57 +02:00
Tobias Hartmann
5793b0633a 8246153: TestEliminateArrayCopy fails with -XX:+StressReflectiveCode
Use the memory input instead of the control input to find the membar.

Reviewed-by: kvn, neliasso
2020-06-02 09:07:53 +02:00
Jan Lahoda
44ae643b2b 8210649: AssertionError @ jdk.compiler/com.sun.tools.javac.comp.Modules.enter(Modules.java:244)
Do not clean trees after last round of annotation processing, if the trees won't be re-entered again.

Reviewed-by: vromero
2020-06-02 08:41:36 +02:00
Jan Lahoda
04ad75e788 8241519: javac crashes with wrong module-info.class in module path
If module-info.class is broken, mark the corresponding ModuleSymbol as erroneous.

Reviewed-by: jjg
2020-06-02 08:27:37 +02:00
Xiaohong Gong
1adecc8e3a 8245717: VM option "-XX:EnableJVMCIProduct" could not be repetitively enabled
Reviewed-by: dholmes, kvn
2020-06-02 04:32:40 +00:00
Daniel D. Daugherty
00f223e22f 8153224: Monitor deflation prolong safepoints
Add support for AsyncDeflateIdleMonitors (default true); the async deflation work is performed by the ServiceThread.

Co-authored-by: Carsten Varming <varming@gmail.com>
Reviewed-by: dcubed, rehn, rkennke, cvarming, coleenp, acorn, dholmes, eosterlund
2020-06-01 23:37:14 -04:00
Pengfei Li
30aa1b0689 8245158: C2: Enable SLP for some manually unrolled loops
In SuperWord::find_align_to_ref(), only discard unalignable memory ops if memory references should be aligned on this platform.

Reviewed-by: roland, thartmann
2020-06-02 03:34:15 +00:00
Vicente Romero
d42bfef8a4 8227046: compiler implementation for sealed classes
8225056: VM support for sealed classes
8227044: javax.lang.model for sealed classes
8227045: Preview APIs support for sealed classes
8227047: Javadoc for sealed types
8245854: JVM TI Specification for sealed classes

Co-authored-by: Harold Seigel <harold.seigel@oracle.com>
Co-authored-by: Jan Lahoda <jan.lahoda@oracle.com>
Reviewed-by: mcimadamore, forax, darcy, dholmes, jlahoda, lfoltan, mchung, sspitsyn, vromero
2020-06-01 17:00:40 -04:00
Erik Gahlin
567692e4ae 8246259: JFR: Fetch VM memory pools without using streams
Reviewed-by: mgronlun
2020-06-01 22:55:22 +02:00
Mandy Chung
5e5880d4f1 8245061: Lookup::defineHiddenClass should throw ClassFormatError if this_class is not Class_info structure
8245432: Lookup::defineHiddenClass should throw UnsupportedClassVersionError if bytes are of an unsupported major or minor version
8245596: Clarify Lookup::defineHiddenClass spec @throws IAE if the bytes has ACC_MODULE flag set

Reviewed-by: alanb, dholmes
2020-06-01 13:19:06 -07:00
Claes Redestad
1f698a35f2 8246152: Improve String concat bootstrapping
Reviewed-by: forax, psandoz
2020-06-01 22:04:22 +02:00
Fedor Burdun
f3e027c001 8246256: GenerateLinkOptData should not mutate the interim or bootstrap JDK
Reviewed-by: erikj, ihse
2020-06-01 22:03:52 +02:00
Claes Redestad
ad7dafb138 8246251: Adjust HelloClasslist after JDK-8230301
Reviewed-by: mchung
2020-06-01 21:57:08 +02:00
Boris Ulasevich
0b20eafb30 8241004: NMT tests fail on unaligned thread size with debug build
Reviewed-by: zgu, dsamersoff
2020-06-01 13:31:53 -04:00
Phil Race
d0c6eef9a5 8246263: jdk is not yet ready for new Copyright line
Reviewed-by: pbansal
2020-06-01 10:04:19 -07:00
Xin Liu
0ec39a0b70 8230552: Provide information when hitting a HaltNode for architectures other than x86
Reviewed-by: mdoerr
2020-06-01 08:52:01 -04:00
Adam Sotona
5a57b9f8ec 8245153: Unicode encoded double-quoted empty string does not compile
Fixed parsing of Unicode encoded double-quoted empty strings in c.s.t.j.p.JavaTokenizer::scanString

Reviewed-by: jlaskey
2020-05-29 09:56:05 +02:00
Zhengyu Gu
4d10ebba12 8246075: Missing logging in nmethod::oops_do_marking_epilogue() on early return path
Reviewed-by: kbarrett
2020-06-01 08:19:58 -04:00
Jim Laskey
bfd2e96120 8230800: Clarify String::stripIndent javadoc when string ends with line terminator
Reviewed-by: jlaskey, bchristi, rriggs
2020-06-01 08:17:32 -03:00
Per Lidén
7467cd2ee5 8246045: ZGC: Fix ZDirector::rule_high_usage() calculation
Reviewed-by: stefank, eosterlund
2020-05-31 23:15:30 +02:00
Per Lidén
231d9a01d9 8246044: ZGC: Rename ZDirector's max_capacity to soft_max_capacity
Reviewed-by: stefank, eosterlund
2020-05-31 23:15:07 +02:00
Per Lidén
116aee4950 8242527: ZGC: TestUncommit.java fails due to "Exception: Uncommitted too fast"
Reviewed-by: eosterlund
2020-05-31 23:15:05 +02:00
Hong Shao Yang
0082c69496 8246198: Typo in java/util/regex/Pattern.java
Reviewed-by: lancea, prappo, naoto
2020-05-31 11:32:44 -04:00
Weijun Wang
6212aea580 8246193: Possible NPE in ENC-PA-REP search in AS-REQ
Reviewed-by: xuelei
2020-05-31 10:13:04 +08:00
Adam Sotona
4eeb61299f 8244573: java.lang.ArrayIndexOutOfBoundsException thrown for malformed class file
Fixed java.lang.ArrayIndexOutOfBoundsException in com.sun.tools.classfile.Code_attribute.getInstructions() for methods with no instructions

Reviewed-by: vromero
2020-05-30 20:10:18 -04:00
Phil Race
3476724641 8238002: Better matrix operations
Reviewed-by: serb, erikj, mschoene, rhalade
2020-02-12 12:18:46 -08:00
Joe Wang
697fb9e41b 8232014: Expand DTD support
Reviewed-by: lancea, dfuchs, mschoene, rhalade, aefimov
2020-02-12 18:59:58 +00:00
Sergey Bylokhov
ead83e6b63 8239124: Minimize the usage of AwtGraphicsConfigDataPtr in native
Reviewed-by: pbansal
2020-02-06 16:15:56 -08:00
Phil Race
5a5e4bbfee 8220150: macos10.14 Mojave returns anti-aliased glyphs instead of aliased B&W glyphs
Reviewed-by: serb, kcr
2020-04-06 12:01:34 -07:00
Phil Race
38716935d2 8240342: Custom composite is ignored when printing an opaque image to a page
Reviewed-by: serb, psadhukhan
2020-04-03 15:00:41 -07:00
Sergey Bylokhov
3c937001b5 8241797: Add some tests to the problem list
Reviewed-by: jdv, prr, pbansal
2020-03-31 19:56:33 -07:00
Sergey Bylokhov
978120f46a 8241808: [TESTBUG] The JDK-8039467 bug appeared on macOS
Reviewed-by: kizune, pbansal
2020-03-31 19:19:25 -07:00
Pankaj Bansal
1ef1131ab1 8241791: [TESTBUG] Test failing with exception "java.lang.UnsupportedOperationException"
Reviewed-by: serb
2020-03-30 12:06:06 +05:30
Sergey Bylokhov
cf22b4e7c8 8238719: [macOS] Delete the property which use deprecated prefix "com.apple.macos."
Reviewed-by: psadhukhan, jdv, prr
2020-03-25 16:55:00 -07:00
Sergey Bylokhov
3399842d7e 8240690: Race condition between EDT and BasicDirectoryModel.FilesLoader.run0()
Reviewed-by: psadhukhan
2020-03-25 16:48:35 -07:00
Prasanta Sadhukhan
40e667c174 8239312: [macos] javax/swing/JFrame/NSTexturedJFrame/NSTexturedJFrame.java
Reviewed-by: serb
2020-03-26 10:18:59 +05:30
Yasumasa Suenaga
545643880c 8241087: Build failure with VS 2019 (16.5.0) due to C2039 and C2873
Reviewed-by: serb
2020-03-23 15:43:55 +09:00
Prasanta Sadhukhan
ef335c75e3 Merge 2020-03-22 09:46:15 +05:30
Phil Race
602d98a72c 8232634: Problem List ICMColorDataTest.java
Reviewed-by: serb, psadhukhan
2020-03-20 22:52:40 -07:00
Prasanta Sadhukhan
672f3a1857 8241291: JCK test javax_swing/text/DefaultStyledDocument/ElementSpec/ESpecCtor.html fails
Reviewed-by: prr
2020-03-21 09:46:44 +05:30
Leonid Mesnik
f778ad2f4b 8241319: WB_GetCodeBlob doesn't have ResourceMark
Reviewed-by: iignatyev, thartmann
2020-03-20 17:37:52 -07:00
Pavel Rappo
17ff85d4ad 8241014: Miscellaneous typos in documentation comments
Reviewed-by: igerasim, prappo, psandoz, rriggs, weijun
2020-03-20 20:54:56 +00:00
Rahul Yadav
c5a7490809 8240921: Minor correction to HttpResponse.BodySubscribers example
The fix updates the incorrect example of the usage of the class java.net.http.HttpResponse.BodySubscribers.

Reviewed-by: chegar, dfuchs, jboes, pconcannon
2020-03-20 20:16:34 +00:00
Yumin Qi
37b7a23317 8241009: CommandLineFlagComboNegative.java fails after JDK-8240563
Jtreg turned off UseCompressedOops and messed up vm flag options of children processes.

Reviewed-by: dholmes, stefank
2020-03-20 09:40:30 -07:00
Xue-Lei Andrew Fan
f67868d917 8219989: Retire the com.sun.net.ssl.internal.ssl.Provider name
Remove the provider name in JDK

Reviewed-by: mullan
2020-03-20 09:27:06 -07:00
Xue-Lei Andrew Fan
d243e40f7b 8241039: Retire the deprecated SSLSession.getPeerCertificateChain() method
Reviewed-by: mullan, alanb, dfuchs
2020-03-20 09:15:00 -07:00
Andrew Haley
2288788e03 Merge 2020-03-20 13:08:20 +00:00
Sergey Bylokhov
b4a3809eaa 8240786: [TESTBUG] The test java/awt/Window/GetScreenLocation/GetScreenLocationTest.java fails on HiDPI screen
Reviewed-by: jdv, pbansal
2020-03-19 22:22:39 -07:00
Andrew Haley
34ae46e2bc 8241296: Segfault in JNIHandleBlock::oops_do()
Reviewed-by: stefank
2020-03-19 14:53:57 +00:00
Jamsheed Mohammed C M
136a1574ec 8237894: CTW: C1 compilation fails with assert(x->type()->tag() == f->type()->tag()) failed: should have same type
Field access instructions hash decalred_type in addition, indexed access instructions hash value type of the instruction in addition.

Reviewed-by: thartmann, shade
2020-03-20 05:19:56 -07:00
Coleen Phillimore
6dffcf7533 8241320: The ClassLoaderData::_is_unsafe_anonymous field is unused in the SA
Remove unused code that is changing in Hotspot for hidden classes.

Reviewed-by: lfoltan, dholmes, sspitsyn
2020-03-20 07:30:52 -04:00
Jia Huang
95d2830361 8240222: [TESTBUG] gtest/jfr/test_networkUtilization.cpp failed when the number of tests is greater than or equal to 2
Reviewed-by: egahlin, mgronlun
2020-03-20 18:52:31 +08:00
Thomas Schatzl
cc83c45595 8240590: Add MemRegion::destroy_array to complement introduced create_array
Reviewed-by: lkorinth, sjohanss
2020-03-20 11:17:45 +01:00
Leonid Mesnik
e7204cbc52 8241123: Refactor vmTestbase stress framework to use j.u.c and make creation of threads more flexible
Reviewed-by: iignatyev, sspitsyn
2020-03-20 00:24:08 -07:00
Kim Barrett
333a832cea 8241001: Improve logging in the ConcurrentGCBreakpoint mechanism
Demoted most breakpoint logging to trace level.

Reviewed-by: pliden, sjohanss
2020-03-20 01:20:37 -04:00
Chris Plummer
104927e514 8241335: ProblemList serviceability/sa/ClhsdbPstack.java due to JDK-8240956
Reviewed-by: mikael
2020-03-19 21:32:57 -07:00
Chris Yin
7ded8b1e30 8241130: com.sun.jndi.ldap.EventSupport.removeDeadNotifier: java.lang.NullPointerException
Reviewed-by: dfuchs
2020-03-20 10:24:46 +08:00
Patricio Chilano Mateo
3f698242a8 8240902: JDI shared memory connector can use already closed Handles
Add refcount to keep track of connection access

Reviewed-by: dholmes, dcubed, sspitsyn
2020-03-20 00:32:29 +00:00
Kim Barrett
b8a2b201b5 8139652: Mutator refinement processing should take the oldest dirty card buffer
Changed mutator refinement to take from queue rather than in-place and reuse.

Reviewed-by: tschatzl, sjohanss
2020-03-19 18:11:52 -04:00
Dean Long
4f629193a9 8241231: Update Graal
Reviewed-by: kvn
2020-03-19 12:29:59 -07:00
Roger Riggs
caa0884400 8241073: Pre-generated Stubs for javax.management, Activation, Naming
Reviewed-by: erikj, ihse, alanb, dfuchs
2020-03-19 15:34:34 -04:00
Phil Race
0f7f181d60 8241233: Typo in problem listing of UIDefaultKeySizeTest.java
Reviewed-by: jdv
2020-03-18 22:27:31 -07:00
Prasanta Sadhukhan
7143a9c581 8241078: OOM error parsing HTML with large <pre> Tag text
Reviewed-by: serb, aivanov
2020-03-19 09:22:37 +05:30
Prasanta Sadhukhan
3340e6f980 8226230: Test javax/swing/JInternalFrame/8020708/bug8020708.java fails on Ubuntu
Reviewed-by: serb
2020-03-19 09:20:06 +05:30
Phil Race
9874e698b8 8241229: Problem list jdk/javax/swing/UIDefaults/8146330/UIDefaultKeySizeTest.java
Reviewed-by: aivanov, serb
2020-03-18 15:48:53 -07:00
Tejpal Rebari
1e217e7b8b 8146330: [macosx] UIDefaults.keys() different size than UIDefaults.keySet()
Reviewed-by: pbansal, serb, jdv
2020-03-18 11:38:33 +05:30
Phil Race
c1f7fa2ece 8223935: PIT: java/awt/font/WindowsIndicFonts.java fails on windows10
Reviewed-by: serb, jdv
2020-03-17 17:38:27 -07:00
Evgeny Nikitin
66c8794c81 8168304: Make all of DependencyContext_test available in product mode
Enable the utility inspection function `DependencyContext::is_dependent_method` and therefore the test in the product mode.

Reviewed-by: eosterlund, thartmann
2020-03-17 21:35:26 +01:00
Jonathan Gibbons
32cba67284 8240476: SystemPropertiesWriter does not conform to standard page layout
Reviewed-by: prappo
2020-03-19 11:25:05 -07:00
Chris Plummer
029fea432a 8240543: Update problem list entry for serviceability/sa/TestRevPtrsForInvokeDynamic.java to reference JDK-8241235
Reviewed-by: dholmes
2020-03-19 10:20:45 -07:00
Magnus Ihse Bursie
9dc15f17ea 8241254: Simplify usage of UTIL_DEPRECATED_ARG_ENABLE
Reviewed-by: erikj
2020-03-19 17:17:49 +01:00
Stefan Karlsson
d3bf915030 8241263: JFR: Bump native events limit
Reviewed-by: mgronlun, egahlin
2020-03-19 14:18:27 +01:00
Stefan Karlsson
5695e59a72 8240818: Remove colon from "JFR: Shutdown Hook" thread name
Reviewed-by: mgronlun
2020-03-19 14:17:20 +01:00
Stefan Karlsson
b4e85913bf 8240819: Assign a name to the JfrThreadSampler thread
Reviewed-by: mgronlun
2020-03-19 14:16:28 +01:00
Stefan Karlsson
e2947fe9e8 8240773: JFR: Non-Java threads are not serialized
Reviewed-by: mgronlun
2020-03-19 14:15:29 +01:00
Sergey Bylokhov
72b251d372 8226806: [macOS 10.14] Methods of Java Robot should be called from appropriate thread
Reviewed-by: psadhukhan, prr
2020-03-16 17:33:52 -07:00
Prasanta Sadhukhan
bca2465c94 8236635: JTabbedPane preferred size calculation is wrong for SCROLL_TAB_LAYOUT
Reviewed-by: serb, pbansal
2020-03-16 12:49:08 +05:30
Ambarish Rapte
3a7389f564 8226253: JAWS reports wrong number of radio buttons when buttons are hidden
Reviewed-by: kizune, pbansal
2020-03-15 00:43:54 +05:30
Kiran Sidhartha Ravikumar
fa069be2f2 8161558: ListIterator should not discard cause on exception
Reviewed-by: smarks
2020-03-13 18:38:07 +00:00
Alexander Scherbatiy
cd7d175001 8240604: Rewrite sun/management/jmxremote/bootstrap/CustomLauncherTest.java test to make binaries from source file
Reviewed-by: iignatyev
2020-03-19 14:58:04 +03:00
Roland Westrelin
c9faf88cb7 8240795: [REDO] 8238384 CTW: C2 compilation fails with "assert(store != load->find_exact_control(load->in(0))) failed: dependence cycle found"
Reviewed-by: kvn, thartmann
2020-03-13 16:32:51 +01:00
Phil Race
23fda7e41b 8240977: ProblemList failing jtreg tests on macos
Reviewed-by: serb
2020-03-12 17:53:08 -07:00
Sergey Bylokhov
b4863f9dd8 8240633: Memory leaks in the implementations of FileChooserUI
Reviewed-by: pbansal, psadhukhan
2020-03-12 10:00:23 +01:00
Sergey Bylokhov
4f1fabd8d0 8238075: [OGL] Delete unused properties
Reviewed-by: kizune
2020-03-11 21:58:16 -07:00
Marc Hoffmann
afe70e6985 8237746: Fixing compiler warnings in src/demo/share/jfc
Reviewed-by: kizune, aivanov
2020-03-12 03:26:04 +01:00
Sergey Bylokhov
f3ef97263f 8040630: Popup menus and tooltips flicker with previous popup contents when first shown
Reviewed-by: kizune, pbansal
2020-03-10 13:58:46 -07:00
Sergey Bylokhov
40f6d697d2 8233573: Toolkit.getScreenInsets(GraphicsConfiguration) may throw ClassCastException
Reviewed-by: prr, jdv
2020-03-10 11:30:33 -07:00
Jayathirth D V
bd78beae15 6532025: GIF reader throws misleading exception with truncated images
Reviewed-by: prr, bpb
2020-03-10 16:07:58 +05:30
Toshio Nakamura
15a838d312 8240518: Incorrect JNU_ReleaseStringPlatformChars in Windows Print
Reviewed-by: serb, pbansal, psadhukhan
2020-03-09 15:07:11 +05:30
Alexander Zuev
315635ea09 8176040: Documentation of java.awt.Rectangle.add(java.awt.Point) is wrong
Reviewed-by: serb, prr
2020-03-09 00:18:23 +03:00
Sergey Bylokhov
bce81496ce 8219578: No associated icon for the leaf node of JTree
Reviewed-by: prr, jdv
2020-03-06 14:41:35 -08:00
Claes Redestad
cc9470ece1 8241095: x86: Improve prefix handling in Assembler
Reviewed-by: kvn, thartmann
2020-03-05 16:07:17 +01:00
Christian Hagedorn
a51dd58f38 8240227: Loop predicates should be copied to unswitched loops
Copy loop range check predicates to unswitched loops and update their control edges.

Reviewed-by: kvn, neliasso, thartmann, roland
2020-03-19 10:15:28 +01:00
Jie Fu
dd63eec6e5 8241232: -XX:+BootstrapJVMCI is not compatible with TieredStopAtLevel < CompLevel_full_optimization
Reviewed-by: kvn, thartmann
2020-03-19 16:34:01 +08:00
Matthias Baesken
cadfc3d570 8241064: JFR related tests TestMetaspaceAllocationFailure.java and TestEventInstrumentation.java miss requires tag
Reviewed-by: mseledtsov, mgronlun
2020-03-16 15:11:02 +01:00
Igor Veresov
f1c919f28f 8230290: [JVMCI] Remove unused API entry points
Remove VirtualObject.setIsAutoBox()

Reviewed-by: kvn
2020-03-18 21:49:35 -07:00
Chris Yin
599af2ac26 8202117: com/sun/jndi/ldap/RemoveNamingListenerTest.java fails intermittently: Connection reset
Reviewed-by: dfuchs, vtewari
2020-03-19 11:07:36 +08:00
Jesper Wilhelmsson
c7c8623ed6 Added tag jdk-15+15 for changeset 82b7c62cf4cc 2020-03-19 03:03:55 +01:00
Matthias Neugschwandtner
99546049b3 8235908: omit ThreadPriorityPolicy warning when value is set from image
Reviewed-by: dholmes, clanger, kvn
2020-03-18 15:59:07 -07:00
Andrew M Leonard
44eca823aa 8241097: java/math/BigInteger/largeMemory/SymmetricRangeTests.java requires -XX:+CompactStrings
Reviewed-by: bpb, bchristi
2020-03-17 14:14:27 +00:00
Rafael Winterhalter
9d7f8bc9a0 8202469: (ann) Type annotations on type variable bounds that are also type variables are lost
Reviewed-by: jfranck
2020-03-18 17:07:42 -04:00
Jonathan Gibbons
af28093ed8 Merge 2020-03-18 13:29:02 -07:00
Chris Plummer
9fe762d3c5 8241162: ProblemList serviceability/sa/TestHeapDumpForInvokeDynamic.java on OSX
Reviewed-by: dcubed
2020-03-18 13:24:59 -07:00
Jonathan Gibbons
ea367322f2 8241030: rename HtmlTag to TagName
Reviewed-by: prappo
2020-03-18 13:20:13 -07:00
Doug Simon
34b9ac2287 8236285: [JVMCI] improve TranslatedException traces
Reviewed-by: never, kvn
2020-03-18 13:11:09 -07:00
Vicente Romero
bf54c47471 8240970: Some tests fail when run with JCov
Reviewed-by: jjg
2020-03-18 14:33:05 -04:00
Aleksey Shipilev
700f50f287 8241128: x86_32 build failure after JDK-8241042
Reviewed-by: redestad, kvn
2020-03-18 19:24:42 +01:00
Daniil Titov
b70ef0d2e2 8240711: TestJstatdPort.java failed due to "ExportException: Port already in use:"
Reviewed-by: amenkov
2020-03-18 11:05:11 -07:00
Chris Plummer
c6cec8a8ea 8227340: Modify problem list entry for javax/management/remote/mandatory/connection/MultiThreadDeadLockTest.java
Reviewed-by: dholmes
2020-03-18 10:42:32 -07:00
Chris Plummer
1170981e93 8240906: Update ZGC ProblemList for serviceability/sa/TestJmapCoreMetaspace.java
Reviewed-by: stefank
2020-03-18 10:14:46 -07:00
Mikhailo Seledtsov
0ee7497937 8241033: Create test library utility for getting JFR streaming repository
New method to get JFR streaming repo path

Reviewed-by: egahlin, mgronlun
2020-03-18 09:45:20 -07:00
Tony Printezis
f2fb5c54ae 8239497: SEGV in EdgeUtils::field_name_symbol(Edge const&)
Reviewed-by: egahlin, tonyp
2020-03-18 12:00:19 +01:00
Jesper Wilhelmsson
efb25e5127 Merge 2020-03-18 10:41:26 +01:00
Jesper Wilhelmsson
abc5619317 Added tag jdk-14-ga for changeset bc54620a3848 2020-03-18 10:34:13 +01:00
Ichiroh Takiguchi
d76b0cf705 8232161: Align some one-way conversion in MS950 charset with Windows
MS950 charset encoder's conversion table is changed

Reviewed-by: naoto
2020-03-18 18:04:51 +09:00
Ivan Gerasimov
1d4a4fed43 8214245: Case insensitive matching doesn't work correctly for some character classes
Reviewed-by: rriggs, darcy
2020-03-18 01:04:22 -07:00
Aleksey Shipilev
e827f4ae1c 8241093: Shenandoah: editorial changes in flag descriptions
Reviewed-by: rkennke
2020-03-18 06:28:50 +01:00
Naoto Sato
e5e24ad080 8241082: Upgrade IANA Language Subtag Registry data to 03-16-2020 version
Reviewed-by: joehw
2020-03-17 19:11:10 -07:00
Hai-May Chao
0c9f8e472f 8186143: keytool -ext option doesn't accept wildcards for DNS subject alternative names
Reviewed-by: jnimeh, weijun, mullan
2020-03-18 09:23:57 +08:00
Chris Plummer
a147636157 8238268: Many SA tests are not running on OSX because they do not attempt to use sudo when available
Reviewed-by: sspitsyn, iignatyev
2020-03-17 18:04:59 -07:00
David Holmes
94a6149de5 8241124: Aarch64 build broken by JDK-8239593
Reviewed-by: mikael
2020-03-17 20:54:50 -04:00
David Holmes
f959b01203 8239593: Bogus warning "Re-registering of platform native method" for a JVMTI agent
Reviewed-by: dcubed, alanb, hseigel
2020-03-17 19:57:58 -04:00
Charlie Gracie
c003fffd84 8241122: Remove unimplemented InlineTree constructor definition from parse.hpp
Reviewed-by: kvn
2020-03-17 14:05:12 -07:00
Vladimir Kozlov
6083173f9b 8237045: JVM uses excessive memory with -XX:+EnableJVMCI -XX:JVMCICounterSize=2147483648
Limit JVMCICounterSize flag's value range to 1M

Reviewed-by: thartmann, redestad
2020-03-17 12:42:48 -07:00
Claes Redestad
176192499f 8241042: x86_64: Improve Assembler generation
Reviewed-by: vlivanov, kvn
2020-03-05 16:07:17 +01:00
Vladimir Kozlov
ec5bd02186 8240976: [JVMCI] MethodProfileWidth flag is broken
Remove JVMCI code which is not used

Reviewed-by: thartmann, redestad
2020-03-17 10:38:40 -07:00
Andrew Haley
1a0995981c Merge 2020-03-17 14:13:52 +00:00
Roman Kennke
035100cc89 8241081: Shenandoah: Do not modify update-watermark concurrently
Reviewed-by: shade
2020-03-17 11:49:25 +01:00
Claes Redestad
dbd0f0dc3b 8241077: x86_64: Minor Assembler improvements
Reviewed-by: kvn
2020-03-17 09:36:46 +01:00
Matthias Baesken
6f7a103abc 8240824: enhance print_full_memory_info on Linux by THP related information
Reviewed-by: dholmes, stuefe
2020-03-17 08:53:29 +01:00
Andrew Haley
195361216c 8241018: 32-bit integer log2 functions return the wrong value for negative arguments on 64-bit machines
Reviewed-by: kvn
2020-03-16 17:10:26 +00:00
Naoto Sato
2b4b3d9efc 8240626: Some of the java.time.chrono.Eras return empty display name for some styles and locales
Reviewed-by: joehw
2020-03-16 09:26:01 -07:00
Jie Fu
e746891f96 8241034: Fix a configuring error with "-Xmx2048M: command not found"
Reviewed-by: mikael, erikj
2020-03-16 22:43:44 +08:00
Erik Österlund
21cd75cb98 8240363: Refactor Compile::Output() to its own Phase
Reviewed-by: kvn, vlivanov
2020-03-16 12:27:42 +00:00
Jan Lahoda
6ddb0f2b2c 8240964: Compilation error thrown when long literal used with yield
Ensuring yield followed by a long literal is recognized as a yield statement.

Reviewed-by: mcimadamore
2020-03-16 13:06:35 +01:00
David Holmes
95898e86a1 8241043: Expand assertions to identify thread with errant _stack_base
Reviewed-by: mikael
2020-03-16 02:16:49 -04:00
Nick Gasson
4b978533ca 8240353: AArch64: missing support for -XX:+ExtendedDTraceProbes in C1
Reviewed-by: aph
2020-03-16 10:51:01 +08:00
Vicente Romero
f819e417f9 8235339: test TargetAnnoCombo.java is failing after new target RECORD_COMPONENT was added
Reviewed-by: darcy
2020-03-14 17:08:25 -04:00
Joe Darcy
b019469232 8240130: Improve and update discussion of visitor evolution warnings
Reviewed-by: jjg
2020-03-14 09:53:43 -07:00
Kim Barrett
6ead90568f 8239825: G1: Simplify threshold test for mutator refinement
Compute refinement threshold when values change, not on each use.

Reviewed-by: tschatzl, sangheki
2020-03-13 15:36:50 -04:00
Alex Menkov
3aeb2d1a51 8217441: Failure of ::realloc() should be handled correctly in sawindbg.cpp
Reviewed-by: cjplummer, sspitsyn
2020-03-13 12:25:25 -07:00
Joe Wang
c7e4b2afe2 8240982: Incorrect copyright header in BCEL 6.4.1 sources
Reviewed-by: naoto, lancea
2020-03-13 19:15:32 +00:00
Jonathan Gibbons
afa54b7ed5 8240916: Convert to using hyphenated naming for CSS classes
Reviewed-by: hannesw
2020-03-13 10:57:41 -07:00
Claes Redestad
2b465b1ebf 8241010: Unnecessarily resolving some well-known classes
Reviewed-by: coleenp
2020-03-13 18:43:11 +01:00
Claes Redestad
37629673e7 8241006: Cleanup TemplateInterpreter initialization
Reviewed-by: coleenp
2020-03-13 15:59:27 +01:00
Vicente Romero
afbe2286e2 8239447: compiler error for annotations applied to record components with target METHOD
Reviewed-by: mcimadamore
2020-03-13 10:29:03 -04:00
Per Lidén
9e94572078 8240714: ZGC: TestSmallHeap.java failed due to OutOfMemoryError
Reviewed-by: eosterlund
2020-03-13 14:26:38 +01:00
Weijun Wang
9d502f648c 8240983: Incorrect copyright header in Apache Santuario files
Reviewed-by: mullan
2020-03-13 21:32:27 +08:00
Aditya Mandaleeka
5ed80778bc 8231668: Remove ForceDynamicNumberOfGCThreads
Reviewed-by: shade, tschatzl
2020-03-13 13:22:39 +01:00
Ivan Walulya
5a68ba1339 8240591: G1HeapSizingPolicy attempts to compute expansion_amount even when at full capacity
Reviewed-by: sjohanss, tschatzl
2020-03-13 11:54:47 +01:00
Weijun Wang
05c539c9b4 8240980: Backout JDK-8240261
Reviewed-by: dholmes
2020-03-13 17:45:55 +08:00
Roland Westrelin
2a35bc5aee 8240854: [REDO] some jaotc failures of fastdebug build with specific flags
Reviewed-by: vlivanov, kvn, thartmann
2020-03-11 10:32:07 +01:00
Jie Fu
a8b4801859 8240846: Zero VM is broken after JDK-8238681: UseSSE not defined
Reviewed-by: shade, rehn, vlivanov
2020-03-13 17:01:16 +08:00
Calvin Cheung
38940d166a 8238000: Crash in ClassLoader::record_result while dynamic dumping netty
Make a copy of the _shared_path_table for use during dynamic CDS dump.

Reviewed-by: iklam, minqi
2020-03-12 16:05:07 -07:00
Valerie Peng
0610992a8f 8238566: java.security.Provider$Service.supportsParameter() is racy
Use double-checked-locking pattern inside the hasKeyAttributes() method

Reviewed-by: xuelei
2020-03-12 22:11:49 +00:00
Jonathan Gibbons
2eaeb20697 8240555: Using env of JAVA_TOOL_OPTIONS and _JAVA_OPTIONS breaks QuietOption.java test
Reviewed-by: shurailine, prappo
2020-03-12 14:14:29 -07:00
Jonathan Gibbons
5bc78c438b 8240971: Fix CSS styles in some doc comments
Reviewed-by: mchung
2020-03-12 13:56:55 -07:00
Junyuan Zheng
e30b89e138 8240972: macOS codesign fail on macOS 10.13.5 or older
Reviewed-by: erikj, ihse
2020-03-12 12:55:19 -07:00
Mandy Chung
e9494f2155 8240242: improve the javadoc for Lookup::dropLookupModes w.r.t. dropping UNCONDITIONAL
Reviewed-by: chegar, rriggs
2020-03-12 11:56:49 -07:00
Mandy Chung
d5d6dc0caa 8228336: Refactor native library loading implementation
Reviewed-by: alanb, dholmes
2020-03-12 11:54:11 -07:00
Magnus Ihse Bursie
36fac8c332 8240950: Missing AC_SUBST after JDK-82408
Reviewed-by: erikj
2020-03-12 19:43:09 +01:00
Magnus Ihse Bursie
ed8c11e0d1 8149110: Introduce DISABLED_WARNINGS for Java compilation
Reviewed-by: erikj
2020-03-12 19:42:06 +01:00
Magnus Ihse Bursie
3aceb74ac9 8240947: Change conflicting JVM features from warning to error
Reviewed-by: erikj
2020-03-12 19:40:44 +01:00
Daniel Fuchs
58337b12f8 8059309: network tests fail with "java.net.SocketException: Couldn't obtain phys addr" when run as "root"
The solaris specific code is changed to use the fallback mechanism if the DLPI interface returns an error indicating that the operation is unsupported. In addition, NetworkInterface::getHardwareAddress is changed to always return null for the loopback interface.

Reviewed-by: alanb
2020-03-12 18:31:49 +00:00
Aleksey Shipilev
3ee99ca1d7 8240948: Shenandoah: cleanup not-forwarded-objects paths after JDK-8240868
Reviewed-by: rkennke
2020-03-12 18:50:18 +01:00
Patrick Concannon
de5208e3c0 Merge 2020-03-12 17:20:55 +00:00
Zhengyu Gu
71e1277fb3 8240917: Shenandoah: Avoid scanning thread code roots twice in all root scanner
Reviewed-by: rkennke
2020-03-12 13:08:40 -04:00
Patrick Concannon
0ed44d0aee 8239355: (dc) Initial value of SO_SNDBUF should allow sending large datagrams (macOS)
Updates DatagramChannel so that the SO_SNDBUF is set to a minimum value of 65527 for IPv6 sockets and 65507 for IPv4 sockets on macOS.

Reviewed-by: alanb, dfuchs
2020-03-12 17:08:09 +00:00
Roman Kennke
e5ab701157 8240873: Shenandoah: Short-cut arraycopy barriers
Reviewed-by: shade
2020-03-12 17:52:47 +01:00
Roman Kennke
70e730fd5c 8240872: Shenandoah: Avoid updating new regions from start of evacuation
Reviewed-by: shade
2020-03-12 17:52:10 +01:00
Yumin Qi
90a39195c1 8240563: [TESTBUG] WB_IsCDSIncludedInVmBuild should support uncompressed oops/klasses
With 8232069, CDS works with uncompressed oops/kalsses, detecting CDS code no longer bases on the two flags.

Reviewed-by: iklam
2020-03-12 09:07:11 -07:00
Roger Riggs
c68e15c0c3 8240957: Clarify BadAttributeValueExpException readObject method
Reviewed-by: bpb
2020-03-12 11:57:35 -04:00
Roger Riggs
fee69babbd 8240704: CheckHandles.java failed "AssertionError: Handle use increased by more than 10 percent."
Reviewed-by: dfuchs
2020-03-12 11:54:39 -04:00
Naoto Sato
eeaafbe141 8216332: Grapheme regex does not work with emoji sequences
Reviewed-by: rriggs
2020-03-12 08:31:26 -07:00
Pankaj Bansal
e70ee3dcf7 8231042: [macos] JFileChooser creates new folder on ESC
Reviewed-by: serb, psadhukhan
2020-03-03 18:26:57 +05:30
Pankaj Bansal
23def435d4 8239902: Remove direct usage of JSlider, JProgressBar classes in CAccessible class
Reviewed-by: serb
2020-03-03 17:49:58 +05:30
Pankaj Bansal
c2867d6577 8204161: [TESTBUG] auto failed with the "Applet thread threw exception: java.lang.UnsupportedOperationException" exception
Reviewed-by: serb
2020-03-03 17:37:04 +05:30
Prasanta Sadhukhan
6b45504934 Merge 2020-03-03 14:45:47 +05:30
Prasanta Sadhukhan
26a7b0dddd Merge 2020-03-03 13:31:33 +05:30
Sergey Bylokhov
9d0a4875d7 8238936: The crash in XRobotPeer when the custom GraphicsDevice is used
Reviewed-by: kizune
2020-03-03 03:46:11 +00:00
David Holmes
c42de93347 8238676: jni crashes on accessing it from process exit hook
Reviewed-by: fparain, gziemski
2020-03-02 19:49:42 -05:00
Sergey Bylokhov
70e2c013d7 8235153: [TESTBUG] [macos 10.15] java/awt/Graphics/DrawImageBG/SystemBgColorTest.java fails
Reviewed-by: aivanov
2020-03-02 23:35:50 +00:00
Mikhailo Seledtsov
35ee1cb2b3 8236938: [TESTBUG] JFR event MetaspaceAllocationFailure is not tested
New test for MetaspaceAllocationFailure

Reviewed-by: hseigel, stuefe
2020-03-02 12:16:18 -08:00
Christoph Langer
78d35f1435 8239149: Cleanups in SunFontManager.java and TrueTypeFont.java
Reviewed-by: prr
2020-03-02 21:04:48 +01:00
Kim Barrett
96b61b8f4b 8240246: Avoid cast_to_oop from char*
Change type of gtest object from char[] to unsigned char[].

Reviewed-by: dholmes
2020-03-02 14:45:52 -05:00
Lois Foltan
c280d98e80 8237766: Enhance signature API to include ResolvingSignatureStream
New ResolvingSignatureStream class provides the capability to easily walk through the differing parts of a signature while resolving or querying its underlying types.

Co-authored-by: John Rose <john.r.rose@oracle.com>
Reviewed-by: coleenp, fparain, hseigel
2020-03-02 18:42:22 +00:00
Patrick Concannon
e455d382e7 8234812: Add micros for DatagramChannel send/receive
Benchmarks for the DatagramChannel::send and DatagramChannel::receive methods

Reviewed-by: alanb, chegar
2020-03-02 16:47:51 +00:00
Harold Seigel
6bb0536293 8239568: [TESTBUG] LoadLibraryTest.java fails with RuntimeException
Throw jtreg.SkippedException instead of failing if shared library isn't unloaded

Reviewed-by: coleenp, lmesnik
2020-03-02 16:10:01 +00:00
Prasanta Sadhukhan
65bf61852f Merge 2020-03-02 10:50:33 +05:30
Ioi Lam
0532bd23cd 8240267: VM fails to start with CDS enabled but JVMTI disabled
Reviewed-by: dholmes
2020-03-01 17:36:03 -08:00
Sergey Bylokhov
5e912fbec5 8240202: A few client tests leave mouse buttons pressed
Reviewed-by: prr
2020-02-28 16:49:10 -08:00
Sergey Bylokhov
55768aa45d 8239583: [AIX] simplify the native references in X input methods
Reviewed-by: clanger, itakiguchi
2020-02-27 09:49:33 +00:00
Kun Wang
742bdf003e 8239915: Zero VM crashes when handling dynamic constant
Reviewed-by: dholmes
2020-02-26 17:32:04 +08:00
Lin Zang
0a820d6d21 8239916: SA: delete dead code in jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java
Reviewed-by: stefank
2020-02-29 14:43:09 +08:00
Yumin Qi
5bfb8146e9 8240258: SystemDictionary::quick_resolve need guarded by INCLUDE_CDS
Supplemental fix for 8236604 to guard SystemDictionary::quick_resolve with CDS

Reviewed-by: iklam, ccheung
2020-02-28 19:29:11 -08:00
Jie Fu
f176fae840 8240254: Build is broken when cds is disabled after JDK-8236604
Reviewed-by: redestad
2020-02-29 09:38:12 +08:00
Yumin Qi
add146cc8b 8236604: Optimize SystemDictionary::resolve_well_known_classes for CDS
Serialize SystemDictionary::_well_known_classes into CDS and quickly resolve them at runtime in vm startup stage.

Reviewed-by: iklam, coleenp
2020-02-28 15:30:29 -08:00
Leonid Mesnik
b247e6d908 8203239: [TESTBUG] remove vmTestbase/vm/gc/kind/parOld test
Reviewed-by: lkorinth, shade
2020-02-28 13:21:01 -08:00
Jonathan Gibbons
1be89d9640 8240136: Cleanup/simplify HTML/CSS for definition lists
Reviewed-by: prappo
2020-02-28 12:46:58 -08:00
Volker Simonis
b38f3cf3bd 8240226: DeflateIn_InflateOut.java test incorrectly assumes size of compressed file
Reviewed-by: martin, alanb
2020-02-28 19:49:39 +01:00
Aleksey Shipilev
8a79f26795 8240217: Shenandoah: remove ShenandoahEvacAssist
Reviewed-by: rkennke
2020-02-28 17:59:52 +01:00
Aleksey Shipilev
6ad1db40d8 8240216: Shenandoah: remove ShenandoahTerminationTrace
Reviewed-by: zgu
2020-02-28 17:59:51 +01:00
Aleksey Shipilev
5afeeed5b2 8240215: Shenandoah: remove ShenandoahAllocationTrace
Reviewed-by: rkennke
2020-02-28 17:59:50 +01:00
Lutz Schmidt
637795e0a7 8239931: [win][x86] vtable stub generation: assert failure (code size estimate) follow-up
Reviewed-by: mdoerr
2020-02-28 16:36:47 +01:00
Peter Tribble
0cd6d13b24 8240231: Build failure on illumos after 8238988
Add missing cast

Reviewed-by: dcubed, shade
2020-02-28 10:16:44 -05:00
Christian Hagedorn
bd25c0e01a 8239852: java/util/concurrent tests fail with -XX:+VerifyGraphEdges: assert(!VerifyGraphEdges) failed: verification should have failed
Remove an assertion which was too strong for some valid IRs when running with -XX:+VerifyGraphEdges

Reviewed-by: neliasso, thartmann
2020-02-28 15:33:44 +01:00
Magnus Ihse Bursie
290c21f067 8239799: Cross-compilation ARM32/AARCH clientvm builds fails after JDK-8239450
Reviewed-by: erikj
2020-02-28 09:53:18 +01:00
Xue-Lei Andrew Fan
0ab5b968fb 8240193: loadLibrary("osxsecurity") should not be removed
Reviewed-by: ascarpino
2020-02-27 21:14:59 -08:00
Chris Plummer
511501048c 8193237: SA: ClhsdbLauncher should show the command being executed
Reviewed-by: sspitsyn, amenkov
2020-02-27 13:57:33 -08:00
Chris Plummer
3a5ee7b422 8239379: ProblemList serviceability/sa/sadebugd/DebugdConnectTest.java on OSX
Reviewed-by: sspitsyn
2020-02-27 13:52:49 -08:00
Chris Plummer
518f1f9a6e 8240142: Fix copyright in ThreadGroupReferenceImpl.h
Reviewed-by: dholmes
2020-02-27 13:51:04 -08:00
Jonathan Gibbons
39d75e894b 8239804: Cleanup/simplify HTML/CSS for general block tags
Reviewed-by: prappo, hannesw
2020-02-27 12:16:03 -08:00
Bradford Wetmore
4a951001b5 8239815: Update ECC legal file
Reviewed-by: mullan
2020-02-27 11:48:18 -08:00
Joe Darcy
ed62024978 8225495: Note whether returned annotations are declaration annotations or type annotations
Reviewed-by: jjg
2020-02-27 10:30:08 -08:00
Zhengyu Gu
efdc0037b8 8239354: Shenandoah: minor enhancements to traversal GC
Reviewed-by: rkennke
2020-02-27 12:17:31 -05:00
Daniel D. Daugherty
882633a738 8239873: [TESTBUG] FieldLayout/OldLayoutCheck.java fails after the fix for JDK-8239503
Don't run the test with -XX:-UseCompressedOops.

Reviewed-by: fparain, hseigel
2020-02-27 11:34:48 -05:00
Zhengyu Gu
5551d3d888 8237632: Shenandoah: accept NULL fwdptr to cooperate with JVMTI and JFR
Reviewed-by: shade, rkennke
2020-02-26 15:32:25 -05:00
Harold Seigel
a1e9328367 8235225: Replace CHECK_0 with CHECK_NULL for non-integer returning methods
Change CHECK_0 to CHECK_NULL and CHECK_false where appropriate

Reviewed-by: mikael, dholmes, coleenp
2020-02-27 13:00:05 +00:00
Nils Eliasson
2ba0575cea 8239878: Bug in PrintEliminateAllocations code causes TestClhsdbJstackLock.java to fail
Reviewed-by: shade
2020-02-27 13:11:06 +01:00
Rahul Raghavan
c8ed0128c2 8235995: Remove src/jdk.internal.vm.compiler/.mx.graal directory
Removed src/jdk.internal.vm.compiler/.mx.graal directory and files

Reviewed-by: dlong
2020-02-27 16:06:43 +05:30
Amy Lu
67ba91ba52 8239979: sun/security/tools/keytool/ExtOptionCamelCase.java is not run
Reviewed-by: rhalade
2020-02-27 12:19:24 +08:00
David Holmes
eef5ef88b3 8240141: Incorrect copyright header in src/hotspot/os_cpu/linux_sparc/os_linux_sparc.cpp
Reviewed-by: iignatyev
2020-02-26 23:10:57 -05:00
Jesper Wilhelmsson
52fe584c5a Added tag jdk-15+12 for changeset 2ec0ff304263 2020-02-27 03:10:23 +01:00
Daniel D. Daugherty
530d53f84e 8240135: ProblemList vmTestbase/vm/mlvm/meth/stress/compiler/deoptimize/Test.java#id1
Reviewed-by: iignatyev, dholmes
2020-02-26 19:41:39 -05:00
Daniel D. Daugherty
cea9a9b8ce 8240134: ProblemList javax/script/Test7.java
Reviewed-by: dholmes
2020-02-26 19:39:32 -05:00
Daniel D. Daugherty
be1007cfaf 8240132: ProblemList com/sun/jdi/InvokeHangTest.java
Reviewed-by: mikael
2020-02-26 19:33:14 -05:00
Sergei Tsypanov
f729514ebd 8240094: Optimize empty substring handling
Reviewed-by: redestad, igerasim, jlaskey
2020-02-26 21:24:02 +01:00
Kim Barrett
257de28b2c 8238979: Improve G1DirtyCardQueueSet handling of previously paused buffers
Move enqueuing of previously paused buffers.

Reviewed-by: sangheki, sjohanss
2020-02-26 14:36:01 -05:00
Aleksey Shipilev
6913bbc200 8240076: Shenandoah: pacer should cover reset and preclean phases
Reviewed-by: zgu
2020-02-26 19:36:56 +01:00
Aleksey Shipilev
d26dadef43 8240070: Shenandoah: remove obsolete ShenandoahCommonGCStateLoads
Reviewed-by: rkennke
2020-02-26 19:36:50 +01:00
Aleksey Shipilev
331f492ad5 8240069: Shenandoah: turn more flags diagnostic
Reviewed-by: rkennke
2020-02-26 19:36:43 +01:00
Igor Ignatyev
b09add641b 8239500: jittester shouldn't use non-deterministic System methods
Reviewed-by: lmesnik, thartmann
2020-02-26 10:09:40 -08:00
Pavel Rappo
e8c32ccb2f 8239876: Improve SearchIndexItem
Reviewed-by: jjg
2020-02-26 15:34:04 +00:00
Ravi Reddy
9b12c80e21 8238452: Keytool generates wrong expiration date if validity is set to 2050/01/01
Reviewed-by: pkoppula, weijun, coffeys
2020-02-26 18:06:19 +03:00
Xin Liu
b08595d844 8239066: make LinkedList<T> more generic
Reviewed-by: phh, simonis
2020-02-26 12:35:43 +01:00
Alexey Ivanov
fa7f53ee93 8235147: Release HDC from passiveDCList sooner
Reviewed-by: serb, jdv
2020-02-25 20:00:24 +00:00
Zhengyu Gu
b4ff6abe63 8239926: Shenandoah: Shenandoah needs to mark nmethod's metadata
Reviewed-by: rkennke, shade
2020-02-25 12:01:35 -05:00
Erik Österlund
8b73900222 8241074: JDK-8240363 broke the build on AArch64
Reviewed-by: shade
2020-03-16 17:13:56 +00:00
Severin Gehwolf
add18914fb 8239785: Cgroups: Incorrect detection logic on old systems in hotspot
Return NULL subsystem if no cgroup controllers are mounted.

Reviewed-by: bobv, mbaesken
2020-02-25 12:17:26 +01:00
Vladimir Ivanov
48c48b7a85 8238696: x86: Enumerate all detected CPU features in VM_Version feature string
Reviewed-by: dholmes, kvn
2020-03-12 16:42:03 +03:00
Zhengyu Gu
1f189228b6 8240915: Shenandoah: Remove unused fields in init mark tasks
Reviewed-by: rkennke
2020-03-12 09:25:08 -04:00
Yudi Zheng
21d3eaf587 8240831: [JVMCI] Export missing vmStructs entries used by JVMCI compilers
Reviewed-by: kvn, thartmann
2020-03-12 13:20:53 +01:00
Claes Redestad
d49cf17db0 8240669: Devirtualize Relocation::type
Reviewed-by: rbackman, thartmann
2020-03-05 16:07:17 +01:00
Claes Redestad
7fe46b2464 8240772: x86_64: Pre-generate Assembler::popa, pusha and vzeroupper
Reviewed-by: iklam, kvn
2020-03-12 13:07:21 +01:00
Richard Reingruber
c5bd0d7934 8234146: compiler/jsr292/ContinuousCallSiteTargetChange.java times out on SPARC
Reviewed-by: vlivanov, thartmann
2020-03-12 11:51:00 +01:00
Weijun Wang
0368e41c12 8240261: Use make/templates/gpl-cp-header in FieldGen.java
Reviewed-by: erikj
2020-03-12 18:21:59 +08:00
Kelvin Nilsen
19e02810db 8225216: gc/logging/TestMetaSpaceLog.java doesn't work for Shenandoah
Reviewed-by: shade
2020-03-12 06:47:17 +01:00
Ioi Lam
b0f32c4431 8240548: [TESTBUG] CDS NoClassToArchive.java fails with Graal
Reviewed-by: dholmes, mchung
2020-03-11 21:37:45 -07:00
Jesper Wilhelmsson
92686e1add Added tag jdk-15+14 for changeset 1d6ceb13e142 2020-03-12 03:10:32 +01:00
Yasumasa Suenaga
069d9e792e 8234624: jstack mixed mode should refer DWARF
Reviewed-by: sspitsyn, kevinw
2020-03-12 09:23:05 +09:00
Jonathan Gibbons
5b9a09cb9c 8240138: Cleanup HtmlTree
Reviewed-by: prappo
2020-03-11 15:46:17 -07:00
Magnus Ihse Bursie
6b487c3cfe 8240866: Typo in JDK-8240820 messes up configure --help
Reviewed-by: erikj
2020-03-11 22:25:18 +01:00
Alex Menkov
5531199db4 8240340: java/lang/management/ThreadMXBean/Locks.java is buggy
Reviewed-by: dholmes, sspitsyn
2020-03-11 13:39:27 -07:00
Serguei Spitsyn
db69852ac2 8240881: [BACKOUT] 8222489 jcmd VM.system_properties gives unusable paths on Windows
Undo the 8222489 changeset

Reviewed-by: dcubed, iklam
2020-03-11 20:28:43 +00:00
Pavel Rappo
8c6649dea0 8239487: Better links generation for system properties found in HTML files
8239485: Define behavior of the System Properties page when no system properties are available

Reviewed-by: jjg
2020-03-11 17:09:10 +00:00
Adam Sotona
5b323a8656 8230117: Remove unused JAR tool classes
Reviewed-by: lancea, clanger
2020-03-11 12:30:23 -04:00
Alexey Bakhtin
14e37ba3df 8239798: SSLSocket closes socket both socket endpoints on a SocketTimeoutException
Reviewed-by: xuelei
2020-03-11 19:14:08 +03:00
Andrew Haley
6275aee690 Merge 2020-03-11 15:02:09 +00:00
Aleksey Shipilev
eb974fad6d 8240868: Shenandoah: remove CM-with-UR piggybacking cycles
Reviewed-by: rkennke, zgu
2020-03-11 14:17:52 +01:00
Vipin Sharma
d778097371 8240524: Remove explicit type argument in test jdk/java/lang/Boolean/MakeBooleanComparable.java
Reviewed-by: clanger, vtewari
2020-03-11 13:50:13 +01:00
Andrew Haley
0992e17b97 8240829: Use a fast O(1) algorithm for exact_log2
Reviewed-by: jrose, redestad
2020-03-11 12:38:57 +00:00
Andrew Haley
661c073594 8240615: is_power_of_2() has Undefined Behaviour and is inconsistent
Reviewed-by: jrose, redestad
2020-03-10 10:49:01 -04:00
Stefan Karlsson
534331f0a1 8240532: heap inspection prints trailing @ after name of module without version
Reviewed-by: lfoltan
2020-03-04 18:08:09 +01:00
Stefan Karlsson
43e0fc04b0 8240529: CheckUnhandledOops breaks NULL check in Modules::define_module
Reviewed-by: coleenp, lfoltan, hseigel
2020-03-04 15:50:49 +01:00
Stefan Karlsson
593a05c93a 8240530: CheckUnhandledOops breaks BacktraceBuilder::set_has_hidden_top_frame
Reviewed-by: coleenp, dholmes
2020-03-04 15:50:51 +01:00
Erik Helin
1c1acb4757 8237566: FindTests.gmk should only include existing TEST.ROOT files
Reviewed-by: erikj
2020-03-10 16:58:29 +01:00
Magnus Ihse Bursie
441e16e2db 8240820: Replace AC_ARG_ENABLE with UTIL_ARG_ENABLE
Reviewed-by: erikj
2020-03-11 08:34:14 +01:00
Yasumasa Suenaga
99b28daf56 8240725: Some functions might not work with CJK character
Reviewed-by: naoto
2020-03-11 13:14:40 +09:00
Weijun Wang
80ca356e7e 8239928: ec/ECDSAJavaVerify.java failed due to timeout
Reviewed-by: valeriep
2020-03-11 10:33:33 +08:00
Chihiro Ito
08c3b1fc8f 8222489: jcmd VM.system_properties gives unusable paths on Windows
Reviewed-by: sspitsyn, ysuenaga
2020-03-07 23:08:33 +09:00
Adam Sotona
5eef59d22d 8235216: typo in test filename
Renamed MutliReleaseModuleInfoTest.java to MultiReleaseModuleInfoTest.java

Reviewed-by: jjg
2020-03-10 17:33:37 +01:00
Jonathan Gibbons
0fd2ac701f 8240697: convert builders to high-level Content blocks
Reviewed-by: prappo
2020-03-10 14:46:28 -07:00
Vladimir Kozlov
39ab073173 8240830: [BACKOUT] 8240195: some jaotc failures of fastdebug build with specific flags
Reviewed-by: dcubed
2020-03-10 14:39:39 -07:00
Yumin Qi
53c6887a3d 8240840: Rollback whitebox.cpp in push 8240691
Whitebox.cpp should not change in 8240691, which is accidentally included.

Reviewed-by: iklam, ccheung
2020-03-10 14:37:37 -07:00
Yudi Zheng
75632a6df2 8240610: [JVMCI] Export VMVersion::_has_intel_jcc_erratum to JVMCI compiler
Reviewed-by: kvn, thartmann
2020-03-10 21:48:43 +01:00
Yumin Qi
0e3529ad10 8240691: ClhsdbCDSJstackPrintAll incorrectly thinks CDS is in use
Fix by checking "UseSharedSpaces = false" for CDS enabled.

Reviewed-by: iklam
2020-03-10 11:52:53 -07:00
Vladimir Ivanov
02916dbb0b 8239009: C2: Don't use PSHUF to load scalars from memory on x86
Reviewed-by: kvn, dlong
2020-03-10 20:51:09 +03:00
Vladimir Ivanov
1dcd3d2c50 8239008: C2: Simplify Replicate support for sub-word types on x86
Reviewed-by: kvn
2020-03-10 20:51:08 +03:00
Vladimir Ivanov
072cfd2e48 8238681: Make -XX:UseSSE flag x86-specific
Reviewed-by: dholmes, kvn
2020-03-10 20:51:07 +03:00
Erik Gahlin
8208b9ce32 8240778: JFR: Create timer task lazily
Reviewed-by: mgronlun, mseledtsov
2020-03-10 18:39:16 +01:00
Roland Westrelin
42ff13ab82 8240195: some jaotc failures of fastdebug build with specific flags
Reviewed-by: kvn, thartmann
2020-03-09 09:42:30 +01:00
Dongbo He
f4b5488181 8240734: ModuleHashes attribute not reproducible between builds
Reviewed-by: alanb
2020-03-09 18:21:58 +08:00
Markus Grönlund
aac5b27b6a 8238180: RunThese30M failed "assert(t->jfr_thread_local()->shelved_buffer() == __null) failed: invariant"
Reviewed-by: egahlin
2020-03-10 15:44:59 +01:00
John Jiang
edaf548beb 8238740: java/net/httpclient/whitebox/FlowTestDriver.java would not specify a TLS protocol
Reviewed-by: dfuchs
2020-03-10 21:43:46 +08:00
Ivan Walulya
d49eb0d9a7 8240668: G1 list of all PerRegionTable does not have to be a double linkedlist any more
Reviewed-by: kbarrett, tschatzl
2020-03-10 10:19:34 +01:00
Roland Westrelin
43e0165eea 8240794: [BACKOUT] 8238384 CTW: C2 compilation fails with "assert(store != load->find_exact_control(load->in(0))) failed: dependence cycle found"
Reviewed-by: thartmann
2020-03-10 10:45:01 +01:00
Aditya Mandaleeka
d112950b5b 8230853: Shenandoah: replace leftover assert(is_in(...)) with rich asserts
Reviewed-by: shade
2020-03-09 22:41:11 +01:00
Aleksey Shipilev
9722dfc9bc 8240750: Shenandoah: remove leftover files and mentions of ShenandoahAllocTracker
Reviewed-by: rkennke
2020-03-09 22:41:04 +01:00
Aleksey Shipilev
2ba5ed53d6 8240749: Shenandoah: refactor ShenandoahUtils
Reviewed-by: rkennke
2020-03-09 22:40:55 +01:00
Erik Gahlin
f09cda2c70 8239584: EventStream::close should state that stream will be stopped
Reviewed-by: mgronlun, mseledtsov
2020-03-09 21:43:01 +01:00
Erik Gahlin
672992f6ac 8222000: JFR: Process start event
Reviewed-by: mgronlun, rriggs
2020-03-09 21:25:38 +01:00
Naoto Sato
123ac07064 8239836: ZoneRules.of() doesn't check transitionList/standardOffsetTL arguments validity
Reviewed-by: rriggs, joehw, scolebourne
2020-03-09 13:20:45 -07:00
Daniel Fuchs
5c8f935641 8240754: Instrument FlowTest.java to provide more debug traces
Reviewed-by: chegar
2020-03-09 17:48:40 +00:00
Henry Jen
dc17821807 8240629: argfiles parsing broken for argfiles with comment cross 4096 bytes chunk
Reviewed-by: alanb, mchung
2020-03-06 13:48:16 -08:00
Dongbo He
aa2be1141d 8240576: JVM crashes after transformation in C2 IdealLoopTree::merge_many_backedges
Reviewed-by: kvn
2020-03-09 22:31:12 +08:00
Mario Torre
e0fec43a9b 8240738: nested comment in JVM.java and other minor formatting errors
Reviewed-by: egahlin
2020-03-09 14:57:41 +01:00
Kevin Walls
a11912ca06 8240295: hs_err elapsed time in seconds is not accurate enough
Reviewed-by: dholmes, sspitsyn
2020-03-09 12:54:53 +00:00
Aditya Mandaleeka
3ff8eff804 8220503: Move ShenandoahTerminatorTerminator::should_exit_termination out of header
Reviewed-by: rkennke
2020-03-09 12:29:13 +01:00
Roland Westrelin
b58c8601bb 8239335: C2: assert((Value(phase) == t) || (t != TypeInt::CC_GT && t != TypeInt::CC_EQ)) failed: missing Value() optimization
Reviewed-by: kvn, thartmann
2020-03-05 15:56:49 +01:00
Kim Barrett
1c1fb44ac1 8240722: [BACKOUT] G1DirtyCardQueue destructor has useless flush
Backout JDK-8240133

Reviewed-by: sjohanss
2020-03-09 04:06:37 -04:00
Rajan Halade
ba2e4178ce 8240686: 70 security tests are failing on Windows due to "Fetch artifact failed"
Reviewed-by: xuelei
2020-03-09 00:45:01 -07:00
Ioi Lam
046dcdc0bc 8240613: InstanceKlass::set_init_state failed with assert(good_state || state == allocated)
Reviewed-by: dcubed
2020-03-08 15:06:27 -07:00
Kim Barrett
7806ca1477 8240133: G1DirtyCardQueue destructor has useless flush
Removed useless call to flush.

Reviewed-by: tschatzl, sjohanss
2020-03-08 17:33:48 -04:00
Ichiroh Takiguchi
3d9dddd658 8239965: XMLEncoder/Test4625418.java fails due to "Error: Cp943 - can't read properly"
Cp943 and x-IBM943 should skip on XMLEncoder/Test4625418.java

Reviewed-by: naoto
2020-03-08 15:15:38 +09:00
Boris Ulasevich
d0e44e5bb4 8239514: Build for arm-linux-gnueabihf fails with undefined reference read_polling_page
Reviewed-by: dsamersoff, dholmes
2020-03-07 16:27:00 +03:00
Vyom Tewari
ff8e7d4087 8238579: HttpsURLConnection drops the timeout and hangs forever in read
HttpsURLConnection drops the timeout and hangs forever in read

Reviewed-by: dfuchs
2020-03-07 18:35:20 +05:30
Jie Fu
f222cb8b8c 8240695: Build is broken when cds is disabled after JDK-8232081
Reviewed-by: iklam
2020-03-07 14:42:55 +08:00
Jonathan Gibbons
c46623d071 8240137: Support chained use of Content.add
Reviewed-by: hannesw
2020-03-06 18:03:09 -08:00
Mikael Vidstedt
c203cebcdf 8240535: Add additional linux-aarch64 jib profiles
Reviewed-by: erikj
2020-03-06 17:33:07 -08:00
Kim Barrett
9f334a1640 8240239: Replace ConcurrentGCPhaseManager
Replace ConcurrentGCPhaseManager with ConcurrentGCBreakpoints

Co-authored-by: Per Liden <per.liden@oracle.com>
Reviewed-by: kbarrett, pliden, sangheki
2020-03-06 18:42:13 -05:00
Calvin Cheung
9e2ab1e363 8232081: Try to link all classes during dynamic CDS dump
During CDS dynamic dump, link all classes loaded by the builtin class loaders in JVM_BeforeHalt() and JavaThread::invoke_shutdown_hooks().

Reviewed-by: iklam, dholmes
2020-03-06 15:33:13 -08:00
Roman Kennke
8c1204de6b 8240315: Shenandoah: Rename ShLBN::get_barrier_strength()
Reviewed-by: shade
2020-03-06 21:51:32 +01:00
Roger Riggs
375d0c1325 8239893: Windows handle Leak when starting processes using ProcessBuilder
Reviewed-by: bpb, naoto
2020-03-06 13:52:35 -05:00
Brian Burkhalter
e2f4319171 4617266: (se spec) SelectionKey.OP_READ/OP_WRITE documentation errors
Reviewed-by: lancea, alanb, darcy
2020-03-06 10:34:31 -08:00
Sean Mullan
f87ebd9e5d 8240684: ProblemList 70 security tests that are failing on Windows due to "Fetch artifact failed"
Reviewed-by: xuelei, stsmirno, dcubed
2020-03-06 13:17:03 -05:00
Aleksey Shipilev
d8bded6fb4 8240671: Shenandoah: refactor ShenandoahPhaseTimings
Reviewed-by: rkennke, zgu
2020-03-06 17:03:42 +01:00
Severin Gehwolf
c92adf4158 8240189: [TESTBUG] Some cgroup tests are failing after JDK-8231111
Reviewed-by: mbaesken, bobv
2020-02-24 19:03:34 +01:00
Ralf Schmelter
14c098610a 8240440: Implement get_safepoint_workers() for parallel GC
Reviewed-by: tschatzl, kbarrett
2020-03-06 16:19:32 +01:00
Ivan Walulya
f0cd9dd5c4 8240592: HeapRegionManager::rebuild_free_list logs 0s for the estimated free regions before
Reviewed-by: sjohanss, kbarrett
2020-03-06 14:10:41 +01:00
Aditya Mandaleeka
95a497ae9f 8236981: Remove ShenandoahTraversalUpdateRefsClosure
Reviewed-by: shade, rkennke
2020-03-06 13:41:14 +01:00
Ivan Walulya
25d2db06c4 8240589: OtherRegionsTable::_num_occupied not updated correctly
Reviewed-by: tschatzl, sjohanss
2020-03-06 11:40:03 +01:00
Martin Doerr
3adad5a645 8239856: [ntintel] asserts about copying unaligned array element
Reviewed-by: stuefe, sspitsyn
2020-03-06 11:04:31 +01:00
Matthias Baesken
f10fd7a78e 8240603: Windows 32bit compile error after 8238676
Reviewed-by: clanger, dholmes
2020-03-05 13:12:51 +01:00
Ramkumar Sunderbabu
9c6a769618 8153430: jdk regression test MletParserLocaleTest, ParserInfiniteLoopTest reduce default timeout
Removed timeout=5 from the tests so that default timeout is used

Reviewed-by: cjplummer
2020-03-06 10:27:24 +05:30
Doug Simon
f456f151cc 8240538: [JVMCI] add test for JVMCI ConstantPool class
Reviewed-by: kvn, iignatyev
2020-03-05 16:32:52 -08:00
Joe Darcy
001b8056c8 8240624: Note mapping of RoundingMode constants to equivalent IEEE 754-2019 attribute
Reviewed-by: bpb
2020-03-05 15:07:20 -08:00
Vicente Romero
4a32eda417 8240454: incorrect error message: as of release 13, 'record' is a restricted type name
Reviewed-by: jlahoda
2020-03-05 16:46:24 -05:00
Lance Andersen
3607ddd55a 8211917: Zip FS should add META-INF/MANIFEST.FS at the start of the Zip/JAR
Reviewed-by: clanger, jpai
2020-03-05 13:56:40 -05:00
Alexandre Iline
db91be2ee1 8240241: Add support for JCov DiffCoverage to make files
Reviewed-by: erikj, ihse
2020-03-05 09:51:03 -08:00
Markus Grönlund
d75e62e16b 8239376: JFR: assert(!cld->is_unsafe_anonymous()) failed: invariant
Reviewed-by: coleenp, lfoltan, hseigel
2020-03-05 17:55:53 +01:00
Claes Redestad
78982f7c11 8240528: OopMap cleanup
Reviewed-by: kvn, thartmann
2020-03-05 13:14:31 +01:00
Erik Österlund
3ddd7b86c8 8240370: Provide Intel JCC Erratum opt-out
Reviewed-by: redestad, vlivanov, thartmann
2020-03-05 11:12:51 +00:00
Yasumasa Suenaga
3490262a6b 8240197: Cannot start JVM when $JAVA_HOME includes CJK characters
Reviewed-by: iklam, stuefe, rschmelter
2020-03-05 19:46:07 +09:00
Ravi Reddy
b2f1f73e75 8183369: RFC unconformity of HttpURLConnection with proxy
HttpURLConnection retried with proxy if the connection fails on first attempt as per RFC

Reviewed-by: chegar, dfuchs, vtewari
2020-03-05 03:27:17 -05:00
Qi Feng
d1818942b0 8240286: [TESTBUG] Test command error in hotspot/jtreg/compiler/loopopts/superword/SumRedAbsNeg_Float.java
Reviewed-by: kvn, thartmann
2020-03-05 14:51:41 +08:00
Ioi Lam
7ba18fc015 8240244: Avoid calling resolve_super_or_fail in SystemDictionary::load_shared_class
Reviewed-by: redestad, lfoltan, minqi
2020-03-04 22:26:48 -08:00
Yumin Qi
6cb2e02af6 8240546: runtime/cds/appcds/TestZGCWithCDS.java fails with Graal
Test failed since Graal does not work with ZGC, fixed in test to skip Graal if ZGC.

Reviewed-by: ccheung
2020-03-04 21:29:14 -08:00
Jesper Wilhelmsson
10b09c7982 Added tag jdk-15+13 for changeset 1c06a8ee8aca 2020-03-05 02:02:05 +01:00
Calvin Cheung
5229896f4f 8240481: Remove CDS usage of InstanceKlass::is_in_error_state
Track the classes which fail verification during CDS dumping in DumpTimeSharedClassInfo.

Reviewed-by: iklam, minqi
2020-03-04 15:34:53 -08:00
Jonathan Gibbons
edb59b58b9 8239817: Eliminate use of contentContainer and friends
Reviewed-by: hannesw
2020-03-04 12:58:13 -08:00
Aleksey Shipilev
01ef6d791f 8240534: Shenandoah: ditch debug safepoint timeout adjustment
Reviewed-by: rkennke
2020-03-04 19:23:13 +01:00
Volker Simonis
ff843fabec 8240333: jmod incorrectly updates .jar and .jmod files during hashing
Reviewed-by: martin, alanb, lancea
2020-03-04 14:55:43 +01:00
Andy Herrick
128f083359 8238692: MacOS runtime Installer issue
Reviewed-by: kizune, asemenyuk, almatvee
2020-03-03 18:10:15 -05:00
Andy Herrick
ef4053ee41 8237966: Creating runtime pkg requires --mac-package-identifier
Reviewed-by: kizune, asemenyuk, almatvee
2020-03-03 18:07:11 -05:00
Andy Herrick
aa54795965 8237967: No proper error message when --runtime-image points to non-existent path
Reviewed-by: kizune, asemenyuk, almatvee
2020-03-03 17:58:41 -05:00
Jan Lahoda
e44dcf09c0 8234896: Tab completion does not work for method references in jshell
Reviewed-by: rfield
2020-03-04 13:43:28 +01:00
Jan Lahoda
0c9983887d 8228451: NPE in Attr.java when -XDshould-stop.ifError=FLOW
Avoiding parsing of compound assignment as a type.

Reviewed-by: jjg, vromero
2020-03-04 13:43:27 +01:00
Jan Lahoda
9d57eefe6e 8239575: javadoc triggers javac AssertionError for annos on modules
Ensure ModuleSymbols are implicitly loaded only once in the javadoc context.

Reviewed-by: jjg
2020-03-04 13:43:25 +01:00
Aleksey Shipilev
b3666b94a3 8240511: Shenandoah: parallel safepoint workers count should be ParallelGCThreads
Reviewed-by: rkennke
2020-03-04 11:50:28 +01:00
Alexey Bakhtin
8e74ed46df 8239787: AArch64: String.indexOf may incorrectly handle empty strings
Reviewed-by: aph, lmesnik, yan
2020-03-03 13:06:50 +03:00
Matthias Baesken
dd393fadc4 8239462: jdk.hotspot.agent misses some ReleaseStringUTFChars calls in case of early returns
Reviewed-by: clanger, amenkov, sspitsyn
2020-02-24 09:59:31 +01:00
Ao Qi
2298819af8 8239423: jdk/jfr/jvm/TestJFRIntrinsic.java failed with -XX:-TieredCompilation
Reviewed-by: iignatyev, dholmes
2020-02-26 00:07:21 -05:00
Nick Gasson
f6e5c5a7ea 8238705: [TESTBUG] jfr/event/gc/stacktrace/TestMetaspace* are stable with Xcomp on AArch64
Reviewed-by: mseledtsov, egahlin
2020-02-26 09:58:15 +08:00
Joe Darcy
bdc481e96d 8193553: Provide better guidance on using javax.lang.model visitors
Reviewed-by: jjg
2020-02-25 17:50:08 -08:00
Pengfei Li
934db29ac5 8239549: AArch64: Backend support for MulAddVS2VI node
Reviewed-by: aph
2020-02-26 09:33:29 +08:00
Naoto Sato
e6f0c6bb9a 8239976: Put JDK-8239965 on the ProblemList.txt
Reviewed-by: dcubed
2020-02-25 15:49:24 -08:00
Erik Gahlin
dd8dbb66eb 8223066: "jfr metadata" output the @Name annotation twice
Co-authored-by: Chihiro Ito <chiroito107@gmail.com>
Reviewed-by: mgronlun, egahlin
2020-02-25 20:45:29 +01:00
Pankaj Bansal
f916df3b0e 8238985: [TESTBUG] The arrow image is blue instead of green
Reviewed-by: serb, psadhukhan
2020-02-21 17:09:01 +05:30
Pankaj Bansal
b5e162200b 8153090: TAB key cannot change input focus after the radio button in the Color Selection dialog
Reviewed-by: serb, psadhukhan
2020-02-21 17:00:23 +05:30
Pankaj Bansal
b5fdcb0851 8216329: Cannot resize CheckBoxItemMenu in Synth L&F with setHorizontalTextPosition
Reviewed-by: serb, psadhukhan
2020-02-21 16:31:45 +05:30
Severin Gehwolf
53ee0c4963 8239559: Cgroups: Incorrect detection logic on some systems
Adjust heuristic with cgroup mounts according to mountinfo

Reviewed-by: bobv, mbaesken
2020-02-20 20:56:49 +01:00
Ichiroh Takiguchi
1b92518389 8235834: IBM-943 charset encoder needs updating
Apply 34B003AF.RPMAP130 definition into encoder

Reviewed-by: naoto
2020-02-25 22:47:11 +09:00
Aleksey Shipilev
98e0a704d4 8239904: Shenandoah: accumulated penalties should not be over 100% of capacity
Reviewed-by: rkennke
2020-02-25 12:35:29 +01:00
Magnus Ihse Bursie
7d5652f14a 8239794: Move -Os from JVM feature 'minimal' to new feature 'opt-size'
Reviewed-by: erikj, dholmes
2020-02-25 09:46:12 +01:00
Magnus Ihse Bursie
00e009d729 8239789: Follow-up on JVM feature rewrite
Reviewed-by: erikj, pliden, egahlin
2020-02-25 09:41:47 +01:00
Magnus Ihse Bursie
d7a0206262 8239860: Add support for testing the configure script
Reviewed-by: erikj
2020-02-25 09:37:59 +01:00
Jie Fu
ca838e68c9 8239885: [TESTBUG] compiler/allocation/TestAllocation.java fails with release VMs
Reviewed-by: thartmann
2020-02-25 16:22:12 +08:00
Fairoz Matte
956e20ed16 8239557: [TESTBUG] VeryEarlyAssertTest.java validating "END." marker at lastline is not always true
Reviewed-by: dholmes, mseledtsov
2020-02-24 23:44:29 -05:00
Jie Fu
5a7b5863f0 8239886: Minimal VM build fails after JDK-8237499
Reviewed-by: dholmes
2020-02-25 10:34:33 +08:00
Chihiro Ito
9c35471ae0 8219904: ClassCastException when calling FlightRecorderMXBean#getRecordings()
Reviewed-by: egahlin, mseledtsov
2020-02-25 03:28:31 +01:00
Denghui Dong
52d7a61e8d 8237499: JFR: Include stack trace in the ThreadStart event
Reviewed-by: egahlin
2020-02-24 23:24:14 +01:00
Naoto Sato
8493812702 8239520: ValueRange.of(long, long, long) does not throw IAE on invalid inputs
Reviewed-by: rriggs
2020-02-24 14:16:20 -08:00
Naoto Sato
c30f84536e 8239837: Typo in source code of ZoneOffsetTransitionRule leaking to Javadocs
Reviewed-by: lancea
2020-02-24 12:20:30 -08:00
Igor Ignatyev
c4059c667d 8238943: switch to jtreg 5.0
Reviewed-by: erikj, jjg, joehw
2020-02-24 11:50:18 -08:00
Aleksey Shipilev
649a4d0613 8239492: [x86] Turn MacroAssembler::verify_oop into macro recording file and line
Reviewed-by: rrich, vlivanov, pliden
2020-02-24 18:30:02 +01:00
Aleksey Shipilev
8167fe956f 8239868: Shenandoah: ditch C2 node limit adjustments
Reviewed-by: rkennke
2020-02-24 18:30:00 +01:00
Daniel Fuchs
f7c819a72d 8239052: java/net/httpclient/whitebox/SSLEchoTubeTestDriver.java failed with BufferUnderflowException against TLSv1.3
The test assumed that ByteBuffer would be split at long boundaries. This is obviously not always the case. A carry has been added to support reading a long split over several buffers.

Reviewed-by: chegar
2020-02-24 17:19:32 +00:00
Erik Gahlin
965e330cb4 8239793: 'jfr' tool should hide hidden frames
Reviewed-by: mgronlun, mseledtsov
2020-02-24 17:23:18 +01:00
Erik Gahlin
266446f316 8239585: JFR: Native events should support empty payloads
Reviewed-by: mgronlun
2020-02-24 17:10:01 +01:00
Hannes Wallnöfer
bb7344d919 8232438: Remove ?is-external=true from external links
Reviewed-by: prappo
2020-02-24 16:42:22 +01:00
Erik Österlund
ccdde49728 8234160: Enable optimized mitigation for Intel jcc erratum in C2
Reviewed-by: thartmann, vlivanov, pliden
2020-02-24 14:37:30 +00:00
Erik Gahlin
0f21211e15 8239581: Improve javadoc example for @jdk.jfr.Category
Reviewed-by: mgronlun, mseledtsov
2020-02-24 15:03:28 +01:00
Richard Reingruber
bc87e7829e 8239449: [TESTBUG] test/hotspot/jtreg/runtime/TLS/TestTLS.java: skip test if glibc too old for AdjustStackSizeForTLS
Reviewed-by: dholmes, jiangli
2020-02-24 14:25:35 +01:00
Per Lidén
a9207420c5 8239129: ZGC: Allow -XX:AllocateHeapAt to use any filesystem
Co-authored-by: Yasumasa Suenaga <yasuenag@gmail.com>
Reviewed-by: stefank, pliden, ysuenaga
2020-02-24 13:52:07 +01:00
Jan Lahoda
acd2d32913 8239536: Can't use java.util.List object after importing java.awt.List
Using full qualified names for synthetic types; ensuring the user is warned when a variable becomes undefined due to a dependency change.

Reviewed-by: rfield
2020-02-24 11:43:04 +01:00
Richard Reingruber
4f20fa5246 8239854: Non-PCH gtest build fails after JDK-8239235 due to a missing include
Reviewed-by: shade, mdoerr
2020-02-24 12:04:37 +01:00
Nils Eliasson
38a57e8bed 8238723: yank_alloc_node must remove membar
Reviewed-by: vlivanov, thartmann, roland
2020-02-24 11:31:07 +01:00
Per Lidén
aab0ce5f1c 8239533: ZGC: Make the ZProactive flag non-diagnostic
Reviewed-by: eosterlund, stefank
2020-02-24 11:01:51 +01:00
Claes Redestad
289513cc2b 8239235: Examine SignatureStream performance after consolidation
Reviewed-by: lfoltan, coleenp
2020-02-24 10:20:35 +01:00
Roland Westrelin
86ad195099 8238384: CTW: C2 compilation fails with "assert(store != load->find_exact_control(load->in(0))) failed: dependence cycle found"
Reviewed-by: vlivanov, thartmann
2020-02-20 16:41:05 +01:00
Roland Westrelin
1e796eae8f 8239367: RunThese30M.java failed due to "assert(false) failed: graph should be schedulable"
Reviewed-by: thartmann, vlivanov, neliasso
2020-02-21 15:01:22 +01:00
Xue-Lei Andrew Fan
89448a83d9 8233619: SSLEngine handshake status immediately after the handshake can be NOT_HANDSHAKING rather than FINISHED with TLSv1.3
Reviewed-by: jnimeh
2020-03-03 15:57:01 -08:00
Mikhailo Seledtsov
467ee78a52 8235206: JFR TestCrossProcessStreaming - validate that data can be consumed while it is being produced
Updated test to validate concurrent produce/consume

Reviewed-by: egahlin
2020-03-03 12:43:55 -08:00
Fairoz Matte
ea55699f34 8239055: Wrong implementation of VMState.hasListener
Correct the VMState.hasListener implementation to return WeakReference<VMListener> type

Reviewed-by: sspitsyn, poonam
2020-02-27 19:33:07 -08:00
Coleen Phillimore
3ca275fb91 8225760: oop::raw_set_obj isn't needed
Reviewed-by: hseigel, rkennke
2020-03-03 11:19:35 -05:00
Harold Seigel
cf89ff7a4b 8240324: Improve is_boot_class_loader_data() by adding simple check
Check if cld is the null_cld before looking at the class loader oop

Reviewed-by: coleenp
2020-03-03 15:50:20 +00:00
Claes Redestad
52cfd292cc 8240263: Assertion-only call in Method::link_method affecting product builds
Reviewed-by: shade, dcubed, iklam
2020-03-03 12:41:12 +01:00
Claes Redestad
3fdf26d8dc 8240302: x64: Assembler::reachable redundantly call Relocation::type() more than once
Reviewed-by: kvn, iklam, thartmann
2020-03-03 11:40:53 +01:00
Volker Simonis
2a79146791 8240235: jdk.test.lib.util.JarUtils updates jar files incorrectly
Reviewed-by: martin, clanger, lancea
2020-03-03 11:24:20 +01:00
Nils Eliasson
908a933131 8238759: Clones should always keep the base pointer
Reviewed-by: rkennke, thartmann
2020-03-03 10:29:05 +01:00
Prasanta Sadhukhan
3c72042627 8239334: Tab Size does not work correctly in JTextArea with setLineWrap on
Reviewed-by: serb, pbansal
2020-02-20 14:49:20 +05:30
Matthias Baesken
3f140fafab 8239457: call ReleaseStringUTFChars before early returns in Java_sun_security_pkcs11_wrapper_PKCS11_connect
Reviewed-by: alanb, clanger
2020-02-19 13:37:07 +01:00
David Holmes
bd028945bd 8238988: Rename thread "in stack" methods and add in_stack_range
Reviewed-by: coleenp, dcubed
2020-02-23 22:35:59 -05:00
Weijun Wang
533649b8ca 8237218: Support NIST Curves verification in java implementation
Reviewed-by: ascarpino
2020-02-22 08:10:21 +08:00
Mikhailo Seledtsov
2596e83a34 8223217: [TESTBUG] Create JFR tests with JMX across container boundary
Created a new test for JFR over JMX across container boundary

Reviewed-by: egahlin, lmesnik
2020-02-21 13:01:20 -08:00
Magnus Ihse Bursie
63f939636a 8239708: Split basics.m4 into basic.m4 and util.m4
Reviewed-by: erikj
2020-02-21 18:37:10 +01:00
Christoph Langer
92b26333a4 8239556: (zipfs) remove ExistingChannelCloser facility in zipfs implementation
Reviewed-by: lancea
2020-02-21 16:39:07 +00:00
Lutz Schmidt
6c0e3aeacd 8239456: vtable stub generation: assert failure (code size estimate)
Reviewed-by: thartmann
2020-02-21 15:14:09 +01:00
Ao Qi
305fe226dc 8239424: [TESTBUG] compiler/whitebox/OSRFailureLevel4Test.java failed when TieredCompilation is disabled
Skip test if TieredCompilation is not available.

Reviewed-by: thartmann
2020-02-19 12:10:45 +08:00
Ao Qi
eef02376bd 8239422: [TESTBUG] compiler/c1/TestPrintIRDuringConstruction.java failed when C1 is disabled
Skip test if C1 is not available.

Reviewed-by: thartmann, xliu
2020-02-19 12:09:25 +08:00
Ivan Walulya
976473690b 8216975: Using ForceNUMA does not disable adaptive sizing with parallel gc
Reviewed-by: kbarrett, tschatzl, lkorinth
2020-02-21 10:56:30 +01:00
Matthias Baesken
5275d6e2d9 8238947: tools/jpackage tests fail with old rpmbuild versions
Reviewed-by: clanger, asemenyuk
2020-02-20 14:01:10 +01:00
Matthias Baesken
ed94c0af10 8239537: cgroup MetricsTester testMemorySubsystem fails sometimes when testing memory.kmem.tcp.usage_in_bytes
Reviewed-by: mseledtsov
2020-02-20 11:09:09 +01:00
Magnus Ihse Bursie
da39778d42 8239566: gtest/GTestWrapper.java fails due to "libstlport.so.1: open failed: No such file or directory"
Reviewed-by: redestad
2020-02-21 10:23:51 +01:00
Per Lidén
35db376986 8239503: FieldLayout/OldLayoutCheck.java fails due to "RuntimeException: Misplaced int field: expected 24 to equal 12"
Don't run the test with ZGC.

Reviewed-by: dcubed, coleenp, dholmes
2020-02-20 23:07:02 -05:00
Sean Mullan
fb37c54630 8238560: Cleanup and consolidate algorithms in the jdk.tls.legacyAlgorithms security property
Reviewed-by: xuelei
2020-02-20 16:36:38 -05:00
Daniel Fuchs
f40220f578 8238990: java/net/httpclient/HandshakeFailureTest.java failed against TLSv1.3 on Windows
The SSLTube and SSLFlowDelegate are improved to wrap any non-SSL exception that occur during the handshake in an SSLHandshakeException.

Reviewed-by: chegar
2020-02-20 20:04:15 +00:00
Igor Veresov
23458bf4c5 8238355: Update Graal
Reviewed-by: kvn
2020-02-20 10:11:07 -08:00
Roger Riggs
2d93a28447 8232622: Technical debt in BadAttributeValueExpException
Reviewed-by: dfuchs, sspitsyn
2020-02-20 10:03:05 -05:00
Coleen Phillimore
b4ffe4d8f7 8239461: Use jcod rather than jar files in runtime tests
Reviewed-by: hseigel, lmesnik, dholmes
2020-02-20 07:25:14 -05:00
Claes Redestad
58a5910393 8239347: Refactor Symbol to make _length a standalone field again
Reviewed-by: iklam, coleenp
2020-02-20 13:18:30 +01:00
Alexander Zuev
c6e9d209c5 8237221: [macos] java/awt/MenuBar/SeparatorsNavigation/SeparatorsNavigation.java fails
Reviewed-by: serb
2020-02-17 20:04:31 +03:00
Phil Race
80f5a47b4a 8239091: Reversed arguments in call to strstr in freetype "debug" code
Reviewed-by: bpb
2020-02-14 10:44:30 -08:00
Phil Race
e6915ff175 8238942: Rendering artifacts with LCD text and fractional metrics
Reviewed-by: serb, jdv
2020-02-14 09:10:43 -08:00
Sergey Bylokhov
5705a55161 8233827: Enable screenshots in the enhanced failure handler on Linux/macOS
Reviewed-by: iignatyev
2020-02-13 13:23:31 -08:00
Sergey Bylokhov
784e575134 8238741: java.awt.Robot(GraphicsDevice) constructor does not follow the spec
Reviewed-by: aivanov
2020-02-13 13:21:21 -08:00
Sergey Bylokhov
8d2aa62bd9 8221823: Requested JDialog width is ignored
Reviewed-by: aivanov
2020-02-13 13:19:55 -08:00
Sergey Bylokhov
7af366a7e1 8238738: AudioSystem.getMixerInfo() takes about 30 sec to report a gone audio device
Reviewed-by: prr
2020-02-13 13:17:16 -08:00
Phil Race
ff55c4903b 8238842: AIOOBE in GIFImageReader.initializeStringTable
Reviewed-by: serb, bpb
2020-02-12 14:45:10 -08:00
Prasanta Sadhukhan
dfaaec9aff Merge 2020-02-11 14:24:31 +05:30
Igor Ignatyev
4d00104f55 8238278: vmTestbase/vm/compiler/CodeCacheInfo/Test.java failure after JDK-8237787
Reviewed-by: kvn
2020-02-11 00:42:25 -08:00
Prasanta Sadhukhan
5f44b6ca1b Merge 2020-02-11 13:41:48 +05:30
Sergey Bylokhov
0b3cf5ea13 8237222: [macos] java/awt/Focus/UnaccessibleChoice/AccessibleChoiceTest.java fails
Reviewed-by: trebari, prr, psadhukhan
2020-02-08 18:48:42 -08:00
Sergey Bylokhov
1b3b413ee6 8238276: ComponentPeer.xxxImage are not implemented in some peers
Reviewed-by: aivanov
2020-02-08 14:25:06 -08:00
Phil Race
cf83f8e364 8238721: Add failing client jtreg tests to the Problem List
Reviewed-by: serb
2020-02-08 12:00:06 -08:00
Phil Race
728592dd22 Merge 2020-02-07 11:09:59 -08:00
Erik Gahlin
ac9c2601b8 8215452: Logged repo location is wrong when using delayed recording start
Reviewed-by: mgronlun, mseledtsov
2020-02-07 18:24:45 +01:00
Christoph Langer
90ee2c3d6e 8237192: Generate stripped/public pdbs on Windows for jdk images
Co-authored-by: Matthias Baesken <matthias.baesken@sap.com>
Reviewed-by: erikj, ihse
2020-02-07 08:38:40 +01:00
Magnus Ihse Bursie
c1f4ea5d68 8239450: Overhaul JVM feature handling in configure
Reviewed-by: erikj
2020-02-20 10:33:44 +01:00
Matthias Baesken
1643bc3def 8239351: Give more meaningful InternalError messages in Deflater.c
Reviewed-by: stuefe, vtewari, lancea, martin
2020-02-19 10:27:34 +01:00
Jesper Wilhelmsson
952f32e375 Added tag jdk-15+11 for changeset b2dd4028a6de 2020-02-20 03:11:39 +01:00
Jamil Nimeh
39db83a9cc 8239094: PKCS#9 ChallengePassword attribute does not allow for the UTF8String type
Reviewed-by: xuelei
2020-02-19 13:36:53 -08:00
Joe Darcy
e028bb4f2b 8239478: Make specification of SourceVersion.isName explicit for dotted names
Reviewed-by: jjg
2020-02-19 11:52:34 -08:00
Brian Burkhalter
fc02d9872e 8238013: Enhance String writing
Reviewed-by: alanb, ahgross, rhalade, rriggs
2020-02-06 07:59:39 -08:00
Sean Mullan
d285fd6dce 8234418: Better parsing with CertificateFactory
Reviewed-by: weijun, mschoene, rhalade
2020-02-06 09:36:51 -05:00
Martin Balao
84f3e86749 8238555: Allow Initialization of SunPKCS11 with NSS when there are external FIPS modules in the NSSDB
Reviewed-by: mullan, valeriep
2020-02-05 12:20:36 -03:00
Stefan Karlsson
1491340708 8240223: Use consistent predicate order in and with PhaseIdealLoop::find_predicate
Reviewed-by: thartmann, neliasso, chagedorn
2020-03-02 12:30:59 +01:00
Stefan Karlsson
ac60e4b98e 8240220: IdealLoopTree::dump_head predicate printing is broken
Reviewed-by: thartmann, neliasso, chagedorn
2020-03-02 12:30:57 +01:00
Christian Hagedorn
d7b122ed69 8238438: SuperWord::co_locate_pack picks memory state of first instead of last load
Fix selection of first and last memory state in SuperWord::co_locate_pack

Reviewed-by: thartmann, kvn
2020-03-02 10:23:08 +01:00
Claes Redestad
ebadfaeb2e 8196334: Optimize UUID#fromString
Co-authored-by: Andriy Plokhotnyuk <plokhotnyuk@gmail.com>
Co-authored-by: Jon Chambers <jon.chambers@gmail.com>
Reviewed-by: igerasim, alanb
2020-03-02 08:22:48 +01:00
Rajan Halade
751de03704 8225130: Add exception for expiring Comodo roots to VerifyCACerts test
Reviewed-by: weijun
2020-03-01 23:04:02 -08:00
Sergey Bylokhov
080c16d36d 8225126: Test SetBoundsPaintTest.html faild on Windows when desktop is scaled
Reviewed-by: jdv
2020-02-04 12:56:19 -08:00
Patrick Zhang
a59e8a7f6f 8238380: java.base/unix/native/libjava/childproc.c "multiple definition" link errors with GCC10
Reviewed-by: stuefe, clanger, rriggs
2020-02-04 21:27:10 +08:00
Weijun Wang
aa3638a32d 8231508: Spec Clarification : KeyTab:exist() method does not specify about the fallback details
Reviewed-by: mullan
2020-02-11 11:17:37 +08:00
David Holmes
983fc23fd1 8236844: Deprecate PrintVMQWaitTime to prepare for its removal
Reviewed-by: rehn, coleenp, hseigel
2020-02-10 19:58:04 -05:00
Alex Menkov
84c24a49ad 8234935: JdwpListenTest.java and JdwpAttachTest.java getting bind failures on Windows 2016 hosts
Reviewed-by: cjplummer, sspitsyn
2020-02-10 16:56:38 -08:00
John Jiang
fbca3fa710 8238677: java/net/httpclient/ssltest/CertificateTest.java should not specify TLS version
Reviewed-by: dfuchs
2020-02-11 08:36:02 +08:00
Ivan Gerasimov
987be2bb6d 8235812: Unicode linebreak with quantifier does not match valid input
Reviewed-by: rriggs
2020-02-10 16:10:45 -08:00
Jonathan Gibbons
b83285facc 8238646: Cleanup signature and use of CommentHelper
Reviewed-by: prappo
2020-02-10 13:29:03 -08:00
John Rose
f0cdbbe120 8238239: java.lang.Record spec clarifications
Reviewed-by: psandoz
2020-02-10 15:08:51 -05:00
Gerard Ziemski
080c67f096 8235962: os::current_thread_id() is not signal safe on macOS
Use mach_thread_self instead of pthread_mach_thread_np

Reviewed-by: dholmes, cjplummer
2020-02-10 11:41:55 -06:00
Frederic Parain
9886cb401c 8237767: Field layout computation overhaul
Reviewed-by: dholmes, coleenp, lfoltan, shade
2020-02-10 09:49:12 -05:00
Erik Gahlin
304d764a72 8238634: Reduce log verbosity of the JFR thread sampler
Reviewed-by: mgronlun
2020-02-10 14:21:51 +01:00
Claes Redestad
326a939e1b 8237878: Improve ModuleLoaderMap datastructures
Reviewed-by: alanb, forax
2020-02-10 13:58:12 +01:00
Alan Bateman
c23d1de2f8 8238376: test/jdk/java/nio/channels/DatagramChannel/Loopback.java failing on multi-homed systems
Reviewed-by: dfuchs
2020-02-10 12:57:31 +00:00
Sureshkumar Mahaliswamy
060e4ec305 8235900: [TESTBUG] [macos] PopupMenu Opaque property is not reflecting the Parents property on MAC OS
Reviewed-by: serb
2020-02-03 14:58:54 +05:30
Christoph Langer
9fb0aeecb6 8221741: ClassCastException can happen when fontconfig.properties is used
Reviewed-by: mbaesken, itakiguchi
2020-02-02 17:41:33 +01:00
Lance Andersen
8a616df8b5 8233234: Better Zip Naming
Reviewed-by: alanb, ahgross, redestad, coffeys, mschoene, rhalade
2020-01-31 13:52:04 -05:00
Ivan Gerasimov
f77016b935 8236201: Better Scanner conversions
Reviewed-by: ahgross, rhalade, rriggs, skoivu, smarks
2020-01-29 20:01:34 -08:00
Sergey Bylokhov
a5a46ff8e5 8233255: Better Swing Buttons
Reviewed-by: alitvinov, prr, ahgross, rhalade
2020-01-28 10:51:00 -08:00
Roland Westrelin
8c0fab8fbe 8237837: Shenandoah: assert(mem == __null) failed: only one safepoint
Reviewed-by: rkennke
2020-01-28 11:28:52 +01:00
Roland Westrelin
a59ed930f5 8238385: CTW: C2 (Shenandoah) compilation fails with "Range check dependent CastII node was not removed"
Reviewed-by: rkennke, shade
2020-02-07 13:59:17 +01:00
Claes Redestad
0b5d48b9e6 8230301: Re-examine hardcoded defaults in GenerateJLIClassesPlugin
Reviewed-by: mchung
2020-02-10 12:39:19 +01:00
David Buck
6aeb78d3df 8238596: AVX enabled by default for Skylake even when unsupported
Only default to UseAVX=2 when support is detected

Reviewed-by: shade, vlivanov
2020-02-10 03:35:50 -05:00
Sean Coffey
04c1e2e931 8223260: NamingManager should cache InitialContextFactory
Reviewed-by: alanb, plevart, dfuchs
2020-02-09 21:55:56 +00:00
Aleksey Shipilev
71d7af4b23 8238591: CTW: Split applications/ctw/modules/jdk_localedata.java
Reviewed-by: iignatyev
2020-02-10 06:18:46 +01:00
Aleksey Shipilev
970283b601 8238247: CTW runner should sweep nmethods more aggressively
Reviewed-by: adinn, simonis, iignatyev
2020-02-10 06:18:28 +01:00
Aleksey Shipilev
f1a2c6019e 8238366: CTW runner closes standard output on exit
Reviewed-by: adinn, iignatyev
2020-02-10 06:18:10 +01:00
Claes Redestad
ac69c7894d 8238684: Override getOrDefault in immutable Map implementation
Reviewed-by: forax, psandoz, smarks
2020-02-08 15:21:25 +01:00
Jia Huang
7552915d3f 8238586: [TESTBUG] vmTestbase/jit/tiered/Test.java failed when TieredCompilation is disabled
Reviewed-by: iignatyev
2020-02-08 15:46:39 +08:00
Jonathan Gibbons
3461ce9800 8238437: Support separate locales for console messages and HTML content
Reviewed-by: prappo
2020-02-07 17:00:23 -08:00
Jonathan Gibbons
faa88c1da6 8238506: fix obsolete comments and inconsistent exceptions in BaseTaglet
Reviewed-by: prappo
2020-02-07 16:43:09 -08:00
Jonathan Gibbons
c33107053b 8238648: Rename and simplify Utils.WeakSoftHashMap
Reviewed-by: hannesw
2020-02-07 16:16:01 -08:00
Mikhailo Seledtsov
214edaf9c2 8219999: TestJFREvents container test should not use jdk.CPUInformation event for container CPU values
Updated the testcase not to test jdk.CPUInformation

Reviewed-by: egahlin
2020-02-07 13:04:00 -08:00
Jesper Wilhelmsson
c028965f35 Merge 2020-02-07 17:24:25 +01:00
Sergey Bylokhov
bbc3d16705 8176359: Frame#setMaximizedbounds not working properly in multi screen environments
8231564: setMaximizedBounds is broken with large display scale and multiple monitors

Reviewed-by: aivanov
2020-01-25 22:46:20 -08:00
Dmitry Batrak
1af34250aa 8236996: Incorrect Roboto font rendering on Windows with subpixel antialiasing
Reviewed-by: prr, serb
2020-01-27 13:02:54 -08:00
Sergey Bylokhov
785e7ec761 5085520: Inconsistency in spec for RenderingHints.entrySet()
Reviewed-by: prr, jdv
2020-01-24 18:39:51 -08:00
Sergey Bylokhov
05b98dd4f9 8237049: Rollback the workaround for JDK-4533057
Reviewed-by: dmarkov
2020-01-23 21:42:27 -08:00
Tejpal Rebari
7fa7536d7e 7020860: BasicTreeUI contains getters/setters with unclear spec
Reviewed-by: jdv, prr, serb
2020-01-23 17:32:38 +05:30
Roman Kennke
1dd60a35d1 8227269: Slow class loading when running with JDWP
Reviewed-by: sspitsyn, cjplummer
2020-01-22 15:55:02 +01:00
Matthias Baesken
c9f5004bae 8241586: compiler/cpuflags/TestAESIntrinsicsOnUnsupportedConfig.java fails on aarch64
Reviewed-by: clanger
2020-03-25 13:05:42 +01:00
Roland Westrelin
85d5048ce2 8241675: Shenandoah: assert(n->outcnt() > 0) at shenandoahSupport.cpp:2858 with java/util/Collections/FindSubList.java
Reviewed-by: rkennke
2020-03-24 10:31:37 +01:00
Roland Westrelin
5ff2d7baaa 8240676: Meet not symmetric failure when running lucene on jdk8
Reviewed-by: kvn, thartmann
2020-03-24 11:06:26 +01:00
Thomas Schatzl
7048684ca7 8238855: Move G1ConcurrentMark flag sanity checks to g1Arguments
Reviewed-by: sjohanss, kbarrett
2020-03-27 09:44:53 +01:00
Yasumasa Suenaga
67cf35ee22 8240956: SEGV in DwarfParser::process_dwarf after JDK-8234624
Reviewed-by: sspitsyn, kevinw
2020-03-27 17:07:23 +09:00
Thomas Stuefe
83f7ee14da 8241723: Build error after 8241581
Reviewed-by: kbarrett, clanger
2020-03-27 08:45:59 +01:00
Thomas Stuefe
cc8715d844 8241581: Add BitMap::count_one_bits variant for arbitrary lengths
Reviewed-by: redestad, kbarrett
2020-03-27 07:16:22 +01:00
Vipin M V
2bc4308d86 8129841: Update comment for Java_java_net_Inet6AddressImpl_getHostByAddr
Update comment for Java_java_net_Inet6AddressImpl_getHostByAddr

Reviewed-by: vtewari, alanb
2020-03-27 11:34:45 +05:30
Jonathan Gibbons
87805d9207 8241470: HtmlStyle: group and document members: description, flex, signature
Reviewed-by: hannesw
2020-03-26 20:36:56 -07:00
Chris Plummer
5f1636b2d5 8241696: ProblemList gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java due to JDK-8241293
Reviewed-by: dcubed, ctornqvi
2020-03-26 15:13:21 -07:00
Ekaterina Pavlova
ebdb70fe9e 8236975: compiler/graalunit tests fails with --illegal-access=deny
Reviewed-by: iignatyev, kvn, alanb
2020-03-26 14:24:53 -07:00
Aleksey Shipilev
6be46f8ebb 8241673: Shenandoah: refactor anti-false-sharing padding
Reviewed-by: rkennke
2020-03-26 19:09:20 +01:00
Aleksey Shipilev
8c5531b629 8241668: Shenandoah: make ShenandoahHeapRegion not derive from ContiguousSpace
Reviewed-by: rkennke
2020-03-26 19:08:30 +01:00
Calvin Cheung
e509368fa1 8233093: Move CDS heap oopmaps into new MetaspaceShared::bm region
Moved the _closed_archive_heap_oopmaps and _open_archive_heap_oopmaps from the ro to the bm region.

Reviewed-by: iklam, minqi
2020-03-26 10:14:52 -07:00
Mikhailo Seledtsov
098b48b7db 8240634: event/runtime/TestMetaspaceAllocationFailure.java times out
Limit number of iterations

Reviewed-by: egahlin, stuefe
2020-03-26 10:03:35 -07:00
Daniil Titov
54e2c6fe3e 8196751: Add jhsdb option to specify debug server RMI connector port
Reviewed-by: sspitsyn, ysuenaga
2020-03-26 09:03:52 -07:00
Per Lidén
e11ab6a46c 8241596: ZGC: Shorten runtime of gc/z/TestUncommit.java
Reviewed-by: tschatzl, sjohanss
2020-03-26 16:56:42 +01:00
Julia Boes
eb7c80a308 8241674: Fix incorrect jtreg option in FilePublisherPermsTest
Replace jtreg option 'policy' with 'java.security.policy' to extend rather than replace policy

Reviewed-by: chegar, dfuchs
2020-03-26 14:58:53 +00:00
Coleen Phillimore
d77c52b255 8172485: [TESTBUG] RedefineLeak.java runs out of metaspace memory
Check for zero exit value.

Reviewed-by: lfoltan
2020-03-26 10:29:31 -04:00
Christian Hagedorn
307b376a9b 8241595: Fix missing debug_orig information in Ideal Graph Visualizer
Show missing debug_orig information for nodes in Ideal Graph Visualizer.

Reviewed-by: kvn, neliasso
2020-03-26 13:43:51 +01:00
Julia Boes
d882d528bb 8235459: HttpRequest.BodyPublishers::ofFile assumes the default file system
Add support for non-default file systems to HttpRequest.BodyPublishers::ofFile

Reviewed-by: chegar, dfuchs, amlu
2020-03-26 11:52:15 +00:00
Jesper Wilhelmsson
f930d4661a Added tag jdk-15+16 for changeset 5c7ec21f5d13 2020-03-26 03:15:02 +01:00
Sergei Tsypanov
b35032dc01 8241649: Optimize Character.toString
Reviewed-by: redestad, rriggs
2020-03-26 10:02:57 +01:00
Roland Westrelin
b8f8dea9c2 8241365: Define Unique_Node_List::contains() to prevent usage by mistake
Reviewed-by: kvn, thartmann
2020-03-20 13:58:05 +01:00
Roland Westrelin
eb003a7382 8240335: C2: assert(found_sfpt) failed: no node in loop that's not input to safepoint
Reviewed-by: kvn, thartmann
2020-03-20 13:56:12 +01:00
Matthias Baesken
c4f25e5126 8241491: Problem list jdk/javax/swing/UIDefaults/8146330/UIDefaultKeySizeTest.java on aix
Reviewed-by: clanger
2020-03-24 15:26:10 +01:00
Jie He
913a0ff0a8 8241419: Remove unused InterfaceSupport::_number_of_calls
Reviewed-by: dholmes
2020-03-26 14:46:50 +08:00
Pengfei Li
c659b637ce 8241482: AArch64: Fix a potential issue after JDK-8239549
Reviewed-by: aph
2020-03-26 10:10:37 +08:00
Claes Redestad
0d22ad6400 8241427: Coarsen locking in Modules::add_module_exports
Reviewed-by: lfoltan, hseigel
2020-03-26 00:02:08 +01:00
John Jiang
60fae77974 8237977: Further update javax/net/ssl/compatibility/Compatibility.java
Reviewed-by: rhalade
2020-03-26 07:09:36 +08:00
Jonathan Gibbons
ffe5e84644 8241544: update stylesheet for *-page CSS class rename and hyphenated naming
Reviewed-by: prappo, hannesw
2020-03-25 15:03:39 -07:00
Anthony Scarpino
b0245c2b54 8237219: Disable native SunEC implementation by default
Reviewed-by: weijun, mullan
2020-03-25 12:41:14 -07:00
Naoto Sato
b8f2b3264c 8241311: Move some charset mapping tests from closed to open
Reviewed-by: iris, joehw, itakiguchi, amlu
2020-03-25 09:21:46 -07:00
Aleksey Shipilev
7fc31eadf3 8241583: Shenandoah: turn heap lock asserts into macros
Reviewed-by: rkennke
2020-03-25 17:20:58 +01:00
Ivan Gerasimov
d1b506597f 8237599: Greedy matching against supplementary chars fails to respect the region
Reviewed-by: rriggs
2020-03-25 08:46:31 -07:00
Christian Hagedorn
c01e986cc9 8237859: C2: Crash when loads float above range check
Fix control edges of predicates to data nodes when creating pre/main/post loops.

Reviewed-by: neliasso, thartmann, roland
2020-03-25 14:41:52 +01:00
Claes Redestad
9a6038fbf3 8241584: Remove unused classLoader perf counters
Reviewed-by: hseigel
2020-03-25 13:38:31 +01:00
Aleksey Shipilev
27ef185bae 8241500: FieldLayout/OldLayoutCheck.java fails in 32-bit VMs
Reviewed-by: fparain, dholmes
2020-03-25 07:58:17 +01:00
Vladimir Ivanov
7753422909 8241433: x86: Add VBMI CPU feature detection
Reviewed-by: kvn
2020-03-25 00:10:22 +03:00
Tom Rodriguez
d743518243 8241458: [JVMCI] add mark value to expose CodeOffsets::Frame_Complete
Reviewed-by: kvn
2020-03-24 13:12:19 -07:00
Aleksey Shipilev
3059f593ab 8241545: Shenandoah: purge root work overwrites counters after JDK-8228818
Reviewed-by: zgu
2020-03-24 20:18:45 +01:00
Aleksey Shipilev
7afa57a37e 8241445: Fix copyright in test/jdk/tools/launcher/ArgFileSyntax.java
Reviewed-by: psandoz
2020-03-24 18:46:48 +01:00
Aleksey Shipilev
6694402d3d 8241462: StripNativeDebugSymbols jlink plugin allocates huge arrays
Reviewed-by: alanb, sgehwolf
2020-03-24 18:46:48 +01:00
Aleksey Shipilev
643f5b5350 8241534: Shenandoah: region status should include update watermark
Reviewed-by: rkennke
2020-03-24 18:46:48 +01:00
Aleksey Shipilev
cb1632e8e3 8241520: Shenandoah: simplify region sequence numbers handling
Reviewed-by: rkennke
2020-03-24 18:46:48 +01:00
Thomas Stuefe
40173c5042 8241395: Factor out platform independent code for os::xxx_memory_special()
Reviewed-by: mbaesken, mdoerr, lucy
2020-03-24 18:41:07 +01:00
Daniel D. Daugherty
b5897fe4ed 8241532: ProblemList tests from 8241530 on OSX
Reviewed-by: ctornqvi
2020-03-24 13:08:54 -04:00
Tobias Hartmann
ca85500615 8240905: assert(mem == (Node*)1 || mem == mem2) failed: multiple Memories being matched at once?
Stop recursion if there are multiple loads with different memory inputs in the tree.

Reviewed-by: kvn, vlivanov
2020-03-24 17:39:52 +01:00
Vladimir Kozlov
d01f67193f 8237497: vmStructs_jvmci.cpp does not check that the correct field type is specified
Add missed checks for declarations in vmStructs_jvmci.cpp

Reviewed-by: iklam, thartmann
2020-03-24 09:34:39 -07:00
Andrew Dinn
5110de6c1f 8241144: Javadoc is not generated for new module jdk.nio.mapmode
Jdk.nio.mapmode is not present in DOCS_MODULES defined by Modules.gmk

Reviewed-by: erikj, ihse
2020-03-19 17:26:11 +00:00
Aditya Mandaleeka
32d496507b 8241067: Shenandoah: improve ShenandoahNMethod::has_cset_oops arguments
Reviewed-by: shade
2020-03-24 06:13:39 +01:00
Claes Redestad
23d6a788b4 8241371: Refactor and consolidate package_from_name
Reviewed-by: iklam, lfoltan
2020-03-23 23:18:42 +01:00
Jonathan Gibbons
7dc952ec20 8241292: Interactive Search results are not highlighted as they used to be
Reviewed-by: prappo
2020-03-23 14:11:52 -07:00
Ioi Lam
81353a56f9 8241244: CDS dynamic dump asserts in ArchivePtrBitmapCleaner::do_bit
Reviewed-by: minqi, coleenp
2020-03-23 13:27:22 -07:00
Jonathan Gibbons
f0ba0dc6dc 8241190: Fix name clash for constants-summary CSS class
Reviewed-by: hannesw
2020-03-23 12:48:35 -07:00
Aleksey Shipilev
b6783320ca 8241139: Shenandoah: distribute mark-compact work exactly to minimize fragmentation
Reviewed-by: rkennke
2020-03-23 19:14:01 +01:00
Aleksey Shipilev
fe533725ae 8241435: Shenandoah: avoid disabling pacing with "aggressive"
Reviewed-by: rkennke
2020-03-23 19:14:01 +01:00
Aleksey Shipilev
f37149b1c5 8241351: Shenandoah: fragmentation metrics overhaul
Reviewed-by: rkennke
2020-03-23 19:14:01 +01:00
Poonam Bajaj
edb6783a21 8231779: crash HeapWord*ParallelScavengeHeap::failed_mem_allocate
Reviewed-by: dlong, tschatzl, pliden
2020-03-23 17:57:13 +00:00
Sandhya Viswanathan
398ce2948c 8240248: Extend superword reduction optimizations for x86
Add support for and, or, xor reduction

Co-authored-by: Shravya Rukmannagari <shravya.rukmannagari@intel.com>
Reviewed-by: vlivanov, thartmann
2020-03-23 10:26:40 -07:00
Mandy Chung
75a8b7fa83 8240975: Extend NativeLibraries to support explicit unloading
Reviewed-by: alanb, mcimadamore
2020-03-23 09:05:39 -07:00
Daniel Fuchs
b66c680885 8241443: Problem list some java.net tests failing with NoRouteToHostException on macOS with special network configuration
Reviewed-by: alanb
2020-03-23 14:22:18 +00:00
Kelvin Nilsen
ed28a27490 8241068: Shenandoah: improve ShenandoahTraversalGC constructor arguments
Reviewed-by: shade
2020-03-23 10:37:44 +01:00
Magnus Ihse Bursie
901029355f 8241271: Make hotspot build reproducible
Reviewed-by: erikj, stefank, jwilhelm
2020-03-23 10:29:04 +01:00
Magnus Ihse Bursie
e04080bd0f 8241310: Fix warnings in jdk buildtools
Reviewed-by: erikj, forax
2020-03-23 10:26:13 +01:00
Pengfei Li
618bacec2e 8241091: AArch64: "bad AD file" with VM option "-XX:-UsePopCountInstruction"
Reviewed-by: aph
2020-03-23 08:37:45 +08:00
Xue-Lei Andrew Fan
36af90acc0 8215712: Parsing extension failure may alert decode_error
Reviewed-by: jnimeh
2020-03-22 09:30:16 -07:00
Prasanta Sadhukhan
a768bfdf4d Merge 2020-01-22 14:16:14 +05:30
Prasanta Sadhukhan
0aeed751e6 Merge 2020-01-22 13:29:03 +05:30
Aleksey Shipilev
d9df6feabe 8237586: Shenandoah: provide option to disable periodic GC
Reviewed-by: zgu
2020-01-21 20:58:48 +01:00
Joe Darcy
d5e2e1ae13 8237248: Update --release 14 symbol information for JDK 14 b32
Reviewed-by: jlahoda
2020-01-21 18:23:21 -08:00
Ivan Gerasimov
6f7f81f794 8236034: Use optimized Ques node for curly {0,1} quantifier
Reviewed-by: rriggs
2020-01-21 17:52:55 -08:00
Mikael Vidstedt
eef726a99a 8237601: test/langtools/tools/javac/warnings/MaxDiagsRecompile.java fails after JDK-8237589
Reviewed-by: dholmes
2020-01-21 17:37:18 -08:00
Joe Wang
e8f8eef908 8235368: Update BCEL to Version 6.4.1
Reviewed-by: lancea, dfuchs, forax
2020-01-21 23:33:18 +00:00
Mikael Vidstedt
3318314c7c 8237589: Fix copyright header formatting
Reviewed-by: jjg, serb, iris, jwilhelm
2020-01-21 14:23:01 -08:00
Claes Redestad
a19ff9d98a 8236641: Improve Set.of(...).iterator() warmup characteristics
Reviewed-by: smarks, jrose, fweimer
2020-01-21 22:21:15 +01:00
Patrick Concannon
d2cd7a5096 8237571: java/net/DatagramSocket/SendCheck.java is failing on Solaris
Commented out failing testcase as this is being tracked by JDK-8236852

Reviewed-by: dfuchs
2020-01-21 18:38:46 +00:00
Naoto Sato
0ae7207e95 8187987: Add a mechanism to configure custom variants in HijrahChronology
Reviewed-by: joehw, rriggs
2020-01-21 08:02:10 -08:00
Matthias Baesken
883a4f65b9 8237374: configuring with --with-jvm-variants=minimal,server makes cds disappear in server
Reviewed-by: erikj
2020-01-21 15:23:29 +01:00
Prasanta Sadhukhan
64a1b0599e Merge 2020-01-21 07:29:48 +05:30
Kim Barrett
f779e49590 8237261: Concurrent refinement activation threshold not updated for card counts
Fix special-case threshold calculation for primary refinement thread

Reviewed-by: tschatzl, sjohanss
2020-01-20 14:31:20 -05:00
Jesper Wilhelmsson
b936939454 Merge 2020-01-20 18:05:07 +01:00
Roman Kennke
330100ddce 8237543: Shenandoah: More asserts around code roots
Reviewed-by: zgu
2020-01-20 18:03:31 +01:00
Patrick Concannon
2f76772fa9 8236105: Behaviors of DatagramSocket/DatagramChannel::socket send methods are not always consistent
DatagramSocket and MulticastSocket changed to throw IllegalArgumentException if not connected and passed a packet containing a port out of range

Reviewed-by: chegar, dfuchs
2020-01-20 16:24:05 +00:00
Claes Redestad
fdbea219a1 8237508: Simplify JarFile.isInitializing
Reviewed-by: dfuchs, coffeys, lancea
2020-01-20 14:24:21 +01:00
Thomas Schatzl
4aab3078a2 8235860: Obsolete the UseParallelOldGC option
Obsolete the UseParallelOldGC option by removing code and other mentions.

Reviewed-by: kbarrett, lkorinth
2020-01-20 11:15:45 +01:00
Severin Gehwolf
4ca0699585 8237479: 8230305 causes slowdebug build failure
Declare methods as pure virtual.

Reviewed-by: dcubed, dholmes
2020-01-18 20:54:37 +01:00
Alan Bateman
d4c3278889 8236925: (dc) Upgrade DatagramChannel socket adaptor to extend MulticastSocket
Reviewed-by: dfuchs
2020-01-19 08:02:46 +00:00
Alan Bateman
6ef474a4f4 8053479: (dc) DatagramChannel.read() throws exception instead of discarding data when buffer too small
Reviewed-by: redestad, dfuchs
2020-01-18 19:11:28 +00:00
Phil Race
2867609482 8224109: Text spaced incorrectly by drawString under rotation with fractional metric
Reviewed-by: serb, kizune
2020-01-17 12:20:00 -08:00
Daniel Fuchs
c6da6681d4 8236859: WebSocket over authenticating proxy fails with NPE
This change fixes several issues with WebSocket and proxy authentication. The AuthenticationFilter is changed to support an authenticating server accessed through an authenticating proxy. MultiExchange is fixed to close the previous connection if a new connection is necessary to establish the websocket (websocket connections are not cached and must be closed in that case). WebSocket OpeningHandshake is fixed to close the connection (without creating the RawChannel) if the opening handshake doesn't result in 101 upgrade protocol.

Reviewed-by: prappo, chegar
2020-01-17 17:55:06 +00:00
Robbin Ehn
39992dea38 8236766: Remove un-used oops do and drain list in VM thread
Reviewed-by: dholmes, coleenp
2020-01-17 16:17:22 +01:00
Sean Mullan
da6daad2e5 8234042: Better factory production of certificates
Reviewed-by: weijun, rhalade, mschoene
2020-01-17 08:04:14 -05:00
Patrick Concannon
a589a15e3f 8237075: @since tag missing from DatagramSocket and MulticastSocket methods
Methods from DatagramSocket and MulticastSocket added in JDK1.2 do not have their @since tags. This fix adds them in

Reviewed-by: alanb, chegar, dfuchs
2020-01-17 12:53:31 +00:00
Dongbo He
f129cc4328 8234484: Add ability to configure third port for remote JMX
Reviewed-by: dfuchs
2020-01-15 16:00:01 +08:00
Alexander Matveev
529587547c 8235955: [dmg] DMG creation fails without error message if previous DMG was not ejected
Reviewed-by: herrick, asemenyuk
2020-01-21 08:46:06 -05:00
Claes Redestad
0414acb5d6 8237576: Missing import in macosx/../ClassLoaderHelper
Reviewed-by: dfuchs
2020-01-21 14:08:43 +01:00
Aleksey Shipilev
72a4aa8c11 8237570: Shenandoah: cleanup uses of allocation/free threshold in static heuristics
Reviewed-by: rkennke
2020-01-21 13:40:10 +01:00
Claes Redestad
c639682887 8236075: Minor bootstrap improvements
Reviewed-by: mchung, alanb
2020-01-21 13:28:15 +01:00
Matthias Baesken
3cf8b34d54 8237382: Cleanup the OPT_SPEED_SRC file list in JvmFeatures.gmk
Reviewed-by: erikj, mdoerr
2020-01-16 18:04:23 +01:00
Phil Race
4aab785db1 Merge 2020-01-14 15:23:01 -08:00
Clemens Eisserer
7ecca1ea3c 8235904: Infinite loop when rendering huge lines
Reviewed-by: prr, kizune
2020-01-14 15:19:49 -08:00
Claes Redestad
de96aeddf5 8236850: Operations on constant List/Set.of(element) instances does not consistently constant fold
Reviewed-by: smarks, jrose, rriggs, psandoz
2020-01-14 23:40:42 +01:00
Hannes Wallnöfer
631b4d2694 8220002: Improve anchor definitions in generated files
Reviewed-by: jjg
2020-01-14 21:17:30 +01:00
Sean Mullan
1bfcf768f5 8234032: Improve basic calendar services
Reviewed-by: weijun, rhalade, mschoene
2020-01-14 14:51:57 -05:00
Xin Liu
8d307c1168 8236228: clean up BarrierSet headers in c1_LIRAssembler
Remove unneeded barrierSet.hpp and cardTableBarrierSet.hpp includes

Reviewed-by: kvn, mdoerr, phh, njian
2020-01-14 09:15:27 -08:00
Erik Gahlin
d32cfe3e40 8237014: Missing javadoc for jdk.jfr.Recording(Map)
Reviewed-by: mgronlun, mseledtsov
2020-01-14 14:17:41 +01:00
Daniel Fuchs
bf16838a8b 8208281: java/nio/channels/AsynchronousSocketChannel/Basic.java timed out
Modify the test to accept the peer socket before closing the client socket

Reviewed-by: alanb
2020-01-14 11:45:29 +00:00
Per Lidén
832baeaf4d 8236153: ZGC: gc/z/TestUncommit.java fails with java.lang.Exception: Uncommitted too fast
Reviewed-by: eosterlund
2020-01-14 10:43:55 +01:00
Jatin Bhateja
2b9fef7d7b 8236443: Issues with specializing vector register type for phi operand with generic operands
Fix special handling for operand resolution of vectorshift and shiftcount nodes. Fix for crash in the resolution algorithm due to non-machine type nodes.

Reviewed-by: vlivanov
2020-01-14 09:51:10 +05:30
Alexandre Iline
b79d75d033 8237042: Switch to JCov build which supports byte code version 59
Reviewed-by: erikj
2020-01-13 14:09:30 -08:00
Sean Coffey
2c5167803a 8234466: Class loading deadlock involving X509Factory#commitEvent()
Reviewed-by: alanb, chegar, dfuchs
2020-01-13 21:16:27 +00:00
Anton Litvinov
5049cad2b0 8230926: [macosx] Two apostrophes are entered instead of one with "U.S. International - PC" layout
Reviewed-by: serb, dmarkov
2020-01-13 18:11:28 +00:00
Zhengyu Gu
ab90653aa9 8237017: Shenandoah: Remove racy assertion
Reviewed-by: rkennke
2020-01-13 11:51:45 -05:00
Jesper Wilhelmsson
913b8702d1 Merge 2020-01-13 15:40:09 +01:00
Naoto Sato
1b24cf800f 8174270: Consolidate ICU sources in one location
Reviewed-by: srl, joehw
2020-01-13 08:05:59 -08:00
Christoph Langer
91bb1d3700 8237008: Exclude serviceability/sa/TestInstanceKlassSizeForInterface.java on linuxppc64 and linuxppc64le
Reviewed-by: mdoerr
2020-01-13 16:56:21 +01:00
Tejpal Rebari
861e1addda 8223788: [macos] JSpinner buttons in JColorChooser dialog may capture focus using TAB Key
Reviewed-by: serb, pbansal, psadhukhan
2020-01-13 18:27:31 +05:30
Christoph Langer
0ba8940ac0 8236488: Support for configure option --with-native-debug-symbols=internal is impossible on Windows
Reviewed-by: erikj
2020-01-10 15:38:25 +01:00
Vladislav Volodin
3899de42ae 8234913: Improve parsing of Length Units in javax/swing/text/html/CSS
Reviewed-by: serb, clanger
2020-01-10 13:08:18 +00:00
Jesper Wilhelmsson
6234206fc1 Merge 2020-01-10 13:20:11 +01:00
Roman Kennke
c2b462cf02 8236851: Shenandoah: More details in Traversal GC event messages
Reviewed-by: shade
2020-01-10 12:42:30 +01:00
Phil Race
76b1472989 Merge 2020-01-09 10:14:59 -08:00
Andrew Haley
682af8be65 8236856: AArch64: Spurious GCC warnings
Reviewed-by: adinn
2020-01-09 10:01:01 -05:00
Andrew Haley
984da450f2 Merge 2020-01-09 09:30:49 -05:00
Andrew Haley
21c02a5b18 8235385: AArch64: Crash on aarch64 JDK due to long offset
Reviewed-by: adinn
2020-01-09 09:30:02 -05:00
Zhengyu Gu
11738f10a7 8228818: Shenandoah: Processing weak roots in concurrent phase when possible
Reviewed-by: rkennke
2020-01-09 08:35:44 -05:00
Pankaj Bansal
cf468f1791 8224475: JTextPane does not show images in HTML rendering
Reviewed-by: serb, psadhukhan
2020-01-09 15:11:10 +05:30
Jesper Wilhelmsson
9ab387d14e Added tag jdk-15+5 for changeset b97c1773ccaf 2020-01-09 02:27:20 +01:00
Roman Kennke
4a84146e43 8236815: Shenandoah: Fix weak roots in final Traversal GC phase
Reviewed-by: zgu
2020-01-08 22:46:33 +01:00
Brian Burkhalter
d6a5897f41 8236804: java/nio/channels/FileChannel/MapWithSecurityManager.java should be run in othervm mode
Reviewed-by: chegar, lancea
2020-01-08 11:38:08 -08:00
Daniil Titov
639e97df46 8236190: Unproblem list vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t002/TestDescription.java
Reviewed-by: amenkov, cjplummer, iignatyev
2020-01-08 10:03:52 -08:00
Brian Burkhalter
31b9bbd87b 8236582: (fc) FileChannel.map fails with InternalError when security manager enabled
Reviewed-by: alanb
2020-01-08 08:35:33 -08:00
Jesper Wilhelmsson
257a1bb854 Merge 2020-01-08 16:03:32 +01:00
Ralf Schmelter
11c073b97e 8234510: Remove file seeking requirement for writing a heap dump
Reviewed-by: clanger, rrich
2020-01-08 13:44:54 +01:00
Thomas Schatzl
ea83ced243 8231670: Remove TaskExecutor abstraction used in preserved marks processing
Reviewed-by: sjohanss, kbarrett
2020-01-08 13:33:34 +01:00
Prasanta Sadhukhan
4b00d5753d 8235818: Inline information from broken external links in java.desktop
Reviewed-by: prr
2020-01-08 14:07:21 +05:30
Matthias Baesken
4f35b4a65c 8236709: struct SwitchRange in HS violates C++ One Definition Rule
Reviewed-by: dholmes, kbarrett
2020-01-08 08:55:26 +01:00
Sureshkumar Mahaliswamy
984abfeb3f 8234309: LFGarbageCollectedTest.java fails with parse Exception
LFGarbageCollectedTest.java fails with parse Exception

Reviewed-by: mchung
2020-01-09 22:42:53 -08:00
Coleen Phillimore
5de40a0867 8236905: ProblemList test/hotspot/jtreg/runtime/Metaspace/DefineClass.java
Reviewed-by: dholmes
2020-01-09 21:58:38 -05:00
Ivan Gerasimov
78c4ab4449 8234423: Modifying ArrayList.subList().subList() resets modCount of subList
Reviewed-by: rriggs
2020-01-09 15:38:41 -08:00
Coleen Phillimore
016b0f0caa 8232759: Remove GC.class_stats
Make the GC.class_stats option obsolete

Reviewed-by: dholmes, iklam
2020-01-09 17:38:41 -05:00
Jesper Wilhelmsson
943b87ddde Merge 2020-01-09 20:21:53 +01:00
Harold Seigel
ff914903b9 8235766: SafepointSynchronize::_end_of_last_safepoint is unused
Remove unused field

Reviewed-by: lfoltan
2020-01-09 21:06:41 +00:00
Thomas Schatzl
fab3122111 8214277: Use merged G1ArchiveRegionMap for open and closed archive heap regions
Reviewed-by: kbarrett, jiangli
2020-01-09 21:57:18 +01:00
Ioi Lam
584db9818a 8236625: Remove writeable macro from JVM flags declaration
Reviewed-by: coleenp, hseigel, gziemski
2020-01-07 18:56:18 -08:00
Yasumasa Suenaga
7d8519fffe 8236489: Java heap file on daxfs should be more secure
Reviewed-by: iklam, dholmes
2020-01-08 08:53:28 +09:00
Christoph Dreis
1cf603e8fc 8236705: Use single character variant of String.replace when applicable
Reviewed-by: igerasim, alanb
2020-01-07 15:33:09 -08:00
Roman Kennke
769f853592 8236732: Shenandoah: Stricter placement for oom-evac scopes
Reviewed-by: zgu
2020-01-07 21:53:52 +01:00
Serguei Spitsyn
ed044e9142 8236124: Minimal VM slowdebug build failed after JDK-8212160
Use macro JVMTI_ONLY to avoid slowdebug build fail

Reviewed-by: coleenp, cjplummer, dholmes
2020-01-07 19:57:11 +00:00
Coleen Phillimore
c4b8e38de4 8236224: Obsolete the FieldsAllocationStyle and CompactFields options
Remove the options and code for options deprecated in JDK 14

Reviewed-by: dholmes, hseigel, fparain
2020-01-07 13:11:35 -05:00
Zhengyu Gu
ee5729ac21 8236681: Shenandoah: Disable concurrent class unloading flag if no class unloading for the GC cycle
Reviewed-by: rkennke
2020-01-07 08:53:37 -05:00
Roman Kennke
ffe68bcb24 8236161: C2: Remove useless step_over_gc_barrier() in int->bool conversion
Reviewed-by: thartmann, roland
2020-01-07 13:45:10 +01:00
Joe Darcy
5915ab980b 8235532: Update --release 14 symbol information for JDK 14 b27
Reviewed-by: jlahoda
2020-01-06 11:04:12 -08:00
Naoto Sato
2e237e35fd 8227313: Support monetary grouping separator in DecimalFormat/DecimalFormatSymbols
Reviewed-by: joehw
2020-01-06 10:31:20 -08:00
Jamil Nimeh
8a1b5ad914 8236039: JSSE Client does not accept status_request extension in CertificateRequest messages for TLS 1.3
Reviewed-by: xuelei
2020-01-05 21:04:39 -08:00
Chris Yin
6da7ea6ea3 8236595: Add more comments about how to setup simulated NVRAM before run java/nio/MappedByteBuffer/PmemTest.java
Reviewed-by: alanb, adinn
2020-01-06 11:29:38 +08:00
Yasumasa Suenaga
0a9a7e2f6c 8236552: Description of jmxremote.ssl.config.file in ManagementAgent.start is incorrect
Reviewed-by: cjplummer
2020-01-04 16:25:58 +09:00
Vicente Romero
396c363517 8236544: confusing error message: return type of accessor method is not compatible with type of record component
Reviewed-by: mcimadamore
2020-01-03 12:37:30 -05:00
Jesper Wilhelmsson
14b9fe08fe Added tag jdk-15+4 for changeset bb0a7975b31d 2020-01-01 03:08:45 +01:00
Matthias Baesken
2ff87c63e3 8236274: remove obsolete -d2Zi+ debug flag in MSVC builds
Reviewed-by: erikj, redestad
2020-01-02 14:38:37 +01:00
Jesper Wilhelmsson
e73ce9b406 Added tag jdk-15+3 for changeset d05fcdf25717 2019-12-27 18:21:13 +01:00
Sergey Bylokhov
206d72aee2 8235520: [macosx] Delete NSView based direct rendering mechanism
Reviewed-by: prr, jdv
2019-12-27 13:47:31 +03:00
Sergey Bylokhov
e8fdc9408e 8234706: MenuPeer cleanup
Reviewed-by: prr
2019-12-26 22:38:38 +03:00
Sergey Bylokhov
8f8f43999c 8210231: Robot.delay() catches InterruptedException and prints stacktrace to stderr
Reviewed-by: alanb, smarks
2019-12-25 14:17:57 +03:00
Sergey Bylokhov
e13f184eb3 8236506: [macosx] Some datatransfer classes were loaded on startup
Reviewed-by: prr
2019-12-25 10:15:32 +03:00
Pavel Rappo
911846b49b 8236435: Fix typos in javac area
Reviewed-by: jjg, mcimadamore
2019-12-24 09:38:41 +00:00
Pengfei Li
e2644b70cf 8233743: AArch64: Make r27 conditionally allocatable
Reviewed-by: aph, dlong
2019-12-24 16:51:55 +08:00
Smita Kamath
995da6eb2a 8167065: Add intrinsic support for double precision shifting on x86_64
Reviewed-by: kvn
2019-12-23 14:42:21 -08:00
Pankaj Bansal
4cb20ae300 8222759: com.sun.java.swing.plaf.gtk.GTKLookAndFeel has unnecessary casts to GTKStyleFactory
Reviewed-by: prr, jdv
2019-12-23 13:04:07 +05:30
Weijun Wang
f4af0eadb6 8236405: Formatting issues in Kerberos debug output
Reviewed-by: mullan
2019-12-21 15:27:37 +08:00
Mikael Vidstedt
c33466012e Merge 2019-12-20 22:41:53 -08:00
Aditya Mandaleeka
f19738aba3 8236179: C1 register allocation error with T_ADDRESS
Reviewed-by: rkennke, vlivanov, roland, mdoerr
2019-12-20 19:51:00 +01:00
Roland Westrelin
1af059d4cb 8231291: C2: loop opts before EA should maximally unroll loops
Reviewed-by: kvn, vlivanov
2019-12-20 17:17:37 +01:00
Roland Westrelin
1745ae28b9 8237086: assert(is_MachReturn()) running CTW with fix for JDK-8231291
Reviewed-by: kvn, vlivanov
2020-01-14 14:58:17 +01:00
Patrick Concannon
00c40ae1e3 7021373: DatagramPacket exception conditions are not clear
Specification is clarified by adding or clarifying @throws clauses where required

Reviewed-by: alanb, chegar, darcy, dfuchs
2020-02-07 11:10:41 +00:00
Claes Redestad
38f0c08ee0 8237484: Improve module system bootstrap
Reviewed-by: alanb
2020-02-07 10:23:35 +01:00
Claes Redestad
9c8f05279c 8236272: Improve fidelity between contents of default CDS archive and classes loaded at runtime
Reviewed-by: erikj, jiangli, iklam
2020-02-07 10:15:59 +01:00
Claes Redestad
9abc1a4441 8238599: Refactor and simplify implAddOpensToAllUnnamed
Reviewed-by: alanb
2020-02-07 09:47:25 +01:00
David Holmes
9f21d809ab 8238460: Provide warnings about the use of JNI RegisterNatives to rebind native methods for boot/platform classes in other classloaders
Reviewed-by: jwilhelm, lfoltan
2020-02-06 21:03:40 -05:00
Kim Barrett
ccbd819a01 8237143: Eliminate DirtyCardQ_cbl_mon
Replace locked data structures with lock-free data structures.

Reviewed-by: tschatzl, sangheki
2020-02-06 19:09:07 -05:00
Jonathan Gibbons
e37a6aed88 8238503: Remove unused field and accessor for docLocale from ToolOptions
Reviewed-by: hannesw
2020-02-06 12:44:21 -08:00
Daniil Titov
26b642f92f 8196729: Add jstatd option to specify RMI connector port
Reviewed-by: cjplummer, sspitsyn
2020-02-06 11:23:51 -08:00
Zhengyu Gu
87031d4728 8238574: Shenandoah: Assertion failure due to missing null check
Reviewed-by: shade
2020-02-06 13:08:14 -05:00
Jesper Wilhelmsson
b3f01bb39f Merge 2020-02-06 17:14:04 +01:00
Lois Foltan
df72b2e2d6 8238600: Remove runtime/fieldType.hpp and fieldType.cpp
Remove obsolesced source files fieldType.hpp and fieldType.cpp.

Reviewed-by: hseigel
2020-02-06 15:28:37 +00:00
Lois Foltan
d19a396e96 8230199: consolidate signature parsing code in HotSpot sources
Add a new Signature class to support basic signature queries and enhance SignatureStream class to parse field signatures in addition to methods.

Co-authored-by: John Rose <john.r.rose@oracle.com>
Reviewed-by: coleenp, dholmes, fparain, hseigel
2020-02-06 14:29:57 +00:00
Magnus Ihse Bursie
2ede36b3a3 8201349: build broken when configured with --with-zlib=bundled on gcc 7.3
Reviewed-by: erikj
2020-02-06 13:41:51 +01:00
Magnus Ihse Bursie
df12f8b5d2 8212986: Make Visual Studio compiler check less strict
Reviewed-by: erikj
2020-02-06 13:40:59 +01:00
Magnus Ihse Bursie
dfa757aed0 8238542: When warning about C/C++ compiler mismatch, be clear if this is about build compilers
Reviewed-by: erikj
2020-02-06 13:40:07 +01:00
Magnus Ihse Bursie
9b9830ced7 8218480: Automatically add -Werror in FLAGS_COMPILER_CHECK_ARGUMENTS
Reviewed-by: erikj
2020-02-06 13:38:57 +01:00
Nils Eliasson
b59f630249 8237581: Improve allocation expansion
Reviewed-by: vlivanov, redestad
2020-02-06 11:21:39 +01:00
Matthias Baesken
2d6ed667d2 8238530: OPT_SPEED_SRC list misses some files with cpu-dependend file names
Reviewed-by: ihse, redestad
2020-02-05 10:14:40 +01:00
Jesper Wilhelmsson
79ed5ba492 Added tag jdk-15+9 for changeset 62b5bfef8d61 2020-02-06 02:54:00 +01:00
Jonathan Gibbons
98f5d98a88 8222793: Javadoc tool ignores "-locale" param and uses default locale for all messages and texts
Reviewed-by: prappo
2020-02-05 11:01:05 -08:00
Mandy Chung
c0f23a8604 8230047: Remove legacy java.lang.reflect.ProxyGenerator_v49
Reviewed-by: rriggs, sundar
2020-02-05 09:53:56 -08:00
Erik Joelsson
f1332640d4 8238225: Issues reported after replacing symlink at Contents/MacOS/libjli.dylib with binary
Reviewed-by: clanger, alanb, ihse
2020-02-05 09:33:25 -08:00
Daniel D. Daugherty
a7a82b0c79 8235795: replace monitor list mux{Acquire,Release}(&gListLock) with spin locks
Reviewed-by: dholmes, coleenp, rehn
2020-02-05 11:40:20 -05:00
Daniel D. Daugherty
8ff24c55ef 8236035: refactor ObjectMonitor::set_owner() and _owner field setting
Reviewed-by: dholmes, kbarrett, rehn
2020-02-05 11:39:52 -05:00
Daniel D. Daugherty
b9e3a4efef 8235931: add OM_CACHE_LINE_SIZE and use smaller size on SPARCv9 and X64
Reviewed-by: dholmes, redestad, mdoerr
2020-02-05 11:38:18 -05:00
Clive Verghese
e7e182a318 8235699: ArrayIndexOutOfBoundsException in CalendarBuilder.toString
Reviewed-by: phh, alanb, weijun, simonis, rriggs
2020-02-05 16:39:45 +01:00
Mikhailo Seledtsov
ccb4ab5499 8179317: [TESTBUG] rewrite runtime shell tests in java
Converted shell tests to Java

Reviewed-by: dholmes, iignatyev, lmesnik
2020-02-05 07:31:13 -08:00
Patrick Zhang
03721247d8 8238388: libj2gss/NativeFunc.o "multiple definition" link errors with GCC10
Fixed libj2gss link errors caused by GCC10 default -fno-common

Reviewed-by: weijun
2020-02-05 20:31:09 +08:00
Magnus Ihse Bursie
ce28a96c28 8238281: Raise minimum gcc version needed to 5.0
Reviewed-by: erikj, dholmes, jwilhelm, mbaesken
2020-02-05 10:45:39 +01:00
Christoph Langer
d6aeda7b24 8238375: JFR Test TestJcmdStartFlushInterval is not run
Reviewed-by: egahlin, mseledtsov
2020-02-05 06:33:57 +00:00
Jesper Wilhelmsson
c09e02193b 8238515: Backout JDK-8236092 from jdk/jdk
Reviewed-by: dholmes
2020-02-05 03:26:50 +01:00
Jesper Wilhelmsson
89e9ae9b3c Merge 2020-02-05 03:24:41 +01:00
Weijun Wang
06579fcefa 8237804: sun/security/mscapi tests fail with "Key pair not generated, alias <nnnnnn> already exists"
Reviewed-by: mullan
2020-02-05 11:09:02 +08:00
Pavel Rappo
029f547700 8238467: Clean up annotations on overridden/implemented methods
Reviewed-by: jjg
2020-02-04 22:05:31 +00:00
Jonathan Gibbons
9d7777e585 8219475: javap man page needs to be updated
Reviewed-by: mchung
2020-02-04 14:02:16 -08:00
Weijun Wang
b75d37538d 8238502: sunmscapi.dll causing EXCEPTION_ACCESS_VIOLATION
Reviewed-by: wetmore, coffeys, mullan
2020-02-04 13:15:15 -08:00
Zhengyu Gu
a88734eadc 8238162: Shenandoah: Remove ShenandoahTaskTerminator wrapper
Reviewed-by: shade
2020-02-04 14:48:28 -05:00
Daniel Fuchs
b069da31e0 8238231: Custom DatagramSocketImpl's create method not called when with protected constructor
Allow the socket to be lazily created if not created by the constructor.

Reviewed-by: alanb
2020-02-04 18:35:37 +00:00
Alexander Matveev
e104b4cee1 8235954: [dmg] Default DMG background tiff of jpackage not retina ready
Reviewed-by: herrick, asemenyuk
2020-02-04 11:44:54 -05:00
David Leopoldseder
135f209852 8238190: [JVMCI] Fix single implementor speculation for diamond shapes
Reviewed-by: kvn
2020-02-04 09:33:09 +01:00
Roland Westrelin
f2b7509d5a 8237951: CTW: C2 compilation fails with "malformed control flow"
Reviewed-by: vlivanov, kvn
2020-01-28 13:36:30 +01:00
Matthias Baesken
ef41763d32 8237962: give better error output for invalid OCSP response intervals in CertPathValidator checks
Reviewed-by: clanger, mullan
2020-02-03 09:39:39 +01:00
Ivan Walulya
edd28610d5 8233220: Space::_par_seq_tasks is unused after CMS removal
Reviewed-by: pliden, tschatzl, lkorinth
2020-02-03 18:20:07 +01:00
Thomas Schatzl
358c56bb8b 8238229: Remove TRACESPINNING debug code
Reviewed-by: kbarrett, sjohanss
2020-02-03 10:45:46 +01:00
Thomas Schatzl
77ad678fce 8238220: Rename OWSTTaskTerminator to TaskTerminator
Reviewed-by: sjohanss, sangheki
2020-02-03 10:45:44 +01:00
Thomas Schatzl
76675e93cf 8215297: Remove ParallelTaskTerminator
Remove ParallelTaskTerminator as the alternate OWSTTaskTerminator algorithm has worked well for more than a year now.

Reviewed-by: zgu, sjohanss
2020-02-03 10:45:43 +01:00
Magnus Ihse Bursie
4b8a5f991f 8196875: Update run-test instructions for TEST_MODE
Reviewed-by: erikj
2020-02-03 08:30:44 +01:00
Jie Fu
0330504ba7 8238284: [macos] Zero VM build fails due to an obvious typo
Reviewed-by: dholmes
2020-01-31 20:49:41 +08:00
Yasumasa Suenaga
1cd5eac5c3 8238203: Return value of GetUserDefaultUILanguage() should be handled as LANGID
Reviewed-by: naoto
2020-02-02 18:35:28 +01:00
Erik Gahlin
319d6976a5 8238241: Clean up problem list for JFR tests
Reviewed-by: mgronlun, mseledtsov
2020-02-01 09:55:03 +01:00
Ioi Lam
f6eaac48b8 8238198: Avoid using @ tags in TestOptionsWithRanges_generate.sh
Reviewed-by: iignatyev
2020-01-31 14:18:30 -08:00
Christian Hagedorn
b940e17c9e 8235332: TestInstanceCloneAsLoadsStores.java fails with -XX:+StressGCM
Account for GC barriers when skipping a cloned ArrayCopyNode in ConnectionGraph::find_inst_mem()

Reviewed-by: roland, neliasso
2020-01-31 09:32:00 +01:00
Jonathan Gibbons
4122968ab6 8238259: new tests do not account for Windows file separators
Reviewed-by: vromero
2020-01-30 15:50:07 -08:00
Igor Ignatyev
18d6d92a06 8237953: vmTestbase/jit/tiered/Test.java failure after JDK-8237798
Reviewed-by: iveresov
2020-01-30 08:55:20 -08:00
Erik Joelsson
ac6073f0a5 8237914: The test-make target does not fail on test failure
Reviewed-by: tbell, ihse
2020-01-30 12:00:38 -08:00
Jonathan Gibbons
ee9483bd87 8200363: Add javadoc command line setting to fail on warnings
Reviewed-by: hannesw
2020-01-30 11:29:51 -08:00
Jonathan Gibbons
85f5e328ed 8236949: javadoc -Xdoclint does not accumulate options correctly
Reviewed-by: prappo
2020-01-30 11:20:09 -08:00
Mikhailo Seledtsov
b5bf0d6d2f 8235599: [TESTBUG] JFR streaming/TestJVMCrash.java fails to cleanup files after test
Removed the TestJVMCrash.java test from problem list

Reviewed-by: egahlin
2020-01-30 10:27:08 -08:00
Erik Gahlin
bd7fd5610e 8232636: JFR TestDumpOnCrash.java crashed and failed to create emergency dump file
Reviewed-by: mgronlun, mseledtsov
2020-01-30 17:49:16 +01:00
Erik Gahlin
cb636b2c0b 8219686: jdk/jfr/event/runtime/TestShutdownEvent.java recording file length is 0
Reviewed-by: mgronlun, mseledtsov
2020-01-30 17:36:01 +01:00
Erik Gahlin
9cfd632ef6 8213918: DumpReason JFR event is not covered by test
Reviewed-by: mgronlun, mseledtsov
2020-01-30 17:23:22 +01:00
Nick Gasson
987ba9f3a4 8237521: Memory Access API fixes for 32-bit
Reviewed-by: mcimadamore, dholmes
2020-01-24 17:41:44 +08:00
Eric Caspole
44444bb249 8238189: Cleanups to AES crypto micros
Move all tested algorithms into the small set

Reviewed-by: xuelei
2020-01-30 10:31:43 -05:00
Coleen Phillimore
9dcbd81920 8237080: fatal error: VM thread could block on lock that may be held by a JavaThread during safepoint: SharedDecoder_lock
Set allow_vm_block to true for this lock.  It's _safepoint_check_never so it's sort of implied (you can't safepoint holding the lock and block out the vm thread).

Reviewed-by: rehn, zgu, pchilanomate, dholmes
2020-01-30 08:50:11 -05:00
Per Lidén
4aa5cf5bca 8237882: ZGC: Remove ZUtils::round_{up,down}_power_of_2() declarations
Reviewed-by: kbarrett, smonteith
2020-01-30 12:42:01 +01:00
Per Lidén
83911960d4 8237884: ZGC: Use clamp() instead of MIN2(MAX2())
Reviewed-by: kbarrett, smonteith
2020-01-30 12:41:59 +01:00
Per Lidén
0f06a9a5cd 8237825: ZGC: Replace -XX:ZPath with -XX:AllocateHeapAt
Reviewed-by: eosterlund
2020-01-30 12:41:56 +01:00
Per Lidén
24691f248c 8237758: ZGC: Move get_mempolicy() syscall wrapper to ZSyscall
Reviewed-by: eosterlund
2020-01-30 12:41:47 +01:00
Per Lidén
91d58b8f96 8237649: ZGC: Improved NUMA support when using small pages
Reviewed-by: eosterlund, smonteith
2020-01-30 12:41:26 +01:00
Erik Gahlin
06456a9773 8238224: test\jdk\jdk\jfr\event\io\EvilInstrument.java should be removed
Reviewed-by: mgronlun
2020-01-30 11:14:12 +01:00
Magnus Ihse Bursie
af5c725b81 8237879: make 4.3 breaks build
Reviewed-by: erikj, tbell
2020-01-30 11:08:30 +01:00
Erik Gahlin
dfb31205a1 8221331: test/jdk/jdk/jfr/event/io/EvilInstrument.java needs to re-worked to avoid recursive initialization issues
Reviewed-by: mgronlun, mseledtsov
2020-01-30 10:10:48 +01:00
Matthias Baesken
cd01fa372e 8223699: cleanup perfMemory_aix.cpp O_NOFOLLOW coding on aix
Reviewed-by: lucy, mdoerr
2020-01-28 08:53:30 +01:00
Erik Gahlin
0b9ff0c3a4 8202142: jfr/event/io/TestInstrumentation is unstable
Reviewed-by: mgronlun, mseledtsov
2020-01-30 09:01:58 +01:00
Boris Ulasevich
d65f9665df 8229971: Arm32: implementation for Thread-local handshakes
Reviewed-by: rehn, dsamersoff
2020-01-30 10:26:56 +03:00
David Holmes
c4b708b255 8237857: LogDecorations::uptimenanos is implemented incorrectly
Reviewed-by: dcubed, kbarrett
2020-01-29 23:53:16 -05:00
Jesper Wilhelmsson
0b45b7a291 Merge 2020-01-30 05:05:04 +01:00
Jesper Wilhelmsson
5d8d4cecf7 Added tag jdk-15+8 for changeset c7d4f2849dbf 2020-01-30 03:29:55 +01:00
Igor Ignatyev
c484e1cee0 8237787: rewrite vmTestbase/vm/compiler/CodeCacheInfo* from shell to java
Reviewed-by: epavlova, kvn
2020-01-29 19:27:01 -08:00
Erik Gahlin
28801066d0 8237574: Make TestNative work without -nativepath
Reviewed-by: mgronlun, mseledtsov
2020-01-30 00:23:58 +01:00
Erik Gahlin
8aff9fca35 8215890: Simplify jdk/jfr/api/recording/event/TestPeriod.java
Reviewed-by: mgronlun, mseledtsov
2020-01-29 23:49:04 +01:00
Erik Gahlin
70fdf1e5ee 8237364: Add early validation to the jdk.jfr.Recording constructor
Reviewed-by: mgronlun, mseledtsov
2020-01-29 23:36:38 +01:00
Vladimir Ivanov
5b5a5353e7 7175279: Don't use x87 FPU on x86-64
Reviewed-by: kvn, roland
2020-01-30 00:46:43 +03:00
Erik Gahlin
a2bbf933d9 8222001: JFR event for heap dumps written
Reviewed-by: mgronlun
2020-01-29 22:37:17 +01:00
Kim Barrett
f262092fd9 8233822: VM_G1CollectForAllocation should always check for upgrade to full
Move upgrade check into do_collection_pause_at_safepoint.

Reviewed-by: tschatzl, sangheki
2020-01-29 15:48:22 -05:00
Ioi Lam
73cdeafe98 8237046: [TESTBUG] runtime/CommandLine/OptionsValidation/TestOptionsWithRanges_generate.sh should be excluded from testing
Reviewed-by: dcubed, mseledtsov
2020-01-29 12:01:31 -08:00
Daniel Fuchs
e0901fb627 8237896: MulticastSocket should link to DatagramChannel as an alternative for multicasting
MulticastSocket API documentation now includes some links to DatagramChannel.

Reviewed-by: alanb
2020-01-29 19:13:09 +00:00
Ekaterina Pavlova
9d5d2a241a 8236211: [Graal] compiler/graalunit/GraphTest.java is skipped in all testing
Reviewed-by: iignatyev
2020-01-29 10:12:59 -08:00
Pavel Rappo
91a031aa87 8238167: Remove stray files from jdk.javadoc
Reviewed-by: jjg
2020-01-29 18:04:53 +00:00
Andrew Haley
0dd3aaf0ed 8230392: Define AArch64 as MULTI_COPY_ATOMIC
Reviewed-by: adinn, dholmes
2020-01-23 11:44:04 -05:00
Aleksey Shipilev
3eb71de759 8238153: CTW: C2 (Shenandoah) compilation fails with "Unknown node in get_load_addr: CreateEx"
Reviewed-by: roland, rkennke
2020-01-29 14:34:40 +01:00
Pengfei Li
6fd7ad87ce 8237524: AArch64: String.compareTo() may return incorrect result
Reviewed-by: aph
2020-01-21 08:15:33 +00:00
Erik Gahlin
c718a082a4 8238083: Crash: assert(is_object_aligned(v)) failed: address not aligned: 0xfffffffffffffff1
Reviewed-by: mgronlun
2020-01-29 11:04:00 +01:00
Jan Lahoda
2f45d46640 8237528: Inefficient compilation of Pattern Matching for instanceof
Avoiding unnecessary cast and comparison in type test pattern desugaring.

Reviewed-by: forax, mcimadamore
2020-01-29 10:37:22 +01:00
Ivan Walulya
41f962d784 8232689: Remove ParCompactionManager::Action enum
Reviewed-by: lkorinth, kbarrett, tschatzl
2020-01-29 09:29:22 +01:00
Jesper Wilhelmsson
0b22124ee4 Merge 2020-01-28 22:42:32 +01:00
Erik Gahlin
5c3d9a7d04 8237887: CDSandJFR: assert(instance_klass->is_initialized()
Reviewed-by: mgronlun
2020-01-28 22:37:38 +01:00
Zhengyu Gu
69f1538631 8237963: Shenandoah: Heap iteration should use concurrent version of string dedup roots
Reviewed-by: shade
2020-01-28 15:47:39 -05:00
Adam Sotona
f2013ac247 8236997: tools/javac tests fail with --illegal-access=deny
Correctly exporting packages to tests.

Reviewed-by: jlahoda
2020-01-28 09:13:27 +01:00
Matthias Baesken
a89b838d91 8237869: exclude jtreg test security/infra/java/security/cert/CertPathValidator/certification/LuxTrustCA.java because of instabilities
Reviewed-by: clanger, mullan
2020-01-27 17:03:08 +01:00
Jesper Wilhelmsson
efa4d2f9e1 Merge 2020-01-28 07:25:31 +01:00
Vicente Romero
64288e1e76 8235149: javac parser is too aggressive on ambiguous expressions using identifier: record
Reviewed-by: mcimadamore
2020-01-27 18:50:19 -05:00
Igor Ignatyev
e5a99b29f1 8237800: rewrite vmTestbase/jit/escape/LockCoarsening from shell to java
Reviewed-by: roland, neliasso
2020-01-27 15:35:10 -08:00
Igor Ignatyev
fc8d71b119 8237798: rewrite vmTestbase/jit/tiered from shell to java
Reviewed-by: roland, neliasso
2020-01-27 15:34:12 -08:00
Jonathan Gibbons
08e63539f2 8237845: Encapsulate doclet options
Reviewed-by: hannesw, prappo
2020-01-27 14:03:58 -08:00
Jonathan Gibbons
6b4223eec2 8237803: Reorganize impl of tool options
Reviewed-by: prappo
2020-01-27 13:42:57 -08:00
Zhengyu Gu
99b9939318 8237874: Shenandoah: Backout JDK-8234399
Reviewed-by: shade
2020-01-27 09:58:27 -05:00
Daniil Titov
5ac7dfa2bf 8235681: Remove unnecessary workarounds in UnixOperatingSystem.c
Reviewed-by: cjplummer, amenkov
2020-01-27 09:39:44 -08:00
Erik Gahlin
3884792cda 8227610: Remove allocation when getting EventHandle
Reviewed-by: mgronlun
2020-01-27 14:30:57 +01:00
Matthias Baesken
e438fb4c62 8236714: enable link-time section-gc for linux to remove unused code
Reviewed-by: erikj, ihse
2020-01-24 10:16:35 +01:00
Matthias Baesken
1ca54e1455 8237819: s390x - remove unused pd_zero_to_words_large
Reviewed-by: clanger, mdoerr
2020-01-24 13:48:35 +01:00
Aleksey Shipilev
7cae6c3564 8237847: Zero builds fail after JDK-8237637 (Remove dubious type conversions from oop)
Reviewed-by: dcubed
2020-01-26 17:08:40 +01:00
Pavel Rappo
49dc57cd10 8237817: Clean up net-properties.html
Reviewed-by: dfuchs
2020-01-24 21:57:19 +00:00
Jesper Wilhelmsson
a94b4fc695 Merge 2020-01-24 22:39:58 +01:00
Aleksey Shipilev
7cd21cfdec 8237821: Shenandoah: build broken after JDK-8237637 (Remove dubious type conversions from oop)
Reviewed-by: rkennke
2020-01-24 21:11:31 +01:00
Alex Menkov
90d656d2f6 8235846: Improve WindbgDebuggerLocal implementation
Reviewed-by: sspitsyn, cjplummer
2020-01-24 11:55:15 -08:00
Daniel Fuchs
9085b7bdc7 8236596: HttpClient leaves HTTP/2 sockets in CLOSE_WAIT, when using proxy tunnel
Changes Http2ClientImpl::stop to close the TCP connection after sending out the GOAWAY frame.

Reviewed-by: chegar
2020-01-24 17:57:41 +00:00
Anuraag Agrawal
4fdcb47304 7006496: Use modern Windows API to retrieve OS DNS servers
Reviewed-by: dfuchs, chegar, aefimov
2020-01-24 16:16:39 +00:00
Coleen Phillimore
5b1f960752 8237501: TestInstanceKlassSizeForInstance runs TestInstanceKlassSize instead
Reviewed-by: dcubed
2020-01-24 10:22:57 -05:00
Pavel Rappo
abadeda8a5 8233795: Consider adding a notion of a Value-based class to API Documentation index
Reviewed-by: hannesw
2020-01-24 12:51:34 +00:00
Adam Sotona
d97fe7b050 8042742: possible error in Tokens.Token.checkKind() for javac
Correcting expected token kind in an assert.

Reviewed-by: jlahoda
2020-01-24 12:31:51 +01:00
Stefan Karlsson
c8e7590899 8237111: LingeredApp should be started with getTestJavaOpts
Reviewed-by: cjplummer, dholmes
2020-01-24 10:31:45 +01:00
Stefan Karlsson
46423b0f70 8237637: Remove dubious type conversions from oop
Reviewed-by: kbarrett, dholmes, mdoerr
2020-01-24 09:27:07 +01:00
Stefan Karlsson
b223907794 8237645: Remove OopsInGenClosure::par_do_barrier
Reviewed-by: sjohanss
2020-01-24 09:24:46 +01:00
Stefan Karlsson
17106c9e9d 8236778: Add Atomic::fetch_and_add
Reviewed-by: kbarrett, dholmes
2020-01-24 09:15:08 +01:00
David Holmes
5013cf6e0c 8235966: Process obsolete flags less aggressively
Reviewed-by: dcubed, iignatyev
2020-01-23 21:14:16 -05:00
Vicente Romero
0f98701e87 8236210: javac generates wrong annotation for fields generated from record components
Reviewed-by: mcimadamore
2020-01-23 19:20:11 -05:00
Jonathan Gibbons
9e4830fc30 8237492: Reorganize impl of doclet options
8237726: Fix signature of StandardDoclet.getSupportedOptions

Reviewed-by: prappo, hannesw, ksrini
2020-01-23 15:52:54 -08:00
Jesper Wilhelmsson
c6c828fa6e Merge 2020-01-23 22:59:49 +01:00
Ekaterina Pavlova
6c9a6eac81 8206113: Troubles configuring graal tests
Reviewed-by: kvn
2020-01-23 10:02:52 -08:00
Patricio Chilano Mateo
5e9d3fdc9c 8237756: Backout: JDK-8230594: Allow direct handshakes without VMThread intervention
Backout JDK-8230594

Reviewed-by: coleenp, dcubed
2020-01-23 17:26:52 +00:00
Patrick Concannon
94bb505c94 8235783: DatagramSocket::disconnect should allow an implementation to throw UncheckedIOException
Undocumented throwing of Errors changed to throw a more user friendly UncheckedIOException

Reviewed-by: alanb, chegar, dfuchs
2020-01-23 14:43:37 +00:00
Per Lidén
4eacb6361b 8234440: ZGC: Print relocation information on info level
Reviewed-by: stefank, eosterlund
2020-01-23 15:13:32 +01:00
Thomas Schatzl
ffcc582601 8237079: gc/g1/mixedgc/TestLogging.java fails with "Pause Young (Mixed) (G1 Evacuation Pause) not found"
Factor out multiple attempts at forcing a mixed gc into a single one and update the tests to use the new code. Change command line arguments for the tests to further decrease the possibility of failures.

Reviewed-by: lkorinth, kbarrett
2020-01-23 14:42:49 +01:00
Martin Doerr
da7cebabb2 8237375: SimpleThresholdPolicy misses CounterDecay timestamp initialization
Reviewed-by: simonis, dholmes
2020-01-23 13:55:10 +01:00
Jie Fu
a0882bf4cc 8237752: Minimal VM build fails after JDK-8236236
Reviewed-by: dholmes
2020-01-23 13:51:23 +08:00
Jesper Wilhelmsson
3c5a7e9ffc Added tag jdk-15+7 for changeset e2bc57500c1b 2020-01-23 06:24:09 +01:00
Patricio Chilano Mateo
6c4e2e70be 8237753: 32-bit builds are broken after JDK-823059
Changed _pending_threads to be 32 bits instead of 64

Reviewed-by: dholmes
2020-01-23 04:54:15 +00:00
Chris Plummer
78ff45ee33 8236913: debug agent's jdwp command logging should include the command set name and command name
Reviewed-by: amenkov, sspitsyn
2020-01-23 04:14:11 +00:00
Zhengyu Gu
b1d5bee8ca 8234399: Shenandoah: Cleanup native load barrier
Reviewed-by: rkennke
2020-01-22 20:07:49 -05:00
Igor Veresov
c6126d638c 8237724: Add org.graalvm.compiler.asm.amd64 to the list of packages to be processed by the options annotation processor
Reviewed-by: kvn
2020-01-22 15:32:51 -08:00
David Holmes
245b61c506 8237747: Build broken on macOS by JDK-8235741 - wrong format specifier
Reviewed-by: mikael
2020-01-22 18:24:10 -05:00
David Holmes
7c27f9f5dd 8235741: Inappropriate uses of os::javaTimeMillis()
Reviewed-by: rehn, kbarrett, egahlin, shade
2020-01-17 00:52:10 -05:00
Naoto Sato
d517220df6 8236903: ZoneRules#getOffset throws DateTimeException for rules with last rules
Reviewed-by: scolebourne, rriggs
2020-01-22 12:35:24 -08:00
Jesper Wilhelmsson
b7cdc097e3 Merge 2020-01-22 21:02:16 +01:00
Ioi Lam
d5bdb76e84 8236236: Eliminate CDS md region and consolidate c++ vtable patching code
Reviewed-by: ccheung
2020-01-22 11:52:27 -08:00
Zhengyu Gu
ac7f36ce25 8236880: Shenandoah: Move string dedup cleanup into concurrent phase
Reviewed-by: rkennke, shade
2020-01-22 14:27:13 -05:00
Patricio Chilano Mateo
b25bb17b41 8230594: Allow direct handshakes without VMThread intervention
Introduce direct handshakes and enable it for biased locking revocations.

Reviewed-by: dholmes, dcubed, coleenp, rehn
2020-01-22 16:46:46 +00:00
Nick Gasson
b21e04af5d 8237512: AArch64: aarch64TestHook leaks a BufferBlob
Reviewed-by: adinn, aph
2020-01-22 09:08:36 +00:00
Alan Bateman
c6a4cea7a0 8236246: SelectorProvider support for creating a DatagramChannel that is not interruptible
Reviewed-by: chegar
2019-12-20 09:28:57 +00:00
Ioi Lam
d1ad0eaf8f 8233826: Change CDS dumping tty->print_cr() to unified logging
Reviewed-by: coleenp, dholmes, jiangli
2019-12-19 23:04:49 -08:00
Jesper Wilhelmsson
4f22b49c85 Merge 2019-12-20 04:47:34 +01:00
Phil Race
d86eb1de69 8231556: Wrong font ligatures used when 2 versions of same font used
Reviewed-by: serb, kcr
2019-12-19 15:36:40 -08:00
Phil Race
9628324ae7 Merge 2019-12-19 12:28:56 -08:00
Lance Andersen
fb1c57789e 8235961: SyncResolverImpl does not throw SQLException as expected
Reviewed-by: joehw, bpb
2019-12-19 15:23:57 -05:00
Alexey Semenyuk
91008df5a8 8236138: Add tests for jmod applications
Reviewed-by: herrick, prr
2019-12-19 13:39:10 -05:00
Vicente Romero
68122fd64e 8236266: change error message for the case when a class extends j.l.Record
Reviewed-by: mcimadamore
2019-12-19 13:32:58 -05:00
Vicente Romero
9695ddfffc 8234445: spurious error message for record constructors with receiver parameters
Reviewed-by: mcimadamore
2019-12-19 11:46:35 -05:00
Robbin Ehn
a170a4af4a 8235913: ThreadStop should be a handshake
Reviewed-by: dholmes, mdoerr
2019-12-19 17:02:11 +01:00
Robbin Ehn
e4c96dea46 8235912: JvmtiBreakpoint remove oops_do and metadata_do
Reviewed-by: coleenp, sspitsyn
2019-12-19 16:47:59 +01:00
Yasumasa Suenaga
18bc0214db 8235833: PosixPlatform.cpp should not include sysctl.h
Reviewed-by: aph, asemenyuk
2019-12-19 20:13:15 +09:00
Nick Gasson
75f2e6433c 8236242: Arm32: build broken after 8234794
Reviewed-by: aph
2019-12-19 17:18:16 +08:00
Pankaj Bansal
ef14de54e7 8234733: We can't distinguish if the spinner button is pressed or unpressed
Reviewed-by: psadhukhan, prr
2019-12-19 11:57:58 +05:30
Sergey Bylokhov
61cfabff57 8223108: Test java/awt/EventQueue/NonComponentSourcePost.java is unstable
Reviewed-by: prr
2019-12-18 10:10:32 +03:00
Severin Gehwolf
4def210a22 8231111: Cgroups v2: Rework Metrics in java.base so as to recognize unified hierarchy
Reviewed-by: bobv, mchung
2019-12-16 15:07:17 +01:00
Frederic Parain
8827df9b2d 8239014: -XX:-UseEmptySlotsInSupers sometime fails to reproduce the layout of the old code
Reviewed-by: dholmes, coleenp
2020-02-19 08:57:43 -05:00
Lin Zang
732a575738 8239139: test/jdk/java/nio/channels/spi/SelectorProvider/inheritedChannel/libInheritedChannel.c does not compile with gcc 8.3.1
Reviewed-by: michaelm
2020-02-19 11:31:48 +00:00
Pavel Rappo
9fdcdf4a3e 8239243: Create index structures only if required
Reviewed-by: hannesw, jjg
2020-02-19 10:34:42 +00:00
Rahul Raghavan
7b24bd68c2 8238356: CodeHeap::blob_count() overestimates the number of blobs
Decremented _blob_count on addition to the free list

Reviewed-by: lucy, shade, thartmann
2020-02-19 15:01:57 +05:30
John Paul Adrian Glaubitz
16c75e67cf 8239001: Hotspot build broken on linux-sparc after 8238281
Reviewed-by: dholmes, kbarrett
2020-02-19 10:10:55 +01:00
Thomas Schatzl
fff8438af8 8239070: Memory leak when unsuccessfully mapping in archive regions
Reviewed-by: kbarrett, iklam, coleenp, jiangli
2020-02-19 10:04:54 +01:00
Martin Doerr
6015cab798 8239363: PPC64: Wrong code generation after JDK-8183574
Reviewed-by: stuefe, stefank, lucy
2020-02-19 09:40:38 +01:00
Matthias Baesken
09f5194d38 8238953: tools/jpackage tests do not work on Ubuntu Linux
Reviewed-by: asemenyuk, clanger
2020-02-18 16:46:08 +01:00
Matthias Baesken
7f3bbc3f20 8239333: test/jdk/security/infra/java/security/cert/CertPathValidator/certification/AmazonCA.java fails intermittent
Reviewed-by: clanger
2020-02-18 10:28:16 +01:00
Joe Darcy
d4a069b33b 8237450: JDK13 annotation processors not run when a supported annotation type specifies a module
Initial fix suggested by jjg based on through analysis by Jeremy Kuhn.

Reviewed-by: jjg
2020-02-18 17:03:54 -08:00
Rajan Halade
11386e7cb2 8225128: Add exception for expiring DocuSign root to VerifyCACerts test
Reviewed-by: clanger
2020-02-18 16:00:40 -08:00
Pavel Rappo
56282f7119 8238969: Miscellaneous cleanup
Reviewed-by: jjg
2020-02-18 23:05:20 +00:00
Jonathan Gibbons
36cd7bdb7f 8239378: Add Classpath Exception to license in source file
Reviewed-by: vromero
2020-02-18 14:08:21 -08:00
Erik Gahlin
f3cd52e3c7 8210977: jdk/jfr/event/oldobject/TestThreadLocalLeak.java fails to find ThreadLocalObject
Reviewed-by: mgronlun, mseledtsov
2020-02-18 22:25:08 +01:00
Erik Joelsson
58a0360039 8239019: testmake fails with FATAL: VCS_TYPE is empty
Reviewed-by: rriggs
2020-02-18 11:21:41 -08:00
Leonid Mesnik
a6dbc71114 8239026: Support non-maven artifacts by JibArtifactManager
Reviewed-by: erikj
2020-02-18 10:48:48 -08:00
Harold Seigel
bf6c14f034 8187305: Add logging for shared library loads/unloads
Add logging to JVM_LoadLibrary(), JVM_UnloadLibrary(), and JVM_FindLibraryEntry().

Reviewed-by: dholmes, coleenp
2020-02-18 16:30:54 +00:00
Mikhailo Seledtsov
cea8931aed 8167493: Test that JFR event can be retransformed by an agent
Added new test, extended agent builder test library

Reviewed-by: egahlin
2020-02-18 08:14:48 -08:00
Roman Kennke
ccb5defde4 8237780: Shenandoah: More reliable nmethod verification
Reviewed-by: shade, zgu
2020-02-18 17:20:04 +01:00
Matthias Baesken
0e49c4987d 8239224: libproc_impl.c previous_thr may be used uninitialized warning
Reviewed-by: clanger, dholmes
2020-02-18 16:33:56 +01:00
Erik Gahlin
b6c1b49c97 8239350: Add tests for JFR class redefinition events
Reviewed-by: mgronlun
2020-02-18 16:34:19 +01:00
Erik Gahlin
f75f78ae3a 8239265: JFR: Test cleanup of jdk.jfr.api.consumer package
Reviewed-by: mgronlun
2020-02-18 14:34:54 +01:00
Ivan Walulya
6f6b4c0ef9 8232686: Turn parallel gc develop tracing flags into unified logging
Reviewed-by: sjohanss, tschatzl, lkorinth
2020-02-18 11:00:24 +01:00
Thomas Schatzl
28c630046e 8238999: Remove MemRegion custom new/delete operator overloads
Reviewed-by: kbarrett, jiangli, iklam
2020-02-18 10:59:38 +01:00
Patrick Concannon
301a2e19c3 8237480: Add micros for DatagramSocket send/receive
Benchmarks for the DatagramSocket::send and DatagramSocket::receive methods

Reviewed-by: chegar, dfuchs, redestad
2020-02-18 09:42:30 +00:00
Tobias Hartmann
cb2eeb7d9a 8239142: C2's UseUniqueSubclasses optimization is broken for array accesses
Avoid resetting the elemtype for array accesses.

Reviewed-by: vlivanov, eosterlund
2020-02-18 08:28:02 +01:00
Xue-Lei Andrew Fan
4e430ffbb6 8239264: Clearup the legacy ObjectIdentifier constructor from int array
Reviewed-by: jnimeh
2020-02-17 18:52:50 -08:00
Ivan Gerasimov
8aff5bda80 8163251: Hard coded loop limit prevents reading of smart card data greater than 8k
Reviewed-by: valeriep, rriggs
2020-02-17 16:32:05 -08:00
Erik Gahlin
5d9c59f2f8 8238236: Add JFR class redefinition events
Reviewed-by: mgronlun
2020-02-17 22:36:13 +01:00
Christian Hagedorn
74bee68872 8239069: C2: SIGSEGV in IdealGraphPrinter::walk_nodes due to C->root() being NULL
Fix NULL pointer dereference when trying to print the ideal graph when Compile::record_failure() is called twice.

Reviewed-by: neliasso, thartmann
2020-02-17 12:29:24 +01:00
Christian Hagedorn
b369aefc79 8238765: PhaseCFG::schedule_pinned_nodes cannot handle precedence edges from unmatched CFG nodes correctly
Fix PhaseCFG::schedule_pinned_nodes to correctly handle precedence edges from unmatched CFG nodes.

Reviewed-by: roland, neliasso, kvn
2020-02-17 12:29:03 +01:00
Matthias Baesken
cf4291db37 8239000: handle ContendedPaddingWidth in vm_version_ppc
Reviewed-by: clanger, lucy
2020-02-13 11:11:49 +01:00
Roman Kennke
41d457a089 8239081: Shenandoah: Consolidate C1 LRB and native barriers
Reviewed-by: shade
2020-02-14 19:43:17 +01:00
Richard Reingruber
eaff9918d2 8239005: [TESTBUG] test/hotspot/jtreg/runtime/StackGuardPages/TestStackGuardPages.java: exeinvoke.c: must initialize static state before calling do_overflow()
Reviewed-by: dholmes, clanger
2020-02-13 16:20:14 +01:00
Roland Westrelin
52d46c314b 8238691: C2: turn subtype check into macro node
Reviewed-by: vlivanov, thartmann
2020-02-14 10:31:34 +01:00
Stefan Karlsson
e4b27a48a0 8183574: Unify the is_power_of_2 functions
Reviewed-by: kbarrett, redestad
2020-02-17 10:03:17 +01:00
Magnus Ihse Bursie
248b61710e 8213185: Properly handle run-test-prebuilt -> test-prebuilt migration
Reviewed-by: erikj
2020-02-17 08:59:26 +01:00
Aya Ebata
2f17073230 8237818: Typo in Unsafe: resposibility
Reviewed-by: ysuenaga
2020-02-17 11:12:24 +09:00
René Schünemann
0249cadd62 8238534: Deep sign macOS bundles before bundle archive is being created
Reviewed-by: erikj, clanger
2020-02-13 10:07:38 +01:00
Jie Fu
3c7858c285 8239110: Zero VM build fails after JDK-8203883
Reviewed-by: aph
2020-02-15 17:35:57 +08:00
Weijun Wang
c4681a95dc 8160818: GssKrb5Client violates RFC 4752
Reviewed-by: xuelei
2020-02-15 09:26:32 +08:00
Erik Gahlin
71ed4f276b 8238959: Add missing classpath exception to FileAcess and ConstantLookup
Reviewed-by: mgronlun
2020-02-14 23:33:48 +01:00
Joe Darcy
612342baaa 8239092: Provide explicit specification for getKind methods of javax.lang.model
Reviewed-by: jjg, prappo
2020-02-14 12:47:18 -08:00
Chris Plummer
110ef6f2c3 8238196: tests that use SA Attach should not be allowed to run against signed binaries on Mac OS X 10.14.5 and later
Reviewed-by: sspitsyn, iignatyev
2020-02-14 10:28:32 -08:00
Doug Simon
8119f836bf 8238758: [JVMCI] fix JVMCI jtreg events tests to work with GraalVM
Reviewed-by: kvn, dlong, never
2020-02-14 09:25:43 -08:00
Roland Westrelin
3bb62dc0d8 8236759: ShouldNotReachHere in PhaseIdealLoop::verify_strip_mined_scheduling
Reviewed-by: thartmann, neliasso
2020-01-13 10:00:30 +01:00
Nils Eliasson
18c01206d0 8203883: Remove State from InvocationCounters
Reviewed-by: redestad, thartmann
2020-02-12 20:53:48 +01:00
Claes Redestad
b4b8ead78b 8238863: Refactor out static initialization from Dict constructors
Reviewed-by: neliasso, dlong
2020-02-14 10:16:07 +01:00
John Jiang
945e42212d 8239025: ProblemList java/net/httpclient/HandshakeFailureTest.java due to JDK-8238990
Reviewed-by: chegar
2020-02-14 16:53:40 +08:00
Boris Ulasevich
485115d1b3 8231118: ARM32: Math tests failures
Reviewed-by: roland
2020-02-14 10:05:10 +03:00
Boris Ulasevich
416ac1d01e 8238643: ARM32 build fails after JDK-8230199
Reviewed-by: shade, lfoltan
2020-02-14 10:03:39 +03:00
Naoto Sato
27391005a5 8239017: cmp-baseline fails because of differences in TimeZoneNames_kea
Reviewed-by: erikj
2020-02-13 17:14:45 -08:00
Alex Menkov
bcb804f07f 8238710: LingeredApp doesn't log stdout/stderr if exits with non-zero code
Reviewed-by: cjplummer, sspitsyn
2020-02-13 13:43:09 -08:00
Jose Ziviani
b72e31b39f 8235791: [TESTBUG] Fix comment in TestElfDirectRead.java
Reviewed-by: dholmes, iklam
2020-02-13 16:01:46 -05:00
Kim Barrett
087074334d 8238867: Improve G1DirtyCardQueueSet::Queue::pop
Allow one of competing pops for last element to succeed.

Reviewed-by: iwalulya, sjohanss
2020-02-13 15:16:50 -05:00
Mikael Vidstedt
3c18ed58a1 8238932: Invalid tier1_gc_1 test group definition
Reviewed-by: kbarrett
2020-02-13 12:08:04 -08:00
Vicente Romero
4c707c1df3 8238838: spurious error message for compact constructors with throws clause
Reviewed-by: mcimadamore
2020-02-13 14:13:08 -05:00
Man Cao
f844943273 8234608: [TESTBUG] Fix G1 redefineClasses tests and a memory leak
Co-authored-by: Ian Rogers <irogers@google.com>
Co-authored-by: Thomas Schatzl <thomas.schatzl@oracle.com>
Reviewed-by: tschatzl, sjohanss
2020-02-13 10:54:07 -08:00
Joe Darcy
683a5b1197 8237805: Use inline @jls @jvms in core libs where appropriate
Reviewed-by: xiaofeya, dfuchs, prappo
2020-02-13 10:37:37 -08:00
Aleksey Shipilev
1ef862d03d 8239007: java/math/BigInteger/largeMemory/ tests should be disabled on 32-bit platforms
Reviewed-by: bpb
2020-02-13 19:22:32 +01:00
Stuart Marks
5b4d80d106 8046362: IdentityHashMap.hash comments should be clarified
Reviewed-by: aph, martin, rriggs
2020-02-13 10:00:33 -08:00
Frederic Parain
30707f8007 8238961: Assertion failure in new field layout code when ContendedPaddingWidth == 0
Reviewed-by: hseigel, coleenp
2020-02-13 11:23:17 -05:00
Aleksey Shipilev
a4616a7b49 8238896: Massive x86_32 crashes after JDK-7175279 (Don't use x87 FPU on x86-64)
Reviewed-by: thartmann, stuefe, vlivanov
2020-02-13 17:05:54 +01:00
Aleksey Shipilev
18b31b1f02 8238909: x86_32 fails gtest:power_of_2
Reviewed-by: stefank, redestad
2020-02-13 17:05:30 +01:00
Harold Seigel
d298a05d02 8238175: CTW: Class.getDeclaredMethods fails with assert(k->is_subclass_of(SystemDictionary::Throwable_klass())) failed: invalid exception class
Replace the assert with a logging message saying that the class is not a subclass of java.lang.Throwable

Reviewed-by: dholmes, coleenp
2020-02-13 15:43:59 +00:00
Christian Hagedorn
2ac2d590c2 8238811: C2: assert(i >= req() || i == 0 || is_Region() || is_Phi()) with -XX:+VerifyGraphEdges
Fix -XX:+VerifyGraphEdges by additionally handling ArrayCopyNodes and UnlockNodes and add some basic flag testing.

Reviewed-by: roland, neliasso
2020-02-13 15:08:08 +01:00
Christian Hagedorn
3ea92e735b 8238756: C2: assert(((n) == __null || !VerifyIterativeGVN || !((n)->is_dead()))) failed: can not use dead node
Fix -XX:+VerifyIterativeGVN due to a dead node and add some basic flag testing.

Reviewed-by: roland, neliasso
2020-02-13 15:07:45 +01:00
Christian Hagedorn
e2829b7b87 8237945: CTW: C2 compilation fails with assert(just_allocated_object(alloc_ctl) == ptr) failed: most recent allo
Removing too strong assertion about array allocation in LibraryCallKit::tightly_coupled_allocation().

Reviewed-by: thartmann, neliasso
2020-02-13 15:07:21 +01:00
Christian Hagedorn
8bdb972192 8238178: CTW: C1 compilation fails with assert(sux->loop_depth() != block->loop_depth() || sux->loop_index() == block->loop_index() || loop_through_xhandler) failed: Loop index has to be same
Fix verification of C1 IR involving xhandlers in one-time executed loops on the non-exceptional path.

Reviewed-by: thartmann, neliasso
2020-02-13 15:06:57 +01:00
Richard Reingruber
b0b8190ea2 8238782: Cleanup Deoptimization::deoptimize(): remove unused RegisterMap argument and don't update RegisterMap in callers if UseBiasedLocking is enabled
Reviewed-by: dholmes, kvn
2020-02-12 09:18:37 +01:00
John Jiang
446f59a26c 8234718: java/net/httpclient tests should cover TLSv1.3
Reviewed-by: dfuchs
2020-02-13 21:42:31 +08:00
Matthias Baesken
cafdbcc6ef 8237830: support O_CLOEXEC in os::open on other OS than Linux
Reviewed-by: dholmes, lucy
2020-02-13 09:18:46 +01:00
Thomas Schatzl
78f58c3e39 8238854: Remove superfluous C heap allocation failure checks
Reviewed-by: kbarrett, sjohanss
2020-02-13 11:00:40 +01:00
Jesper Wilhelmsson
00484e9446 Added tag jdk-15+10 for changeset 1bee69801aee 2020-02-13 03:02:02 +01:00
David Holmes
4e4d1f2b4d 8234372: Investigate use of Thread::stack_base() and queries for "in stack"
Reviewed-by: dcubed, stuefe
2020-02-12 20:19:50 -05:00
Kim Barrett
25c5a23695 8238272: Eliminate cast_from_oop to narrowOop*
Improved low address computation in ObjArrayKlass::oop_oop_iterate_range.

Reviewed-by: tschatzl, sjohanss
2020-02-12 15:38:48 -05:00
Roger Riggs
eccdd8e603 8238919: (doc) Broken code snippet in the java.util.stream package documentation
Reviewed-by: mchung, naoto
2020-02-12 15:06:39 -05:00
Igor Ignatyev
93241e5db7 8238930: problem list compiler/c2/Test8004741.java
Reviewed-by: kvn
2020-02-12 11:31:36 -08:00
Mikael Vidstedt
aa4ef80f6a 8238912: Update devkit for linux-aarch64
Reviewed-by: erikj
2020-02-12 09:44:53 -08:00
Naoto Sato
5c3a01591c 8234347: "Turkey" meta time zone does not generate composed localized names
8236548: Localized time zone name inconsistency between English and other locales

Reviewed-by: joehw, rriggs
2020-02-12 08:25:35 -08:00
Sean Mullan
2fbbce2b23 8191395: policy.allowSystemProperty and policy.expandProperties also apply to JAAS configurations
Reviewed-by: weijun
2020-02-12 10:28:59 -05:00
Roger Riggs
a239c475cf 8238918: idea.sh should work with both mercurial and git repos
Reviewed-by: erikj, mcimadamore, ehelin, lancea
2020-02-12 09:38:59 -05:00
Roman Kennke
411766b6bb 8238851: Shenandoah: C1: Resolve into registers of correct type
Reviewed-by: shade
2020-02-11 16:01:38 +01:00
Matthias Baesken
1e0167ef92 8238602: remove obsolete functions from libinstrument/FileSystemSupport_md.c
Reviewed-by: clanger, sspitsyn
2020-02-06 16:53:33 +01:00
Valerie Peng
c103a1bb69 8238448: RSASSA-PSS signature verification fail when using certain odd key sizes
Calculate and set offset for correct verification for such key sizes

Reviewed-by: xuelei
2020-02-12 02:44:45 +00:00
Valerie Peng
8969aeb16b Merge 2020-02-12 01:13:55 +00:00
Valerie Peng
fc3b42fc8e 8238898: Missing hash characters for header on license file
Fixed the typos and corrected the formatting

Reviewed-by: weijun
2020-02-12 01:11:59 +00:00
Valerie Peng
1f17842583 8236512: PKCS11 Connection closed after Cipher.doFinal and NoPadding
Removed killSession() calls in certain impl classes when cancelling operations

Reviewed-by: xuelei
2020-02-12 00:56:27 +00:00
Yumin Qi
c37ebcd730 8232069: Enable CDS even when UseCompressedClassPointers and/or UseCompressedOops are false
Fix to save UseCompressedOops and UseCompressedClassPointers in shared archive and at runtime run with CDS only if they are matched the stored versions.

Reviewed-by: iklam, ccheung
2020-02-11 12:16:23 -08:00
Pavel Rappo
56a7631555 8237909: Remove zipped index files feature
Reviewed-by: hannesw, jjg
2020-02-11 15:23:28 +00:00
Pavel Rappo
fff1a59cfa 8238291: Fix inconsistencies in the format of the index files
Reviewed-by: jjg
2020-02-11 13:19:12 +00:00
Vladimir Ivanov
898a903530 8238762: Optimized build is broken
Reviewed-by: coleenp
2020-02-11 14:55:45 +03:00
Vladimir Ivanov
5e9dc46d21 8238683: C2: Remove Use24BitFP and Use24BitFPMode flags
Reviewed-by: thartmann, neliasso
2020-02-11 14:55:44 +03:00
Vladimir Ivanov
74e68b4092 8238690: C2: Handle vector shifts by constant and non-constant scalar uniformly
Reviewed-by: thartmann, sviswanathan
2020-02-11 14:55:43 +03:00
Vladimir Ivanov
0d84fe9872 8238680: C2: Remove redundant AD instructions for Replicate nodes
Reviewed-by: thartmann, sviswanathan
2020-02-11 14:55:41 +03:00
Vladimir Ivanov
590f5996c6 8136414: Large performance penalty declaring a method strictfp on strict-only platforms
Reviewed-by: thartmann
2020-02-11 14:55:39 +03:00
Thomas Schatzl
c16040393c 8238160: Uniformize Parallel GC task queue variable names
Reviewed-by: kbarrett, sangheki
2020-02-11 12:48:25 +01:00
Patrick Zhang
1d42f083c1 8238386: (sctp) jdk.sctp/unix/native/libsctp/SctpNet.c "multiple definition" link errors with GCC10
Fixed libsctp link errors caused by GCC10 default -fno-common

Reviewed-by: chegar
2020-02-05 17:14:15 +08:00
Sergey Bylokhov
ddc851536c 8235739: Rare NPE at WComponentPeer.getGraphics()
Reviewed-by: dmarkov, aivanov
2019-12-13 18:39:30 -08:00
Sergey Bylokhov
76da2b777a 8235638: NPE in LWWindowPeer.getOnscreenGraphics()
Reviewed-by: dmarkov, aivanov
2019-12-13 18:37:48 -08:00
Gustavo Romero
1691abc747 8234599: PPC64: Add support on recent CPUs and Linux for JEP-352
Reviewed-by: mbaesken, mdoerr, adinn
2019-11-21 17:10:26 -03:00
Patrick Zhang
3ad9078968 8234228: AArch64: Some temp vars in string_compare intrinsics for processing the last 4 chars (LU/UL) are no use
Clean up redundant temp vars in generate_compare_long_string_different_encoding

Reviewed-by: adinn
2019-11-15 17:02:17 +08:00
Severin Gehwolf
d462a6b5c9 8230305: Cgroups v2: Container awareness
Implement Cgroups v2 container awareness in hotspot

Reviewed-by: bobv, dholmes
2019-11-07 17:11:59 +01:00
Pavel Rappo
71340f51fa 8236700: Upgrading JSZip from v3.1.5 to v3.2.2
Reviewed-by: hannesw, jjg
2020-01-17 12:25:37 +00:00
Coleen Phillimore
65354d838a 8236901: 8232759 missed a test case
Use jcmd GC.class-histogram because it also works for verifying that the classes are loaded.

Reviewed-by: dholmes, mseledtsov, iklam
2020-01-17 06:56:29 -05:00
Per Lidén
72609092fe 8237201: ZGC: Remove unused ZRelocationSetSelector::fragmentation()
Reviewed-by: tschatzl
2020-01-17 10:20:38 +01:00
Per Lidén
d98a39a0e7 8237200: ZGC: Rename ZBackingPath to ZMountPoint
Reviewed-by: stefank, eosterlund, smonteith
2020-01-17 10:20:38 +01:00
Per Lidén
74f0ef5050 8237199: ZGC: Rename ZBackingFile to ZPhysicalMemoryBacking
Reviewed-by: stefank, eosterlund, smonteith
2020-01-17 10:20:38 +01:00
Per Lidén
c6dc3308a1 8237198: ZGC: Share multi-mapping code in ZBackingFile
Reviewed-by: stefank, eosterlund, smonteith
2020-01-17 10:20:37 +01:00
Fairoz Matte
a4b3e781fe 8236701: [TESTBUG] compiler/loopopts/superword/Vec_MulAddS2I.java uses wrong flag -XX:-SuperWord
Reviewed-by: iklam, thartmann
2020-01-16 17:37:09 -08:00
Nick Gasson
18d73cb8e5 8236992: AArch64: remove redundant load_klass in itable stub
Reviewed-by: aph, adinn
2020-01-17 09:30:52 +08:00
Masanori Yano
567465c62c 8216012: Infinite loop in RSA KeyPairGenerator
Check and error out on even RSA public exponents

Reviewed-by: valeriep
2020-01-17 01:05:27 +00:00
Zhengyu Gu
0b2da9e239 8236878: Use atomic instruction to update StringDedupTable's entries and entries_removed counters
Reviewed-by: rkennke, shade
2020-01-16 18:36:24 -05:00
Alexey Semenyuk
163875d24b 8236132: Add missing properties to msi installers
Reviewed-by: herrick, almatvee
2020-01-16 08:28:21 -05:00
Alexey Semenyuk
a544090944 8232077: Investigate if default behavior should allow downgrade scenario
Reviewed-by: herrick, almatvee
2020-01-16 08:25:46 -05:00
Alexey Semenyuk
bd1eff9e32 8233578: Document configurable parameters of msi packages
Reviewed-by: herrick, almatvee
2020-01-16 12:12:02 -05:00
Daniil Titov
75912b7aaa 8236873: Worker has a deadlock bug
Reviewed-by: dfuchs, dholmes, sspitsyn
2020-01-16 09:53:03 -08:00
Harold Seigel
7fc58a1020 8235678: Remove unnecessary calls to Thread::current() in MutexLocker calls
Add THREAD argument when available and make Thread* the first argument to relevant MutexLocker and MonitorLocker constructors

Reviewed-by: lfoltan, coleenp, dholmes
2020-01-16 13:48:23 +00:00
Igor Ignatyev
e2240b714e 8236111: narrow allowSmartActionArgs disabling
Reviewed-by: dholmes, mullan, darcy, rriggs
2020-01-15 21:20:40 -08:00
Jesper Wilhelmsson
51d5164ca2 Merge 2020-01-16 04:09:50 +01:00
Jesper Wilhelmsson
76e420d790 Added tag jdk-15+6 for changeset ef7d53b4fccd 2020-01-16 03:19:32 +01:00
Fei Yang
a86e196559 8235762: JVM crash in SWPointer during C2 compilation
Reviewed-by: thartmann, chagedorn, neliasso
2020-01-09 19:12:16 +08:00
Joe Darcy
e80a188257 8235959: Update --release 14 symbol information up to JDK 14 b31
Reviewed-by: jjg
2020-01-15 15:11:09 -08:00
Aleksey Shipilev
abfab9e0a7 8237223: Shenandoah: important flags should not be ergonomic for concurrent class unloading
Reviewed-by: zgu
2020-01-15 21:38:12 +01:00
Jaikiran Pai
ec5869eb2e 7143743: Potential memory leak with zip provider
Reviewed-by: lancea, clanger, alanb
2020-01-15 15:24:54 -05:00
Jesper Wilhelmsson
d34f561de0 Merge 2020-01-15 20:41:46 +01:00
Vicente Romero
eb6fa14ee6 8237214: fix for JDK-8236597 reintroduced wrong subexpression
Reviewed-by: mcimadamore
2020-01-15 14:32:08 -05:00
Jonathan Gibbons
642037eee8 8223536: jdk/javadoc/doclet/MetaTag/MetaTag.java still fails when run across midnight
Reviewed-by: prappo
2020-01-15 11:21:48 -08:00
Aleksey Shipilev
45bc3871f5 8237217: Incorrect G1StringDedupEntry type used in StringDedupTable destructor
Reviewed-by: kbarrett, zgu
2020-01-15 20:04:51 +01:00
Daniil Titov
c0b4e0cb25 8213222: remove RMIConnectorServer.CREDENTIAL_TYPES
Reviewed-by: dfuchs, alanb
2020-01-15 10:54:34 -08:00
Severin Gehwolf
7b5de56fc3 8236921: Add build target to produce a JDK image suitable for a Graal/SVM build
Make graal-builder-image will produce a suitable build JDK

Reviewed-by: erikj
2019-12-16 11:06:01 +01:00
Vicente Romero
ff77d06f17 8236597: issues inferring type annotations on records
Reviewed-by: mcimadamore
2020-01-15 10:45:03 -05:00
Coleen Phillimore
c0dce25756 8236917: TestInstanceKlassSize.java fails with "The size computed by SA for java.lang.Object does not match"
Use getTestJavaOpts() instead of getVmOptions() because of mach5 configuration settings.

Reviewed-by: lmesnik, cjplummer, dholmes
2020-01-15 08:11:03 -05:00
Coleen Phillimore
7707e32b00 8236968: jmap -clstats fails to work after JDK-8232759
Make jmap -clstats call jcmd VM.classloader_stats instead which better matches the documentation

Reviewed-by: dholmes, cjplummer
2020-01-15 08:08:54 -05:00
Roland Westrelin
8d2e11397a 8237007: Shenandoah: assert(_base == Tuple) failure during C2 compilation
Reviewed-by: thartmann, rkennke
2020-01-09 17:26:26 +01:00
Tobias Hartmann
f243173a18 8236721: C2 should better optimize not-equal integer comparisons
Narrow the type if an integer value is found to be unequal to it's lower/upper boundary.

Reviewed-by: roland, neliasso
2020-01-15 08:44:53 +01:00
Pengfei Li
e4aa87b816 8230591: AArch64: Missing intrinsics for Math.ceil, floor, rint
Reviewed-by: aph
2020-01-15 13:24:51 +08:00
Mikael Vidstedt
b63b9a2edb 8237182: Update copyright header for shenandoah and epsilon files
Reviewed-by: iignatyev, zgu
2020-01-14 19:27:03 -08:00
Vicente Romero
ddcac6f066 8236682: Javac generates a redundant FieldRef constant for record fields
Reviewed-by: mcimadamore
2020-01-14 21:49:43 -05:00
Brian Burkhalter
833a3897dc 8225603: Enhancement for big integers
Reviewed-by: darcy, ahgross, rhalade
2019-10-29 14:07:27 -07:00
Stuart Marks
14c0c19539 8224549: Less Blocking Array Queues
Reviewed-by: bchristi, rhalade, rriggs, mschoene, robm
2020-01-21 16:53:01 -08:00
Brent Christian
d7136cd430 8224541: Better mapping of serial ENUMs
Reviewed-by: mschoene, rhalade, robm, rriggs, smarks
2020-01-21 10:56:30 -08:00
Anton Litvinov
e4f4e8eda1 8233250: Better X11 rendering
Reviewed-by: prr, rhalade, mschoene, serb
2020-01-16 15:08:19 +00:00
Brian Burkhalter
f711ce40ba 8234841: Enhance buffering of byte buffers
Reviewed-by: alanb, ahgross, rhalade, psandoz
2019-12-18 07:21:23 -08:00
Xue-Lei Andrew Fan
f476138133 8235691: Enhance TLS connectivity
Reviewed-by: jnimeh, rhalade, ahgross
2019-12-17 12:55:36 -08:00
Michael McMahon
8e5af26326 8234825: Better Headings for HTTP Servers
Reviewed-by: chegar, dfuchs, igerasim
2019-12-16 15:13:19 +00:00
Roger Riggs
2309ac529c 8235274: Enhance typing of methods
Reviewed-by: jrose, psandoz, skoivu
2019-12-13 11:23:50 -05:00
Erik Joelsson
4df99aa7ae 8226346: Build better binary builders
Reviewed-by: tbell
2019-12-13 08:27:51 -08:00
Erik Joelsson
0a73d5b7b1 8233410: Better Build Scripting
Reviewed-by: tbell, jwilhelm
2019-12-12 15:38:36 -08:00
Weijun Wang
c182379f32 8234027: Better JCEKS key support
Reviewed-by: ahgross, mullan, rriggs, rhalade
2019-12-11 16:35:43 +08:00
Daniel Fuchs
ad09813035 8233245: More adaptive sockets
Reviewed-by: chegar, igerasim, alanb, skoivu, rhalade
2019-12-09 20:33:15 +00:00
Vladimir Ivanov
2ea157fee1 8227467: Better class method invocations
Reviewed-by: thartmann, dholmes, ahgross
2019-12-03 19:31:20 +03:00
Xue-Lei Andrew Fan
72c7b49b0a 8234408: Improve TLS session handling
Reviewed-by: ascarpino, jjiang, ahgross, ssahoo, mullan
2019-11-25 09:50:30 -08:00
Hannes Wallnöfer
3dd1fd2964 8223904: Improve Nashorn matching
Reviewed-by: jlaskey, sundar, mschoene, rhalade
2019-11-15 19:10:43 +01:00
Alex Menkov
3bbc499f06 8227542: Manifest improved jar headers
Reviewed-by: sspitsyn, mschoene
2019-11-14 15:06:11 -08:00
Hannes Wallnöfer
0e4b718a25 8223898: Forward references to Nashorn
Reviewed-by: sundar, mschoene, rhalade
2019-11-06 17:13:21 +01:00
Jamil Nimeh
740e70ba17 8232581: Improve TLS verification
Reviewed-by: xuelei, rhalade, mschoene
2019-10-30 13:15:21 -07:00
Xue-Lei Andrew Fan
e6304dcaad 8232424: More constrained algorithms
Reviewed-by: jnimeh, rhalade, ahgross
2019-10-28 10:43:58 -07:00
Ivan Gerasimov
6c16f55fde 8231785: Improved socket permissions
Reviewed-by: ahgross, chegar, mullan, rhalade
2019-10-23 17:03:07 -07:00
Xue-Lei Andrew Fan
123febeb98 8229733: TLS message handling improvements
Reviewed-by: jnimeh, rhalade, ahgross
2019-10-20 13:42:44 -07:00
Sean Mullan
9efd3d7f20 8231415: Better signatures in XML
Reviewed-by: weijun, mschoene, rhalade
2019-10-15 08:18:48 -04:00
Patrick Zhang
8c1efbe38b 8229351: AArch64: the const STUB_THRESHOLD in macroAssembler_aarch64.cpp needs to be tuned
Optimize the stub thresholds of string_compare intrinsics

Reviewed-by: adinn, aph, avoitylov
2019-08-12 16:22:24 +08:00
Alan Bateman
27e0cdf12d 8236184: (dc) IP_MULTICAST_* and IP_TOS socket options not effective
Reviewed-by: dfuchs
2019-12-19 08:36:40 +00:00
Matthias Baesken
75cd193aac 8236183: cleanup Java_jdk_internal_reflect_Reflection_getCallerClass naming
Reviewed-by: alanb, dholmes, redestad
2019-12-18 15:10:10 +01:00
Jesper Wilhelmsson
14591108c7 Added tag jdk-15+2 for changeset f33197adda9a 2019-12-19 03:48:14 +01:00
Nick Gasson
aea0a57512 8234794: AArch64: runtime/memory/ReadFromNoaccessArea.java crashes
Try to map CDS shared space at 4G aligned address on AArch64

Reviewed-by: adinn, aph, jiangli, iklam
2019-12-19 09:47:33 +08:00
Daniel D. Daugherty
03c3f174ae 8236226: fix merge error in src/hotspot/share/gc/z/zRootsIterator.cpp
Reviewed-by: dholmes, kbarrett
2019-12-18 18:22:52 -05:00
Jesper Wilhelmsson
e788e6dd46 Merge 2019-12-18 23:46:55 +01:00
Jonathan Gibbons
c670ebb56b 8236030: Cleanup use of String.toCharArray
Reviewed-by: ksrini, hannesw, igerasim
2019-12-18 12:14:01 -08:00
Jonathan Gibbons
dc5728ed95 8235947: Cleanup/simplify Utils.getBlockTags
Reviewed-by: prappo, hannesw
2019-12-18 11:57:07 -08:00
Jatin Bhateja
a3c0f4c804 8235825: C2: Merge AD instructions for Replicate nodes
Reviewed-by: vlivanov, sviswanathan, jrose, kvn
2019-12-18 21:25:40 +03:00
Jatin Bhateja
7840d02140 8235824: C2: Merge AD instructions for AddReductionV and MulReductionV nodes
Reviewed-by: vlivanov, sviswanathan, jrose, kvn
2019-12-18 21:25:38 +03:00
Lance Andersen
ab7cfde85c 8229888: (zipfs) Updating an existing zip file does not preserve original permissions
Reviewed-by: clanger, alanb, bpb
2019-12-18 12:03:56 -05:00
Kiran Sidhartha Ravikumar
a1b2e1042c 5064980: URI compareTo inconsistent with equals for mixed-case escape sequences
Reviewed-by: chegar, dfuchs
2019-12-17 16:06:27 +00:00
Calvin Cheung
fae788a200 8235563: [TESTBUG] appcds/CommandLineFlagComboNegative.java does not handle archive mapping failure
Use the assertAbnormalExit method of the CDSTestUtils.Result class to handle archive mapping failure.

Reviewed-by: iklam
2019-12-17 16:46:37 -08:00
Pavel Rappo
bdaa9c6a1c 8236077: Clean up the use of modifiers and semicolons
Reviewed-by: jjg
2019-12-17 21:50:17 +00:00
Jonathan Gibbons
a1d396c6cb 8235926: Update @jls @jvms taglets to allow inline usage
Reviewed-by: hannesw
2019-12-17 13:07:44 -08:00
Alexey Semenyuk
df75426b4f 8236134: files missing in putback to JDK-8233270
Reviewed-by: herrick, prr, almatvee
2019-12-17 15:52:20 -05:00
Daniel D. Daugherty
b4459723ad 8236130: ProblemList jdk/jfr/jmx/security/TestEnoughPermission.java
Reviewed-by: mikael
2019-12-17 15:38:22 -05:00
Vicente Romero
ba9d4ad45a 8234971: Incorrect example in j.l.reflect.RecordComponent::toString
Reviewed-by: jjg
2019-12-17 14:11:26 -05:00
Alexey Semenyuk
14459b2ad2 8233270: Add support to jtreg helpers to unpack packages
8230933: Default icon is not set for additional launchers

Reviewed-by: herrick, prr, almatvee
2019-12-17 13:56:47 -05:00
Roman Kennke
0743555685 8236106: [TESTBUG] Shenandoah: Make TestThreadFailure more resilient
Reviewed-by: zgu
2019-12-17 18:23:33 +01:00
Mikhailo Seledtsov
d5a8e018d5 8235454: [TESTBUG] Basic test for JFR event streaming for jdk_jfr_sanity
Created basic test for JFR event streaming

Reviewed-by: egahlin, iignatyev
2019-12-17 08:42:23 -08:00
John Paul Adrian Glaubitz
4e68ac9b15 8235960: Zero should not trigger the deprecation warning for ports
Reviewed-by: mikael
2019-12-17 16:53:44 +01:00
Jesper Wilhelmsson
fa070554cb Merge 2019-12-17 16:29:30 +01:00
Daniel Fuchs
e16d4a45b0 8235925: java/net/Socket/HttpProxy.java fails on IPv4 only hosts and other small cleanups
HttpProxy test is fixed to take into account the possibility that the host may be configured with IPv4 only

Reviewed-by: chegar
2019-12-17 16:11:16 +01:00
Andy Herrick
ee5777c700 8235915: jpackage associations fail when there are spaces in file name or path
Reviewed-by: prr, asemenyuk, almatvee
2019-12-17 09:02:13 -05:00
Claes Redestad
3f865f4bf2 8235997: JMH test runner should quote VM_OPTIONS and JAVA_OPTIONS sent to -jvmArgs
Reviewed-by: erikj
2019-12-17 15:09:30 +01:00
Andy Herrick
9b2bbd3df4 8235667: IOUtils.copyFile() problems
Reviewed-by: rriggs, asemenyuk, almatvee
2019-12-17 08:56:52 -05:00
Weijun Wang
010ac54044 8236070: Backout fix for JDK-8234465
Reviewed-by: mullan
2019-12-17 20:56:53 +08:00
Per Lidén
bd6ab22a59 8235905: ZGC: Rework how ZRootsIterator visits threads
Reviewed-by: stefank
2019-12-17 11:37:55 +01:00
Thomas Schatzl
dcb17bad55 8235996: Move obsolete flag G1RSetScanBlockSize in flags list
Reviewed-by: sjohanss, lkorinth
2019-12-17 10:12:41 +01:00
Matthias Baesken
9a31ab8862 8235671: enhance print_rlimit_info in os_posix
Reviewed-by: clanger, mdoerr
2019-12-10 16:55:14 +01:00
Ioi Lam
83cb7044e9 8236028: [TESTBUG] Remove dependency of sun.tools.jar from appcds/JarBuilder
Reviewed-by: ccheung
2019-12-16 21:24:00 -08:00
Weijun Wang
31b07b21ae 8234465: Encoded elliptic curve private keys should include the public point
Reviewed-by: xuelei
2019-12-17 09:38:30 +08:00
Ioi Lam
924720f6fc 8236045: [TESTBUG] MismatchedWhiteBox test fails with missing WhiteBox$WhiteBoxPermission.class
Reviewed-by: ccheung
2019-12-16 15:20:02 -08:00
Thomas Schatzl
bc97279caf 8235907: Fix tests referencing UseParallelOldGC
Remove tests using the obsolete UseParallelOldGC flag.

Reviewed-by: lkorinth, dlong
2019-12-16 23:07:37 +01:00
Vicente Romero
89e0d29101 8235778: No compilation error reported when a record is declared in a local class
Reviewed-by: mcimadamore
2019-12-16 15:33:03 -05:00
Ioi Lam
1b4b652408 8235970: [TESTBUG] Remove dependency of sun.tools.jar from RedefineClassHelper
Reviewed-by: alanb
2019-12-16 10:04:36 -08:00
Ioi Lam
8b2453f93b 8199290: [TESTBUG] sun.hotspot.WhiteBox$WhiteBoxPermission is not copied
Reviewed-by: iignatyev, dholmes
2019-12-16 10:03:42 -08:00
Jesper Wilhelmsson
83163dbfe6 Merge 2019-12-16 17:43:20 +01:00
Claes Redestad
820e1a7e14 8235956: Remove javaClasses offset tests
Reviewed-by: dholmes, coleenp
2019-12-16 13:40:22 +01:00
Matthias Baesken
5e85366785 8234968: check calloc rv in libinstrument InvocationAdapter
Reviewed-by: clanger, stuefe, sspitsyn
2019-11-29 08:00:36 +01:00
David Holmes
9555be71a5 8235965: Tests using ThreadLocalHandshakes need to stop using it as it no longer exists
Reviewed-by: iignatyev, jiefu
2019-12-15 21:56:17 -05:00
David Holmes
bf9bc1f320 8231559: Remove expired flags in JDK 15
Reviewed-by: kbarrett, kvn
2019-12-15 19:56:12 -05:00
Ivan Gerasimov
f82e4b1b76 8235930: java.util.regex.PrintPattern does not print a link to the next node
Reviewed-by: martin
2019-12-15 09:33:50 -08:00
Weijun Wang
1ae2478404 8234697: Generate sun.security.util.math.intpoly classes during build
Reviewed-by: erikj, mullan
2019-12-14 13:50:34 +08:00
Harold Seigel
6ccfc65ec3 8235922: [TESTBUG]TestRecordAttrGenericSig.java and TestRecordAttr.java are failing
Replace hard-wired JDK version 14 with mechanisms that get the latest JDK version.

Reviewed-by: dcubed
2019-12-13 19:50:43 +00:00
Jonathan Gibbons
3c0e2b4e16 8235306: Support doc-comment tags that can be inline or block tags
Reviewed-by: hannesw
2019-12-13 10:42:57 -08:00
Aleksei Voitylov
4d1176fd60 8231612: 100% cpu on arm32 in Service Thread
Reviewed-by: kbarrett, dsamersoff
2019-12-13 20:35:10 +03:00
Naoto Sato
20b1410d0c 8235238: Parsing a time string ignores any custom TimeZoneNameProvider
Reviewed-by: joehw, rriggs
2019-12-13 08:17:28 -08:00
Patricio Chilano Mateo
57ece4c21a 8232733: Remove need to grab Threads_lock while processing handshakes
Threads_lock is not acquired anymore while processing handshakes

Reviewed-by: coleenp, rehn, dcubed, dholmes
2019-12-13 14:28:22 +00:00
Sibabrata Sahoo
94e8d6eca4 8234728: Some security tests should support TLSv1.3
Tests were updated to support TLSv1.3 and cipher suite order

Reviewed-by: xuelei
2019-12-12 22:47:24 -08:00
Martin Balao
4fa827ec92 8005819: Support cross-realm MSSFU
Reviewed-by: weijun
2019-12-11 15:43:42 -03:00
Jesper Wilhelmsson
06ecbfd3da Added tag jdk-15+1 for changeset 63e17cf29bed 2019-12-13 02:49:52 +01:00
Pavel Rappo
71da14104a 8235447: Remove (obsolete) @author info from javadoc tests
Reviewed-by: ksrini, jjg
2019-12-12 21:11:49 +00:00
Zhengyu Gu
9b4539886c 8235842: Shenandoah: Implement native LRB for narrow oop
Reviewed-by: rkennke
2019-12-12 15:20:53 -05:00
Joe Darcy
2d2383bf32 8230771: Remove terminally deprecated constructors in java.base
Additional review input from Victor Williams Stafusa da Silva

Reviewed-by: lancea, chegar, mchung, smarks, dfuchs
2019-12-12 11:39:49 -08:00
Joe Darcy
74882b0d0d 8235514: Update record serialization tests to not use hard coded source versions
Reviewed-by: lancea
2019-12-12 11:31:05 -08:00
Joe Darcy
890826bf5b 8225361: Start of release updates for JDK 15
8235497: Add SourceVersion.RELEASE_15
8235528: Add source 15 and target 15 to javac

Reviewed-by: erikj, jjg, jlahoda, dholmes, alanb, hseigel, mikael, chegar
2019-12-10 16:38:53 -08:00
Roman Kennke
8a54d97a4d 8234974: Shenandoah: Do concurrent roots even when no evacuation is necessary
Reviewed-by: zgu
2019-12-12 18:34:30 +01:00
Jesper Wilhelmsson
e4c332cd92 Added tag jdk-15+0 for changeset 2c724dba4c3c 2019-12-12 17:06:21 +01:00
19689 changed files with 1170792 additions and 1374244 deletions

1
.gitignore vendored
View File

@@ -1,6 +1,7 @@
/build/
/dist/
/.idea/
/.vscode/
nbproject/private/
/webrev
/.src-rev

View File

@@ -1,6 +1,7 @@
^build/
^dist/
^.idea/
^.vscode/
nbproject/private/
^webrev
^.src-rev$

48
.hgtags
View File

@@ -599,15 +599,59 @@ c16ac7a2eba4e73cb4f7ee9294dd647860eebff0 jdk-14+21
438337c846fb071900ddb6922bddf8b3e895a514 jdk-14+24
17d242844fc9e7d18b3eac97426490a9c246119e jdk-14+25
288777cf0702914e5266bc1e5d380eed9032ca41 jdk-14+26
2c724dba4c3cf9516b2152e151c9aea66b21b30b jdk-15+0
91a3f092682fc715d991a87eb6ec6f28886d2035 jdk-14+27
63e17cf29bed191ea21020b4648c9cdf893f80f5 jdk-15+1
2069b4bfd23b56b6fc659fba8b75aaaa23debbe0 jdk-14+28
f33197adda9ad82fdef46ac0f7dc0126204f35b2 jdk-15+2
563fa900fa17c290ae516c7a3a69e8c069dde304 jdk-14+29
d05fcdf25717d85e80a3a39a6b719458b22be5fe jdk-15+3
d54ce919da90dab361995bb4d87be9851f00537a jdk-14+30
d54ce919da90dab361995bb4d87be9851f00537a jdk-14+31
d54ce919da90dab361995bb4d87be9851f00537a jdk-14+31
bb0a7975b31ded63d594ee8dbfc4d4ead587f79b jdk-15+4
decd3d2953b640f1043ee76953ff89238bff92e8 jdk-14+31
b97c1773ccafae4a8c16cc6aedb10b2a4f9a07ed jdk-15+5
2776da28515e087cc8849acf1e131a65ea7e77b6 jdk-14+32
ef7d53b4fccd4a0501b17d974e84f37aa99fa813 jdk-15+6
f728b6c7f4910d6bd6070cb4dde8393f4ba95113 jdk-14+33
e2bc57500c1b785837982f7ce8af6751387ed73b jdk-15+7
a96bc204e3b31ddbf909b20088964112f052927e jdk-14+34
c7d4f2849dbfb755fc5860b362a4044ea0c9e082 jdk-15+8
4a87bb7ebfd7f6a25ec59a5982fe3607242777f8 jdk-14+35
62b5bfef8d618e08e6f3a56cf1fb0e67e89e9cc2 jdk-15+9
bc54620a3848c26cff9766e5e2a6e5ddab98ed18 jdk-14+36
1bee69801aeea1a34261c93f35bc9de072a98704 jdk-15+10
b2dd4028a6de4e40dda8b76109e4b5c6b294f980 jdk-15+11
2ec0ff3042630ddbd3587e340fe0dd40391cb6c4 jdk-15+12
1c06a8ee8acad4d93c782626a233693a73de0add jdk-15+13
1d6ceb13e142665ea833fca01c8c8598e0ddd211 jdk-15+14
bc54620a3848c26cff9766e5e2a6e5ddab98ed18 jdk-14-ga
82b7c62cf4cc56828a8fb724f57087967232a2a7 jdk-15+15
5c7ec21f5d13f6eb5cd32288c69b8be2f9cac256 jdk-15+16
dd5198db2e5b1ebcafe065d987c03ba9fcb50fc3 jdk-15+17
44aef192b488a48cce12422394691a6b1d16b98e jdk-15+18
7cc27caabe6e342151e8baf549beb07a9c755ec2 jdk-15+19
46bca5e5e6fb26efd07245d26fe96a9c3260f51e jdk-15+20
12b55fad80f30d24b1f8fdb3b947ea6465ef9518 jdk-15+21
7223c6d610343fd8323af9d07d501e01fa1a7696 jdk-15+22
f143729ca00ec14a98ea5c7f73acba88da97746e jdk-15+23
497fd9f9129c4928fd5a876dd55e0daf6298b511 jdk-15+24
90b266a84c06f1b3dc0ed8767856793e8c1c357e jdk-15+25
0a32396f7a690015d22ca3328ac441a358295d90 jdk-15+26
93813843680bbe1b7efbca56c03fd137f20a2c31 jdk-16+0
93813843680bbe1b7efbca56c03fd137f20a2c31 jdk-15+27
4a485c89d5a08b495961835f5308a96038678aeb jdk-16+1
06c9f89459daba98395fad726100feb44f89ba71 jdk-15+28
bcbe7b8a77b8971bc221c0be1bd2abb6fb68c2d0 jdk-16+2
b58fc60580550a4a587cab729d8fd87223ad6932 jdk-15+29
76810b3a88c8c641ae3850a8dfd7c40c984aea9d jdk-16+3
6909e4a1f25bfe9a2727026f5845fc1fc44a36aa jdk-15+30
e2622818f0bd30e736252eba101fe7d2c27f400b jdk-16+4
a32f58c6b8be81877411767de7ba9c4cf087c1b5 jdk-15+31
143e258f64af490010eb7e0bacc1cfaeceff0993 jdk-16+5
2dad000726b8d5db9f3df647fb4949d88f269dd4 jdk-15+32
4a8fd81d64bafa523cddb45f82805536edace106 jdk-16+6
6b65f4e7a975628df51ef755b02642075390041d jdk-15+33
c3a4a7ea7c304cabdacdc31741eb94c51351668d jdk-16+7
b0817631d2f4395508cb10e81c3858a94d9ae4de jdk-15+34
0a73d6f3aab48ff6d7e61e47f0bc2d87a054f217 jdk-16+8
c075a286cc7df767cce28e8057d6ec5051786490 jdk-16+9

8
README
View File

@@ -2,11 +2,11 @@
Welcome to the JDK!
===================
For information about building the JDK, including how to retrieve all
of the source code, please see either of these files:
For build instructions, please see either of these files:
* doc/building.html (html version)
* doc/building.md (markdown version)
See http://openjdk.java.net/ for more information about the OpenJDK
Community and the JDK.
See https://openjdk.java.net/ for more information about
the OpenJDK Community and the JDK.

View File

@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2009, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -74,7 +74,7 @@ if [ "x$TOPLEVEL_DIR" = "x" ] ; then
fi
MAKE_DIR="$SCRIPT_DIR/../make"
IDEA_MAKE="$MAKE_DIR/idea"
IDEA_MAKE="$MAKE_DIR/ide/idea/jdk"
IDEA_TEMPLATE="$IDEA_MAKE/template"
cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
@@ -113,6 +113,14 @@ if [ "x$SPEC" = "x" ] ; then
echo "FATAL: SPEC is empty" >&2; exit 1
fi
if [ -d "$TOPLEVEL_DIR/.hg" ] ; then
VCS_TYPE="hg4idea"
fi
if [ -d "$TOPLEVEL_DIR/.git" ] ; then
VCS_TYPE="Git"
fi
### Replace template variables
NUM_REPLACEMENTS=0
@@ -137,14 +145,9 @@ add_replacement() {
}
add_replacement "###MODULE_NAMES###" "$MODULE_NAMES"
add_replacement "###VCS_TYPE###" "$VCS_TYPE"
SPEC_DIR=`dirname $SPEC`
if [ "x$CYGPATH" = "x" ]; then
add_replacement "###BUILD_DIR###" "$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"
else
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`"
@@ -154,6 +157,22 @@ else
else
add_replacement "###JTREG_HOME###" "`cygpath -am $JT_HOME`"
fi
elif [ "x$WSL_DISTRO_NAME" != "x" ]; then
add_replacement "###BUILD_DIR###" "`wslpath -am $SPEC_DIR`"
add_replacement "###IMAGES_DIR###" "`wslpath -am $SPEC_DIR`/images/jdk"
add_replacement "###ROOT_DIR###" "`wslpath -am $TOPLEVEL_DIR`"
add_replacement "###IDEA_DIR###" "`wslpath -am $IDEA_OUTPUT`"
if [ "x$JT_HOME" = "x" ]; then
add_replacement "###JTREG_HOME###" ""
else
add_replacement "###JTREG_HOME###" "`wslpath -am $JT_HOME`"
fi
else
add_replacement "###BUILD_DIR###" "$SPEC_DIR"
add_replacement "###JTREG_HOME###" "$JT_HOME"
add_replacement "###IMAGES_DIR###" "$SPEC_DIR/images/jdk"
add_replacement "###ROOT_DIR###" "$TOPLEVEL_DIR"
add_replacement "###IDEA_DIR###" "$IDEA_OUTPUT"
fi
SOURCE_PREFIX="<sourceFolder url=\"file://"
@@ -161,7 +180,9 @@ SOURCE_POSTFIX="\" isTestSource=\"false\" />"
for root in $MODULE_ROOTS; do
if [ "x$CYGPATH" != "x" ]; then
root=`cygpath -am $root`
root=`cygpath -am $root`
elif [ "x$WSL_DISTRO_NAME" != "x" ]; then
root=`wslpath -am $root`
fi
SOURCES=$SOURCES" $SOURCE_PREFIX""$root""$SOURCE_POSTFIX"
done
@@ -187,14 +208,30 @@ fi
CP=$ANT_HOME/lib/ant.jar
rm -rf $CLASSES; mkdir $CLASSES
if [ "x$CYGPATH" = "x" ] ; then ## CYGPATH may be set in env.cfg
JAVAC_SOURCE_FILE=$IDEA_OUTPUT/src/idea/JdkIdeaAntLogger.java
JAVAC_CLASSES=$CLASSES
JAVAC_CP=$CP
else
JAVAC_SOURCE_FILE=`cygpath -am $IDEA_OUTPUT/src/idea/JdkIdeaAntLogger.java`
if [ "x$CYGPATH" != "x" ] ; then ## CYGPATH may be set in env.cfg
JAVAC_SOURCE_FILE=`cygpath -am $IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java`
JAVAC_SOURCE_PATH=`cygpath -am $IDEA_OUTPUT/src`
JAVAC_CLASSES=`cygpath -am $CLASSES`
JAVAC_CP=`cygpath -am $CP`
JAVAC=javac
elif [ "x$WSL_DISTRO_NAME" != "x" ]; then
JAVAC_SOURCE_FILE=`realpath --relative-to=./ $IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java`
JAVAC_SOURCE_PATH=`realpath --relative-to=./ $IDEA_OUTPUT/src`
JAVAC_CLASSES=`realpath --relative-to=./ $CLASSES`
ANT_TEMP=`mktemp -d -p ./`
cp $ANT_HOME/lib/ant.jar $ANT_TEMP/ant.jar
JAVAC_CP=$ANT_TEMP/ant.jar
JAVAC=javac.exe
else
JAVAC_SOURCE_FILE=$IDEA_OUTPUT/src/idea/IdeaLoggerWrapper.java
JAVAC_SOURCE_PATH=$IDEA_OUTPUT/src
JAVAC_CLASSES=$CLASSES
JAVAC_CP=$CP
JAVAC=javac
fi
$BOOT_JDK/bin/javac -d $JAVAC_CLASSES -cp $JAVAC_CP $JAVAC_SOURCE_FILE
$BOOT_JDK/bin/$JAVAC -d $JAVAC_CLASSES -sourcepath $JAVAC_SOURCE_PATH -cp $JAVAC_CP $JAVAC_SOURCE_FILE
if [ "x$WSL_DISTRO_NAME" != "x" ]; then
rm -rf $ANT_TEMP
fi

View File

@@ -1,37 +0,0 @@
#!/bin/bash
#
# Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
fix() {
#convert tabs to spaces
find . -name $1 -exec sed -i "" 's/ / /g' {} \;
#remove trailing whitespace
find . -name $1 -exec sed -i "" 's/[ ]*$//' \{} \;
}
if [ ! -z $1 ]; then
fix $1;
else
fix "*.java"
fix "*.js"
fi

View File

@@ -1,135 +0,0 @@
#!/bin/sh
#
# Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
###########################################################################################
# This is a helper script to evaluate nashorn with optimistic types
# it produces a flight recording for every run, and uses the best
# known flags for performance for the current configration
###########################################################################################
# Flags to enable assertions, we need the system assertions too, since
# this script runs Nashorn in the BCP to override any nashorn.jar that might
# reside in your $JAVA_HOME/jre/lib/ext/nashorn.jar
#
ENABLE_ASSERTIONS_FLAGS="-ea -esa"
# Flags to instrument lambdaform computation, caching, interpretation and compilation
# Default compile threshold for lambdaforms is 30
#
#LAMBDAFORM_FLAGS="\
# -Djava.lang.invoke.MethodHandle.COMPILE_THRESHOLD=3 \
# -Djava.lang.invoke.MethodHandle.DUMP_CLASS_FILES=true \
# -Djava.lang.invoke.MethodHandle.TRACE_METHOD_LINKAGE=true \
# -Djava.lang.invoke.MethodHandle.TRACE_INTERPRETER=true"
# Flags to run trusted tests from the Nashorn test suite
#
#TRUSTED_TEST_FLAGS="\
#-Djava.security.manager \
#-Djava.security.policy=../build/nashorn.policy -Dnashorn.debug"
# Testing out new code optimizations using the generic hotspot "new code" parameter
#
#USE_NEW_CODE_FLAGS=-XX:+UnlockDiagnosticVMOptions -XX:+UseNewCode
#
#-Dnashorn.typeInfo.disabled=false \
# and for Nashorn options:
# --class-cache-size=0 --persistent-code-cache=false
# Unique timestamped file name for JFR recordings. For JFR, we also have to
# crank up the stack cutoff depth to 1024, because of ridiculously long lambda form
# stack traces.
#
# It is also recommended that you go into $JAVA_HOME/jre/lib/jfr/default.jfc and
# set the "method-sampling-interval" Normal and Maximum sample time as low as you
# can go (10 ms on most platforms). The default is normally higher. The increased
# sampling overhead is usually negligible for Nashorn runs, but the data is better
if [ -z $JFR_FILENAME ]; then
JFR_FILENAME="./nashorn_$(date|sed "s/ /_/g"|sed "s/:/_/g").jfr"
fi
# Flight recorder
#
# see above - already in place, copy the flags down here to disable
ENABLE_FLIGHT_RECORDER_FLAGS="\
-XX:+FlightRecorder \
-XX:FlightRecorderOptions=defaultrecording=true,disk=true,dumponexit=true,dumponexitpath=$JFR_FILENAME,stackdepth=1024"
# Type specialization and math intrinsic replacement should be enabled by default in 8u20 and nine,
# keeping this flag around for experimental reasons. Replace + with - to switch it off
#
#ENABLE_TYPE_SPECIALIZATION_FLAGS=-XX:+UseTypeSpeculation
# Same with math intrinsics. They should be enabled by default in 8u20 and 9, so
# this disables them if needed
#
#DISABLE_MATH_INTRINSICS_FLAGS=-XX:-UseMathExactIntrinsics
# Add timing to time the compilation phases.
#ENABLE_TIME_FLAGS=--log=time
# Add ShowHiddenFrames to get lambda form internals on the stack traces
#ENABLE_SHOW_HIDDEN_FRAMES_FLAGS=-XX:+ShowHiddenFrames
# Add print optoassembly to get an asm dump. This requires 1) a debug build, not product,
# That tired compilation is switched off, for C2 only output and that the number of
# compiler threads is set to 1 for determinsm.
#
#PRINT_ASM_FLAGS=-XX:+PrintOptoAssembly -XX:-TieredCompilation -XX:CICompilerCount=1 \
# Tier compile threasholds. Default value is 10. (1-100 is useful for experiments)
#TIER_COMPILATION_THRESHOLD_FLAGS=-XX:IncreaseFirstTierCompileThresholdAt=10
# Directory where to look for nashorn.jar in a dist folder. The default is "..", assuming
# that we run the script from the make dir
DIR=..
NASHORN_JAR=$DIR/dist/nashorn.jar
# The built Nashorn jar is placed first in the bootclasspath to override the JDK
# nashorn.jar in $JAVA_HOME/jre/lib/ext. Thus, we also need -esa, as assertions in
# nashorn count as system assertions in this configuration
# Type profiling default level is 111, 222 adds some compile time, but is faster
$JAVA_HOME/bin/java \
$ENABLE_ASSERTIONS_FLAGS \
$LAMBDAFORM_FLAGS \
$TRUSTED_FLAGS \
$USE_NEW_CODE_FLAGS \
$ENABLE_SHOW_HIDDEN_FRAMES_FLAGS \
$ENABLE_FLIGHT_RECORDER_FLAGS \
$ENABLE_TYPE_SPECIALIZATION_FLAGS \
$TIERED_COMPILATION_THRESOLD_FLAGS \
$DISABLE_MATH_INTRINSICS_FLAGS \
$PRINT_ASM_FLAGS \
-Xbootclasspath/p:$NASHORN_JAR \
-Xms2G -Xmx2G \
-XX:TypeProfileLevel=222 \
-cp $CLASSPATH:../build/test/classes/ \
jdk.nashorn.tools.Shell $ENABLE_TIME_FLAGS ${@}

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -58,7 +58,6 @@ src/jdk.compiler : jdk/src/jdk.compiler langtools/src/jdk.compiler
src/jdk.crypto.cryptoki : jdk/src/jdk.crypto.cryptoki
src/jdk.crypto.ec : jdk/src/jdk.crypto.ec
src/jdk.crypto.mscapi : jdk/src/jdk.crypto.mscapi
src/jdk.crypto.ucrypto : jdk/src/jdk.crypto.ucrypto
src/jdk.dynalink : nashorn/src/jdk.dynalink
src/jdk.editpad : jdk/src/jdk.editpad
src/jdk.hotspot.agent : hotspot/src/jdk.hotspot.agent
@@ -88,7 +87,6 @@ src/jdk.naming.dns : jdk/src/jdk.naming.dns
src/jdk.naming.rmi : jdk/src/jdk.naming.rmi
src/jdk.net : jdk/src/jdk.net
src/jdk.pack : jdk/src/jdk.pack
src/jdk.rmic : corba/src/jdk.rmic jdk/src/jdk.rmic
src/jdk.scripting.nashorn : nashorn/src/jdk.scripting.nashorn
src/jdk.scripting.nashorn.shell : nashorn/src/jdk.scripting.nashorn.shell
src/jdk.sctp : jdk/src/jdk.sctp
@@ -102,13 +100,11 @@ src/jdk.zipfs : jdk/src/jdk.zipfs
src/langtools/sample : langtools/src/sample
src/linux : jdk/src/linux
src/sample : jdk/src/sample
src/solaris : jdk/src/solaris
src/hotspot/share : hotspot/src/share/vm
src/hotspot/cpu/aarch64 : hotspot/src/cpu/aarch64/vm
src/hotspot/cpu/arm : hotspot/src/cpu/arm/vm
src/hotspot/cpu/ppc : hotspot/src/cpu/ppc/vm
src/hotspot/cpu/s390 : hotspot/src/cpu/s390/vm
src/hotspot/cpu/sparc : hotspot/src/cpu/sparc/vm
src/hotspot/cpu/x86 : hotspot/src/cpu/x86/vm
src/hotspot/cpu/zero : hotspot/src/cpu/zero/vm
src/hotspot/os/aix : hotspot/src/os/aix/vm
@@ -116,7 +112,6 @@ src/hotspot/os/bsd : hotspot/src/os/bsd/vm
src/hotspot/os/linux : hotspot/src/os/linux/vm
src/hotspot/os/posix/dtrace : hotspot/src/os/posix/dtrace
src/hotspot/os/posix : hotspot/src/os/posix/vm
src/hotspot/os/solaris : hotspot/src/os/solaris/vm
src/hotspot/os/windows : hotspot/src/os/windows/vm
src/hotspot/os_cpu/aix_ppc : hotspot/src/os_cpu/aix_ppc/vm
src/hotspot/os_cpu/bsd_x86 : hotspot/src/os_cpu/bsd_x86/vm
@@ -125,11 +120,8 @@ src/hotspot/os_cpu/linux_aarch64 : hotspot/src/os_cpu/linux_aarch64/vm
src/hotspot/os_cpu/linux_arm : hotspot/src/os_cpu/linux_arm/vm
src/hotspot/os_cpu/linux_ppc : hotspot/src/os_cpu/linux_ppc/vm
src/hotspot/os_cpu/linux_s390 : hotspot/src/os_cpu/linux_s390/vm
src/hotspot/os_cpu/linux_sparc : hotspot/src/os_cpu/linux_sparc/vm
src/hotspot/os_cpu/linux_x86 : hotspot/src/os_cpu/linux_x86/vm
src/hotspot/os_cpu/linux_zero : hotspot/src/os_cpu/linux_zero/vm
src/hotspot/os_cpu/solaris_sparc : hotspot/src/os_cpu/solaris_sparc/vm
src/hotspot/os_cpu/solaris_x86 : hotspot/src/os_cpu/solaris_x86/vm
src/hotspot/os_cpu/windows_x86 : hotspot/src/os_cpu/windows_x86/vm
src/hotspot : hotspot/src
src/utils/IdealGraphVisualizer : hotspot/src/share/tools/IdealGraphVisualizer
@@ -140,7 +132,6 @@ src/utils/src/build : jdk/make/non-build-utils/src/build
make/BuildNashorn.gmk : nashorn/make/BuildNashorn.gmk
make/CompileDemos.gmk : jdk/make/CompileDemos.gmk
make/CompileInterimLangtools.gmk : langtools/make/CompileInterim.gmk
make/CompileInterimRmic.gmk : jdk/make/CompileInterimRmic.gmk
make/CompileModuleTools.gmk : jdk/make/CompileModuleTools.gmk
make/CompileToolsHotspot.gmk : hotspot/make/CompileTools.gmk
make/CompileToolsJdk.gmk : jdk/make/CompileTools.gmk
@@ -180,7 +171,6 @@ make/mapfiles/libjvm_dtrace : hotspot/make/mapfiles/libjvm_dtrace
make/mapfiles/libsaproc : hotspot/make/mapfiles/libsaproc
make/nashorn : nashorn/make
make/nb_native : common/nb_native
make/rmic : jdk/make/rmic
make/scripts/addNotices.sh : jdk/make/scripts/addNotices.sh
make/scripts/compare.sh : common/bin/compare.sh
make/scripts/compare_exceptions.sh.incl : common/bin/compare_exceptions.sh.incl

0
configure vendored Executable file → Normal file
View File

View File

@@ -30,13 +30,11 @@
</ul></li>
<li><a href="#build-hardware-requirements">Build Hardware Requirements</a><ul>
<li><a href="#building-on-x86">Building on x86</a></li>
<li><a href="#building-on-sparc">Building on sparc</a></li>
<li><a href="#building-on-aarch64">Building on aarch64</a></li>
<li><a href="#building-on-32-bit-arm">Building on 32-bit arm</a></li>
</ul></li>
<li><a href="#operating-system-requirements">Operating System Requirements</a><ul>
<li><a href="#windows">Windows</a></li>
<li><a href="#solaris">Solaris</a></li>
<li><a href="#macos">macOS</a></li>
<li><a href="#linux">Linux</a></li>
<li><a href="#aix">AIX</a></li>
@@ -45,7 +43,6 @@
<li><a href="#gcc">gcc</a></li>
<li><a href="#clang">clang</a></li>
<li><a href="#apple-xcode">Apple Xcode</a></li>
<li><a href="#oracle-solaris-studio">Oracle Solaris Studio</a></li>
<li><a href="#microsoft-visual-studio">Microsoft Visual Studio</a></li>
<li><a href="#ibm-xl-cc">IBM XL C/C++</a></li>
</ul></li>
@@ -157,18 +154,15 @@
<p>The JDK is a massive project, and require machines ranging from decent to powerful to be able to build in a reasonable amount of time, or to be able to complete a build at all.</p>
<p>We <em>strongly</em> recommend usage of an SSD disk for the build, since disk speed is one of the limiting factors for build performance.</p>
<h3 id="building-on-x86">Building on x86</h3>
<p>At a minimum, a machine with 2-4 cores is advisable, as well as 2-4 GB of RAM. (The more cores to use, the more memory you need.) At least 6 GB of free disk space is required (8 GB minimum for building on Solaris).</p>
<p>At a minimum, a machine with 2-4 cores is advisable, as well as 2-4 GB of RAM. (The more cores to use, the more memory you need.) At least 6 GB of free disk space is required.</p>
<p>Even for 32-bit builds, it is recommended to use a 64-bit build machine, and instead create a 32-bit target using <code>--with-target-bits=32</code>.</p>
<h3 id="building-on-sparc">Building on sparc</h3>
<p>At a minimum, a machine with 4 cores is advisable, as well as 4 GB of RAM. (The more cores to use, the more memory you need.) At least 8 GB of free disk space is required.</p>
<p>Note: The sparc port is deprecated.</p>
<h3 id="building-on-aarch64">Building on aarch64</h3>
<p>At a minimum, a machine with 8 cores is advisable, as well as 8 GB of RAM. (The more cores to use, the more memory you need.) At least 6 GB of free disk space is required.</p>
<p>If you do not have access to sufficiently powerful hardware, it is also possible to use <a href="#cross-compiling">cross-compiling</a>.</p>
<h3 id="building-on-32-bit-arm">Building on 32-bit arm</h3>
<p>This is not recommended. Instead, see the section on <a href="#cross-compiling">Cross-compiling</a>.</p>
<h2 id="operating-system-requirements">Operating System Requirements</h2>
<p>The mainline JDK project supports Linux, Solaris, macOS, AIX and Windows. Support for other operating system, e.g. BSD, exists in separate &quot;port&quot; projects.</p>
<p>The mainline JDK project supports Linux, macOS, AIX and Windows. Support for other operating system, e.g. BSD, exists in separate &quot;port&quot; projects.</p>
<p>In general, the JDK can be built on a wide range of versions of these operating systems, but the further you deviate from what is tested on a daily basis, the more likely you are to run into problems.</p>
<p>This table lists the OS versions used by Oracle when building the JDK. Such information is always subject to change, but this table is up to date at the time of writing.</p>
<table>
@@ -184,20 +178,16 @@
<td style="text-align: left;">Oracle Enterprise Linux 6.4 / 7.6</td>
</tr>
<tr class="even">
<td style="text-align: left;">Solaris</td>
<td style="text-align: left;">Solaris 11.3 SRU 20</td>
</tr>
<tr class="odd">
<td style="text-align: left;">macOS</td>
<td style="text-align: left;">Mac OS X 10.13 (High Sierra)</td>
</tr>
<tr class="even">
<tr class="odd">
<td style="text-align: left;">Windows</td>
<td style="text-align: left;">Windows Server 2012 R2</td>
</tr>
</tbody>
</table>
<p>The double version numbers for Linux and Solaris are due to the hybrid model used at Oracle, where header files and external libraries from an older version are used when building on a more modern version of the OS.</p>
<p>The double version numbers for Linux are due to the hybrid model used at Oracle, where header files and external libraries from an older version are used when building on a more modern version of the OS.</p>
<p>The Build Group has a wiki page with <a href="https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms">Supported Build Platforms</a>. From time to time, this is updated by contributors to list successes or failures of building on different platforms.</p>
<h3 id="windows">Windows</h3>
<p>Windows XP is not a supported platform, but all newer Windows should be able to build the JDK.</p>
@@ -223,10 +213,6 @@
<p>It's possible to build both Windows and Linux binaries from WSL. To build Windows binaries, you must use a Windows boot JDK (located in a Windows-accessible directory). To build Linux binaries, you must use a Linux boot JDK. The default behavior is to build for Windows. To build for Linux, pass <code>--build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu</code> to <code>configure</code>.</p>
<p>If building Windows binaries, the source code must be located in a Windows- accessible directory. This is because Windows executables (such as Visual Studio and the boot JDK) must be able to access the source code. Also, the drive where the source is stored must be mounted as case-insensitive by changing either /etc/fstab or /etc/wsl.conf in WSL. Individual directories may be corrected using the fsutil tool in case the source was cloned before changing the mount options.</p>
<p>Note that while it's possible to build on WSL, testing is still not fully supported.</p>
<h3 id="solaris">Solaris</h3>
<p>See <code>make/devkit/solaris11.1-package-list.txt</code> for a list of recommended packages to install when building on Solaris. The versions specified in this list is the versions used by the daily builds at Oracle, and is likely to work properly.</p>
<p>Older versions of Solaris shipped a broken version of <code>objcopy</code>. At least version 2.21.1 is needed, which is provided by Solaris 11 Update 1. Objcopy is needed if you want to have external debug symbols. Please make sure you are using at least version 2.21.1 of objcopy, or that you disable external debug symbols.</p>
<p>Note: The Solaris port is deprecated.</p>
<h3 id="macos">macOS</h3>
<p>Apple is using a quite aggressive scheme of pushing OS updates, and coupling these updates with required updates of Xcode. Unfortunately, this makes it difficult for a project such as the JDK to keep pace with a continuously updated machine running macOS. See the section on <a href="#apple-xcode">Apple Xcode</a> on some strategies to deal with this.</p>
<p>It is recommended that you use at least Mac OS X 10.13 (High Sierra). At the time of writing, the JDK has been successfully compiled on macOS 10.12 (Sierra).</p>
@@ -259,14 +245,10 @@
<td style="text-align: left;">Apple Xcode (using clang)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Solaris</td>
<td style="text-align: left;">Oracle Solaris Studio</td>
</tr>
<tr class="even">
<td style="text-align: left;">AIX</td>
<td style="text-align: left;">IBM XL C/C++</td>
</tr>
<tr class="odd">
<tr class="even">
<td style="text-align: left;">Windows</td>
<td style="text-align: left;">Microsoft Visual Studio</td>
</tr>
@@ -283,29 +265,25 @@
<tbody>
<tr class="odd">
<td style="text-align: left;">Linux</td>
<td style="text-align: left;">gcc 8.3.0</td>
<td style="text-align: left;">gcc 9.2.0</td>
</tr>
<tr class="even">
<td style="text-align: left;">macOS</td>
<td style="text-align: left;">Apple Xcode 10.1 (using clang 10.0.0)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">Solaris</td>
<td style="text-align: left;">Oracle Solaris Studio 12.6 (with compiler version 5.15)</td>
</tr>
<tr class="even">
<td style="text-align: left;">Windows</td>
<td style="text-align: left;">Microsoft Visual Studio 2017 update 15.9.16</td>
<td style="text-align: left;">Microsoft Visual Studio 2019 update 16.5.3</td>
</tr>
</tbody>
</table>
<p>All compilers are expected to be able to compile to the C99 language standard, as some C99 features are used in the source code. Microsoft Visual Studio doesn't fully support C99 so in practice shared code is limited to using C99 features that it does support.</p>
<h3 id="gcc">gcc</h3>
<p>The minimum accepted version of gcc is 4.8. Older versions will generate a warning by <code>configure</code> and are unlikely to work.</p>
<p>The JDK is currently known to be able to compile with at least version 8.3 of gcc.</p>
<p>The minimum accepted version of gcc is 5.0. Older versions will generate a warning by <code>configure</code> and are unlikely to work.</p>
<p>The JDK is currently known to be able to compile with at least version 9.2 of gcc.</p>
<p>In general, any version between these two should be usable.</p>
<h3 id="clang">clang</h3>
<p>The minimum accepted version of clang is 3.2. Older versions will not be accepted by <code>configure</code>.</p>
<p>The minimum accepted version of clang is 3.5. Older versions will not be accepted by <code>configure</code>.</p>
<p>To use clang instead of gcc on Linux, use <code>--with-toolchain-type=clang</code>.</p>
<h3 id="apple-xcode">Apple Xcode</h3>
<p>The oldest supported version of Xcode is 8.</p>
@@ -313,68 +291,9 @@
<pre><code>xcode-select --install</code></pre>
<p>It is advisable to keep an older version of Xcode for building the JDK when updating Xcode. This <a href="http://iosdevelopertips.com/xcode/install-multiple-versions-of-xcode.html">blog page</a> has good suggestions on managing multiple Xcode versions. To use a specific version of Xcode, use <code>xcode-select -s</code> before running <code>configure</code>, or use <code>--with-toolchain-path</code> to point to the version of Xcode to use, e.g. <code>configure --with-toolchain-path=/Applications/Xcode8.app/Contents/Developer/usr/bin</code></p>
<p>If you have recently (inadvertently) updated your OS and/or Xcode version, and the JDK can no longer be built, please see the section on <a href="#problems-with-the-build-environment">Problems with the Build Environment</a>, and <a href="#getting-help">Getting Help</a> to find out if there are any recent, non-merged patches available for this update.</p>
<h3 id="oracle-solaris-studio">Oracle Solaris Studio</h3>
<p>The minimum accepted version of the Solaris Studio compilers is 5.13 (corresponding to Solaris Studio 12.4). Older versions will not be accepted by configure.</p>
<p>The Solaris Studio installation should contain at least these packages:</p>
<table>
<thead>
<tr class="header">
<th style="text-align: left;">Package</th>
<th style="text-align: left;">Version</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">developer/solarisstudio-124/backend</td>
<td style="text-align: left;">12.4-1.0.6.0</td>
</tr>
<tr class="even">
<td style="text-align: left;">developer/solarisstudio-124/c++</td>
<td style="text-align: left;">12.4-1.0.10.0</td>
</tr>
<tr class="odd">
<td style="text-align: left;">developer/solarisstudio-124/cc</td>
<td style="text-align: left;">12.4-1.0.4.0</td>
</tr>
<tr class="even">
<td style="text-align: left;">developer/solarisstudio-124/library/c++-libs</td>
<td style="text-align: left;">12.4-1.0.10.0</td>
</tr>
<tr class="odd">
<td style="text-align: left;">developer/solarisstudio-124/library/math-libs</td>
<td style="text-align: left;">12.4-1.0.0.1</td>
</tr>
<tr class="even">
<td style="text-align: left;">developer/solarisstudio-124/library/studio-gccrt</td>
<td style="text-align: left;">12.4-1.0.0.1</td>
</tr>
<tr class="odd">
<td style="text-align: left;">developer/solarisstudio-124/studio-common</td>
<td style="text-align: left;">12.4-1.0.0.1</td>
</tr>
<tr class="even">
<td style="text-align: left;">developer/solarisstudio-124/studio-ja</td>
<td style="text-align: left;">12.4-1.0.0.1</td>
</tr>
<tr class="odd">
<td style="text-align: left;">developer/solarisstudio-124/studio-legal</td>
<td style="text-align: left;">12.4-1.0.0.1</td>
</tr>
<tr class="even">
<td style="text-align: left;">developer/solarisstudio-124/studio-zhCN</td>
<td style="text-align: left;">12.4-1.0.0.1</td>
</tr>
</tbody>
</table>
<p>Compiling with Solaris Studio can sometimes be finicky. This is the exact version used by Oracle, which worked correctly at the time of writing:</p>
<pre><code>$ cc -V
cc: Sun C 5.13 SunOS_i386 2014/10/20
$ CC -V
CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<h3 id="microsoft-visual-studio">Microsoft Visual Studio</h3>
<p>The minimum accepted version of Visual Studio is 2010. Older versions will not be accepted by <code>configure</code>. The maximum accepted version of Visual Studio is 2019. Versions older than 2017 are unlikely to continue working for long.</p>
<p>If you have multiple versions of Visual Studio installed, <code>configure</code> will by default pick the latest. You can request a specific version to be used by setting <code>--with-toolchain-version</code>, e.g. <code>--with-toolchain-version=2015</code>.</p>
<p>If you get <code>LINK: fatal error LNK1123: failure during conversion to COFF: file invalid</code> when building using Visual Studio 2010, you have encountered <a href="http://support.microsoft.com/kb/2757355">KB2757355</a>, a bug triggered by a specific installation order. However, the solution suggested by the KB article does not always resolve the problem. See <a href="https://stackoverflow.com/questions/10888391">this stackoverflow discussion</a> for other suggestions.</p>
<p>The minimum accepted version of Visual Studio is 2017. Older versions will not be accepted by <code>configure</code> and will not work. The maximum accepted version of Visual Studio is 2019.</p>
<p>If you have multiple versions of Visual Studio installed, <code>configure</code> will by default pick the latest. You can request a specific version to be used by setting <code>--with-toolchain-version</code>, e.g. <code>--with-toolchain-version=2017</code>.</p>
<h3 id="ibm-xl-cc">IBM XL C/C++</h3>
<p>Please consult the AIX section of the <a href="https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms">Supported Build Platforms</a> OpenJDK Build Wiki page for details about which versions of XLC are supported.</p>
<h2 id="boot-jdk-requirements">Boot JDK Requirements</h2>
@@ -394,7 +313,6 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<ul>
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libfreetype6-dev</code>.</li>
<li>To install on an rpm-based Linux, try running <code>sudo yum install freetype-devel</code>.</li>
<li>To install on Solaris, try running <code>pkg install system/library/freetype-2</code>.</li>
</ul>
<p>Use <code>--with-freetype-include=&lt;path&gt;</code> and <code>--with-freetype-lib=&lt;path&gt;</code> if <code>configure</code> does not automatically locate the platform FreeType files.</p>
<h3 id="cups">CUPS</h3>
@@ -402,15 +320,13 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<ul>
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libcups2-dev</code>.</li>
<li>To install on an rpm-based Linux, try running <code>sudo yum install cups-devel</code>.</li>
<li>To install on Solaris, try running <code>pkg install print/cups</code>.</li>
</ul>
<p>Use <code>--with-cups=&lt;path&gt;</code> if <code>configure</code> does not properly locate your CUPS files.</p>
<h3 id="x11">X11</h3>
<p>Certain <a href="http://www.x.org/">X11</a> libraries and include files are required on Linux and Solaris.</p>
<p>Certain <a href="http://www.x.org/">X11</a> libraries and include files are required on Linux.</p>
<ul>
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev</code>.</li>
<li>To install on an rpm-based Linux, try running <code>sudo yum install libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel</code>.</li>
<li>To install on Solaris, try running <code>pkg install x11/header/x11-protocols x11/library/libice x11/library/libpthread-stubs x11/library/libsm x11/library/libx11 x11/library/libxau x11/library/libxcb x11/library/libxdmcp x11/library/libxevie x11/library/libxext x11/library/libxrender x11/library/libxrandr x11/library/libxscrnsaver x11/library/libxtst x11/library/toolkit/libxt</code>.</li>
</ul>
<p>Use <code>--with-x=&lt;path&gt;</code> if <code>configure</code> does not properly locate your X11 files.</p>
<h3 id="alsa">ALSA</h3>
@@ -443,7 +359,6 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<p>At least version 3.81 of GNU Make must be used. For distributions supporting GNU Make 4.0 or above, we strongly recommend it. GNU Make 4.0 contains useful functionality to handle parallel building (supported by <code>--with-output-sync</code>) and speed and stability improvements.</p>
<p>Note that <code>configure</code> locates and verifies a properly functioning version of <code>make</code> and stores the path to this <code>make</code> binary in the configuration. If you start a build using <code>make</code> on the command line, you will be using the version of make found first in your <code>PATH</code>, and not necessarily the one stored in the configuration. This initial make will be used as &quot;bootstrap make&quot;, and in a second stage, the make located by <code>configure</code> will be called. Normally, this will present no issues, but if you have a very old <code>make</code>, or a non-GNU Make <code>make</code> in your path, this might cause issues.</p>
<p>If you want to override the default make found by <code>configure</code>, use the <code>MAKE</code> configure variable, e.g. <code>configure MAKE=/opt/gnu/make</code>.</p>
<p>On Solaris, it is common to call the GNU version of make by using <code>gmake</code>.</p>
<h3 id="gnu-bash">GNU Bash</h3>
<p>The JDK requires <a href="http://www.gnu.org/software/bash">GNU Bash</a>. No other shells are supported.</p>
<p>At least version 3.2 of GNU Bash must be used.</p>
@@ -473,7 +388,7 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<li><code>--with-version-string=&lt;string&gt;</code> - Specify the version string this build will be identified with.</li>
<li><code>--with-version-&lt;part&gt;=&lt;value&gt;</code> - A group of options, where <code>&lt;part&gt;</code> can be any of <code>pre</code>, <code>opt</code>, <code>build</code>, <code>major</code>, <code>minor</code>, <code>security</code> or <code>patch</code>. Use these options to modify just the corresponding part of the version string from the default, or the value provided by <code>--with-version-string</code>.</li>
<li><code>--with-jvm-variants=&lt;variant&gt;[,&lt;variant&gt;...]</code> - Build the specified variant (or variants) of Hotspot. Valid variants are: <code>server</code>, <code>client</code>, <code>minimal</code>, <code>core</code>, <code>zero</code>, <code>custom</code>. Note that not all variants are possible to combine in a single build.</li>
<li><code>--with-jvm-features=&lt;feature&gt;[,&lt;feature&gt;...]</code> - Use the specified JVM features when building Hotspot. The list of features will be enabled on top of the default list. For the <code>custom</code> JVM variant, this default list is empty. A complete list of available JVM features can be found using <code>bash configure --help</code>.</li>
<li><code>--enable-jvm-feature-&lt;feature&gt;</code> or <code>--disable-jvm-feature-&lt;feature&gt;</code> - Include (or exclude) <code>&lt;feature&gt;</code> as a JVM feature in Hotspot. You can also specify a list of features to be enabled, separated by space or comma, as <code>--with-jvm-features=&lt;feature&gt;[,&lt;feature&gt;...]</code>. If you prefix <code>&lt;feature&gt;</code> with a <code>-</code>, it will be disabled. These options will modify the default list of features for the JVM variant(s) you are building. For the <code>custom</code> JVM variant, the default list is empty. A complete list of valid JVM features can be found using <code>bash configure --help</code>.</li>
<li><code>--with-target-bits=&lt;bits&gt;</code> - Create a target binary suitable for running on a <code>&lt;bits&gt;</code> platform. Use this to create 32-bit output on a 64-bit build platform, instead of doing a full cross-compile. (This is known as a <em>reduced</em> build.)</li>
</ul>
<p>On Linux, BSD and AIX, it is possible to override where Java by default searches for runtime/JNI libraries. This can be useful in situations where there is a special shared directory for system JNI libraries. This setting can in turn be overriden at runtime by setting the <code>java.library.path</code> property.</p>
@@ -536,7 +451,7 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<li><code>dist-clean</code> - Remove all files, including configuration</li>
</ul>
<p>Run <code>make help</code> to get an up-to-date list of important make targets and make control variables.</p>
<p>It is possible to build just a single module, a single phase, or a single phase of a single module, by creating make targets according to these followin patterns. A phase can be either of <code>gensrc</code>, <code>gendata</code>, <code>copy</code>, <code>java</code>, <code>launchers</code>, <code>libs</code> or <code>rmic</code>. See <a href="#using-fine-grained-make-targets">Using Fine-Grained Make Targets</a> for more details about this functionality.</p>
<p>It is possible to build just a single module, a single phase, or a single phase of a single module, by creating make targets according to these followin patterns. A phase can be either of <code>gensrc</code>, <code>gendata</code>, <code>copy</code>, <code>java</code>, <code>launchers</code>, or <code>libs</code>. See <a href="#using-fine-grained-make-targets">Using Fine-Grained Make Targets</a> for more details about this functionality.</p>
<ul>
<li><code>&lt;phase&gt;</code> - Build the specified phase and everything it depends on</li>
<li><code>&lt;module&gt;</code> - Build the specified module and everything it depends on</li>
@@ -578,7 +493,12 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
</ul>
<h2 id="running-tests">Running Tests</h2>
<p>Most of the JDK tests are using the <a href="http://openjdk.java.net/jtreg">JTReg</a> test framework. Make sure that your configuration knows where to find your installation of JTReg. If this is not picked up automatically, use the <code>--with-jtreg=&lt;path to jtreg home&gt;</code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc.</p>
<p>The <a href="https://wiki.openjdk.java.net/display/Adoption">Adoption Group</a> provides recent builds of jtreg <a href="https://adopt-openjdk.ci.cloudbees.com/job/jtreg/lastSuccessfulBuild/artifact">here</a>. Download the latest <code>.tar.gz</code> file, unpack it, and point <code>--with-jtreg</code> to the <code>jtreg</code> directory that you just unpacked.</p>
<p>The <a href="https://wiki.openjdk.java.net/display/Adoption">Adoption Group</a> provides recent builds of jtreg <a href="https://ci.adoptopenjdk.net/view/Dependencies/job/jtreg/lastSuccessfulBuild/artifact">here</a>. Download the latest <code>.tar.gz</code> file, unpack it, and point <code>--with-jtreg</code> to the <code>jtreg</code> directory that you just unpacked.</p>
<p>Building of Hotspot Gtest suite requires the source code of Google Test framework. The top directory, which contains both <code>googletest</code> and <code>googlemock</code> directories, should be specified via <code>--with-gtest</code>. The supported version of Google Test is 1.8.1, whose source code can be obtained:</p>
<ul>
<li>by downloading and unpacking the source bundle from <a href="https://github.com/google/googletest/releases/tag/release-1.8.1">here</a></li>
<li>or by checking out <code>release-1.8.1</code> tag of <code>googletest</code> project: <code>git clone -b release-1.8.1 https://github.com/google/googletest</code></li>
</ul>
<p>To execute the most basic tests (tier 1), use:</p>
<pre><code>make run-test-tier1</code></pre>
<p>For more details on how to run tests, please see the <a href="testing.html">Testing the JDK</a> document.</p>
@@ -639,11 +559,6 @@ x86_64-linux-gnu-to-ppc64le-linux-gnu</code></pre>
<p>You will need two copies of your toolchain, one which generates output that can run on the target system (the normal, or <em>target</em>, toolchain), and one that generates output that can run on the build system (the <em>build</em> toolchain). Note that cross-compiling is only supported for gcc at the time being. The gcc standard is to prefix cross-compiling toolchains with the target denominator. If you follow this standard, <code>configure</code> is likely to pick up the toolchain correctly.</p>
<p>The <em>build</em> toolchain will be autodetected just the same way the normal <em>build</em>/<em>target</em> toolchain will be autodetected when not cross-compiling. If this is not what you want, or if the autodetection fails, you can specify a devkit containing the <em>build</em> toolchain using <code>--with-build-devkit</code> to <code>configure</code>, or by giving <code>BUILD_CC</code> and <code>BUILD_CXX</code> arguments.</p>
<p>It is often helpful to locate the cross-compilation tools, headers and libraries in a separate directory, outside the normal path, and point out that directory to <code>configure</code>. Do this by setting the sysroot (<code>--with-sysroot</code>) and appending the directory when searching for cross-compilations tools (<code>--with-toolchain-path</code>). As a compact form, you can also use <code>--with-devkit</code> to point to a single directory, if it is correctly setup. (See <code>basics.m4</code> for details.)</p>
<p>If you are unsure what toolchain and versions to use, these have been proved working at the time of writing:</p>
<ul>
<li><a href="https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-linux-gnu-4.8-2013.11_linux.tar.xz">aarch64</a></li>
<li><a href="https://launchpad.net/linaro-toolchain-unsupported/trunk/2012.09/+download/gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux.tar.bz2">arm 32-bit hardware floating point</a></li>
</ul>
<h3 id="native-libraries">Native Libraries</h3>
<p>You will need copies of external native libraries for the <em>target</em> system, present on the <em>build</em> machine while building.</p>
<p>Take care not to replace the <em>build</em> system's version of these libraries by mistake, since that can render the <em>build</em> machine unusable.</p>
@@ -870,9 +785,6 @@ Clock skew detected. Your build may be incomplete.</code></pre>
<p>then the clock on your build machine is out of sync with the timestamps on the source files. Other errors, apparently unrelated but in fact caused by the clock skew, can occur along with the clock skew warnings. These secondary errors may tend to obscure the fact that the true root cause of the problem is an out-of-sync clock.</p>
<p>If you see these warnings, reset the clock on the build machine, run <code>make clean</code> and restart the build.</p>
<h4 id="out-of-memory-errors">Out of Memory Errors</h4>
<p>On Solaris, you might get an error message like this:</p>
<pre><code>Trouble writing out table to disk</code></pre>
<p>To solve this, increase the amount of swap space on your build machine.</p>
<p>On Windows, you might get error messages like this:</p>
<pre><code>fatal error - couldn&#39;t allocate heap
cannot create ... Permission denied
@@ -924,7 +836,7 @@ sudo mv /tmp/configure /usr/local/bin</code></pre>
<p>If you are prepared to take some risk of an incorrect build, and know enough of the system to understand how things build and interact, you can speed up the build process considerably by instructing make to only build a portion of the product.</p>
<h4 id="building-individual-modules">Building Individual Modules</h4>
<p>The safe way to use fine-grained make targets is to use the module specific make targets. All source code in the JDK is organized so it belongs to a module, e.g. <code>java.base</code> or <code>jdk.jdwp.agent</code>. You can build only a specific module, by giving it as make target: <code>make jdk.jdwp.agent</code>. If the specified module depends on other modules (e.g. <code>java.base</code>), those modules will be built first.</p>
<p>You can also specify a set of modules, just as you can always specify a set of make targets: <code>make jdk.crypto.cryptoki jdk.crypto.ec jdk.crypto.mscapi jdk.crypto.ucrypto</code></p>
<p>You can also specify a set of modules, just as you can always specify a set of make targets: <code>make jdk.crypto.cryptoki jdk.crypto.ec jdk.crypto.mscapi</code></p>
<h4 id="building-individual-module-phases">Building Individual Module Phases</h4>
<p>The build process for each module is divided into separate phases. Not all modules need all phases. Which are needed depends on what kind of source code and other artifact the module consists of. The phases are:</p>
<ul>
@@ -934,7 +846,6 @@ sudo mv /tmp/configure /usr/local/bin</code></pre>
<li><code>java</code> (Compile Java code)</li>
<li><code>launchers</code> (Compile native executables)</li>
<li><code>libs</code> (Compile native libraries)</li>
<li><code>rmic</code> (Run the <code>rmic</code> tool)</li>
</ul>
<p>You can build only a single phase for a module by using the notation <code>$MODULE-$PHASE</code>. For instance, to build the <code>gensrc</code> phase for <code>java.base</code>, use <code>make java.base-gensrc</code>.</p>
<p>Note that some phases may depend on others, e.g. <code>java</code> depends on <code>gensrc</code> (if present). Make will build all needed prerequisites before building the requested phase.</p>

View File

@@ -109,19 +109,11 @@ one of the limiting factors for build performance.
At a minimum, a machine with 2-4 cores is advisable, as well as 2-4 GB of RAM.
(The more cores to use, the more memory you need.) At least 6 GB of free disk
space is required (8 GB minimum for building on Solaris).
space is required.
Even for 32-bit builds, it is recommended to use a 64-bit build machine, and
instead create a 32-bit target using `--with-target-bits=32`.
### Building on sparc
At a minimum, a machine with 4 cores is advisable, as well as 4 GB of RAM. (The
more cores to use, the more memory you need.) At least 8 GB of free disk space
is required.
Note: The sparc port is deprecated.
### Building on aarch64
At a minimum, a machine with 8 cores is advisable, as well as 8 GB of RAM.
@@ -138,7 +130,7 @@ This is not recommended. Instead, see the section on [Cross-compiling](
## Operating System Requirements
The mainline JDK project supports Linux, Solaris, macOS, AIX and Windows.
The mainline JDK project supports Linux, macOS, AIX and Windows.
Support for other operating system, e.g. BSD, exists in separate "port"
projects.
@@ -153,11 +145,10 @@ time of writing.
Operating system Vendor/version used
----------------- -------------------------------------------------------
Linux Oracle Enterprise Linux 6.4 / 7.6
Solaris Solaris 11.3 SRU 20
macOS Mac OS X 10.13 (High Sierra)
Windows Windows Server 2012 R2
The double version numbers for Linux and Solaris are due to the hybrid model
The double version numbers for Linux are due to the hybrid model
used at Oracle, where header files and external libraries from an older version
are used when building on a more modern version of the OS.
@@ -247,21 +238,6 @@ options.
Note that while it's possible to build on WSL, testing is still not fully
supported.
### Solaris
See `make/devkit/solaris11.1-package-list.txt` for a list of recommended
packages to install when building on Solaris. The versions specified in this
list is the versions used by the daily builds at Oracle, and is likely to work
properly.
Older versions of Solaris shipped a broken version of `objcopy`. At least
version 2.21.1 is needed, which is provided by Solaris 11 Update 1. Objcopy is
needed if you want to have external debug symbols. Please make sure you are
using at least version 2.21.1 of objcopy, or that you disable external debug
symbols.
Note: The Solaris port is deprecated.
### macOS
Apple is using a quite aggressive scheme of pushing OS updates, and coupling
@@ -314,7 +290,6 @@ one-to-one correlation between target operating system and toolchain.
------------------ -------------------------
Linux gcc, clang
macOS Apple Xcode (using clang)
Solaris Oracle Solaris Studio
AIX IBM XL C/C++
Windows Microsoft Visual Studio
@@ -327,10 +302,9 @@ issues.
Operating system Toolchain version
------------------ -------------------------------------------------------
Linux gcc 8.3.0
Linux gcc 9.2.0
macOS Apple Xcode 10.1 (using clang 10.0.0)
Solaris Oracle Solaris Studio 12.6 (with compiler version 5.15)
Windows Microsoft Visual Studio 2017 update 15.9.16
Windows Microsoft Visual Studio 2019 update 16.5.3
All compilers are expected to be able to compile to the C99 language standard,
as some C99 features are used in the source code. Microsoft Visual Studio
@@ -339,17 +313,17 @@ features that it does support.
### gcc
The minimum accepted version of gcc is 4.8. Older versions will generate a warning
The minimum accepted version of gcc is 5.0. Older versions will generate a warning
by `configure` and are unlikely to work.
The JDK is currently known to be able to compile with at least version 8.3 of
The JDK is currently known to be able to compile with at least version 9.2 of
gcc.
In general, any version between these two should be usable.
### clang
The minimum accepted version of clang is 3.2. Older versions will not be
The minimum accepted version of clang is 3.5. Older versions will not be
accepted by `configure`.
To use clang instead of gcc on Linux, use `--with-toolchain-type=clang`.
@@ -379,52 +353,15 @@ Build Environment](#problems-with-the-build-environment), and [Getting
Help](#getting-help) to find out if there are any recent, non-merged patches
available for this update.
### Oracle Solaris Studio
The minimum accepted version of the Solaris Studio compilers is 5.13
(corresponding to Solaris Studio 12.4). Older versions will not be accepted by
configure.
The Solaris Studio installation should contain at least these packages:
Package Version
-------------------------------------------------- -------------
developer/solarisstudio-124/backend 12.4-1.0.6.0
developer/solarisstudio-124/c++ 12.4-1.0.10.0
developer/solarisstudio-124/cc 12.4-1.0.4.0
developer/solarisstudio-124/library/c++-libs 12.4-1.0.10.0
developer/solarisstudio-124/library/math-libs 12.4-1.0.0.1
developer/solarisstudio-124/library/studio-gccrt 12.4-1.0.0.1
developer/solarisstudio-124/studio-common 12.4-1.0.0.1
developer/solarisstudio-124/studio-ja 12.4-1.0.0.1
developer/solarisstudio-124/studio-legal 12.4-1.0.0.1
developer/solarisstudio-124/studio-zhCN 12.4-1.0.0.1
Compiling with Solaris Studio can sometimes be finicky. This is the exact
version used by Oracle, which worked correctly at the time of writing:
```
$ cc -V
cc: Sun C 5.13 SunOS_i386 2014/10/20
$ CC -V
CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30
```
### Microsoft Visual Studio
The minimum accepted version of Visual Studio is 2010. Older versions will not
be accepted by `configure`. The maximum accepted version of Visual Studio is
2019. Versions older than 2017 are unlikely to continue working for long.
The minimum accepted version of Visual Studio is 2017. Older versions will not
be accepted by `configure` and will not work. The maximum accepted
version of Visual Studio is 2019.
If you have multiple versions of Visual Studio installed, `configure` will by
default pick the latest. You can request a specific version to be used by
setting `--with-toolchain-version`, e.g. `--with-toolchain-version=2015`.
If you get `LINK: fatal error LNK1123: failure during conversion to COFF: file
invalid` when building using Visual Studio 2010, you have encountered
[KB2757355](http://support.microsoft.com/kb/2757355), a bug triggered by a
specific installation order. However, the solution suggested by the KB article
does not always resolve the problem. See [this stackoverflow discussion](
https://stackoverflow.com/questions/10888391) for other suggestions.
setting `--with-toolchain-version`, e.g. `--with-toolchain-version=2017`.
### IBM XL C/C++
@@ -494,7 +431,6 @@ rather than bundling the JDK's own copy.
libfreetype6-dev`.
* To install on an rpm-based Linux, try running `sudo yum install
freetype-devel`.
* To install on Solaris, try running `pkg install system/library/freetype-2`.
Use `--with-freetype-include=<path>` and `--with-freetype-lib=<path>`
if `configure` does not automatically locate the platform FreeType files.
@@ -509,7 +445,6 @@ your operating system.
libcups2-dev`.
* To install on an rpm-based Linux, try running `sudo yum install
cups-devel`.
* To install on Solaris, try running `pkg install print/cups`.
Use `--with-cups=<path>` if `configure` does not properly locate your CUPS
files.
@@ -517,18 +452,12 @@ files.
### X11
Certain [X11](http://www.x.org/) libraries and include files are required on
Linux and Solaris.
Linux.
* To install on an apt-based Linux, try running `sudo apt-get install
libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev`.
* To install on an rpm-based Linux, try running `sudo yum install
libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel`.
* To install on Solaris, try running `pkg install x11/header/x11-protocols
x11/library/libice x11/library/libpthread-stubs x11/library/libsm
x11/library/libx11 x11/library/libxau x11/library/libxcb
x11/library/libxdmcp x11/library/libxevie x11/library/libxext
x11/library/libxrender x11/library/libxrandr x11/library/libxscrnsaver
x11/library/libxtst x11/library/toolkit/libxt`.
Use `--with-x=<path>` if `configure` does not properly locate your X11 files.
@@ -603,8 +532,6 @@ will present no issues, but if you have a very old `make`, or a non-GNU Make
If you want to override the default make found by `configure`, use the `MAKE`
configure variable, e.g. `configure MAKE=/opt/gnu/make`.
On Solaris, it is common to call the GNU version of make by using `gmake`.
### GNU Bash
The JDK requires [GNU Bash](http://www.gnu.org/software/bash). No other shells
@@ -684,11 +611,14 @@ features, use `bash configure --help=short` instead.)
(or variants) of Hotspot. Valid variants are: `server`, `client`,
`minimal`, `core`, `zero`, `custom`. Note that not all
variants are possible to combine in a single build.
* `--with-jvm-features=<feature>[,<feature>...]` - Use the specified JVM
features when building Hotspot. The list of features will be enabled on top
of the default list. For the `custom` JVM variant, this default list is
empty. A complete list of available JVM features can be found using `bash
configure --help`.
* `--enable-jvm-feature-<feature>` or `--disable-jvm-feature-<feature>` -
Include (or exclude) `<feature>` as a JVM feature in Hotspot. You can also
specify a list of features to be enabled, separated by space or comma, as
`--with-jvm-features=<feature>[,<feature>...]`. If you prefix `<feature>`
with a `-`, it will be disabled. These options will modify the default list
of features for the JVM variant(s) you are building. For the `custom` JVM
variant, the default list is empty. A complete list of valid JVM features
can be found using `bash configure --help`.
* `--with-target-bits=<bits>` - Create a target binary suitable for running
on a `<bits>` platform. Use this to create 32-bit output on a 64-bit build
platform, instead of doing a full cross-compile. (This is known as a
@@ -815,7 +745,7 @@ control variables.
It is possible to build just a single module, a single phase, or a single phase
of a single module, by creating make targets according to these followin
patterns. A phase can be either of `gensrc`, `gendata`, `copy`, `java`,
`launchers`, `libs` or `rmic`. See [Using Fine-Grained Make Targets](
`launchers`, or `libs`. See [Using Fine-Grained Make Targets](
#using-fine-grained-make-targets) for more details about this functionality.
* `<phase>` - Build the specified phase and everything it depends on
@@ -888,10 +818,18 @@ containing `lib/jtreg.jar` etc.
The [Adoption Group](https://wiki.openjdk.java.net/display/Adoption) provides
recent builds of jtreg [here](
https://adopt-openjdk.ci.cloudbees.com/job/jtreg/lastSuccessfulBuild/artifact).
https://ci.adoptopenjdk.net/view/Dependencies/job/jtreg/lastSuccessfulBuild/artifact).
Download the latest `.tar.gz` file, unpack it, and point `--with-jtreg` to the
`jtreg` directory that you just unpacked.
Building of Hotspot Gtest suite requires the source code of Google Test framework.
The top directory, which contains both `googletest` and `googlemock`
directories, should be specified via `--with-gtest`.
The supported version of Google Test is 1.8.1, whose source code can be obtained:
* by downloading and unpacking the source bundle from [here](https://github.com/google/googletest/releases/tag/release-1.8.1)
* or by checking out `release-1.8.1` tag of `googletest` project: `git clone -b release-1.8.1 https://github.com/google/googletest`
To execute the most basic tests (tier 1), use:
```
make run-test-tier1
@@ -1038,14 +976,6 @@ appending the directory when searching for cross-compilations tools
to point to a single directory, if it is correctly setup. (See `basics.m4` for
details.)
If you are unsure what toolchain and versions to use, these have been proved
working at the time of writing:
* [aarch64](
https://releases.linaro.org/archive/13.11/components/toolchain/binaries/gcc-linaro-aarch64-linux-gnu-4.8-2013.11_linux.tar.xz)
* [arm 32-bit hardware floating point](
https://launchpad.net/linaro-toolchain-unsupported/trunk/2012.09/+download/gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux.tar.bz2)
### Native Libraries
You will need copies of external native libraries for the *target* system,
@@ -1465,12 +1395,6 @@ clean` and restart the build.
#### Out of Memory Errors
On Solaris, you might get an error message like this:
```
Trouble writing out table to disk
```
To solve this, increase the amount of swap space on your build machine.
On Windows, you might get error messages like this:
```
fatal error - couldn't allocate heap
@@ -1609,8 +1533,7 @@ module depends on other modules (e.g. `java.base`), those modules will be built
first.
You can also specify a set of modules, just as you can always specify a set of
make targets: `make jdk.crypto.cryptoki jdk.crypto.ec jdk.crypto.mscapi
jdk.crypto.ucrypto`
make targets: `make jdk.crypto.cryptoki jdk.crypto.ec jdk.crypto.mscapi`
#### Building Individual Module Phases
@@ -1624,7 +1547,6 @@ and other artifact the module consists of. The phases are:
* `java` (Compile Java code)
* `launchers` (Compile native executables)
* `libs` (Compile native libraries)
* `rmic` (Run the `rmic` tool)
You can build only a single phase for a module by using the notation
`$MODULE-$PHASE`. For instance, to build the `gensrc` phase for `java.base`,

319
doc/hotspot-style.html Normal file
View File

@@ -0,0 +1,319 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>HotSpot Coding Style</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<link rel="stylesheet" href="../make/data/docs-resources/resources/jdk-default.css" />
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<header id="title-block-header">
<h1 class="title">HotSpot Coding Style</h1>
</header>
<nav id="TOC">
<ul>
<li><a href="#introduction">Introduction</a><ul>
<li><a href="#why-care-about-style">Why Care About Style?</a></li>
<li><a href="#counterexamples-and-updates">Counterexamples and Updates</a></li>
</ul></li>
<li><a href="#structure-and-formatting">Structure and Formatting</a><ul>
<li><a href="#factoring-and-class-design">Factoring and Class Design</a></li>
<li><a href="#files">Files</a></li>
<li><a href="#naming">Naming</a></li>
<li><a href="#commenting">Commenting</a></li>
<li><a href="#macros">Macros</a></li>
<li><a href="#whitespace">Whitespace</a></li>
<li><a href="#miscellaneous">Miscellaneous</a></li>
</ul></li>
<li><a href="#use-of-c-features">Use of C++ Features</a><ul>
<li><a href="#error-handling">Error Handling</a></li>
<li><a href="#rtti-runtime-type-information">RTTI (Runtime Type Information)</a></li>
<li><a href="#memory-allocation">Memory Allocation</a></li>
<li><a href="#class-inheritance">Class Inheritance</a></li>
<li><a href="#namespaces">Namespaces</a></li>
<li><a href="#c-standard-library">C++ Standard Library</a></li>
<li><a href="#type-deduction">Type Deduction</a></li>
<li><a href="#expression-sfinae">Expression SFINAE</a></li>
<li><a href="#enum">enum</a></li>
<li><a href="#thread_local">thread_local</a></li>
<li><a href="#nullptr">nullptr</a></li>
<li><a href="#atomic">&lt;atomic&gt;</a></li>
<li><a href="#additional-permitted-features">Additional Permitted Features</a></li>
<li><a href="#excluded-features">Excluded Features</a></li>
<li><a href="#undecided-features">Undecided Features</a></li>
</ul></li>
</ul>
</nav>
<h2 id="introduction">Introduction</h2>
<p>This is a collection of rules, guidelines, and suggestions for writing HotSpot code. Following these will help new code fit in with existing HotSpot code, making it easier to read and maintain. Failure to follow these guidelines may lead to discussion during code reviews, if not outright rejection of a change.</p>
<h3 id="why-care-about-style">Why Care About Style?</h3>
<p>Some programmers seem to have lexers and even C preprocessors installed directly behind their eyeballs. The rest of us require code that is not only functionally correct but also easy to read. More than that, since there is no one style for easy-to-read code, and since a mashup of many styles is just as confusing as no style at all, it is important for coders to be conscious of the many implicit stylistic choices that historically have gone into the HotSpot code base.</p>
<p>Some of these guidelines are driven by the cross-platform requirements for HotSpot. Shared code must work on a variety of platforms, and may encounter deficiencies in some. Using platform conditionalization in shared code is usually avoided, while shared code is strongly preferred to multiple platform-dependent implementations, so some language features may be recommended against.</p>
<p>Some of the guidelines here are relatively arbitrary choices among equally plausible alternatives. The purpose of stating and enforcing these rules is largely to provide a consistent look to the code. That consistency makes the code more readable by avoiding non-functional distractions from the interesting functionality.</p>
<p>When changing pre-existing code, it is reasonable to adjust it to match these conventions. Exception: If the pre-existing code clearly conforms locally to its own peculiar conventions, it is not worth reformatting the whole thing. Also consider separating changes that make extensive stylistic updates from those which make functional changes.</p>
<h3 id="counterexamples-and-updates">Counterexamples and Updates</h3>
<p>Many of the guidelines mentioned here have (sometimes widespread) counterexamples in the HotSpot code base. Finding a counterexample is not sufficient justification for new code to follow the counterexample as a precedent, since readers of your code will rightfully expect your code to follow the greater bulk of precedents documented here.</p>
<p>Occasionally a guideline mentioned here may be just out of synch with the actual HotSpot code base. If you find that a guideline is consistently contradicted by a large number of counterexamples, please bring it up for discussion and possible change. The architectural rule, of course, is &quot;When in Rome do as the Romans&quot;. Sometimes in the suburbs of Rome the rules are a little different; these differences can be pointed out here.</p>
<p>Proposed changes should be discussed on the <a href="mailto:hotspot-dev@openjdk.java.net">HotSpot Developers</a> mailing list, and approved by <a href="https://en.wikipedia.org/wiki/Rough_consensus">rough consensus</a> of the <a href="https://openjdk.java.net/census#hotspot">HotSpot Group</a> Members. The Group Lead determines whether consensus has been reached. Changes are likely to be cautious and incremental, since HotSpot coders have been using these guidelines for years.</p>
<h2 id="structure-and-formatting">Structure and Formatting</h2>
<h3 id="factoring-and-class-design">Factoring and Class Design</h3>
<ul>
<li><p>Group related code together, so readers can concentrate on one section of one file.</p></li>
<li><p>Classes are the primary code structuring mechanism. Place related functionality in a class, or a set of related classes. Use of either namespaces or public non-member functions is rare in HotSpot code. Static non-member functions are not uncommon.</p></li>
<li><p>If a class <code>FooBar</code> is going to be used in more than one place, put it a file named fooBar.hpp and fooBar.cpp. If the class is a sidekick to a more important class <code>BazBat</code>, it can go in bazBat.hpp.</p></li>
<li><p>Put a member function <code>FooBar::bang</code> into the same file that defined <code>FooBar</code>, or its associated <em>.inline.hpp or </em>.cpp file.</p></li>
<li><p>Use public accessor functions for member variables accessed outside the class.</p></li>
<li><p>Assign names to constant literals and use the names instead.</p></li>
<li><p>Keep functions small, a screenful at most. Split out chunks of logic into file-local classes or static functions if needed.</p></li>
<li><p>Factor away nonessential complexity into local inline helper functions and helper classes.</p></li>
<li><p>Think clearly about internal invariants that apply to each class, and document them in the form of asserts within member functions.</p></li>
<li><p>Make simple, self-evident contracts for member functions. If you cannot communicate a simple contract, redesign the class.</p></li>
<li><p>Implement classes as if expecting rough usage by clients. Check for incorrect usage of a class using <code>assert(...)</code>, <code>guarantee(...)</code>, <code>ShouldNotReachHere()</code> and comments wherever needed. Performance is almost never a reason to omit asserts.</p></li>
<li><p>When possible, design as if for reusability. This forces a clear design of the class's externals, and clean hiding of its internals.</p></li>
<li><p>Initialize all variables and data structures to a known state. If a class has a constructor, initialize it there.</p></li>
<li><p>Do no optimization before its time. Prove the need to optimize.</p></li>
<li><p>When you must defactor to optimize, preserve as much structure as possible. If you must hand-inline some name, label the local copy with the original name.</p></li>
<li><p>If you need to use a hidden detail (e.g., a structure offset), name it (as a constant or function) in the class that owns it.</p></li>
<li><p>Don't use the Copy and Paste keys to replicate more than a couple lines of code. Name what you must repeat.</p></li>
<li><p>If a class needs a member function to change a user-visible attribute, the change should be done with a &quot;setter&quot; accessor matched to the simple &quot;getter&quot;.</p></li>
</ul>
<h3 id="files">Files</h3>
<ul>
<li><p>All source files must have a globally unique basename. The build system depends on this uniqueness.</p></li>
<li><p>Do not put non-trivial function implementations in .hpp files. If the implementation depends on other .hpp files, put it in a .cpp or a .inline.hpp file.</p></li>
<li><p>.inline.hpp files should only be included in .cpp or .inline.hpp files.</p></li>
<li><p>All .cpp files include precompiled.hpp as the first include line.</p></li>
<li><p>precompiled.hpp is just a build time optimization, so don't rely on it to resolve include problems.</p></li>
<li><p>Keep the include lines alphabetically sorted.</p></li>
<li><p>Put conditional inclusions (<code>#if ...</code>) at the end of the include list.</p></li>
</ul>
<h3 id="naming">Naming</h3>
<ul>
<li><p>The length of a name may be correlated to the size of its scope. In particular, short names (even single letter names) may be fine in a small scope, but are usually inappropriate for larger scopes.</p></li>
<li><p>Prefer whole words rather than abbreviations, unless the abbreviation is more widely used than the long form in the code's domain.</p></li>
<li><p>Choose names consistently. Do not introduce spurious variations. Abbreviate corresponding terms to a consistent length.</p></li>
<li><p>Global names must be unique, to avoid <a href="https://en.cppreference.com/w/cpp/language/definition" title="One Definition Rule">One Definition Rule</a> (ODR) violations. A common prefixing scheme for related global names is often used. (This is instead of using namespaces, which are mostly avoided in HotSpot.)</p></li>
<li><p>Don't give two names to the semantically same thing. But use different names for semantically different things, even if they are representationally the same. (So use meaningful <code>typedef</code> or template alias names where appropriate.)</p></li>
<li><p>When choosing names, avoid categorical nouns like &quot;variable&quot;, &quot;field&quot;, &quot;parameter&quot;, &quot;value&quot;, and verbs like &quot;compute&quot;, &quot;get&quot;. (<code>storeValue(int param)</code> is bad.)</p></li>
<li><p>Type names and global names should use mixed-case with the first letter of each word capitalized (<code>FooBar</code>).</p></li>
<li><p>Embedded abbreviations in otherwise mixed-case names are usually capitalized entirely rather than being treated as a single word with only the initial letter capitalized, e.g. &quot;HTML&quot; rather than &quot;Html&quot;.</p></li>
<li><p>Function and local variable names use lowercase with words separated by a single underscore (<code>foo_bar</code>).</p></li>
<li><p>Class data member names have a leading underscore, and use lowercase with words separated by a single underscore (<code>_foo_bar</code>).</p></li>
<li><p>Constant names may be upper-case or mixed-case, according to historical necessity. (Note: There are many examples of constants with lowercase names.)</p></li>
<li><p>Constant names should follow an existing pattern, and must have a distinct appearance from other names in related APIs.</p></li>
<li><p>Class and type names should be noun phrases. Consider an &quot;er&quot; suffix for a class that represents an action.</p></li>
<li><p>Function names should be verb phrases that reflect changes of state known to a class's user, or else noun phrases if they cause no change of state visible to the class's user.</p></li>
<li><p>Getter accessor names are noun phrases, with no &quot;<code>get_</code>&quot; noise word. Boolean getters can also begin with &quot;<code>is_</code>&quot; or &quot;<code>has_</code>&quot;. Member function for reading data members usually have the same name as the data member, exclusive of the leading underscore.</p></li>
<li><p>Setter accessor names prepend &quot;<code>set_</code>&quot; to the getter name.</p></li>
<li><p>Other member function names are verb phrases, as if commands to the receiver.</p></li>
<li><p>Avoid leading underscores (as &quot;<code>_oop</code>&quot;) except in cases required above. (Names with leading underscores can cause portability problems.)</p></li>
</ul>
<h3 id="commenting">Commenting</h3>
<ul>
<li><p>Clearly comment subtle fixes.</p></li>
<li><p>Clearly comment tricky classes and functions.</p></li>
<li><p>If you have to choose between commenting code and writing wiki content, comment the code. Link from the wiki to the source file if it makes sense.</p></li>
<li><p>As a general rule don't add bug numbers to comments (they would soon overwhelm the code). But if the bug report contains significant information that can't reasonably be added as a comment, then refer to the bug report.</p></li>
<li><p>Personal names are discouraged in the source code, which is a team product.</p></li>
</ul>
<h3 id="macros">Macros</h3>
<ul>
<li><p>You can almost always use an inline function or class instead of a macro. Use a macro only when you really need it.</p></li>
<li><p>Templates may be preferable to multi-line macros. (There may be subtle performance effects with templates on some platforms; revert to macros if absolutely necessary.)</p></li>
<li><p><code>#ifdef</code>s should not be used to introduce platform-specific code into shared code (except for <code>_LP64</code>). They must be used to manage header files, in the pattern found at the top of every source file. They should be used mainly for major build features, including <code>PRODUCT</code>, <code>ASSERT</code>, <code>_LP64</code>, <code>INCLUDE_SERIALGC</code>, <code>COMPILER1</code>, etc.</p></li>
<li><p>For build features such as <code>PRODUCT</code>, use <code>#ifdef PRODUCT</code> for multiple-line inclusions or exclusions.</p></li>
<li><p>For short inclusions or exclusions based on build features, use macros like <code>PRODUCT_ONLY</code> and <code>NOT_PRODUCT</code>. But avoid using them with multiple-line arguments, since debuggers do not handle that well.</p></li>
<li><p>Use <code>CATCH</code>, <code>THROW</code>, etc. for HotSpot-specific exception processing.</p></li>
</ul>
<h3 id="whitespace">Whitespace</h3>
<ul>
<li><p>In general, don't change whitespace unless it improves readability or consistency. Gratuitous whitespace changes will make integrations and backports more difficult.</p></li>
<li><p>Use One-True-Brace-Style. The opening brace for a function or class is normally at the end of the line; it is sometimes moved to the beginning of the next line for emphasis. Substatements are enclosed in braces, even if there is only a single statement. Extremely simple one-line statements may drop braces around a substatement.</p></li>
<li><p>Indentation levels are two columns.</p></li>
<li><p>There is no hard line length limit. That said, bear in mind that excessively long lines can cause difficulties. Some people like to have multiple side-by-side windows in their editors, and long lines may force them to choose among unpleasant options. They can use wide windows, reducing the number that can fit across the screen, and wasting a lot of screen real estate because most lines are not that long. Alternatively, they can have more windows across the screen, with long lines wrapping (or worse, requiring scrolling to see in their entirety), which is harder to read. Similar issues exist for side-by-side code reviews.</p></li>
<li><p>Tabs are not allowed in code. Set your editor accordingly.<br> (Emacs: <code>(setq-default indent-tabs-mode nil)</code>.)</p></li>
<li><p>Use good taste to break lines and align corresponding tokens on adjacent lines.</p></li>
<li><p>Use spaces around operators, especially comparisons and assignments. (Relaxable for boolean expressions and high-precedence operators in classic math-style formulas.)</p></li>
<li><p>Put spaces on both sides of control flow keywords <code>if</code>, <code>else</code>, <code>for</code>, <code>switch</code>, etc. Don't add spaces around the associated <em>control</em> expressions. Examples:</p>
<pre><code>while (test_foo(args...)) { // Yes
while(test_foo(args...)) { // No, missing space after while
while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></li>
<li><p>Use extra parentheses in expressions whenever operator precedence seems doubtful. Always use parentheses in shift/mask expressions (<code>&lt;&lt;</code>, <code>&amp;</code>, <code>|</code>). Don't add whitespace immediately inside parentheses.</p></li>
<li><p>Use more spaces and blank lines between larger constructs, such as classes or function definitions.</p></li>
<li><p>If the surrounding code has any sort of vertical organization, adjust new lines horizontally to be consistent with that organization. (E.g., trailing backslashes on long macro definitions often align.)</p></li>
</ul>
<h3 id="miscellaneous">Miscellaneous</h3>
<ul>
<li><p>Use the <a href="https://en.cppreference.com/w/cpp/language/raii" title="Resource Acquisition Is Initialization">Resource Acquisition Is Initialization</a> (RAII) design pattern to manage bracketed critical sections. See class <code>ResourceMark</code> for an example.</p></li>
<li>Avoid implicit conversions to <code>bool</code>.
<ul>
<li>Use <code>bool</code> for boolean values.</li>
<li>Do not use ints or pointers as (implicit) booleans with <code>&amp;&amp;</code>, <code>||</code>, <code>if</code>, <code>while</code>. Instead, compare explicitly, i.e. <code>if (x != 0)</code> or <code>if (ptr != nullptr)</code>, etc.</li>
<li>Do not use declarations in <em>condition</em> forms, i.e. don't use <code>if (T v = value) { ... }</code>.</li>
</ul></li>
<li><p>Use functions from globalDefinitions.hpp and related files when performing bitwise operations on integers. Do not code directly as C operators, unless they are extremely simple. (Examples: <code>align_up</code>, <code>is_power_of_2</code>, <code>exact_log2</code>.)</p></li>
<li><p>Use arrays with abstractions supporting range checks.</p></li>
<li><p>Always enumerate all cases in a switch statement or provide a default case. It is ok to have an empty default with comment.</p></li>
</ul>
<h2 id="use-of-c-features">Use of C++ Features</h2>
<p>HotSpot was originally written in a subset of the C++98/03 language. More recently, support for C++14 is provided, though again, HotSpot only uses a subset. (Backports to JDK versions lacking support for more recent Standards must of course stick with the original C++98/03 subset.)</p>
<p>This section describes that subset. Features from the C++98/03 language may be used unless explicitly excluded here. Features from C++11 and C++14 may be explicitly permitted or explicitly excluded, and discussed accordingly here. There is a third category, undecided features, about which HotSpot developers have not yet reached a consensus, or perhaps have not discussed at all. Use of these features is also excluded.</p>
<p>(The use of some features may not be immediately obvious and may slip in anyway, since the compiler will accept them. The code review process is the main defense against this.)</p>
<p>Some features are discussed in their own subsection, typically to provide more extensive discussion or rationale for limitations. Features that don't have their own subsection are listed in omnibus feature sections for permitted, excluded, and undecided features.</p>
<p>Lists of new features for C++11 and C++14, along with links to their descriptions, can be found in the online documentation for some of the compilers and libraries. The C++14 Standard is the definitive description.</p>
<ul>
<li><a href="https://gcc.gnu.org/projects/cxx-status.html">C++ Standards Support in GCC</a></li>
<li><a href="https://clang.llvm.org/cxx_status.html">C++ Support in Clang</a></li>
<li><a href="https://docs.microsoft.com/en-us/cpp/visual-cpp-language-conformance">Visual C++ Language Conformance</a></li>
<li><a href="https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html">libstdc++ Status</a></li>
<li><a href="https://libcxx.llvm.org/cxx1y_status.html">libc++ Status</a></li>
</ul>
<p>As a rule of thumb, permitting features which simplify writing code and, especially, reading code, is encouraged.</p>
<p>Similar discussions for some other projects:</p>
<ul>
<li><p><a href="https://google.github.io/styleguide/cppguide.html">Google C++ Style Guide</a> — Currently (2020) targeting C++17.</p></li>
<li><p><a href="https://chromium-cpp.appspot.com">C++11 and C++14 use in Chromium</a> — Categorizes features as allowed, banned, or to be discussed.</p></li>
<li><p><a href="https://llvm.org/docs/CodingStandards.html">llvm Coding Standards</a> — Currently (2020) targeting C++14.</p></li>
<li><p><a href="https://firefox-source-docs.mozilla.org/code-quality/coding-style/using_cxx_in_firefox_code.html">Using C++ in Mozilla code</a> — C++17 support is required for recent versions (2020).</p></li>
</ul>
<h3 id="error-handling">Error Handling</h3>
<p>Do not use exceptions. Exceptions are disabled by the build configuration for some platforms.</p>
<p>Rationale: There is significant concern over the performance cost of exceptions and their usage model and implications for maintainable code. That's not just a matter of history that has been fixed; there remain questions and problems even today (2019). See, for example, <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0709r0.pdf">Zero cost deterministic exceptions</a>. Because of this, HotSpot has always used a build configuration that disables exceptions where that is available. As a result, HotSpot code uses error handling mechanisms such as two-phase construction, factory functions, returning error codes, and immediate termination. Even if the cost of exceptions were not a concern, the existing body of code was not written with exception safety in mind. Making HotSpot exception safe would be a very large undertaking.</p>
<p>In addition to the usual alternatives to exceptions, HotSpot provides its own exception mechanism. This is based on a set of macros defined in utilities/exceptions.hpp.</p>
<h3 id="rtti-runtime-type-information">RTTI (Runtime Type Information)</h3>
<p>Do not use <a href="https://en.wikipedia.org/wiki/Run-time_type_information" title="Runtime Type Information">Runtime Type Information</a> (RTTI). <a href="https://en.wikipedia.org/wiki/Run-time_type_information" title="Runtime Type Information">RTTI</a> is disabled by the build configuration for some platforms. Among other things, this means <code>dynamic_cast</code> cannot be used.</p>
<p>Rationale: Other than to implement exceptions (which HotSpot doesn't use), most potential uses of <a href="https://en.wikipedia.org/wiki/Run-time_type_information" title="Runtime Type Information">RTTI</a> are better done via virtual functions. Some of the remainder can be replaced by bespoke mechanisms. The cost of the additional runtime data structures needed to support <a href="https://en.wikipedia.org/wiki/Run-time_type_information" title="Runtime Type Information">RTTI</a> are deemed not worthwhile, given the alternatives.</p>
<h3 id="memory-allocation">Memory Allocation</h3>
<p>Do not use the standard global allocation and deallocation functions (operator new and related functions). Use of these functions by HotSpot code is disabled for some platforms.</p>
<p>Rationale: HotSpot often uses &quot;resource&quot; or &quot;arena&quot; allocation. Even where heap allocation is used, the standard global functions are avoided in favor of wrappers around malloc and free that support the VM's Native Memory Tracking (NMT) feature.</p>
<p>Native memory allocation failures are often treated as non-recoverable. The place where &quot;out of memory&quot; is (first) detected may be an innocent bystander, unrelated to the actual culprit.</p>
<h3 id="class-inheritance">Class Inheritance</h3>
<p>Use public single inheritance.</p>
<p>Prefer composition rather than non-public inheritance.</p>
<p>Restrict inheritance to the &quot;is-a&quot; case; use composition rather than non-is-a related inheritance.</p>
<p>Avoid multiple inheritance. Never use virtual inheritance.</p>
<h3 id="namespaces">Namespaces</h3>
<p>Avoid using namespaces. HotSpot code normally uses &quot;all static&quot; classes rather than namespaces for grouping. An &quot;all static&quot; class is not instantiable, has only static members, and is normally derived (possibly indirectly) from the helper class <code>AllStatic</code>.</p>
<p>Benefits of using such classes include:</p>
<ul>
<li><p>Provides access control for members, which is unavailable with namespaces.</p></li>
<li><p>Avoids <a href="https://en.cppreference.com/w/cpp/language/adl" title="Argument Dependent Lookup">Argument Dependent Lookup</a> (ADL).</p></li>
<li><p>Closed for additional members. Namespaces allow names to be added in multiple contexts, making it harder to see the complete API.</p></li>
</ul>
<p>Namespaces should be used only in cases where one of those &quot;benefits&quot; is actually a hindrance.</p>
<p>In particular, don't use anonymous namespaces. They seem like they should be useful, and indeed have some real benefits for naming and generated code size on some platforms. Unfortunately, debuggers don't seem to like them at all.</p>
<p><a href="https://groups.google.com/forum/#!topic/mozilla.dev.platform/KsaG3lEEaRM" class="uri">https://groups.google.com/forum/#!topic/mozilla.dev.platform/KsaG3lEEaRM</a><br> Suggests Visual Studio debugger might not be able to refer to anonymous namespace symbols, so can't set breakpoints in them. Though the discussion seems to go back and forth on that.</p>
<p><a href="https://firefox-source-docs.mozilla.org/code-quality/coding-style/coding_style_cpp.html" class="uri">https://firefox-source-docs.mozilla.org/code-quality/coding-style/coding_style_cpp.html</a><br> Search for &quot;Anonymous namespaces&quot; Suggests preferring &quot;static&quot; to anonymous namespaces where applicable, because of poor debugger support for anonymous namespaces.</p>
<p><a href="https://sourceware.org/bugzilla/show_bug.cgi?id=16874" class="uri">https://sourceware.org/bugzilla/show_bug.cgi?id=16874</a><br> Bug for similar gdb problems.</p>
<h3 id="c-standard-library">C++ Standard Library</h3>
<p>Avoid using the C++ Standard Library.</p>
<p>Historically, HotSpot has mostly avoided use of the Standard Library.</p>
<p>(It used to be impossible to use most of it in shared code, because the build configuration for Solaris with Solaris Studio made all but a couple of pieces inaccessible. Support for header-only parts was added in mid-2017. Support for Solaris was removed in 2020.)</p>
<p>Some reasons for this include</p>
<ul>
<li><p>Exceptions. Perhaps the largest core issue with adopting the use of Standard Library facilities is exceptions. HotSpot does not use exceptions and, for platforms which allow doing so, builds with them turned off. Many Standard Library facilities implicitly or explicitly use exceptions.</p></li>
<li><p><code>assert</code>. An issue that is quickly encountered is the <code>assert</code> macro name collision (<a href="https://bugs.openjdk.java.net/browse/JDK-8007770">JDK-8007770</a>). Some mechanism for addressing this would be needed before much of the Standard Library could be used. (Not all Standard Library implementations use assert in header files, but some do.)</p></li>
<li><p>Memory allocation. HotSpot requires explicit control over where allocations occur. The C++98/03 <code>std::allocator</code> class is too limited to support our usage. (Changes in more recent Standards may remove this limitation.)</p></li>
<li><p>Implementation vagaries. Bugs, or simply different implementation choices, can lead to different behaviors among the various Standard Libraries we need to deal with.</p></li>
<li><p>Inconsistent naming conventions. HotSpot and the C++ Standard use different naming conventions. The coexistence of those different conventions might appear jarring and reduce readability.</p></li>
</ul>
<p>There are a few exceptions to this rule.</p>
<ul>
<li><code>#include &lt;new&gt;</code> to use placement <code>new</code>, <code>std::nothrow</code>, and <code>std::nothrow_t</code>.</li>
<li><code>#include &lt;limits&gt;</code> to use <code>std::numeric_limits</code>.</li>
<li><code>#include &lt;type_traits&gt;</code>.</li>
<li><code>#include &lt;cstddef&gt;</code> to use <code>std::nullptr_t</code>.</li>
</ul>
<p>TODO: Rather than directly #including (permitted) Standard Library headers, use a convention of #including wrapper headers (in some location like hotspot/shared/stdcpp). This provides a single place for dealing with issues we might have for any given header, esp. platform-specific issues.</p>
<h3 id="type-deduction">Type Deduction</h3>
<p>Use type deduction only if it makes the code clearer or safer. Do not use it merely to avoid the inconvenience of writing an explicit type, unless that type is itself difficult to write. An example of the latter is a function template return type that depends on template parameters in a non-trivial way.</p>
<p>There are several contexts where types are deduced.</p>
<ul>
<li><p>Function argument deduction. This is always permitted, and indeed encouraged. It is nearly always better to allow the type of a function template argument to be deduced rather than explicitly specified.</p></li>
<li><p><code>auto</code> variable declarations (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf">n1984</a>)<br> For local variables, this can be used to make the code clearer by eliminating type information that is obvious or irrelevant. Excessive use can make code much harder to understand.</p></li>
<li><p>Function return type deduction (<a href="https://isocpp.org/files/papers/N3638.html">n3638</a>)<br> Only use if the function body has a very small number of <code>return</code> statements, and generally relatively little other code.</p></li>
<li><p>Generic lambdas. Lambdas are not (yet) permitted.</p></li>
<li><p>Lambda init captures. Lambdas are not (yet) permitted.</p></li>
</ul>
<h3 id="expression-sfinae">Expression SFINAE</h3>
<p><a href="https://en.cppreference.com/w/cpp/language/sfinae" title="Substitution Failure Is Not An Error">Substitution Failure Is Not An Error</a> (SFINAE) is a template metaprogramming technique that makes use of template parameter substitution failures to make compile-time decisions.</p>
<p>C++11 relaxed the rules for what constitutes a hard-error when attempting to substitute template parameters with template arguments, making most deduction errors be substitution errors; see (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html">n2634</a>). This makes <a href="https://en.cppreference.com/w/cpp/language/sfinae" title="Substitution Failure Is Not An Error">SFINAE</a> more powerful and easier to use. However, the implementation complexity for this change is significant, and this seems to be a place where obscure corner-case bugs in various compilers can be found. So while this feature can (and indeed should) be used (and would be difficult to avoid), caution should be used when pushing to extremes.</p>
<p>Here are a few closely related example bugs:<br> <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95468" class="uri">https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95468</a><br> <a href="https://developercommunity.visualstudio.com/content/problem/396562/sizeof-deduced-type-is-sometimes-not-a-constant-ex.html" class="uri">https://developercommunity.visualstudio.com/content/problem/396562/sizeof-deduced-type-is-sometimes-not-a-constant-ex.html</a></p>
<h3 id="enum">enum</h3>
<p>Where appropriate, <em>scoped-enums</em> should be used. (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf">n2347</a>)</p>
<p>Use of <em>unscoped-enums</em> is permitted, though ordinary constants may be preferable when the automatic initializer feature isn't used.</p>
<p>The underlying type (the <em>enum-base</em>) of an unscoped enum type should always be specified explicitly. When unspecified, the underlying type is dependent on the range of the enumerator values and the platform.</p>
<p>The underlying type of a <em>scoped-enum</em> should also be specified explicitly if conversions may be applied to values of that type.</p>
<p>Due to bugs in certain (very old) compilers, there is widespread use of enums and avoidance of in-class initialization of static integral constant members. Compilers having such bugs are no longer supported. Except where an enum is semantically appropriate, new code should use integral constants.</p>
<h3 id="thread_local">thread_local</h3>
<p>Do not use <code>thread_local</code> (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm">n2659</a>); instead, use the HotSpot macro <code>THREAD_LOCAL</code>. The initializer must be a constant expression.</p>
<p>As was discussed in the review for <a href="https://mail.openjdk.java.net/pipermail/hotspot-dev/2019-September/039487.html">JDK-8230877</a>, <code>thread_local</code> allows dynamic initialization and destruction semantics. However, that support requires a run-time penalty for references to non-function-local <code>thread_local</code> variables defined in a different translation unit, even if they don't need dynamic initialization. Dynamic initialization and destruction of namespace-scoped thread local variables also has the same ordering problems as for ordinary namespace-scoped variables.</p>
<h3 id="nullptr">nullptr</h3>
<p>Prefer <code>nullptr</code> (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf">n2431</a>) to <code>NULL</code>. Don't use (constexpr or literal) 0 for pointers.</p>
<p>For historical reasons there are widespread uses of both <code>NULL</code> and of integer 0 as a pointer value.</p>
<h3 id="atomic">&lt;atomic&gt;</h3>
<p>Do not use facilities provided by the <code>&lt;atomic&gt;</code> header (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html">n2427</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm">n2752</a>); instead, use the HotSpot <code>Atomic</code> class and related facilities.</p>
<p>Atomic operations in HotSpot code must have semantics which are consistent with those provided by the JDK's compilers for Java. There are platform-specific implementation choices that a C++ compiler might make or change that are outside the scope of the C++ Standard, and might differ from what the Java compilers implement.</p>
<p>In addition, HotSpot <code>Atomic</code> has a concept of &quot;conservative&quot; memory ordering, which may differ from (may be stronger than) sequentially consistent. There are algorithms in HotSpot that are believed to rely on that ordering.</p>
<h3 id="additional-permitted-features">Additional Permitted Features</h3>
<ul>
<li><p><code>constexpr</code> (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf">n2235</a>) (<a href="https://isocpp.org/files/papers/N3652.html">n3652</a>)</p></li>
<li><p>Sized deallocation (<a href="https://isocpp.org/files/papers/n3778.html">n3778</a>)</p></li>
<li><p>Variadic templates (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf">n2242</a>) (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf">n2555</a>)</p></li>
<li><p>Static assertions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html">n1720</a>)</p></li>
<li><p><code>decltype</code> (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf">n2343</a>) (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf">n3276</a>)</p></li>
<li><p>Right angle brackets (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html">n1757</a>)</p></li>
<li><p>Default template arguments for function templates (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226">CWG D226</a>)</p></li>
<li><p>Template aliases (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf">n2258</a>)</p></li>
<li><p>Delegating constructors (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf">n1986</a>)</p></li>
<li><p>Explicit conversion operators (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf">n2437</a>)</p></li>
<li><p>Standard Layout Types (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm">n2342</a>)</p></li>
<li><p>Defaulted and deleted functions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm">n2346</a>)</p></li>
<li><p>Dynamic initialization and destruction with concurrency (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm">n2660</a>)</p></li>
<li><p><code>final</code> virtual specifiers for classes and virtual functions (<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm">n2928</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm">n3206</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm">n3272</a>)</p></li>
<li><p>Local and unnamed types as template parameters (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm">n2657</a>)</p></li>
</ul>
<h3 id="excluded-features">Excluded Features</h3>
<ul>
<li>New string and character literals
<ul>
<li>New character types (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html">n2249</a>)</li>
<li>Unicode string literals (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm">n2442</a>)</li>
<li>Raw string literals (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm">n2442</a>)</li>
<li>Universal character name literals (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html">n2170</a>)</li>
</ul>
<p>HotSpot doesn't need any of the new character and string literal types.</p></li>
<li><p>User-defined literals (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf">n2765</a>) — User-defined literals should not be added casually, but only through a proposal to add a specific UDL.</p></li>
<li><p>Inline namespaces (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm">n2535</a>) — HotSpot makes very limited use of namespaces.</p></li>
<li><p><code>using namespace</code> directives. In particular, don't use <code>using namespace std;</code> to avoid needing to qualify Standard Library names.</p></li>
<li><p>Propagating exceptions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html">n2179</a>) — HotSpot does not permit the use of exceptions, so this feature isn't useful.</p></li>
<li><p>Avoid namespace-scoped variables with non-constexpr initialization. In particular, avoid variables with types requiring non-trivial initialization or destruction. Initialization order problems can be difficult to deal with and lead to surprises, as can destruction ordering. HotSpot doesn't generally try to cleanup on exit, and running destructors at exit can also lead to problems.</p></li>
<li><p><code>[[deprecated]]</code> attribute (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html">n3760</a>) — Not relevant in HotSpot code.</p></li>
<li><p>Avoid most operator overloading, preferring named functions. When operator overloading is used, ensure the semantics conform to the normal expected behavior of the operation.</p></li>
<li><p>Avoid most implicit conversion constructors and (implicit or explicit) conversion operators. (Note that conversion to <code>bool</code> isn't needed in HotSpot code because of the &quot;no implicit boolean&quot; guideline.)</p></li>
<li><p>Avoid covariant return types.</p></li>
<li><p>Avoid <code>goto</code> statements.</p></li>
</ul>
<h3 id="undecided-features">Undecided Features</h3>
<p>This list is incomplete; it serves to explicitly call out some features that have not yet been discussed.</p>
<ul>
<li><p><code>overrides</code> virtual specifiers for virtual functions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm">n3272</a>)</p></li>
<li><p>Trailing return type syntax for functions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm">n2541</a>)</p></li>
<li><p>Variable templates (<a href="https://isocpp.org/files/papers/N3651.pdf">n3651</a>)</p></li>
<li><p>Member initializers and aggregates (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html">n3653</a>)</p></li>
<li><p><code>[[noreturn]]</code> attribute (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf">n2761</a>)</p></li>
<li><p>Rvalue references and move semantics</p></li>
<li><p>Lambdas</p></li>
</ul>
</body>
</html>

810
doc/hotspot-style.md Normal file
View File

@@ -0,0 +1,810 @@
% HotSpot Coding Style
## Introduction
This is a collection of rules, guidelines, and suggestions for writing
HotSpot code. Following these will help new code fit in with existing
HotSpot code, making it easier to read and maintain. Failure to
follow these guidelines may lead to discussion during code reviews, if
not outright rejection of a change.
### Why Care About Style?
Some programmers seem to have lexers and even C preprocessors
installed directly behind their eyeballs. The rest of us require code
that is not only functionally correct but also easy to read. More than
that, since there is no one style for easy-to-read code, and since a
mashup of many styles is just as confusing as no style at all, it is
important for coders to be conscious of the many implicit stylistic
choices that historically have gone into the HotSpot code base.
Some of these guidelines are driven by the cross-platform requirements
for HotSpot. Shared code must work on a variety of platforms, and may
encounter deficiencies in some. Using platform conditionalization in
shared code is usually avoided, while shared code is strongly
preferred to multiple platform-dependent implementations, so some
language features may be recommended against.
Some of the guidelines here are relatively arbitrary choices among
equally plausible alternatives. The purpose of stating and enforcing
these rules is largely to provide a consistent look to the code. That
consistency makes the code more readable by avoiding non-functional
distractions from the interesting functionality.
When changing pre-existing code, it is reasonable to adjust it to
match these conventions. Exception: If the pre-existing code clearly
conforms locally to its own peculiar conventions, it is not worth
reformatting the whole thing. Also consider separating changes that
make extensive stylistic updates from those which make functional
changes.
### Counterexamples and Updates
Many of the guidelines mentioned here have (sometimes widespread)
counterexamples in the HotSpot code base. Finding a counterexample is
not sufficient justification for new code to follow the counterexample
as a precedent, since readers of your code will rightfully expect your
code to follow the greater bulk of precedents documented here.
Occasionally a guideline mentioned here may be just out of synch with
the actual HotSpot code base. If you find that a guideline is
consistently contradicted by a large number of counterexamples, please
bring it up for discussion and possible change. The architectural
rule, of course, is "When in Rome do as the Romans". Sometimes in the
suburbs of Rome the rules are a little different; these differences
can be pointed out here.
Proposed changes should be discussed on the
[HotSpot Developers](mailto:hotspot-dev@openjdk.java.net) mailing
list, and approved by
[rough consensus](https://en.wikipedia.org/wiki/Rough_consensus) of
the [HotSpot Group](https://openjdk.java.net/census#hotspot) Members.
The Group Lead determines whether consensus has been reached.
Changes are likely to be cautious and incremental, since HotSpot
coders have been using these guidelines for years.
## Structure and Formatting
### Factoring and Class Design
* Group related code together, so readers can concentrate on one
section of one file.
* Classes are the primary code structuring mechanism. Place related
functionality in a class, or a set of related classes. Use of either
namespaces or public non-member functions is rare in HotSpot code.
Static non-member functions are not uncommon.
* If a class `FooBar` is going to be used in more than one place, put it
a file named fooBar.hpp and fooBar.cpp. If the class is a sidekick
to a more important class `BazBat`, it can go in bazBat.hpp.
* Put a member function `FooBar::bang` into the same file that defined
`FooBar`, or its associated *.inline.hpp or *.cpp file.
* Use public accessor functions for member variables accessed
outside the class.
* Assign names to constant literals and use the names instead.
* Keep functions small, a screenful at most. Split out chunks of
logic into file-local classes or static functions if needed.
* Factor away nonessential complexity into local inline helper
functions and helper classes.
* Think clearly about internal invariants that apply to each class,
and document them in the form of asserts within member functions.
* Make simple, self-evident contracts for member functions. If you cannot
communicate a simple contract, redesign the class.
* Implement classes as if expecting rough usage by clients. Check for
incorrect usage of a class using `assert(...)`, `guarantee(...)`,
`ShouldNotReachHere()` and comments wherever needed. Performance is
almost never a reason to omit asserts.
* When possible, design as if for reusability. This forces a clear
design of the class's externals, and clean hiding of its internals.
* Initialize all variables and data structures to a known state. If a
class has a constructor, initialize it there.
* Do no optimization before its time. Prove the need to optimize.
* When you must defactor to optimize, preserve as much structure as
possible. If you must hand-inline some name, label the local copy with
the original name.
* If you need to use a hidden detail (e.g., a structure offset), name
it (as a constant or function) in the class that owns it.
* Don't use the Copy and Paste keys to replicate more than a couple
lines of code. Name what you must repeat.
* If a class needs a member function to change a user-visible attribute, the
change should be done with a "setter" accessor matched to the simple
"getter".
### Files
* All source files must have a globally unique basename. The build
system depends on this uniqueness.
* Do not put non-trivial function implementations in .hpp files. If
the implementation depends on other .hpp files, put it in a .cpp or
a .inline.hpp file.
* .inline.hpp files should only be included in .cpp or .inline.hpp
files.
* All .cpp files include precompiled.hpp as the first include line.
* precompiled.hpp is just a build time optimization, so don't rely on
it to resolve include problems.
* Keep the include lines alphabetically sorted.
* Put conditional inclusions (`#if ...`) at the end of the include list.
### Naming
* The length of a name may be correlated to the size of its scope. In
particular, short names (even single letter names) may be fine in a
small scope, but are usually inappropriate for larger scopes.
* Prefer whole words rather than abbreviations, unless the
abbreviation is more widely used than the long form in the code's
domain.
* Choose names consistently. Do not introduce spurious
variations. Abbreviate corresponding terms to a consistent length.
* Global names must be unique, to avoid [One Definition Rule][ODR] (ODR)
violations. A common prefixing scheme for related global names is
often used. (This is instead of using namespaces, which are mostly
avoided in HotSpot.)
* Don't give two names to the semantically same thing. But use
different names for semantically different things, even if they are
representationally the same. (So use meaningful `typedef` or template
alias names where appropriate.)
* When choosing names, avoid categorical nouns like "variable",
"field", "parameter", "value", and verbs like "compute", "get".
(`storeValue(int param)` is bad.)
* Type names and global names should use mixed-case with the first
letter of each word capitalized (`FooBar`).
* Embedded abbreviations in
otherwise mixed-case names are usually capitalized entirely rather
than being treated as a single word with only the initial letter
capitalized, e.g. "HTML" rather than "Html".
* Function and local variable names use lowercase with words separated
by a single underscore (`foo_bar`).
* Class data member names have a leading underscore, and use lowercase
with words separated by a single underscore (`_foo_bar`).
* Constant names may be upper-case or mixed-case, according to
historical necessity. (Note: There are many examples of constants
with lowercase names.)
* Constant names should follow an existing pattern, and must have a
distinct appearance from other names in related APIs.
* Class and type names should be noun phrases. Consider an "er" suffix
for a class that represents an action.
* Function names should be verb phrases that reflect changes of state
known to a class's user, or else noun phrases if they cause no change
of state visible to the class's user.
* Getter accessor names are noun phrases, with no "`get_`" noise
word. Boolean getters can also begin with "`is_`" or "`has_`". Member
function for reading data members usually have the same name as the
data member, exclusive of the leading underscore.
* Setter accessor names prepend "`set_`" to the getter name.
* Other member function names are verb phrases, as if commands to the receiver.
* Avoid leading underscores (as "`_oop`") except in cases required
above. (Names with leading underscores can cause portability
problems.)
### Commenting
* Clearly comment subtle fixes.
* Clearly comment tricky classes and functions.
* If you have to choose between commenting code and writing wiki
content, comment the code. Link from the wiki to the source file if
it makes sense.
* As a general rule don't add bug numbers to comments (they would soon
overwhelm the code). But if the bug report contains significant
information that can't reasonably be added as a comment, then refer to
the bug report.
* Personal names are discouraged in the source code, which is a team
product.
### Macros
* You can almost always use an inline function or class instead of a
macro. Use a macro only when you really need it.
* Templates may be preferable to multi-line macros. (There may be
subtle performance effects with templates on some platforms; revert
to macros if absolutely necessary.)
* `#ifdef`s should not be used to introduce platform-specific code
into shared code (except for `_LP64`). They must be used to manage
header files, in the pattern found at the top of every source
file. They should be used mainly for major build features, including
`PRODUCT`, `ASSERT`, `_LP64`, `INCLUDE_SERIALGC`, `COMPILER1`, etc.
* For build features such as `PRODUCT`, use `#ifdef PRODUCT` for
multiple-line inclusions or exclusions.
* For short inclusions or exclusions based on build features, use
macros like `PRODUCT_ONLY` and `NOT_PRODUCT`. But avoid using them
with multiple-line arguments, since debuggers do not handle that
well.
* Use `CATCH`, `THROW`, etc. for HotSpot-specific exception processing.
### Whitespace
* In general, don't change whitespace unless it improves readability
or consistency. Gratuitous whitespace changes will make integrations
and backports more difficult.
* Use One-True-Brace-Style. The opening brace for a function or class
is normally at the end of the line; it is sometimes moved to the
beginning of the next line for emphasis. Substatements are enclosed
in braces, even if there is only a single statement. Extremely simple
one-line statements may drop braces around a substatement.
* Indentation levels are two columns.
* There is no hard line length limit. That said, bear in mind that
excessively long lines can cause difficulties. Some people like to
have multiple side-by-side windows in their editors, and long lines
may force them to choose among unpleasant options. They can use wide
windows, reducing the number that can fit across the screen, and
wasting a lot of screen real estate because most lines are not that
long. Alternatively, they can have more windows across the screen,
with long lines wrapping (or worse, requiring scrolling to see in
their entirety), which is harder to read. Similar issues exist for
side-by-side code reviews.
* Tabs are not allowed in code. Set your editor accordingly.<br>
(Emacs: `(setq-default indent-tabs-mode nil)`.)
* Use good taste to break lines and align corresponding tokens on
adjacent lines.
* Use spaces around operators, especially comparisons and
assignments. (Relaxable for boolean expressions and high-precedence
operators in classic math-style formulas.)
* Put spaces on both sides of control flow keywords `if`, `else`,
`for`, `switch`, etc. Don't add spaces around the associated
_control_ expressions. Examples:
```
while (test_foo(args...)) { // Yes
while(test_foo(args...)) { // No, missing space after while
while ( test_foo(args...) ) { // No, excess spaces around control
```
* Use extra parentheses in expressions whenever operator precedence
seems doubtful. Always use parentheses in shift/mask expressions
(`<<`, `&`, `|`). Don't add whitespace immediately inside
parentheses.
* Use more spaces and blank lines between larger constructs, such as
classes or function definitions.
* If the surrounding code has any sort of vertical organization,
adjust new lines horizontally to be consistent with that
organization. (E.g., trailing backslashes on long macro definitions
often align.)
### Miscellaneous
* Use the [Resource Acquisition Is Initialization][RAII] (RAII)
design pattern to manage bracketed critical
sections. See class `ResourceMark` for an example.
* Avoid implicit conversions to `bool`.
* Use `bool` for boolean values.
* Do not use ints or pointers as (implicit) booleans with `&&`, `||`,
`if`, `while`. Instead, compare explicitly, i.e. `if (x != 0)` or
`if (ptr != nullptr)`, etc.
* Do not use declarations in _condition_ forms, i.e. don't use
`if (T v = value) { ... }`.
* Use functions from globalDefinitions.hpp and related files when
performing bitwise
operations on integers. Do not code directly as C operators, unless
they are extremely simple. (Examples: `align_up`, `is_power_of_2`,
`exact_log2`.)
* Use arrays with abstractions supporting range checks.
* Always enumerate all cases in a switch statement or provide a default
case. It is ok to have an empty default with comment.
## Use of C++ Features
HotSpot was originally written in a subset of the C++98/03 language.
More recently, support for C++14 is provided, though again,
HotSpot only uses a subset. (Backports to JDK versions lacking
support for more recent Standards must of course stick with the
original C++98/03 subset.)
This section describes that subset. Features from the C++98/03
language may be used unless explicitly excluded here. Features from
C++11 and C++14 may be explicitly permitted or explicitly excluded,
and discussed accordingly here. There is a third category, undecided
features, about which HotSpot developers have not yet reached a
consensus, or perhaps have not discussed at all. Use of these
features is also excluded.
(The use of some features may not be immediately obvious and may slip
in anyway, since the compiler will accept them. The code review
process is the main defense against this.)
Some features are discussed in their own subsection, typically to provide
more extensive discussion or rationale for limitations. Features that
don't have their own subsection are listed in omnibus feature sections
for permitted, excluded, and undecided features.
Lists of new features for C++11 and C++14, along with links to their
descriptions, can be found in the online documentation for some of the
compilers and libraries. The C++14 Standard is the definitive
description.
* [C++ Standards Support in GCC](https://gcc.gnu.org/projects/cxx-status.html)
* [C++ Support in Clang](https://clang.llvm.org/cxx_status.html)
* [Visual C++ Language Conformance](https://docs.microsoft.com/en-us/cpp/visual-cpp-language-conformance)
* [libstdc++ Status](https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html)
* [libc++ Status](https://libcxx.llvm.org/cxx1y_status.html)
As a rule of thumb, permitting features which simplify writing code
and, especially, reading code, is encouraged.
Similar discussions for some other projects:
* [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html) &mdash;
Currently (2020) targeting C++17.
* [C++11 and C++14 use in Chromium](https://chromium-cpp.appspot.com) &mdash;
Categorizes features as allowed, banned, or to be discussed.
* [llvm Coding Standards](https://llvm.org/docs/CodingStandards.html) &mdash;
Currently (2020) targeting C++14.
* [Using C++ in Mozilla code](https://firefox-source-docs.mozilla.org/code-quality/coding-style/using_cxx_in_firefox_code.html) &mdash;
C++17 support is required for recent versions (2020).
### Error Handling
Do not use exceptions. Exceptions are disabled by the build configuration
for some platforms.
Rationale: There is significant concern over the performance cost of
exceptions and their usage model and implications for maintainable code.
That's not just a matter of history that has been fixed; there remain
questions and problems even today (2019). See, for example, [Zero cost
deterministic
exceptions](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0709r0.pdf).
Because of this, HotSpot has always used a build configuration that disables
exceptions where that is available. As a result, HotSpot code uses error
handling mechanisms such as two-phase construction, factory functions,
returning error codes, and immediate termination. Even if the cost of
exceptions were not a concern, the existing body of code was not written with
exception safety in mind. Making HotSpot exception safe would be a very large
undertaking.
In addition to the usual alternatives to exceptions, HotSpot provides its
own exception mechanism. This is based on a set of macros defined in
utilities/exceptions.hpp.
### RTTI (Runtime Type Information)
Do not use [Runtime Type Information][RTTI] (RTTI).
[RTTI][] is disabled by the build configuration for some
platforms. Among other things, this means `dynamic_cast` cannot be used.
Rationale: Other than to implement exceptions (which HotSpot doesn't use),
most potential uses of [RTTI][] are better done via virtual functions. Some of
the remainder can be replaced by bespoke mechanisms. The cost of the
additional runtime data structures needed to support [RTTI][] are deemed not
worthwhile, given the alternatives.
### Memory Allocation
Do not use the standard global allocation and deallocation functions
(operator new and related functions). Use of these functions by HotSpot
code is disabled for some platforms.
Rationale: HotSpot often uses "resource" or "arena" allocation. Even
where heap allocation is used, the standard global functions are
avoided in favor of wrappers around malloc and free that support the
VM's Native Memory Tracking (NMT) feature.
Native memory allocation failures are often treated as non-recoverable.
The place where "out of memory" is (first) detected may be an innocent
bystander, unrelated to the actual culprit.
### Class Inheritance
Use public single inheritance.
Prefer composition rather than non-public inheritance.
Restrict inheritance to the "is-a" case; use composition rather than
non-is-a related inheritance.
Avoid multiple inheritance. Never use virtual inheritance.
### Namespaces
Avoid using namespaces. HotSpot code normally uses "all static"
classes rather than namespaces for grouping. An "all static" class is
not instantiable, has only static members, and is normally derived
(possibly indirectly) from the helper class `AllStatic`.
Benefits of using such classes include:
* Provides access control for members, which is unavailable with
namespaces.
* Avoids [Argument Dependent Lookup][ADL] (ADL).
* Closed for additional members. Namespaces allow names to be added in
multiple contexts, making it harder to see the complete API.
Namespaces should be used only in cases where one of those "benefits"
is actually a hindrance.
In particular, don't use anonymous namespaces. They seem like they should
be useful, and indeed have some real benefits for naming and generated code
size on some platforms. Unfortunately, debuggers don't seem to like them at
all.
<https://groups.google.com/forum/#!topic/mozilla.dev.platform/KsaG3lEEaRM><br>
Suggests Visual Studio debugger might not be able to refer to
anonymous namespace symbols, so can't set breakpoints in them.
Though the discussion seems to go back and forth on that.
<https://firefox-source-docs.mozilla.org/code-quality/coding-style/coding_style_cpp.html><br>
Search for "Anonymous namespaces"
Suggests preferring "static" to anonymous namespaces where applicable,
because of poor debugger support for anonymous namespaces.
<https://sourceware.org/bugzilla/show_bug.cgi?id=16874><br>
Bug for similar gdb problems.
### C++ Standard Library
Avoid using the C++ Standard Library.
Historically, HotSpot has mostly avoided use of the Standard
Library.
(It used to be impossible to use most of it in shared code,
because the build configuration for Solaris with Solaris Studio made
all but a couple of pieces inaccessible. Support for header-only
parts was added in mid-2017. Support for Solaris was removed
in 2020.)
Some reasons for this include
* Exceptions. Perhaps the largest core issue with adopting the use of
Standard Library facilities is exceptions. HotSpot does not use
exceptions and, for platforms which allow doing so, builds with them
turned off. Many Standard Library facilities implicitly or explicitly
use exceptions.
* `assert`. An issue that is quickly encountered is the `assert` macro name
collision ([JDK-8007770](https://bugs.openjdk.java.net/browse/JDK-8007770)).
Some mechanism for addressing this would be needed before much of the
Standard Library could be used. (Not all Standard Library implementations
use assert in header files, but some do.)
* Memory allocation. HotSpot requires explicit control over where
allocations occur. The C++98/03 `std::allocator` class is too limited
to support our usage. (Changes in more recent Standards may remove
this limitation.)
* Implementation vagaries. Bugs, or simply different implementation choices,
can lead to different behaviors among the various Standard Libraries we need
to deal with.
* Inconsistent naming conventions. HotSpot and the C++ Standard use
different naming conventions. The coexistence of those different conventions
might appear jarring and reduce readability.
There are a few exceptions to this rule.
* `#include <new>` to use placement `new`, `std::nothrow`, and `std::nothrow_t`.
* `#include <limits>` to use `std::numeric_limits`.
* `#include <type_traits>`.
* `#include <cstddef>` to use `std::nullptr_t`.
TODO: Rather than directly \#including (permitted) Standard Library
headers, use a convention of \#including wrapper headers (in some
location like hotspot/shared/stdcpp). This provides a single place
for dealing with issues we might have for any given header, esp.
platform-specific issues.
### Type Deduction
Use type deduction only if it makes the code clearer or safer. Do not
use it merely to avoid the inconvenience of writing an explicit type,
unless that type is itself difficult to write. An example of the
latter is a function template return type that depends on template
parameters in a non-trivial way.
There are several contexts where types are deduced.
* Function argument deduction. This is always permitted, and indeed
encouraged. It is nearly always better to allow the type of a
function template argument to be deduced rather than explicitly
specified.
* `auto` variable declarations
([n1984](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf))<br>
For local variables, this can be used to make the code clearer by
eliminating type information that is obvious or irrelevant. Excessive
use can make code much harder to understand.
* Function return type deduction
([n3638](https://isocpp.org/files/papers/N3638.html))<br>
Only use if the function body has a very small number of `return`
statements, and generally relatively little other code.
* Generic lambdas. Lambdas are not (yet) permitted.
* Lambda init captures. Lambdas are not (yet) permitted.
### Expression SFINAE
[Substitution Failure Is Not An Error][SFINAE] (SFINAE)
is a template metaprogramming technique that makes use of
template parameter substitution failures to make compile-time decisions.
C++11 relaxed the rules for what constitutes a hard-error when
attempting to substitute template parameters with template arguments,
making most deduction errors be substitution errors; see
([n2634](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html)).
This makes [SFINAE][] more powerful and easier to use. However, the
implementation complexity for this change is significant, and this
seems to be a place where obscure corner-case bugs in various
compilers can be found. So while this feature can (and indeed should)
be used (and would be difficult to avoid), caution should be used when
pushing to extremes.
Here are a few closely related example bugs:<br>
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95468><br>
<https://developercommunity.visualstudio.com/content/problem/396562/sizeof-deduced-type-is-sometimes-not-a-constant-ex.html>
### enum
Where appropriate, _scoped-enums_ should be used.
([n2347](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf))
Use of _unscoped-enums_ is permitted, though ordinary constants may be
preferable when the automatic initializer feature isn't used.
The underlying type (the _enum-base_) of an unscoped enum type should
always be specified explicitly. When unspecified, the underlying type
is dependent on the range of the enumerator values and the platform.
The underlying type of a _scoped-enum_ should also be specified
explicitly if conversions may be applied to values of that type.
Due to bugs in certain (very old) compilers, there is widespread use
of enums and avoidance of in-class initialization of static integral
constant members. Compilers having such bugs are no longer supported.
Except where an enum is semantically appropriate, new code should use
integral constants.
### thread_local
Do not use `thread_local`
([n2659](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm));
instead, use the HotSpot macro `THREAD_LOCAL`. The initializer must
be a constant expression.
As was discussed in the review for
[JDK-8230877](https://mail.openjdk.java.net/pipermail/hotspot-dev/2019-September/039487.html),
`thread_local` allows dynamic initialization and destruction
semantics. However, that support requires a run-time penalty for
references to non-function-local `thread_local` variables defined in a
different translation unit, even if they don't need dynamic
initialization. Dynamic initialization and destruction of
namespace-scoped thread local variables also has the same ordering
problems as for ordinary namespace-scoped variables.
### nullptr
Prefer `nullptr`
([n2431](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf))
to `NULL`. Don't use (constexpr or literal) 0 for pointers.
For historical reasons there are widespread uses of both `NULL` and of
integer 0 as a pointer value.
### &lt;atomic&gt;
Do not use facilities provided by the `<atomic>` header
([n2427](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html)),
([n2752](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm));
instead, use the HotSpot `Atomic` class and related facilities.
Atomic operations in HotSpot code must have semantics which are
consistent with those provided by the JDK's compilers for Java. There
are platform-specific implementation choices that a C++ compiler might
make or change that are outside the scope of the C++ Standard, and
might differ from what the Java compilers implement.
In addition, HotSpot `Atomic` has a concept of "conservative" memory
ordering, which may differ from (may be stronger than) sequentially
consistent. There are algorithms in HotSpot that are believed to rely
on that ordering.
### Additional Permitted Features
* `constexpr`
([n2235](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf))
([n3652](https://isocpp.org/files/papers/N3652.html))
* Sized deallocation
([n3778](https://isocpp.org/files/papers/n3778.html))
* Variadic templates
([n2242](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf))
([n2555](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf))
* Static assertions
([n1720](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html))
* `decltype`
([n2343](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf))
([n3276](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf))
* Right angle brackets
([n1757](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html))
* Default template arguments for function templates
([CWG D226](http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226))
* Template aliases
([n2258](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf))
* Delegating constructors
([n1986](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf))
* Explicit conversion operators
([n2437](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf))
* Standard Layout Types
([n2342](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm))
* Defaulted and deleted functions
([n2346](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm))
* Dynamic initialization and destruction with concurrency
([n2660](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm))
* `final` virtual specifiers for classes and virtual functions
([n2928](http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm)),
([n3206](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm)),
([n3272](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm))
* Local and unnamed types as template parameters
([n2657](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm))
### Excluded Features
* New string and character literals
* New character types
([n2249](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html))
* Unicode string literals
([n2442](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm))
* Raw string literals
([n2442](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm))
* Universal character name literals
([n2170](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html))
HotSpot doesn't need any of the new character and string literal
types.
* User-defined literals
([n2765](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf)) &mdash;
User-defined literals should not be added casually, but only
through a proposal to add a specific UDL.
* Inline namespaces
([n2535](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm)) &mdash;
HotSpot makes very limited use of namespaces.
* `using namespace` directives. In particular, don't use `using
namespace std;` to avoid needing to qualify Standard Library names.
* Propagating exceptions
([n2179](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html)) &mdash;
HotSpot does not permit the use of exceptions, so this feature isn't useful.
* Avoid namespace-scoped variables with non-constexpr initialization.
In particular, avoid variables with types requiring non-trivial
initialization or destruction. Initialization order problems can be
difficult to deal with and lead to surprises, as can destruction
ordering. HotSpot doesn't generally try to cleanup on exit, and
running destructors at exit can also lead to problems.
* `[[deprecated]]` attribute
([n3760](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html)) &mdash;
Not relevant in HotSpot code.
* Avoid most operator overloading, preferring named functions. When
operator overloading is used, ensure the semantics conform to the
normal expected behavior of the operation.
* Avoid most implicit conversion constructors and (implicit or explicit)
conversion operators. (Note that conversion to `bool` isn't needed
in HotSpot code because of the "no implicit boolean" guideline.)
* Avoid covariant return types.
* Avoid `goto` statements.
### Undecided Features
This list is incomplete; it serves to explicitly call out some
features that have not yet been discussed.
* `overrides` virtual specifiers for virtual functions
([n3272](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm))
* Trailing return type syntax for functions
([n2541](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm))
* Variable templates
([n3651](https://isocpp.org/files/papers/N3651.pdf))
* Member initializers and aggregates
([n3653](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html))
* `[[noreturn]]` attribute
([n2761](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf))
* Rvalue references and move semantics
* Lambdas
[ADL]: https://en.cppreference.com/w/cpp/language/adl
"Argument Dependent Lookup"
[ODR]: https://en.cppreference.com/w/cpp/language/definition
"One Definition Rule"
[RAII]: https://en.cppreference.com/w/cpp/language/raii
"Resource Acquisition Is Initialization"
[RTTI]: https://en.wikipedia.org/wiki/Run-time_type_information
"Runtime Type Information"
[SFINAE]: https://en.cppreference.com/w/cpp/language/sfinae
"Substitution Failure Is Not An Error"

View File

@@ -1,631 +0,0 @@
This document describes system properties that are used for internal
debugging and instrumentation purposes, along with the system loggers,
which are used for the same thing.
This document is intended as a developer resource, and it is not
needed as Nashorn documentation for normal usage. Flags and system
properties described herein are subject to change without notice.
=====================================
1. System properties used internally
=====================================
This documentation of the system property flags assume that the
default value of the flag is false, unless otherwise specified.
SYSTEM PROPERTY: -Dnashorn.args=<string>
This property takes as its value a space separated list of Nashorn
command line options that should be passed to Nashorn. This might be
useful in environments where it is hard to tell how a nashorn.jar is
launched.
Example:
> java -Dnashorn.args="--lazy-complation --log=compiler" large-java-app-with-nashorn.jar
> ant -Dnashorn.args="--log=codegen" antjob
SYSTEM PROPERTY: -Dnashorn.args.prepend=<string>
This property behaves like nashorn.args, but adds the given arguments
before the existing ones instead of after them. Later arguments will
overwrite earlier ones, so this is useful for setting default arguments
that can be overwritten.
SYSTEM PROPERTY: -Dnashorn.unstable.relink.threshold=x
NOTE: This property is deprecated in favor of the
"--unstable-relink-threshold" command line option. It controls how many
call site misses are allowed before a callsite is relinked with "apply"
semantics to never change again. In the case of megamorphic callsites,
this is necessary, or the program would spend all its time swapping out
callsite targets. When neither the system property nor the command line
option are specified, defaults to 8, or 16 with optimistic types turned
on.
SYSTEM PROPERTY: -Dnashorn.compiler.splitter.threshold=x
This will change the node weight that requires a subgraph of the IR to
be split into several classes in order not to run out of bytecode space.
The default value is 0x8000 (32768).
SYSTEM PROPERTY: -Dnashorn.serialize.compression=<x>
This property sets the compression level used when deflating serialized
AST structures of anonymous split functions. Valid values range from 0 to 9,
the default value is 4. Higher values will reduce memory size of serialized
AST but increase CPU usage required for compression.
SYSTEM PROPERTY: -Dnashorn.codegen.debug.trace=<x>
See the description of the codegen logger below.
SYSTEM PROPERTY: -Dnashorn.fields.objects, -Dnashorn.fields.dual
When the nashorn.fields.objects property is true, Nashorn will always
use object fields for AccessorProperties, requiring boxing for all
primitive property values. When nashorn.fields.dual is set, Nashorn
will always use dual long/object fields, which allows primitives to be
stored without boxing. When neither system property is set, Nashorn
chooses a setting depending on the optimistic types setting (dual
fields when optimistic types are enabled, object-only fields otherwise).
With dual fields, Nashorn uses long fields to store primitive values.
Ints are represented as the 32 low bits of the long fields. Doubles
are represented as the doubleToLongBits of their value. This way a
single field can be used for all primitive types. Packing and
unpacking doubles to their bit representation is intrinsified by
the JVM and extremely fast.
In the future, this might complement or be replaced by experimental
feature sun.misc.TaggedArray, which has been discussed on the mlvm
mailing list. TaggedArrays are basically a way to share data space
between primitives and references, and have the GC understand this.
SYSTEM PROPERTY: -Dnashorn.compiler.symbol.trace=[<x>[,*]],
-Dnashorn.compiler.symbol.stacktrace=[<x>[,*]]
When this property is set, creation and manipulation of any symbol
named "x" will show information about when the compiler changes its
type assumption, bytecode local variable slot assignment and other
data. This is useful if, for example, a symbol shows up as an Object,
when you believe it should be a primitive. Usually there is an
explanation for this, for example that it exists in the global scope
and type analysis has to be more conservative.
Several symbols names to watch can be specified by comma separation.
If no variable name is specified (and no equals sign), all symbols
will be watched
By using "stacktrace" instead of or together with "trace", stack
traces will be displayed upon symbol changes according to the same
semantics.
SYSTEM PROPERTY: -Dnashorn.lexer.xmlliterals
If this property it set, it means that the Lexer should attempt to
parse XML literals, which would otherwise generate syntax
errors. Warning: there are currently no unit tests for this
functionality.
XML literals, when this is enabled, end up as standard LiteralNodes in
the IR.
SYSTEM_PROPERTY: -Dnashorn.debug
If this property is set to true, Nashorn runs in Debug mode. Debug
mode is slightly slower, as for example statistics counters are enabled
during the run. Debug mode makes available a NativeDebug instance
called "Debug" in the global space that can be used to print property
maps and layout for script objects, as well as a "dumpCounters" method
that will print the current values of the previously mentioned stats
counters.
These functions currently exists for Debug:
"map" - print(Debug.map(x)) will dump the PropertyMap for object x to
stdout (currently there also exist functions called "embedX", where X
is a value from 0 to 3, that will dump the contents of the embed pool
for the first spill properties in any script object and "spill", that
will dump the contents of the growing spill pool of spill properties
in any script object. This is of course subject to change without
notice, should we change the script object layout.
"methodHandle" - this method returns the method handle that is used
for invoking a particular script function.
"identical" - this method compares two script objects for reference
equality. It is a == Java comparison
"equals" - Returns true if two objects are either referentially
identical or equal as defined by java.lang.Object.equals.
"dumpCounters" - will dump the debug counters' current values to
stdout.
Currently we count number of ScriptObjects in the system, number of
Scope objects in the system, number of ScriptObject listeners added,
removed and dead (without references).
We also count number of ScriptFunctions, ScriptFunction invocations
and ScriptFunction allocations.
Furthermore we count PropertyMap statistics: how many property maps
exist, how many times were property maps cloned, how many times did
the property map history cache hit, prevent new allocations, how many
prototype invalidations were done, how many time the property map
proto cache hit.
Finally we count callsite misses on a per callsite bases, which occur
when a callsite has to be relinked, due to a previous assumption of
object layout being invalidated.
"getContext" - return the current Nashorn context.
"equalWithoutType" - Returns true if if the two objects are both
property maps, and they have identical properties in the same order,
but allows the properties to differ in their types.
"diffPropertyMaps" Returns a diagnostic string representing the difference
of two property maps.
"getClass" - Returns the Java class of an object, or undefined if null.
"toJavaString" - Returns the Java toString representation of an object.
"toIdentString" - Returns a string representation of an object consisting
of its java class name and hash code.
"getListenerCount" - Return the number of property listeners for a
script object.
"getEventQueueCapacity" - Get the capacity of the event queue.
"setEventQueueCapacity" - Set the event queue capacity.
"addRuntimeEvent" - Add a runtime event to the runtime event queue.
The queue has a fixed size (see -Dnashorn.runtime.event.queue.size)
and the oldest entry will be thrown out of the queue is about to overflow.
"expandEventQueueCapacity" - Expands the event queue capacity,
or truncates if capacity is lower than current capacity. Then only
the newest entries are kept.
"clearRuntimeEvents" - Clear the runtime event queue.
"removeRuntimeEvent" - Remove a specific runtime event from the event queue.
"getRuntimeEvents" - Return all runtime events in the queue as an array.
"getLastRuntimeEvent" - Return the last runtime event in the queue.
SYSTEM PROPERTY: -Dnashorn.methodhandles.debug.stacktrace
This enhances methodhandles logging (see below) to also dump the
stack trace for every instrumented method handle operation.
Warning: This is enormously verbose, but provides a pretty
decent "grep:able" picture of where the calls are coming from.
SYSTEM PROPERTY: -Dnashorn.cce
Setting this system property causes the Nashorn linker to rely on
ClassCastExceptions for triggering a callsite relink. If not set, the linker
will add an explicit instanceof guard.
SYSTEM PROPERTY: -Dnashorn.spill.threshold=<x>
This property sets the number of fields in an object from which to use
generic array based spill storage instead of Java fields. The default value
is 256.
SYSTEM PROPERTY: -Dnashorn.tcs.miss.samplePercent=<x>
When running with the trace callsite option (-tcs), Nashorn will count
and instrument any callsite misses that require relinking. As the
number of relinks is large and usually produces a lot of output, this
system property can be used to constrain the percentage of misses that
should be logged. Typically this is set to 1 or 5 (percent). 1% is the
default value.
SYSTEM PROPERTY: -Dnashorn.persistent.code.cache
This property can be used to set the directory where Nashorn stores
serialized script classes generated with the -pcc/--persistent-code-cache
option. The default directory name is "nashorn_code_cache".
SYSTEM PROPERTY: -Dnashorn.typeInfo.maxFiles
Maximum number of files to store in the type info cache. The type info cache
is used to cache type data of JavaScript functions when running with
optimistic types (-ot/--optimistic-types). There is one file per JavaScript
function in the cache.
The default value is 0 which means the feature is disabled. Setting this
to something like 20000 is probably good enough for most applications and
will usually cap the cache directory to about 80MB presuming a 4kB
filesystem allocation unit. Set this to "unlimited" to run without limit.
If the value is not 0 or "unlimited", Nashorn will spawn a cleanup thread
that makes sure the number of files in the cache does not exceed the given
value by deleting the least recently modified files.
SYSTEM PROPERTY: -Dnashorn.typeInfo.cacheDir
This property can be used to set the directory where Nashorn stores the
type info cache when -Dnashorn.typeInfo.maxFiles is set to a nonzero
value. The default location is platform specific. On Windows, it is
"${java.io.tmpdir}\com.oracle.java.NashornTypeInfo". On Linux and
Solaris it is "~/.cache/com.oracle.java.NashornTypeInfo". On Mac OS X,
it is "~/Library/Caches/com.oracle.java.NashornTypeInfo".
SYSTEM PROPERTY: -Dnashorn.typeInfo.cleanupDelaySeconds=<value>
This sets the delay between cleanups of the typeInfo cache, in seconds.
The default delay is 20 seconds.
SYSTEM PROPERTY: -Dnashorn.profilefile=<filename>
When running with the profile callsite options (-pcs), Nashorn will
dump profiling data for all callsites to stderr as a shutdown hook. To
instead redirect this to a file, specify the path to the file using
this system property.
SYSTEM_PROPERTY: -Dnashorn.regexp.impl=[jdk|joni]
This property defines the regular expression engine to be used by
Nashorn. Set this flag to "jdk" to get an implementation based on the
JDK's java.util.regex package. Set this property to "joni" to install
an implementation based on Joni, the regular expression engine used by
the JRuby project. The default value for this flag is "joni"
SYSTEM PROPERTY: -Dnashorn.runtime.event.queue.size=<value>
Nashorn provides a fixed sized runtime event queue for debugging purposes.
See -Dnashorn.debug for methods to access the event queue.
The default value is 1024.
SYSTEM PROPERTY: -Dnashorn.anonymous.classes.threshold=<value>
Nashorn can use anonymous classes for loading compiled scripts, depending
on the --anonymous-classes=[auto|true|false] option. Anonymous classes load
faster, but the loaded classes get less optimization applied to them and
therefore usually run slower. In the default "auto" setting, scripts are
loaded as anonymous classes if the script size does not exceed 512 bytes.
The above system property allows to set this threshold to a user defined
value.
===============
2. The loggers.
===============
It is very simple to create your own logger. Use the DebugLogger class
and give the subsystem name as a constructor argument.
The Nashorn loggers can be used to print per-module or per-subsystem
debug information with different levels of verbosity. The loggers for
a given subsystem are available are enabled by using
--log=<systemname>[:<level>]
on the command line.
Here <systemname> identifies the name of the subsystem to be logged
and the optional colon and level argument is a standard
java.util.logging.Level name (severe, warning, info, config, fine,
finer, finest). If the level is left out for a particular subsystem,
it defaults to "info". Any log message logged as the level or a level
that is more important will be output to stderr by the logger.
Several loggers can be enabled by a single command line option, by
putting a comma after each subsystem/level tuple (or each subsystem if
level is unspecified). The --log option can also be given multiple
times on the same command line, with the same effect.
For example: --log=codegen,fields:finest is equivalent to
--log=codegen:info --log=fields:finest
The following is an incomplete list of subsystems that currently
support logging. Look for classes implementing
jdk.nashorn.internal.runtime.logging.Loggable for more loggers.
* compiler
The compiler is in charge of turning source code and function nodes
into byte code, and installs the classes into a class loader
controlled from the Context. Log messages are, for example, about
things like new compile units being allocated. The compiler has global
settings that all the tiers of codegen (e.g. Lower and CodeGenerator)
use.s
* recompile
This logger shows information about recompilation of scripts and
functions at runtime. Recompilation may happen because a function
was called with different parameter types, or because an optimistic
assumption failed while executing a function with -ot/--optimistic-types.
* codegen
The code generator is the emitter stage of the code pipeline, and
turns the lowest tier of a FunctionNode into bytecode. Codegen logging
shows byte codes as they are being emitted, line number information
and jumps. It also shows the contents of the bytecode stack prior to
each instruction being emitted. This is a good debugging aid. For
example:
[codegen] #41 line:2 (f)_afc824e
[codegen] #42 load symbol x slot=2
[codegen] #43 {1:O} load int 0
[codegen] #44 {2:I O} dynamic_runtime_call GT:ZOI_I args=2 returnType=boolean
[codegen] #45 signature (Ljava/lang/Object;I)Z
[codegen] #46 {1:Z} ifeq ternary_false_5402fe28
[codegen] #47 load symbol x slot=2
[codegen] #48 {1:O} goto ternary_exit_107c1f2f
[codegen] #49 ternary_false_5402fe28
[codegen] #50 load symbol x slot=2
[codegen] #51 {1:O} convert object -> double
[codegen] #52 {1:D} neg
[codegen] #53 {1:D} convert double -> object
[codegen] #54 {1:O} ternary_exit_107c1f2f
[codegen] #55 {1:O} return object
shows a ternary node being generated for the sequence "return x > 0 ?
x : -x"
The first number on the log line is a unique monotonically increasing
emission id per bytecode. There is no guarantee this is the same id
between runs. depending on non deterministic code
execution/compilation, but for small applications it usually is. If
the system variable -Dnashorn.codegen.debug.trace=<x> is set, where x
is a bytecode emission id, a stack trace will be shown as the
particular bytecode is about to be emitted. This can be a quick way to
determine where it comes from without attaching the debugger. "Who
generated that neg?"
The --log=codegen option is equivalent to setting the system variable
"nashorn.codegen.debug" to true.
* fold
Shows constant folding taking place before lowering
* lower
This is the first lowering pass.
Lower is a code generation pass that turns high level IR nodes into
lower level one, for example substituting comparisons to RuntimeNodes
and inlining finally blocks.
Lower is also responsible for determining control flow information
like end points.
* symbols
The symbols logger tracks the assignment os symbols to identifiers.
* scopedepths
This logs the calculation of scope depths for non-local symbols.
* fields
The --log=fields option (at info level) is equivalent to setting the
system variable "nashorn.fields.debug" to true. At the info level it
will only show info about type assumptions that were invalidated. If
the level is set to finest, it will also trace every AccessorProperty
getter and setter in the program, show arguments, return values
etc. It will also show the internal representation of respective field
(Object in the normal case, unless running with the dual field
representation)
* time
This enables timers for various phases of script compilation. The timers
will be dumped when the Nashorn process exits. We see a percentage value
of how much time was spent not executing bytecode (i.e. compilation and
internal tasks) at the end of the report.
A finer level than "info" will show individual compilation timings as they
happen.
Here is an example:
[time] Accumulated complation phase Timings:
[time]
[time] 'JavaScript Parsing' 1076 ms
[time] 'Constant Folding' 159 ms
[time] 'Control Flow Lowering' 303 ms
[time] 'Program Point Calculation' 282 ms
[time] 'Builtin Replacement' 71 ms
[time] 'Code Splitting' 670 ms
[time] 'Symbol Assignment' 474 ms
[time] 'Scope Depth Computation' 249 ms
[time] 'Optimistic Type Assignment' 186 ms
[time] 'Local Variable Type Calculation' 526 ms
[time] 'Bytecode Generation' 5177 ms
[time] 'Class Installation' 1854 ms
[time]
[time] Total runtime: 11994 ms (Non-runtime: 11027 ms [91%])
* methodhandles
If this logger is enabled, each MethodHandle related call that uses
the java.lang.invoke package gets its MethodHandle intercepted and an
instrumentation printout of arguments and return value appended to
it. This shows exactly which method handles are executed and from
where. (Also MethodTypes and SwitchPoints).
* classcache
This logger shows information about reusing code classes using the
in-memory class cache. Nashorn will try to avoid compilation of
scripts by using existing classes. This can significantly improve
performance when repeatedly evaluating the same script.
=======================
3. Undocumented options
=======================
Here follows a short description of undocumented options for Nashorn.
To see a list of all undocumented options, use the (undocumented) flag
"-xhelp".
i.e. jjs -xhelp or java -jar nashorn.jar -xhelp
Undocumented options are not guaranteed to work, run correctly or be
bug free. They are experimental and for internal or debugging use.
They are also subject to change without notice.
In practice, though, all options below not explicitly documented as
EXPERIMENTAL can be relied upon, for example --dump-on-error is useful
for any JavaScript/Nashorn developer, but there is no guarantee.
A short summary follows:
-D (-Dname=value. Set a system property. This option can be repeated.)
-ccs, --class-cache-size (Size of the Class cache size per global scope.)
-cp, -classpath (-cp path. Specify where to find user class files.)
-co, --compile-only (Compile without running.)
param: [true|false] default: false
-d, --dump-debug-dir (specify a destination directory to dump class files.)
param: <path>
--debug-lines (Generate line number table in .class files.)
param: [true|false] default: true
--debug-locals (Generate local variable table in .class files.)
param: [true|false] default: false
-doe, -dump-on-error (Dump a stack trace on errors.)
param: [true|false] default: false
--early-lvalue-error (invalid lvalue expressions should be reported as early errors.)
param: [true|false] default: true
--empty-statements (Preserve empty statements in AST.)
param: [true|false] default: false
-fv, -fullversion (Print full version info of Nashorn.)
param: [true|false] default: false
--function-statement-error (Report an error when function declaration is used as a statement.)
param: [true|false] default: false
--function-statement-warning (Warn when function declaration is used as a statement.)
param: [true|false] default: false
-fx (Launch script as an fx application.)
param: [true|false] default: false
--global-per-engine (Use single Global instance per script engine instance.)
param: [true|false] default: false
-h, -help (Print help for command line flags.)
param: [true|false] default: false
--loader-per-compile (Create a new class loader per compile.)
param: [true|false] default: true
-l, --locale (Set Locale for script execution.)
param: <locale> default: en-US
--log (Enable logging of a given level for a given number of sub systems.
[for example: --log=fields:finest,codegen:info].)
param: <module:level>,*
-nj, --no-java (Disable Java support.)
param: [true|false] default: false
-nse, --no-syntax-extensions (Disallow non-standard syntax extensions.)
param: [true|false] default: false
-nta, --no-typed-arrays (Disable typed arrays support.)
param: [true|false] default: false
--parse-only (Parse without compiling.)
param: [true|false] default: false
--print-ast (Print abstract syntax tree.)
param: [true|false] default: false
-pc, --print-code (Print generated bytecode. If a directory is specified, nothing will
be dumped to stderr. Also, in that case, .dot files will be generated
for all functions or for the function with the specified name only.)
param: [dir:<output-dir>,function:<name>]
--print-lower-ast (Print lowered abstract syntax tree.)
param: [true|false] default: false
-plp, --print-lower-parse (Print the parse tree after lowering.)
param: [true|false] default: false
--print-no-newline (Print function will not print new line char.)
param: [true|false] default: false
-pp, --print-parse (Print the parse tree.)
param: [true|false] default: false
--print-symbols (Print the symbol table.)
param: [true|false] default: false
-pcs, --profile-callsites (Dump callsite profile data.)
param: [true|false] default: false
-scripting (Enable scripting features.)
param: [true|false] default: false
--stderr (Redirect stderr to a filename or to another tty, e.g. stdout.)
param: <output console>
--stdout (Redirect stdout to a filename or to another tty, e.g. stderr.)
param: <output console>
-strict (Run scripts in strict mode.)
param: [true|false] default: false
-t, -timezone (Set timezone for script execution.)
param: <timezone> default: Europe/Stockholm
-tcs, --trace-callsites (Enable callsite trace mode. Options are: miss [trace callsite misses]
enterexit [trace callsite enter/exit], objects [print object properties].)
param: [=[option,]*]
-urt, --unstable-relink-threshold (Number of times a dynamic call site has to be relinked before it
is considered unstable, when the runtime will try to link it as
if it is megamorphic.)
--verify-code (Verify byte code before running.)
param: [true|false] default: false
-v, -version (Print version info of Nashorn.)
param: [true|false] default: false
-xhelp (Print extended help for command line flags.)
param: [true|false] default: false

View File

@@ -1,988 +0,0 @@
<!--
Copyright (c) 2010, 2013, 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.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html class=" regenabled gecko radius jsenabled regloaded" xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Java Scripting Programmer's Guide</title>
<!-- ============ -->
<!-- MAIN CONTENT -->
<!-- ============ -->
<table summary="layout" border="0" width="100%">
<tbody><tr>
<td>
<div id="sharepage" class="smallpagetitle"><h1>Java Scripting Programmer's Guide</h1><div class="sharepage"> <div class="sharepagew1 share-mailto"> <table summary="" cellpadding="0" cellspacing="0"><tbody><tr> <td id="share-mailto"><a href="mailto:?subject=Java%20Documentation%20Page:%20Java%20Scripting%20Programmer%27s%20Guide&amp;body=Check%20out%20this%20page:%20%0A%0Ahttp%3A%2F%2Fdocs.oracle.com%2Fjavase%2F6%2Fdocs%2Ftechnotes%2Fguides%2Fscripting%2Fprogrammer_guide%2Findex.html" class="sharelink mailto" title="Email this page to a friend"></a></td> <td id="share-technorati"><a href="http://technorati.com/search/http%3A%2F%2Fdocs.oracle.com%2Fjavase%2F6%2Fdocs%2Ftechnotes%2Fguides%2Fscripting%2Fprogrammer_guide%2Findex.html" class="sharelink technorati" title="See who links to this page on Technorati"></a></td> <td id="share-delicious"><a href="http://del.icio.us/post?v=4;url=http%3A%2F%2Fdocs.oracle.com%2Fjavase%2F6%2Fdocs%2Ftechnotes%2Fguides%2Fscripting%2Fprogrammer_guide%2Findex.html;title=Java%20Scripting%20Programmer%27s%20Guide" class="sharelink delicious" title="Bookmark this page in del.icio.us"></a></td> <td id="share-digg"><a href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fdocs.oracle.com%2Fjavase%2F6%2Fdocs%2Ftechnotes%2Fguides%2Fscripting%2Fprogrammer_guide%2Findex.html&amp;title=Java%20Scripting%20Programmer%27s%20Guide" class="sharelink digg" title="Submit this page to Digg"></a></td> <td id="share-slashdot"><a href="http://slashdot.org/bookmark.pl?title=Java%20Scripting%20Programmer%27s%20Guide&amp;url=http%3A%2F%2Fdocs.oracle.com%2Fjavase%2F6%2Fdocs%2Ftechnotes%2Fguides%2Fscripting%2Fprogrammer_guide%2Findex.html" class="sharelink slashdot" title="Submit this page to Slashdot"></a></td> <td id="share-blank"> </td></tr></tbody></table></div></div></div>
</td>
</tr>
</tbody></table>
<!-- Body text begins here -->
<ul>
<li><span><a href="#who">Who is the Java Scripting API
For?</a></span></li>
<li><span><a href="#package">Scripting Package</a></span></li>
<li><span><a href="#examples">Examples</a></span>
<ul>
<li><span><a href="#helloworld">"Hello, World"</a></span></li>
<li><span><a href="#evalfile">Evaluating a Script
File</a></span></li>
<li><span><a href="#scriptvars">Script Variables</a></span></li>
<li><span><a href="#invoke">Invoking Script Functions and
Methods</a></span></li>
<li><span><a href="#interfaces">Implementing Java Interfaces by
Scripts</a></span></li>
<li><span><a href="#scopes">Multiple Scopes for
Scripts</a></span></li>
</ul>
</li>
<li><span><a href="#jsengine">JavaScript Script
Engine</a></span></li>
<li><span><a href="#jstojava">JavaScript to Java
Communication</a></span>
<ul>
<li><span><a href="#jsjavaclass">Accessing Java
Classes</a></span></li>
<li><span><a href="#jsimport">Importing Java Packages,
Classes</a></span></li>
<li><span><a href="#jsarrays">Creating, Converting and Using Java
Arrays</a></span></li>
<li><span><a href="#jsimplement">Implementing Java
Interfaces</a></span></li>
<li><span><a href="#jsextendabstract">Extending Abstract Java Classes
</a></span></li>
<li><span><a href="#jsextendconcrete">Extending Concrete Java Classes
</a></span></li>
<li><span><a href="#jsimplementmultiple">Implementing Multiple Java Interfaces
</a></span></li>
<li><span><a href="#classBoundImplementations">Class-Bound Implementations
</a></span></li>
<li><span><a href="#jsoverload">Overload Resolution</a></span></li>
<li><span><a href="#dataTypeMapping">Mapping of Data Types Between Java
and JavaScript</a></span></li>
</ul>
</li>
<li><span><a href="#engineimpl">Implementing Your Own Script
Engine</a></span></li>
<li><span><a href="#refs">References</a></span></li>
</ul>
<span><a name="who" id="who"></a></span>
<h2><span>Who is the Java Scripting API For?</span></h2>
<span>Some useful characteristics of scripting languages
are:</span>
<ul>
<li><span><b>Convenience</b>: Most scripting languages are
dynamically typed. You can usually create new variables without
declaring the variable type, and you can reuse variables to store
objects of different types. Also, scripting languages tend to
perform many type conversions automatically, for example,
converting the number 10 to the text "10" as necessary.</span></li>
<li><span><b>Developing rapid prototypes</b>: You can avoid the
edit-compile-run cycle and just use edit-run!</span></li>
<li><span><b>Application extension/customization</b>: You can
"externalize" parts of your application - like configuration
scripts, business logic/rules and math expressions for financial
applications.</span></li>
<li><span><b>"Command line" shells for applications</b> -for
debugging, runtime/deploy time configuration etc. Most applications
have a web-based GUI configuaration tool these days. But
sysadmins/deployers frequently prefer command line tools. Instead
of inventing ad-hoc scripting language for that purpose, a
"standard" scripting language can be used.</span></li>
</ul>
<p><span>The Java<font size="-1"><sup>TM</sup></font> Scripting API
is a scripting language indepedent framework for using script
engines from Java code. With the Java Scripting API, it is possible
to write customizable/extendable applications in the Java language
and leave the customization scripting language choice to the end
user. The Java application developer need not choose the extension
language during development. If you write your application with
JSR-223 API, then your users can use any JSR-223 compliant
scripting language.</span></p>
<hr>
<span><a name="package" id="package"></a></span>
<h2><span>Scripting Package</span></h2>
<p><span>The Java Scripting functionality is in the <code><a href="http://docs.oracle.com/javase/9/docs/api/javax/script/package-summary.html">javax.script</a></code>
package. This is a relatively small, simple API. The starting point
of the scripting API is the <code>ScriptEngineManager</code> class.
A ScriptEngineManager object can discover script engines through
the jar file service discovery mechanism. It can also instantiate
ScriptEngine objects that interpret scripts written in a specific
scripting language. The simplest way to use the scripting API is as
follows:</span></p>
<ol>
<li><span>Create a <code>ScriptEngineManager</code>
object.</span></li>
<li><span>Get a <code>ScriptEngine</code> object from the
manager.</span></li>
<li><span>Evaluate script using the <code>ScriptEngine</code>'s
<code>eval</code> methods.</span></li>
</ol>
<p><span>Now, it is time to look at some sample code. While it is
not mandatory, it may be useful to know a bit of JavaScript to read
these examples.</span></p>
<hr>
<span><a name="examples" id="examples"></a></span>
<h2><span>Examples</span></h2>
<span><a name="helloworld" id="helloworld"></a></span>
<h3><span>"Hello, World"</span></h3>
<p><span>From the <code>ScriptEngineManager</code> instance, we
request a JavaScript engine instance using
<code>getEngineByName</code> method. On the script engine, the
<code>eval</code> method is called to execute a given String as
JavaScript code! For brevity, in this as well as in subsequent
examples, we have not shown exception handling. There are checked
and runtime exceptions thrown from <code>javax.script</code> API.
Needless to say, you have to handle the exceptions
appropriately.</span></p>
<pre>
<span><code>
// <a href="source/EvalScript.java">EvalScript.java</a>
import javax.script.*;
public class EvalScript {
public static void main(String[] args) throws Exception {
// create a script engine manager
<span class="classref">ScriptEngineManager</span> factory = new ScriptEngineManager();
// create a JavaScript engine
<span class="classref">ScriptEngine</span> engine = factory.<span class="methodref">getEngineByName</span>("nashorn");
// evaluate JavaScript code from String
engine.<span class="methodref">eval</span>("print('Hello, World')");
}
}
</code></span>
</pre>
<hr>
<a name="evalfile" id="evalfile"></a>
<h3>Evaluating a Script File</h3>
<p>In this example, we call the <code>eval</code> method that
accepts <code>java.io.Reader</code> for the input source. The
script read by the given reader is executed. This way it is
possible to execute scripts from files, URLs and resources by
wrapping the relevant input stream objects as readers.</p>
<pre>
<code>
// <a href="source/EvalFile.java">EvalFile.java</a>
import javax.script.*;
public class EvalFile {
public static void main(String[] args) throws Exception {
// create a script engine manager
<span class="classref">ScriptEngineManager</span> factory = new ScriptEngineManager();
// create JavaScript engine
<span class="classref">ScriptEngine</span> engine = factory.<span class="methodref">getEngineByName</span>("nashorn");
// evaluate JavaScript code from given file - specified by first argument
engine.<span class="methodref">eval</span>(new java.io.FileReader(args[0]));
}
}
</code>
</pre>
Let us assume that we have the file named <a href="source/test.js">test.js</a> with the
following text:
<pre><code>
print("This is hello from test.js");
</code>
</pre>
We can run the above Java as
<pre><code>
java EvalFile test.js
</code>
</pre>
<hr>
<a name="scriptvars" id="scriptvars"></a>
<h3>Script Variables</h3>
<p>When you embed script engines and scripts with your Java
application, you may want to expose your application objects as
global variables to scripts. This example demonstrates how you can
expose your application objects as global variables to a script. We
create a <code>java.io.File</code> in the application and expose
the same as a global variable with the name "file". The script can
access the variable - for example, it can call public methods on
it. Note that the syntax to access Java objects, methods and fields
is dependent on the scripting language. JavaScript supports the
most "natural" Java-like syntax.</p>
<p>
Nashorn script engine pre-defines two global variables named "context"
and "engine". The "context" variable is of type javax.script.ScriptContext
and refers to the current ScriptContext instance passed to script engine's
eval method. The "engine" variable is of type javax.script.ScriptEngine and
refers to the current nashorn script engine instance evaluating the script.
Both of these variables are non-writable, non-enumerable and non-configurable
- which implies script code can not write overwrite the value, for..loop iteration
on global object will not iterate these variables and these variables can not be
deleted by script.
<pre><code>
// <a href="source/ScriptVars.java">ScriptVars.java</a>
import javax.script.*;
import java.io.*;
public class ScriptVars {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
File f = new File("test.txt");
// expose File object as variable to script
engine.<span class="methodref">put</span>("file", f);
// evaluate a script string. The script accesses "file"
// variable and calls method on it
engine.eval("print(file.getAbsolutePath())");
}
}
</code>
</pre>
<hr>
<a name="invoke" id="invoke"></a>
<h3>Invoking Script Functions and Methods</h3>
<p>Sometimes you may want to call a specific scripting function
repeatedly - for example, your application menu functionality might
be implemented by a script. In your menu's action event handler you
may want to call a specific script function. The following example
demonstrates invoking a specific script function from Java
code.</p>
<pre><code>
// <a href="source/InvokeScriptFunction.java">InvokeScriptFunction.java</a>
import javax.script.*;
public class InvokeScriptFunction {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
// JavaScript code in a String
String script = "function hello(name) { print('Hello, ' + name); }";
// evaluate script
engine.eval(script);
// <code>javax.script.Invocable</code> is an optional interface.
// Check whether your script engine implements it or not!
// Note that the JavaScript engine implements Invocable interface.
<span class="classref">Invocable</span> inv = (Invocable) engine;
// invoke the global function named "hello"
inv.<span class="methodref">invokeFunction</span>("hello", "Scripting!!" );
}
}
</code>
</pre>
<p>If your scripting language is object based (like JavaScript) or
object-oriented, then you can invoke a script method on a script
object.</p>
<pre><code>
// <a href="source/InvokeScriptMethod.java">InvokeScriptMethod.java</a>
import javax.script.*;
public class InvokeScriptMethod {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
// JavaScript code in a String. This code defines a script object 'obj'
// with one method called 'hello'.
String script = "var obj = new Object(); obj.hello = function(name) { print('Hello, ' + name); }";
// evaluate script
engine.eval(script);
// <code>javax.script.Invocable</code> is an optional interface.
// Check whether your script engine implements or not!
// Note that the JavaScript engine implements Invocable interface.
<span class="classref">Invocable</span> inv = (Invocable) engine;
// get script object on which we want to call the method
Object obj = engine.<span class="methodref">get</span>("obj");
// invoke the method named "hello" on the script object "obj"
inv.<span class="methodref">invokeMethod</span>(obj, "hello", "Script Method !!" );
}
}
</code>
</pre>
<hr>
<a name="interfaces" id="interfaces"></a>
<h3>Implementing Java Interfaces by Scripts</h3>
<p>Instead of calling specific script functions from Java,
sometimes it is convenient to implement a Java interface by script
functions or methods. Also, by using interfaces we can avoid having
to use the <code>javax.script</code> API in many places. We can get
an interface implementor object and pass it to various Java APIs.
The following example demonstrates implementing the
<code>java.lang.Runnable</code> interface with a script.</p>
<pre><code>
// <a href="source/RunnableImpl.java">RunnableImpl.java</a>
import javax.script.*;
public class RunnableImpl {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
// JavaScript code in a String
String script = "function run() { print('run called'); }";
// evaluate script
engine.eval(script);
<span class="classref">Invocable</span> inv = (Invocable) engine;
// get Runnable interface object from engine. This interface methods
// are implemented by script functions with the matching name.
Runnable r = inv.<span class="methodref">getInterface</span>(Runnable.class);
// start a new thread that runs the script implemented
// runnable interface
Thread th = new Thread(r);
th.start();
th.join();
}
}
</code>
</pre>
<p>If your scripting language is object-based or object-oriented,
it is possible to implement a Java interface by script methods on
script objects. This avoids having to call script global functions
for interface methods. The script object can store the "state"
associated with the interface implementor.</p>
<pre><code>
// <a href="source/RunnableImplObject.java">RunnableImplObject.java</a>
import javax.script.*;
public class RunnableImplObject {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
// JavaScript code in a String
String script = "var obj = new Object(); obj.run = function() { print('run method called'); }";
// evaluate script
engine.eval(script);
// get script object on which we want to implement the interface with
Object obj = engine.<span class="methodref">get</span>("obj");
<span class="classref">Invocable</span> inv = (Invocable) engine;
// get Runnable interface object from engine. This interface methods
// are implemented by script methods of object 'obj'
Runnable r = inv.<span class="methodref">getInterface</span>(obj, Runnable.class);
// start a new thread that runs the script implemented
// runnable interface
Thread th = new Thread(r);
th.start();
th.join();
}
}
</code>
</pre>
<hr>
<a name="scopes" id="scopes"></a>
<h3>Multiple Scopes for Scripts</h3>
<p>In the <a href="#scriptvars">script variables</a> example, we
saw how to expose application objects as script global variables.
It is possible to expose multiple global "scopes" for scripts. A
single scope is an instance of <code>javax.script.Bindings</code>.
This interface is derived from <code>java.util.Map&lt;String,
Object&gt;</code>. A scope a set of name-value pairs where name is
any non-empty, non-null String.
<code>javax.script.ScriptContext</code> interface supports multiple
scopes with associated Bindings for each
scope. By default, every script engine has a default script
context. The default script context has atleast one scope called
"ENGINE_SCOPE". Various scopes supported by a script context are
available through <code>getScopes</code> method.</p>
<pre><code>
// <a href="source/MultiScopes.java">MultiScopes.java</a>
import javax.script.*;
public class MultiScopes {
public static void main(String[] args) throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");
engine.put("x", "hello");
// print global variable "x"
engine.eval("print(x);");
// the above line prints "hello"
// Now, pass a different script context
<span class="classref">ScriptContext</span> newContext = new <span class="classref">SimpleScriptContext</span>();
newContext.setBindings(engine.createBindings(), ScriptContext.ENGINE_SCOPE);
<span class="classref">Bindings</span> engineScope = newContext.<span class="methodref">getBindings</span>(ScriptContext.ENGINE_SCOPE);
// add new variable "x" to the new engineScope
engineScope.<span class="methodref">put</span>("x", "world");
// execute the same script - but this time pass a different script context
engine.eval("print(x);", newContext);
// the above line prints "world"
}
}
</code>
</pre>
<hr>
<a name="jsengine" id="jsengine"></a>
<h2>JavaScript Script Engine</h2>
<p>Oracle's implementation of JDK 8 is co-bundled with the Nashorn ECMAScript
script engine.
<hr>
<a name="jstojava" id="jstojava"></a>
<h2>JavaScript to Java Communication</h2>
<p>For the most part, accessing Java classes, objects and methods
is straightforward. In particular field and method access from
JavaScript is the same as it is from Java. We highlight important
aspects of JavaScript Java access here.
The following examples are JavaScript snippets accessing Java. This
section requires knowledge of JavaScript. This section can be
skipped if you are planning to use some other JSR-223 scripting
language rather than JavaScript.</p>
<hr>
<a name="jsjavaclass" id=jsjavalass"></a>
<h3>Accessing Java Classes</h3>
<pre>
<code>
// <a href="source/javatypes.js">javatypes.js</a>
var arrayListType = Java.type("java.util.ArrayList")
var intType = Java.type("int")
var stringArrayType = Java.type("java.lang.String[]")
var int2DArrayType = Java.type("int[][]")
</code>
</pre>
Note that the name of the type is always a string for a fully qualified name. You can use any of these expressions to create new instances, e.g.:
<pre><code>
var anArrayList = new (Java.type("java.util.ArrayList"))
</code></pre>
or
<pre><code>
var ArrayList = Java.type("java.util.ArrayList")
var anArrayList = new ArrayList
var anArrayListWithSize = new ArrayList(16)
</code></pre>
In the special case of inner classes, you can either use the JVM fully qualified name, meaning using the dollar sign in the class name, or you can use the dot:
<pre><code>
var ftype = Java.type("java.awt.geom.Arc2D$Float")
</code></pre>
and
<pre><code>
var ftype = Java.type("java.awt.geom.Arc2D.Float")
</code></pre>
both work. Note however that using the dollar sign is faster, as Java.type first tries to resolve the class name as it is originally specified, and the internal JVM names for inner classes use the dollar sign. If you use the dot, Java.type will internally get a ClassNotFoundException and subsequently retry by changing the last dot to dollar sign. As a matter of fact, it'll keep replacing dots with dollar signs until it either successfully loads the class or runs out of all dots in the name. This way it can correctly resolve and load even multiply nested inner classes with the dot notation. Again, this will be slower than using the dollar signs in the name. An alternative way to access the inner class is as a property of the outer class:
<pre><code>
var arctype = Java.type("java.awt.geom.Arc2D")
var ftype = arctype.Float
</code></pre>
<p>
You can access both static and non-static inner classes. If you want to create an instance of a non-static inner class, remember to pass an instance of its outer class as the first argument to the constructor.
</p>
<p>
In addition to creating new instances, the type objects returned from <code>Java.type</code> calls can also be used to access the
static fields and methods of the classes:
<pre><code>
var File = Java.type("java.io.File")
File.createTempFile("nashorn", ".tmp")
</code></pre>
<p>
Methods with names of the form <code>isXxx()</code>, <code>getXxx()</code>, and <code>setXxx()</code> can also be used as properties, for both instances and statics.
</p>
<p>
A type object returned from <code>Java.type</code> is distinct from a <code>java.lang.Class</code> object. You can obtain one from the other using properties <code>class</code> and <code>static</code> on them.
<pre><code>
var ArrayList = Java.type("java.util.ArrayList")
var a = new ArrayList
// All of the following print true:
print("Type acts as target of instanceof: " + (a instanceof ArrayList))
print("Class doesn't act as target of instanceof: " + !(a instanceof a.getClass()))
print("Type is not same as instance's getClass(): " + (a.getClass() !== ArrayList))
print("Type's `class` property is same as instance getClass(): " + (a.getClass() === ArrayList.class))
print("Type is same as instance getClass()'s `static` property: " + (a.getClass().static === ArrayList))
</code></pre>
<p>
You can think of the type object as similar to the class names as used in Java source code: you use them as the
arguments to the <code>new</code> and <code>instanceof</code> operators and as the namespace for the static fields
and methods, but they are different than the runtime <code>Class</code> objects returned by <code>getClass()</code> calls.
Syntactically and semantically, this separation produces code that is most similar to Java code, where a distinction
between compile-time class expressions and runtime class objects also exists. (Also, Java can't have the equivalent of <code>static</code>
property on a <code>Class</code> object since compile-time class expressions are never reified as objects).
</p>
<hr>
<a name="jsimport" id="jsimport"></a>
<h3>Importing Java Packages, Classes</h3>
<p>The built-in functions <code>importPackage</code> (in compatibility script) and
<code>importClass</code> can be used to import Java packages and
classes.</p>
<pre><code>
// <a href="source/importpackageclass.js">importpackageclass.js</a>
// load compatibility script
load("nashorn:mozilla_compat.js");
// Import Java packages and classes
// like import package.*; in Java
<span class="functionref">importPackage</span>(java.awt);
// like import java.awt.Frame in Java
<span class="functionref">importClass</span>(java.awt.Frame);
// Create Java Objects by "new ClassName"
var frame = new java.awt.Frame("hello");
// Call Java public methods from script
frame.setVisible(true);
// Access "JavaBean" properties like "fields"
print(frame.title);
</code>
</pre>
<p>The <span class="objectref">Packages</span> global variable can
be used to access Java packages. Examples:
<code>Packages.java.util.Vector</code>,
<code>Packages.javax.swing.JFrame</code>. Please note that "java"
is a shortcut for "Packages.java". There are equivalent shortcuts
for javax, org, edu, com, net prefixes, so pratically all JDK
platform classes can be accessed without the "Packages" prefix.</p>
<p>Note that java.lang is not imported by default (unlike Java)
because that would result in conflicts with JavaScript's built-in
Object, Boolean, Math and so on.</p>
<p><code>importPackage</code> and <code>importClass</code>
functions "pollute" the global variable scope of JavaScript. To
avoid that, you may use <span class="functionref">JavaImporter</span>.</p>
<pre><code>
// <a href="source/javaimporter.js">javaimporter.js</a>
// create JavaImporter with specific packages and classes to import
var SwingGui = new <span class="functionref">JavaImporter</span>(javax.swing,
javax.swing.event,
javax.swing.border,
java.awt.event);
with (SwingGui) {
// within this 'with' statement, we can access Swing and AWT
// classes by unqualified (simple) names.
var mybutton = new JButton("test");
var myframe = new JFrame("test");
}
</code>
</pre>
<hr>
<a name="jsarrays" id="jsarrays"></a>
<h3>Creating, Converting and Using Java Arrays</h3>
<p>
Array element access or length access is the same as in Java.</p>
<pre><code>
// <a href="source/javaarray.js">javaarray.js</a>
// create Java String array of 5 elements
var StringArray = Java.type("java.lang.String[]");
var a = new StringArray(5);
// Accessing elements and length access is by usual Java syntax
a[0] = "scripting is great!";
print(a.length);
print(a[0]);
</code>
</pre>
<p>
It is also possible to convert between JavaScript and Java arrays.
Given a JavaScript array and a Java type, <code>Java.to</code> returns a Java array with the same initial contents, and with the specified array type.
</p>
<pre><code>
var anArray = [1, "13", false]
var javaIntArray = Java.to(anArray, "int[]")
print(javaIntArray[0]) // prints 1
print(javaIntArray[1]) // prints 13, as string "13" was converted to number 13 as per ECMAScript ToNumber conversion
print(javaIntArray[2]) // prints 0, as boolean false was converted to number 0 as per ECMAScript ToNumber conversion
</code></pre>
<p>
You can use either a string or a type object returned from <code>Java.type()</code> to specify the type of the array.
You can also omit the array type, in which case a <code>Object[]</code> will be created.
</p>
<p>
Given a Java array or Collection, <code>Java.from</code> returns a JavaScript array with a shallow copy of its contents. Note that in most cases, you can use Java arrays and lists natively in Nashorn; in cases where for some reason you need to have an actual JavaScript native array (e.g. to work with the array comprehensions functions), you will want to use this method.
</p>
<pre><code>
var File = Java.type("java.io.File");
var listCurDir = new File(".").listFiles();
var jsList = Java.from(listCurDir);
print(jsList);
</code></pre>
<hr>
<a name="jsimplement" id="jsimplement"></a>
<h3>Implementing Java interfaces</h3>
<p>A Java interface can be implemented in JavaScript by using a
Java anonymous class-like syntax:</p>
<pre><code>
// <a href="source/runnable.js">runnable.js</a>
var r = new java.lang.Runnable() {
run: function() {
print("running...\n");
}
};
// "r" can be passed to Java methods that expect java.lang.Runnable
var th = new java.lang.Thread(r);
th.start();
th.join();
</code>
</pre>
<p>When an interface with a single method is expected, you can pass
a script function directly.(auto conversion)</p>
<pre><code>
// <a href="source/samfunc.js">samfunc.js</a>
function func() {
print("I am func!");
}
// pass script function for java.lang.Runnable argument
var th = new java.lang.Thread(func);
th.start();
th.join();
</code>
</pre>
<hr>
<a name="jsextendabstract" id="jsextendabstract"></a>
<h3>Extending Abstract Java Classes</h3>
<p>
If a Java class is abstract, you can instantiate an anonymous subclass of it using an argument list that is applicable to any of its public or protected constructors, but inserting a JavaScript object with functions properties that provide JavaScript implementations of the abstract methods. If method names are overloaded, the JavaScript function will provide implementation for all overloads. E.g.:
</p>
<pre><code>
var TimerTask = Java.type("java.util.TimerTask")
var task = new TimerTask({ run: function() { print("Hello World!") } })
</code></pre>
Nashorn supports a syntactic extension where a "new" expression followed by an argument is identical to invoking the constructor and passing the argument to it, so you can write the above example also as:
<pre><code>
var task = new TimerTask {
run: function() {
print("Hello World!")
}
}
</code></pre>
which is very similar to Java anonymous inner class definition. On the other hand, if the type is an abstract type with a single abstract method (commonly referred to as a "SAM type") or all abstract methods it has share the same overloaded name), then instead of an object, you can just pass a function, so the above example can become even more simplified to:
<pre><code>
var task = new TimerTask(function() { print("Hello World!") })
</code></pre>
<p>
Note that in every one of these cases if you are trying to instantiate an abstract class that has constructors that take some arguments, you can invoke those simply by specifying the arguments after the initial implementation object or function.
</p>
<p>
The use of functions can be taken even further; if you are invoking a Java method that takes a SAM type, you can just pass in a function object, and Nashorn will know what you meant:
</p>
<code><pre>
Java.type("java.util.Timer")
timer.schedule(function() { print("Hello World!") })
</code></pre>
Here, <code>Timer.schedule()</code> expects a <code>TimerTask</code> as its argument, so Nashorn creates an instance of a TimerTask subclass and uses the passed function to implement its only abstract method, run(). In this usage though, you can't use non-default constructors; the type must be either an interface, or must have a protected or public no-arg constructor.
<hr>
<a name="jsextendconcrete" id="jsextendconcrete"></a>
<h3>Extending Concrete Java Classes</h3>
<p>
To extend a concrete Java class, you have to use <code>Java.extend</code> function.
<code>Java.extend</code> returns a type object for a subclass of the specified Java class (or implementation of the specified interface) that acts as a script-to-Java adapter for it.
</p>
<pre><code>
// <a href="source/javaextend.js">javaextend.js</a>
var ArrayList = Java.type("java.util.ArrayList")
var ArrayListExtender = Java.extend(ArrayList)
var printSizeInvokedArrayList = new ArrayListExtender() {
size: function() { print("size invoked!"); }
}
var printAddInvokedArrayList = new ArrayListExtender() {
add: function(x, y) {
if(typeof(y) === "undefined") {
print("add(e) invoked!");
} else {
print("add(i, e) invoked!");
}
}
};
printSizeInvokedArrayList.size();
printAddInvokedArrayList.add(33, 33);
</code></pre>
<p>
The reason you must use <code>Java.extend()</code> with concrete classes is that with concrete classes, there can be a
syntactic ambiguity if you just invoke their constructor. Consider this example:
</p>
<pre><code>
var t = new java.lang.Thread({ run: function() { print("Hello!") } })
</code></pre>
<p>
If we allowed subclassing of concrete classes with constructor syntax, Nashorn couldn't tell if you're creating a new
<code>Thread</code> and passing it a <code>Runnable</code> at this point, or you are subclassing <code>Thread</code> and
passing it a new implementation for its own <code>run()</code> method.
</p>
<hr>
<a name="jsimplementmultiple" id="jsimplementmultiple"></a>
<h3>Implementing Multiple Interfaces</h3>
<p>
<code>Java.extend</code> can in fact take a list of multiple types. At most one of the types can be a class, and the rest must
be interfaces (the class doesn't have to be the first in the list). You will get back an object that extends the class and
implements all the interfaces. (Obviously, if you only specify interfaces and no class, the object will extend <code>java.lang.Object</code>).
<hr>
<a name="classBoundImplementations" id="classBoundImplementations"></a>
<h3>Class-Bound Implementations</h3>
<p>
The methods shown so far for extending Java classes and implementing interfaces &ndash; passing an implementation JavaScript object
or function to a constructor, or using <code>Java.extend</code> with <code>new</code> &ndash; all produce classes that take an
extra JavaScript object parameter in their constructors that specifies the implementation. The implementation is therefore always bound
to the actual instance being created with <code>new</code>, and not to the whole class. This has some advantages, for example in the
memory footprint of the runtime, as Nashorn can just create a single "universal adapter" for every combination of types being implemented.
In reality, the below code shows that different instantiations of, say, <code>Runnable</code> have the same class regardless of them having
different JavaScript implementation objects:
</p>
<pre><code>
var Runnable = java.lang.Runnable;
var r1 = new Runnable(function() { print("I'm runnable 1!") })
var r2 = new Runnable(function() { print("I'm runnable 2!") })
r1.run()
r2.run()
print("We share the same class: " + (r1.class === r2.class))
</code></pre>
<p>
prints:
</p>
<pre><code>
I'm runnable 1!
I'm runnable 2!
We share the same class: true
</code></pre>
<p>
Sometimes, however, you'll want to extend a Java class or implement an interface with implementation bound to the class, not to
its instances. Such a need arises, for example, when you need to pass the class for instantiation to an external API; prime example
of this is the JavaFX framework where you need to pass an Application class to the FX API and let it instantiate it.
</p>
<p>
Fortunately, there's a solution for that: <code>Java.extend()</code> &ndash; aside from being able to take any number of type parameters
denoting a class to extend and interfaces to implement &ndash; can also take one last argument that has to be a JavaScript object
that serves as the implementation for the methods. In this case, <code>Java.extend()</code> will create a class that has the same
constructors as the original class had, as they don't need to take an an extra implementation object parameter. The example below
shows how you can create class-bound implementations, and shows that in this case, the implementation classes for different invocations
are indeed different:
</p>
<pre><code>
var RunnableImpl1 = Java.extend(java.lang.Runnable, function() { print("I'm runnable 1!") })
var RunnableImpl2 = Java.extend(java.lang.Runnable, function() { print("I'm runnable 2!") })
var r1 = new RunnableImpl1()
var r2 = new RunnableImpl2()
r1.run()
r2.run()
print("We share the same class: " + (r1.class === r2.class))
</code></pre>
<p>
prints:
</p>
<pre><code>
I'm runnable 1!
I'm runnable 2!
We share the same class: false
</code></pre>
<p>
As you can see, the major difference here is that we moved the implementation object into the invocation of <code>Java.extend</code>
from the constructor invocations &ndash; indeed the constructor invocations now don't even need to take an extra parameter! Since
the implementations are bound to a class, the two classes obviously can't be the same, and we indeed see that the two runnables no
longer share the same class &ndash; every invocation of <code>Java.extend()</code> with a class-specific implementation object triggers
the creation of a new Java adapter class.
</p>
<p>
Finally, the adapter classes with class-bound implementations can <i>still</i> take an additional constructor parameter to further
override the behavior on a per-instance basis. Thus, you can even combine the two approaches: you can provide part of the implementation
in a class-based JavaScript implementation object passed to <code>Java.extend</code>, and part in another object passed to the constructor.
Whatever functions are provided by the constructor-passed object will override the functions in the class-bound object.
</p>
<pre><code>
var RunnableImpl = Java.extend(java.lang.Runnable, function() { print("I'm runnable 1!") })
var r1 = new RunnableImpl()
var r2 = new RunnableImpl(function() { print("I'm runnable 2!") })
r1.run()
r2.run()
print("We share the same class: " + (r1.class === r2.class))
</code></pre>
<p>
prints:
</p>
<pre><code>
I'm runnable 1!
I'm runnable 2!
We share the same class: true
</code></pre>
<hr>
<a name="jsoverload" id="jsoverload"></a>
<h3>Overload Resolution</h3>
<p>Java methods can be overloaded by argument types. In Java,
overload resolution occurs at compile time (performed by javac).
When calling Java methods from Nashorn, the appropriate method will be
selected based on the argument types at invocation time. You do not need
to do anything special &ndash; the correct Java method overload variant
is selected based automatically. You still have the option of explicitly
specifying a particular overload variant. Reasons for this include
either running into a genuine ambiguity with actual argument types, or
rarely reasons of performance &ndash; if you specify the actual overload
then the engine doesn't have to perform resolution during invocation.
Individual overloads of a Java methods are exposed as special properties
with the name of the method followed with its signature in parentheses.
You can invoke them like this:</p>
<pre><code>
// <a href="source/overload.js">overload.js</a>
var out = java.lang.System.out;
// select a particular print function
out["println(Object)"]("hello");
</code>
</pre>
<p>
Note that you normally don't even have to use qualified class names in
the signatures as long as the unqualified name of the type is sufficient
for uniquely identifying the signature. In practice this means that only
in the extremely unlikely case that two overloads only differ in
parameter types that have identical unqualified names but come from
different packages would you need to use the fully qualified name of the
class.
</p>
<hr>
<a name="dataTypeMapping" id="dataTypeMapping"></a>
<h3>Mapping of Data Types Between Java and JavaScript</h3>
<p>
We have previously shown some of the data type mappings between Java and JavaScript.
We saw that arrays need to be explicitly converted. We have also shown that JavaScript functions
are automatically converted to SAM types when passed as parameters to Java methods. Most other
conversions work as you would expect.
</p>
<p>
Every JavaScript object is also a <code>java.util.Map</code> so APIs receiving maps will receive them directly.
</p>
<p>
When numbers are passed to a Java API, they will be converted to the expected target numeric type, either boxed or
primitive, but if the target type is less specific, say <code>Number</code> or <code>Object</code>, you can only
count on them being a <code>Number</code>, and have to test specifically for whether it's a boxed <code>Double</code>,
<code>Integer</code>, <code>Long</code>, etc. &ndash; it can be any of these due to internal optimizations. Also, you
can pass any JavaScript value to a Java API expecting either a boxed or primitive number; the JavaScript specification's
<code>ToNumber</code> conversion algorithm will be applied to the value.
</p>
<p>
In a similar vein, if a Java method expects a <code>String</code> or a <code>Boolean</code>, the values will be
converted using all conversions allowed by the JavaScript specification's <code>ToString</code> and <code>ToBoolean</code>
conversions.
</p>
<p>
Finally, a word of caution about strings. Due to internal performance optimizations of string operations, JavaScript strings are
not always necessarily of type <code>java.lang.String</code>, but they will always be of type <code>java.lang.CharSequence</code>.
If you pass them to a Java method that expects a <code>java.lang.String</code> parameter, then you will naturally receive a Java
String, but if the signature of your method is more generic, i.e. it receives a <code>java.lang.Object</code> parameter, you can
end up with an object of private engine implementation class that implements <code>CharSequence</code> but is not a Java String.
</p>
<hr>
<a name="engineimpl" id="engineimpl"></a>
<h2>Implementing Your Own Script Engine</h2>
<p>We will not cover implementation of JSR-223 compliant script
engines in detail. Minimally, you need to implement the
<code>javax.script.ScriptEngine</code> and
<code>javax.script.ScriptEngineFactory</code> interfaces. The
abstract class <code>javax.script.AbstractScriptEngine</code>
provides useful defaults for a few methods of the
<code>ScriptEngine</code> interface.</p>
<p>Before starting to implement a JSR-223 engine, you may want to
check <a href="http://java.net/projects/Scripting">http://java.net/projects/Scripting</a>
project. This project maintains JSR-223 implementations for many
popular open source scripting languages.</p>
<hr>
<a name="refs" id="refs"></a>
<h2>References</h2>
<ul>
<li><a href="http://jcp.org/en/jsr/detail?id=223">JSR-223 Scripting
for the Java Platform</a></li>
<li><a href="http://java.net/projects/Scripting">http://java.net/projects/Scripting
</a></li>
</ul>
<div class="hr"><hr></div>
<table summary="layout" border="0" width="100%">
<tbody><tr valign="TOP">
<td width="30%"> <img src="Java%20Scripting%20Programmer%27s%20Guide_files/logo_oracle_footer.gif" alt="Oracle and/or its affiliates" border="0" height="29" width="100"><br>
<font size="+1"> <i>Java Technology</i></font> </td>
<td width="30%">
<p><font size="-2">
<a href="http://docs.oracle.com/javase/6/docs/legal/cpyr.html">Copyright <20></a> 2013, Oracle and/or its affiliates. All rights reserved.
</font></p>
</td>
<td width="30%">
<p align="right"><font size="-2"><a href="http://download.oracle.com/javase/feedback.html">Contact Us</a></font></p><font size="-2">
</font></td>
</tr>
</tbody></table>
<div class="hr"><hr></div>
</div>
<!-- Start SiteCatalyst code -->
<script language="JavaScript" src="Java%20Scripting%20Programmer%27s%20Guide_files/s_code_download.js"></script>
<script language="JavaScript" src="Java%20Scripting%20Programmer%27s%20Guide_files/s_code.js"></script>
<!-- ********** DO NOT ALTER ANYTHING BELOW THIS LINE ! *********** -->
<!-- Below code will send the info to Omniture server -->
<script language="javascript">var s_code=s.t();if(s_code)document.write(s_code)</script>
<!-- End SiteCatalyst code -->
</body></html>

View File

@@ -1,46 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
@SuppressWarnings("javadoc")
public class EvalFile {
public static void main(final String[] args) throws Exception {
// create a script engine manager
final ScriptEngineManager factory = new ScriptEngineManager();
// create JavaScript engine
final ScriptEngine engine = factory.getEngineByName("nashorn");
// evaluate JavaScript code from given file - specified by first argument
engine.eval(new java.io.FileReader(args[0]));
}
}

View File

@@ -1,46 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
@SuppressWarnings("javadoc")
public class EvalScript {
public static void main(final String[] args) throws Exception {
// create a script engine manager
final ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
final ScriptEngine engine = factory.getEngineByName("nashorn");
// evaluate JavaScript code from String
engine.eval("print('Hello, World')");
}
}

View File

@@ -1,58 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
@SuppressWarnings("javadoc")
public class InvokeScriptFunction {
public static void main(final String[] args) throws Exception {
final ScriptEngineManager manager = new ScriptEngineManager();
final ScriptEngine engine = manager.getEngineByName("nashorn");
// JavaScript code in a String
final String script = "function hello(name) { print('Hello, ' + name); }";
// evaluate script
engine.eval(script);
// javax.script.Invocable is an optional interface.
// Check whether your script engine implements or not!
// Note that the JavaScript engine implements Invocable interface.
final Invocable inv = (Invocable) engine;
// invoke the global function named "hello"
inv.invokeFunction("hello", "Scripting!!" );
}
}

View File

@@ -1,59 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
@SuppressWarnings("javadoc")
public class InvokeScriptMethod {
public static void main(final String[] args) throws Exception {
final ScriptEngineManager manager = new ScriptEngineManager();
final ScriptEngine engine = manager.getEngineByName("nashorn");
// JavaScript code in a String. This code defines a script object 'obj'
// with one method called 'hello'.
final String script = "var obj = new Object(); obj.hello = function(name) { print('Hello, ' + name); }";
// evaluate script
engine.eval(script);
// javax.script.Invocable is an optional interface.
// Check whether your script engine implements or not!
// Note that the JavaScript engine implements Invocable interface.
final Invocable inv = (Invocable) engine;
// get script object on which we want to call the method
final Object obj = engine.get("obj");
// invoke the method named "hello" on the script object "obj"
inv.invokeMethod(obj, "hello", "Script Method !!" );
}
}

View File

@@ -1,63 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.SimpleScriptContext;
@SuppressWarnings("javadoc")
public class MultiScopes {
public static void main(final String[] args) throws Exception {
final ScriptEngineManager manager = new ScriptEngineManager();
final ScriptEngine engine = manager.getEngineByName("nashorn");
engine.put("x", "hello");
// print global variable "x"
engine.eval("print(x);");
// the above line prints "hello"
// Now, pass a different script context
final ScriptContext newContext = new SimpleScriptContext();
newContext.setBindings(engine.createBindings(), ScriptContext.ENGINE_SCOPE);
final Bindings engineScope = newContext.getBindings(ScriptContext.ENGINE_SCOPE);
// add new variable "x" to the new engineScope
engineScope.put("x", "world");
// execute the same script - but this time pass a different script context
engine.eval("print(x);", newContext);
// the above line prints "world"
}
}

View File

@@ -1,60 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
@SuppressWarnings("javadoc")
public class RunnableImpl {
public static void main(final String[] args) throws Exception {
final ScriptEngineManager manager = new ScriptEngineManager();
final ScriptEngine engine = manager.getEngineByName("nashorn");
// JavaScript code in a String
final String script = "function run() { print('run called'); }";
// evaluate script
engine.eval(script);
final Invocable inv = (Invocable) engine;
// get Runnable interface object from engine. This interface methods
// are implemented by script functions with the matching name.
final Runnable r = inv.getInterface(Runnable.class);
// start a new thread that runs the script implemented
// runnable interface
final Thread th = new Thread(r);
th.start();
th.join();
}
}

View File

@@ -1,63 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
@SuppressWarnings("javadoc")
public class RunnableImplObject {
public static void main(final String[] args) throws Exception {
final ScriptEngineManager manager = new ScriptEngineManager();
final ScriptEngine engine = manager.getEngineByName("nashorn");
// JavaScript code in a String
final String script = "var obj = new Object(); obj.run = function() { print('run method called'); }";
// evaluate script
engine.eval(script);
// get script object on which we want to implement the interface with
final Object obj = engine.get("obj");
final Invocable inv = (Invocable) engine;
// get Runnable interface object from engine. This interface methods
// are implemented by script methods of object 'obj'
final Runnable r = inv.getInterface(obj, Runnable.class);
// start a new thread that runs the script implemented
// runnable interface
final Thread th = new Thread(r);
th.start();
th.join();
}
}

View File

@@ -1,53 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import java.io.File;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
@SuppressWarnings("javadoc")
public class ScriptVars {
public static void main(final String[] args) throws Exception {
final ScriptEngineManager manager = new ScriptEngineManager();
final ScriptEngine engine = manager.getEngineByName("nashorn");
final File f = new File("test.txt");
// expose File object as variable to script
engine.put("file", f);
// evaluate a script string. The script accesses "file"
// variable and calls method on it
engine.eval("print(file.getAbsolutePath())");
}
}

View File

@@ -1,45 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// load compatibility script
load("nashorn:mozilla_compat.js");
// Import Java packages and classes
// like import package.*; in Java
importPackage(java.awt);
// like import java.awt.Frame in Java
importClass(java.awt.Frame);
// Create Java Objects by "new ClassName"
var frame = new java.awt.Frame("hello");
// Call Java public methods from script
frame.setVisible(true);
// Access "JavaBean" properties like "fields"
print(frame.title);

View File

@@ -1,52 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// create Java String array of 5 elements
var StringArray = Java.type("java.lang.String[]");
var a = new StringArray(5);
// Accessing elements and length access is by usual Java syntax
a[0] = "scripting is great!";
print(a.length);
print(a[0]);
// convert a script array to Java array
var anArray = [1, "13", false];
var javaIntArray = Java.to(anArray, "int[]");
print(javaIntArray[0]);// prints 1
print(javaIntArray[1]); // prints 13, as string "13" was converted to number 13 as per ECMAScript ToNumber conversion
print(javaIntArray[2]);// prints 0, as boolean false was converted to number 0 as per ECMAScript ToNumber conversion
// convert a Java array to a JavaScript array
var File = Java.type("java.io.File");
var listCurDir = new File(".").listFiles();
var jsList = Java.from(listCurDir);
print(jsList);

View File

@@ -1,47 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
var ArrayList = Java.type("java.util.ArrayList")
var ArrayListExtender = Java.extend(ArrayList)
var printSizeInvokedArrayList = new ArrayListExtender() {
size: function() { print("size invoked!"); }
}
var printAddInvokedArrayList = new ArrayListExtender() {
add: function(x, y) {
if(typeof(y) === "undefined") {
print("add(e) invoked!");
} else {
print("add(i, e) invoked!");
}
}
};
printSizeInvokedArrayList.size();
printAddInvokedArrayList.add(33, 33);

View File

@@ -1,48 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// create JavaImporter with specific packages and classes to import
var SwingGui = new JavaImporter(javax.swing,
javax.swing.event,
javax.swing.border,
java.awt.event);
with (SwingGui) {
// within this 'with' statement, we can access Swing and AWT
// classes by unqualified (simple) names.
var mybutton = new JButton("test");
print(mybutton);
var myframe = new JFrame("test");
print(myframe);
}

View File

@@ -1,50 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// accessing java types
var arrayListType = Java.type("java.util.ArrayList")
var intType = Java.type("int")
var stringArrayType = Java.type("java.lang.String[]")
var int2DArrayType = Java.type("int[][]")
// Using java types
var ArrayList = Java.type("java.util.ArrayList")
var anArrayList = new ArrayList
var anArrayListWithSize = new ArrayList(16)
// fully qualified name
var ftype = Java.type("java.awt.geom.Arc2D$Float")
// inner class property
var arctype = Java.type("java.awt.geom.Arc2D")
var ftype = arctype.Float

View File

@@ -1,36 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
var out = java.lang.System.out;
// select a particular print function
out["println(java.lang.Object)"]("hello");

View File

@@ -1,41 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
var r = new java.lang.Runnable() {
run: function() {
print("running...\n");
}
};
// "r" can be passed to Java methods that expect java.lang.Runnable
var th = new java.lang.Thread(r);
th.start();
th.join();

View File

@@ -1,39 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
function func() {
print("I am func!");
}
// pass script function for java.lang.Runnable argument
var th = new java.lang.Thread(func);
th.start();
th.join();

View File

@@ -1,32 +0,0 @@
/*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of Oracle nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
print("This is hello from test.js");

View File

@@ -5,7 +5,7 @@
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Testing the JDK</title>
<style>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
@@ -21,9 +21,9 @@
<header id="title-block-header">
<h1 class="title">Testing the JDK</h1>
</header>
<nav id="TOC" role="doc-toc">
<nav id="TOC">
<ul>
<li><a href="#using-make-test-the-run-test-framework">Using "make test" (the run-test framework)</a><ul>
<li><a href="#using-make-test-the-run-test-framework">Using &quot;make test&quot; (the run-test framework)</a><ul>
<li><a href="#configuration">Configuration</a></li>
</ul></li>
<li><a href="#test-selection">Test selection</a><ul>
@@ -47,7 +47,7 @@
</ul></li>
</ul>
</nav>
<h2 id="using-make-test-the-run-test-framework">Using "make test" (the run-test framework)</h2>
<h2 id="using-make-test-the-run-test-framework">Using &quot;make test&quot; (the run-test framework)</h2>
<p>This new way of running tests is developer-centric. It assumes that you have built a JDK locally and want to test it. Running common test targets is simple, and more complex ad-hoc combination of tests is possible. The user interface is forgiving, and clearly report errors it cannot resolve.</p>
<p>The main target <code>test</code> uses the jdk-image as the tested product. There is also an alternate target <code>exploded-test</code> that uses the exploded image instead. Not all tests will run successfully on the exploded image, but using this target can greatly improve rebuild times for certain workflows.</p>
<p>Previously, <code>make test</code> was used to invoke an old system for running tests, and <code>make run-test</code> was used for the new test framework. For backward compatibility with scripts and muscle memory, <code>run-test</code> (and variants like <code>exploded-run-test</code> or <code>run-test-tier1</code>) are kept as aliases.</p>
@@ -56,7 +56,7 @@
$ make test-jdk_lang JTREG=&quot;JOBS=8&quot;
$ make test TEST=jdk_lang
$ make test-only TEST=&quot;gtest:LogTagSet gtest:LogTagSetDescriptions&quot; GTEST=&quot;REPEAT=-1&quot;
$ make test TEST=&quot;hotspot:hotspot_gc&quot; JTREG=&quot;JOBS=1;TIMEOUT_FACTOR=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug&quot;
$ make test TEST=&quot;hotspot:hotspot_gc&quot; JTREG=&quot;JOBS=1;TIMEOUT_FACTOR=8;JAVA_OPTIONS=-XshowSettings -Xlog:gc+ref=debug&quot;
$ make test TEST=&quot;jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java&quot;
$ make test TEST=&quot;micro:java.lang.reflect&quot; MICRO=&quot;FORK=1;WARMUP_ITER=2&quot;
$ make exploded-test TEST=tier2</code></pre>
@@ -65,7 +65,7 @@ $ make exploded-test TEST=tier2</code></pre>
<p>To be able to run microbenchmarks, <code>configure</code> needs to know where to find the JMH dependency. Use <code>--with-jmh=&lt;path to JMH jars&gt;</code> to point to a directory containing the core JMH and transitive dependencies. The recommended dependencies can be retrieved by running <code>sh make/devkit/createJMHBundle.sh</code>, after which <code>--with-jmh=build/jmh/jars</code> should work.</p>
<h2 id="test-selection">Test selection</h2>
<p>All functionality is available using the <code>test</code> make target. In this use case, the test or tests to be executed is controlled using the <code>TEST</code> variable. To speed up subsequent test runs with no source code changes, <code>test-only</code> can be used instead, which do not depend on the source and test image build.</p>
<p>For some common top-level tests, direct make targets have been generated. This includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make test-tier1</code> is equivalent to <code>make test TEST="tier1"</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>test TEST="x"</code> solution needs to be used.</p>
<p>For some common top-level tests, direct make targets have been generated. This includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make test-tier1</code> is equivalent to <code>make test TEST=&quot;tier1&quot;</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>test TEST=&quot;x&quot;</code> solution needs to be used.</p>
<p>The test specifications given in <code>TEST</code> is parsed into fully qualified test descriptors, which clearly and unambigously show which tests will be run. As an example, <code>:tier1</code> will expand to <code>jtreg:$(TOPDIR)/test/hotspot/jtreg:tier1 jtreg:$(TOPDIR)/test/jdk:tier1 jtreg:$(TOPDIR)/test/langtools:tier1 jtreg:$(TOPDIR)/test/nashorn:tier1 jtreg:$(TOPDIR)/test/jaxp:tier1</code>. You can always submit a list of fully qualified test descriptors in the <code>TEST</code> variable if you want to shortcut the parser.</p>
<h3 id="jtreg">JTReg</h3>
<p>JTReg tests can be selected either by picking a JTReg test group, or a selection of files or directories containing JTReg tests.</p>
@@ -105,9 +105,9 @@ TEST FAILURE</code></pre>
<p>Additional work data is stored in <code>build/$BUILD/test-support/$TEST_ID</code>. For some frameworks, this directory might contain information that is useful in determining the cause of a failed test.</p>
<h2 id="test-suite-control">Test suite control</h2>
<p>It is possible to control various aspects of the test suites using make control variables.</p>
<p>These variables use a keyword=value approach to allow multiple values to be set. So, for instance, <code>JTREG="JOBS=1;TIMEOUT_FACTOR=8"</code> will set the JTReg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting <code>JTREG_JOBS=1 JTREG_TIMEOUT_FACTOR=8</code>, but using the keyword format means that the <code>JTREG</code> variable is parsed and verified for correctness, so <code>JTREG="TMIEOUT_FACTOR=8"</code> would give an error, while <code>JTREG_TMIEOUT_FACTOR=8</code> would just pass unnoticed.</p>
<p>To separate multiple keyword=value pairs, use <code>;</code> (semicolon). Since the shell normally eats <code>;</code>, the recommended usage is to write the assignment inside qoutes, e.g. <code>JTREG="...;..."</code>. This will also make sure spaces are preserved, as in <code>JTREG="VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"</code>.</p>
<p>(Other ways are possible, e.g. using backslash: <code>JTREG=JOBS=1\;TIMEOUT_FACTOR=8</code>. Also, as a special technique, the string <code>%20</code> will be replaced with space for certain options, e.g. <code>JTREG=VM_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug</code>. This can be useful if you have layers of scripts and have trouble getting proper quoting of command line arguments through.)</p>
<p>These variables use a keyword=value approach to allow multiple values to be set. So, for instance, <code>JTREG=&quot;JOBS=1;TIMEOUT_FACTOR=8&quot;</code> will set the JTReg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting <code>JTREG_JOBS=1 JTREG_TIMEOUT_FACTOR=8</code>, but using the keyword format means that the <code>JTREG</code> variable is parsed and verified for correctness, so <code>JTREG=&quot;TMIEOUT_FACTOR=8&quot;</code> would give an error, while <code>JTREG_TMIEOUT_FACTOR=8</code> would just pass unnoticed.</p>
<p>To separate multiple keyword=value pairs, use <code>;</code> (semicolon). Since the shell normally eats <code>;</code>, the recommended usage is to write the assignment inside qoutes, e.g. <code>JTREG=&quot;...;...&quot;</code>. This will also make sure spaces are preserved, as in <code>JTREG=&quot;JAVA_OPTIONS=-XshowSettings -Xlog:gc+ref=debug&quot;</code>.</p>
<p>(Other ways are possible, e.g. using backslash: <code>JTREG=JOBS=1\;TIMEOUT_FACTOR=8</code>. Also, as a special technique, the string <code>%20</code> will be replaced with space for certain options, e.g. <code>JTREG=JAVA_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug</code>. This can be useful if you have layers of scripts and have trouble getting proper quoting of command line arguments through.)</p>
<p>As far as possible, the names of the keywords have been standardized between test suites.</p>
<h3 id="general-keywords-test_opts">General keywords (TEST_OPTS)</h3>
<p>Some keywords are valid across different test suites. If you want to run tests from multiple test suites, or just don't want to care which test suite specific control variable to use, then you can use the general TEST_OPTS control variable.</p>
@@ -116,27 +116,32 @@ TEST FAILURE</code></pre>
<p>Currently only applies to JTReg.</p>
<h4 id="timeout_factor">TIMEOUT_FACTOR</h4>
<p>Currently only applies to JTReg.</p>
<h4 id="vm_options">VM_OPTIONS</h4>
<p>Applies to JTReg, GTest and Micro.</p>
<h4 id="java_options">JAVA_OPTIONS</h4>
<p>Applies to JTReg, GTest and Micro.</p>
<h4 id="vm_options">VM_OPTIONS</h4>
<p>Applies to JTReg, GTest and Micro.</p>
<h4 id="aot_modules">AOT_MODULES</h4>
<p>Applies to JTReg and GTest.</p>
<h4 id="jcov">JCOV</h4>
<p>This keywords applies globally to the test runner system. If set to <code>true</code>, it enables JCov coverage reporting for all tests run. To be useful, the JDK under test must be run with a JDK built with JCov instrumentation (<code>configure --with-jcov=&lt;path to directory containing lib/jcov.jar&gt;</code>, <code>make jcov-image</code>).</p>
<p>The simplest way to run tests with JCov coverage report is to use the special target <code>jcov-test</code> instead of <code>test</code>, e.g. <code>make jcov-test TEST=jdk_lang</code>. This will make sure the JCov image is built, and that JCov reporting is enabled.</p>
<p>The JCov report is stored in <code>build/$BUILD/test-results/jcov-output</code>.</p>
<p>The JCov report is stored in <code>build/$BUILD/test-results/jcov-output/report</code>.</p>
<p>Please note that running with JCov reporting can be very memory intensive.</p>
<h4 id="jcov_diff_changeset">JCOV_DIFF_CHANGESET</h4>
<p>While collecting code coverage with JCov, it is also possible to find coverage for only recently changed code. JCOV_DIFF_CHANGESET specifies a source revision. A textual report will be generated showing coverage of the diff between the specified revision and the repository tip.</p>
<p>The report is stored in <code>build/$BUILD/test-results/jcov-output/diff_coverage_report</code> file.</p>
<h3 id="jtreg-keywords">JTReg keywords</h3>
<h4 id="jobs-1">JOBS</h4>
<p>The test concurrency (<code>-concurrency</code>).</p>
<p>Defaults to TEST_JOBS (if set by <code>--with-test-jobs=</code>), otherwise it defaults to JOBS, except for Hotspot, where the default is <em>number of CPU cores/2</em> (for sparc, if more than 16 cpus, then <em>number of CPU cores/5</em>, otherwise <em>number of CPU cores/4</em>), but never more than <em>memory size in GB/2</em>.</p>
<p>Defaults to TEST_JOBS (if set by <code>--with-test-jobs=</code>), otherwise it defaults to JOBS, except for Hotspot, where the default is <em>number of CPU cores/2</em>, but never more than <em>memory size in GB/2</em>.</p>
<h4 id="timeout_factor-1">TIMEOUT_FACTOR</h4>
<p>The timeout factor (<code>-timeoutFactor</code>).</p>
<p>Defaults to 4.</p>
<h4 id="failure_handler_timeout">FAILURE_HANDLER_TIMEOUT</h4>
<p>Sets the argument <code>-timeoutHandlerTimeout</code> for JTReg. The default value is 0. This is only valid if the failure handler is built.</p>
<h4 id="test_mode">TEST_MODE</h4>
<p>The test mode (<code>-agentvm</code>, <code>-samevm</code> or <code>-othervm</code>).</p>
<p>Defaults to <code>-agentvm</code>.</p>
<p>The test mode (<code>agentvm</code> or <code>othervm</code>).</p>
<p>Defaults to <code>agentvm</code>.</p>
<h4 id="assert">ASSERT</h4>
<p>Enable asserts (<code>-ea -esa</code>, or none).</p>
<p>Set to <code>true</code> or <code>false</code>. If true, adds <code>-ea -esa</code>. Defaults to true, except for hotspot.</p>
@@ -150,8 +155,10 @@ TEST FAILURE</code></pre>
<p>Limit memory consumption (<code>-Xmx</code> and <code>-vmoption:-Xmx</code>, or none).</p>
<p>Limit memory consumption for JTReg test framework and VM under test. Set to 0 to disable the limits.</p>
<p>Defaults to 512m, except for hotspot, where it defaults to 0 (no limit).</p>
<h4 id="max_output">MAX_OUTPUT</h4>
<p>Set the property <code>javatest.maxOutputSize</code> for the launcher, to change the default JTReg log limit.</p>
<h4 id="keywords">KEYWORDS</h4>
<p>JTReg kewords sent to JTReg using <code>-k</code>. Please be careful in making sure that spaces and special characters (like <code>!</code>) are properly quoted. To avoid some issues, the special value <code>%20</code> can be used instead of space.</p>
<p>JTReg keywords sent to JTReg using <code>-k</code>. Please be careful in making sure that spaces and special characters (like <code>!</code>) are properly quoted. To avoid some issues, the special value <code>%20</code> can be used instead of space.</p>
<h4 id="extra_problem_lists">EXTRA_PROBLEM_LISTS</h4>
<p>Use additional problem lists file or files, in addition to the default ProblemList.txt located at the JTReg test roots.</p>
<p>If multiple file names are specified, they should be separated by space (or, to help avoid quoting issues, the special value <code>%20</code>).</p>
@@ -161,11 +168,14 @@ TEST FAILURE</code></pre>
<p>Set to <code>true</code> or <code>false</code>. If <code>true</code>, JTReg will use <code>-match:</code> option, otherwise <code>-exclude:</code> will be used. Default is <code>false</code>.</p>
<h4 id="options">OPTIONS</h4>
<p>Additional options to the JTReg test framework.</p>
<p>Use <code>JTREG="OPTIONS=--help all"</code> to see all available JTReg options.</p>
<p>Use <code>JTREG=&quot;OPTIONS=--help all&quot;</code> to see all available JTReg options.</p>
<h4 id="java_options-1">JAVA_OPTIONS</h4>
<p>Additional Java options to JTReg (<code>-javaoption</code>).</p>
<p>Additional Java options for running test classes (sent to JTReg as <code>-javaoption</code>).</p>
<h4 id="vm_options-1">VM_OPTIONS</h4>
<p>Additional VM options to JTReg (<code>-vmoption</code>).</p>
<p>Additional Java options to be used when compiling and running classes (sent to JTReg as <code>-vmoption</code>).</p>
<p>This option is only needed in special circumstances. To pass Java options to your test classes, use <code>JAVA_OPTIONS</code>.</p>
<h4 id="launcher_options">LAUNCHER_OPTIONS</h4>
<p>Additional Java options that are sent to the java launcher that starts the JTReg harness.</p>
<h4 id="aot_modules-1">AOT_MODULES</h4>
<p>Generate AOT modules before testing for the specified module, or set of modules. If multiple modules are specified, they should be separated by space (or, to help avoid quoting issues, the special value <code>%20</code>).</p>
<h4 id="retry_count">RETRY_COUNT</h4>
@@ -176,7 +186,7 @@ TEST FAILURE</code></pre>
<p>Default is 1. Set to -1 to repeat indefinitely. This can be especially useful combined with <code>OPTIONS=--gtest_break_on_failure</code> to reproduce an intermittent problem.</p>
<h4 id="options-1">OPTIONS</h4>
<p>Additional options to the Gtest test framework.</p>
<p>Use <code>GTEST="OPTIONS=--help"</code> to see all available Gtest options.</p>
<p>Use <code>GTEST=&quot;OPTIONS=--help&quot;</code> to see all available Gtest options.</p>
<h4 id="aot_modules-2">AOT_MODULES</h4>
<p>Generate AOT modules before testing for the specified module, or set of modules. If multiple modules are specified, they should be separated by space (or, to help avoid quoting issues, the special value <code>%20</code>).</p>
<h3 id="microbenchmark-keywords">Microbenchmark keywords</h3>
@@ -201,24 +211,29 @@ TEST FAILURE</code></pre>
<p>Docker tests with default parameters may fail on systems with glibc versions not compatible with the one used in the default docker image (e.g., Oracle Linux 7.6 for x86). For example, they pass on Ubuntu 16.04 but fail on Ubuntu 18.04 if run like this on x86:</p>
<pre><code>$ make test TEST=&quot;jtreg:test/hotspot/jtreg/containers/docker&quot;</code></pre>
<p>To run these tests correctly, additional parameters for the correct docker image are required on Ubuntu 18.04 by using <code>JAVA_OPTIONS</code>.</p>
<pre><code>$ make test TEST=&quot;jtreg:test/hotspot/jtreg/containers/docker&quot; JTREG=&quot;JAVA_OPTIONS=-Djdk.test.docker.image.name=ubuntu -Djdk.test.docker.image.version=latest&quot;</code></pre>
<pre><code>$ make test TEST=&quot;jtreg:test/hotspot/jtreg/containers/docker&quot; \
JTREG=&quot;JAVA_OPTIONS=-Djdk.test.docker.image.name=ubuntu
-Djdk.test.docker.image.version=latest&quot;</code></pre>
<h3 id="non-us-locale">Non-US locale</h3>
<p>If your locale is non-US, some tests are likely to fail. To work around this you can set the locale to US. On Unix platforms simply setting <code>LANG="en_US"</code> in the environment before running tests should work. On Windows, setting <code>JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US"</code> helps for most, but not all test cases. For example:</p>
<p>If your locale is non-US, some tests are likely to fail. To work around this you can set the locale to US. On Unix platforms simply setting <code>LANG=&quot;en_US&quot;</code> in the environment before running tests should work. On Windows, setting <code>JTREG=&quot;VM_OPTIONS=-Duser.language=en -Duser.country=US&quot;</code> helps for most, but not all test cases.</p>
<p>For example:</p>
<pre><code>$ export LANG=&quot;en_US&quot; &amp;&amp; make test TEST=...
$ make test JTREG=&quot;VM_OPTIONS=-Duser.language=en -Duser.country=US&quot; TEST=...</code></pre>
<h3 id="pkcs11-tests">PKCS11 Tests</h3>
<p>It is highly recommended to use the latest NSS version when running PKCS11 tests. Improper NSS version may lead to unexpected failures which are hard to diagnose. For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail on Ubuntu 18.04 with the default NSS version in the system. To run these tests correctly, the system property <code>test.nss.lib.paths</code> is required on Ubuntu 18.04 to specify the alternative NSS lib directories. For example:</p>
<pre><code>$ make test TEST=&quot;jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java&quot; JTREG=&quot;JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs&quot;</code></pre>
<p>It is highly recommended to use the latest NSS version when running PKCS11 tests. Improper NSS version may lead to unexpected failures which are hard to diagnose. For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail on Ubuntu 18.04 with the default NSS version in the system. To run these tests correctly, the system property <code>test.nss.lib.paths</code> is required on Ubuntu 18.04 to specify the alternative NSS lib directories.</p>
<p>For example:</p>
<pre><code>$ make test TEST=&quot;jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java&quot; \
JTREG=&quot;JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs&quot;</code></pre>
<p>For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README.</p>
<h3 id="client-ui-tests">Client UI Tests</h3>
<p>Some Client UI tests use key sequences which may be reserved by the operating system. Usually that causes the test failure. So it is highly recommended to disable system key shortcuts prior testing. The steps to access and disable system key shortcuts for various platforms are provided below.</p>
<h4 id="macos">MacOS</h4>
<p>Choose Apple menu; System Preferences, click Keyboard, then click Shortcuts; select or deselect desired shortcut.</p>
<p>For example, test/jdk/javax/swing/TooltipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java fails on MacOS because it uses <code>CTRL + F1</code> key sequence to show or hide tooltip message but the key combination is reserved by the operating system. To run the test correctly the default global key shortcut should be disabled using the steps described above, and then deselect "Turn keyboard access on or off" option which is responsible for <code>CTRL + F1</code> combination.</p>
<p>For example, test/jdk/javax/swing/TooltipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java fails on MacOS because it uses <code>CTRL + F1</code> key sequence to show or hide tooltip message but the key combination is reserved by the operating system. To run the test correctly the default global key shortcut should be disabled using the steps described above, and then deselect &quot;Turn keyboard access on or off&quot; option which is responsible for <code>CTRL + F1</code> combination.</p>
<h4 id="linux">Linux</h4>
<p>Open the Activities overview and start typing Settings; Choose Settings, click Devices, then click Keyboard; set or override desired shortcut.</p>
<h4 id="windows">Windows</h4>
<p>Type <code>gpedit</code> in the Search and then click Edit group policy; navigate to User Configuration -&gt; Administrative Templates -&gt; Windows Components -&gt; File Explorer; in the right-side pane look for "Turn off Windows key hotkeys" and double click on it; enable or disable hotkeys.</p>
<p>Type <code>gpedit</code> in the Search and then click Edit group policy; navigate to User Configuration -&gt; Administrative Templates -&gt; Windows Components -&gt; File Explorer; in the right-side pane look for &quot;Turn off Windows key hotkeys&quot; and double click on it; enable or disable hotkeys.</p>
<p>Note: restart is required to make the settings take effect.</p>
</body>
</html>

View File

@@ -23,7 +23,7 @@ Some example command-lines:
$ make test-jdk_lang JTREG="JOBS=8"
$ make test TEST=jdk_lang
$ make test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1"
$ make test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT_FACTOR=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
$ make test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT_FACTOR=8;JAVA_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
$ make test TEST="jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java"
$ make test TEST="micro:java.lang.reflect" MICRO="FORK=1;WARMUP_ITER=2"
$ make exploded-test TEST=tier2
@@ -37,11 +37,11 @@ Note that this option should point to the JTReg home, i.e. the top directory,
containing `lib/jtreg.jar` etc. (An alternative is to set the `JT_HOME`
environment variable to point to the JTReg home before running `configure`.)
To be able to run microbenchmarks, `configure` needs to know where to find
the JMH dependency. Use `--with-jmh=<path to JMH jars>` to point to a directory
containing the core JMH and transitive dependencies. The recommended dependencies
can be retrieved by running `sh make/devkit/createJMHBundle.sh`, after which
`--with-jmh=build/jmh/jars` should work.
To be able to run microbenchmarks, `configure` needs to know where to find the
JMH dependency. Use `--with-jmh=<path to JMH jars>` to point to a directory
containing the core JMH and transitive dependencies. The recommended
dependencies can be retrieved by running `sh make/devkit/createJMHBundle.sh`,
after which `--with-jmh=build/jmh/jars` should work.
## Test selection
@@ -182,19 +182,19 @@ variables.
These variables use a keyword=value approach to allow multiple values to be
set. So, for instance, `JTREG="JOBS=1;TIMEOUT_FACTOR=8"` will set the JTReg
concurrency level to 1 and the timeout factor to 8. This is equivalent to
setting `JTREG_JOBS=1 JTREG_TIMEOUT_FACTOR=8`, but using the keyword format means that
the `JTREG` variable is parsed and verified for correctness, so
`JTREG="TMIEOUT_FACTOR=8"` would give an error, while `JTREG_TMIEOUT_FACTOR=8` would just
pass unnoticed.
setting `JTREG_JOBS=1 JTREG_TIMEOUT_FACTOR=8`, but using the keyword format
means that the `JTREG` variable is parsed and verified for correctness, so
`JTREG="TMIEOUT_FACTOR=8"` would give an error, while `JTREG_TMIEOUT_FACTOR=8`
would just pass unnoticed.
To separate multiple keyword=value pairs, use `;` (semicolon). Since the shell
normally eats `;`, the recommended usage is to write the assignment inside
qoutes, e.g. `JTREG="...;..."`. This will also make sure spaces are preserved,
as in `JTREG="VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"`.
as in `JTREG="JAVA_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"`.
(Other ways are possible, e.g. using backslash: `JTREG=JOBS=1\;TIMEOUT_FACTOR=8`.
Also, as a special technique, the string `%20` will be replaced with space for
certain options, e.g. `JTREG=VM_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug`.
certain options, e.g. `JTREG=JAVA_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug`.
This can be useful if you have layers of scripts and have trouble getting
proper quoting of command line arguments through.)
@@ -203,9 +203,10 @@ test suites.
### General keywords (TEST_OPTS)
Some keywords are valid across different test suites. If you want to run
tests from multiple test suites, or just don't want to care which test suite specific
control variable to use, then you can use the general TEST_OPTS control variable.
Some keywords are valid across different test suites. If you want to run tests
from multiple test suites, or just don't want to care which test suite specific
control variable to use, then you can use the general TEST_OPTS control
variable.
There are also some keywords that applies globally to the test runner system,
not to any specific test suites. These are also available as TEST_OPTS keywords.
@@ -218,11 +219,11 @@ Currently only applies to JTReg.
Currently only applies to JTReg.
#### VM_OPTIONS
#### JAVA_OPTIONS
Applies to JTReg, GTest and Micro.
#### JAVA_OPTIONS
#### VM_OPTIONS
Applies to JTReg, GTest and Micro.
@@ -241,47 +242,68 @@ The simplest way to run tests with JCov coverage report is to use the special
target `jcov-test` instead of `test`, e.g. `make jcov-test TEST=jdk_lang`. This
will make sure the JCov image is built, and that JCov reporting is enabled.
The JCov report is stored in `build/$BUILD/test-results/jcov-output`.
The JCov report is stored in `build/$BUILD/test-results/jcov-output/report`.
Please note that running with JCov reporting can be very memory intensive.
#### JCOV_DIFF_CHANGESET
While collecting code coverage with JCov, it is also possible to find coverage
for only recently changed code. JCOV_DIFF_CHANGESET specifies a source
revision. A textual report will be generated showing coverage of the diff
between the specified revision and the repository tip.
The report is stored in
`build/$BUILD/test-results/jcov-output/diff_coverage_report` file.
### JTReg keywords
#### JOBS
The test concurrency (`-concurrency`).
Defaults to TEST_JOBS (if set by `--with-test-jobs=`), otherwise it defaults to
JOBS, except for Hotspot, where the default is *number of CPU cores/2* (for
sparc, if more than 16 cpus, then *number of CPU cores/5*, otherwise *number of
CPU cores/4*), but never more than *memory size in GB/2*.
JOBS, except for Hotspot, where the default is *number of CPU cores/2*,
but never more than *memory size in GB/2*.
#### TIMEOUT_FACTOR
The timeout factor (`-timeoutFactor`).
Defaults to 4.
#### TEST_MODE
The test mode (`-agentvm`, `-samevm` or `-othervm`).
#### FAILURE_HANDLER_TIMEOUT
Defaults to `-agentvm`.
Sets the argument `-timeoutHandlerTimeout` for JTReg. The default value is 0.
This is only valid if the failure handler is built.
#### TEST_MODE
The test mode (`agentvm` or `othervm`).
Defaults to `agentvm`.
#### ASSERT
Enable asserts (`-ea -esa`, or none).
Set to `true` or `false`. If true, adds `-ea -esa`. Defaults to true, except
for hotspot.
#### VERBOSE
The verbosity level (`-verbose`).
Defaults to `fail,error,summary`.
#### RETAIN
What test data to retain (`-retain`).
Defaults to `fail,error`.
#### MAX_MEM
Limit memory consumption (`-Xmx` and `-vmoption:-Xmx`, or none).
Limit memory consumption for JTReg test framework and VM under test. Set to 0
@@ -289,9 +311,14 @@ to disable the limits.
Defaults to 512m, except for hotspot, where it defaults to 0 (no limit).
#### MAX_OUTPUT
Set the property `javatest.maxOutputSize` for the launcher, to change the
default JTReg log limit.
#### KEYWORDS
JTReg kewords sent to JTReg using `-k`. Please be careful in making sure that
JTReg keywords sent to JTReg using `-k`. Please be careful in making sure that
spaces and special characters (like `!`) are properly quoted. To avoid some
issues, the special value `%20` can be used instead of space.
@@ -314,17 +341,29 @@ Set to `true` or `false`.
If `true`, JTReg will use `-match:` option, otherwise `-exclude:` will be used.
Default is `false`.
#### OPTIONS
Additional options to the JTReg test framework.
Use `JTREG="OPTIONS=--help all"` to see all available JTReg options.
#### JAVA_OPTIONS
Additional Java options to JTReg (`-javaoption`).
Additional Java options for running test classes (sent to JTReg as
`-javaoption`).
#### VM_OPTIONS
Additional VM options to JTReg (`-vmoption`).
Additional Java options to be used when compiling and running classes (sent to
JTReg as `-vmoption`).
This option is only needed in special circumstances. To pass Java options to
your test classes, use `JAVA_OPTIONS`.
#### LAUNCHER_OPTIONS
Additional Java options that are sent to the java launcher that starts the
JTReg harness.
#### AOT_MODULES
@@ -339,6 +378,7 @@ Retry failed tests up to a set number of times. Defaults to 0.
### Gtest keywords
#### REPEAT
The number of times to repeat the tests (`--gtest_repeat`).
Default is 1. Set to -1 to repeat indefinitely. This can be especially useful
@@ -346,6 +386,7 @@ combined with `OPTIONS=--gtest_break_on_failure` to reproduce an intermittent
problem.
#### OPTIONS
Additional options to the Gtest test framework.
Use `GTEST="OPTIONS=--help"` to see all available Gtest options.
@@ -359,98 +400,127 @@ modules. If multiple modules are specified, they should be separated by space
### Microbenchmark keywords
#### FORK
Override the number of benchmark forks to spawn. Same as specifying `-f <num>`.
#### ITER
Number of measurement iterations per fork. Same as specifying `-i <num>`.
#### TIME
Amount of time to spend in each measurement iteration, in seconds. Same as
specifying `-r <num>`
#### WARMUP_ITER
Number of warmup iterations to run before the measurement phase in each fork.
Same as specifying `-wi <num>`.
#### WARMUP_TIME
Amount of time to spend in each warmup iteration. Same as specifying `-w <num>`.
#### RESULTS_FORMAT
Specify to have the test run save a log of the values. Accepts the same values
as `-rff`, i.e., `text`, `csv`, `scsv`, `json`, or `latex`.
#### VM_OPTIONS
Additional VM arguments to provide to forked off VMs. Same as `-jvmArgs <args>`
#### OPTIONS
Additional arguments to send to JMH.
## Notes for Specific Tests
### Docker Tests
Docker tests with default parameters may fail on systems with glibc versions not
compatible with the one used in the default docker image (e.g., Oracle Linux 7.6 for x86).
For example, they pass on Ubuntu 16.04 but fail on Ubuntu 18.04 if run like this on x86:
Docker tests with default parameters may fail on systems with glibc versions
not compatible with the one used in the default docker image (e.g., Oracle
Linux 7.6 for x86). For example, they pass on Ubuntu 16.04 but fail on Ubuntu
18.04 if run like this on x86:
$ make test TEST="jtreg:test/hotspot/jtreg/containers/docker"
```
$ make test TEST="jtreg:test/hotspot/jtreg/containers/docker"
```
To run these tests correctly, additional parameters for the correct docker image are
required on Ubuntu 18.04 by using `JAVA_OPTIONS`.
To run these tests correctly, additional parameters for the correct docker
image are required on Ubuntu 18.04 by using `JAVA_OPTIONS`.
$ make test TEST="jtreg:test/hotspot/jtreg/containers/docker" JTREG="JAVA_OPTIONS=-Djdk.test.docker.image.name=ubuntu -Djdk.test.docker.image.version=latest"
```
$ make test TEST="jtreg:test/hotspot/jtreg/containers/docker" \
JTREG="JAVA_OPTIONS=-Djdk.test.docker.image.name=ubuntu
-Djdk.test.docker.image.version=latest"
```
### Non-US locale
If your locale is non-US, some tests are likely to fail. To work around this you can
set the locale to US. On Unix platforms simply setting `LANG="en_US"` in the
environment before running tests should work. On Windows, setting
`JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US"` helps for most, but not all test cases.
If your locale is non-US, some tests are likely to fail. To work around this
you can set the locale to US. On Unix platforms simply setting `LANG="en_US"`
in the environment before running tests should work. On Windows, setting
`JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US"` helps for most, but
not all test cases.
For example:
$ export LANG="en_US" && make test TEST=...
$ make test JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US" TEST=...
```
$ export LANG="en_US" && make test TEST=...
$ make test JTREG="VM_OPTIONS=-Duser.language=en -Duser.country=US" TEST=...
```
### PKCS11 Tests
It is highly recommended to use the latest NSS version when running PKCS11 tests.
Improper NSS version may lead to unexpected failures which are hard to diagnose.
For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail on Ubuntu
18.04 with the default NSS version in the system.
To run these tests correctly, the system property `test.nss.lib.paths` is required
on Ubuntu 18.04 to specify the alternative NSS lib directories.
It is highly recommended to use the latest NSS version when running PKCS11
tests. Improper NSS version may lead to unexpected failures which are hard to
diagnose. For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail
on Ubuntu 18.04 with the default NSS version in the system. To run these tests
correctly, the system property `test.nss.lib.paths` is required on Ubuntu 18.04
to specify the alternative NSS lib directories.
For example:
$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" JTREG="JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs"
```
$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" \
JTREG="JAVA_OPTIONS=-Dtest.nss.lib.paths=/path/to/your/latest/NSS-libs"
```
For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README.
For more notes about the PKCS11 tests, please refer to
test/jdk/sun/security/pkcs11/README.
### Client UI Tests
Some Client UI tests use key sequences which may be reserved by the operating
system. Usually that causes the test failure. So it is highly recommended to disable
system key shortcuts prior testing. The steps to access and disable system key shortcuts
for various platforms are provided below.
system. Usually that causes the test failure. So it is highly recommended to
disable system key shortcuts prior testing. The steps to access and disable
system key shortcuts for various platforms are provided below.
#### MacOS
Choose Apple menu; System Preferences, click Keyboard, then click Shortcuts;
select or deselect desired shortcut.
For example, test/jdk/javax/swing/TooltipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java fails
on MacOS because it uses `CTRL + F1` key sequence to show or hide tooltip message
but the key combination is reserved by the operating system. To run the test correctly
the default global key shortcut should be disabled using the steps described above, and then deselect
"Turn keyboard access on or off" option which is responsible for `CTRL + F1` combination.
For example,
test/jdk/javax/swing/TooltipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java
fails on MacOS because it uses `CTRL + F1` key sequence to show or hide tooltip
message but the key combination is reserved by the operating system. To run the
test correctly the default global key shortcut should be disabled using the
steps described above, and then deselect "Turn keyboard access on or off"
option which is responsible for `CTRL + F1` combination.
#### Linux
Open the Activities overview and start typing Settings; Choose Settings, click Devices,
then click Keyboard; set or override desired shortcut.
Open the Activities overview and start typing Settings; Choose Settings, click
Devices, then click Keyboard; set or override desired shortcut.
#### Windows
Type `gpedit` in the Search and then click Edit group policy; navigate to
User Configuration -> Administrative Templates -> Windows Components -> File Explorer;
in the right-side pane look for "Turn off Windows key hotkeys" and double click on it;
enable or disable hotkeys.
Type `gpedit` in the Search and then click Edit group policy; navigate to User
Configuration -> Administrative Templates -> Windows Components -> File
Explorer; in the right-side pane look for "Turn off Windows key hotkeys" and
double click on it; enable or disable hotkeys.
Note: restart is required to make the settings take effect.

View File

@@ -1,13 +0,0 @@
# jetbrains/runtime:jbr14env
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 13
RUN wget https://download.java.net/java/GA/jdk13.0.1/cec27d702aa74d5a8630c65ae61e4305/9/GPL/openjdk-13.0.1_linux-x64_bin.tar.gz \
-O - | tar xz -C /
ENV JAVA_HOME /jbrsdk
ENV PATH $JAVA_HOME/bin:/opt/rh/devtoolset-8/root/usr/bin:$PATH
RUN mkdir .git
RUN git config user.email "builduser@jetbrains.com"
RUN git config user.name "builduser"

View File

@@ -1,10 +0,0 @@
FROM i386/ubuntu:xenial
RUN linux32 apt-get update && apt-get install -y --no-install-recommends apt-utils
RUN linux32 apt-get -y install file build-essential zip unzip tar wget 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 git
RUN wget https://cdn.azul.com/zulu/bin/zulu13.31.11-ca-jdk13.0.3-linux_i686.tar.gz \
-O - | tar xz -C /
ENV JAVA_HOME /zulu13.31.11-ca-jdk13.0.3-linux_i686
ENV PATH $JAVA_HOME/bin:$PATH

View File

@@ -1,10 +0,0 @@
VENDOR_NAME="JetBrains s.r.o."
VENDOR_VERSION_STRING="JBR-${JBSDK_VERSION_WITH_DOTS}.${JDK_BUILD_NUMBER}-${build_number}"
[ -z ${bundle_type} ] || VENDOR_VERSION_STRING="${VENDOR_VERSION_STRING}-${bundle_type}"
do_reset_changes=0
function do_exit() {
exit_code=$1
[ $do_reset_changes -eq 1 ] && git checkout HEAD modules.list src/java.desktop/share/classes/module-info.java
exit $exit_code
}

View File

@@ -1,85 +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.sh
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
[ -z "$bundle_type" ] && (git apply -p0 < jb/project/tools/patches/exclude_jcef_module.patch || exit $?)
sh configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-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-import-modules=./modular-sdk \
--with-boot-jdk=${BOOT_JDK} \
--enable-cds=yes || exit $?
make clean CONF=linux-aarch64-server-release || exit $?
make images CONF=linux-aarch64-server-release test-image || exit $?
JBSDK=${JBRSDK_BASE_NAME}-linux-aarch64-b${build_number}
BASE_DIR=build/linux-aarch64-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
echo Creating $JBSDK.tar.gz ...
sed 's/JBR/JBRSDK/g' ${BASE_DIR}/${JBRSDK_BUNDLE}/release > release
mv release ${BASE_DIR}/${JBRSDK_BUNDLE}/release
tar -pcf $JBSDK.tar \
--exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man \
-C $BASE_DIR ${JBRSDK_BUNDLE} || exit $?
gzip $JBSDK.tar || exit $?
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-$JBSDK_VERSION
rm -rf $BASE_DIR/$JBR_BUNDLE
JBR=$JBR_BASE_NAME-linux-aarch64-b$build_number
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.aarch64
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.aarch64 | sed s/" "//g | sed s/,$//g) \
--output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
echo Creating $JBR.tar.gz ...
tar -pcf $JBR.tar -C $BASE_DIR ${JBR_BUNDLE} || exit $?
gzip $JBR.tar || exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-aarch64-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' test || exit $?
gzip $JBRSDK_TEST.tar || exit $?

View File

@@ -1,141 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
# Environment variables:
# MODULAR_SDK_PATH - specifies the path to the directory where imported modules are located.
# By default imported modules should be located in ./modular-sdk
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_linux_x64
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
WITH_IMPORT_MODULES="--with-import-modules=${MODULAR_SDK_PATH:=./modular-sdk}"
JCEF_PATH=${JCEF_PATH:=./jcef_linux_x64}
source jb/project/tools/common.sh
function create_jbr {
if [ -z "${bundle_type}" ]; then
JBR_BUNDLE=jbr
else
JBR_BUNDLE=jbr_${bundle_type}
fi
JBR_BASE_NAME=${JBR_BUNDLE}-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
rm -rf ${BASE_DIR}/jbr
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
JBR=$JBR_BASE_NAME-linux-x64-b$build_number
echo Running jlink....
$JSDK/bin/jlink \
--module-path $JSDK/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output $BASE_DIR/$JBR_BUNDLE
if [ ! -z "${bundle_type}" ]; then
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
rsync -av ${JCEF_PATH}/ $BASE_DIR/$JBR_BUNDLE/lib --exclude="modular-sdk" || do_exit $?
fi
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 || do_exit $?
[ -f "$JBR.tar.gz" ] && rm "$JBR.tar.gz"
gzip $JBR.tar || do_exit $?
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
}
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=linux-x86_64-server-release
JBSDK=${JBRSDK_BASE_NAME}-linux-x64-b${build_number}
case "$bundle_type" in
"jcef")
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch
do_reset_changes=1
;;
"nomod" | "")
bundle_type=""
WITH_IMPORT_MODULES=""
;;
"fd")
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=linux-x86_64-server-fastdebug
JBSDK=${JBRSDK_BASE_NAME}-linux-x64-fastdebug-b${build_number}
;;
esac
sh configure \
--disable-warnings-as-errors \
$WITH_DEBUG_LEVEL \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
$WITH_IMPORT_MODULES \
--with-boot-jdk=${BOOT_JDK} \
--enable-cds=yes || do_exit $?
make clean CONF=$RELEASE_NAME || exit $?
make images CONF=$RELEASE_NAME || do_exit $?
JSDK=build/$RELEASE_NAME/images/jdk
echo Fixing permissions
chmod -R a+r $JSDK
BASE_DIR=build/$RELEASE_NAME/images
JBRSDK_BUNDLE=jbrsdk
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
rsync -av ${JCEF_PATH}/ $BASE_DIR/$JBRSDK_BUNDLE/lib --exclude="modular-sdk" || do_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 || do_exit $?
[ -f "$JBSDK.tar.gz" ] && rm "$JBSDK.tar.gz"
gzip $JBSDK.tar || do_exit $?
fi
create_jbr || do_exit $?
if [ "$bundle_type" == "jcef" ]; then
make test-image CONF=$RELEASE_NAME || do_exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-x64-b$build_number
echo Creating $JBSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_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,81 +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.sh
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
[ -z "$bundle_type" ] && (git apply -p0 < jb/project/tools/patches/exclude_jcef_module.patch || exit $?)
linux32 bash configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-opt=b${build_number} \
--with-boot-jdk=${BOOT_JDK} \
--enable-cds=yes || exit $?
make clean CONF=linux-x86-server-release || exit $?
make images CONF=linux-x86-server-release test-image || exit $?
JBSDK=${JBRSDK_BASE_NAME}-linux-x86-b${build_number}
BASE_DIR=build/linux-x86-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
echo Creating $JBSDK.tar.gz ...
sed 's/JBR/JBRSDK/g' ${BASE_DIR}/${JBRSDK_BUNDLE}/release > release
mv release ${BASE_DIR}/${JBRSDK_BUNDLE}/release
tar -pcf $JBSDK.tar --exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man -C $BASE_DIR ${JBRSDK_BUNDLE} || exit $?
gzip $JBSDK.tar || exit $?
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-$JBSDK_VERSION
rm -rf $BASE_DIR/$JBR_BUNDLE
JBR=$JBR_BASE_NAME-linux-x86-b$build_number
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.x86
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.x86 | sed s/" "//g | sed s/,$//g) --output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
echo Creating $JBR.tar.gz ...
tar -pcf $JBR.tar -C $BASE_DIR $JBR_BUNDLE || exit $?
gzip $JBR.tar || exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-x86-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' --exclude='test/hotspot/gtest' test || exit $?
gzip $JBRSDK_TEST.tar || exit $?

View File

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

View File

@@ -1,146 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
# Environment variables:
# MODULAR_SDK_PATH - specifies the path to the directory where imported modules are located.
# By default imported modules should be located in ./modular-sdk
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_mac
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
WITH_IMPORT_MODULES="--with-import-modules=${MODULAR_SDK_PATH:=./modular-sdk}"
JCEF_PATH=${JCEF_PATH:=./jcef_mac}
MAJOR_JBSDK_VERSION=$(echo $JBSDK_VERSION_WITH_DOTS | awk -F "." '{print $1}')
source jb/project/tools/common.sh
function create_jbr {
if [ -z "${bundle_type}" ]; then
JBR_BUNDLE=jbr
else
JBR_BUNDLE=jbr_${bundle_type}
fi
JBR_BASE_NAME=${JBR_BUNDLE}-${JBSDK_VERSION}
cat modules.list > modules_tmp.list
rm -rf ${BASE_DIR}/jbr
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
JRE_CONTENTS=${BASE_DIR}/${JBR_BUNDLE}/Contents
JRE_HOME=${JRE_CONTENTS}/Home
if [ -d "${JRE_CONTENTS}" ]; then
rm -rf ${JRE_CONTENTS}
fi
mkdir -p ${JRE_CONTENTS}
JBR=${JBR_BASE_NAME}-osx-x64-b${build_number}
echo Running jlink....
${BASE_DIR}/$JBRSDK_BUNDLE/Contents/Home/bin/jlink \
--module-path ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output ${JRE_HOME} || do_exit $?
grep -v "^JAVA_VERSION" ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/release | grep -v "^MODULES" >> ${JRE_HOME}/release
cp -R ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/MacOS ${JRE_CONTENTS}
cp ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Info.plist ${JRE_CONTENTS}
rm -rf ${JRE_CONTENTS}/Frameworks || do_exit $?
[ ! -z "${bundle_type}" ] && (cp -a ${JCEF_PATH}/Frameworks ${JRE_CONTENTS} || do_exit $?)
echo Creating ${JBR}.tar.gz ...
[ ! -z "${bundle_type}" ] && cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
COPYFILE_DISABLE=1 tar -pczf ${JBR}.tar.gz --exclude='*.dSYM' --exclude='man' -C ${BASE_DIR} jbr || do_exit $?
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
}
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=macosx-x86_64-server-release
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-b${build_number}
case "$bundle_type" in
"jcef")
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
do_reset_changes=1
;;
"nomod" | "")
bundle_type=""
WITH_IMPORT_MODULES=""
;;
"fd")
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=macosx-x86_64-server-fastdebug
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-fastdebug-b${build_number}
;;
esac
sh configure \
--disable-warnings-as-errors \
$WITH_DEBUG_LEVEL \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
$WITH_IMPORT_MODULES \
--with-boot-jdk=`/usr/libexec/java_home -v 14` \
--enable-cds=yes || do_exit $?
make clean CONF=$RELEASE_NAME || do_exit $?
make images CONF=$RELEASE_NAME || do_exit $?
JSDK=build/$RELEASE_NAME/images/jdk-bundle
BASE_DIR=jre
JBRSDK_BUNDLE=jbrsdk
rm -rf $BASE_DIR
mkdir $BASE_DIR || do_exit $?
cp -a $JSDK/jdk-$MAJOR_JBSDK_VERSION.jdk $BASE_DIR/$JBRSDK_BUNDLE || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
cp -a ${JCEF_PATH}/Frameworks $BASE_DIR/$JBRSDK_BUNDLE/Contents/
echo Creating $JBSDK.tar.gz ...
sed 's/JBR/JBRSDK/g' ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/release > release
mv release ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/release
[ -f "$JBSDK.tar.gz" ] && rm "$JBSDK.tar.gz"
COPYFILE_DISABLE=1 tar -pczf $JBSDK.tar.gz -C $BASE_DIR \
--exclude='._*' --exclude='.DS_Store' --exclude='*~' \
--exclude='Home/demo' --exclude='Home/man' --exclude='Home/sample' \
$JBRSDK_BUNDLE || do_exit $?
fi
create_jbr || do_exit $?
if [ "$bundle_type" == "jcef" ]; then
make test-image CONF=$RELEASE_NAME || do_exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-osx-test-x64-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
COPYFILE_DISABLE=1 tar -pczf $JBRSDK_TEST.tar.gz -C build/${RELEASE_NAME}/images \
--exclude='test/jdk/demos' test || do_exit $?
fi
do_exit 0

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,26 +0,0 @@
From 095315ce3f66bcf14ae1d06d84bbeb24bb068ae8 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Wed, 14 Nov 2018 21:18:22 +0100
Subject: [PATCH 02/48] We need to set classRedefinitionCount on new class, not
old class.
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 83c0952de37..83cf0be090b 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -1904,7 +1904,7 @@ void VM_EnhancedRedefineClasses::increment_class_counter(InstanceKlass *ik, TRAP
oop class_mirror = ik->java_mirror();
Klass* class_oop = java_lang_Class::as_Klass(class_mirror);
int new_count = java_lang_Class::classRedefinedCount(class_mirror) + 1;
- java_lang_Class::set_classRedefinedCount(class_mirror, new_count);
+ java_lang_Class::set_classRedefinedCount(ik->new_version()->java_mirror(), new_count);
if (class_oop != _the_class_oop) {
// _the_class_oop count is printed at end of redefine_single_class()
--
2.24.3 (Apple Git-128)

View File

@@ -1,30 +0,0 @@
From 9ddbbcdc73e653af7807ead68705c1c9267c9192 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Wed, 14 Nov 2018 21:22:01 +0100
Subject: [PATCH 03/48] Fix crashes in MetadataOnStackMark::~MetadataOnSta
MetadataOnStackMark shoukld not remove dcevm stuff. It was added
accidentaly in dcevm9,
and never was part of doit() in previous versions.
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 83cf0be090b..61af07d0f86 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -470,7 +470,9 @@ void VM_EnhancedRedefineClasses::doit() {
// Mark methods seen on stack and everywhere else so old methods are not
// cleaned up if they're on the stack.
- MetadataOnStackMark md_on_stack(true);
+
+ // FIXME: fails in enhanced redefinition
+ // MetadataOnStackMark md_on_stack(true);
HandleMark hm(thread); // make sure any handles created are deleted
// before the stack walk again.
--
2.24.3 (Apple Git-128)

View File

@@ -1,25 +0,0 @@
From bb3eb4931818c3ef43c48d0781d73b8e2eb6dea9 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Mon, 3 Dec 2018 19:34:53 +0100
Subject: [PATCH 04/48] Fix problem with nested members
Reported at : https://stackoverflow.com/questions/53370380/hotswapagent-incompatibleclasschangeerror-type-headerpanel1-is-not-a-nest-mem
---
src/hotspot/share/oops/instanceKlass.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index 8a262bc3735..9b6ba7e9304 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -178,6 +178,7 @@ bool InstanceKlass::has_nest_member(InstanceKlass* k, TRAPS) const {
}
Klass* k2 = _constants->klass_at(cp_index, CHECK_false);
+ k2 = k2->newest_version();
if (k2 == k) {
log_trace(class, nestmates)("- class is listed as a nest member");
return true;
--
2.24.3 (Apple Git-128)

View File

@@ -1,26 +0,0 @@
From 90746a0267b2de4063667f5423093115f814bf08 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Mon, 10 Dec 2018 20:12:07 +0100
Subject: [PATCH 05/48] Use init_mark_raw()
method changed since j8 - it used init_mark()
---
src/hotspot/share/gc/shared/space.inline.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/gc/shared/space.inline.hpp b/src/hotspot/share/gc/shared/space.inline.hpp
index 4394eff00c5..75d7e685edf 100644
--- a/src/hotspot/share/gc/shared/space.inline.hpp
+++ b/src/hotspot/share/gc/shared/space.inline.hpp
@@ -371,7 +371,7 @@ inline void CompactibleSpace::scan_and_compact(SpaceType* space, bool redefiniti
} else {
MarkSweep::update_fields(oop(cur_obj), oop(compaction_top));
}
- oop(compaction_top)->init_mark();
+ oop(compaction_top)->init_mark_raw();
assert(oop(compaction_top)->klass() != NULL, "should have a class");
debug_only(prev_obj = cur_obj);
--
2.24.3 (Apple Git-128)

View File

@@ -1,25 +0,0 @@
From 026346bfb72eaaae53e8998900d9f520da5ef74d Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Thu, 13 Dec 2018 20:51:09 +0100
Subject: [PATCH 06/48] Fix methodHandles
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 61af07d0f86..1c7595787a1 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -248,7 +248,7 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
int ref_kind = (flags >> REFERENCE_KIND_SHIFT) & REFERENCE_KIND_MASK;
if (MethodHandles::ref_kind_is_method(ref_kind)) {
Method* m = (Method*) java_lang_invoke_MemberName::vmtarget(obj);
- if (m != NULL && m->method_holder()->new_version() != NULL) {
+ if (m != NULL && m->method_holder()->is_redefining()) {
// Let's try to re-resolve method
InstanceKlass* newest = InstanceKlass::cast(m->method_holder()->newest_version());
Method* new_method = newest->find_method(m->name(), m->signature());
--
2.24.3 (Apple Git-128)

View File

@@ -1,58 +0,0 @@
From b99ebb71bce6119cd800d69848f84281f2fd2b16 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Sat, 15 Dec 2018 18:23:30 +0100
Subject: [PATCH 07/48] Fix field method
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 1c7595787a1..a3b65b273e5 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -264,21 +264,26 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
}
}
} else if (MethodHandles::ref_kind_is_field(ref_kind)) {
- Klass* k = (Klass*) java_lang_invoke_MemberName::vmtarget(obj);
+ oop clazz = java_lang_invoke_MemberName::clazz(obj);
+ if (clazz == NULL) {
+ return false;
+ }
+ Klass* k = java_lang_Class::as_Klass(clazz);
if (k == NULL) {
return false; // Was cleared before, this MemberName is invalid.
}
- if (k != NULL && k->new_version() != NULL) {
+ if (k->is_redefining()) {
// Let's try to re-resolve field
+ InstanceKlass* old = InstanceKlass::cast(k->old_version());
fieldDescriptor fd;
int offset = java_lang_invoke_MemberName::vmindex(obj);
bool is_static = MethodHandles::ref_kind_is_static(ref_kind);
- InstanceKlass* ik = InstanceKlass::cast(k);
- if (ik->find_local_field_from_offset(offset, is_static, &fd)) {
- InstanceKlass* newest = InstanceKlass::cast(k->newest_version());
+ InstanceKlass* ik_old = InstanceKlass::cast(old);
+ if (ik_old->find_local_field_from_offset(offset, is_static, &fd)) {
+ InstanceKlass* ik_new = InstanceKlass::cast(k->newest_version());
fieldDescriptor fd_new;
- if (newest->find_local_field(fd.name(), fd.signature(), &fd_new)) {
+ if (ik_new->find_local_field(fd.name(), fd.signature(), &fd_new)) {
Handle objHandle(Thread::current(), obj); // TODO : review thread
MethodHandles::init_field_MemberName(objHandle, fd_new, MethodHandles::ref_kind_is_setter(ref_kind));
} else {
@@ -288,7 +293,7 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
// Eventually, we probably want to replace them with something more meaningful,
// like instance throwing NoSuchFieldError or DMH that will resort to dynamic
// field resolution (with possibility of type conversion)
- java_lang_invoke_MemberName::set_method(obj, NULL);
+ java_lang_invoke_MemberName::set_clazz(obj, NULL);
java_lang_invoke_MemberName::set_vmindex(obj, 0);
return false;
}
--
2.24.3 (Apple Git-128)

View File

@@ -1,43 +0,0 @@
From dd57a1b40a83f7691c0fb9aa960f77c4428c0eec Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Sat, 15 Dec 2018 20:16:37 +0100
Subject: [PATCH 08/48] Fix nonstatic field handles
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index a3b65b273e5..c64d6bb1bb5 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -337,6 +337,7 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
if (obj == NULL) {
return;
}
+ bool oop_updated = false;
if (obj->is_instance() && InstanceKlass::cast(obj->klass())->is_mirror_instance_klass()) {
Klass* klass = java_lang_Class::as_Klass(obj);
if (klass != NULL && klass->is_instance_klass()) {
@@ -344,13 +345,17 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
if (klass->new_version() != NULL) {
obj = InstanceKlass::cast(klass->new_version())->java_mirror();
S::oop_store(p, obj);
+ oop_updated = true;
}
}
}
+
// JSR 292 support, uptade java.lang.invoke.MemberName instances
if (java_lang_invoke_MemberName::is_instance(obj)) {
- update_member_name(obj);
+ if (oop_updated) {
+ update_member_name(obj);
+ }
} else if (java_lang_invoke_DirectMethodHandle::is_instance(obj)) {
if (!update_direct_method_handle(obj)) {
// DMH is no longer valid, replace it with null reference.
--
2.24.3 (Apple Git-128)

View File

@@ -1,488 +0,0 @@
From 333c0c639e12296d05a547b015c948516c8c504e Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Wed, 12 Dec 2018 19:38:28 +0100
Subject: [PATCH 09/48] Support for Concurrent Mark Sweep (CMS) collector
---
.../share/gc/cms/compactibleFreeListSpace.cpp | 139 ++++++++++++------
.../share/gc/cms/compactibleFreeListSpace.hpp | 5 +-
.../gc/cms/concurrentMarkSweepThread.cpp | 10 +-
src/hotspot/share/gc/serial/markSweep.cpp | 2 +-
src/hotspot/share/gc/shared/gcConfig.cpp | 2 +-
src/hotspot/share/gc/shared/space.cpp | 16 +-
src/hotspot/share/gc/shared/space.hpp | 6 +-
src/hotspot/share/gc/shared/space.inline.hpp | 16 +-
.../prims/jvmtiEnhancedRedefineClasses.cpp | 12 +-
src/hotspot/share/runtime/arguments.cpp | 6 +-
10 files changed, 135 insertions(+), 79 deletions(-)
diff --git a/src/hotspot/share/gc/cms/compactibleFreeListSpace.cpp b/src/hotspot/share/gc/cms/compactibleFreeListSpace.cpp
index a93f764f1b9..efaa09473a9 100644
--- a/src/hotspot/share/gc/cms/compactibleFreeListSpace.cpp
+++ b/src/hotspot/share/gc/cms/compactibleFreeListSpace.cpp
@@ -376,55 +376,58 @@ CompactibleFreeListSpace::CompactibleFreeListSpace(BlockOffsetSharedArray* bs, M
_used_stable = 0;
}
+#define forward_compact_top_DEFN() \
+ assert(this == cp->space, "'this' should be current compaction space."); \
+ size_t compaction_max_size = pointer_delta(end(), compact_top); \
+ assert(adjustObjectSize(size) == cp->space->adjust_object_size_v(size), \
+ "virtual adjustObjectSize_v() method is not correct"); \
+ size_t adjusted_size = adjustObjectSize(size); \
+ assert(compaction_max_size >= MinChunkSize || compaction_max_size == 0, \
+ "no small fragments allowed"); \
+ assert(minimum_free_block_size() == MinChunkSize, \
+ "for de-virtualized reference below"); \
+ /* Can't leave a nonzero size, residual fragment smaller than MinChunkSize */ \
+ if (adjusted_size + MinChunkSize > compaction_max_size && \
+ adjusted_size != compaction_max_size) { \
+ do { \
+ /* switch to next compaction space*/ \
+ cp->space->set_compaction_top(compact_top); \
+ cp->space = cp->space->next_compaction_space(); \
+ if (cp->space == NULL) { \
+ cp->gen = CMSHeap::heap()->young_gen(); \
+ assert(cp->gen != NULL, "compaction must succeed"); \
+ cp->space = cp->gen->first_compaction_space(); \
+ assert(cp->space != NULL, "generation must have a first compaction space"); \
+ } \
+ compact_top = cp->space->bottom(); \
+ cp->space->set_compaction_top(compact_top); \
+ /* The correct adjusted_size may not be the same as that for this method */ \
+ /* (i.e., cp->space may no longer be "this" so adjust the size again. */ \
+ /* Use the virtual method which is not used above to save the virtual */ \
+ /* dispatch. */ \
+ adjusted_size = cp->space->adjust_object_size_v(size); \
+ compaction_max_size = pointer_delta(cp->space->end(), compact_top); \
+ assert(cp->space->minimum_free_block_size() == 0, "just checking"); \
+ } while (adjusted_size > compaction_max_size); \
+ }
+
+
HeapWord* CompactibleFreeListSpace::forward_compact_top(size_t size,
CompactPoint* cp, HeapWord* compact_top) {
- ShouldNotReachHere();
- return NULL;
+ forward_compact_top_DEFN()
+ return compact_top;
}
// Like CompactibleSpace forward() but always calls cross_threshold() to
// update the block offset table. Removed initialize_threshold call because
// CFLS does not use a block offset array for contiguous spaces.
HeapWord* CompactibleFreeListSpace::forward(oop q, size_t size,
- CompactPoint* cp, HeapWord* compact_top) {
- // q is alive
- // First check if we should switch compaction space
- assert(this == cp->space, "'this' should be current compaction space.");
- size_t compaction_max_size = pointer_delta(end(), compact_top);
- assert(adjustObjectSize(size) == cp->space->adjust_object_size_v(size),
- "virtual adjustObjectSize_v() method is not correct");
- size_t adjusted_size = adjustObjectSize(size);
- assert(compaction_max_size >= MinChunkSize || compaction_max_size == 0,
- "no small fragments allowed");
- assert(minimum_free_block_size() == MinChunkSize,
- "for de-virtualized reference below");
- // Can't leave a nonzero size, residual fragment smaller than MinChunkSize
- if (adjusted_size + MinChunkSize > compaction_max_size &&
- adjusted_size != compaction_max_size) {
- do {
- // switch to next compaction space
- cp->space->set_compaction_top(compact_top);
- cp->space = cp->space->next_compaction_space();
- if (cp->space == NULL) {
- cp->gen = CMSHeap::heap()->young_gen();
- assert(cp->gen != NULL, "compaction must succeed");
- cp->space = cp->gen->first_compaction_space();
- assert(cp->space != NULL, "generation must have a first compaction space");
- }
- compact_top = cp->space->bottom();
- cp->space->set_compaction_top(compact_top);
- // The correct adjusted_size may not be the same as that for this method
- // (i.e., cp->space may no longer be "this" so adjust the size again.
- // Use the virtual method which is not used above to save the virtual
- // dispatch.
- adjusted_size = cp->space->adjust_object_size_v(size);
- compaction_max_size = pointer_delta(cp->space->end(), compact_top);
- assert(cp->space->minimum_free_block_size() == 0, "just checking");
- } while (adjusted_size > compaction_max_size);
- }
+ CompactPoint* cp, HeapWord* compact_top, bool force_forward) {
+ forward_compact_top_DEFN()
// store the forwarding pointer into the mark word
- if ((HeapWord*)q != compact_top) {
+ // the size of object changed for: new_version() != NULL
+ if (force_forward || (HeapWord*)q != compact_top || q->klass()->new_version() != NULL) {
q->forward_to(oop(compact_top));
assert(q->is_gc_marked(), "encoding the pointer should preserve the mark");
} else {
@@ -2196,13 +2199,60 @@ CompactibleFreeListSpace::refillLinearAllocBlock(LinearAllocBlock* blk) {
// Support for compaction
void CompactibleFreeListSpace::prepare_for_compaction(CompactPoint* cp) {
- scan_and_forward(this, cp, false);
- // of the free lists doesn't work after.
+ if (!Universe::is_redefining_gc_run()) {
+ scan_and_forward(this, cp, false);
+ } else {
+ // Redefinition run
+ scan_and_forward(this, cp, true);
+ }
// Prepare_for_compaction() uses the space between live objects
// so that later phase can skip dead space quickly. So verification
// of the free lists doesn't work after.
}
+bool CompactibleFreeListSpace::must_rescue(oop old_obj, oop new_obj) {
+ // Only redefined objects can have the need to be rescued.
+ if (oop(old_obj)->klass()->new_version() == NULL) return false;
+
+ int new_size = adjustObjectSize(old_obj->size_given_klass(oop(old_obj)->klass()->new_version()));
+ int original_size = adjustObjectSize(old_obj->size());
+
+ Generation* tenured_gen = CMSHeap::heap()->old_gen();
+ bool old_in_tenured = tenured_gen->is_in_reserved(old_obj);
+ bool new_in_tenured = tenured_gen->is_in_reserved(new_obj);
+ 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);
+ 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.
+ assert(space_index(old_obj) == space_index(new_obj), "old_obj and new_obj must be in same space");
+ } else {
+ // In the new generation, eden is located before the from space, so a
+ // simple pointer comparison is sufficient.
+ assert(CMSHeap::heap()->young_gen()->is_in_reserved(old_obj), "old_obj must be in DefNewGeneration");
+ assert(CMSHeap::heap()->young_gen()->is_in_reserved(new_obj), "new_obj must be in DefNewGeneration");
+ assert(overlap == (space_index(old_obj) < space_index(new_obj)), "slow and fast computation must yield same result");
+ }
+ return overlap;
+
+ } else {
+ assert(space_index(old_obj) != space_index(new_obj), "old_obj and new_obj must be in different spaces");
+ if (new_in_tenured) {
+ // Must never rescue when moving from the new into the old generation.
+ assert(CMSHeap::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");
+ return false;
+
+ } else /* if (tenured_gen->is_in_reserved(old_obj)) */ {
+ // Must always rescue when moving from the old into the new generation.
+ assert(CMSHeap::heap()->young_gen()->is_in_reserved(new_obj), "new_obj must be in DefNewGeneration");
+ assert(space_index(old_obj) < space_index(new_obj), "must be");
+ return true;
+ }
+ }
+}
+
void CompactibleFreeListSpace::adjust_pointers() {
// In other versions of adjust_pointers(), a bail out
// based on the amount of live data in the generation
@@ -2215,7 +2265,12 @@ void CompactibleFreeListSpace::adjust_pointers() {
}
void CompactibleFreeListSpace::compact() {
- scan_and_compact(this, false);
+ if(!Universe::is_redefining_gc_run()) {
+ scan_and_compact(this, false);
+ } else {
+ // Redefinition run
+ scan_and_compact(this, true);
+ }
}
// Fragmentation metric = 1 - [sum of (fbs**2) / (sum of fbs)**2]
diff --git a/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp b/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp
index 9fd2ea58320..d29b81f6fca 100644
--- a/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp
+++ b/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp
@@ -201,7 +201,7 @@ class CompactibleFreeListSpace: public CompactibleSpace {
// Support for compacting cms
HeapWord* cross_threshold(HeapWord* start, HeapWord* end);
HeapWord* forward_compact_top(size_t size, CompactPoint* cp, HeapWord* compact_top);
- HeapWord* forward(oop q, size_t size, CompactPoint* cp, HeapWord* compact_top);
+ HeapWord* forward(oop q, size_t size, CompactPoint* cp, HeapWord* compact_top, bool force_forward);
// Initialization helpers.
void initializeIndexedFreeListArray();
@@ -576,6 +576,9 @@ class CompactibleFreeListSpace: public CompactibleSpace {
// Support for compaction.
void prepare_for_compaction(CompactPoint* cp);
+
+ bool must_rescue(oop old_obj, oop new_obj);
+
void adjust_pointers();
void compact();
// Reset the space to reflect the fact that a compaction of the
diff --git a/src/hotspot/share/gc/cms/concurrentMarkSweepThread.cpp b/src/hotspot/share/gc/cms/concurrentMarkSweepThread.cpp
index 3ada5755875..b6e930922d7 100644
--- a/src/hotspot/share/gc/cms/concurrentMarkSweepThread.cpp
+++ b/src/hotspot/share/gc/cms/concurrentMarkSweepThread.cpp
@@ -78,10 +78,12 @@ void ConcurrentMarkSweepThread::run_service() {
while (!should_terminate()) {
sleepBeforeNextCycle();
if (should_terminate()) break;
- GCIdMark gc_id_mark;
- GCCause::Cause cause = _collector->_full_gc_requested ?
- _collector->_full_gc_cause : GCCause::_cms_concurrent_mark;
- _collector->collect_in_background(cause);
+ if (!Universe::is_redefining_gc_run()) {
+ GCIdMark gc_id_mark;
+ GCCause::Cause cause = _collector->_full_gc_requested ?
+ _collector->_full_gc_cause : GCCause::_cms_concurrent_mark;
+ _collector->collect_in_background(cause);
+ }
}
// Check that the state of any protocol for synchronization
diff --git a/src/hotspot/share/gc/serial/markSweep.cpp b/src/hotspot/share/gc/serial/markSweep.cpp
index d0ff86c8215..b4ed59f020c 100644
--- a/src/hotspot/share/gc/serial/markSweep.cpp
+++ b/src/hotspot/share/gc/serial/markSweep.cpp
@@ -247,7 +247,7 @@ void MarkSweep::copy_rescued_objects_back() {
FREE_RESOURCE_ARRAY(HeapWord, rescued_ptr, size);
- new_obj->init_mark();
+ new_obj->init_mark_raw();
assert(oopDesc::is_oop(new_obj), "must be a valid oop");
}
_rescued_oops->clear();
diff --git a/src/hotspot/share/gc/shared/gcConfig.cpp b/src/hotspot/share/gc/shared/gcConfig.cpp
index 8aac2b39e1e..39364a64cb2 100644
--- a/src/hotspot/share/gc/shared/gcConfig.cpp
+++ b/src/hotspot/share/gc/shared/gcConfig.cpp
@@ -101,7 +101,7 @@ void GCConfig::fail_if_unsupported_gc_is_selected() {
}
void GCConfig::select_gc_ergonomically() {
- if (AllowEnhancedClassRedefinition) {
+ if (AllowEnhancedClassRedefinition && !UseConcMarkSweepGC) {
// Enhanced class redefinition only supports serial GC at the moment
FLAG_SET_ERGO(bool, UseSerialGC, true);
} else if (os::is_server_class_machine()) {
diff --git a/src/hotspot/share/gc/shared/space.cpp b/src/hotspot/share/gc/shared/space.cpp
index 763abc91a39..947dff8ae0c 100644
--- a/src/hotspot/share/gc/shared/space.cpp
+++ b/src/hotspot/share/gc/shared/space.cpp
@@ -388,11 +388,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 ((HeapWord*)q != compact_top || (size_t)q->size() != size) {
+ if (force_forward || (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 {
@@ -514,7 +514,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");
@@ -858,14 +858,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 && oop(q)->klass()->new_version()->update_information() != 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;
}
@@ -879,7 +879,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.
@@ -895,11 +895,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 8eb5669fb79..901c89d8a30 100644
--- a/src/hotspot/share/gc/shared/space.hpp
+++ b/src/hotspot/share/gc/shared/space.hpp
@@ -421,7 +421,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
@@ -452,11 +452,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 75d7e685edf..26e56ae6f7e 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.
@@ -351,7 +354,7 @@ inline void CompactibleSpace::scan_and_compact(SpaceType* space, bool redefiniti
HeapWord* compaction_top = (HeapWord*)oop(cur_obj)->forwardee();
if (redefinition_run && space->must_rescue(oop(cur_obj), oop(cur_obj)->forwardee())) {
- space->rescue(cur_obj);
+ space->rescue(cur_obj);
debug_only(Copy::fill_to_words(cur_obj, size, 0));
cur_obj += size;
continue;
@@ -361,8 +364,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 c64d6bb1bb5..9b8678a53fb 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -52,6 +52,7 @@
#include "prims/jvmtiThreadState.inline.hpp"
#include "utilities/events.hpp"
#include "oops/constantPool.inline.hpp"
+#include "gc/cms/cmsHeap.hpp"
Array<Method*>* VM_EnhancedRedefineClasses::_old_methods = NULL;
Array<Method*>* VM_EnhancedRedefineClasses::_new_methods = NULL;
@@ -420,13 +421,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);
@@ -436,11 +435,6 @@ public:
// FIXME: instance updates...
//guarantee(false, "instance updates!");
MarkSweep::update_fields(obj, src, new_klass->update_information());
-
- if (size_diff > 0) {
- HeapWord* dead_space = ((HeapWord *)obj) + obj->size();
- CollectedHeap::fill_with_object(dead_space, size_diff);
- }
}
} else {
obj->set_klass(obj->klass()->new_version());
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index ca57b524593..2ca6dde069d 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -2047,14 +2047,14 @@ bool Arguments::check_gc_consistency() {
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 && i >= 1) {
+ if ((!UseSerialGC && !UseConcMarkSweepGC) && i >= 1) {
jio_fprintf(defaultStream::error_stream(),
- "Must use the serial GC with enhanced class redefinition\n");
+ "Must use the serial or concurrent mark sweep GC with enhanced class redefinition.\n");
return false;
}
}
- if (i > 1) {
+ if (i > 2) {
jio_fprintf(defaultStream::error_stream(),
"Conflicting collector combinations in option list; "
"please refer to the release notes for the combinations "
--
2.24.3 (Apple Git-128)

View File

@@ -1,257 +0,0 @@
From b9ceda6f7c230750a87e8a686d833ce853d84712 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Sat, 29 Dec 2018 13:22:29 +0100
Subject: [PATCH 10/48] Code cleanup
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 125 ++++++------------
.../prims/jvmtiEnhancedRedefineClasses.hpp | 3 -
2 files changed, 40 insertions(+), 88 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 9b8678a53fb..0aa1ac4ff80 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -35,7 +35,7 @@
#include "memory/metaspaceShared.hpp"
#include "memory/resourceArea.hpp"
#include "memory/iterator.inline.hpp"
-#include "gc/serial/markSweep.hpp" // FIXME: other GC?
+#include "gc/serial/markSweep.hpp"
#include "oops/fieldStreams.hpp"
#include "oops/klassVtable.hpp"
#include "oops/oop.inline.hpp"
@@ -485,7 +485,9 @@ void VM_EnhancedRedefineClasses::doit() {
}
// Deoptimize all compiled code that depends on this class (do only once, because it clears whole cache)
- flush_dependent_code(NULL, thread);
+ //if (_max_redefinition_flags > Klass::ModifyClass) {
+ flush_dependent_code(NULL, thread);
+ //}
// JSR-292 support
if (_any_class_has_resolved_methods) {
@@ -593,17 +595,28 @@ void VM_EnhancedRedefineClasses::doit() {
// See jvmtiExport.hpp for detailed explanation.
JvmtiExport::set_has_redefined_a_class();
- // check_class() is optionally called for product bits, but is
- // always called for non-product bits.
#ifdef PRODUCT
if (log_is_enabled(Trace, redefine, class, obsolete, metadata)) {
#endif
- log_trace(redefine, class, obsolete, metadata)("calling check_class");
- CheckClass check_class(thread);
- ClassLoaderDataGraph::classes_do(&check_class);
+ for (int i=0; i<_affected_klasses->length(); i++) {
+ Klass* the_class = _affected_klasses->at(i);
+ assert(the_class->new_version() != NULL, "Must have been redefined");
+ Klass* new_version = the_class->new_version();
+ assert(new_version->new_version() == NULL, "Must be newest version");
+
+ if (!(new_version->super() == NULL || new_version->super()->new_version() == NULL)) {
+ new_version->print();
+ new_version->super()->print();
+ }
+ assert(new_version->super() == NULL || new_version->super()->new_version() == NULL, "Super class must be newest version");
+ }
+ log_trace(redefine, class, obsolete, metadata)("calling check_class");
+ CheckClass check_class(thread);
+ ClassLoaderDataGraph::classes_do(&check_class);
#ifdef PRODUCT
}
#endif
+
}
/**
@@ -1279,24 +1292,23 @@ void VM_EnhancedRedefineClasses::calculate_instance_update_information(Klass* ne
GrowableArray<int> result = cl.finish();
ik->store_update_information(result);
ik->set_copying_backwards(cl.does_copy_backwards());
-/* TODO logging
- if (RC_TRACE_ENABLED(0x00000001)) {
- RC_TRACE(0x00000001, ("Instance update information for %s:", new_version->name()->as_C_string()));
+ if (log_is_enabled(Trace, redefine, class, obsolete, metadata)) {
+ log_trace(redefine, class, obsolete, metadata)("Instance update information for %s:", new_version->name()->as_C_string());
if (cl.does_copy_backwards()) {
- RC_TRACE(0x00000001, ("\tDoes copy backwards!"));
+ log_trace(redefine, class, obsolete, metadata)("\tDoes copy backwards!");
}
for (int i=0; i<result.length(); i++) {
int curNum = result.at(i);
if (curNum < 0) {
- RC_TRACE(0x00000001, ("\t%d CLEAN", curNum));
+ log_trace(redefine, class, obsolete, metadata)("\t%d CLEAN", curNum);
} else if (curNum > 0) {
- RC_TRACE(0x00000001, ("\t%d COPY from %d", curNum, result.at(i + 1)));
+ log_trace(redefine, class, obsolete, metadata)("\t%d COPY from %d", curNum, result.at(i + 1));
i++;
} else {
- RC_TRACE(0x00000001, ("\tEND"));
+ log_trace(redefine, class, obsolete, metadata)("\tEND");
}
}
- }*/
+ }
}
/**
@@ -1813,6 +1825,7 @@ void VM_EnhancedRedefineClasses::compute_added_deleted_matching_methods() {
/**
FIXME - swap_annotations is never called, check that annotations work
*/
+// TODO : delete it
void VM_EnhancedRedefineClasses::swap_annotations(InstanceKlass* the_class,
InstanceKlass* new_class) {
// FIXME - probably original implementation only
@@ -1822,7 +1835,6 @@ void VM_EnhancedRedefineClasses::swap_annotations(InstanceKlass* the_class,
new_class->set_annotations(old_annotations);
}
-
// Install the redefinition of a class:
// - house keeping (flushing breakpoints and caches, deoptimizing
// dependent compiled code)
@@ -1853,7 +1865,9 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_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
- // flush_dependent_code(the_class, THREAD);
+ //if (_max_redefinition_flags <= Klass::ModifyClass) {
+ //flush_dependent_code(the_class, THREAD);
+ //}
_old_methods = the_class->methods();
_new_methods = new_class->methods();
@@ -1928,64 +1942,15 @@ void VM_EnhancedRedefineClasses::increment_class_counter(InstanceKlass *ik, TRAP
}
}
-// FIXME - class check is currently disabled
void VM_EnhancedRedefineClasses::CheckClass::do_klass(Klass* k) {
- return;
- bool no_old_methods = true; // be optimistic
-
- // Both array and instance classes have vtables.
- // a vtable should never contain old or obsolete methods
- ResourceMark rm(_thread);
- if (k->vtable_length() > 0 &&
- !k->vtable().check_no_old_or_obsolete_entries()) {
- if (log_is_enabled(Trace, redefine, class, obsolete, metadata)) {
- log_trace(redefine, class, obsolete, metadata)
- ("klassVtable::check_no_old_or_obsolete_entries failure -- OLD or OBSOLETE method found -- class: %s",
- k->signature_name());
- k->vtable().dump_vtable();
- }
- no_old_methods = false;
- }
-
- if (k->is_instance_klass()) {
- HandleMark hm(_thread);
- InstanceKlass *ik = InstanceKlass::cast(k);
+ HandleMark hm(_thread);
+ InstanceKlass *ik = (InstanceKlass *) k;
+ assert(ik->new_version() == NULL, "must be latest version in system dictionary");
- // an itable should never contain old or obsolete methods
- if (ik->itable_length() > 0 &&
- !ik->itable().check_no_old_or_obsolete_entries()) {
- if (log_is_enabled(Trace, redefine, class, obsolete, metadata)) {
- log_trace(redefine, class, obsolete, metadata)
- ("klassItable::check_no_old_or_obsolete_entries failure -- OLD or OBSOLETE method found -- class: %s",
- ik->signature_name());
- ik->itable().dump_itable();
- }
- no_old_methods = false;
- }
-
- // the constant pool cache should never contain non-deleted old or obsolete methods
- if (ik->constants() != NULL &&
- ik->constants()->cache() != NULL &&
- !ik->constants()->cache()->check_no_old_or_obsolete_entries()) {
- if (log_is_enabled(Trace, redefine, class, obsolete, metadata)) {
- log_trace(redefine, class, obsolete, metadata)
- ("cp-cache::check_no_old_or_obsolete_entries failure -- OLD or OBSOLETE method found -- class: %s",
- ik->signature_name());
- ik->constants()->cache()->dump_cache();
- }
- no_old_methods = false;
- }
- }
-
- // print and fail guarantee if old methods are found.
- if (!no_old_methods) {
- if (log_is_enabled(Trace, redefine, class, obsolete, metadata)) {
- dump_methods();
- } else {
- log_trace(redefine, class)("Use the '-Xlog:redefine+class*:' option "
- "to see more info about the following guarantee() failure.");
- }
- guarantee(false, "OLD and/or OBSOLETE method(s) found");
+ if (ik->vtable_length() > 0) {
+ ResourceMark rm(_thread);
+ assert(ik->vtable().check_no_old_or_obsolete_entries(), "old method found");
+ ik->vtable().verify(tty, true);
}
}
@@ -2051,15 +2016,6 @@ void VM_EnhancedRedefineClasses::dump_methods() {
}
}
-// TODO - is it called anywhere?
-void VM_EnhancedRedefineClasses::print_on_error(outputStream* st) const {
- VM_Operation::print_on_error(st);
- if (_the_class_oop != NULL) {
- ResourceMark rm;
- st->print_cr(", redefining class %s", _the_class_oop->external_name());
- }
-}
-
/**
Helper class to traverse all loaded classes and figure out if the class is affected by redefinition.
*/
@@ -2093,7 +2049,7 @@ class AffectedKlassClosure : public KlassClosure {
log_trace(redefine, class, load)("found affected class: %s", klass->name()->as_C_string());
klass->set_redefinition_flag(Klass::MarkedAsAffected);
_affected_klasses->append(klass);
- return;
+ return;
}
}
@@ -2125,7 +2081,7 @@ 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);
- // TODO: j10 - review chancge from SystemDictionary::classes_do(&closure);
+ // Updated in j10, from original SystemDictionary::classes_do
ClassLoaderDataGraph::dictionary_classes_do(&closure);
log_trace(redefine, class, load)("%d classes affected", _affected_klasses->length());
@@ -2160,7 +2116,6 @@ static bool match_second(void* value, KlassPair elem) {
For each class to be redefined parse the bytecode and figure out the superclass and all interfaces.
First newly introduced classes (_class_defs) are scanned and then affected classed (_affected_klasses).
Affected flag is cleared (clear_redefinition_flag(Klass::MarkedAsAffected))
-
For each dependency create a KlassPair instance. Finnaly, affected classes (_affected_klasses) are sorted according to pairs.
TODO - the class file is potentionally parsed multiple times - introduce a cache?
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index b712d69a193..37e63a1810f 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -195,8 +195,5 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
// Modifiable test must be shared between IsModifiableClass query
// and redefine implementation
static bool is_modifiable_class(oop klass_mirror);
-
- // Error printing
- void print_on_error(outputStream* st) const;
};
#endif // SHARE_VM_PRIMS_JVMTIREDEFINECLASSES2_HPP
--
2.24.3 (Apple Git-128)

View File

@@ -1,118 +0,0 @@
From 1d147a5db94b531fa027d5e13e4dd5cbaef62952 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Sat, 29 Dec 2018 16:05:25 +0100
Subject: [PATCH 11/48] Fix check_class
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 39 +++++++------------
.../prims/jvmtiEnhancedRedefineClasses.hpp | 5 +--
2 files changed, 16 insertions(+), 28 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 0aa1ac4ff80..c08b3e82b2e 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -1,4 +1,4 @@
-/*
+ /*
* Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -28,6 +28,7 @@
#include "classfile/metadataOnStackMark.hpp"
#include "classfile/systemDictionary.hpp"
#include "classfile/verifier.hpp"
+#include "classfile/dictionary.hpp"
#include "interpreter/oopMapCache.hpp"
#include "interpreter/rewriter.hpp"
#include "logging/logStream.hpp"
@@ -611,8 +612,7 @@ void VM_EnhancedRedefineClasses::doit() {
assert(new_version->super() == NULL || new_version->super()->new_version() == NULL, "Super class must be newest version");
}
log_trace(redefine, class, obsolete, metadata)("calling check_class");
- CheckClass check_class(thread);
- ClassLoaderDataGraph::classes_do(&check_class);
+ ClassLoaderData::the_null_class_loader_data()->dictionary()->classes_do(check_class, thread);
#ifdef PRODUCT
}
#endif
@@ -1822,19 +1822,6 @@ void VM_EnhancedRedefineClasses::compute_added_deleted_matching_methods() {
assert(_matching_methods_length + _added_methods_length == _new_methods->length(), "sanity");
}
-/**
- FIXME - swap_annotations is never called, check that annotations work
-*/
-// TODO : delete it
-void VM_EnhancedRedefineClasses::swap_annotations(InstanceKlass* the_class,
- InstanceKlass* new_class) {
- // FIXME - probably original implementation only
- // Swap annotation fields values
- Annotations* old_annotations = the_class->annotations();
- the_class->set_annotations(new_class->annotations());
- new_class->set_annotations(old_annotations);
-}
-
// Install the redefinition of a class:
// - house keeping (flushing breakpoints and caches, deoptimizing
// dependent compiled code)
@@ -1942,15 +1929,17 @@ void VM_EnhancedRedefineClasses::increment_class_counter(InstanceKlass *ik, TRAP
}
}
-void VM_EnhancedRedefineClasses::CheckClass::do_klass(Klass* k) {
- HandleMark hm(_thread);
- InstanceKlass *ik = (InstanceKlass *) k;
- assert(ik->new_version() == NULL, "must be latest version in system dictionary");
+void VM_EnhancedRedefineClasses::check_class(InstanceKlass* ik, TRAPS) {
+ if (ik->is_instance_klass() && ik->old_version() != NULL) {
+ HandleMark hm(THREAD);
+
+ assert(ik->new_version() == NULL, "must be latest version in system dictionary");
- if (ik->vtable_length() > 0) {
- ResourceMark rm(_thread);
- assert(ik->vtable().check_no_old_or_obsolete_entries(), "old method found");
- ik->vtable().verify(tty, true);
+ if (ik->vtable_length() > 0) {
+ ResourceMark rm(THREAD);
+ assert(ik->vtable().check_no_old_or_obsolete_entries(), "old method found");
+ ik->vtable().verify(tty, true);
+ }
}
}
@@ -2017,7 +2006,7 @@ void VM_EnhancedRedefineClasses::dump_methods() {
}
/**
- Helper class to traverse all loaded classes and figure out if the class is affected by redefinition.
+ Helper class to traverse all loaded classes and figure out if the class is affected by redefinition.
*/
class AffectedKlassClosure : public KlassClosure {
private:
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 37e63a1810f..5b3ebc13661 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -144,15 +144,14 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
// Install the redefinition of a class
void redefine_single_class(InstanceKlass* new_class_oop, TRAPS);
- void swap_annotations(InstanceKlass* new_class,
- InstanceKlass* scratch_class);
-
// Increment the classRedefinedCount field in the specific InstanceKlass
// and in all direct and indirect subclasses.
void increment_class_counter(InstanceKlass *ik, TRAPS);
void flush_dependent_code(InstanceKlass* k_h, TRAPS);
+ static void check_class(InstanceKlass* k_oop, TRAPS);
+
static void dump_methods();
// Check that there are no old or obsolete methods
--
2.24.3 (Apple Git-128)

View File

@@ -1,24 +0,0 @@
From 84777c09ddbbbbd6a90de5b1f17a4101c8f076b8 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Sat, 29 Dec 2018 17:58:39 +0100
Subject: [PATCH 12/48] Fix force_forward in dead space
---
src/hotspot/share/gc/shared/space.inline.hpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/hotspot/share/gc/shared/space.inline.hpp b/src/hotspot/share/gc/shared/space.inline.hpp
index 26e56ae6f7e..8c255d6d428 100644
--- a/src/hotspot/share/gc/shared/space.inline.hpp
+++ b/src/hotspot/share/gc/shared/space.inline.hpp
@@ -213,6 +213,7 @@ inline void CompactibleSpace::scan_and_forward(SpaceType* space, CompactPoint* c
// see if this is the first dead region.
if (first_dead == NULL) {
first_dead = cur_obj;
+ force_forward = true;
}
}
--
2.24.3 (Apple Git-128)

View File

@@ -1,25 +0,0 @@
From 4d973861fbcd13dc50bd603f731c75d2013034c6 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Fri, 1 Mar 2019 18:45:13 +0100
Subject: [PATCH 13/48] Cleanup
---
src/hotspot/share/gc/shared/space.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/gc/shared/space.cpp b/src/hotspot/share/gc/shared/space.cpp
index 947dff8ae0c..56b144b46f1 100644
--- a/src/hotspot/share/gc/shared/space.cpp
+++ b/src/hotspot/share/gc/shared/space.cpp
@@ -862,7 +862,7 @@ HeapWord* CompactibleSpace::forward_with_rescue(HeapWord* q, size_t size,
size_t forward_size = size;
// (DCEVM) There is a new version of the class of q => different size
- if (oop(q)->klass()->new_version() != NULL && oop(q)->klass()->new_version()->update_information() != NULL) {
+ 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");
--
2.24.3 (Apple Git-128)

View File

@@ -1,61 +0,0 @@
From 5f31460556d86fa0233e7998112a65483034fd45 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Sat, 29 Dec 2018 17:38:27 +0100
Subject: [PATCH 14/48] Add codecache flush optimization, but just flush all
cache.
Redefined class can define a new method that overrides
method in superclass which is already used in codecache for
optimized non-virtual calls, etc...
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index c08b3e82b2e..4ca638548dc 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -486,9 +486,9 @@ 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) {
+ // if (_max_redefinition_flags > Klass::ModifyClass) {
flush_dependent_code(NULL, thread);
- //}
+ // }
// JSR-292 support
if (_any_class_has_resolved_methods) {
@@ -1736,8 +1736,14 @@ void VM_EnhancedRedefineClasses::flush_dependent_code(InstanceKlass* k_h, TRAPS)
// All dependencies have been recorded from startup or this is a second or
// subsequent use of RedefineClasses
// FIXME: for now, deoptimize all!
- if (0 && JvmtiExport::all_dependencies_are_recorded()) {
+ 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();
+ }
} else {
CodeCache::mark_all_nmethods_for_deoptimization();
@@ -1852,9 +1858,9 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_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);
- //}
+// if (_max_redefinition_flags <= Klass::ModifyClass) {
+// flush_dependent_code(the_class, THREAD);
+// }
_old_methods = the_class->methods();
_new_methods = new_class->methods();
--
2.24.3 (Apple Git-128)

View File

@@ -1,484 +0,0 @@
From d457702275bc47f3f9ea416dc794be403bc6eb94 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Wed, 14 Nov 2018 21:20:08 +0100
Subject: [PATCH 15/48] HotswapAgent integration
It include:
- option to compile DCEVM only version with -DDCEVM_ONLY added
to CFLAGS (bash configure --with-extra-cflags="-DDCEVM_ONLY"), by
default compilation goes with HotswapAgent
Add --add-opens for necessary modules/packages
- java.base/java.lang - for reflection access to Proxy.proxyCache
- java.base/jdk.internal.loader - for access proxyCache class
- java.desktop/java.beans - for reflection access to Introspector
- be quiet if HotswapAgent is not found in lib/, it is compatible with
old DCEVM
- disable hotswapagent for -Xshare:dump
- disable HotswapAgent in jvm tools
---
make/launcher/Launcher-java.rmi.gmk | 2 +
make/launcher/Launcher-java.scripting.gmk | 3 +-
make/launcher/Launcher-java.security.jgss.gmk | 3 +
make/launcher/Launcher-jdk.aot.gmk | 2 +
make/launcher/Launcher-jdk.compiler.gmk | 5 +-
make/launcher/Launcher-jdk.hotspot.agent.gmk | 1 +
make/launcher/Launcher-jdk.jartool.gmk | 2 +
make/launcher/Launcher-jdk.javadoc.gmk | 3 +-
make/launcher/Launcher-jdk.jcmd.gmk | 13 +++-
make/launcher/Launcher-jdk.jconsole.gmk | 3 +-
make/launcher/Launcher-jdk.jdeps.gmk | 3 +
make/launcher/Launcher-jdk.jdi.gmk | 1 +
make/launcher/Launcher-jdk.jlink.gmk | 5 +-
make/launcher/Launcher-jdk.jshell.gmk | 1 +
make/launcher/Launcher-jdk.jstatd.gmk | 1 +
make/launcher/Launcher-jdk.pack.gmk | 1 +
make/launcher/Launcher-jdk.rmic.gmk | 1 +
.../Launcher-jdk.scripting.nashorn.shell.gmk | 3 +-
src/hotspot/share/runtime/arguments.cpp | 59 +++++++++++++++++++
src/hotspot/share/runtime/arguments.hpp | 3 +
src/hotspot/share/runtime/globals.hpp | 12 +++-
21 files changed, 117 insertions(+), 10 deletions(-)
diff --git a/make/launcher/Launcher-java.rmi.gmk b/make/launcher/Launcher-java.rmi.gmk
index a69a90bcc81..07046232275 100644
--- a/make/launcher/Launcher-java.rmi.gmk
+++ b/make/launcher/Launcher-java.rmi.gmk
@@ -27,8 +27,10 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, rmid, \
MAIN_CLASS := sun.rmi.server.Activation, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, rmiregistry, \
MAIN_CLASS := sun.rmi.registry.RegistryImpl, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
diff --git a/make/launcher/Launcher-java.scripting.gmk b/make/launcher/Launcher-java.scripting.gmk
index 057d2bf3aca..cf100e20789 100644
--- a/make/launcher/Launcher-java.scripting.gmk
+++ b/make/launcher/Launcher-java.scripting.gmk
@@ -27,5 +27,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jrunscript, \
MAIN_CLASS := com.sun.tools.script.shell.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT \
+ -XX:+DisableHotswapAgent, \
))
diff --git a/make/launcher/Launcher-java.security.jgss.gmk b/make/launcher/Launcher-java.security.jgss.gmk
index 7411e1a21c4..2b856bfccb4 100644
--- a/make/launcher/Launcher-java.security.jgss.gmk
+++ b/make/launcher/Launcher-java.security.jgss.gmk
@@ -28,13 +28,16 @@ include LauncherCommon.gmk
ifeq ($(OPENJDK_TARGET_OS), windows)
$(eval $(call SetupBuildLauncher, kinit, \
MAIN_CLASS := sun.security.krb5.internal.tools.Kinit, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, klist, \
MAIN_CLASS := sun.security.krb5.internal.tools.Klist, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, ktab, \
MAIN_CLASS := sun.security.krb5.internal.tools.Ktab, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
endif
diff --git a/make/launcher/Launcher-jdk.aot.gmk b/make/launcher/Launcher-jdk.aot.gmk
index 10717a5e1c5..2c52c31a555 100644
--- a/make/launcher/Launcher-jdk.aot.gmk
+++ b/make/launcher/Launcher-jdk.aot.gmk
@@ -31,6 +31,7 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jaotc, \
MAIN_CLASS := jdk.tools.jaotc.Main, \
EXTRA_JAVA_ARGS := -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI \
+ -XX:+DisableHotswapAgent \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.aarch64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.amd64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
@@ -40,6 +41,7 @@ $(eval $(call SetupBuildLauncher, jaotc, \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
, \
JAVA_ARGS := --add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
+ -XX:+DisableHotswapAgent \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.sparc=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
diff --git a/make/launcher/Launcher-jdk.compiler.gmk b/make/launcher/Launcher-jdk.compiler.gmk
index f71c37adf74..744969546de 100644
--- a/make/launcher/Launcher-jdk.compiler.gmk
+++ b/make/launcher/Launcher-jdk.compiler.gmk
@@ -27,12 +27,14 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, javac, \
MAIN_CLASS := com.sun.tools.javac.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT \
+ -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
$(eval $(call SetupBuildLauncher, serialver, \
MAIN_CLASS := sun.tools.serialver.SerialVer, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
@@ -41,6 +43,7 @@ ifeq ($(ENABLE_SJAVAC), yes)
# into any real images
$(eval $(call SetupBuildLauncher, sjavac, \
MAIN_CLASS := com.sun.tools.sjavac.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
OUTPUT_DIR := $(JDK_OUTPUTDIR)/bin, \
))
diff --git a/make/launcher/Launcher-jdk.hotspot.agent.gmk b/make/launcher/Launcher-jdk.hotspot.agent.gmk
index 76da3600368..9f12b05b172 100644
--- a/make/launcher/Launcher-jdk.hotspot.agent.gmk
+++ b/make/launcher/Launcher-jdk.hotspot.agent.gmk
@@ -27,5 +27,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jhsdb, \
MAIN_CLASS := sun.jvm.hotspot.SALauncher, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
MACOSX_PRIVILEGED := true, \
))
diff --git a/make/launcher/Launcher-jdk.jartool.gmk b/make/launcher/Launcher-jdk.jartool.gmk
index f74e82bfdae..647d82b65b1 100644
--- a/make/launcher/Launcher-jdk.jartool.gmk
+++ b/make/launcher/Launcher-jdk.jartool.gmk
@@ -27,8 +27,10 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jar, \
MAIN_CLASS := sun.tools.jar.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, jarsigner, \
MAIN_CLASS := sun.security.tools.jarsigner.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
diff --git a/make/launcher/Launcher-jdk.javadoc.gmk b/make/launcher/Launcher-jdk.javadoc.gmk
index 889028a2b17..c3d2093be04 100644
--- a/make/launcher/Launcher-jdk.javadoc.gmk
+++ b/make/launcher/Launcher-jdk.javadoc.gmk
@@ -27,6 +27,7 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, javadoc, \
MAIN_CLASS := jdk.javadoc.internal.tool.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT \
+ -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.jcmd.gmk b/make/launcher/Launcher-jdk.jcmd.gmk
index 7117fa78059..761a52d8466 100644
--- a/make/launcher/Launcher-jdk.jcmd.gmk
+++ b/make/launcher/Launcher-jdk.jcmd.gmk
@@ -30,6 +30,7 @@ $(eval $(call SetupBuildLauncher, jinfo, \
JAVA_ARGS := \
-Dsun.jvm.hotspot.debugger.useProcDebugger \
-Dsun.jvm.hotspot.debugger.useWindbgDebugger, \
+ -XX:+DisableHotswapAgent, \
MACOSX_PRIVILEGED := true, \
))
@@ -37,28 +38,36 @@ $(eval $(call SetupBuildLauncher, jmap, \
MAIN_CLASS := sun.tools.jmap.JMap, \
JAVA_ARGS := \
-Dsun.jvm.hotspot.debugger.useProcDebugger \
- -Dsun.jvm.hotspot.debugger.useWindbgDebugger, \
+ -Dsun.jvm.hotspot.debugger.useWindbgDebugger \
+ -XX:+DisableHotswapAgent, \
MACOSX_PRIVILEGED := true, \
))
$(eval $(call SetupBuildLauncher, jps, \
MAIN_CLASS := sun.tools.jps.Jps, \
+ JAVA_ARGS := \
+ -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, jstack, \
MAIN_CLASS := sun.tools.jstack.JStack, \
JAVA_ARGS := \
-Dsun.jvm.hotspot.debugger.useProcDebugger \
- -Dsun.jvm.hotspot.debugger.useWindbgDebugger, \
+ -Dsun.jvm.hotspot.debugger.useWindbgDebugger \
+ -XX:+DisableHotswapAgent, \
MACOSX_PRIVILEGED := true, \
))
$(eval $(call SetupBuildLauncher, jstat, \
MAIN_CLASS := sun.tools.jstat.Jstat, \
+ JAVA_ARGS := \
+ -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, jcmd, \
MAIN_CLASS := sun.tools.jcmd.JCmd, \
+ JAVA_ARGS := \
+ -XX:+DisableHotswapAgent, \
))
# Hook to include the corresponding custom file, if present.
diff --git a/make/launcher/Launcher-jdk.jconsole.gmk b/make/launcher/Launcher-jdk.jconsole.gmk
index 6205ae63d16..5ca6a0c123b 100644
--- a/make/launcher/Launcher-jdk.jconsole.gmk
+++ b/make/launcher/Launcher-jdk.jconsole.gmk
@@ -28,7 +28,8 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jconsole, \
MAIN_CLASS := sun.tools.jconsole.JConsole, \
JAVA_ARGS := --add-opens java.base/java.io=jdk.jconsole \
- -Djconsole.showOutputViewer, \
+ -Djconsole.showOutputViewer \
+ -XX:+DisableHotswapAgent, \
CFLAGS_windows := -DJAVAW, \
LIBS_windows := user32.lib, \
))
diff --git a/make/launcher/Launcher-jdk.jdeps.gmk b/make/launcher/Launcher-jdk.jdeps.gmk
index 217523c48cc..5448278dae7 100644
--- a/make/launcher/Launcher-jdk.jdeps.gmk
+++ b/make/launcher/Launcher-jdk.jdeps.gmk
@@ -27,15 +27,18 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, javap, \
MAIN_CLASS := com.sun.tools.javap.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
$(eval $(call SetupBuildLauncher, jdeps, \
MAIN_CLASS := com.sun.tools.jdeps.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
$(eval $(call SetupBuildLauncher, jdeprscan, \
MAIN_CLASS := com.sun.tools.jdeprscan.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.jdi.gmk b/make/launcher/Launcher-jdk.jdi.gmk
index fcce98cf430..27bd448e3ae 100644
--- a/make/launcher/Launcher-jdk.jdi.gmk
+++ b/make/launcher/Launcher-jdk.jdi.gmk
@@ -27,4 +27,5 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jdb, \
MAIN_CLASS := com.sun.tools.example.debug.tty.TTY, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
diff --git a/make/launcher/Launcher-jdk.jlink.gmk b/make/launcher/Launcher-jdk.jlink.gmk
index df2173996d7..9e61edeb2c8 100644
--- a/make/launcher/Launcher-jdk.jlink.gmk
+++ b/make/launcher/Launcher-jdk.jlink.gmk
@@ -27,18 +27,21 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jimage,\
MAIN_CLASS := jdk.tools.jimage.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DENABLE_ARG_FILES, \
))
$(eval $(call SetupBuildLauncher, jlink,\
MAIN_CLASS := jdk.tools.jlink.internal.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT \
+ -XX:+DisableHotswapAgent, \
CFLAGS := -DENABLE_ARG_FILES \
-DEXPAND_CLASSPATH_WILDCARDS, \
))
$(eval $(call SetupBuildLauncher, jmod,\
MAIN_CLASS := jdk.tools.jmod.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DENABLE_ARG_FILES \
-DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.jshell.gmk b/make/launcher/Launcher-jdk.jshell.gmk
index 349eb88e9eb..7287f8f998a 100644
--- a/make/launcher/Launcher-jdk.jshell.gmk
+++ b/make/launcher/Launcher-jdk.jshell.gmk
@@ -27,5 +27,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jshell, \
MAIN_CLASS := jdk.internal.jshell.tool.JShellToolProvider, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.jstatd.gmk b/make/launcher/Launcher-jdk.jstatd.gmk
index e9286d63094..e1657910c67 100644
--- a/make/launcher/Launcher-jdk.jstatd.gmk
+++ b/make/launcher/Launcher-jdk.jstatd.gmk
@@ -27,6 +27,7 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jstatd, \
MAIN_CLASS := sun.tools.jstatd.Jstatd, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
# Hook to include the corresponding custom file, if present.
diff --git a/make/launcher/Launcher-jdk.pack.gmk b/make/launcher/Launcher-jdk.pack.gmk
index a93fd2a9017..64bbbb7c949 100644
--- a/make/launcher/Launcher-jdk.pack.gmk
+++ b/make/launcher/Launcher-jdk.pack.gmk
@@ -28,6 +28,7 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, pack200, \
MAIN_MODULE := java.base, \
MAIN_CLASS := com.sun.java.util.jar.pack.Driver, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
################################################################################
diff --git a/make/launcher/Launcher-jdk.rmic.gmk b/make/launcher/Launcher-jdk.rmic.gmk
index d60c3d9b60b..b8a55900b0e 100644
--- a/make/launcher/Launcher-jdk.rmic.gmk
+++ b/make/launcher/Launcher-jdk.rmic.gmk
@@ -27,5 +27,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, rmic, \
MAIN_CLASS := sun.rmi.rmic.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.scripting.nashorn.shell.gmk b/make/launcher/Launcher-jdk.scripting.nashorn.shell.gmk
index 82311e69fd6..bd39f8595b2 100644
--- a/make/launcher/Launcher-jdk.scripting.nashorn.shell.gmk
+++ b/make/launcher/Launcher-jdk.scripting.nashorn.shell.gmk
@@ -27,6 +27,7 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jjs, \
MAIN_CLASS := jdk.nashorn.tools.jjs.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT \
+ -XX:+DisableHotswapAgent, \
CFLAGS := -DENABLE_ARG_FILES, \
))
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index 2ca6dde069d..c75bb5d8f49 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -3937,6 +3937,8 @@ jint Arguments::parse(const JavaVMInitArgs* initial_cmd_args) {
// Set object alignment values.
set_object_alignment();
+ setup_hotswap_agent();
+
#if !INCLUDE_CDS
if (DumpSharedSpaces || RequireSharedSpaces) {
jio_fprintf(defaultStream::error_stream(),
@@ -4270,3 +4272,60 @@ bool Arguments::copy_expand_pid(const char* src, size_t srclen,
*b = '\0';
return (p == src_end); // return false if not all of the source was copied
}
+
+void Arguments::setup_hotswap_agent() {
+
+ if (DumpSharedSpaces)
+ return;
+
+ if (!AllowEnhancedClassRedefinition)
+ return;
+
+ // Set HotswapAgent
+ if (!DisableHotswapAgent) {
+
+ char ext_path_str[JVM_MAXPATHLEN];
+
+ os::jvm_path(ext_path_str, sizeof(ext_path_str));
+ for (int i = 0; i < 3; i++) {
+ char *end = strrchr(ext_path_str, *os::file_separator());
+ if (end != NULL) *end = '\0';
+ }
+ size_t ext_path_length = strlen(ext_path_str);
+ if (ext_path_length >= 3) {
+ if (strcmp(ext_path_str + ext_path_length - 3, "lib") != 0) {
+ if (ext_path_length < JVM_MAXPATHLEN - 4) {
+ jio_snprintf(ext_path_str + ext_path_length, sizeof(ext_path_str) - ext_path_length, "%slib", os::file_separator());
+ ext_path_length += 4;
+ }
+ }
+ }
+ if (ext_path_length < JVM_MAXPATHLEN - 10) {
+ jio_snprintf(ext_path_str + ext_path_length, sizeof(ext_path_str) - ext_path_length,
+ "%shotswap%shotswap-agent.jar", os::file_separator(), os::file_separator());
+ }
+
+ int fd = ::open(ext_path_str, O_RDONLY);
+ if (fd >= 0) {
+ os::close(fd);
+ size_t length = strlen(ext_path_str) + 1;
+ char *options = NEW_C_HEAP_ARRAY(char, length, mtArguments);
+ jio_snprintf(options, length, "%s", ext_path_str);
+ add_init_agent("instrument", ext_path_str, false);
+ jio_fprintf(defaultStream::output_stream(), "Starting HotswapAgent '%s'\n", ext_path_str);
+ }
+// else
+// {
+// jio_fprintf(defaultStream::error_stream(), "HotswapAgent not found on path:'%s'\n", ext_path_str);
+// }
+ }
+
+ // TODO: open it only for org.hotswap.agent module
+ // Use to access java.lang.reflect.Proxy/proxyCache
+ create_numbered_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++);
+ // java.beans.Introspector access
+ create_numbered_property("jdk.module.addopens", "java.desktop/java.beans=ALL-UNNAMED", addopens_count++);
+
+}
diff --git a/src/hotspot/share/runtime/arguments.hpp b/src/hotspot/share/runtime/arguments.hpp
index 46450cce5c9..3dc5b3d4bae 100644
--- a/src/hotspot/share/runtime/arguments.hpp
+++ b/src/hotspot/share/runtime/arguments.hpp
@@ -506,6 +506,9 @@ class Arguments : AllStatic {
static size_t conservative_max_heap_alignment() { return _conservative_max_heap_alignment; }
+ // Initialize HotswapAgent
+ static void setup_hotswap_agent();
+
// Return the maximum size a heap with compressed oops can take
static size_t max_heap_for_compressed_oops();
diff --git a/src/hotspot/share/runtime/globals.hpp b/src/hotspot/share/runtime/globals.hpp
index f3cf08fffb6..5f6c7b8e388 100644
--- a/src/hotspot/share/runtime/globals.hpp
+++ b/src/hotspot/share/runtime/globals.hpp
@@ -32,6 +32,12 @@
#include <float.h> // for DBL_MAX
+#ifdef DCEVM_ONLY
+#define DISABLED_HOTSWAP_AGENT true
+#else
+#define DISABLED_HOTSWAP_AGENT false
+#endif
+
// The larger HeapWordSize for 64bit requires larger heaps
// for the same application running in 64bit. See bug 4967770.
// The minimum alignment to a heap word size is done. Other
@@ -2675,8 +2681,10 @@ define_pd_global(uint64_t,MaxRAM, 1ULL*G);
\
product(bool, AllowEnhancedClassRedefinition, true, \
"Allow enhanced class redefinition beyond swapping method " \
- "bodies")
-
+ "bodies") \
+ \
+ product(bool, DisableHotswapAgent, DISABLED_HOTSWAP_AGENT, \
+ "Disable integrated Hotswap Agent (HotswapVM only)")
#define VM_FLAGS(develop, \
develop_pd, \
product, \
--
2.24.3 (Apple Git-128)

View File

@@ -1,25 +0,0 @@
From 603b446449aa715aa3f409fb49ed00169b89fd91 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Sun, 16 Dec 2018 09:55:31 +0100
Subject: [PATCH 16/48] Add dcevm distro name
---
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 b5a23138213..5c0a3242c80 100644
--- a/make/autoconf/version-numbers
+++ b/make/autoconf/version-numbers
@@ -43,7 +43,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"
# Might need better names for these
MACOSX_BUNDLE_NAME_BASE="OpenJDK"
--
2.24.3 (Apple Git-128)

View File

@@ -1,24 +0,0 @@
From 6869b6f67f8c8db57d91ea0ef9f33aaf44def1db Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Tue, 19 Nov 2019 19:58:27 +0100
Subject: [PATCH 17/48] java.desktop/com.sun.beans=ALL-UNNAMED
---
src/hotspot/share/runtime/arguments.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index c75bb5d8f49..ba6e78d6daa 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -4327,5 +4327,7 @@ void Arguments::setup_hotswap_agent() {
create_numbered_property("jdk.module.addopens", "java.base/jdk.internal.loader=ALL-UNNAMED", addopens_count++);
// java.beans.Introspector access
create_numbered_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++);
}
--
2.24.3 (Apple Git-128)

View File

@@ -1,113 +0,0 @@
From bbcbaa9d5814017565b8f7f0d86844e9f64905c1 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Tue, 19 Nov 2019 21:07:59 +0100
Subject: [PATCH 18/48] increment_class_counter() using orig dcevm code
Probably it is cause of SISEGV on:
_
VM_EnhancedRedefineClasses::redefine_single_class->java_mirror()
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 39 ++++++-------------
1 file changed, 12 insertions(+), 27 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 4ca638548dc..efb9e806508 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -1146,9 +1146,9 @@ int VM_EnhancedRedefineClasses::calculate_redefinition_flags(InstanceKlass* new_
}
-/**
+/**
Searches for the class bytecode of the given class and returns it as a byte array.
-
+
@param the_class definition of a class, either existing class or new_class
@param class_bytes - if the class is redefined, it contains new class definition, otherwise just original class bytecode.
@param class_byte_count - size of class_bytes
@@ -1460,7 +1460,7 @@ void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
//
// ik->itable()->adjust_method_entries(the_class, &trace_name_printed);
// }
-
+
constantPoolHandle other_cp = constantPoolHandle(ik->constants());
// Update host klass of anonymous classes (for example, produced by lambdas) to newest version.
@@ -1764,7 +1764,7 @@ void VM_EnhancedRedefineClasses::flush_dependent_code(InstanceKlass* k_h, TRAPS)
/**
Compare _old_methods and _new_methods arrays and store the result into
_matching_old_methods, _matching_new_methods, _added_methods, _deleted_methods
-
+
Setup _old_methods and _new_methods before the call - it should be called for one class only!
*/
void VM_EnhancedRedefineClasses::compute_added_deleted_matching_methods() {
@@ -1898,13 +1898,13 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
ResourceMark rm(THREAD);
// increment the classRedefinedCount field in the_class and in any
// direct and indirect subclasses of the_class
- increment_class_counter(the_class, THREAD);
+ increment_class_counter(new_class, THREAD);
log_info(redefine, class, load)
("redefined name=%s, count=%d (avail_mem=" UINT64_FORMAT "K)",
- the_class->external_name(), java_lang_Class::classRedefinedCount(the_class->java_mirror()), os::available_memory() >> 10);
+ new_class->external_name(), java_lang_Class::classRedefinedCount(new_class->java_mirror()), os::available_memory() >> 10);
Events::log_redefinition(THREAD, "redefined class name=%s, count=%d",
- the_class->external_name(),
- java_lang_Class::classRedefinedCount(the_class->java_mirror()));
+ new_class->external_name(),
+ java_lang_Class::classRedefinedCount(new_class->java_mirror()));
}
_timer_rsc_phase2.stop();
@@ -1914,25 +1914,10 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
// Increment the classRedefinedCount field in the specific InstanceKlass
// and in all direct and indirect subclasses.
void VM_EnhancedRedefineClasses::increment_class_counter(InstanceKlass *ik, TRAPS) {
- oop class_mirror = ik->java_mirror();
+ oop class_mirror = ik->old_version()->java_mirror();
Klass* class_oop = java_lang_Class::as_Klass(class_mirror);
int new_count = java_lang_Class::classRedefinedCount(class_mirror) + 1;
- java_lang_Class::set_classRedefinedCount(ik->new_version()->java_mirror(), new_count);
-
- if (class_oop != _the_class_oop) {
- // _the_class_oop count is printed at end of redefine_single_class()
- log_debug(redefine, class, subclass)("updated count in subclass=%s to %d", ik->external_name(), new_count);
- }
-
- for (Klass *subk = ik->subklass(); subk != NULL;
- subk = subk->next_sibling()) {
- if (subk->is_instance_klass()) {
- // Only update instanceKlasses
- InstanceKlass *subik = InstanceKlass::cast(subk);
- // recursively do subclasses of the current subclass
- increment_class_counter(subik, THREAD);
- }
- }
+ java_lang_Class::set_classRedefinedCount(ik->java_mirror(), new_count);
}
void VM_EnhancedRedefineClasses::check_class(InstanceKlass* ik, TRAPS) {
@@ -2063,7 +2048,7 @@ class AffectedKlassClosure : public KlassClosure {
/**
Find all affected classes by current redefinition (either because of redefine, class hierarchy or interface change).
- Affected classes are stored in _affected_klasses and parent classes always precedes child class.
+ Affected classes are stored in _affected_klasses and parent classes always precedes child class.
*/
jvmtiError VM_EnhancedRedefineClasses::find_sorted_affected_classes(TRAPS) {
for (int i = 0; i < _class_count; i++) {
@@ -2112,7 +2097,7 @@ static bool match_second(void* value, KlassPair elem) {
First newly introduced classes (_class_defs) are scanned and then affected classed (_affected_klasses).
Affected flag is cleared (clear_redefinition_flag(Klass::MarkedAsAffected))
For each dependency create a KlassPair instance. Finnaly, affected classes (_affected_klasses) are sorted according to pairs.
-
+
TODO - the class file is potentionally parsed multiple times - introduce a cache?
*/
jvmtiError VM_EnhancedRedefineClasses::do_topological_class_sorting(TRAPS) {
--
2.24.3 (Apple Git-128)

View File

@@ -1,38 +0,0 @@
From 62c65c226bbc4fadbc598db1a2ac7d05d17ae731 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Thu, 21 Nov 2019 19:30:07 +0100
Subject: [PATCH 19/48] Allow 11715ha class initializer calls
---
src/hotspot/share/classfile/vmSymbols.hpp | 1 +
src/hotspot/share/interpreter/linkResolver.cpp | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/classfile/vmSymbols.hpp b/src/hotspot/share/classfile/vmSymbols.hpp
index e2bac31b27f..6eeda3b8f68 100644
--- a/src/hotspot/share/classfile/vmSymbols.hpp
+++ b/src/hotspot/share/classfile/vmSymbols.hpp
@@ -340,6 +340,7 @@
/* common method and field names */ \
template(object_initializer_name, "<init>") \
template(class_initializer_name, "<clinit>") \
+ template(ha_class_initializer_name, "$$ha$clinit") \
template(println_name, "println") \
template(printStackTrace_name, "printStackTrace") \
template(main_name, "main") \
diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
index b9ccdee8cca..cb76d2ef50c 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -1009,7 +1009,7 @@ void LinkResolver::resolve_field(fieldDescriptor& fd,
assert(!m.is_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()->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());
--
2.24.3 (Apple Git-128)

View File

@@ -1,24 +0,0 @@
From 88b6f7a27e35d9ed3b82418b82c1cb1fe14f61e6 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Tue, 26 Nov 2019 22:13:07 +0100
Subject: [PATCH 20/48] Disable HA in keytool
---
make/launcher/Launcher-java.base.gmk | 1 +
1 file changed, 1 insertion(+)
diff --git a/make/launcher/Launcher-java.base.gmk b/make/launcher/Launcher-java.base.gmk
index 5ee4530004b..88c1a14b2aa 100644
--- a/make/launcher/Launcher-java.base.gmk
+++ b/make/launcher/Launcher-java.base.gmk
@@ -63,6 +63,7 @@ endif
$(eval $(call SetupBuildLauncher, keytool, \
MAIN_CLASS := sun.security.tools.keytool.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
################################################################################
--
2.24.3 (Apple Git-128)

View File

@@ -1,24 +0,0 @@
From 7fb12fc40a76a37ce67b051276a7ef582de1b04a Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Thu, 28 Nov 2019 18:53:11 +0100
Subject: [PATCH 21/48] Open jdk module to access ClassInfo.CACHE
---
src/hotspot/share/runtime/arguments.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index ba6e78d6daa..0081f688120 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -4329,5 +4329,7 @@ void Arguments::setup_hotswap_agent() {
create_numbered_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++);
+ // com.sun.beans.introspect.ClassInfo access
+ create_numbered_property("jdk.module.addopens", "java.desktop/com.sun.beans.introspect=ALL-UNNAMED", addopens_count++);
}
--
2.24.3 (Apple Git-128)

View File

@@ -1,25 +0,0 @@
From d3d53f242337bd3bc79917f922ff569c0a112f3b Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sun, 8 Dec 2019 17:55:01 +0100
Subject: [PATCH 22/48] Open java.base/java.io module
---
src/hotspot/share/runtime/arguments.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index 0081f688120..0cdd8c88315 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -4325,6 +4325,8 @@ void Arguments::setup_hotswap_agent() {
create_numbered_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++);
+ // 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++);
// java.beans.Introspector access
create_numbered_property("jdk.module.addopens", "java.desktop/java.beans=ALL-UNNAMED", addopens_count++);
// java.beans.Introspector access
--
2.24.3 (Apple Git-128)

View File

@@ -1,54 +0,0 @@
From 833ef503677e066b3639e7418a22587992df1829 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@mailprofiler.com>
Date: Fri, 6 Mar 2020 09:28:24 +0100
Subject: [PATCH 23/48] Fix fieldDescriptor.inline.hpp
---
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index efb9e806508..a404fd3f016 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -49,6 +49,7 @@
#include "runtime/deoptimization.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/relocator.hpp"
+#include "runtime/fieldDescriptor.inline.hpp"
#include "utilities/bitMap.inline.hpp"
#include "prims/jvmtiThreadState.inline.hpp"
#include "utilities/events.hpp"
@@ -490,6 +491,11 @@ void VM_EnhancedRedefineClasses::doit() {
flush_dependent_code(NULL, 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);
+
+
// JSR-292 support
if (_any_class_has_resolved_methods) {
bool trace_name_printed = false;
@@ -1890,9 +1896,6 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
}
*/
- // Adjust constantpool caches for all classes that reference methods of the evolved class.
- ClearCpoolCacheAndUnpatch clear_cpool_cache(THREAD);
- ClassLoaderDataGraph::classes_do(&clear_cpool_cache);
{
ResourceMark rm(THREAD);
@@ -1905,7 +1908,6 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
Events::log_redefinition(THREAD, "redefined class name=%s, count=%d",
new_class->external_name(),
java_lang_Class::classRedefinedCount(new_class->java_mirror()));
-
}
_timer_rsc_phase2.stop();
} // end redefine_single_class()
--
2.24.3 (Apple Git-128)

View File

@@ -1,38 +0,0 @@
From 1af8b1f3f891388a37cc71076c324d3905ab2a46 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@mailprofiler.com>
Date: Fri, 6 Mar 2020 15:46:51 +0100
Subject: [PATCH 24/48] Fix clear_cpool_cache
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index a404fd3f016..1f5a67f8866 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -491,11 +491,6 @@ void VM_EnhancedRedefineClasses::doit() {
flush_dependent_code(NULL, 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);
-
-
// JSR-292 support
if (_any_class_has_resolved_methods) {
bool trace_name_printed = false;
@@ -1896,6 +1891,9 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
}
*/
+ // Adjust constantpool caches for all classes that reference methods of the evolved class.
+ ClearCpoolCacheAndUnpatch clear_cpool_cache(THREAD);
+ ClassLoaderDataGraph::classes_do(&clear_cpool_cache);
{
ResourceMark rm(THREAD);
--
2.24.3 (Apple Git-128)

View File

@@ -1,163 +0,0 @@
From def550828411b677ed2d7807e51cc5ffe70331fc Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@mailprofiler.com>
Date: Mon, 9 Mar 2020 09:54:04 +0100
Subject: [PATCH 25/48] Refactor ClearCpoolCacheAndUnpatch
Call it after redefinition of all classes
---
make/common/MakeBase.gmk | 4 +-
.../prims/jvmtiEnhancedRedefineClasses.cpp | 98 ++++---------------
2 files changed, 21 insertions(+), 81 deletions(-)
diff --git a/make/common/MakeBase.gmk b/make/common/MakeBase.gmk
index a040effe83a..c33a7d52ddb 100644
--- a/make/common/MakeBase.gmk
+++ b/make/common/MakeBase.gmk
@@ -1044,7 +1044,9 @@ DependOnVariableHelper = \
$(info NewVariable $1: >$(strip $($1))<) \
$(info OldVariable $1: >$(strip $($1_old))<)) \
$(call WriteFile, $1_old:=$(call DoubleDollar,$(call EscapeHash,$($1))), \
- $($1_filename))) \
+ $($1_filename)) \
+ $(eval $($1_filename): ) \
+ ) \
$($1_filename) \
)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 1f5a67f8866..24fb76b6de4 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -491,6 +491,11 @@ void VM_EnhancedRedefineClasses::doit() {
flush_dependent_code(NULL, 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);
+
+
// JSR-292 support
if (_any_class_has_resolved_methods) {
bool trace_name_printed = false;
@@ -1383,86 +1388,23 @@ void VM_EnhancedRedefineClasses::unpatch_bytecode(Method* method) {
}
}
-// Unevolving classes may point to methods of the_class directly
+// Unevolving classes may point to old methods directly
// from their constant pool caches, itables, and/or vtables. We
-// use the ClassLoaderDataGraph::classes_do() facility and this helper
-// to fix up these pointers.
-// Adjust cpools and vtables closure
+// use the SystemDictionary::classes_do() facility and this helper
+// to fix up these pointers. Additional field offsets and vtable indices
+// in the constant pool cache entries are fixed.
+//
+// Note: We currently don't support updating the vtable in
+// arrayKlassOops. See Open Issues in jvmtiRedefineClasses.hpp.
void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
- // This is a very busy routine. We don't want too much tracing
- // printed out.
- bool trace_name_printed = false;
- InstanceKlass *the_class = InstanceKlass::cast(_the_class_oop);
-
- // If the class being redefined is java.lang.Object, we need to fix all
- // array class vtables also
- if (k->is_array_klass() && _the_class_oop == SystemDictionary::Object_klass()) {
- k->vtable().adjust_method_entries(the_class, &trace_name_printed);
- } else if (k->is_instance_klass()) {
- HandleMark hm(_thread);
- InstanceKlass *ik = InstanceKlass::cast(k);
+ if (!k->is_instance_klass()) {
+ return;
+ }
- // HotSpot specific optimization! HotSpot does not currently
- // support delegation from the bootstrap class loader to a
- // user-defined class loader. This means that if the bootstrap
- // class loader is the initiating class loader, then it will also
- // be the defining class loader. This also means that classes
- // loaded by the bootstrap class loader cannot refer to classes
- // loaded by a user-defined class loader. Note: a user-defined
- // class loader can delegate to the bootstrap class loader.
- //
- // If the current class being redefined has a user-defined class
- // loader as its defining class loader, then we can skip all
- // classes loaded by the bootstrap class loader.
- bool is_user_defined =
- InstanceKlass::cast(_the_class_oop)->class_loader() != NULL;
- if (is_user_defined && ik->class_loader() == NULL) {
- return;
- }
-
- // Fix the vtable embedded in the_class and subclasses of the_class,
- // if one exists. We discard scratch_class and we don't keep an
- // InstanceKlass around to hold obsolete methods so we don't have
- // any other InstanceKlass embedded vtables to update. The vtable
- // holds the Method*s for virtual (but not final) methods.
- // Default methods, or concrete methods in interfaces are stored
- // in the vtable, so if an interface changes we need to check
- // adjust_method_entries() for every InstanceKlass, which will also
- // adjust the default method vtable indices.
- // We also need to adjust any default method entries that are
- // not yet in the vtable, because the vtable setup is in progress.
- // This must be done after we adjust the default_methods and
- // default_vtable_indices for methods already in the vtable.
- // If redefining Unsafe, walk all the vtables looking for entries.
-// FIXME - code from standard redefine - if needed, it should switch to new_class
-// if (ik->vtable_length() > 0 && (_the_class_oop->is_interface()
-// || _the_class_oop == SystemDictionary::internal_Unsafe_klass()
-// || ik->is_subtype_of(_the_class_oop))) {
-// // ik->vtable() creates a wrapper object; rm cleans it up
-// ResourceMark rm(_thread);
-//
-// ik->vtable()->adjust_method_entries(the_class, &trace_name_printed);
-// ik->adjust_default_methods(the_class, &trace_name_printed);
-// }
-
- // If the current class has an itable and we are either redefining an
- // interface or if the current class is a subclass of the_class, then
- // we potentially have to fix the itable. If we are redefining an
- // interface, then we have to call adjust_method_entries() for
- // every InstanceKlass that has an itable since there isn't a
- // subclass relationship between an interface and an InstanceKlass.
- // If redefining Unsafe, walk all the itables looking for entries.
-// FIXME - code from standard redefine - if needed, it should switch to new_class
-// if (ik->itable_length() > 0 && (_the_class_oop->is_interface()
-// || _the_class_oop == SystemDictionary::internal_Unsafe_klass()
-// || ik->is_subclass_of(_the_class_oop))) {
-// // ik->itable() creates a wrapper object; rm cleans it up
-// ResourceMark rm(_thread);
-//
-// ik->itable()->adjust_method_entries(the_class, &trace_name_printed);
-// }
+ HandleMark hm(_thread);
+ InstanceKlass *ik = InstanceKlass::cast(k);
- constantPoolHandle other_cp = constantPoolHandle(ik->constants());
+ constantPoolHandle other_cp = constantPoolHandle(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) {
@@ -1491,7 +1433,6 @@ void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
if (RewriteBytecodes) {
ik->methods_do(unpatch_bytecode);
}
- }
}
// Clean method data for this class
@@ -1891,9 +1832,6 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
}
*/
- // Adjust constantpool caches for all classes that reference methods of the evolved class.
- ClearCpoolCacheAndUnpatch clear_cpool_cache(THREAD);
- ClassLoaderDataGraph::classes_do(&clear_cpool_cache);
{
ResourceMark rm(THREAD);
--
2.24.3 (Apple Git-128)

View File

@@ -1,29 +0,0 @@
From 5f416d7a25bd23399b9189cc94ab5d5887e6b4d4 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@mailprofiler.com>
Date: Wed, 11 Mar 2020 14:19:34 +0100
Subject: [PATCH 26/48] 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 9b6ba7e9304..8cbd4b8edf2 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -788,7 +788,10 @@ bool InstanceKlass::link_class_impl(bool throw_verifyerror, TRAPS) {
if (!is_linked()) {
if (!is_rewritten()) {
- {
+ // In cases, 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 (!newest_version()->is_redefining()) {
bool verify_ok = verify_code(throw_verifyerror, THREAD);
if (!verify_ok) {
return false;
--
2.24.3 (Apple Git-128)

View File

@@ -1,60 +0,0 @@
From 9a7abdf08bf207f5265a552500446c3178bf5794 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Fri, 10 Apr 2020 23:28:07 +0200
Subject: [PATCH 27/48] Update klass reference in Klass.implementor()
If interface X is removed from class Y then old reference to Y could be
stored in X.implementor()
---
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 12 ++++++++++++
.../share/prims/jvmtiEnhancedRedefineClasses.hpp | 11 -----------
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 24fb76b6de4..f6d2d3a40fe 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -1411,6 +1411,18 @@ void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
ik->set_host_klass(InstanceKlass::cast(ik->host_klass()->newest_version()));
}
+ // Update implementor if there is only one, in this case implementor() can reference old class
+ if (ik->is_interface()) {
+ Klass* implKlass = ik->implementor();
+ if (implKlass != NULL && implKlass != ik && implKlass->new_version() != NULL) {
+ InstanceKlass* newest_impl = InstanceKlass::cast(implKlass->newest_version());
+ ik->init_implementor();
+ if (newest_impl->implements_interface(ik)) {
+ ik->add_implementor(newest_impl);
+ }
+ }
+ }
+
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);
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 5b3ebc13661..2d114635ee5 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -69,17 +69,6 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
// RetransformClasses. Indicate which.
JvmtiClassLoadKind _class_load_kind;
- // _index_map_count is just an optimization for knowing if
- // _index_map_p contains any entries.
- int _index_map_count;
- intArray * _index_map_p;
-
- // _operands_index_map_count is just an optimization for knowing if
- // _operands_index_map_p contains any entries.
- int _operands_cur_length;
- int _operands_index_map_count;
- intArray * _operands_index_map_p;
-
GrowableArray<InstanceKlass*>* _new_classes;
jvmtiError _res;
--
2.24.3 (Apple Git-128)

View File

@@ -1,96 +0,0 @@
From 8f13d3b4ba9aecd847b7da306055ba53ee2e29d0 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Fri, 10 Apr 2020 23:30:21 +0200
Subject: [PATCH 28/48] Fix DirectMethodHandle accessors klasses
---
src/hotspot/share/classfile/javaClasses.cpp | 28 +++++++++++++++------
src/hotspot/share/classfile/javaClasses.hpp | 4 +++
2 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/src/hotspot/share/classfile/javaClasses.cpp b/src/hotspot/share/classfile/javaClasses.cpp
index a89443d22ea..ea0588e5388 100644
--- a/src/hotspot/share/classfile/javaClasses.cpp
+++ b/src/hotspot/share/classfile/javaClasses.cpp
@@ -3641,14 +3641,20 @@ void java_lang_invoke_DirectMethodHandle_StaticAccessor::set_static_offset(oop d
dmh->long_field_put(_static_offset_offset, static_offset);
}
+#define DIRECTMETHODHANDLE_STATIC_ACCESSOR_FIELDS_DO(macro) \
+ macro(_static_offset_offset, k, vmSymbols::static_offset_name(), long_signature, false)
void java_lang_invoke_DirectMethodHandle_StaticAccessor::compute_offsets() {
- Klass* klass_oop = SystemDictionary::DirectMethodHandle_StaticAccessor_klass();
- if (klass_oop != NULL) {
- compute_offset(_static_offset_offset, InstanceKlass::cast(klass_oop), vmSymbols::static_offset_name(), vmSymbols::long_signature());
- }
+ InstanceKlass* k = SystemDictionary::DirectMethodHandle_StaticAccessor_klass();
+ DIRECTMETHODHANDLE_STATIC_ACCESSOR_FIELDS_DO(FIELD_COMPUTE_OFFSET);
}
+#if INCLUDE_CDS
+void java_lang_invoke_DirectMethodHandle_StaticAccessor::serialize_offsets(SerializeClosure* f) {
+ DIRECTMETHODHANDLE_STATIC_ACCESSOR_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
+}
+#endif
+
// Support for java_lang_invoke_DirectMethodHandle$Accessor
int java_lang_invoke_DirectMethodHandle_Accessor::_field_offset_offset;
@@ -3663,14 +3669,20 @@ void java_lang_invoke_DirectMethodHandle_Accessor::set_field_offset(oop dmh, int
dmh->int_field_put(_field_offset_offset, field_offset);
}
+#define DIRECTMETHODHANDLE_ACCESSOR_FIELDS_DO(macro) \
+ macro(_field_offset_offset, k, vmSymbols::field_offset_name(), int_signature, false)
void java_lang_invoke_DirectMethodHandle_Accessor::compute_offsets() {
- Klass* klass_oop = SystemDictionary::DirectMethodHandle_Accessor_klass();
- if (klass_oop != NULL) {
- compute_offset(_field_offset_offset, InstanceKlass::cast(klass_oop), vmSymbols::field_offset_name(), vmSymbols::int_signature());
- }
+ InstanceKlass* k = SystemDictionary::DirectMethodHandle_Accessor_klass();
+ DIRECTMETHODHANDLE_ACCESSOR_FIELDS_DO(FIELD_COMPUTE_OFFSET);
}
+#if INCLUDE_CDS
+void java_lang_invoke_DirectMethodHandle_Accessor::serialize_offsets(SerializeClosure* f) {
+ DIRECTMETHODHANDLE_ACCESSOR_FIELDS_DO(FIELD_SERIALIZE_OFFSET);
+}
+#endif
+
// Support for java_lang_invoke_MethodHandle
int java_lang_invoke_MethodHandle::_type_offset;
diff --git a/src/hotspot/share/classfile/javaClasses.hpp b/src/hotspot/share/classfile/javaClasses.hpp
index ceb1670df5d..55f9fa62e2b 100644
--- a/src/hotspot/share/classfile/javaClasses.hpp
+++ b/src/hotspot/share/classfile/javaClasses.hpp
@@ -67,6 +67,8 @@
f(java_lang_invoke_LambdaForm) \
f(java_lang_invoke_MethodType) \
f(java_lang_invoke_CallSite) \
+ f(java_lang_invoke_DirectMethodHandle_StaticAccessor) \
+ f(java_lang_invoke_DirectMethodHandle_Accessor) \
f(java_lang_invoke_MethodHandleNatives_CallSiteContext) \
f(java_security_AccessControlContext) \
f(java_lang_reflect_AccessibleObject) \
@@ -1077,6 +1079,7 @@ class java_lang_invoke_DirectMethodHandle_StaticAccessor: AllStatic {
static bool is_instance(oop obj) {
return obj != NULL && is_subclass(obj->klass());
}
+ static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
};
// Interface to java.lang.invoke.DirectMethodHandle$Accessor objects
@@ -1101,6 +1104,7 @@ class java_lang_invoke_DirectMethodHandle_Accessor: AllStatic {
static bool is_instance(oop obj) {
return obj != NULL && is_subclass(obj->klass());
}
+ static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
};
--
2.24.3 (Apple Git-128)

View File

@@ -1,60 +0,0 @@
From cbad9c34bf8920d772c646d041d4fc04fea203cc Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sat, 11 Apr 2020 12:07:43 +0200
Subject: [PATCH 29/48] cleanup direct method handles code
---
src/hotspot/share/classfile/javaClasses.hpp | 10 ++++------
src/hotspot/share/classfile/javaClasses.inline.hpp | 8 ++++++++
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/hotspot/share/classfile/javaClasses.hpp b/src/hotspot/share/classfile/javaClasses.hpp
index 55f9fa62e2b..da004d1b307 100644
--- a/src/hotspot/share/classfile/javaClasses.hpp
+++ b/src/hotspot/share/classfile/javaClasses.hpp
@@ -1076,9 +1076,8 @@ class java_lang_invoke_DirectMethodHandle_StaticAccessor: AllStatic {
static bool is_subclass(Klass* klass) {
return klass->is_subclass_of(SystemDictionary::DirectMethodHandle_StaticAccessor_klass());
}
- static bool is_instance(oop obj) {
- return obj != NULL && is_subclass(obj->klass());
- }
+ static bool is_instance(oop obj);
+
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
};
@@ -1101,9 +1100,8 @@ class java_lang_invoke_DirectMethodHandle_Accessor: AllStatic {
static bool is_subclass(Klass* klass) {
return klass->is_subclass_of(SystemDictionary::DirectMethodHandle_Accessor_klass());
}
- static bool is_instance(oop obj) {
- return obj != NULL && is_subclass(obj->klass());
- }
+ static bool is_instance(oop obj);
+
static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
};
diff --git a/src/hotspot/share/classfile/javaClasses.inline.hpp b/src/hotspot/share/classfile/javaClasses.inline.hpp
index 6c5787f4b70..ba9cffa8c62 100644
--- a/src/hotspot/share/classfile/javaClasses.inline.hpp
+++ b/src/hotspot/share/classfile/javaClasses.inline.hpp
@@ -175,6 +175,14 @@ inline bool java_lang_invoke_DirectMethodHandle::is_instance(oop obj) {
return obj != NULL && is_subclass(obj->klass());
}
+inline bool java_lang_invoke_DirectMethodHandle_StaticAccessor::is_instance(oop obj) {
+ return obj != NULL && is_subclass(obj->klass());
+}
+
+inline bool java_lang_invoke_DirectMethodHandle_Accessor::is_instance(oop obj) {
+ return obj != NULL && is_subclass(obj->klass());
+}
+
inline bool java_lang_Module::is_instance(oop obj) {
return obj != NULL && obj->klass() == SystemDictionary::Module_klass();
}
--
2.24.3 (Apple Git-128)

View File

@@ -1,68 +0,0 @@
From e3b94671ce5108a91e3a3e92b01eea07731c7639 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sat, 11 Apr 2020 17:52:13 +0200
Subject: [PATCH 30/48] Add init_implementor_from_redefine, that skips compiler
lock assert
---
src/hotspot/share/oops/instanceKlass.cpp | 10 +++++++++-
src/hotspot/share/oops/instanceKlass.hpp | 1 +
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 2 +-
3 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index 8cbd4b8edf2..c04bdf5abfc 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -789,7 +789,7 @@ bool InstanceKlass::link_class_impl(bool throw_verifyerror, TRAPS) {
if (!is_linked()) {
if (!is_rewritten()) {
// In cases, 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
+ // then second redefinition fails with cannot cast klass exception. So we currently turn off bytecode verification
// on redefinition.
if (!newest_version()->is_redefining()) {
bool verify_ok = verify_code(throw_verifyerror, THREAD);
@@ -1139,6 +1139,14 @@ void InstanceKlass::init_implementor() {
}
}
+void InstanceKlass::init_implementor_from_redefine() {
+ assert(is_interface(), "not interface");
+ Klass** addr = adr_implementor();
+ assert(addr != NULL, "null addr");
+ if (addr != NULL) {
+ *addr = NULL;
+ }
+}
void InstanceKlass::process_interfaces(Thread *thread) {
// link this class into the implementors list of every interface it implements
diff --git a/src/hotspot/share/oops/instanceKlass.hpp b/src/hotspot/share/oops/instanceKlass.hpp
index 2cc98b636f1..e8107a39813 100644
--- a/src/hotspot/share/oops/instanceKlass.hpp
+++ b/src/hotspot/share/oops/instanceKlass.hpp
@@ -1020,6 +1020,7 @@ public:
int nof_implementors() const;
void add_implementor(Klass* k); // k is a new class that implements this interface
void init_implementor(); // initialize
+ void init_implementor_from_redefine(); // initialize
// link this class into the implementors list of every interface it implements
void process_interfaces(Thread *thread);
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index f6d2d3a40fe..aac9ba0911f 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -1416,7 +1416,7 @@ void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
Klass* implKlass = ik->implementor();
if (implKlass != NULL && implKlass != ik && implKlass->new_version() != NULL) {
InstanceKlass* newest_impl = InstanceKlass::cast(implKlass->newest_version());
- ik->init_implementor();
+ ik->init_implementor_from_redefine();
if (newest_impl->implements_interface(ik)) {
ik->add_implementor(newest_impl);
}
--
2.24.3 (Apple Git-128)

View File

@@ -1,73 +0,0 @@
From a95c3daf0a1db23e2dcc977f427faa7be41007c9 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Mon, 13 Apr 2020 20:59:35 +0200
Subject: [PATCH 31/48] not nullable oop_store_not_null() method+handle NULL in
mem_name in dmh
---
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index aac9ba0911f..8d861ef43c9 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -225,13 +225,15 @@ void VM_EnhancedRedefineClasses::mark_as_scavengable(nmethod* nm) {
// TODO comment
struct StoreBarrier {
// TODO: j10 review change ::oop_store -> HeapAccess<>::oop_store
- template <class T> static void oop_store(T* p, oop v) { HeapAccess<>::oop_store(p, v); }
+ template <class T> static void oop_store_not_null(T* p, oop v) { HeapAccess<IS_NOT_NULL>::oop_store(p, v); }
+ template <class T> static void oop_store(T* p) { HeapAccess<>::oop_store(p, oop(NULL)); }
};
// TODO comment
struct StoreNoBarrier {
- template <class T> static void oop_store(T* p, oop v) { RawAccess<IS_NOT_NULL>::oop_store(p, v); }
+ template <class T> static void oop_store_not_null(T* p, oop v) { RawAccess<IS_NOT_NULL>::oop_store(p, v); }
+ template <class T> static void oop_store(T* p) { RawAccess<>::oop_store(p, oop(NULL)); }
};
/**
@@ -309,6 +311,9 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
bool update_direct_method_handle(oop obj) {
// Always update member name first.
oop mem_name = java_lang_invoke_DirectMethodHandle::member(obj);
+ if (mem_name == NULL) {
+ return true;
+ }
if (!update_member_name(mem_name)) {
return false;
}
@@ -347,7 +352,7 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
assert(obj == InstanceKlass::cast(klass)->java_mirror(), "just checking");
if (klass->new_version() != NULL) {
obj = InstanceKlass::cast(klass->new_version())->java_mirror();
- S::oop_store(p, obj);
+ S::oop_store_not_null(p, obj);
oop_updated = true;
}
}
@@ -363,7 +368,7 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
if (!update_direct_method_handle(obj)) {
// DMH is no longer valid, replace it with null reference.
// See note above. We probably want to replace this with something more meaningful.
- S::oop_store(p, NULL);
+ S::oop_store(p);
}
}
}
@@ -1430,8 +1435,7 @@ void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
// Constant pool entry points to redefined class -- update to the new version
other_cp->klass_at_put(i, klass->newest_version());
}
- klass = other_cp->resolved_klass_at(i);
- assert(klass->new_version() == NULL, "Must be new klass!");
+ assert(other_cp->resolved_klass_at(i)->new_version() == NULL, "Must be new klass!");
}
}
--
2.24.3 (Apple Git-128)

View File

@@ -1,32 +0,0 @@
From 15690197a276a86054e1ec9724c877d6d871ca01 Mon Sep 17 00:00:00 2001
From: Artem Khvastunov <artem.khvastunov@jetbrains.com>
Date: Tue, 14 Apr 2020 19:11:35 +0200
Subject: [PATCH 32/48] add jvmtiEnhancedRedefineClasses.* to CMakeLists.txt
---
jb/project/hotspot-cmake/CMakeLists.txt | 2 ++
1 file changed, 2 insertions(+)
diff --git a/jb/project/hotspot-cmake/CMakeLists.txt b/jb/project/hotspot-cmake/CMakeLists.txt
index 8b552c27206..6516e39058f 100644
--- a/jb/project/hotspot-cmake/CMakeLists.txt
+++ b/jb/project/hotspot-cmake/CMakeLists.txt
@@ -1663,6 +1663,7 @@ set(SOURCE_FILES
../../../src/hotspot/share/prims/jvmtiGetLoadedClasses.hpp
../../../src/hotspot/share/prims/jvmtiAgentThread.hpp
../../../src/hotspot/share/prims/jvmtiCodeBlobEvents.cpp
+../../../src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
../../../src/hotspot/share/prims/stackwalk.cpp
../../../src/hotspot/share/prims/privilegedStack.hpp
../../../src/hotspot/share/prims/jvmtiUtil.hpp
@@ -1684,6 +1685,7 @@ set(SOURCE_FILES
../../../src/hotspot/share/prims/stackwalk.hpp
../../../src/hotspot/share/prims/privilegedStack.cpp
../../../src/hotspot/share/prims/jvmtiCodeBlobEvents.hpp
+../../../src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
../../../src/hotspot/share/prims/jvmtiUtil.cpp
../../../src/hotspot/share/prims/jvmtiEnvBase.cpp
../../../src/hotspot/share/prims/methodHandles.cpp
--
2.24.3 (Apple Git-128)

View File

@@ -1,25 +0,0 @@
From dab6a53de4c25aae95667c78b8e1f1097ab47130 Mon Sep 17 00:00:00 2001
From: Artem Khvastunov <artem.khvastunov@jetbrains.com>
Date: Sun, 19 Apr 2020 11:36:12 +0200
Subject: [PATCH 33/48] migrate DCEVM to 11.0.7
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 2d114635ee5..6cabdca9c27 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -30,7 +30,7 @@
#include "memory/resourceArea.hpp"
#include "oops/objArrayKlass.hpp"
#include "oops/objArrayOop.hpp"
-#include "runtime/vm_operations.hpp"
+#include "runtime/vmOperations.hpp"
#include "gc/shared/vmGCOperations.hpp"
#include "../../../java.base/unix/native/include/jni_md.h"
--
2.24.3 (Apple Git-128)

View File

@@ -1,33 +0,0 @@
From 70d53ce28f9df75d9e50819d2b6654855da0d533 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Fri, 8 May 2020 21:07:50 +0200
Subject: [PATCH 34/48] Fix 11.0.7 compilation issues
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 6cabdca9c27..ed44f0e27ce 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -16,6 +16,8 @@
* 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.
@@ -30,7 +32,6 @@
#include "memory/resourceArea.hpp"
#include "oops/objArrayKlass.hpp"
#include "oops/objArrayOop.hpp"
-#include "runtime/vmOperations.hpp"
#include "gc/shared/vmGCOperations.hpp"
#include "../../../java.base/unix/native/include/jni_md.h"
--
2.24.3 (Apple Git-128)

View File

@@ -1,33 +0,0 @@
From 805b588bc4bd45e61b81c90e23b71337072e9549 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sat, 9 May 2020 10:08:17 +0200
Subject: [PATCH 35/48] Use INCLUDE_CDS condition on "UseSharedSpaces" block
from master
---
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 8d861ef43c9..660bf3a2e97 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -467,6 +467,7 @@ public:
void VM_EnhancedRedefineClasses::doit() {
Thread *thread = Thread::current();
+#if INCLUDE_CDS
if (UseSharedSpaces) {
// Sharing is enabled so we remap the shared readonly space to
// shared readwrite, private just in case we need to redefine
@@ -478,6 +479,7 @@ void VM_EnhancedRedefineClasses::doit() {
return;
}
}
+#endif
// Mark methods seen on stack and everywhere else so old methods are not
// cleaned up if they're on the stack.
--
2.24.3 (Apple Git-128)

View File

@@ -1,141 +0,0 @@
From 78619004206d224b319d68493672bee2c97f0946 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sat, 16 May 2020 15:11:40 +0200
Subject: [PATCH 36/48] Access com.sun.beans.util - HotswapAgent patch
---
src/hotspot/share/runtime/arguments.cpp | 2 ++
.../sun/beans/introspect/package-info.java | 26 +++++++++++++++++++
.../classes/com/sun/beans/package-info.java | 26 +++++++++++++++++++
.../com/sun/beans/util/package-info.java | 26 +++++++++++++++++++
.../share/classes/module-info.java | 3 +++
5 files changed, 83 insertions(+)
create mode 100644 src/java.desktop/share/classes/com/sun/beans/introspect/package-info.java
create mode 100644 src/java.desktop/share/classes/com/sun/beans/package-info.java
create mode 100644 src/java.desktop/share/classes/com/sun/beans/util/package-info.java
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index 0cdd8c88315..72580b384dd 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -4333,5 +4333,7 @@ void Arguments::setup_hotswap_agent() {
create_numbered_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++);
+ // com.sun.beans.introspect.util.Cache access
+ create_numbered_property("jdk.module.addopens", "java.desktop/com.sun.beans.util=ALL-UNNAMED", addopens_count++);
}
diff --git a/src/java.desktop/share/classes/com/sun/beans/introspect/package-info.java b/src/java.desktop/share/classes/com/sun/beans/introspect/package-info.java
new file mode 100644
index 00000000000..6636e4dd62a
--- /dev/null
+++ b/src/java.desktop/share/classes/com/sun/beans/introspect/package-info.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 1998, 2017, 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.
+ */
+
+package com.sun.beans.introspect;
diff --git a/src/java.desktop/share/classes/com/sun/beans/package-info.java b/src/java.desktop/share/classes/com/sun/beans/package-info.java
new file mode 100644
index 00000000000..5c097eeaa53
--- /dev/null
+++ b/src/java.desktop/share/classes/com/sun/beans/package-info.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 1998, 2017, 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.
+ */
+
+package com.sun.beans;
diff --git a/src/java.desktop/share/classes/com/sun/beans/util/package-info.java b/src/java.desktop/share/classes/com/sun/beans/util/package-info.java
new file mode 100644
index 00000000000..2d5d735ffa8
--- /dev/null
+++ b/src/java.desktop/share/classes/com/sun/beans/util/package-info.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 1998, 2017, 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.
+ */
+
+package com.sun.beans.util;
diff --git a/src/java.desktop/share/classes/module-info.java b/src/java.desktop/share/classes/module-info.java
index f9cf021311f..e61ba7572cf 100644
--- a/src/java.desktop/share/classes/module-info.java
+++ b/src/java.desktop/share/classes/module-info.java
@@ -104,6 +104,9 @@ module java.desktop {
exports javax.swing.text.rtf;
exports javax.swing.tree;
exports javax.swing.undo;
+ exports com.sun.beans;
+ exports com.sun.beans.introspect;
+ exports com.sun.beans.util;
// qualified exports may be inserted at build time
// see make/GensrcModuleInfo.gmk
--
2.24.3 (Apple Git-128)

View File

@@ -1,29 +0,0 @@
From baf26456579eb0e560471d3bcb150005492f69f4 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sun, 17 May 2020 12:19:18 +0200
Subject: [PATCH 37/48] Skip verifier only in AllowEnhancedClassRedefinition
---
src/hotspot/share/oops/instanceKlass.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index c04bdf5abfc..e14aaee21c4 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -788,10 +788,10 @@ bool InstanceKlass::link_class_impl(bool throw_verifyerror, TRAPS) {
if (!is_linked()) {
if (!is_rewritten()) {
- // In cases, if class A is being redefined and class B->A (B is extended from A) and B is host class of anonymous class C
+ // (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 (!newest_version()->is_redefining()) {
+ if (!AllowEnhancedClassRedefinition || !newest_version()->is_redefining()) {
bool verify_ok = verify_code(throw_verifyerror, THREAD);
if (!verify_ok) {
return false;
--
2.24.3 (Apple Git-128)

View File

@@ -1,98 +0,0 @@
From 46dc38a58ac8afafab4e04ee47a1ed2b9e65c1e1 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sun, 17 May 2020 18:18:52 +0200
Subject: [PATCH 38/48] Use original code for adjust_method_entries in standard
redefinition
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 2 +-
.../share/prims/resolvedMethodTable.cpp | 46 ++++++++++++++++++-
.../share/prims/resolvedMethodTable.hpp | 1 +
3 files changed, 47 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 660bf3a2e97..0ca675e8ee6 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -506,7 +506,7 @@ void VM_EnhancedRedefineClasses::doit() {
// JSR-292 support
if (_any_class_has_resolved_methods) {
bool trace_name_printed = false;
- ResolvedMethodTable::adjust_method_entries(&trace_name_printed);
+ ResolvedMethodTable::adjust_method_entries_dcevm(&trace_name_printed);
}
ChangePointersOopClosure<StoreNoBarrier> oopClosureNoBarrier;
diff --git a/src/hotspot/share/prims/resolvedMethodTable.cpp b/src/hotspot/share/prims/resolvedMethodTable.cpp
index a9057893368..af2ec48c2e1 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -197,8 +197,52 @@ void ResolvedMethodTable::print() {
#endif // PRODUCT
#if INCLUDE_JVMTI
-// 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");
+ // For each entry in RMT, change to new method
+ 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()) {
+
+ Method* new_method;
+ if (old_method->is_deleted()) {
+ new_method = Universe::throw_no_such_method_error();
+ } else {
+ InstanceKlass* holder = old_method->method_holder();
+ new_method = holder->method_with_idnum(old_method->orig_method_idnum());
+ assert(holder == new_method->method_holder(), "call after swapping redefined guts");
+ assert(new_method != NULL, "method_with_idnum() should not be NULL");
+ assert(old_method != new_method, "sanity check");
+ }
+
+ java_lang_invoke_ResolvedMethodName::set_vmtarget(mem_name, new_method);
+
+ ResourceMark rm;
+ if (!(*trace_name_printed)) {
+ log_info(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)",
+ new_method->name()->as_C_string(), new_method->signature()->as_C_string());
+ }
+ }
+ }
+}
+
+// (DCEVM) 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>();
diff --git a/src/hotspot/share/prims/resolvedMethodTable.hpp b/src/hotspot/share/prims/resolvedMethodTable.hpp
index 841ae4ae585..543d4ffa485 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.hpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.hpp
@@ -93,6 +93,7 @@ public:
#if INCLUDE_JVMTI
// It is called at safepoint only for RedefineClasses
static void adjust_method_entries(bool * trace_name_printed);
+ static void adjust_method_entries_dcevm(bool * trace_name_printed);
#endif // INCLUDE_JVMTI
// Cleanup cleared entries
--
2.24.3 (Apple Git-128)

View File

@@ -1,54 +0,0 @@
From 6ac099d1b07fcc0d3c17ebd5d3335bcb6ceaedc9 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Tue, 19 May 2020 09:41:36 +0200
Subject: [PATCH 39/48] Revert code for !AllowEnhancedClassRedefinition
---
.../share/classfile/classLoaderData.cpp | 23 ++++++++++---------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 25103fff2c0..f5b877b432b 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -1387,12 +1387,13 @@ bool ClassLoaderDataGraph::do_unloading(bool clean_previous_versions) {
// Klassesoto delete.
// FIXME: dcevm - block asserts in MetadataOnStackMark
- /*
- bool walk_all_metadata = clean_previous_versions &&
- JvmtiExport::has_redefined_a_class() &&
- InstanceKlass::has_previous_versions_and_reset();
- MetadataOnStackMark md_on_stack(walk_all_metadata);
- */
+ bool walk_all_metadata = false;
+ if (!AllowEnhancedClassRedefinition) {
+ walk_all_metadata = clean_previous_versions &&
+ JvmtiExport::has_redefined_a_class() &&
+ InstanceKlass::has_previous_versions_and_reset();
+ MetadataOnStackMark md_on_stack(walk_all_metadata);
+ }
// Save previous _unloading pointer for CMS which may add to unloading list before
// purging and we don't want to rewalk the previously unloaded class loader data.
@@ -1402,12 +1403,12 @@ bool ClassLoaderDataGraph::do_unloading(bool clean_previous_versions) {
while (data != NULL) {
if (data->is_alive()) {
// clean metaspace
- /*
- if (walk_all_metadata) {
- data->classes_do(InstanceKlass::purge_previous_versions);
+ if (!AllowEnhancedClassRedefinition) {
+ if (walk_all_metadata) {
+ data->classes_do(InstanceKlass::purge_previous_versions);
+ }
+ data->free_deallocate_list();
}
- data->free_deallocate_list();
- */
prev = data;
data = data->next();
loaders_processed++;
--
2.24.3 (Apple Git-128)

View File

@@ -1,278 +0,0 @@
From de04154ee21d33c1ac1b74b2740f2fda117c0430 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Tue, 19 May 2020 09:29:39 +0200
Subject: [PATCH 40/48] Code cleanup
---
src/hotspot/share/classfile/classFileParser.cpp | 4 +++-
src/hotspot/share/classfile/classFileParser.hpp | 2 +-
src/hotspot/share/classfile/classLoaderData.cpp | 2 ++
src/hotspot/share/classfile/dictionary.cpp | 4 ++++
src/hotspot/share/classfile/dictionary.hpp | 1 +
src/hotspot/share/classfile/loaderConstraints.cpp | 3 ++-
src/hotspot/share/classfile/systemDictionary.cpp | 8 +++++---
src/hotspot/share/interpreter/linkResolver.cpp | 1 +
src/hotspot/share/memory/universe.cpp | 4 ++--
src/hotspot/share/oops/instanceKlass.cpp | 13 ++++++++-----
10 files changed, 29 insertions(+), 13 deletions(-)
diff --git a/src/hotspot/share/classfile/classFileParser.cpp b/src/hotspot/share/classfile/classFileParser.cpp
index ea150df9104..c2cd35da4e6 100644
--- a/src/hotspot/share/classfile/classFileParser.cpp
+++ b/src/hotspot/share/classfile/classFileParser.cpp
@@ -954,6 +954,7 @@ void ClassFileParser::parse_interfaces(const ClassFileStream* const stream,
CHECK);
}
+ // (DCEVM) pick newest
interf = (Klass *) maybe_newest(interf);
if (!interf->is_interface()) {
@@ -3749,6 +3750,7 @@ const InstanceKlass* ClassFileParser::parse_super_class(ConstantPool* const cp,
// However, make sure it is not an array type.
bool is_array = false;
if (cp->tag_at(super_class_index).is_klass()) {
+ // (DCEVM) pick newest
super_klass = InstanceKlass::cast(maybe_newest(cp->resolved_klass_at(super_class_index)));
if (need_verify)
is_array = super_klass->is_array_klass();
@@ -4417,7 +4419,7 @@ void ClassFileParser::set_precomputed_flags(InstanceKlass* ik) {
if (!_has_empty_finalizer) {
if (_has_finalizer ||
(super != NULL && super->has_finalizer())) {
- // FIXME - condition from previous DCEVM version, however after reload new finelize() method is not active
+ // FIXME - (DCEVM) this is condition from previous DCEVM version, however after reload a new finalize() method is not active
if (ik->old_version() == NULL || ik->old_version()->has_finalizer()) {
ik->set_has_finalizer();
}
diff --git a/src/hotspot/share/classfile/classFileParser.hpp b/src/hotspot/share/classfile/classFileParser.hpp
index 3db14b678f3..93ed54d8f70 100644
--- a/src/hotspot/share/classfile/classFileParser.hpp
+++ b/src/hotspot/share/classfile/classFileParser.hpp
@@ -499,7 +499,7 @@ class ClassFileParser {
FieldLayoutInfo* info,
TRAPS);
- // Enhanced class redefinition
+ // (DCEVM) Enhanced class redefinition
inline const Klass* maybe_newest(const Klass* klass) const { return klass != NULL && _pick_newest ? klass->newest_version() : klass; }
public:
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index f5b877b432b..ab2615da0ed 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -1242,6 +1242,7 @@ void ClassLoaderDataGraph::dictionary_classes_do(void f(InstanceKlass*)) {
}
}
+// (DCEVM) - iterate over dict classes
void ClassLoaderDataGraph::dictionary_classes_do(KlassClosure* klass_closure) {
FOR_ALL_DICTIONARY(cld) {
cld->dictionary()->classes_do(klass_closure);
@@ -1257,6 +1258,7 @@ void ClassLoaderDataGraph::dictionary_classes_do(void f(InstanceKlass*, TRAPS),
}
}
+// (DCEVM) rollback redefined classes
void ClassLoaderDataGraph::rollback_redefinition() {
FOR_ALL_DICTIONARY(cld) {
cld->dictionary()->rollback_redefinition();
diff --git a/src/hotspot/share/classfile/dictionary.cpp b/src/hotspot/share/classfile/dictionary.cpp
index 118730f1b83..dda5188c370 100644
--- a/src/hotspot/share/classfile/dictionary.cpp
+++ b/src/hotspot/share/classfile/dictionary.cpp
@@ -245,6 +245,8 @@ void Dictionary::classes_do(void f(InstanceKlass*)) {
}
}
+
+// (DCEVM) iterate over dict entry
void Dictionary::classes_do(KlassClosure* closure) {
for (int index = 0; index < table_size(); index++) {
for (DictionaryEntry* probe = bucket(index);
@@ -342,6 +344,7 @@ DictionaryEntry* Dictionary::get_entry(int index, unsigned int hash,
return NULL;
}
+// (DCEVM) replace old_class by new class in dictionary
bool Dictionary::update_klass(unsigned int hash, Symbol* name, ClassLoaderData* loader_data, InstanceKlass* k, InstanceKlass* old_klass) {
// There are several entries for the same class in the dictionary: One extra entry for each parent classloader of the classloader of the class.
bool found = false;
@@ -356,6 +359,7 @@ bool Dictionary::update_klass(unsigned int hash, Symbol* name, ClassLoaderData*
return found;
}
+// (DCEVM) rollback redefinition
void Dictionary::rollback_redefinition() {
for (int index = 0; index < table_size(); index++) {
for (DictionaryEntry* entry = bucket(index);
diff --git a/src/hotspot/share/classfile/dictionary.hpp b/src/hotspot/share/classfile/dictionary.hpp
index fd4b134d7a7..5eaa741d500 100644
--- a/src/hotspot/share/classfile/dictionary.hpp
+++ b/src/hotspot/share/classfile/dictionary.hpp
@@ -119,6 +119,7 @@ public:
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/loaderConstraints.cpp b/src/hotspot/share/classfile/loaderConstraints.cpp
index e4a23e8a27c..bca73b5e0dc 100644
--- a/src/hotspot/share/classfile/loaderConstraints.cpp
+++ b/src/hotspot/share/classfile/loaderConstraints.cpp
@@ -4,7 +4,7 @@
*
* 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.
+ * published by the Free Software Foundation) replace old_class by new class in dictionary.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
@@ -87,6 +87,7 @@ LoaderConstraintEntry** LoaderConstraintTable::find_loader_constraint(
return pp;
}
+// (DCEVM) update constraint entries to new classes, called from dcevm redefinition code only
void LoaderConstraintTable::update_after_redefinition() {
for (int index = 0; index < table_size(); index++) {
LoaderConstraintEntry** p = bucket_addr(index);
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index 9dbd6cc9c12..e70865109dd 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -876,7 +876,8 @@ Klass* SystemDictionary::resolve_instance_class_or_null(Symbol* name,
ClassLoaderData* loader_data = k->class_loader_data();
MutexLocker mu(SystemDictionary_lock, THREAD);
Klass* kk = find_class(name, loader_data);
- // FIXME: (kk == k() && !k->is_redefining()) || (k->is_redefining() && kk == k->old_version())
+ // FIXME: (DCEVM)
+ // assert(kk == k() && !k->is_redefining()) || (k->is_redefining() && kk == k->old_version())
assert(kk == k, "should be present in dictionary");
}
#endif
@@ -1083,7 +1084,7 @@ InstanceKlass* SystemDictionary::resolve_from_stream(Symbol* class_name,
InstanceKlass* k = NULL;
#if INCLUDE_CDS
- // FIXME: what to do during redefinition?
+ // FIXME: (DCEVM) what to do during redefinition?
if (!DumpSharedSpaces) {
k = SystemDictionaryShared::lookup_from_stream(class_name,
class_loader,
@@ -1836,7 +1837,7 @@ void SystemDictionary::add_to_hierarchy(InstanceKlass* k, TRAPS) {
CodeCache::flush_dependents_on(k);
}
-// Enhanced class redefinition
+// (DCEVM) - remove from klass hierarchy
void SystemDictionary::remove_from_hierarchy(InstanceKlass* k) {
assert(k != NULL, "just checking");
@@ -1844,6 +1845,7 @@ void SystemDictionary::remove_from_hierarchy(InstanceKlass* k) {
k->remove_from_sibling_list();
}
+// (DCEVM)
void SystemDictionary::update_constraints_after_redefinition() {
constraints()->update_after_redefinition();
}
diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
index cb76d2ef50c..9dc184d02f5 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -1384,6 +1384,7 @@ void LinkResolver::runtime_resolve_virtual_method(CallInfo& result,
assert(resolved_method->can_be_statically_bound(), "cannot override this method");
selected_method = resolved_method;
} else {
+ // TODO: (DCEVM) explain
assert(recv_klass->is_subtype_of(resolved_method->method_holder()), "receiver and resolved method holder are inconsistent");
selected_method = methodHandle(THREAD, recv_klass->method_at_vtable(vtable_index));
}
diff --git a/src/hotspot/share/memory/universe.cpp b/src/hotspot/share/memory/universe.cpp
index 7ecb950b231..d0a6d665aa0 100644
--- a/src/hotspot/share/memory/universe.cpp
+++ b/src/hotspot/share/memory/universe.cpp
@@ -176,7 +176,7 @@ void Universe::basic_type_classes_do(void f(Klass*)) {
f(doubleArrayKlassObj());
}
-// FIXME: This method should iterate all pointers that are not within heap objects.
+// 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 {
@@ -203,7 +203,7 @@ void Universe::root_oops_do(OopClosure *oopClosure) {
CodeBlobToOopClosure blobClosure(oopClosure, CodeBlobToOopClosure::FixRelocations);
CodeCache::blobs_do(&blobClosure);
StringTable::oops_do(oopClosure);
-
+
// (DCEVM) TODO: Check if this is correct?
//CodeCache::scavenge_root_nmethods_oops_do(oopClosure);
//Management::oops_do(oopClosure);
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index e14aaee21c4..c860371d2fc 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -1139,6 +1139,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();
@@ -1209,6 +1210,8 @@ bool InstanceKlass::implements_interface(Klass* k) const {
return false;
}
+
+// (DCEVM)
bool InstanceKlass::implements_interface_any_version(Klass* k) const {
k = k->newest_version();
if (this->newest_version() == k) return true;
@@ -1491,10 +1494,8 @@ void InstanceKlass::methods_do(void f(Method* method)) {
}
}
-/**
- 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.
-*/
+// (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) {
int *arr = NEW_C_HEAP_ARRAY(int, values.length(), mtClass);
for (int i = 0; i < values.length(); i++) {
@@ -2162,6 +2163,7 @@ void InstanceKlass::add_dependent_nmethod(nmethod* nm) {
dependencies().add_dependent_nmethod(nm);
}
+// DCEVM - update jmethod ids
bool InstanceKlass::update_jmethod_id(Method* method, jmethodID newMethodID) {
size_t idnum = (size_t)method->method_idnum();
jmethodID* jmeths = methods_jmethod_ids_acquire();
@@ -2177,7 +2179,7 @@ bool InstanceKlass::update_jmethod_id(Method* method, jmethodID newMethodID) {
void InstanceKlass::remove_dependent_nmethod(nmethod* nm, bool delete_immediately) {
dependencies().remove_dependent_nmethod(nm, delete_immediately);
- // (DCEVM) Hack as dependencies get wrong version of Klass*
+ // FIXME: (DCEVM) Hack as dependencies get wrong version of Klass*
// if (this->old_version() != NULL) {
// InstanceKlass::cast(this->old_version())->remove_dependent_nmethod(nm, true);
// return;
@@ -3594,6 +3596,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");
}
--
2.24.3 (Apple Git-128)

View File

@@ -1,36 +0,0 @@
From ab8888737eaed76776b41b28af93a0c47826b8d6 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Tue, 19 May 2020 10:31:15 +0200
Subject: [PATCH 41/48] Activate cpCache definition asserts for !dcevm
---
src/hotspot/share/oops/cpCache.cpp | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/hotspot/share/oops/cpCache.cpp b/src/hotspot/share/oops/cpCache.cpp
index 47040d51f0c..4318df227d1 100644
--- a/src/hotspot/share/oops/cpCache.cpp
+++ b/src/hotspot/share/oops/cpCache.cpp
@@ -436,8 +436,7 @@ void ConstantPoolCacheEntry::set_method_handle_common(const constantPoolHandle&
if (has_appendix) {
const int appendix_index = f2_as_index() + _indy_resolved_references_appendix_offset;
assert(appendix_index >= 0 && appendix_index < resolved_references->length(), "oob");
- // FIXME (DCEVM) relaxing for now...
- //assert(resolved_references->obj_at(appendix_index) == NULL, "init just once");
+ assert(AllowEnhancedClassRedefinition || resolved_references->obj_at(appendix_index) == NULL, "init just once");
resolved_references->obj_at_put(appendix_index, appendix());
}
@@ -445,8 +444,7 @@ void ConstantPoolCacheEntry::set_method_handle_common(const constantPoolHandle&
if (has_method_type) {
const int method_type_index = f2_as_index() + _indy_resolved_references_method_type_offset;
assert(method_type_index >= 0 && method_type_index < resolved_references->length(), "oob");
- // FIXME (DCEVM) relaxing for now...
- //assert(resolved_references->obj_at(method_type_index) == NULL, "init just once");
+ assert(AllowEnhancedClassRedefinition || resolved_references->obj_at(method_type_index) == NULL, "init just once");
resolved_references->obj_at_put(method_type_index, method_type());
}
--
2.24.3 (Apple Git-128)

View File

@@ -1,29 +0,0 @@
From 8596cf8b677eadcd18b527dd61c891475758bbaa Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Tue, 19 May 2020 10:54:38 +0200
Subject: [PATCH 42/48] iterate old method version only in dcevm
---
src/hotspot/share/prims/jvmtiImpl.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiImpl.cpp b/src/hotspot/share/prims/jvmtiImpl.cpp
index 2a92ece916e..d2044541d38 100644
--- a/src/hotspot/share/prims/jvmtiImpl.cpp
+++ b/src/hotspot/share/prims/jvmtiImpl.cpp
@@ -294,8 +294,10 @@ void JvmtiBreakpoint::each_method_version_do(method_action meth_act) {
Symbol* m_signature = _method->signature();
// (DCEVM) Go through old versions of method
- for (Method* m = _method->old_version(); m != NULL; m = m->old_version()) {
- (m->*meth_act)(_bci);
+ if (AllowEnhancedClassRedefinition) {
+ for (Method* m = _method->old_version(); m != NULL; m = m->old_version()) {
+ (m->*meth_act)(_bci);
+ }
}
// search previous versions if they exist
--
2.24.3 (Apple Git-128)

View File

@@ -1,258 +0,0 @@
From f3c1667fc04abdd9aa556b2c00a23239eba14287 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Fri, 22 May 2020 21:23:01 +0200
Subject: [PATCH 43/48] Support for Lambda class redefinition
---
.../share/classfile/classLoaderData.cpp | 9 +++
.../share/classfile/classLoaderData.hpp | 1 +
.../share/classfile/systemDictionary.cpp | 12 +++-
.../share/classfile/systemDictionary.hpp | 2 +
.../prims/jvmtiEnhancedRedefineClasses.cpp | 65 +++++++++++++++++--
.../prims/jvmtiEnhancedRedefineClasses.hpp | 1 +
.../share/prims/resolvedMethodTable.cpp | 4 +-
src/hotspot/share/prims/unsafe.cpp | 1 +
8 files changed, 85 insertions(+), 10 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index ab2615da0ed..1bc67adf5a7 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -663,6 +663,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 7e357929971..00a84610b43 100644
--- a/src/hotspot/share/classfile/classLoaderData.hpp
+++ b/src/hotspot/share/classfile/classLoaderData.hpp
@@ -292,6 +292,7 @@ class ClassLoaderData : public CHeapObj<mtClass> {
void accumulate_modified_oops() { if (has_modified_oops()) _accumulated_modified_oops = true; }
void clear_accumulated_modified_oops() { _accumulated_modified_oops = false; }
bool has_accumulated_modified_oops() { return _accumulated_modified_oops; }
+ void exchange_holders(ClassLoaderData* cld);
private:
void unload();
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index e70865109dd..cc9f1fa7831 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -971,12 +971,16 @@ InstanceKlass* SystemDictionary::parse_stream(Symbol* class_name,
Handle protection_domain,
ClassFileStream* st,
const InstanceKlass* host_klass,
+ InstanceKlass* old_klass,
GrowableArray<Handle>* cp_patches,
TRAPS) {
EventClassLoad class_load_start_event;
ClassLoaderData* loader_data;
+
+ bool is_redefining = (old_klass != NULL);
+
if (host_klass != NULL) {
// Create a new CLD for anonymous class, that uses the same class loader
// as the host_klass
@@ -1000,8 +1004,12 @@ InstanceKlass* SystemDictionary::parse_stream(Symbol* class_name,
protection_domain,
host_klass,
cp_patches,
- 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 (host_klass != NULL && k != NULL) {
// Anonymous classes must update ClassLoaderData holder (was host_klass loader)
@@ -1845,7 +1853,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 717f34ce9a0..dc111846c12 100644
--- a/src/hotspot/share/classfile/systemDictionary.hpp
+++ b/src/hotspot/share/classfile/systemDictionary.hpp
@@ -301,6 +301,7 @@ public:
protection_domain,
st,
NULL, // host klass
+ NULL, // old class
NULL, // cp_patches
THREAD);
}
@@ -309,6 +310,7 @@ public:
Handle protection_domain,
ClassFileStream* st,
const InstanceKlass* host_klass,
+ InstanceKlass* old_klass,
GrowableArray<Handle>* cp_patches,
TRAPS);
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 0ca675e8ee6..08fe42d5c28 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -503,6 +503,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;
@@ -774,12 +776,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();
@@ -1469,6 +1493,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];
@@ -2018,7 +2066,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 ed44f0e27ce..7e2afd49650 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -119,6 +119,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 af2ec48c2e1..7741328979f 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -200,7 +200,7 @@ void ResolvedMethodTable::print() {
void ResolvedMethodTable::adjust_method_entries(bool * trace_name_printed) {
assert(SafepointSynchronize::is_at_safepoint(), "only called at safepoint");
- // For each entry in RMT, change to new method
+ // For each entry in RMT, change to new methodadjust_method_entries_dcevm
for (int i = 0; i < _the_table->table_size(); ++i) {
for (ResolvedMethodEntry* entry = _the_table->bucket(i);
entry != NULL;
@@ -271,6 +271,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 2f14e01ce0d..d0e0367d8eb 100644
--- a/src/hotspot/share/prims/unsafe.cpp
+++ b/src/hotspot/share/prims/unsafe.cpp
@@ -818,6 +818,7 @@ Unsafe_DefineAnonymousClass_impl(JNIEnv *env,
host_domain,
&st,
InstanceKlass::cast(host_klass),
+ NULL,
cp_patches,
CHECK_NULL);
if (anonk == NULL) {
--
2.24.3 (Apple Git-128)

View File

@@ -1,34 +0,0 @@
From b8a3d4249eb97613f796edc709e414900c9a0828 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Fri, 22 May 2020 21:43:22 +0200
Subject: [PATCH 44/48] Skip GC runs for redefinitions without instance size
change
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 08fe42d5c28..a785a43d352 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -578,14 +578,14 @@ void VM_EnhancedRedefineClasses::doit() {
}
}
-// if (objectClosure.needs_instance_update()) {
+ if (objectClosure.needs_instance_update()) {
// Do a full garbage collection to update the instance sizes accordingly
Universe::set_redefining_gc_run(true);
notify_gc_begin(true);
Universe::heap()->collect_as_vm_thread(GCCause::_heap_inspection);
notify_gc_end();
Universe::set_redefining_gc_run(false);
-// }
+ }
// Unmark Klass*s as "redefining"
for (int i = 0; i < _new_classes->length(); i++) {
--
2.24.3 (Apple Git-128)

View File

@@ -1,135 +0,0 @@
From 77bdf6253c457ed88436fb4da6a53c7c0c361a1c Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sat, 23 May 2020 10:02:15 +0200
Subject: [PATCH 45/48] Fix "no original bytecode found" error if method with
bkp is missing
Sometimes IDE can deploy class with erroneous method, such method has
no 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 f367e658879..71bbd15a4f5 100644
--- a/src/hotspot/share/interpreter/interpreterRuntime.cpp
+++ b/src/hotspot/share/interpreter/interpreterRuntime.cpp
@@ -834,7 +834,7 @@ IRT_END
// Invokes
IRT_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);
IRT_END
IRT_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 bee69f9cec6..f1e22db70d6 100644
--- a/src/hotspot/share/oops/method.cpp
+++ b/src/hotspot/share/oops/method.cpp
@@ -1747,14 +1747,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);
}
@@ -1900,7 +1900,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;
}
@@ -1909,7 +1909,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 4533476ff8f..193e1845b23 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 a785a43d352..2321483dcbd 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -1389,14 +1389,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.24.3 (Apple Git-128)

View File

@@ -1,421 +0,0 @@
From d3371d7d52bd4dc66efd4f6a946d5045b8bc8b2b Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sat, 23 May 2020 10:17:56 +0200
Subject: [PATCH 46/48] Fix comments according hotspot formatting conventions
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 191 +++++++-----------
.../prims/jvmtiEnhancedRedefineClasses.hpp | 41 ++--
2 files changed, 90 insertions(+), 142 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 2321483dcbd..8d00203fd9a 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -67,21 +67,19 @@ int VM_EnhancedRedefineClasses::_deleted_methods_length = 0;
int VM_EnhancedRedefineClasses::_added_methods_length = 0;
Klass* VM_EnhancedRedefineClasses::_the_class_oop = NULL;
-/**
- * Create new instance of enhanced class redefiner.
- *
- * This class implements VM_GC_Operation - the usual usage should be:
- * VM_EnhancedRedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_redefine);
- * VMThread::execute(&op);
- * Which
- *
- * @param class_count size of class_defs
- * @param class_defs class definition - either new class or redefined class
- * note that this is not the final array of classes to be redefined
- * we need to scan for all affected classes (e.g. subclasses) and
- * caculcate redefinition for them as well.
- * @param class_load_kind always jvmti_class_load_kind_redefine
- */
+//
+// Create new instance of enhanced class redefiner.
+//
+// This class implements VM_GC_Operation - the usual usage should be:
+// VM_EnhancedRedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_redefine);
+// VMThread::execute(&op);
+// Which
+// - class_count size of class_defs
+// - class_defs class definition - either new class or redefined class
+// note that this is not the final array of classes to be redefined
+// we need to scan for all affected classes (e.g. subclasses) and
+// caculcate redefinition for them as well.
+// @param class_load_kind always jvmti_class_load_kind_redefine
VM_EnhancedRedefineClasses::VM_EnhancedRedefineClasses(jint class_count, const jvmtiClassDefinition *class_defs, JvmtiClassLoadKind class_load_kind) :
VM_GC_Operation(Universe::heap()->total_collections(), GCCause::_heap_inspection, Universe::heap()->total_full_collections(), true) {
_affected_klasses = NULL;
@@ -97,12 +95,10 @@ static inline InstanceKlass* get_ik(jclass def) {
return InstanceKlass::cast(java_lang_Class::as_Klass(mirror));
}
-/**
- * Start the redefinition:
- * - Load new class definitions - @see load_new_class_versions
- * - Start mark&sweep GC.
- * @return true if success, otherwise all chnages are rollbacked.
- */
+// Start the redefinition:
+// - Load new class definitions - @see load_new_class_versions
+// - Start mark&sweep GC.
+// - true if success, otherwise all chnages are rollbacked.
bool VM_EnhancedRedefineClasses::doit_prologue() {
if (_class_count == 0) {
@@ -175,9 +171,7 @@ bool VM_EnhancedRedefineClasses::doit_prologue() {
return true;
}
-/**
- * Closer for static fields - copy value from old class to the new class.
- */
+// Closer for static fields - copy value from old class to the new class.
class FieldCopier : public FieldClosure {
public:
void do_field(fieldDescriptor* fd) {
@@ -236,9 +230,7 @@ struct StoreNoBarrier {
template <class T> static void oop_store(T* p) { RawAccess<>::oop_store(p, oop(NULL)); }
};
-/**
- Closure to scan all heap objects and update method handles
-*/
+// Closure to scan all heap objects and update method handles
template <class S>
class ChangePointersOopClosure : public BasicOopIterateClosure {
// import java_lang_invoke_MemberName.*
@@ -247,7 +239,6 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
REFERENCE_KIND_MASK = java_lang_invoke_MemberName::MN_REFERENCE_KIND_MASK,
};
-
bool update_member_name(oop obj) {
int flags = java_lang_invoke_MemberName::flags(obj);
int ref_kind = (flags >> REFERENCE_KIND_SHIFT) & REFERENCE_KIND_MASK;
@@ -382,14 +373,12 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
}
};
-/**
- * Closure to scan all objects on heap for objects of changed classes
- * - if the fields are compatible, only update class definition reference
- * - otherwise if the new object size is smaller then old size, reshufle
- * the fields and fill the gap with "dead_space"
- * - otherwise set the _needs_instance_update flag, we need to do full GC
- * and reshuffle object positions durring mark&sweep
- */
+// Closure to scan all objects on heap for objects of changed classes
+// - if the fields are compatible, only update class definition reference
+// - otherwise if the new object size is smaller then old size, reshufle
+// the fields and fill the gap with "dead_space"
+// - otherwise set the _needs_instance_update flag, we need to do full GC
+// and reshuffle object positions durring mark&sweep
class ChangePointersObjectClosure : public ObjectClosure {
private:
@@ -451,19 +440,16 @@ public:
};
-/**
- Main transformation method - runs in VM thread.
-
- - UseSharedSpaces - TODO what does it mean?
- - for each sratch class call redefine_single_class
- - clear code cache (flush_dependent_code)
- - iterate the heap and update object defintions, check it old/new class fields
- are compatible. If new class size is smaller then old, it can be solved directly here.
- - iterate the heap and update method handles to new version
- - Swap marks to have same hashcodes
- - copy static fields
- - notify JVM of the modification
-*/
+// Main transformation method - runs in VM thread.
+// - UseSharedSpaces - TODO what does it mean?
+// - for each sratch class call redefine_single_class
+// - clear code cache (flush_dependent_code)
+// - iterate the heap and update object defintions, check it old/new class fields
+// are compatible. If new class size is smaller then old, it can be solved directly here.
+// - iterate the heap and update method handles to new version
+// - Swap marks to have same hashcodes
+// - copy static fields
+// - notify JVM of the modification
void VM_EnhancedRedefineClasses::doit() {
Thread *thread = Thread::current();
@@ -634,11 +620,9 @@ void VM_EnhancedRedefineClasses::doit() {
}
-/**
- * Cleanup - runs in JVM thread
- * - free used memory
- * - end GC
- */
+// Cleanup - runs in JVM thread
+// - free used memory
+// - end GC
void VM_EnhancedRedefineClasses::doit_epilogue() {
VM_GC_Operation::doit_epilogue();
@@ -670,11 +654,9 @@ void VM_EnhancedRedefineClasses::doit_epilogue() {
}
}
-/**
- * Exclude java primitives and arrays from redefinition
- * @param klass_mirror pointer to the klass
- * @return true if is modifiable
- */
+// Exclude java primitives and arrays from redefinition
+// - klass_mirror pointer to the klass
+// - true if is modifiable
bool VM_EnhancedRedefineClasses::is_modifiable_class(oop klass_mirror) {
// classes for primitives cannot be redefined
if (java_lang_Class::is_primitive(klass_mirror)) {
@@ -693,17 +675,12 @@ bool VM_EnhancedRedefineClasses::is_modifiable_class(oop klass_mirror) {
return true;
}
-/**
- Load and link new classes (either redefined or affected by redefinition - subclass, ...)
-
- - find sorted affected classes
- - resolve new class
- - calculate redefine flags (field change, method change, supertype change, ...)
- - calculate modified fields and mapping to old fields
- - link new classes
-
- The result is sotred in _affected_klasses(old definitions) and _new_classes(new definitions) arrays.
-*/
+// Load and link new classes (either redefined or affected by redefinition - subclass, ...)
+// - find sorted affected classes
+// - resolve new class
+// - calculate redefine flags (field change, method change, supertype change, ...)
+// - calculate modified fields and mapping to old fields
+// - link new classes
jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
_affected_klasses = new (ResourceObj::C_HEAP, mtInternal) GrowableArray<Klass*>(_class_count, true);
@@ -898,9 +875,7 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
return JVMTI_ERROR_NONE;
}
-/**
- Calculated the difference between new and old class (field change, method change, supertype change, ...).
-*/
+ // 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());
@@ -1183,14 +1158,11 @@ int VM_EnhancedRedefineClasses::calculate_redefinition_flags(InstanceKlass* new_
}
-/**
- Searches for the class bytecode of the given class and returns it as a byte array.
-
- @param the_class definition of a class, either existing class or new_class
- @param class_bytes - if the class is redefined, it contains new class definition, otherwise just original class bytecode.
- @param class_byte_count - size of class_bytes
- @param not_changed - new_class not available or same as current class
-*/
+// Searches for the class bytecode of the given class and returns it as a byte array.
+// - the_class definition of a class, either existing class or new_class
+// - class_bytes - if the class is redefined, it contains new class definition, otherwise just original class bytecode.
+// - class_byte_count - size of class_bytes
+// - not_changed - new_class not available or same as current class
jvmtiError VM_EnhancedRedefineClasses::find_class_bytes(InstanceKlass* the_class, const unsigned char **class_bytes, jint *class_byte_count, jboolean *not_changed) {
*not_changed = false;
@@ -1233,11 +1205,9 @@ jvmtiError VM_EnhancedRedefineClasses::find_class_bytes(InstanceKlass* the_class
return JVMTI_ERROR_NONE;
}
-/**
- Calculate difference between non static fields of old and new class and store the info into new class:
- instanceKlass->store_update_information
- instanceKlass->copy_backwards
-*/
+// Calculate difference between non static fields of old and new class and store the info into new class:
+// instanceKlass->store_update_information
+// instanceKlass->copy_backwards
void VM_EnhancedRedefineClasses::calculate_instance_update_information(Klass* new_version) {
class CalculateFieldUpdates : public FieldClosure {
@@ -1348,9 +1318,7 @@ 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.
-*/
+// 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::rollback_redefinition();
@@ -1547,9 +1515,7 @@ void VM_EnhancedRedefineClasses::update_jmethod_ids() {
}
}
-/**
- Set method as obsolete / old / deleted.
-*/
+// Set method as obsolete / old / deleted.
void VM_EnhancedRedefineClasses::check_methods_and_mark_as_obsolete() {
for (int j = 0; j < _matching_methods_length; ++j/*, ++old_index*/) {
Method* old_method = _matching_old_methods[j];
@@ -1771,12 +1737,9 @@ void VM_EnhancedRedefineClasses::flush_dependent_code(InstanceKlass* k_h, TRAPS)
}
}
-/**
- Compare _old_methods and _new_methods arrays and store the result into
- _matching_old_methods, _matching_new_methods, _added_methods, _deleted_methods
-
- Setup _old_methods and _new_methods before the call - it should be called for one class only!
-*/
+// Compare _old_methods and _new_methods arrays and store the result into
+// _matching_old_methods, _matching_new_methods, _added_methods, _deleted_methods
+// Setup _old_methods and _new_methods before the call - it should be called for one class only!
void VM_EnhancedRedefineClasses::compute_added_deleted_matching_methods() {
Method* old_method;
Method* new_method;
@@ -1900,7 +1863,6 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
}
*/
-
{
ResourceMark rm(THREAD);
// increment the classRedefinedCount field in the_class and in any
@@ -1940,9 +1902,7 @@ void VM_EnhancedRedefineClasses::check_class(InstanceKlass* ik, TRAPS) {
}
}
-/**
- * Logging of all methods (old, new, changed, ...)
- */
+// Logging of all methods (old, new, changed, ...)
void VM_EnhancedRedefineClasses::dump_methods() {
int j;
log_trace(redefine, class, dump)("_old_methods --");
@@ -2002,9 +1962,7 @@ void VM_EnhancedRedefineClasses::dump_methods() {
}
}
-/**
- Helper class to traverse all loaded classes and figure out if the class is affected by redefinition.
-*/
+// Helper class to traverse all loaded classes and figure out if the class is affected by redefinition.
class AffectedKlassClosure : public KlassClosure {
private:
GrowableArray<Klass*>* _affected_klasses;
@@ -2052,10 +2010,8 @@ class AffectedKlassClosure : public KlassClosure {
}
};
-/**
- Find all affected classes by current redefinition (either because of redefine, class hierarchy or interface change).
- Affected classes are stored in _affected_klasses and parent classes always precedes child class.
-*/
+// Find all affected classes by current redefinition (either because of redefine, class hierarchy or interface change).
+// Affected classes are stored in _affected_klasses and parent classes always precedes child class.
jvmtiError VM_EnhancedRedefineClasses::find_sorted_affected_classes(TRAPS) {
for (int i = 0; i < _class_count; i++) {
InstanceKlass* klass_handle = get_ik(_class_defs[i].klass);
@@ -2086,9 +2042,7 @@ jvmtiError VM_EnhancedRedefineClasses::find_sorted_affected_classes(TRAPS) {
return JVMTI_ERROR_NONE;
}
-/**
- Pairs of class dependencies (for topological sort)
-*/
+// Pairs of class dependencies (for topological sort)
struct KlassPair {
const Klass* _left;
const Klass* _right;
@@ -2101,14 +2055,11 @@ static bool match_second(void* value, KlassPair elem) {
return elem._right == value;
}
-/**
- For each class to be redefined parse the bytecode and figure out the superclass and all interfaces.
- First newly introduced classes (_class_defs) are scanned and then affected classed (_affected_klasses).
- Affected flag is cleared (clear_redefinition_flag(Klass::MarkedAsAffected))
- For each dependency create a KlassPair instance. Finnaly, affected classes (_affected_klasses) are sorted according to pairs.
-
- TODO - the class file is potentionally parsed multiple times - introduce a cache?
-*/
+// For each class to be redefined parse the bytecode and figure out the superclass and all interfaces.
+// First newly introduced classes (_class_defs) are scanned and then affected classed (_affected_klasses).
+// Affected flag is cleared (clear_redefinition_flag(Klass::MarkedAsAffected))
+// For each dependency create a KlassPair instance. Finnaly, affected classes (_affected_klasses) are sorted according to pairs.
+// TODO - the class file is potentionally parsed multiple times - introduce a cache?
jvmtiError VM_EnhancedRedefineClasses::do_topological_class_sorting(TRAPS) {
ResourceMark mark(THREAD);
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 7e2afd49650..d8a11b51fe9 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -35,17 +35,16 @@
#include "gc/shared/vmGCOperations.hpp"
#include "../../../java.base/unix/native/include/jni_md.h"
-/**
- * Enhanced class redefiner.
- *
- * This class implements VM_GC_Operation - the usual usage should be:
- * VM_EnhancedRedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_redefine);
- * VMThread::execute(&op);
- * Which in turn runs:
- * - doit_prologue() - calculate all affected classes (add subclasses etc) and load new class versions
- * - doit() - main redefition, adjust existing objects on the heap, clear caches
- * - doit_epilogue() - cleanup
-*/
+//
+// Enhanced class redefiner.
+//
+// This class implements VM_GC_Operation - the usual usage should be:
+// VM_EnhancedRedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_redefine);
+// VMThread::execute(&op);
+// Which in turn runs:
+// - doit_prologue() - calculate all affected classes (add subclasses etc) and load new class versions
+// - doit() - main redefition, adjust existing objects on the heap, clear caches
+// - doit_epilogue() - cleanup
class VM_EnhancedRedefineClasses: public VM_GC_Operation {
private:
// These static fields are needed by ClassLoaderDataGraph::classes_do()
@@ -93,17 +92,15 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
// These routines are roughly in call order unless otherwise noted.
- /**
- Load and link new classes (either redefined or affected by redefinition - subclass, ...)
-
- - find sorted affected classes
- - resolve new class
- - calculate redefine flags (field change, method change, supertype change, ...)
- - calculate modified fields and mapping to old fields
- - link new classes
-
- The result is sotred in _affected_klasses(old definitions) and _new_classes(new definitions) arrays.
- */
+ // Load and link new classes (either redefined or affected by redefinition - subclass, ...)
+ //
+ // - find sorted affected classes
+ // - resolve new class
+ // - calculate redefine flags (field change, method change, supertype change, ...)
+ // - calculate modified fields and mapping to old fields
+ // - link new classes
+ //
+ // The result is sotred in _affected_klasses(old definitions) and _new_classes(new definitions) arrays.
jvmtiError load_new_class_versions(TRAPS);
// Searches for all affected classes and performs a sorting such tha
--
2.24.3 (Apple Git-128)

View File

@@ -1,47 +0,0 @@
From 2ad306a4cce06cfccf95a1193daf5b968ec1fa87 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sun, 24 May 2020 12:07:09 +0200
Subject: [PATCH 47/48] Review threads, cleanup
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 8d00203fd9a..1fbba406087 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -253,7 +253,7 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
// Note: we might set NULL at this point, which should force AbstractMethodError at runtime
Thread *thread = Thread::current();
CallInfo info(new_method, newest, thread);
- Handle objHandle(thread, obj); // TODO : review thread
+ Handle objHandle(thread, obj);
MethodHandles::init_method_MemberName(objHandle, info);
} else {
java_lang_invoke_MemberName::set_method(obj, NULL);
@@ -280,7 +280,7 @@ class ChangePointersOopClosure : public BasicOopIterateClosure {
InstanceKlass* ik_new = InstanceKlass::cast(k->newest_version());
fieldDescriptor fd_new;
if (ik_new->find_local_field(fd.name(), fd.signature(), &fd_new)) {
- Handle objHandle(Thread::current(), obj); // TODO : review thread
+ Handle objHandle(Thread::current(), obj);
MethodHandles::init_field_MemberName(objHandle, fd_new, MethodHandles::ref_kind_is_setter(ref_kind));
} else {
// Matching field is not found in new version, not much we can do here.
@@ -441,10 +441,9 @@ public:
// Main transformation method - runs in VM thread.
-// - UseSharedSpaces - TODO what does it mean?
-// - for each sratch class call redefine_single_class
+// - for each scratch class call redefine_single_class
// - clear code cache (flush_dependent_code)
-// - iterate the heap and update object defintions, check it old/new class fields
+// - iterate the heap and update object definitions, check it old/new class fields
// are compatible. If new class size is smaller then old, it can be solved directly here.
// - iterate the heap and update method handles to new version
// - Swap marks to have same hashcodes
--
2.24.3 (Apple Git-128)

View File

@@ -1,57 +0,0 @@
From a5586aff03fde654102e2c2e1fc19fdea406b31e Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sun, 24 May 2020 12:07:42 +0200
Subject: [PATCH 48/48] 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 7741328979f..06581643c3b 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -261,25 +261,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.24.3 (Apple Git-128)

View File

@@ -1,112 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
# Environment variables:
# MODULAR_SDK_PATH - specifies the path to the directory where imported modules are located.
# By default imported modules should be located in ./modular-sdk
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_win_x64
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
WORK_DIR=$(pwd)
WITH_IMPORT_MODULES="--with-import-modules=${MODULAR_SDK_PATH:=$WORK_DIR/modular-sdk}"
JCEF_PATH=${JCEF_PATH:=$WORK_DIR/jcef_win_x64}
source jb/project/tools/common.sh
function create_jbr {
if [ -z "${bundle_type}" ]; then
JBR_BUNDLE=jbr
else
JBR_BUNDLE=jbr_${bundle_type}
fi
cat modules.list > modules_tmp.list
rm -rf ${JBR_BUNDLE}
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output ${JBR_BUNDLE} || do_exit $?
[ ! -z "${bundle_type}" ] && (rsync -av ${JCEF_PATH}/ ${JBR_BUNDLE}/bin --exclude="modular-sdk" || do_exit $?)
echo Modifying release info ...
cat ${JSDK}/release | tr -d '\r' | grep -v 'JAVA_VERSION' | grep -v 'MODULES' >> ${JBR_BUNDLE}/release
}
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=windows-x86_64-server-release
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-b${build_number}
case "$bundle_type" in
"jcef")
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
do_reset_changes=1
;;
"nomod" | "")
bundle_type=""
WITH_IMPORT_MODULES=""
;;
"fd")
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=windows-x86_64-server-fastdebug
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-fastdebug-b${build_number}
;;
esac
sh ./configure \
--disable-warnings-as-errors \
$WITH_DEBUG_LEVEL \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
$WITH_IMPORT_MODULES \
--with-toolchain-version=${TOOLCHAIN_VERSION} \
--with-boot-jdk=${BOOT_JDK} \
--disable-ccache \
--enable-cds=yes || do_exit $?
if [ "$bundle_type" == "jcef" ]; 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
JSDK=build/$RELEASE_NAME/images/jdk
BASE_DIR=build/$RELEASE_NAME/images
JBRSDK_BUNDLE=jbrsdk
rm -rf ${BASE_DIR}/${JBRSDK_BUNDLE} && rsync -a --exclude demo --exclude sample ${JSDK}/ ${JBRSDK_BUNDLE} || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
rsync -av ${JCEF_PATH}/ ${JBRSDK_BUNDLE}/bin --exclude='modular-sdk' || do_exit $?
sed 's/JBR/JBRSDK/g' ${JSDK}/release > release
mv release ${JBRSDK_BUNDLE}/release
fi
create_jbr || 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.sh
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WORK_DIR=$(pwd)
[ -z "$bundle_type" ] && (git apply -p0 < jb/project/tools/patches/exclude_jcef_module.patch || exit $?)
PATH="/usr/local/bin:/usr/bin:${PATH}"
./configure \
--disable-warnings-as-errors \
--with-target-bits=32 \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-toolchain-version=${TOOLCHAIN_VERSION} \
--with-boot-jdk=${BOOT_JDK} \
--disable-ccache \
--enable-cds=yes || exit 1
make clean CONF=windows-x86-server-release || exit 1
make LOG=info images CONF=windows-x86-server-release test-image || exit 1
JBSDK=${JBRSDK_BASE_NAME}-windows-x86-b${build_number}
BASE_DIR=build/windows-x86-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
rm -rf ${BASE_DIR}/${JBRSDK_BUNDLE} && rsync -a --exclude demo --exclude sample ${JSDK}/ ${JBRSDK_BUNDLE} || exit 1
sed 's/JBR/JBRSDK/g' ${JSDK}/release > release
mv release ${JBRSDK_BUNDLE}/release
JBR_BUNDLE=jbr
rm -rf ${JBR_BUNDLE}
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.x86
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.x86 | sed s/" "//g) --output ${JBR_BUNDLE} || exit $?
echo Modifying release info ...
#grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${JBR_BUNDLE}/release

View File

@@ -1,75 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies udate release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the bundles without any additional modules (jcef)
# jcef - the bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
function pack_jbr {
if [ -z "${bundle_type}" ]; then
JBR_BUNDLE=jbr
else
JBR_BUNDLE=jbr_${bundle_type}
[ -d ${BASE_DIR}/jbr ] && rm -rf ${BASE_DIR}/jbr
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
fi
JBR_BASE_NAME=${JBR_BUNDLE}-${JBSDK_VERSION}
JBR=$JBR_BASE_NAME-windows-x64-b$build_number
echo Creating $JBR.tar.gz ...
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR jbr || do_exit $?
}
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
JBR_BASE_NAME=jbr-$JBSDK_VERSION
RELEASE_NAME=windows-x86_64-server-release
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-b${build_number}
case "$bundle_type" in
"nomod" | "")
bundle_type=""
;;
"fd")
RELEASE_NAME=macosx-x86_64-server-fastdebug
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-fastdebug-b${build_number}
;;
esac
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JBSDK=$JBRSDK_BASE_NAME-windows-x64-b$build_number
BASE_DIR=.
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
JBRSDK_BUNDLE=jbrsdk
echo Creating $JBSDK.tar.gz ...
[ -f "$JBSDK.tar.gz" ] && rm "$JBSDK.tar.gz"
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || do_exit $?
fi
pack_jbr $bundle_type
if [ "$bundle_type" == "jcef" ]; then
JBRSDK_TEST=$JBRSDK_BASE_NAME-windows-test-x64-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
fi

View File

@@ -1,42 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
JBR_BASE_NAME=jbr-$JBSDK_VERSION
IMAGES_DIR=build/windows-x86-server-release/images
JSDK=$IMAGES_DIR/jdk
JBSDK=$JBRSDK_BASE_NAME-windows-x86-b$build_number
BASE_DIR=.
JBRSDK_BUNDLE=jbrsdk
echo Creating $JBSDK.tar.gz ...
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || exit 1
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
JBR=$JBR_BASE_NAME-windows-x86-b$build_number
echo Creating $JBR.tar.gz ...
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR ${JBR_BUNDLE} || exit 1
JBRSDK_TEST=$JBRSDK_BASE_NAME-windows-test-x86-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || exit 1

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -101,7 +101,7 @@ define SetupBundleFileBody
# If no subdir is specified and only one BASE_DIR, tar.gz can be done
# directly from BASE_DIR.
$(CD) $$($1_BASE_DIRS) \
&& ( $(TAR) cf - $(TAR_CREATE_EXTRA_PARAM) \
&& ( $(TAR) cf - \
-$(TAR_INCLUDE_PARAM) $$($1_$$($1_BASE_DIRS)_LIST_FILE) \
$(TAR_IGNORE_EXIT_VALUE) ) \
| $(GZIP) > $$@
@@ -110,7 +110,7 @@ define SetupBundleFileBody
# If only one BASE_DIR, but with a SUBDIR set, tar.gz can use the
# transform option to create bundle directly from the BASE_DIR.
$(CD) $$($1_BASE_DIRS) \
&& ( $(TAR) cf - $(TAR_CREATE_EXTRA_PARAM) \
&& ( $(TAR) cf - \
-$(TAR_INCLUDE_PARAM) $$($1_$$($1_BASE_DIRS)_LIST_FILE) \
$$(if $$($1_SUBDIR), --transform 's|^|$$($1_SUBDIR)/|S') \
$(TAR_IGNORE_EXIT_VALUE) ) \
@@ -125,6 +125,13 @@ define SetupBundleFileBody
&& $(TAR) cf - -$(TAR_INCLUDE_PARAM) $$($1_$$d_LIST_FILE) \
$(TAR_IGNORE_EXIT_VALUE) ) \
| ( $(CD) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) && $(TAR) xf - )$$(NEWLINE) )
# Rename stripped pdb files
ifeq ($(call isTargetOs, windows)+$(SHIP_DEBUG_SYMBOLS), true+public)
for f in `$(FIND) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) -name "*.stripped.pdb"`; do \
$(ECHO) Renaming $$$${f} to $$$${f%stripped.pdb}pdb $(LOG_INFO); \
$(MV) $$$${f} $$$${f%stripped.pdb}pdb; \
done
endif
# Unzip any zipped debuginfo files
ifeq ($$($1_UNZIP_DEBUGINFO), true)
for f in `$(FIND) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) -name "*.diz"`; do \
@@ -133,7 +140,7 @@ define SetupBundleFileBody
endif
ifeq ($$($1_TYPE), tar.gz)
$(CD) $(SUPPORT_OUTPUTDIR)/bundles/$1 && \
( $(TAR) cf - $(TAR_CREATE_EXTRA_PARAM) \
( $(TAR) cf - \
$$(if $$($1_SUBDIR), $$($1_SUBDIR), .) $(TAR_IGNORE_EXIT_VALUE) ) \
| $(GZIP) > $$@
else ifeq ($$($1_TYPE), zip)
@@ -183,7 +190,7 @@ endif
ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
SYMBOLS_EXCLUDE_PATTERN := %.debuginfo %.diz %.pdb %.map
SYMBOLS_EXCLUDE_PATTERN := %.debuginfo %.diz %.map
# There may be files with spaces in the names, so use ShellFindFiles
# explicitly.
@@ -209,6 +216,21 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
endif
endif
# Create special filter rules when dealing with debug symbols on windows
ifeq ($(call isTargetOs, windows), true)
ifeq ($(SHIP_DEBUG_SYMBOLS), )
JDK_SYMBOLS_EXCLUDE_PATTERN := %.pdb
else
ifeq ($(SHIP_DEBUG_SYMBOLS), public)
JDK_SYMBOLS_EXCLUDE_PATTERN := \
$(filter-out \
%.stripped.pdb, \
$(filter %.pdb, $(ALL_JDK_FILES)) \
)
endif
endif
endif
JDK_BUNDLE_FILES := \
$(filter-out \
$(JDK_SYMBOLS_EXCLUDE_PATTERN) \
@@ -218,13 +240,14 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
, \
$(ALL_JDK_FILES) \
)
JDK_SYMBOLS_BUNDLE_FILES := \
$(filter \
$(JDK_SYMBOLS_EXCLUDE_PATTERN) \
$(SYMBOLS_EXCLUDE_PATTERN) \
, \
$(filter-out \
$(JDK_IMAGE_HOMEDIR)/demo/% \
$(JDK_IMAGE_HOMEDIR)/demo/% %.stripped.pdb \
, \
$(ALL_JDK_SYMBOLS_FILES) \
) \
@@ -245,29 +268,116 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
endif
endif
# Create special filter rules when dealing with debug symbols on windows
ifeq ($(call isTargetOs, windows), true)
ifeq ($(SHIP_DEBUG_SYMBOLS), )
JRE_SYMBOLS_EXCLUDE_PATTERN := %.pdb
else
ifeq ($(SHIP_DEBUG_SYMBOLS), public)
JRE_SYMBOLS_EXCLUDE_PATTERN := \
$(filter-out \
%.stripped.pdb, \
$(filter %.pdb, $(ALL_JRE_FILES)) \
)
endif
endif
endif
JRE_BUNDLE_FILES := $(filter-out \
$(JRE_SYMBOLS_EXCLUDE_PATTERN) \
$(SYMBOLS_EXCLUDE_PATTERN), \
$(ALL_JRE_FILES))
$(eval $(call SetupBundleFile, BUILD_JDK_BUNDLE, \
BUNDLE_NAME := $(JDK_BUNDLE_NAME), \
FILES := $(JDK_BUNDLE_FILES), \
SPECIAL_INCLUDES := $(JDK_SPECIAL_INCLUDES), \
BASE_DIRS := $(JDK_IMAGE_DIR), \
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
))
# On Macosx release builds, when there is a code signing certificate available,
# the final bundle layout can be signed.
SIGN_BUNDLE := false
ifeq ($(call isTargetOs, macosx)+$(DEBUG_LEVEL), true+release)
ifneq ($(CODESIGN), )
SIGN_BUNDLE := true
endif
endif
PRODUCT_TARGETS += $(BUILD_JDK_BUNDLE)
ifeq ($(SIGN_BUNDLE), true)
# Macosx release build and code signing available.
$(eval $(call SetupBundleFile, BUILD_JRE_BUNDLE, \
BUNDLE_NAME := $(JRE_BUNDLE_NAME), \
FILES := $(JRE_BUNDLE_FILES), \
BASE_DIRS := $(JRE_IMAGE_DIR), \
SUBDIR := $(JRE_BUNDLE_SUBDIR), \
))
################################################################################
# JDK bundle
$(eval $(call SetupCopyFiles, CREATE_JDK_BUNDLE_DIR_SIGNED, \
SRC := $(JDK_IMAGE_DIR), \
FILES := $(JDK_BUNDLE_FILES), \
DEST := $(JDK_MACOSX_BUNDLE_DIR_SIGNED), \
))
LEGACY_TARGETS += $(BUILD_JRE_BUNDLE)
JDK_SIGNED_CODE_RESOURCES := \
$(JDK_MACOSX_BUNDLE_DIR_SIGNED)/$(JDK_MACOSX_CONTENTS_SUBDIR)/_CodeSignature/CodeResources
$(JDK_SIGNED_CODE_RESOURCES): $(CREATE_JDK_BUNDLE_DIR_SIGNED)
$(call LogWarn, Signing $(JDK_BUNDLE_NAME))
$(CODESIGN) -s "$(MACOSX_CODESIGN_IDENTITY)" \
--timestamp --options runtime --deep --force \
$(JDK_MACOSX_BUNDLE_DIR_SIGNED)/$(JDK_MACOSX_BUNDLE_TOP_DIR) $(LOG_DEBUG)
$(TOUCH) $@
$(eval $(call SetupBundleFile, BUILD_JDK_BUNDLE, \
BUNDLE_NAME := $(JDK_BUNDLE_NAME), \
FILES := \
$(CREATE_JDK_BUNDLE_DIR_SIGNED) \
$(JDK_SIGNED_CODE_RESOURCES), \
BASE_DIRS := $(JDK_MACOSX_BUNDLE_DIR_SIGNED), \
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
))
PRODUCT_TARGETS += $(BUILD_JDK_BUNDLE)
################################################################################
# JRE bundle
$(eval $(call SetupCopyFiles, CREATE_JRE_BUNDLE_DIR_SIGNED, \
SRC := $(JRE_IMAGE_DIR), \
FILES := $(JRE_BUNDLE_FILES), \
DEST := $(JRE_MACOSX_BUNDLE_DIR_SIGNED), \
))
JRE_SIGNED_CODE_RESOURCES := \
$(JRE_MACOSX_BUNDLE_DIR_SIGNED)/$(JRE_MACOSX_CONTENTS_SUBDIR)/_CodeSignature/CodeResources
$(JRE_SIGNED_CODE_RESOURCES): $(CREATE_JRE_BUNDLE_DIR_SIGNED)
$(call LogWarn, Signing $(JRE_BUNDLE_NAME))
$(CODESIGN) -s "$(MACOSX_CODESIGN_IDENTITY)" \
--timestamp --options runtime --deep --force \
$(JRE_MACOSX_BUNDLE_DIR_SIGNED)/$(JRE_MACOSX_BUNDLE_TOP_DIR) $(LOG_DEBUG)
$(TOUCH) $@
$(eval $(call SetupBundleFile, BUILD_JRE_BUNDLE, \
BUNDLE_NAME := $(JRE_BUNDLE_NAME), \
FILES := \
$(CREATE_JRE_BUNDLE_DIR_SIGNED) \
$(JRE_SIGNED_CODE_RESOURCES), \
BASE_DIRS := $(JRE_MACOSX_BUNDLE_DIR_SIGNED), \
SUBDIR := $(JRE_BUNDLE_SUBDIR), \
))
LEGACY_TARGETS += $(BUILD_JRE_BUNDLE)
else
# Not a Macosx release build or code signing not available.
$(eval $(call SetupBundleFile, BUILD_JDK_BUNDLE, \
BUNDLE_NAME := $(JDK_BUNDLE_NAME), \
FILES := $(JDK_BUNDLE_FILES), \
SPECIAL_INCLUDES := $(JDK_SPECIAL_INCLUDES), \
BASE_DIRS := $(JDK_IMAGE_DIR), \
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
))
PRODUCT_TARGETS += $(BUILD_JDK_BUNDLE)
$(eval $(call SetupBundleFile, BUILD_JRE_BUNDLE, \
BUNDLE_NAME := $(JRE_BUNDLE_NAME), \
FILES := $(JRE_BUNDLE_FILES), \
BASE_DIRS := $(JRE_IMAGE_DIR), \
SUBDIR := $(JRE_BUNDLE_SUBDIR), \
))
LEGACY_TARGETS += $(BUILD_JRE_BUNDLE)
endif
ifeq ($(COPY_DEBUG_SYMBOLS), true)
$(eval $(call SetupBundleFile, BUILD_JDK_SYMBOLS_BUNDLE, \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -33,7 +33,6 @@ include $(SPEC)
include MakeBase.gmk
include JavaCompilation.gmk
include NativeCompilation.gmk
include SetupJavaCompilers.gmk
include TextFileProcessing.gmk
include ZipArchive.gmk
@@ -53,7 +52,6 @@ TARGETS =
# READMEs and other files.
DEMO_SHARE_SRC := $(TOPDIR)/src/demo/share
GLOBAL_VERSION_INFO_RESOURCE := $(TOPDIR)/src/java.base/windows/native/common/version.rc
DEMO_MANIFEST := $(SUPPORT_OUTPUTDIR)/demos/java-main-manifest.mf
@@ -93,7 +91,7 @@ COPY_TO_IMAGE := *.html *.txt *.png *.xml README*
# EXTRA_COPY_TO_IMAGE Additional files to copy to images (as wildcards)
# EXTRA_MANIFEST_ATTR Extra manifest attribute
# SKIP_COMPILATION Skip Java compilation iff true
# DISABLE_SJAVAC Passed to SetupJavaCompilation
# DISABLED_WARNINGS Additional disabled warnings
SetupBuildDemo = $(NamedParamsMacroTemplate)
define SetupBuildDemoBody
ifeq ($$($1_SRC_DIR), )
@@ -125,7 +123,7 @@ define SetupBuildDemoBody
ifneq ($$($1_SKIP_COMPILATION), true)
$$(eval $$(call SetupJavaCompilation, BUILD_DEMO_$1, \
SETUP := GENERATE_USINGJDKBYTECODE, \
TARGET_RELEASE := $(TARGET_RELEASE_NEWJDK_UPGRADED), \
SRC := $$($1_MAIN_SRC) $$($1_EXTRA_SRC_DIR), \
BIN := $(SUPPORT_OUTPUTDIR)/demos/classes/$$($1_DEMO_SUBDIR)/$1, \
COPY := $(COPY_TO_JAR) $$($1_EXTRA_COPY_TO_JAR), \
@@ -135,7 +133,7 @@ define SetupBuildDemoBody
EXTRA_MANIFEST_ATTR := $$($1_EXTRA_MANIFEST_ATTR), \
SRCZIP := $(SUPPORT_OUTPUTDIR)/demos/image/$$($1_DEMO_SUBDIR)/$1/src.zip, \
EXCLUDE_FILES := $$($1_EXCLUDE_FILES), \
DISABLE_SJAVAC := $$($1_DISABLE_SJAVAC), \
DISABLED_WARNINGS := $$($1_DISABLED_WARNINGS), \
))
$1 += $$(BUILD_DEMO_$1)
@@ -173,35 +171,41 @@ $(BUILD_DEMO_CodePointIM_JAR): $(CODEPOINT_METAINF_SERVICE_FILE)
$(eval $(call SetupBuildDemo, FileChooserDemo, \
DEMO_SUBDIR := jfc, \
DISABLED_WARNINGS := rawtypes deprecation unchecked, \
))
$(eval $(call SetupBuildDemo, SwingSet2, \
DEMO_SUBDIR := jfc, \
EXTRA_COPY_TO_JAR := .java, \
EXTRA_MANIFEST_ATTR := SplashScreen-Image: resources/images/splash.png, \
DISABLE_SJAVAC := true, \
DISABLED_WARNINGS := rawtypes deprecation unchecked static serial cast, \
))
$(eval $(call SetupBuildDemo, Font2DTest, \
DISABLED_WARNINGS := rawtypes deprecation unchecked serial cast, \
DEMO_SUBDIR := jfc, \
))
$(eval $(call SetupBuildDemo, J2Ddemo, \
DEMO_SUBDIR := jfc, \
MAIN_CLASS := java2d.J2Ddemo, \
DISABLED_WARNINGS := rawtypes deprecation unchecked cast, \
JAR_NAME := J2Ddemo, \
))
$(eval $(call SetupBuildDemo, Metalworks, \
DISABLED_WARNINGS := rawtypes unchecked, \
DEMO_SUBDIR := jfc, \
))
$(eval $(call SetupBuildDemo, Notepad, \
DISABLED_WARNINGS := rawtypes, \
DEMO_SUBDIR := jfc, \
))
$(eval $(call SetupBuildDemo, Stylepad, \
DEMO_SUBDIR := jfc, \
DISABLED_WARNINGS := rawtypes unchecked, \
EXTRA_SRC_DIR := $(DEMO_SHARE_SRC)/jfc/Notepad, \
EXCLUDE_FILES := $(DEMO_SHARE_SRC)/jfc/Notepad/README.txt, \
))
@@ -211,6 +215,7 @@ $(eval $(call SetupBuildDemo, SampleTree, \
))
$(eval $(call SetupBuildDemo, TableExample, \
DISABLED_WARNINGS := rawtypes unchecked deprecation, \
DEMO_SUBDIR := jfc, \
))
@@ -234,15 +239,9 @@ $(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%: $(DEMO_SHARE_SRC)/nbproject/%
$(call install-file)
$(CHMOD) -f ug+w $@
ifeq ($(call isTargetOs, solaris), true)
TARGETS += $(patsubst $(DEMO_SHARE_SRC)/nbproject/%, \
$(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%, \
$(call FindFiles, $(DEMO_SHARE_SRC)/nbproject))
else
TARGETS += $(patsubst $(DEMO_SHARE_SRC)/nbproject/%, \
$(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%, \
$(call FindFiles, $(DEMO_SHARE_SRC)/nbproject))
endif
TARGETS += $(patsubst $(DEMO_SHARE_SRC)/nbproject/%, \
$(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%, \
$(call FindFiles, $(DEMO_SHARE_SRC)/nbproject))
################################################################################

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