Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 May 2015 07:03:54 +0000 (UTC)
From:      Greg Lewis <glewis@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r385506 - in head/java/openjdk8: . files
Message-ID:  <201505060703.t4673sxF007663@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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<String, Class> _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<String, Class> 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<String,Class> _loadedExternalExtensionFunctions;
++
+         TransletClassLoader(ClassLoader parent) {
+             super(parent);
++            _loadedExternalExtensionFunctions = null;
++        }
++
++        TransletClassLoader(ClassLoader parent,Map<String, Class> 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<String, Class> _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<String,Class> 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 ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505060703.t4673sxF007663>