From owner-svn-ports-all@FreeBSD.ORG Wed May 6 07:03:54 2015 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 81151328; Wed, 6 May 2015 07:03:54 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6EA291AC1; Wed, 6 May 2015 07:03:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t4673sXi007666; Wed, 6 May 2015 07:03:54 GMT (envelope-from glewis@FreeBSD.org) Received: (from glewis@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t4673sxF007663; Wed, 6 May 2015 07:03:54 GMT (envelope-from glewis@FreeBSD.org) Message-Id: <201505060703.t4673sxF007663@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: glewis set sender to glewis@FreeBSD.org using -f From: Greg Lewis Date: Wed, 6 May 2015 07:03:54 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r385506 - in head/java/openjdk8: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 May 2015 07:03:54 -0000 Author: glewis Date: Wed May 6 07:03:53 2015 New Revision: 385506 URL: https://svnweb.freebsd.org/changeset/ports/385506 Log: . Update to 8u45. Added: head/java/openjdk8/files/patch-8u45-b14 (contents, props changed) Modified: head/java/openjdk8/Makefile head/java/openjdk8/files/patch-bsd head/java/openjdk8/files/patch-bsd-test head/java/openjdk8/files/patch-jdk-make-lib-Awt2dLibraries.gmk Modified: head/java/openjdk8/Makefile ============================================================================== --- head/java/openjdk8/Makefile Wed May 6 06:37:47 2015 (r385505) +++ head/java/openjdk8/Makefile Wed May 6 07:03:53 2015 (r385506) @@ -2,7 +2,6 @@ PORTNAME= openjdk PORTVERSION= ${JDK_MAJOR_VERSION}.${JDK_UPDATE_VERSION}.${JDK_BUILD_NUMBER:S/^0//} -PORTREVISION= 3 CATEGORIES= java devel MASTER_SITES= http://download.java.net/openjdk/jdk${JDK_MAJOR_VERSION}/promoted/b${DIST_BUILD_NUMBER}/:jdk \ https://adopt-openjdk.ci.cloudbees.com/job/jtreg/${JTREG_JENKINS_BUILD}/artifact/:jtreg \ @@ -26,9 +25,10 @@ LIB_DEPENDS= libasound.so:${PORTSDIR}/au RUN_DEPENDS= javavm:${PORTSDIR}/java/javavmwrapper \ dejavu>0:${PORTSDIR}/x11-fonts/dejavu -USES= compiler:features dos2unix gmake iconv pkgconfig shebangfix -USE_AUTOTOOLS= autoconf +USES= compiler:features dos2unix gmake iconv pkgconfig \ + shebangfix USE_XORG= x11 xext xi xrender xt xtst +GNU_CONFIGURE= yes .if !exists(/usr/bin/unzip) BUILD_DEPENDS+= ${UNZIP_CMD}:${PORTSDIR}/archivers/unzip @@ -92,8 +92,8 @@ NO_CCACHE= yes NOPRECIOUSMAKEVARS= yes JDK_MAJOR_VERSION= 8 -JDK_UPDATE_VERSION= 40 -JDK_BUILD_NUMBER= 25 +JDK_UPDATE_VERSION= 45 +JDK_BUILD_NUMBER= 14 DIST_BUILD_NUMBER= 132 JTREG_VERSION= 4.1 JTREG_BUILD_NUMBER= b08 Added: head/java/openjdk8/files/patch-8u45-b14 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/java/openjdk8/files/patch-8u45-b14 Wed May 6 07:03:53 2015 (r385506) @@ -0,0 +1,45638 @@ +--- ./.hgtags Wed Jan 28 12:08:30 2015 -0800 ++++ ./.hgtags Tue Mar 17 11:22:18 2015 -0700 +@@ -336,6 +336,8 @@ + d117f01bfb4f34668ac216c9837e88acead14dce jdk8u25-b17 + efac90a2da447c2b2d43ee1b1e20c0828659f9c5 jdk8u25-b18 + 1a0b4ec68abc4e9248ca6041fff04612674a9b9f jdk8u25-b31 ++cc8541804eb47d86b30c5b005c6fa6ecb6a53538 jdk8u25-b32 ++ec5219b942d277059d89063fb3702bc5e076dfd0 jdk8u25-b33 + 6db0898d3f90ad9eae2f017299314b88766446e3 jdk8u31-b00 + 85792859f3bdd6a2c1bdfcf2828bb2730e06ac3c jdk8u31-b01 + 4898a7460ae620ac5356cb224e1fdf3c29312533 jdk8u31-b02 +@@ -350,6 +352,8 @@ + ec85d5d0e3c05b0b6d61f4fc3f41313448ed9b05 jdk8u31-b11 + ca98e3e9727ffdcde2c9980668d0c7f344261938 jdk8u31-b12 + fde671d8b2537b6be61f67e583164b5b8b33ac5b jdk8u31-b13 ++a198f93b1e0be5edce7a351b1399cb5c4e64c8f4 jdk8u31-b31 ++99c79d83152585991682bd86e21fdcfe6f6ab9b2 jdk8u31-b32 + 0dccc4aca1859b1ff7dca9db214f7f38c4ddbbce jdk8u40-b00 + f8736a40a35df0c8055c8a94b96e5381b381ad33 jdk8u40-b01 + b6a148730f2b14193c308bc9c866c36ee6c08ed3 jdk8u40-b02 +@@ -374,3 +378,21 @@ + 765a17e75fd622f7b892381e23c9b2c531d416f0 jdk8u40-b21 + b6d03a810a61116268fea08517a9632bd66a7363 jdk8u40-b22 + 5dd2ad6c7911a1e21f15a28f13ffad662378a3be jdk8u40-b23 ++5b37e6757d7c95c9c58b07fb3c9eba234567385a jdk8u40-b24 ++e26f15704e37f28acebb22378c4785891aaec637 jdk8u40-b25 ++7a552439756eaad0618ae82a94c034edb65f5d7e jdk8u40-b26 ++12deacac825756e266e91a906db9edab73c4c90b jdk8u40-b27 ++ec4bcc6e4dcf190a165106627ed3eef1e7d94d0c jdk8u45-b00 ++635ba0c81b894a88ff737fefc9d7af398f761643 jdk8u45-b01 ++801c65bb74b770600a2d48189764e416e5cfe265 jdk8u45-b02 ++7d11a7eee8c0512fa15d3ed2dcded5391b0c091d jdk8u45-b03 ++3d79ef8a102ffe22b083d07649a1d9e22cf784b6 jdk8u45-b04 ++45f8fc9d30021026a5101c8946af98f7c079b537 jdk8u45-b05 ++9a5843fdd2cf8120515d98572440c5c35118254d jdk8u45-b06 ++74ef61db0fe02e3eaa5156a7bab9f00f2a2143de jdk8u45-b07 ++0c10bc33556383b8e665998c62145a8398e7f7ef jdk8u45-b08 ++733d16eb42cb105749588c9b93cc408155ed99ad jdk8u45-b09 ++9a343fd13810a8f09d3dd4a9e2e20791bb866166 jdk8u45-b10 ++6738b8755c80905e3eecedf94e27f03d23f02ba9 jdk8u45-b11 ++54709b761404dd3bc1b58acf5582fa9bd70ff59a jdk8u45-b12 ++6b2f1bf5c72873d01b37103fc20ac7a63e7881dd jdk8u45-b13 +--- ./THIRD_PARTY_README Wed Jan 28 12:08:30 2015 -0800 ++++ ./THIRD_PARTY_README Tue Mar 17 11:22:18 2015 -0700 +@@ -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 --- + +--- ./corba/.hgtags Wed Jan 28 12:08:31 2015 -0800 ++++ ./corba/.hgtags Tue Mar 17 11:22:27 2015 -0700 +@@ -334,6 +334,8 @@ + f46df0af2ca8c7d896de375c8edac8ce09318318 jdk8u25-b17 + ee069d67c12df902cdb06ecf1747f8ff9d495a61 jdk8u25-b18 + 8d0faa0eac61c04c6a5bbff2e084c9da0bd5251c jdk8u25-b31 ++6617e1de7aa536d2e3671e3c50c340262b2b053e jdk8u25-b32 ++c123ac2adfdc6049034d5970bec89b51ce5d8889 jdk8u25-b33 + 69793b08060c9d216fa84d679c48b9e22d2400ac jdk8u31-b00 + fd5f8e3713803ca2d7898407a53996f3aa41521e jdk8u31-b01 + b6e2d1b1b24585bd02512e360d842d4713afa644 jdk8u31-b02 +@@ -348,6 +350,8 @@ + 7e2056eba0b62247407e065f3f88a89358fc26a6 jdk8u31-b11 + 285b0e589c50e46ca7ad3434221335901a547d66 jdk8u31-b12 + f89b454638d89ee5f44422b7a5b8e5651260e68f jdk8u31-b13 ++705d3a4298f44f0a14925bfee5017f5824b6c0ca jdk8u31-b31 ++072d325a052a5894019b74118803bf5fb9e30692 jdk8u31-b32 + 7d1e0f0b63f1d66c77924d8b2a1accdf8f7480db jdk8u40-b00 + c5d9822a3c18cd9e274dfe99e91c33e02bd8f8f4 jdk8u40-b01 + 504b4455570e14b7fc0a837a09c6401c603516d9 jdk8u40-b02 +@@ -372,3 +376,21 @@ + 9c54cc92c0beb29179abbce272d3f5c8ba4ffd0e jdk8u40-b21 + 4c7421f74674ebefb8e91eba59ab2a2db8c1abd7 jdk8u40-b22 + 62f7faef5ed956cd481cae6216b22fdb4b6e3e46 jdk8u40-b23 ++472aa5bae0e78614e873d56bcc31e7caba49963c jdk8u40-b24 ++2220744100b8487976debff79e5d0c7d70738bda jdk8u40-b25 ++cab2b99c6bb2e15165a58eaa36157788f82592f1 jdk8u40-b26 ++bd0186cd2419129357b110fe3f13519f68b29774 jdk8u40-b27 ++5761efbc739fdedcbff224e22f920e88b29af4cf jdk8u45-b00 ++6a52852476c9ccb2d52153d1b94b675e863bb28c jdk8u45-b01 ++3b9d342f9f584465ea5976e06357b45682f9681d jdk8u45-b02 ++d3678799ed35f162928f387308d72f5401b37e84 jdk8u45-b03 ++9dd8c8e1b0facfcf21657c91fc99bcb5319d1196 jdk8u45-b04 ++b82ecb056ae3fd6ee06e765995c564b17a761221 jdk8u45-b05 ++f538a9334f09535ef8fe13072f6a4a52e3187e1c jdk8u45-b06 ++4dec7b828f1ee3adbf3c2b6430400db8b1abb5ad jdk8u45-b07 ++16cb989c8b6220330a54fe78ae27b2f50fc5e794 jdk8u45-b08 ++ace36a054b7faadb702d6f23e569efb77f0a7513 jdk8u45-b09 ++b9ef43c59b425961526b04e92d7fa66014ec25eb jdk8u45-b10 ++08c2ce4b6d59bc6b29e61fd8562b9e3d39b257a5 jdk8u45-b11 ++c9bf2543c0c045ef31f0296bc355381e1a4bd4ac jdk8u45-b12 ++326f02235e7a9a6da78428410320dcc980827d40 jdk8u45-b13 +--- ./corba/THIRD_PARTY_README Wed Jan 28 12:08:31 2015 -0800 ++++ ./corba/THIRD_PARTY_README Tue Mar 17 11:22:27 2015 -0700 +@@ -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 --- + +--- ./hotspot/.hgtags Fri Jan 30 15:14:31 2015 -0800 ++++ ./hotspot/.hgtags Tue Mar 17 11:22:51 2015 -0700 +@@ -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 +@@ -586,3 +590,21 @@ + 0f0cb4eeab2d871274f4ffdcd6017d2fdfa89238 hs25.40-b25 + 0ee548a1cda08c884eccd563e2d5fdb6ee769b5a jdk8u40-b22 + 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 +--- ./hotspot/THIRD_PARTY_README Fri Jan 30 15:14:31 2015 -0800 ++++ ./hotspot/THIRD_PARTY_README Tue Mar 17 11:22:51 2015 -0700 +@@ -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 --- + +--- ./hotspot/make/hotspot_version Fri Jan 30 15:14:31 2015 -0800 ++++ ./hotspot/make/hotspot_version Tue Mar 17 11:22:51 2015 -0700 +@@ -34,8 +34,8 @@ + HOTSPOT_VM_COPYRIGHT=Copyright 2015 + + HS_MAJOR_VER=25 +-HS_MINOR_VER=40 +-HS_BUILD_NUMBER=25 ++HS_MINOR_VER=45 ++HS_BUILD_NUMBER=02 + + JDK_MAJOR_VER=1 + JDK_MINOR_VER=8 +--- ./hotspot/src/cpu/sparc/vm/macroAssembler_sparc.inline.hpp Fri Jan 30 15:14:31 2015 -0800 ++++ ./hotspot/src/cpu/sparc/vm/macroAssembler_sparc.inline.hpp Tue Mar 17 11:22:51 2015 -0700 +@@ -630,7 +630,12 @@ + + inline void MacroAssembler::ldf(FloatRegisterImpl::Width w, const Address& a, FloatRegister d, int offset) { + relocate(a.rspec(offset)); +- ldf(w, a.base(), a.disp() + offset, d); ++ if (a.has_index()) { ++ assert(offset == 0, ""); ++ ldf(w, a.base(), a.index(), d); ++ } else { ++ ldf(w, a.base(), a.disp() + offset, d); ++ } + } + + // returns if membar generates anything, obviously this code should mirror +--- ./hotspot/src/share/vm/classfile/defaultMethods.cpp Fri Jan 30 15:14:31 2015 -0800 ++++ ./hotspot/src/share/vm/classfile/defaultMethods.cpp Tue Mar 17 11:22:51 2015 -0700 +@@ -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); + } + } +--- ./hotspot/src/share/vm/memory/referenceProcessor.cpp Fri Jan 30 15:14:31 2015 -0800 ++++ ./hotspot/src/share/vm/memory/referenceProcessor.cpp Tue Mar 17 11:22:51 2015 -0700 +@@ -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); + } + +--- ./hotspot/src/share/vm/oops/klassVtable.cpp Fri Jan 30 15:14:31 2015 -0800 ++++ ./hotspot/src/share/vm/oops/klassVtable.cpp Tue Mar 17 11:22:51 2015 -0700 +@@ -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; +--- ./hotspot/src/share/vm/runtime/arguments.cpp Fri Jan 30 15:14:31 2015 -0800 ++++ ./hotspot/src/share/vm/runtime/arguments.cpp Tue Mar 17 11:22:51 2015 -0700 +@@ -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"); +--- ./jaxp/.hgtags Wed Jan 28 12:08:37 2015 -0800 ++++ ./jaxp/.hgtags Tue Mar 17 11:23:49 2015 -0700 +@@ -336,6 +336,8 @@ + 7a721e57b38ff6c1d34af0b86f6482540a815d90 jdk8u25-b17 + fddbc00bde281d7d437b052262e921ed51de8b9a jdk8u25-b18 + 30420a31a81f21e363f412ae9801b7467c8cc908 jdk8u25-b31 ++b4231e682f98c8f7037e00fe6ef446d05a01811b jdk8u25-b32 ++1c17ffddb76625e835d225c84a8c6ff23c1e5729 jdk8u25-b33 + 19b6e16343925a4bf27879795b530d4f64e5d262 jdk8u31-b00 + 469792d179304c9b3218930112547577e1aecb77 jdk8u31-b01 + adbd3e31ef1a95b3f80a77dfbb843d52c053c6d3 jdk8u31-b02 +@@ -350,6 +352,8 @@ + f475dbc70345904bda6b520af43955e244292886 jdk8u31-b11 + 6563e438377f2086253577e08593b1ddfb901eff jdk8u31-b12 + 1dd828fd98f1b84de5dcadb904322b711e7489ff jdk8u31-b13 ++dcc563c9db9ef290a0783378d43a039cd92a08e3 jdk8u31-b31 ++119f4ae3151f4134a5e62034e66a4c17f524838b jdk8u31-b32 + 3a1bba8076da4e54882123e98e219eab1c31ccef jdk8u40-b00 + f219da378d0768ff042d77221e5d20676ecc16f0 jdk8u40-b01 + 16ef2134c32a4e60b5a60105b371163aa5936278 jdk8u40-b02 +@@ -374,3 +378,21 @@ + 78d90db9de2801eec010ccb9f0db3caf969dfc3b jdk8u40-b21 + 54a13451ce243f2159ed3996e6efcf374a5750ca jdk8u40-b22 + e07fbae1efeac4e50514384caa7d226af7414114 jdk8u40-b23 ++048cebd17f73f23ce2295e360f31c1b6788195aa jdk8u40-b24 ++4c0d4c38279c5790aa5b61b03c4cfa9b2a58bc72 jdk8u40-b25 ++f693ef62c207dd0290957c95bd62ab653afe4626 jdk8u40-b26 ++56f6ca79467d04eb95383102046836b6ac7d2811 jdk8u40-b27 ++9286acc600a779acb8bcfab38e82d4f50704afe3 jdk8u45-b00 ++9fded65e1d36e3388111955d50ebf8511dd0345e jdk8u45-b01 ++62566a3dbe5982565ce3e468ee3980b7937a86cc jdk8u45-b02 ++629096783c27510c656229b1adc7fb180cada9c6 jdk8u45-b03 ++85585012b976b72665f8f7740526bde25ccc62e4 jdk8u45-b04 ++da025bade645f0d1e0ef2f825320bd5af0c23eba jdk8u45-b05 ++49bc5472ded41c77dabb0840d385cbee1d60d8e9 jdk8u45-b06 ++061930bd7d8fc2f05042e7eeb32adff1759c6d62 jdk8u45-b07 ++50fba38f3a29f55baaae2da9b392bf9abc8389c1 jdk8u45-b08 ++f893d8b9a0d148951014610b1aab2ba0a5105dfe jdk8u45-b09 ++4de18a629048b90e0d875b9c0bd31800f1cc02ae jdk8u45-b10 ++d4042340fe0aa9d33a161890e179bc21b6c7b8e6 jdk8u45-b11 ++91d1102264e9b58b2ada4b5f112d472f0d86092b jdk8u45-b12 ++a15025742f201f05ead3d731780a4ad437524491 jdk8u45-b13 +--- ./jaxp/THIRD_PARTY_README Wed Jan 28 12:08:37 2015 -0800 ++++ ./jaxp/THIRD_PARTY_README Tue Mar 17 11:23:49 2015 -0700 +@@ -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 --- + +--- ./jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java Wed Jan 28 12:08:37 2015 -0800 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java Tue Mar 17 11:23:49 2015 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2011, 2015, 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 +@@ -151,6 +151,16 @@ + */ + public static final String SP_MAX_ELEMENT_DEPTH = "jdk.xml.maxElementDepth"; + ++ /** ++ * JDK TransformerFactory and Transformer attribute that specifies a class ++ * loader that will be used for extension functions class loading ++ * Value: a "null", the default value, means that the default EF class loading ++ * path will be used. ++ * Instance of ClassLoader: the specified instance of ClassLoader will be used ++ * for extension functions loading during translation process ++ */ ++ public static final String JDK_EXTENSION_CLASSLOADER = "jdk.xml.transform.extensionClassLoader"; ++ + //legacy System Properties + public final static String ENTITY_EXPANSION_LIMIT = "entityExpansionLimit"; + public static final String ELEMENT_ATTRIBUTE_LIMIT = "elementAttributeLimit" ; +--- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java Wed Jan 28 12:08:37 2015 -0800 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java Tue Mar 17 11:23:49 2015 -0700 +@@ -104,6 +104,9 @@ + protected final static String EXSLT_STRINGS = + "http://exslt.org/strings"; + ++ protected final static String XALAN_CLASSPACKAGE_NAMESPACE = ++ "xalan://"; ++ + // Namespace format constants + protected final static int NAMESPACE_FORMAT_JAVA = 0; + protected final static int NAMESPACE_FORMAT_CLASS = 1; +@@ -900,8 +903,22 @@ + if (_className != null && _className.length() > 0) { + final int nArgs = _arguments.size(); + try { +- if (_clazz == null) { +- _clazz = ObjectFactory.findProviderClass(_className, true); ++ if (_clazz == null) { ++ final boolean isSecureProcessing = getXSLTC().isSecureProcessing(); ++ final boolean isExtensionFunctionEnabled = getXSLTC() ++ .getFeature(FeatureManager.Feature.ORACLE_ENABLE_EXTENSION_FUNCTION); ++ ++ //Check if FSP and SM - only then proceed with loading ++ if (namespace != null && isSecureProcessing ++ && isExtensionFunctionEnabled ++ && (namespace.equals(JAVA_EXT_XALAN) ++ || namespace.equals(JAVA_EXT_XSLTC) ++ || namespace.equals(JAVA_EXT_XALAN_OLD) ++ || namespace.startsWith(XALAN_CLASSPACKAGE_NAMESPACE))) { ++ _clazz = getXSLTC().loadExternalFunction(_className); ++ } else { ++ _clazz = ObjectFactory.findProviderClass(_className, true); ++ } + + if (_clazz == null) { + final ErrorMsg msg = +--- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java Wed Jan 28 12:08:37 2015 -0800 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java Tue Mar 17 11:23:49 2015 -0700 +@@ -23,24 +23,6 @@ + + package com.sun.org.apache.xalan.internal.xsltc.compiler; + +-import java.io.BufferedOutputStream; +-import java.io.ByteArrayOutputStream; +-import java.io.File; +-import java.io.FileOutputStream; +-import java.io.IOException; +-import java.io.InputStream; +-import java.net.URL; +-import java.util.Date; +-import java.util.Enumeration; +-import java.util.Hashtable; +-import java.util.Map; +-import java.util.Properties; +-import java.util.Vector; +-import java.util.jar.JarEntry; +-import java.util.jar.JarOutputStream; +-import java.util.jar.Manifest; +-import javax.xml.XMLConstants; +- + import com.sun.org.apache.bcel.internal.classfile.JavaClass; + import com.sun.org.apache.xalan.internal.XalanConstants; + import com.sun.org.apache.xalan.internal.utils.FeatureManager; +@@ -50,7 +32,27 @@ + import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg; + import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Util; + import com.sun.org.apache.xml.internal.dtm.DTM; +- ++import java.io.BufferedOutputStream; ++import java.io.ByteArrayOutputStream; ++import java.io.File; ++import java.io.FileOutputStream; ++import java.io.IOException; ++import java.io.InputStream; ++import java.net.URL; ++import java.security.AccessController; ++import java.security.PrivilegedAction; ++import java.util.Collections; ++import java.util.Date; ++import java.util.Enumeration; ++import java.util.HashMap; ++import java.util.Hashtable; ++import java.util.Map; ++import java.util.Properties; ++import java.util.Vector; ++import java.util.jar.JarEntry; ++import java.util.jar.JarOutputStream; ++import java.util.jar.Manifest; ++import javax.xml.XMLConstants; + import org.xml.sax.InputSource; + import org.xml.sax.XMLReader; + +@@ -153,11 +155,25 @@ + private final FeatureManager _featureManager; + + /** ++ * Extension function class loader variables ++ */ ++ ++ /* Class loader reference that will be used for external extension functions loading */ ++ private ClassLoader _extensionClassLoader; ++ ++ /** ++ * HashMap with the loaded classes ++ */ ++ private final Map _externalExtensionFunctions; ++ ++ /** + * XSLTC compiler constructor + */ + public XSLTC(boolean useServicesMechanism, FeatureManager featureManager) { + _parser = new Parser(this, useServicesMechanism); + _featureManager = featureManager; ++ _extensionClassLoader = null; ++ _externalExtensionFunctions = new HashMap<>(); + } + + /** +@@ -207,6 +223,8 @@ + return _accessExternalDTD; + } else if (name.equals(XalanConstants.SECURITY_MANAGER)) { + return _xmlSecurityManager; ++ } else if (name.equals(XalanConstants.JDK_EXTENSION_CLASSLOADER)) { ++ return _extensionClassLoader; + } + return null; + } +@@ -222,6 +240,11 @@ + _accessExternalDTD = (String)value; + } else if (name.equals(XalanConstants.SECURITY_MANAGER)) { + _xmlSecurityManager = (XMLSecurityManager)value; ++ } else if (name.equals(XalanConstants.JDK_EXTENSION_CLASSLOADER)) { ++ _extensionClassLoader = (ClassLoader) value; ++ /* Clear the external extension functions HashMap if extension class ++ loader was changed */ ++ _externalExtensionFunctions.clear(); + } + } + +@@ -256,6 +279,41 @@ + _bcelClasses = new Vector(); + } + ++ private void setExternalExtensionFunctions(String name, Class clazz) { ++ if (_isSecureProcessing && clazz != null && !_externalExtensionFunctions.containsKey(name)) { ++ _externalExtensionFunctions.put(name, clazz); ++ } ++ } ++ ++ /* ++ * Function loads an external extension functions. ++ * The filtering of function types (external,internal) takes place in FunctionCall class ++ * ++ */ ++ Class loadExternalFunction(String name) throws ClassNotFoundException { ++ Class loaded = null; ++ //Check if the function is not loaded already ++ if (_externalExtensionFunctions.containsKey(name)) { ++ loaded = _externalExtensionFunctions.get(name); ++ } else if (_extensionClassLoader != null) { ++ loaded = Class.forName(name, true, _extensionClassLoader); ++ setExternalExtensionFunctions(name, loaded); ++ } ++ if (loaded == null) { ++ throw new ClassNotFoundException(name); ++ } ++ //Return loaded class ++ return (Class) loaded; ++ } ++ ++ /* ++ * Returns unmodifiable view of HashMap with loaded external extension ++ * functions - will be needed for the TransformerImpl ++ */ ++ public Map getExternalExtensionFunctions() { ++ return Collections.unmodifiableMap(_externalExtensionFunctions); ++ } ++ + /** + * Initializes the compiler to produce a new translet + */ +@@ -283,6 +341,7 @@ + -1, // LEVEL_MULTIPLE + -1 // LEVEL_ANY + }; ++ _externalExtensionFunctions.clear(); + } + + /** +--- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java Wed Jan 28 12:08:37 2015 -0800 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java Tue Mar 17 11:23:49 2015 -0700 +@@ -599,6 +599,9 @@ + {ErrorMsg.JAXP_INVALID_ATTR_ERR, + "TransformerFactory does not recognise attribute ''{0}''."}, + ++ {ErrorMsg.JAXP_INVALID_ATTR_VALUE_ERR, ++ "Incorrect value specified for ''{0}'' attribute."}, ++ + /* + * Note to translators: "setResult()" and "startDocument()" are Java + * method names that should not be translated. +--- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java Wed Jan 28 12:08:37 2015 -0800 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMsg.java Tue Mar 17 11:23:49 2015 -0700 +@@ -117,6 +117,7 @@ + public static final String JAXP_NO_SOURCE_ERR = "JAXP_NO_SOURCE_ERR"; + public static final String JAXP_COMPILE_ERR = "JAXP_COMPILE_ERR"; + public static final String JAXP_INVALID_ATTR_ERR = "JAXP_INVALID_ATTR_ERR"; ++ public static final String JAXP_INVALID_ATTR_VALUE_ERR = "JAXP_INVALID_ATTR_VALUE_ERR"; + public static final String JAXP_SET_RESULT_ERR = "JAXP_SET_RESULT_ERR"; + public static final String JAXP_NO_TRANSLET_ERR = "JAXP_NO_TRANSLET_ERR"; + public static final String JAXP_NO_HANDLER_ERR = "JAXP_NO_HANDLER_ERR"; +--- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java Wed Jan 28 12:08:37 2015 -0800 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java Tue Mar 17 11:23:49 2015 -0700 +@@ -270,8 +270,8 @@ + if (Double.isNaN(start)) + return(EMPTYSTRING); + +- final int strlen = value.length(); +- int istart = (int)Math.round(start) - 1; ++ final int strlen = value.length(); ++ int istart = (int)Math.round(start) - 1; + + if (istart > strlen) + return(EMPTYSTRING); +@@ -292,10 +292,11 @@ + public static String substringF(String value, double start, double length) { + if (Double.isInfinite(start) || + Double.isNaN(start) || +- Double.isNaN(length)) ++ Double.isNaN(length) || ++ length < 0) + return(EMPTYSTRING); + +- int istart = (int)Math.round(start) - 1; ++ int istart = (int)Math.round(start) - 1; + final int isum; + if (Double.isInfinite(length)) + isum = Integer.MAX_VALUE; +--- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java Wed Jan 28 12:08:37 2015 -0800 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java Tue Mar 17 11:23:49 2015 -0700 +@@ -24,28 +24,27 @@ + package com.sun.org.apache.xalan.internal.xsltc.trax; + + import com.sun.org.apache.xalan.internal.XalanConstants; ++import com.sun.org.apache.xalan.internal.utils.ObjectFactory; ++import com.sun.org.apache.xalan.internal.utils.SecuritySupport; ++import com.sun.org.apache.xalan.internal.xsltc.DOM; ++import com.sun.org.apache.xalan.internal.xsltc.Translet; ++import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg; ++import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet; ++import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable; + import java.io.IOException; + import java.io.ObjectInputStream; + import java.io.ObjectOutputStream; + import java.io.Serializable; +-import java.util.Properties; + import java.security.AccessController; + import java.security.PrivilegedAction; +- ++import java.util.Map; ++import java.util.Properties; + import javax.xml.XMLConstants; + import javax.xml.transform.Templates; + import javax.xml.transform.Transformer; + import javax.xml.transform.TransformerConfigurationException; + import javax.xml.transform.URIResolver; + +-import com.sun.org.apache.xalan.internal.xsltc.DOM; +-import com.sun.org.apache.xalan.internal.xsltc.Translet; +-import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ErrorMsg; +-import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet; +-import com.sun.org.apache.xalan.internal.xsltc.runtime.Hashtable; +-import com.sun.org.apache.xalan.internal.utils.ObjectFactory; +-import com.sun.org.apache.xalan.internal.utils.SecuritySupport; +- + /** + * @author Morten Jorgensen + * @author G. Todd Millerj +@@ -131,8 +130,30 @@ + private String _accessExternalStylesheet = XalanConstants.EXTERNAL_ACCESS_DEFAULT; + + static final class TransletClassLoader extends ClassLoader { ++ ++ private final Map _loadedExternalExtensionFunctions; ++ + TransletClassLoader(ClassLoader parent) { + super(parent); ++ _loadedExternalExtensionFunctions = null; ++ } ++ ++ TransletClassLoader(ClassLoader parent,Map mapEF) { ++ super(parent); ++ _loadedExternalExtensionFunctions = mapEF; ++ } ++ ++ public Class loadClass(String name) throws ClassNotFoundException { ++ Class ret = null; ++ // The _loadedExternalExtensionFunctions will be empty when the ++ // SecurityManager is not set and the FSP is turned off ++ if (_loadedExternalExtensionFunctions != null) { ++ ret = _loadedExternalExtensionFunctions.get(name); ++ } ++ if (ret == null) { ++ ret = super.loadClass(name); ++ } ++ return ret; + } + + /** +@@ -330,7 +351,7 @@ + TransletClassLoader loader = (TransletClassLoader) + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { +- return new TransletClassLoader(ObjectFactory.findClassLoader()); ++ return new TransletClassLoader(ObjectFactory.findClassLoader(),_tfactory.getExternalExtensionsMap()); + } + }); + +--- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java Wed Jan 28 12:08:37 2015 -0800 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java Tue Mar 17 11:23:49 2015 -0700 +@@ -27,12 +27,12 @@ + import com.sun.org.apache.xalan.internal.utils.FactoryImpl; + import com.sun.org.apache.xalan.internal.utils.FeatureManager; + import com.sun.org.apache.xalan.internal.utils.FeaturePropertyBase; ++import com.sun.org.apache.xalan.internal.utils.FeaturePropertyBase.State; + import com.sun.org.apache.xalan.internal.utils.ObjectFactory; + import com.sun.org.apache.xalan.internal.utils.SecuritySupport; + import com.sun.org.apache.xalan.internal.utils.XMLSecurityManager; + import com.sun.org.apache.xalan.internal.utils.XMLSecurityPropertyManager; + import com.sun.org.apache.xalan.internal.utils.XMLSecurityPropertyManager.Property; +-import com.sun.org.apache.xalan.internal.utils.FeaturePropertyBase.State; + import com.sun.org.apache.xalan.internal.xsltc.compiler.Constants; + import com.sun.org.apache.xalan.internal.xsltc.compiler.SourceLoader; + import com.sun.org.apache.xalan.internal.xsltc.compiler.XSLTC; +@@ -50,6 +50,7 @@ + import java.net.URL; + import java.util.Enumeration; + import java.util.Hashtable; ++import java.util.Map; + import java.util.Properties; + import java.util.Vector; + import java.util.zip.ZipEntry; +@@ -57,7 +58,6 @@ + import javax.xml.XMLConstants; + import javax.xml.parsers.SAXParser; + import javax.xml.parsers.SAXParserFactory; +- + import javax.xml.transform.ErrorListener; + import javax.xml.transform.Source; + import javax.xml.transform.Templates; +@@ -231,6 +231,13 @@ + + private final FeatureManager _featureManager; + ++ private ClassLoader _extensionClassLoader = null; ++ ++ // Unmodifiable view of external extension function from xslt compiler ++ // It will be populated by user-specified extension functions during the ++ // type checking ++ private Map _xsltcExtensionFunctions; ++ + /** + * javax.xml.transform.sax.TransformerFactory implementation. + */ +@@ -261,6 +268,12 @@ + + //Parser's security manager + _xmlSecurityManager = new XMLSecurityManager(true); ++ //Unmodifiable hash map with loaded external extension functions ++ _xsltcExtensionFunctions = null; ++ } ++ ++ public Map getExternalExtensionsMap() { ++ return _xsltcExtensionFunctions; + } + + /** +@@ -324,6 +337,8 @@ + return Boolean.FALSE; + } else if (name.equals(XalanConstants.SECURITY_MANAGER)) { + return _xmlSecurityManager; ++ } else if (name.equals(XalanConstants.JDK_EXTENSION_CLASSLOADER)) { ++ return _extensionClassLoader; + } + + /** Check to see if the property is managed by the security manager **/ +@@ -439,6 +454,16 @@ + return; + } + } ++ else if ( name.equals(XalanConstants.JDK_EXTENSION_CLASSLOADER)) { ++ if (value instanceof ClassLoader) { ++ _extensionClassLoader = (ClassLoader) value; ++ return; ++ } else { ++ final ErrorMsg err ++ = new ErrorMsg(ErrorMsg.JAXP_INVALID_ATTR_VALUE_ERR, "Extension Functions ClassLoader"); ++ throw new IllegalArgumentException(err.toString()); ++ } ++ } + + if (_xmlSecurityManager != null && + _xmlSecurityManager.setLimit(name, XMLSecurityManager.State.APIPROPERTY, value)) { +@@ -881,7 +906,6 @@ + // Reset the per-session attributes to their default values + // after each newTemplates() call. + resetTransientAttributes(); +- + return new TemplatesImpl(bytecodes, transletClassName, null, _indentNumber, this); + } + } +@@ -898,8 +922,10 @@ + xsltc.setProperty(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, _accessExternalStylesheet); + xsltc.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, _accessExternalDTD); + xsltc.setProperty(XalanConstants.SECURITY_MANAGER, _xmlSecurityManager); ++ xsltc.setProperty(XalanConstants.JDK_EXTENSION_CLASSLOADER, _extensionClassLoader); + xsltc.init(); +- ++ if (!_isNotSecureProcessing) ++ _xsltcExtensionFunctions = xsltc.getExternalExtensionFunctions(); + // Set a document loader (for xsl:include/import) if defined + if (_uriResolver != null) { + xsltc.setSourceLoader(this); +--- ./jaxws/.hgtags Wed Jan 28 12:08:39 2015 -0800 ++++ ./jaxws/.hgtags Tue Mar 17 11:23:59 2015 -0700 +@@ -334,6 +334,8 @@ + d47a47f961ee423ce03623098f62d79254c6f328 jdk8u25-b17 + cb0ad90bfe3c497c7236c5480447c4bde110934f jdk8u25-b18 + a345282d661be80f2cdee3c43e12fbe01e7ff6d5 jdk8u25-b31 ++90b0097a98f161c3e605dc26abf97bb9fc278f33 jdk8u25-b32 ++da8457217afd472276c62f558fb1431f7e0e3bc0 jdk8u25-b33 + 3a676fe898c93ad3afcaa55a71da96455e5f230e jdk8u31-b00 + 1c73ca9179f22d4a73d1a248a3254f891c71ee30 jdk8u31-b01 + c1f1ed28e0bb68d7536fb30bb6f1a3623816b12a jdk8u31-b02 +@@ -348,6 +350,8 @@ + 497c783d228ed188d61964edd409794af3ad3e5c jdk8u31-b11 + 959e8fca46155528c8147da69a7c49edfb002cb1 jdk8u31-b12 + 9d0c737694ece23547c0a27dcd0ba6cbcdf577f2 jdk8u31-b13 ++49e91817cbe1b14f856c26f6e55b7151e3f8c3a8 jdk8u31-b31 ++9e20c5acb448c5f9b05a4e9b4efc222b3b616c23 jdk8u31-b32 + 31d43d250c836c13fcc87025837783788c5cd0de jdk8u40-b00 + 262fb5353ffa661f88b4a9cf2581fcad8c2a43f7 jdk8u40-b01 + 8043f77ef8a4ded9505269a356c4e2f4f9604cd9 jdk8u40-b02 +@@ -372,3 +376,21 @@ + 16485a38b6bc762b363f4e439047486742fbcfcb jdk8u40-b21 + 6e928fd9152541eddf25694be89eb881434a5c5f jdk8u40-b22 + b6755a463ccf6a79b1e1a43ed7bdb1c5cb1ac17d jdk8u40-b23 ++5fbbfd66643edb81cfa0688825d698dcc5f2eb11 jdk8u40-b24 ++b6120aaf2aeef7c5608d578e15e82db7eb24fb2e jdk8u40-b25 ++1bcb30bdd9883cc7fc1bf70800ea03a4429eaa80 jdk8u40-b26 ++a5f2cdedb940511674e153dce8d3cbc3a0598c9e jdk8u40-b27 ++667a4aee3720373f5c286a50f537afd0ff4b65ae jdk8u45-b00 ++cb6added4913f4899bd1689e77be1fe4efcff4f1 jdk8u45-b01 ++855a7b9302053546e4da94b67cc3b8956f5b4985 jdk8u45-b02 ++698a88182586b0914b204de27cc45d6f0dfe7683 jdk8u45-b03 ++c7307f75843b64e6096205425ba2f7387017ee9e jdk8u45-b04 ++6bd873f17e03cf285f576f69340123e3b2d8922f jdk8u45-b05 ++a5e99f4d067ebea01e438e5b3e9b09bda47ddb25 jdk8u45-b06 ++145ea6d2899f5cc6bd4e1108903e4d22ad063eca jdk8u45-b07 ++f3d678fe58e7c026fb62be8b72c46ce1015aadf6 jdk8u45-b08 ++8f2e5110151810dc5b56a3ce05d955e400bee937 jdk8u45-b09 ++5cf887e3e1368d1910181eaab2794b25058fe8b6 jdk8u45-b10 ++855fd9dfcbee177b508413dbab6e46b57dd367c4 jdk8u45-b11 ++3f6c3f48179ac8bab98509be8708edcea32727b6 jdk8u45-b12 ++15fb2359f5f86dbacc1bc120f663853b5292cd14 jdk8u45-b13 +--- ./jaxws/THIRD_PARTY_README Wed Jan 28 12:08:39 2015 -0800 ++++ ./jaxws/THIRD_PARTY_README Tue Mar 17 11:23:59 2015 -0700 +@@ -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 @@ + *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***