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