Merge
diff --git a/.hgtags-top-repo b/.hgtags-top-repo
index 8474aee..4390593 100644
--- a/.hgtags-top-repo
+++ b/.hgtags-top-repo
@@ -376,3 +376,4 @@
5dd2ad6c7911a1e21f15a28f13ffad662378a3be jdk8u40-b23
5b37e6757d7c95c9c58b07fb3c9eba234567385a jdk8u40-b24
e26f15704e37f28acebb22378c4785891aaec637 jdk8u40-b25
+7a552439756eaad0618ae82a94c034edb65f5d7e jdk8u40-b26
diff --git a/corba/.hgtags b/corba/.hgtags
index 32767ea..1dbd8dd 100644
--- a/corba/.hgtags
+++ b/corba/.hgtags
@@ -374,3 +374,4 @@
62f7faef5ed956cd481cae6216b22fdb4b6e3e46 jdk8u40-b23
472aa5bae0e78614e873d56bcc31e7caba49963c jdk8u40-b24
2220744100b8487976debff79e5d0c7d70738bda jdk8u40-b25
+cab2b99c6bb2e15165a58eaa36157788f82592f1 jdk8u40-b26
diff --git a/hotspot/.hgtags b/hotspot/.hgtags
index 5d79936..3fe3477 100644
--- a/hotspot/.hgtags
+++ b/hotspot/.hgtags
@@ -547,6 +547,8 @@
28b50d07f6f8c5a567b6a25e95a423948114a004 jdk8u25-b17
639abc668bfe995dba811dd35411b9ea8a9041cd jdk8u25-b18
c3528699fb33fe3eb1d117504184ae7ab2507aa1 jdk8u25-b31
+631f0c7b49c091c6865d79d248d6551a270ac22f jdk8u25-b32
+4e1f52384f9ffa803838acad545cd63de48a7b35 jdk8u25-b33
5bb683bbe2c74876d585b5c3232fc3aab7b23e97 jdk8u31-b00
5bb686ae3b89f8aa1c74331b2d24e2a5ebd43448 jdk8u31-b01
087678da96603c9705b38b6cc4a6569ac7b4420a jdk8u31-b02
@@ -561,6 +563,8 @@
9906d432d6dbd2cda242e3f3cfde7cf6c90245bf jdk8u31-b11
e13839545238d1ecf17f0489bb6fb765de46719a jdk8u31-b12
4206e725d584be942c25ff46ff23d8e299ca4a4c jdk8u31-b13
+b517d3a9aebf0fee64808f9a7c0ef8e0b82d5ed3 jdk8u31-b31
+15d8108258cb60a58bdd03b9ff8e77dd6727a804 jdk8u31-b32
1b3abbeee961dee49780c0e4af5337feb918c555 jdk8u40-b10
f10fe402dfb1543723b4b117a7cba3ea3d4159f1 hs25.40-b15
99372b2fee0eb8b3452f47230e84aa6e97003184 jdk8u40-b11
@@ -588,6 +592,23 @@
0e67683b700174eab71ea205d1cfa4f1cf4523ba jdk8u40-b23
fa4e797f61e6dda1a60e06944018213bff2a1b76 jdk8u40-b24
698dd28ecc785ffc43e3f12266b13e85382c26a8 jdk8u40-b25
+f39b6944ad447269b81e06ca5da9edff9e9e67c8 jdk8u40-b26
+6824e2475e0432e27f9cc51838bc34ea5fbf5113 jdk8u40-b27
+b95f13f05f553309cd74d6ccf8fcedb259c6716c jdk8u45-b00
+41c3c456e326185053f0654be838f4b0bfb38078 jdk8u45-b01
+626fd8c2eec63e2a2dff3839bfe12c0431bf00a4 jdk8u45-b02
+f41aa01b0a043611ee0abcb81a40f7d80085ec27 jdk8u45-b03
+2f586e3c4b6db807ac6036b485b2890ff82f7bfd jdk8u45-b04
+344ff6e45a1e2960ac4a583f63ebfb54cd52e6b4 jdk8u45-b05
+3afa9cc6e8d537ee456b8e12d1abb1da520b5ddc jdk8u45-b06
+5871f3dd9b4a2c4b44e7da2184f4430323e0c04b jdk8u45-b07
+35c7330b68e21d0dfaaedaaf74b794fd10606e9c jdk8u45-b08
+35d8318de0b6d4e68e2e0a04f6e20cafd113ca54 jdk8u45-b09
+a9f5786079202b74b3651e1097c0b2341b2178b9 jdk8u45-b10
+f4822d12204179e6a3e7aaf98991b6171670cbf2 jdk8u45-b11
+dc29108bcbcbfcd49eaa9135368306dc85db73a6 jdk8u45-b12
+efbf340fc7f56e49735111c23cef030413146409 jdk8u45-b13
+5321d26956b283b7cb73b04b91db41c7c9fe9158 jdk8u45-b14
d9349fa8822336e0244da0a8448f3e6b2d62741d jdk8u60-b00
d9349fa8822336e0244da0a8448f3e6b2d62741d hs25.60-b00
ebf89088c08ab0508b9002b48dd3d68a340259af hs25.60-b01
diff --git a/hotspot/THIRD_PARTY_README b/hotspot/THIRD_PARTY_README
index c34ce6b..cd88baf 100644
--- a/hotspot/THIRD_PARTY_README
+++ b/hotspot/THIRD_PARTY_README
@@ -1250,7 +1250,7 @@
-------------------------------------------------------------------------------
-%% This notice is provided with respect to libpng 1.5.4, which may be
+%% This notice is provided with respect to libpng 1.6.16, which may be
included with JRE 8, JDK 8, and OpenJDK 8.
--- begin of LICENSE ---
@@ -1266,8 +1266,8 @@
This code is released under the libpng license.
-libpng versions 1.2.6, August 15, 2004, through 1.5.4, July 7, 2011, are
-Copyright (c) 2004, 2006-2011 Glenn Randers-Pehrson, and are
+libpng versions 1.2.6, August 15, 2004, through 1.6.16, December 22, 2014, are
+Copyright (c) 2004, 2006-2014 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
@@ -1364,7 +1364,7 @@
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
-July 7, 2011
+December 22, 2014
--- end of LICENSE ---
diff --git a/hotspot/src/share/vm/classfile/defaultMethods.cpp b/hotspot/src/share/vm/classfile/defaultMethods.cpp
index 775fe3e..6c4abf1 100644
--- a/hotspot/src/share/vm/classfile/defaultMethods.cpp
+++ b/hotspot/src/share/vm/classfile/defaultMethods.cpp
@@ -731,10 +731,12 @@
Method* m = iklass->find_method(_method_name, _method_signature);
// private interface methods are not candidates for default methods
// invokespecial to private interface methods doesn't use default method logic
+ // private class methods are not candidates for default methods,
+ // private methods do not override default methods, so need to perform
+ // default method inheritance without including private methods
// The overpasses are your supertypes' errors, we do not include them
// future: take access controls into account for superclass methods
- if (m != NULL && !m->is_static() && !m->is_overpass() &&
- (!iklass->is_interface() || m->is_public())) {
+ if (m != NULL && !m->is_static() && !m->is_overpass() && !m->is_private()) {
if (_family == NULL) {
_family = new StatefulMethodFamily();
}
@@ -745,6 +747,9 @@
} else {
// This is the rule that methods in classes "win" (bad word) over
// methods in interfaces. This works because of single inheritance
+ // private methods in classes do not "win", they will be found
+ // first on searching, but overriding for invokevirtual needs
+ // to find default method candidates for the same signature
_family->set_target_if_empty(m);
}
}
diff --git a/hotspot/src/share/vm/memory/referenceProcessor.cpp b/hotspot/src/share/vm/memory/referenceProcessor.cpp
index 12a9992..3c776f4 100644
--- a/hotspot/src/share/vm/memory/referenceProcessor.cpp
+++ b/hotspot/src/share/vm/memory/referenceProcessor.cpp
@@ -252,7 +252,7 @@
// Cleaner references to be temporary, and don't want to deal with
// possible incompatibilities arising from making it more visible.
phantom_count +=
- process_discovered_reflist(_discoveredCleanerRefs, NULL, false,
+ process_discovered_reflist(_discoveredCleanerRefs, NULL, true,
is_alive, keep_alive, complete_gc, task_executor);
}
diff --git a/hotspot/src/share/vm/oops/klassVtable.cpp b/hotspot/src/share/vm/oops/klassVtable.cpp
index e73191e..f7adf47 100644
--- a/hotspot/src/share/vm/oops/klassVtable.cpp
+++ b/hotspot/src/share/vm/oops/klassVtable.cpp
@@ -401,13 +401,15 @@
// get super_klass for method_holder for the found method
InstanceKlass* super_klass = super_method->method_holder();
- if (is_default
+ // private methods are also never overridden
+ if (!super_method->is_private() &&
+ (is_default
|| ((super_klass->is_override(super_method, target_loader, target_classname, THREAD))
|| ((klass->major_version() >= VTABLE_TRANSITIVE_OVERRIDE_VERSION)
&& ((super_klass = find_transitive_override(super_klass,
target_method, i, target_loader,
target_classname, THREAD))
- != (InstanceKlass*)NULL))))
+ != (InstanceKlass*)NULL)))))
{
// Package private methods always need a new entry to root their own
// overriding. They may also override other methods.
@@ -689,9 +691,15 @@
// check if a method is a miranda method, given a class's methods table,
// its default_method table and its super
// Miranda methods are calculated twice:
-// first: before vtable size calculation: including abstract and default
+// first: before vtable size calculation: including abstract and superinterface default
+// We include potential default methods to give them space in the vtable.
+// During the first run, the default_methods list is empty
// This is seen by default method creation
-// Second: recalculated during vtable initialization: only abstract
+// Second: recalculated during vtable initialization: only include abstract methods.
+// During the second run, default_methods is set up, so concrete methods from
+// superinterfaces with matching names/signatures to default_methods are already
+// in the default_methods list and do not need to be appended to the vtable
+// as mirandas
// This is seen by link resolution and selection.
// "miranda" means not static, not defined by this class.
// private methods in interfaces do not belong in the miranda list.
@@ -706,8 +714,9 @@
}
Symbol* name = m->name();
Symbol* signature = m->signature();
+ Method* mo;
- if (InstanceKlass::find_instance_method(class_methods, name, signature) == NULL) {
+ if ((mo = InstanceKlass::find_instance_method(class_methods, name, signature)) == NULL) {
// did not find it in the method table of the current class
if ((default_methods == NULL) ||
InstanceKlass::find_method(default_methods, name, signature) == NULL) {
@@ -716,7 +725,7 @@
return true;
}
- Method* mo = InstanceKlass::cast(super)->lookup_method(name, signature);
+ mo = InstanceKlass::cast(super)->lookup_method(name, signature);
while (mo != NULL && mo->access_flags().is_static()
&& mo->method_holder() != NULL
&& mo->method_holder()->super() != NULL)
@@ -728,6 +737,18 @@
return true;
}
}
+ } else {
+ // if the local class has a private method, the miranda will not
+ // override it, so a vtable slot is needed
+ if (mo->access_flags().is_private()) {
+
+ // Second round, weed out any superinterface methods that turned
+ // into default methods, i.e. were concrete not abstract in the end
+ if ((default_methods == NULL) ||
+ InstanceKlass::find_method(default_methods, name, signature) == NULL) {
+ return true;
+ }
+ }
}
return false;
diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp
index f42da30..7a7fbe6 100644
--- a/hotspot/src/share/vm/runtime/arguments.cpp
+++ b/hotspot/src/share/vm/runtime/arguments.cpp
@@ -2310,7 +2310,7 @@
"G1ConcMarkStepDurationMillis");
status = status && verify_interval(G1ConcRSHotCardLimit, 0, max_jubyte,
"G1ConcRSHotCardLimit");
- status = status && verify_interval(G1ConcRSLogCacheSize, 0, 31,
+ status = status && verify_interval(G1ConcRSLogCacheSize, 0, 27,
"G1ConcRSLogCacheSize");
status = status && verify_interval(StringDeduplicationAgeThreshold, 1, markOopDesc::max_age,
"StringDeduplicationAgeThreshold");
diff --git a/jaxp/.hgtags b/jaxp/.hgtags
index 17732e4..92db412 100644
--- a/jaxp/.hgtags
+++ b/jaxp/.hgtags
@@ -376,3 +376,4 @@
e07fbae1efeac4e50514384caa7d226af7414114 jdk8u40-b23
048cebd17f73f23ce2295e360f31c1b6788195aa jdk8u40-b24
4c0d4c38279c5790aa5b61b03c4cfa9b2a58bc72 jdk8u40-b25
+f693ef62c207dd0290957c95bd62ab653afe4626 jdk8u40-b26
diff --git a/jaxws/.hgtags b/jaxws/.hgtags
index e90254a..0831329 100644
--- a/jaxws/.hgtags
+++ b/jaxws/.hgtags
@@ -374,3 +374,4 @@
b6755a463ccf6a79b1e1a43ed7bdb1c5cb1ac17d jdk8u40-b23
5fbbfd66643edb81cfa0688825d698dcc5f2eb11 jdk8u40-b24
b6120aaf2aeef7c5608d578e15e82db7eb24fb2e jdk8u40-b25
+1bcb30bdd9883cc7fc1bf70800ea03a4429eaa80 jdk8u40-b26
diff --git a/jdk/.hgtags b/jdk/.hgtags
index 72a7c8e..62805c2 100644
--- a/jdk/.hgtags
+++ b/jdk/.hgtags
@@ -377,3 +377,4 @@
41fe61722ce96b75dd3a1ba5072473122e21e5a0 jdk8u40-b23
9d903721276c8684706db7ecfb6cda568e9f4f69 jdk8u40-b24
f0d5cb59b0e6a67fa102465458cc4725c6e59089 jdk8u40-b25
+97f258823d7d8ee0ec7d774b79cd30492520cc10 jdk8u40-b26
diff --git a/jdk/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m b/jdk/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m
index 0eaf688..c71c636 100644
--- a/jdk/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m
+++ b/jdk/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m
@@ -131,11 +131,7 @@
NSAutoreleasePool *pool = [NSAutoreleasePool new];
*scaleFactor = 1;
char* scaledFile = nil;
- __block float screenScaleFactor = 1;
-
- [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
- screenScaleFactor = [SplashNSScreen() backingScaleFactor];
- }];
+ float screenScaleFactor = 1;
if (screenScaleFactor > 1) {
NSString *fileName = [NSString stringWithUTF8String: file];
diff --git a/jdk/test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java b/jdk/test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java
index a13cd81..92de5f5 100644
--- a/jdk/test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java
+++ b/jdk/test/java/awt/SplashScreen/MultiResolutionSplash/MultiResolutionSplashTest.java
@@ -36,7 +36,7 @@
import sun.java2d.SunGraphics2D;
/**
- * @test
+ * test
* @bug 8043869
* @author Alexander Scherbatiy
* @summary [macosx] java -splash does not honor 2x hi dpi notation for retina
diff --git a/langtools/.hgtags b/langtools/.hgtags
index c4d6185..f179410 100644
--- a/langtools/.hgtags
+++ b/langtools/.hgtags
@@ -374,3 +374,4 @@
fb294b49373bda0b3afc7f011d64ecefed73b42e jdk8u40-b23
c5d4ffa220f3824c2ea5d39dc99d41a9df9e5ae5 jdk8u40-b24
991141080b2078e67179ff307a5051e59431762c jdk8u40-b25
+2904142783dd0a9e12195a84c7dcdb3d8278b1b1 jdk8u40-b26
diff --git a/nashorn/.hgtags b/nashorn/.hgtags
index f6308a9..236ef0e 100644
--- a/nashorn/.hgtags
+++ b/nashorn/.hgtags
@@ -362,3 +362,4 @@
6ca090832d30fd0e46214ccc00816490ad75a8ab jdk8u40-b23
b2ce5df33715583c898530560d4202853b9ff9bc jdk8u40-b24
fb7b6c2b95c5661f15e8e747a63ec6d95d49fe46 jdk8u40-b25
+b142a2d8e35e54abb08a7ded1dbfb5d7ce534c93 jdk8u40-b26