From ba2e9ae12a3f9b7048153d74f32788f6989b5330 Mon Sep 17 00:00:00 2001 From: Greg Lewis Date: Sat, 1 Nov 2014 20:18:09 +0000 Subject: [PATCH] . Update to 7u71. --- java/openjdk7/Makefile | 4 +- java/openjdk7/files/patch-set | 15339 +++++++++++++--- ...-native-com-sun-java-util-jar-pack-zip.cpp | 22 - 3 files changed, 13218 insertions(+), 2147 deletions(-) delete mode 100644 java/openjdk7/files/patch-src-share-native-com-sun-java-util-jar-pack-zip.cpp diff --git a/java/openjdk7/Makefile b/java/openjdk7/Makefile index 90d981281b18..7b033c055eae 100644 --- a/java/openjdk7/Makefile +++ b/java/openjdk7/Makefile @@ -35,8 +35,8 @@ DEBUG_DESC= Enable extra debugging info POLICY_DESC= Install the Unlimited Strength Policy Files TZUPDATE_DESC= Update the time zone data -PORT_MINOR_VERSION= 65 -PORT_BUILD_NUMBER= 17 +PORT_MINOR_VERSION= 71 +PORT_BUILD_NUMBER= 14 JDK_MAJOR_VERSION= 7 JDK_MINOR_VERSION= 40 JDK_BUILD_NUMBER= 43 diff --git a/java/openjdk7/files/patch-set b/java/openjdk7/files/patch-set index d4ea7196f4af..02783ac57818 100644 --- a/java/openjdk7/files/patch-set +++ b/java/openjdk7/files/patch-set @@ -1,5 +1,5 @@ --- ./.hgtags 2013-09-06 11:20:33.000000000 -0700 -+++ ./.hgtags 2014-07-15 23:25:11.000000000 -0700 ++++ ./.hgtags 2014-10-28 20:19:29.000000000 -0700 @@ -123,6 +123,7 @@ 2d38c2a79c144c30cd04d143d83ee7ec6af40771 jdk7-b146 3ac30b3852876ccad6bd61697b5f9efa91ca7bc6 jdk7u1-b01 @@ -40,7 +40,7 @@ da376fd5e4d68f8a45003a6e175267dc840711cc jdk7u40-b32 3fdfe7f1b06354e11e8af51b7c653c8a0adb3987 jdk7u40-b33 a1ae13479e8767329fa20774b5cea5976aaeb37b jdk7u40-b34 -@@ -341,3 +358,104 @@ +@@ -341,3 +358,146 @@ 3af81bfe320c12758234233da6fa27c3c0ffcdc4 jdk7u40-b42 1d53bd8fd2a62bcf336727ebec377ef7498dd4a6 jdk7u40-b43 dc1e099cd62d250b4a997ce694b47fe2f50d2905 jdk7u40-b60 @@ -105,9 +105,13 @@ +d972a2d9e4f3f864d26c33ccfdacd8269e0f29a8 jdk7u55-b13 +0820b4707cfa75f8211b88b0daa67bba8475f498 jdk7u55-b30 +997ab3897d6ede80b0decdda94b569e57dd7dd90 jdk7u55-b14 ++744f7b17de89527bf639d5bff3533a9ce72dfa84 jdk7u55-b15 +1f52edec29fd44c8bacce11ba7440287b37d04d1 jdk7u55-b31 +5b15555172019b3c92484abff7c92f066e162d29 jdk7u55-b32 +fa5ead8cb7d2de49cd138d93fb86fa5a10b07037 jdk7u55-b33 ++6041c68893932ee16a272a8d5a42069e217d888c jdk7u55-b34 ++8733fb47b3338e9285870b09eb326e758cf69771 jdk7u55-b35 ++b9c954604ecaaf8d8a1568ababd9508ff09b742e jdk7u55-b36 +11147a12bd8c6b02f98016a8d1151e56f42a43b6 jdk7u60-b00 +88113cabda386320a087b288d43e792f523cc0ba jdk7u60-b01 +6bdacebbc97f0a03be45be48a6d5b5cf2f7fe77d jdk7u60-b02 @@ -129,6 +133,10 @@ +472f5930e6cc8f307b5508995ee2edcf9913a852 jdk7u60-b18 +b9264ea7e0887d511318bf7b53d12f944760bbbb jdk7u65-b01 +2a7a5e774023944f291ee27ca5b3ad89e0e62aaf jdk7u60-b19 ++ac5183999ba532c6b89f24fe01f6f0eb96799719 jdk7u60-b30 ++7e9c1a4c2d50e10ccc6d81b8dc0786e82128a676 jdk7u60-b31 ++f792c1446b57932f5cd661afa72bcf41cfe6d1a6 jdk7u60-b32 ++870408bbbfa50a6f44997a844c6c31c0cb0cbc40 jdk7u60-b33 +3a683f1730a148bcc1ca6eb9137116db427093f6 jdk7u65-b02 +c154a8de7d34128ab75f46a2b6a909796f63b6e3 jdk7u65-b03 +62e22dbc36410d76716bfa5e9fd679fcb4b1d845 jdk7u65-b04 @@ -145,8 +153,42 @@ +3cce3737be368dc3d304508cd0d6e354f8a19f55 jdk7u65-b15 +2c8b05ed9802cf4e5f61439a6d6286e7f7cd444e jdk7u65-b16 +927d8d3db13c5221237b51efe45206054ee6e3f3 jdk7u65-b17 ++b51ccd32894662064192857007ef41175d433901 jdk7u65-b30 ++fa242615607fa5f6cdd1ae93bc2fb9cc2100c179 jdk7u65-b18 ++64dbd70735c775bef1faf873e4bec65d73d597cb jdk7u65-b19 ++90f56be6f9d90f66e558c4e08084e2b169738fba jdk7u65-b32 ++b6da128e8a7957f139933a48580e201e938c4684 jdk7u65-b20 ++d6a1d32534d188e73f7962d40d21584c44e65acd jdk7u67-b01 ++64dbd70735c775bef1faf873e4bec65d73d597cb jdk7u65-b40 ++9dfdf107c6971cd30c7e1f656cddc6b8d495c290 jdk7u65-b31 ++fe700de0735dc4e8ce5a50971ad3ea3dc052d21d jdk7u65-b33 ++48eb3345e05fe904d2e92067da0abd04a9b375e4 jdk7u66-b00 ++4fb9423d086d86d212257afd6fc79957f737af5b jdk7u66-b01 ++964663d4303723fbcb16cf05e857576c08c237ae jdk7u66-b09 ++6bf8128234ad7ffae0cfe53ba19202559743de97 jdk7u66-b10 ++0d8c4e40851835989386c1b1db4041b6f18b037e jdk7u66-b11 ++422f828e10beb3ca9e14b10774e624ec0c4fc84d jdk7u66-b12 ++236545aa997a99b397e73dc9b13353231f20ea1e jdk7u66-b13 ++d06bbfe19d6cefe62e359c2fd8bf9243a148a337 jdk7u66-b14 ++df30693e9a66897ba0dced205bbaefc57dca7704 jdk7u66-b15 ++6dc5eb9b70071b43cb0e287f30afd0348ae20ae1 jdk7u66-b16 ++4f4905b6d3e837c50654bc432956a4a100246d4e jdk7u66-b17 ++c779fbb7b87ec014a3371b0dd1e9317ba1280469 jdk7u71-b00 ++4f0a225f8d383d22a890575b1206f916277c0a07 jdk7u71-b01 ++94e1109f4cb79ba1c5369d93d0cdf300f1434a3a jdk7u71-b02 ++91df9e49ab7d35ee61f88eedd4289aa33163287d jdk7u71-b03 ++47c30fe92b9dad64f99d7aa72a2258bc3558f0a1 jdk7u71-b04 ++d534e7f2caadd145b30dfda8b913c9a5fdb62553 jdk7u71-b05 ++8821211202a58c0086e7cd57960a3f33e5c3d4a1 jdk7u71-b06 ++6955561791886ef36236799794e4be79d0a65007 jdk7u71-b07 ++fac69efbf4eb609e860c8c4a056dbe02b3679b87 jdk7u71-b08 ++ac4596f9cdeb084af75884825e04dbcf1fd3d407 jdk7u71-b09 ++38f4eee9c9387d3f683b86657fd6e3d4a90e5b0f jdk7u71-b10 ++e9663e434024cb6e011013e774445a056417bb3b jdk7u71-b11 ++78aa78b55b843697a630ed886962ab07d1b76358 jdk7u71-b12 ++9fc5aeb0e0a8c97b1cd263a55f3aeb030cbcdf89 jdk7u71-b13 --- ./Makefile 2013-09-06 11:20:33.000000000 -0700 -+++ ./Makefile 2014-07-15 23:25:11.000000000 -0700 ++++ ./Makefile 2014-07-15 21:45:52.000000000 -0700 @@ -264,7 +264,7 @@ DEBUG_NAME=$(DEBUG_NAME) \ GENERATE_DOCS=false \ @@ -157,7 +199,7 @@ generic_build_repo_series --- ./corba/.hgtags 2013-09-06 11:20:46.000000000 -0700 -+++ ./corba/.hgtags 2014-07-15 23:25:10.000000000 -0700 ++++ ./corba/.hgtags 2014-10-28 20:19:30.000000000 -0700 @@ -123,6 +123,7 @@ 770227a4087e4e401fe87ccd19738440111c3948 jdk7-b146 36f0efbc66ef8ace3cca8aa8d0c88f3334080f8a jdk7u1-b01 @@ -189,7 +231,7 @@ ef8e6f8305d524f3b448a85f901aadf1adc81fc0 jdk7u25-b12 eca480919c71072a31f62a61cb3aad30677007e3 jdk7u25-b13 577c4dd1a6e9bc1bb2c2e5d5ecbab8eacb4121af jdk7u25-b14 -@@ -343,3 +360,104 @@ +@@ -343,3 +360,146 @@ b4a480a039bc19b27bfb5fcbbbf75e651d2718b7 jdk7u40-b42 e29ea0b297e519010e661603a07bb8d48fa904a2 jdk7u40-b43 08737d863a7aa5eb39374b26c9585e1770affe92 jdk7u40-b60 @@ -254,9 +296,13 @@ +8efa6e66c13a5329c312d1a521ffab75d9a330e3 jdk7u55-b13 +e041c52fe69128ec3439d26afef9b0fcba00684c jdk7u55-b30 +a0bfd0e80ae0ae6e3a29bf527b5911c83163b3f5 jdk7u55-b14 ++ae8120f628c237b18fa5c2610898659b49a60075 jdk7u55-b15 +55ff6957449cf6c79f5d5bb159df27f51ece1659 jdk7u55-b31 +fba15e177b15873e3c63b0efc7c0f5647a243a79 jdk7u55-b32 +6503115cbedda9216083fc1798e2fa5a2775f68a jdk7u55-b33 ++c8614d56bc1c5c60431f938a0c33d8fc42e7aef0 jdk7u55-b34 ++be587f9142bcb694b647642fbbb05dbaa7b1b1b3 jdk7u55-b35 ++05ea23fd127a217965eb304932e8c0ce5933f04b jdk7u55-b36 +c5b5886004e6446b8b27ccdc1fd073354c1dc614 jdk7u60-b00 +a531112cc6d0b0a1e7d4ffdaa3ba53addcd25cf4 jdk7u60-b01 +d81370c5b863acc19e8fb07315b1ec687ac1136a jdk7u60-b02 @@ -278,6 +324,10 @@ +b96d90694be873372cc417b38b01afed6ac1b239 jdk7u60-b18 +550ae238459e0f59d9a85d183bc2b4520adac05b jdk7u65-b01 +5d1b39fe68944cff6380db56fbe2fbaa28091bf6 jdk7u60-b19 ++39734d26e279098fae06cee5a127e126090ddec9 jdk7u60-b30 ++8939f268abb8c153de653f2659fff6716e5f83f8 jdk7u60-b31 ++9665790000e22370daefddbf56dd81e89e07b7c4 jdk7u60-b32 ++437b4b2aed4811af16efcafca7995684493d205b jdk7u60-b33 +6a89d959cbade46fcd281f421ac40a804d098f0b jdk7u65-b02 +afed3d62e8051fe65f431abe87dad50cbeba3800 jdk7u65-b03 +38fabf72970ae509350f57ffad99f6ac8fc6fdad jdk7u65-b04 @@ -294,8 +344,42 @@ +78966cf34d868ef18b8a3fa7edec368e1cc4739d jdk7u65-b15 +d765ed30bd5ed2bdd71fda56c056333e1b4b0d7d jdk7u65-b16 +cd642d59aca29ff2b56e7ed016be758828f199cd jdk7u65-b17 ++8740dc71b1ceb49c76470b46205c28c1302e864d jdk7u65-b30 ++b7f66b9f9e8e099428ed7640a184f6135b77e40d jdk7u65-b18 ++50ddba8882e7e95150418a30bfc3ee62e3c28c6c jdk7u65-b19 ++dae3f20d2306622e39606d0dc967147de174afce jdk7u65-b32 ++ac05dfedf008e83c2044666a70635cf82e932e41 jdk7u65-b20 ++244756837ab4b214decd0e6f26b0071a483f143f jdk7u67-b01 ++50ddba8882e7e95150418a30bfc3ee62e3c28c6c jdk7u65-b40 ++d2f7358b01d3d8b877b2ec2ca2989bd1daf17472 jdk7u65-b31 ++2067d7202adcedb80fa676dacb22a0b73d5e8548 jdk7u65-b33 ++5b8210c41bc41135687028bcb000ca116e2090f6 jdk7u66-b00 ++9f0f0bdd4cfb01a5d64f9528b7ffda3974171120 jdk7u66-b01 ++596d979a5d4deb9d10b068479276cd4b2a12432e jdk7u66-b09 ++fec514d46b860920690707e9d0538ad76ca3f886 jdk7u66-b10 ++09655f16930ece8e7a8342f335726fe9ea327812 jdk7u66-b11 ++dca36b02c6e10fa303023a62f51ea4bf0497ae94 jdk7u66-b12 ++d0d039a1eca081bc05e833dfc027df1aa1bd018a jdk7u66-b13 ++1e46e65dd58db00180f1ccaaae93ae7946b22d29 jdk7u66-b14 ++f2c867d52b393e661216057f0b559ef3fd122530 jdk7u66-b15 ++3039f266eef2ba54ec2869d87adac6e395c82fe9 jdk7u66-b16 ++0b46b93a61966e8d2332f1d3899d7c858a653d91 jdk7u66-b17 ++fd1c9030a08d513b5a477f82a46855bb6a9cacac jdk7u71-b00 ++50e4090a8583a88875ab7323fc2e5b6ba2f1de7f jdk7u71-b01 ++5bd7482913f6a498c2b2b6c80478b2af93dee805 jdk7u71-b02 ++557d335eb4a358ffe7a8114685f11831da5d4510 jdk7u71-b03 ++ccf59458d69f7fd0d6b119ee1ef16a2b131f84b8 jdk7u71-b04 ++92d099fedc269d61dd10bba0f79a224c1bf40c25 jdk7u71-b05 ++19de752151f6abfb477c72a92e59993a6c3c3f99 jdk7u71-b06 ++36d628e53ebf7f6251395e6eb409239b473a7f16 jdk7u71-b07 ++2fdf855f6d9fe27bcf102e64c120375f331ee75d jdk7u71-b08 ++1655475001d914bc105959d94c24e0671591e845 jdk7u71-b09 ++9508dd229246b82201fb7075ebfe2c913f89a196 jdk7u71-b10 ++3e804dc3cea9ff145f375a50a161f3e173e8d3f6 jdk7u71-b11 ++cc3072067ae8ac685d400ced4c0f144d6a1d9f1e jdk7u71-b12 ++1616089899e25679d6cf70c77023f2a37ff85ad1 jdk7u71-b13 --- ./corba/make/Makefile 2013-09-06 11:20:46.000000000 -0700 -+++ ./corba/make/Makefile 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/make/Makefile 2014-07-15 21:45:53.000000000 -0700 @@ -160,7 +160,7 @@ # # CORBA @@ -1275,7 +1359,7 @@ - } -} --- ./corba/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java 2013-09-06 11:20:47.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java 2014-07-15 21:45:53.000000000 -0700 @@ -82,11 +82,18 @@ super((ORB)orb); } @@ -1301,7 +1385,7 @@ } --- ./corba/src/share/classes/com/sun/corba/se/impl/encoding/EncapsInputStream.java 2013-09-06 11:20:48.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/encoding/EncapsInputStream.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/encoding/EncapsInputStream.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved. @@ -1332,7 +1416,7 @@ protected CodeSetConversion.BTCConverter createCharBTCConverter() { --- ./corba/src/share/classes/com/sun/corba/se/impl/encoding/EncapsOutputStream.java 2013-09-06 11:20:48.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/encoding/EncapsOutputStream.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/encoding/EncapsOutputStream.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved. @@ -1367,7 +1451,7 @@ protected CodeSetConversion.CTBConverter createCharCTBConverter() { --- ./corba/src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeInputStream.java 2013-09-06 11:20:48.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeInputStream.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeInputStream.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved. @@ -1403,7 +1487,7 @@ encap.setEnclosingInputStream(is); encap.makeEncapsulation(); --- ./corba/src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeOutputStream.java 2013-09-06 11:20:48.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeOutputStream.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/encoding/TypeCodeOutputStream.java 2014-07-15 21:45:53.000000000 -0700 @@ -61,6 +61,8 @@ import java.math.BigInteger; import java.nio.ByteBuffer; @@ -1427,7 +1511,7 @@ //System.out.println("Created TypeCodeInputStream " + tcis + " with no parent"); //tcis.printBuffer(); --- ./corba/src/share/classes/com/sun/corba/se/impl/interceptors/CDREncapsCodec.java 2013-09-06 11:20:48.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/interceptors/CDREncapsCodec.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/interceptors/CDREncapsCodec.java 2014-07-15 21:45:53.000000000 -0700 @@ -33,6 +33,8 @@ import com.sun.corba.se.spi.ior.iiop.GIOPVersion; import com.sun.corba.se.spi.logging.CORBALogDomains; @@ -1617,7 +1701,7 @@ - -} --- ./corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java 2013-09-06 11:20:48.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. @@ -1680,7 +1764,7 @@ com.sun.org.omg.SendingContext.CodeBase sender, int offset) --- ./corba/src/share/classes/com/sun/corba/se/impl/io/InputStreamHook.java 2013-09-06 11:20:48.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/io/InputStreamHook.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/io/InputStreamHook.java 2014-07-15 21:45:53.000000000 -0700 @@ -201,7 +201,7 @@ readObjectState.endDefaultReadObject(this); } @@ -1691,7 +1775,7 @@ abstract void readFields(java.util.Map fieldToValueMap) throws java.io.InvalidClassException, java.io.StreamCorruptedException, --- ./corba/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java 2013-09-06 11:20:48.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/io/ObjectStreamClass.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. @@ -2079,7 +2163,7 @@ return ((pkg1 == pkg2) || ((pkg1 != null) && (pkg1.equals(pkg2)))); } --- ./corba/src/share/classes/com/sun/corba/se/impl/ior/EncapsulationUtility.java 2013-09-06 11:20:48.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/ior/EncapsulationUtility.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/ior/EncapsulationUtility.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved. @@ -2108,7 +2192,7 @@ return result ; } --- ./corba/src/share/classes/com/sun/corba/se/impl/ior/ObjectKeyFactoryImpl.java 2013-09-06 11:20:48.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/ior/ObjectKeyFactoryImpl.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/ior/ObjectKeyFactoryImpl.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved. @@ -2135,7 +2219,7 @@ ObjectKeyTemplate oktemp = create( is, fullKey, osh ) ; if (oktemp == null) --- ./corba/src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPProfileImpl.java 2013-09-06 11:20:48.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPProfileImpl.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/ior/iiop/IIOPProfileImpl.java 2014-07-15 21:45:53.000000000 -0700 @@ -70,6 +70,8 @@ import com.sun.corba.se.impl.encoding.EncapsInputStream ; import com.sun.corba.se.impl.encoding.EncapsOutputStream ; @@ -2280,7 +2364,7 @@ - } -} --- ./corba/src/share/classes/com/sun/corba/se/impl/orbutil/ObjectStreamClassUtil_1_3.java 2013-09-06 11:20:49.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/orbutil/ObjectStreamClassUtil_1_3.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/orbutil/ObjectStreamClassUtil_1_3.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved. @@ -2327,7 +2411,7 @@ classWithThisMethod = java.io.ObjectStreamClass.class; --- ./corba/src/share/classes/com/sun/corba/se/impl/orbutil/ObjectStreamClass_1_3_1.java 2013-09-06 11:20:49.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/orbutil/ObjectStreamClass_1_3_1.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/orbutil/ObjectStreamClass_1_3_1.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. @@ -2573,8 +2657,26 @@ return (c1.getName()).compareTo(c2.getName()); } } +--- ./corba/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ja.properties 2013-09-06 11:20:49.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_ja.properties 2014-10-28 20:19:30.000000000 -0700 +@@ -1,5 +1,5 @@ + # +-# Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 2000, 2014, 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 +@@ -95,7 +95,7 @@ + bootstrap.exception=\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u30D5\u30A1\u30A4\u30EB{0}\u306B\u4FDD\u5B58\u4E2D\u306B\u4F8B\u5916\u3092\u6355\u6349\u3057\u307E\u3057\u305F: \u4F8B\u5916{1} + + tnameserv.exception=\u30DD\u30FC\u30C8{0}\u3067\u30D6\u30FC\u30C8\u30B9\u30C8\u30E9\u30C3\u30D7\u30FB\u30B5\u30FC\u30D3\u30B9\u3092\u8D77\u52D5\u4E2D\u306B\u4F8B\u5916\u3092\u6355\u6349\u3057\u307E\u3057\u305F +-tnameserv.usage=\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u5F15\u6570-ORBInitialPort\u3092\u4F7F\u7528\u3057\u3066\u5225\u306E\u30DD\u30FC\u30C8\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044 ++tnameserv.usage=\u30B3\u30DE\u30F3\u30C9\u884C\u5F15\u6570-ORBInitialPort\u3092\u4F7F\u7528\u3057\u3066\u5225\u306E\u30DD\u30FC\u30C8\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044 + tnameserv.invalidhostoption=ORBInitialHost\u306FNameService\u306B\u6709\u52B9\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u306F\u3042\u308A\u307E\u305B\u3093 + tnameserv.orbinitialport0=ORBInitialPort 0\u306FNameService\u306B\u6709\u52B9\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u306F\u3042\u308A\u307E\u305B\u3093 + tnameserv.hs1=\u521D\u671F\u30CD\u30FC\u30DF\u30F3\u30B0\u30FB\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8:\n{0} --- ./corba/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties 2013-09-06 11:20:49.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties 2014-07-15 21:45:53.000000000 -0700 @@ -23,7 +23,7 @@ # questions. # @@ -2585,7 +2687,7 @@ servertool.usage=Uso: {0} \n\nem que inclui:\n -ORBInitialPort porta inicial (obrigat\u00F3rio)\n -ORBInitialHost nome de host inicial (obrigat\u00F3rio)\n servertool.banner=\n\nBem-vindo \u00E0 Ferramenta de Servidor IDL Java \ninsira os comandos no prompt \n --- ./corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl.java 2013-09-06 11:20:49.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl.java 2014-07-15 21:45:53.000000000 -0700 @@ -905,28 +905,4 @@ return contents.toString(); @@ -4051,7 +4153,7 @@ - -} --- ./corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/InvocationHandlerFactoryImpl.java 2013-09-06 11:20:50.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/InvocationHandlerFactoryImpl.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/InvocationHandlerFactoryImpl.java 2014-07-15 21:45:53.000000000 -0700 @@ -43,6 +43,8 @@ import com.sun.corba.se.spi.orbutil.proxy.DelegateInvocationHandlerImpl ; import com.sun.corba.se.spi.orbutil.proxy.CompositeInvocationHandler ; @@ -4097,7 +4199,7 @@ // If the method passed to invoke is not from DynamicStub or its superclasses, // it must be from an implemented interface, so we just handle --- ./corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryDynamicBase.java 2013-09-06 11:20:50.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryDynamicBase.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryDynamicBase.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. @@ -4149,7 +4251,7 @@ public abstract org.omg.CORBA.Object makeStub() ; } --- ./corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryFactoryProxyImpl.java 2013-09-06 11:20:50.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryFactoryProxyImpl.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/presentation/rmi/StubFactoryFactoryProxyImpl.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. @@ -4185,7 +4287,7 @@ } } --- ./corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java 2013-09-06 11:20:50.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/protocol/CorbaClientRequestDispatcherImpl.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. @@ -4213,7 +4315,7 @@ String msg = --- ./corba/src/share/classes/com/sun/corba/se/impl/protocol/SharedCDRClientRequestDispatcherImpl.java 2013-09-06 11:20:50.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/protocol/SharedCDRClientRequestDispatcherImpl.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/protocol/SharedCDRClientRequestDispatcherImpl.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. @@ -4995,7 +5097,7 @@ - private IOR ior; // forwarded IOR -} --- ./corba/src/share/classes/com/sun/corba/se/impl/resolver/INSURLOperationImpl.java 2013-09-06 11:20:50.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/resolver/INSURLOperationImpl.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/resolver/INSURLOperationImpl.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. @@ -5737,7 +5839,7 @@ - -// End of file. --- ./corba/src/share/classes/com/sun/corba/se/impl/transport/DefaultSocketFactoryImpl.java 2013-09-06 11:20:50.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/transport/DefaultSocketFactoryImpl.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/transport/DefaultSocketFactoryImpl.java 2014-07-15 21:45:53.000000000 -0700 @@ -32,6 +32,7 @@ import java.net.ServerSocket; import java.nio.channels.SocketChannel; @@ -5789,7 +5891,7 @@ } --- ./corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java 2013-09-06 11:20:50.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. @@ -5807,7 +5909,7 @@ Thread implements --- ./corba/src/share/classes/com/sun/corba/se/spi/orb/ORB.java 2013-09-06 11:20:51.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/spi/orb/ORB.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/spi/orb/ORB.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. @@ -5860,7 +5962,7 @@ /** Get the appropriate StubFactoryFactory. This --- ./corba/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java 2013-09-06 11:20:51.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java 2014-07-15 21:45:53.000000000 -0700 @@ -36,6 +36,7 @@ import com.sun.corba.se.spi.logging.CORBALogDomains ; @@ -5899,7 +6001,7 @@ + private static final long serialVersionUID = 4571178305984833743L; } --- ./corba/src/share/classes/com/sun/corba/se/spi/servicecontext/ServiceContexts.java 2013-09-06 11:20:52.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/corba/se/spi/servicecontext/ServiceContexts.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/corba/se/spi/servicecontext/ServiceContexts.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved. @@ -5935,7 +6037,7 @@ // Now the input stream passed to a ServiceContext --- ./corba/src/share/classes/com/sun/tools/corba/se/idl/idl_ja.prp 2013-09-06 11:20:53.000000000 -0700 -+++ ./corba/src/share/classes/com/sun/tools/corba/se/idl/idl_ja.prp 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/com/sun/tools/corba/se/idl/idl_ja.prp 2014-07-15 21:45:53.000000000 -0700 @@ -110,7 +110,7 @@ ParseException.badCustom=%0 (\u884C%1): forward\u5024\u5BA3\u8A00\u306Fcustom\u3068\u3057\u3066\u5BA3\u8A00\u3067\u304D\u307E\u305B\u3093\u3002\n%2\n%3 ParseException.badRepIDAlreadyAssigned=%0 (\u884C%1): \u578B%2\u306B\u306F\u3001\u524D\u306EID\u30D7\u30E9\u30B0\u30DE\u30FB\u30C7\u30A3\u30EC\u30AF\u30C6\u30A3\u30D6\u306E\u30EA\u30DD\u30B8\u30C8\u30EAID\u304C\u3059\u3067\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u3066\u3044\u307E\u3059\u3002\n%3\n%4 @@ -5946,7 +6048,7 @@ ParseException.branchLabel=%0 (\u884C%1): case %2\u306F\u3059\u3067\u306B\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n%3\n%4 ParseException.branchName=%0 (\u884C%1): %2\u3068\u3044\u3046\u540D\u524D\u306E\u5206\u5C90\u306F\u3059\u3067\u306B\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002\n%3\n%4 --- ./corba/src/share/classes/javax/rmi/CORBA/Stub.java 2013-09-06 11:20:53.000000000 -0700 -+++ ./corba/src/share/classes/javax/rmi/CORBA/Stub.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/javax/rmi/CORBA/Stub.java 2014-07-15 21:45:53.000000000 -0700 @@ -61,13 +61,11 @@ private transient StubDelegate stubDelegate = null; private static Class stubDelegateClass = null; @@ -5981,7 +6083,7 @@ try { --- ./corba/src/share/classes/javax/rmi/CORBA/Util.java 2013-09-06 11:20:53.000000000 -0700 -+++ ./corba/src/share/classes/javax/rmi/CORBA/Util.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/javax/rmi/CORBA/Util.java 2014-07-15 21:45:53.000000000 -0700 @@ -60,14 +60,11 @@ public class Util { @@ -6020,7 +6122,7 @@ try { --- ./corba/src/share/classes/javax/rmi/PortableRemoteObject.java 2013-09-06 11:20:53.000000000 -0700 -+++ ./corba/src/share/classes/javax/rmi/PortableRemoteObject.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/javax/rmi/PortableRemoteObject.java 2014-07-15 21:45:53.000000000 -0700 @@ -65,17 +65,14 @@ */ public class PortableRemoteObject { @@ -6060,7 +6162,7 @@ try { --- ./corba/src/share/classes/org/omg/CORBA/ORB.java 2013-09-06 11:20:54.000000000 -0700 -+++ ./corba/src/share/classes/org/omg/CORBA/ORB.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/org/omg/CORBA/ORB.java 2014-07-15 21:54:35.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. @@ -6179,7 +6281,7 @@ this.getClass().getMethod("create_operation_list", argc); --- ./corba/src/share/classes/org/omg/CORBA_2_3/portable/InputStream.java 2013-09-06 11:20:55.000000000 -0700 -+++ ./corba/src/share/classes/org/omg/CORBA_2_3/portable/InputStream.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/org/omg/CORBA_2_3/portable/InputStream.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2000, Oracle and/or its affiliates. All rights reserved. @@ -6243,7 +6345,7 @@ * Unmarshalls a value type from the input stream. * @return the value type unmarshalled from the input stream --- ./corba/src/share/classes/sun/corba/EncapsInputStreamFactory.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./corba/src/share/classes/sun/corba/EncapsInputStreamFactory.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/sun/corba/EncapsInputStreamFactory.java 2014-07-15 21:45:53.000000000 -0700 @@ -0,0 +1,153 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -6399,7 +6501,7 @@ + } +} --- ./corba/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java 2013-09-06 11:20:56.000000000 -0700 -+++ ./corba/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java 2014-07-15 23:25:08.000000000 -0700 ++++ ./corba/src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java 2014-07-15 21:45:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. @@ -6552,7 +6654,7 @@ p.pln("(" + idExtInputStream + ") "+_in+";"); p.pO(); --- ./hotspot/.hgtags 2013-09-06 11:21:49.000000000 -0700 -+++ ./hotspot/.hgtags 2014-07-15 23:24:59.000000000 -0700 ++++ ./hotspot/.hgtags 2014-10-28 20:19:39.000000000 -0700 @@ -182,6 +182,7 @@ 38fa55e5e79232d48f1bb8cf27d88bc094c9375a hs21-b16 81d815b05abb564aa1f4100ae13491c949b9a07e jdk7-b147 @@ -6586,7 +6688,7 @@ e3d2c238e29c421c3b5c001e400acbfb30790cfc jdk7u14-b14 860ae068f4dff62a77c8315f0335b7e935087e86 hs24-b34 12619005c5e29be6e65f0dc9891ca19d9ffb1aaa jdk7u14-b15 -@@ -550,3 +569,113 @@ +@@ -550,3 +569,155 @@ b8d8caf6df744d5342b5d284376a005e86c0b108 hs24-b56 eceae04782438987cd747e1c76e4085f50b43a18 jdk7u40-b43 af1fc2868a2b919727bfbb0858449bd991bbee4a jdk7u40-b60 @@ -6651,9 +6753,13 @@ +b021fd817a0177b31d1e3d65127a27458e85801e jdk7u55-b13 +d27b468d5f3be3329ff1ff342f3347e6b2e0303b jdk7u55-b30 +dff9147a781672f20bb0577a94233264ea4a95d1 jdk7u55-b14 ++4e73c6403b44f86d579b1ba03ea636c52c4b559b jdk7u55-b15 +8175599864880938d68d0a515fa561043d7d5fd0 jdk7u55-b31 +ba9270b8fb1f4852ff1d9dab15571eb9e0714495 jdk7u55-b32 +0901a8cf66a0494b55bf104c9666d4e3c6ff93f0 jdk7u55-b33 ++278d7e230b297a4632b94ddc07d591e74736e039 jdk7u55-b34 ++db88943dba0b7672a09e22974934022fbe8ba8dd jdk7u55-b35 ++b3e388601b0fc0922b311e2cc68b9417cedd16ef jdk7u55-b36 +ae4adc1492d1c90a70bd2d139a939fc0c8329be9 jdk7u60-b00 +af1fc2868a2b919727bfbb0858449bd991bbee4a jdk7u40-b60 +cc83359f5e5eb46dd9176b0a272390b1a0a51fdc hs24.60-b01 @@ -6684,6 +6790,10 @@ +617a6338e0c4f7699eed5061d7e8f576c3ace029 jdk7u60-b18 +4a9635c98a917cfcef506ca5d034c733a33c53f3 jdk7u65-b01 +361493c7cdb5f75b28efc63389d6cebaaaa43a2c jdk7u60-b19 ++13f561930b3e80a94e2baddc51dfc6c43c5ca601 jdk7u60-b30 ++35b2dbe7f7c69ea0f2feb1e66fe8651511a5fb6d jdk7u60-b31 ++f166d2e391993f1b12b4ad1685baf999c78e6372 jdk7u60-b32 ++cc1fea28c886ef100632247a708eac0c83640914 jdk7u60-b33 +eb797fab50d3b440b17b3e7c5d83f42bfa73655e jdk7u65-b02 +bb00df28ecdbd0da89ab4ed81f6f2b732fa512da jdk7u65-b03 +848481af9003067546c7f34c166bb8d745b95d5f jdk7u65-b04 @@ -6700,8 +6810,42 @@ +7058f0d30de6826b6866ce2d146c63e943be33af jdk7u65-b15 +f1b2970a2564c3360db420431cfbba215da6ae43 jdk7u65-b16 +4c6df9a369cb9d54fe2d898452883a22b8ec6640 jdk7u65-b17 ++aca05127f95b5704ee3a34104a8f86e36326f0c0 jdk7u65-b30 ++d006213be74730453cf5c3ce31f1d1d505334419 jdk7u65-b18 ++1d8226b3e9896656451801393eb3ae394faeb638 jdk7u65-b19 ++c43b0b843f897a4d8cf0a3566b017b87230dd3b4 jdk7u65-b32 ++d3c9265e12fa115052f18d1e3d379143b56bbf63 jdk7u65-b20 ++39776d90970221dd260187acb4c37631e41a66a9 jdk7u67-b01 ++1d8226b3e9896656451801393eb3ae394faeb638 jdk7u65-b40 ++cf8b3a090e597e59177c5f67d44cdec12309777f jdk7u65-b31 ++df855c3f4d31dd7db081d68e3054518380127893 jdk7u65-b33 ++6b37a189944aaa09e81d97d394496464d16bee42 jdk7u66-b00 ++121dc94194d9234e2b13c867d875e23e1bdd6abd jdk7u66-b01 ++f28ea516eb0b9e99f1e342954ab4642456af4da1 jdk7u66-b09 ++3dc6ae1972a45ba563518cc0e51f09885258f69d jdk7u66-b10 ++8d2b3f7d5b3001d019832476d684679ca6be0c8d jdk7u66-b11 ++5ee19b64ef208daaef91f063d800aa162427f8f6 jdk7u66-b12 ++a1e6f9c4c1f47be1b0edef6bd92399f8f07b7d15 jdk7u66-b13 ++b44baba406f2de6eeccc57dbfae653cf124b527b jdk7u66-b14 ++d20b495c96d3f8899a64657aba0fc72799773cb3 jdk7u66-b15 ++3bbfed065c601187449d319fd70bba6ae1ebb707 jdk7u66-b16 ++4abb71ff14b2e6cf932e5c61900f480d5e1afedb jdk7u66-b17 ++4ceb9c03fe8ee6b93d22854780ef8c737edd14b2 jdk7u71-b00 ++f95d6d32e08006209f1798f82b60d7d05767a3e8 jdk7u71-b01 ++1c760efe2d0795f4ce8260ec655b8870bfd77ca1 jdk7u71-b02 ++0cb0b5abd0b5aa25fc8bd5920c8d61c5b85a10c6 jdk7u71-b03 ++a491e5e52998c23502ebb1340955e3e726d44ad6 jdk7u71-b04 ++c93efe6377ffd7484c50cba9a88a37bebf525114 jdk7u71-b05 ++f95fa655cc119659686ba68c7242497fd209f9e1 jdk7u71-b06 ++7f32b65fde34db41bf951ed81374240840ef88f4 jdk7u71-b07 ++4e17bd4fb2304d068023d9d805e86d6b592d4230 jdk7u71-b08 ++1ffc702334d960aa4015e5cc6f4fb9e971952b54 jdk7u71-b09 ++9a17c184bcb99f13dc6ab714ad98976410429637 jdk7u71-b10 ++d6cb97651f0bd8d61f4d22aa7550145bbe6fb051 jdk7u71-b11 ++959b4e5d2e3111920c198187f3bc66eba3e457f1 jdk7u71-b12 ++608f470d22689bab17bab0ea1dbee3e1a0802d5b jdk7u71-b13 --- ./hotspot/agent/src/os/bsd/ps_proc.c 2013-09-06 11:21:50.000000000 -0700 -+++ ./hotspot/agent/src/os/bsd/ps_proc.c 2014-07-15 23:24:51.000000000 -0700 ++++ ./hotspot/agent/src/os/bsd/ps_proc.c 2014-10-28 20:19:39.000000000 -0700 @@ -131,7 +131,7 @@ static bool ptrace_continue(pid_t pid, int signal) { @@ -6712,7 +6856,7 @@ return false; } --- ./hotspot/agent/src/os/linux/ps_core.c 2013-09-06 11:21:50.000000000 -0700 -+++ ./hotspot/agent/src/os/linux/ps_core.c 2014-07-15 23:24:51.000000000 -0700 ++++ ./hotspot/agent/src/os/linux/ps_core.c 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. @@ -6801,7 +6945,7 @@ // process segments from interpreter (ld.so or ld-linux.so) --- ./hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java 2013-09-06 11:21:51.000000000 -0700 -+++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java 2014-10-28 20:19:39.000000000 -0700 @@ -33,6 +33,7 @@ import sun.jvm.hotspot.debugger.remote.*; import sun.jvm.hotspot.debugger.windbg.*; @@ -6811,7 +6955,7 @@ import sun.jvm.hotspot.oops.*; import sun.jvm.hotspot.runtime.*; --- ./hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java 2013-09-06 11:21:52.000000000 -0700 -+++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java 2014-10-28 20:19:39.000000000 -0700 @@ -35,6 +35,7 @@ import sun.jvm.hotspot.debugger.windbg.*; import sun.jvm.hotspot.debugger.linux.*; @@ -6821,7 +6965,7 @@ import sun.jvm.hotspot.livejvm.*; import sun.jvm.hotspot.memory.*; --- ./hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java 2013-09-06 11:21:55.000000000 -0700 -+++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/interpreter/Bytecodes.java 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. @@ -6853,7 +6997,7 @@ def(_fast_aldc_w , "fast_aldc_w" , "bJJ" , null , BasicType.getTObject(), 1, true, _ldc_w ); --- ./hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/JVMTIThreadState.java 2013-09-06 11:21:56.000000000 -0700 -+++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/JVMTIThreadState.java 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/jdi/JVMTIThreadState.java 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. @@ -6875,7 +7019,7 @@ public static final int JVMTI_THREAD_STATE_PARKED = 0x0200; public static final int JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER = 0x0400; --- ./hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/OSThread.java 2013-09-06 11:21:57.000000000 -0700 -+++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/OSThread.java 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/OSThread.java 2014-07-15 21:48:34.000000000 -0700 @@ -32,7 +32,7 @@ // to the sys_thread_t structure of the classic JVM implementation. public class OSThread extends VMObject { @@ -6904,7 +7048,7 @@ } --- ./hotspot/make/bsd/Makefile 2013-09-06 11:21:59.000000000 -0700 -+++ ./hotspot/make/bsd/Makefile 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/bsd/Makefile 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. @@ -6935,7 +7079,7 @@ # Synonyms for win32-like targets. compiler2: jvmg product --- ./hotspot/make/bsd/makefiles/arm.make 2013-09-06 11:21:59.000000000 -0700 -+++ ./hotspot/make/bsd/makefiles/arm.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/bsd/makefiles/arm.make 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. @@ -6954,7 +7098,7 @@ CFLAGS += -DVM_LITTLE_ENDIAN --- ./hotspot/make/bsd/makefiles/build_vm_def.sh 2013-09-06 11:21:59.000000000 -0700 -+++ ./hotspot/make/bsd/makefiles/build_vm_def.sh 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/bsd/makefiles/build_vm_def.sh 2014-10-28 20:19:39.000000000 -0700 @@ -7,6 +7,16 @@ NM=nm fi @@ -6973,7 +7117,7 @@ ' +fi --- ./hotspot/make/bsd/makefiles/buildtree.make 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/bsd/makefiles/buildtree.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/bsd/makefiles/buildtree.make 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,6 @@ # # Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. @@ -7025,7 +7169,7 @@ .dbxrc: $(BUILDTREE_MAKE) @echo Creating $@ ... --- ./hotspot/make/bsd/makefiles/gcc.make 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/bsd/makefiles/gcc.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/bsd/makefiles/gcc.make 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,6 @@ # # Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. @@ -7072,7 +7216,7 @@ # -DDONT_USE_PRECOMPILED_HEADER will exclude all includes in precompiled.hpp. --- ./hotspot/make/bsd/makefiles/jsig.make 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/bsd/makefiles/jsig.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/bsd/makefiles/jsig.make 2014-10-28 20:19:39.000000000 -0700 @@ -36,9 +36,16 @@ LIBJSIG_G = lib$(JSIG_G).so endif @@ -7126,7 +7270,7 @@ .PHONY: install_jsig --- ./hotspot/make/bsd/makefiles/launcher.make 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/bsd/makefiles/launcher.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/bsd/makefiles/launcher.make 2014-10-28 20:19:39.000000000 -0700 @@ -50,7 +50,7 @@ LIBS_LAUNCHER += $(STATIC_STDCXX) $(LIBS) else @@ -7136,12 +7280,29 @@ # The gamma launcher runs the JDK from $JAVA_HOME, overriding the JVM with a # freshly built JVM at ./libjvm.{so|dylib}. This is accomplished by setting ---- ./hotspot/make/bsd/makefiles/mapfile-vers-product 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/bsd/makefiles/mapfile-vers-product 2014-07-15 23:24:52.000000000 -0700 +--- ./hotspot/make/bsd/makefiles/mapfile-vers-debug 2013-09-06 11:22:00.000000000 -0700 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-debug 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. -+# Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 2002, 2014, 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 +@@ -82,6 +82,7 @@ + _JVM_EnableCompiler + _JVM_Exit + _JVM_FillInStackTrace ++ _JVM_FindClassFromCaller + _JVM_FindClassFromClass + _JVM_FindClassFromClassLoader + _JVM_FindClassFromBootLoader +--- ./hotspot/make/bsd/makefiles/mapfile-vers-product 2013-09-06 11:22:00.000000000 -0700 ++++ ./hotspot/make/bsd/makefiles/mapfile-vers-product 2014-10-28 20:58:55.000000000 -0700 +@@ -1,5 +1,5 @@ + # +-# Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 2002, 2014, 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 @@ -7430,6 +7591,7 @@ + JVM_EnableCompiler; + JVM_Exit; + JVM_FillInStackTrace; ++ JVM_FindClassFromCaller; + JVM_FindClassFromClass; + JVM_FindClassFromClassLoader; + JVM_FindClassFromBootLoader; @@ -7608,16 +7770,15 @@ # This is for Forte Analyzer profiling support. - _AsyncGetCallTrace + AsyncGetCallTrace; -+ -+ # INSERT VTABLE SYMBOLS HERE - # INSERT VTABLE SYMBOLS HERE ++ # INSERT VTABLE SYMBOLS HERE + + local: + *; +}; - --- ./hotspot/make/bsd/makefiles/ppc.make 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/bsd/makefiles/ppc.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/bsd/makefiles/ppc.make 2014-10-28 20:19:39.000000000 -0700 @@ -28,3 +28,6 @@ # Must also specify if CPU is big endian CFLAGS += -DVM_BIG_ENDIAN @@ -7626,7 +7787,7 @@ +ASFLAGS += -Wa,-mspe -Wa,--defsym -Wa,E500V2=1 +endif --- ./hotspot/make/bsd/makefiles/saproc.make 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/bsd/makefiles/saproc.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/bsd/makefiles/saproc.make 2014-10-28 20:19:39.000000000 -0700 @@ -36,6 +36,11 @@ LIBSAPROC_G = lib$(SAPROC_G).so endif @@ -7684,7 +7845,7 @@ fi --- ./hotspot/make/bsd/makefiles/vm.make 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/bsd/makefiles/vm.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/bsd/makefiles/vm.make 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,6 @@ # # Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. @@ -7717,7 +7878,7 @@ LFLAGS_VM += $(LLVM_LDFLAGS) endif --- ./hotspot/make/hotspot_version 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/hotspot_version 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/hotspot_version 2014-10-28 20:19:38.000000000 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. @@ -7735,13 +7896,13 @@ HS_MAJOR_VER=24 -HS_MINOR_VER=0 -HS_BUILD_NUMBER=56 -+HS_MINOR_VER=65 -+HS_BUILD_NUMBER=04 ++HS_MINOR_VER=71 ++HS_BUILD_NUMBER=01 JDK_MAJOR_VER=1 JDK_MINOR_VER=7 --- ./hotspot/make/linux/makefiles/arm.make 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/linux/makefiles/arm.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/linux/makefiles/arm.make 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ # -# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. @@ -7760,7 +7921,7 @@ CFLAGS += -DVM_LITTLE_ENDIAN --- ./hotspot/make/linux/makefiles/buildtree.make 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/linux/makefiles/buildtree.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/linux/makefiles/buildtree.make 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,6 @@ # # Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. @@ -7786,7 +7947,7 @@ echo "# Used for platform dispatching"; \ echo "TARGET_DEFINES = -DTARGET_OS_FAMILY_\$$(Platform_os_family)"; \ --- ./hotspot/make/linux/makefiles/gcc.make 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/linux/makefiles/gcc.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/linux/makefiles/gcc.make 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,6 @@ # # Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. @@ -7807,8 +7968,42 @@ CFLAGS += $(LIBFFI_CFLAGS) CFLAGS += $(LLVM_CFLAGS) endif +--- ./hotspot/make/linux/makefiles/mapfile-vers-debug 2013-09-06 11:22:00.000000000 -0700 ++++ ./hotspot/make/linux/makefiles/mapfile-vers-debug 2014-10-28 20:19:38.000000000 -0700 +@@ -1,5 +1,5 @@ + # +-# Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 2002, 2014, 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 +@@ -84,6 +84,7 @@ + JVM_EnableCompiler; + JVM_Exit; + JVM_FillInStackTrace; ++ JVM_FindClassFromCaller; + JVM_FindClassFromClass; + JVM_FindClassFromClassLoader; + JVM_FindClassFromBootLoader; +--- ./hotspot/make/linux/makefiles/mapfile-vers-product 2013-09-06 11:22:00.000000000 -0700 ++++ ./hotspot/make/linux/makefiles/mapfile-vers-product 2014-10-28 20:19:38.000000000 -0700 +@@ -1,5 +1,5 @@ + # +-# Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 2002, 2014, 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 +@@ -84,6 +84,7 @@ + JVM_EnableCompiler; + JVM_Exit; + JVM_FillInStackTrace; ++ JVM_FindClassFromCaller; + JVM_FindClassFromClass; + JVM_FindClassFromClassLoader; + JVM_FindClassFromBootLoader; --- ./hotspot/make/linux/makefiles/vm.make 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/linux/makefiles/vm.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/linux/makefiles/vm.make 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,6 @@ # # Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. @@ -7850,7 +8045,7 @@ LFLAGS_VM += $(LLVM_LDFLAGS) endif --- ./hotspot/make/solaris/makefiles/defs.make 2013-09-06 11:22:00.000000000 -0700 -+++ ./hotspot/make/solaris/makefiles/defs.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/solaris/makefiles/defs.make 2014-10-28 20:19:39.000000000 -0700 @@ -221,8 +221,8 @@ endif ifeq ($(JVM_VARIANT_CLIENT),true) @@ -7862,8 +8057,25 @@ EXPORT_LIST += $(EXPORT_CLIENT_DIR)/libjvm_dtrace.$(LIBRARY_SUFFIX) ifeq ($(ARCH_DATA_MODEL),32) EXPORT_LIST += $(EXPORT_CLIENT_DIR)/64/libjvm_db.$(LIBRARY_SUFFIX) +--- ./hotspot/make/solaris/makefiles/mapfile-vers 2013-09-06 11:22:00.000000000 -0700 ++++ ./hotspot/make/solaris/makefiles/mapfile-vers 2014-10-28 20:19:38.000000000 -0700 +@@ -1,5 +1,5 @@ + # +-# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 2000, 2014, 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 +@@ -84,6 +84,7 @@ + JVM_EnableCompiler; + JVM_Exit; + JVM_FillInStackTrace; ++ JVM_FindClassFromCaller; + JVM_FindClassFromClass; + JVM_FindClassFromClassLoader; + JVM_FindClassFromBootLoader; --- ./hotspot/make/windows/makefiles/compile.make 2013-09-06 11:22:01.000000000 -0700 -+++ ./hotspot/make/windows/makefiles/compile.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/windows/makefiles/compile.make 2014-07-15 21:48:34.000000000 -0700 @@ -172,6 +172,7 @@ PRODUCT_OPT_OPTION = /O2 /Oy- FASTDEBUG_OPT_OPTION = /O2 /Oy- @@ -7903,7 +8115,7 @@ # If NO_OPTIMIZATIONS is defined in the environment, turn everything off --- ./hotspot/make/windows/makefiles/sa.make 2013-09-06 11:22:01.000000000 -0700 -+++ ./hotspot/make/windows/makefiles/sa.make 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/make/windows/makefiles/sa.make 2014-07-15 21:48:34.000000000 -0700 @@ -107,6 +107,9 @@ !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1" SA_LFLAGS = $(SA_LFLAGS) -map -debug @@ -7914,8 +8126,47 @@ # Note that we do not keep sawindbj.obj around as it would then # get included in the dumpbin command in build_vm_def.sh +--- ./hotspot/make/windows/makefiles/trace.make 2013-09-06 11:22:01.000000000 -0700 ++++ ./hotspot/make/windows/makefiles/trace.make 2014-10-28 20:19:38.000000000 -0700 +@@ -40,8 +40,7 @@ + traceEventIds.hpp \ + traceTypes.hpp + +- +-!if "$(OPENJDK)" != "true" ++!if EXISTS($(TraceAltSrcDir)) + TraceGeneratedNames = $(TraceGeneratedNames) \ + traceRequestables.hpp \ + traceEventControl.hpp \ +@@ -56,7 +55,7 @@ + $(TraceOutDir)/traceEventIds.hpp \ + $(TraceOutDir)/traceTypes.hpp + +-!if "$(OPENJDK)" != "true" ++!if EXISTS($(TraceAltSrcDir)) + TraceGeneratedFiles = $(TraceGeneratedFiles) \ + $(TraceOutDir)/traceRequestables.hpp \ + $(TraceOutDir)/traceEventControl.hpp \ +@@ -68,7 +67,7 @@ + XML_DEPS = $(TraceSrcDir)/trace.xml $(TraceSrcDir)/tracetypes.xml \ + $(TraceSrcDir)/trace.dtd $(TraceSrcDir)/xinclude.mod + +-!if "$(OPENJDK)" != "true" ++!if EXISTS($(TraceAltSrcDir)) + XML_DEPS = $(XML_DEPS) $(TraceAltSrcDir)/traceevents.xml + !endif + +@@ -87,7 +86,7 @@ + @echo Generating $@ + @$(XSLT) -IN $(TraceSrcDir)/trace.xml -XSL $(TraceSrcDir)/traceTypes.xsl -OUT $(TraceOutDir)/traceTypes.hpp + +-!if "$(OPENJDK)" == "true" ++!if !EXISTS($(TraceAltSrcDir)) + + $(TraceOutDir)/traceEventClasses.hpp: $(TraceSrcDir)/trace.xml $(TraceSrcDir)/traceEventClasses.xsl $(XML_DEPS) + @echo Generating $@ --- ./hotspot/src/cpu/sparc/vm/assembler_sparc.cpp 2013-09-06 11:22:01.000000000 -0700 -+++ ./hotspot/src/cpu/sparc/vm/assembler_sparc.cpp 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/src/cpu/sparc/vm/assembler_sparc.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -4512,7 +4512,7 @@ #define __ masm. address start = __ pc(); @@ -7942,7 +8193,7 @@ // Use return-from-leaf __ retl(); --- ./hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp 2013-09-06 11:22:01.000000000 -0700 -+++ ./hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/src/cpu/sparc/vm/c1_Runtime1_sparc.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -36,6 +36,9 @@ #include "runtime/signature.hpp" #include "runtime/vframeArray.hpp" @@ -7979,7 +8230,7 @@ // Use return-from-leaf __ retl(); --- ./hotspot/src/cpu/sparc/vm/globals_sparc.hpp 2013-09-06 11:22:02.000000000 -0700 -+++ ./hotspot/src/cpu/sparc/vm/globals_sparc.hpp 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/src/cpu/sparc/vm/globals_sparc.hpp 2014-10-28 20:19:39.000000000 -0700 @@ -71,7 +71,11 @@ define_pd_global(bool, RewriteBytecodes, true); define_pd_global(bool, RewriteFrequentPairs, true); @@ -7993,7 +8244,7 @@ // GC Ergo Flags define_pd_global(intx, CMSYoungGenPerWorker, 16*M); // default max size of CMS young gen, per GC worker thread --- ./hotspot/src/cpu/sparc/vm/sparc.ad 2013-09-06 11:22:02.000000000 -0700 -+++ ./hotspot/src/cpu/sparc/vm/sparc.ad 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/src/cpu/sparc/vm/sparc.ad 2014-07-15 21:48:34.000000000 -0700 @@ -3399,8 +3399,8 @@ interface(CONST_INTER); %} @@ -8076,7 +8327,7 @@ size(4); --- ./hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp 2013-09-06 11:22:02.000000000 -0700 -+++ ./hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/src/cpu/sparc/vm/templateInterpreter_sparc.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. @@ -8111,7 +8362,7 @@ __ dispatch_next(vtos); // end of JVMTI PopFrame support --- ./hotspot/src/cpu/x86/vm/assembler_x86.cpp 2013-09-06 11:22:02.000000000 -0700 -+++ ./hotspot/src/cpu/x86/vm/assembler_x86.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/cpu/x86/vm/assembler_x86.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -8754,13 +8754,18 @@ const Register card_addr = tmp; lea(card_addr, as_Address(ArrayAddress(cardtable, index))); @@ -8134,7 +8385,7 @@ cmpl(queue_index, 0); jcc(Assembler::equal, runtime); --- ./hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp 2013-09-06 11:22:02.000000000 -0700 -+++ ./hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1686,14 +1686,6 @@ } @@ -8166,7 +8417,7 @@ if (op->fast_check()) { --- ./hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp 2013-09-06 11:22:02.000000000 -0700 -+++ ./hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -1395,19 +1395,18 @@ addr = new LIR_Address(src.result(), offset, type); } @@ -8193,7 +8444,7 @@ // Seems to be a precise address post_barrier(LIR_OprFact::address(addr), data); --- ./hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp 2013-09-06 11:22:02.000000000 -0700 -+++ ./hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -37,6 +37,9 @@ #include "runtime/signature.hpp" #include "runtime/vframeArray.hpp" @@ -8225,7 +8476,7 @@ __ cmpl(queue_index, 0); __ jcc(Assembler::equal, runtime); --- ./hotspot/src/cpu/x86/vm/frame_x86.cpp 2013-09-06 11:22:02.000000000 -0700 -+++ ./hotspot/src/cpu/x86/vm/frame_x86.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/cpu/x86/vm/frame_x86.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -94,12 +94,6 @@ // other generic buffer blobs are more problematic so we just assume they are // ok. adapter blobs never have a frame complete and are never ok. @@ -8252,7 +8503,7 @@ // On Intel the return_address is always the word on the stack sender_pc = (address) *(sender_sp-1); --- ./hotspot/src/cpu/x86/vm/globals_x86.hpp 2013-09-06 11:22:02.000000000 -0700 -+++ ./hotspot/src/cpu/x86/vm/globals_x86.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/cpu/x86/vm/globals_x86.hpp 2014-10-28 20:19:39.000000000 -0700 @@ -62,7 +62,7 @@ // due to lack of optimization caused by C++ compiler bugs define_pd_global(intx, StackShadowPages, NOT_WIN64(20) WIN64_ONLY(6) DEBUG_ONLY(+2)); @@ -8263,7 +8514,7 @@ define_pd_global(intx, PreInflateSpin, 10); --- ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp 2013-09-06 11:22:02.000000000 -0700 -+++ ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_32.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. @@ -8300,7 +8551,7 @@ // end of PopFrame support --- ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp 2013-09-06 11:22:02.000000000 -0700 -+++ ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/cpu/x86/vm/templateInterpreter_x86_64.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. @@ -8337,7 +8588,7 @@ // end of PopFrame support --- ./hotspot/src/cpu/x86/vm/x86_32.ad 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/cpu/x86/vm/x86_32.ad 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/cpu/x86/vm/x86_32.ad 2014-07-15 21:48:35.000000000 -0700 @@ -3919,6 +3919,17 @@ interface(CONST_INTER); %} @@ -8373,7 +8624,7 @@ "AND $dst.lo,$mask" %} ins_encode %{ --- ./hotspot/src/cpu/x86/vm/x86_64.ad 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/cpu/x86/vm/x86_64.ad 2014-07-15 23:24:52.000000000 -0700 ++++ ./hotspot/src/cpu/x86/vm/x86_64.ad 2014-07-15 21:48:35.000000000 -0700 @@ -3142,6 +3142,17 @@ interface(CONST_INTER); %} @@ -8409,7 +8660,7 @@ ins_encode %{ Register Rdst = $dst$$Register; --- ./hotspot/src/cpu/zero/vm/entryFrame_zero.hpp 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/cpu/zero/vm/entryFrame_zero.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/cpu/zero/vm/entryFrame_zero.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -1,6 +1,6 @@ /* * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. @@ -8430,7 +8681,7 @@ public: --- ./hotspot/src/cpu/zero/vm/frame_zero.inline.hpp 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/cpu/zero/vm/frame_zero.inline.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/cpu/zero/vm/frame_zero.inline.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -1,6 +1,6 @@ /* * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. @@ -8449,7 +8700,7 @@ } --- ./hotspot/src/os/bsd/vm/attachListener_bsd.cpp 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/os/bsd/vm/attachListener_bsd.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/bsd/vm/attachListener_bsd.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -460,14 +460,14 @@ void AttachListener::vm_start() { @@ -8468,7 +8719,7 @@ ret = ::unlink(fn); if (ret == -1) { --- ./hotspot/src/os/bsd/vm/decoder_bsd.cpp 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/src/os/bsd/vm/decoder_bsd.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/bsd/vm/decoder_bsd.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -0,0 +1,46 @@ +/* + * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. @@ -8517,7 +8768,7 @@ +} + --- ./hotspot/src/os/bsd/vm/os_bsd.cpp 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/os/bsd/vm/os_bsd.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/bsd/vm/os_bsd.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. @@ -8801,7 +9052,7 @@ +#endif + --- ./hotspot/src/os/bsd/vm/os_bsd.hpp 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/os/bsd/vm/os_bsd.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/bsd/vm/os_bsd.hpp 2014-10-28 20:19:39.000000000 -0700 @@ -103,6 +103,12 @@ static bool hugetlbfs_sanity_check(bool warn, size_t page_size); @@ -8816,7 +9067,7 @@ static void init_thread_fpu_state(); --- ./hotspot/src/os/bsd/vm/os_bsd.inline.hpp 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/os/bsd/vm/os_bsd.inline.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/bsd/vm/os_bsd.inline.hpp 2014-10-28 20:19:39.000000000 -0700 @@ -31,10 +31,22 @@ # include "atomic_bsd_x86.inline.hpp" # include "orderAccess_bsd_x86.inline.hpp" @@ -8841,7 +9092,7 @@ // System includes --- ./hotspot/src/os/bsd/vm/thread_bsd.inline.hpp 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/os/bsd/vm/thread_bsd.inline.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/bsd/vm/thread_bsd.inline.hpp 2014-10-28 20:19:39.000000000 -0700 @@ -34,11 +34,26 @@ # include "orderAccess_bsd_x86.inline.hpp" # include "prefetch_bsd_x86.inline.hpp" @@ -8870,7 +9121,7 @@ // Contains inlined functions for class Thread and ThreadLocalStorage --- ./hotspot/src/os/linux/vm/globals_linux.hpp 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/os/linux/vm/globals_linux.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/linux/vm/globals_linux.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -40,6 +40,9 @@ product(bool, UseHugeTLBFS, false, \ "Use MAP_HUGETLB for large pages") \ @@ -8891,7 +9142,7 @@ define_pd_global(bool, UseOSErrorReporting, false); define_pd_global(bool, UseThreadPriorities, true) ; --- ./hotspot/src/os/linux/vm/jsig.c 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/os/linux/vm/jsig.c 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/linux/vm/jsig.c 2014-07-15 21:48:35.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. @@ -8936,7 +9187,7 @@ * handlers and save the old ones. */ res = call_os_sigaction(sig, act, &oldAct); --- ./hotspot/src/os/linux/vm/os_linux.cpp 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/os/linux/vm/os_linux.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/linux/vm/os_linux.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. @@ -10030,7 +10281,7 @@ + +#endif --- ./hotspot/src/os/linux/vm/os_linux.hpp 2013-09-06 11:22:03.000000000 -0700 -+++ ./hotspot/src/os/linux/vm/os_linux.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/linux/vm/os_linux.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -32,6 +32,7 @@ class Linux { @@ -10123,7 +10374,7 @@ }; --- ./hotspot/src/os/posix/vm/os_posix.cpp 2013-09-06 11:22:04.000000000 -0700 -+++ ./hotspot/src/os/posix/vm/os_posix.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/posix/vm/os_posix.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. @@ -10188,7 +10439,7 @@ return false; } --- ./hotspot/src/os/solaris/vm/os_solaris.cpp 2013-09-06 11:22:04.000000000 -0700 -+++ ./hotspot/src/os/solaris/vm/os_solaris.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/solaris/vm/os_solaris.cpp 2014-07-15 21:54:40.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. @@ -10251,7 +10502,7 @@ +} +#endif --- ./hotspot/src/os/windows/vm/os_windows.cpp 2013-09-06 11:22:04.000000000 -0700 -+++ ./hotspot/src/os/windows/vm/os_windows.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os/windows/vm/os_windows.cpp 2014-07-15 21:54:40.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. @@ -10506,7 +10757,7 @@ +} +#endif --- ./hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp 2013-09-06 11:22:04.000000000 -0700 -+++ ./hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -945,7 +945,7 @@ if (rslt != 0) fatal(err_msg("pthread_stackseg_np failed with err = %d", rslt)); @@ -10517,7 +10768,7 @@ #elif defined(_ALLBSD_SOURCE) pthread_attr_t attr; --- ./hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp 2013-09-06 11:22:04.000000000 -0700 -+++ ./hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os_cpu/bsd_zero/vm/os_bsd_zero.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -24,7 +24,7 @@ */ @@ -10528,7 +10779,7 @@ #endif --- ./hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp 2013-09-06 11:22:04.000000000 -0700 -+++ ./hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp 2014-07-15 21:48:36.000000000 -0700 @@ -873,3 +873,46 @@ #endif } @@ -10577,7 +10828,7 @@ +#endif +} --- ./hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.hpp 2013-09-06 11:22:04.000000000 -0700 -+++ ./hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.hpp 2014-07-15 21:48:36.000000000 -0700 @@ -36,4 +36,17 @@ // Note: Currently only used in 64 bit Windows implementations static bool register_code_area(char *low, char *high) { return true; } @@ -10596,8 +10847,23 @@ + static void workaround_expand_exec_shield_cs_limit(); + #endif // OS_CPU_LINUX_X86_VM_OS_LINUX_X86_HPP +--- ./hotspot/src/share/vm/adlc/formssel.cpp 2013-09-06 11:22:09.000000000 -0700 ++++ ./hotspot/src/share/vm/adlc/formssel.cpp 2014-10-28 20:19:38.000000000 -0700 +@@ -536,12 +536,6 @@ + if( data_type != Form::none ) + rematerialize = true; + +- // Ugly: until a better fix is implemented, disable rematerialization for +- // negD nodes because they are proved to be problematic. +- if (is_ideal_negD()) { +- return false; +- } +- + // Constants + if( _components.count() == 1 && _components[0]->is(Component::USE_DEF) ) + rematerialize = true; --- ./hotspot/src/share/vm/c1/c1_GraphBuilder.cpp 2013-09-06 11:22:09.000000000 -0700 -+++ ./hotspot/src/share/vm/c1/c1_GraphBuilder.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/c1/c1_GraphBuilder.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -4178,7 +4178,9 @@ } } @@ -10610,7 +10876,7 @@ if (success && CIPrintMethodCodes) { callee->print_codes(); --- ./hotspot/src/share/vm/c1/c1_LIR.hpp 2013-09-06 11:22:09.000000000 -0700 -+++ ./hotspot/src/share/vm/c1/c1_LIR.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/c1/c1_LIR.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -2221,7 +2221,7 @@ typedef enum { inputMode, firstMode = inputMode, tempMode, outputMode, numModes, invalidMode = -1 } OprMode; @@ -10621,7 +10887,7 @@ }; --- ./hotspot/src/share/vm/c1/c1_LinearScan.cpp 2013-09-06 11:22:09.000000000 -0700 -+++ ./hotspot/src/share/vm/c1/c1_LinearScan.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/c1/c1_LinearScan.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -1138,8 +1138,10 @@ } } @@ -10636,7 +10902,7 @@ switch (op->code()) { case lir_cmp: --- ./hotspot/src/share/vm/c1/c1_Runtime1.cpp 2013-09-06 11:22:09.000000000 -0700 -+++ ./hotspot/src/share/vm/c1/c1_Runtime1.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/c1/c1_Runtime1.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -911,16 +911,6 @@ // Return to the now deoptimized frame. } @@ -10678,7 +10944,7 @@ // --- ./hotspot/src/share/vm/classfile/classFileParser.cpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/classfile/classFileParser.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/classfile/classFileParser.cpp 2014-10-28 20:19:38.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. @@ -10849,7 +11115,27 @@ int attribute_array_length = cfs->get_u2_fast(); guarantee_property(_max_bootstrap_specifier_index < attribute_array_length, -@@ -2721,7 +2749,8 @@ +@@ -2693,6 +2721,11 @@ + "bootstrap_method_index %u has bad constant type in class file %s", + bootstrap_method_index, + CHECK); ++ ++ guarantee_property((operand_fill_index + 1 + argument_count) < operands->length(), ++ "Invalid BootstrapMethods num_bootstrap_methods or num_bootstrap_arguments value in class file %s", ++ CHECK); ++ + operands->short_at_put(operand_fill_index++, bootstrap_method_index); + operands->short_at_put(operand_fill_index++, argument_count); + +@@ -2710,7 +2743,6 @@ + } + + assert(operand_fill_index == operands()->length(), "exact fill"); +- assert(constantPoolOopDesc::operand_array_length(operands()) == attribute_array_length, "correct decode"); + + u1* current_end = cfs->current(); + guarantee_property(current_end == current_start + attribute_byte_length, +@@ -2721,7 +2753,8 @@ } @@ -10859,7 +11145,7 @@ ClassFileParser::ClassAnnotationCollector* parsed_annotations, TRAPS) { ClassFileStream* cfs = stream(); -@@ -2804,7 +2833,8 @@ +@@ -2804,7 +2837,8 @@ runtime_visible_annotations_length = attribute_length; runtime_visible_annotations = cfs->get_u1_buffer(); assert(runtime_visible_annotations != NULL, "null visible annotations"); @@ -10869,7 +11155,7 @@ runtime_visible_annotations_length, cp, parsed_annotations, -@@ -3167,7 +3197,8 @@ +@@ -3167,7 +3201,8 @@ objArrayOop methods_annotations_oop = NULL; objArrayOop methods_parameter_annotations_oop = NULL; objArrayOop methods_default_annotations_oop = NULL; @@ -10879,7 +11165,7 @@ &promoted_flags, &has_final_method, &methods_annotations_oop, -@@ -3181,7 +3212,7 @@ +@@ -3181,7 +3216,7 @@ // Additional attributes ClassAnnotationCollector parsed_annotations; @@ -10888,7 +11174,7 @@ // Make sure this is the end of class file stream guarantee_property(cfs->at_eos(), "Extra bytes at the end of class file %s", CHECK_(nullHandle)); -@@ -4051,9 +4082,8 @@ +@@ -4051,9 +4086,8 @@ for (int index = 0; index < num_methods; index++) { methodOop m = (methodOop)methods->obj_at(index); @@ -10901,7 +11187,7 @@ Symbol* name = m->name(); --- ./hotspot/src/share/vm/classfile/classFileParser.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/classfile/classFileParser.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/classfile/classFileParser.hpp 2014-07-15 21:54:40.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. @@ -10978,7 +11264,7 @@ // Constructor ClassFileParser(ClassFileStream* st) { set_stream(st); } --- ./hotspot/src/share/vm/classfile/javaClasses.cpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/classfile/javaClasses.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/classfile/javaClasses.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. @@ -11036,7 +11322,7 @@ java_lang_invoke_LambdaForm::compute_offsets(); java_lang_invoke_MethodType::compute_offsets(); --- ./hotspot/src/share/vm/classfile/javaClasses.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/classfile/javaClasses.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/classfile/javaClasses.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. @@ -11086,7 +11372,7 @@ static intptr_t vmindex(oop mname); static void set_vmindex(oop mname, intptr_t index); --- ./hotspot/src/share/vm/classfile/stackMapTable.cpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/classfile/stackMapTable.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/classfile/stackMapTable.cpp 2014-07-15 21:54:40.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. @@ -11103,7 +11389,7 @@ void StackMapTable::check_new_object( --- ./hotspot/src/share/vm/classfile/symbolTable.cpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/classfile/symbolTable.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/classfile/symbolTable.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -39,6 +39,9 @@ // -------------------------------------------------------------------------- @@ -11334,7 +11620,7 @@ } --- ./hotspot/src/share/vm/classfile/symbolTable.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/classfile/symbolTable.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/classfile/symbolTable.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -86,8 +86,8 @@ static bool _needs_rehashing; @@ -11432,7 +11718,7 @@ }; #endif // SHARE_VM_CLASSFILE_SYMBOLTABLE_HPP --- ./hotspot/src/share/vm/classfile/systemDictionary.cpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/classfile/systemDictionary.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/classfile/systemDictionary.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -585,7 +585,7 @@ assert(name != NULL && !FieldType::is_array(name) && !FieldType::is_obj(name), "invalid class name"); @@ -11533,7 +11819,7 @@ int SystemDictionary::_no_of_classes_unloading = 0; bool SystemDictionary::_should_write_unload_events = false; --- ./hotspot/src/share/vm/classfile/systemDictionary.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/classfile/systemDictionary.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/classfile/systemDictionary.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. @@ -11577,7 +11863,7 @@ static int _no_of_classes_unloading; static bool _should_write_unload_events; --- ./hotspot/src/share/vm/classfile/verifier.cpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/classfile/verifier.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/classfile/verifier.cpp 2014-10-28 20:19:38.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. @@ -11595,7 +11881,189 @@ Bytecodes::Code opcode; while (!bcs.is_last_bytecode()) { // Check for recursive re-verification before each bytecode. -@@ -2239,6 +2242,29 @@ +@@ -2221,6 +2224,181 @@ + } + } + ++// Look at the method's handlers. If the bci is in the handler's try block ++// then check if the handler_pc is already on the stack. If not, push it. ++void ClassVerifier::push_handlers(ExceptionTable* exhandlers, ++ GrowableArray* handler_stack, ++ u4 bci) { ++ int exlength = exhandlers->length(); ++ for(int x = 0; x < exlength; x++) { ++ if (bci >= exhandlers->start_pc(x) && bci < exhandlers->end_pc(x)) { ++ handler_stack->append_if_missing(exhandlers->handler_pc(x)); ++ } ++ } ++} ++ ++// Return TRUE if all code paths starting with start_bc_offset end in ++// bytecode athrow or loop. ++bool ClassVerifier::ends_in_athrow(u4 start_bc_offset) { ++ ResourceMark rm; ++ // Create bytecode stream. ++ RawBytecodeStream bcs(method()); ++ u4 code_length = method()->code_size(); ++ bcs.set_start(start_bc_offset); ++ u4 target; ++ // Create stack for storing bytecode start offsets for if* and *switch. ++ GrowableArray* bci_stack = new GrowableArray(30); ++ // Create stack for handlers for try blocks containing this handler. ++ GrowableArray* handler_stack = new GrowableArray(30); ++ // Create list of visited branch opcodes (goto* and if*). ++ GrowableArray* visited_branches = new GrowableArray(30); ++ ExceptionTable exhandlers(_method()); ++ ++ while (true) { ++ if (bcs.is_last_bytecode()) { ++ // if no more starting offsets to parse or if at the end of the ++ // method then return false. ++ if ((bci_stack->is_empty()) || ((u4)bcs.end_bci() == code_length)) ++ return false; ++ // Pop a bytecode starting offset and scan from there. ++ bcs.set_start(bci_stack->pop()); ++ } ++ Bytecodes::Code opcode = bcs.raw_next(); ++ u4 bci = bcs.bci(); ++ ++ // If the bytecode is in a TRY block, push its handlers so they ++ // will get parsed. ++ push_handlers(&exhandlers, handler_stack, bci); ++ ++ switch (opcode) { ++ case Bytecodes::_if_icmpeq: ++ case Bytecodes::_if_icmpne: ++ case Bytecodes::_if_icmplt: ++ case Bytecodes::_if_icmpge: ++ case Bytecodes::_if_icmpgt: ++ case Bytecodes::_if_icmple: ++ case Bytecodes::_ifeq: ++ case Bytecodes::_ifne: ++ case Bytecodes::_iflt: ++ case Bytecodes::_ifge: ++ case Bytecodes::_ifgt: ++ case Bytecodes::_ifle: ++ case Bytecodes::_if_acmpeq: ++ case Bytecodes::_if_acmpne: ++ case Bytecodes::_ifnull: ++ case Bytecodes::_ifnonnull: ++ target = bcs.dest(); ++ if (visited_branches->contains(bci)) { ++ if (bci_stack->is_empty()) return true; ++ // Pop a bytecode starting offset and scan from there. ++ bcs.set_start(bci_stack->pop()); ++ } else { ++ if (target > bci) { // forward branch ++ if (target >= code_length) return false; ++ // Push the branch target onto the stack. ++ bci_stack->push(target); ++ // then, scan bytecodes starting with next. ++ bcs.set_start(bcs.next_bci()); ++ } else { // backward branch ++ // Push bytecode offset following backward branch onto the stack. ++ bci_stack->push(bcs.next_bci()); ++ // Check bytecodes starting with branch target. ++ bcs.set_start(target); ++ } ++ // Record target so we don't branch here again. ++ visited_branches->append(bci); ++ } ++ break; ++ ++ case Bytecodes::_goto: ++ case Bytecodes::_goto_w: ++ target = (opcode == Bytecodes::_goto ? bcs.dest() : bcs.dest_w()); ++ if (visited_branches->contains(bci)) { ++ if (bci_stack->is_empty()) return true; ++ // Been here before, pop new starting offset from stack. ++ bcs.set_start(bci_stack->pop()); ++ } else { ++ if (target >= code_length) return false; ++ // Continue scanning from the target onward. ++ bcs.set_start(target); ++ // Record target so we don't branch here again. ++ visited_branches->append(bci); ++ } ++ break; ++ ++ // Check that all switch alternatives end in 'athrow' bytecodes. Since it ++ // is difficult to determine where each switch alternative ends, parse ++ // each switch alternative until either hit a 'return', 'athrow', or reach ++ // the end of the method's bytecodes. This is gross but should be okay ++ // because: ++ // 1. tableswitch and lookupswitch byte codes in handlers for ctor explicit ++ // constructor invocations should be rare. ++ // 2. if each switch alternative ends in an athrow then the parsing should be ++ // short. If there is no athrow then it is bogus code, anyway. ++ case Bytecodes::_lookupswitch: ++ case Bytecodes::_tableswitch: ++ { ++ address aligned_bcp = (address) round_to((intptr_t)(bcs.bcp() + 1), jintSize); ++ u4 default_offset = Bytes::get_Java_u4(aligned_bcp) + bci; ++ int keys, delta; ++ if (opcode == Bytecodes::_tableswitch) { ++ jint low = (jint)Bytes::get_Java_u4(aligned_bcp + jintSize); ++ jint high = (jint)Bytes::get_Java_u4(aligned_bcp + 2*jintSize); ++ // This is invalid, but let the regular bytecode verifier ++ // report this because the user will get a better error message. ++ if (low > high) return true; ++ keys = high - low + 1; ++ delta = 1; ++ } else { ++ keys = (int)Bytes::get_Java_u4(aligned_bcp + jintSize); ++ delta = 2; ++ } ++ // Invalid, let the regular bytecode verifier deal with it. ++ if (keys < 0) return true; ++ ++ // Push the offset of the next bytecode onto the stack. ++ bci_stack->push(bcs.next_bci()); ++ ++ // Push the switch alternatives onto the stack. ++ for (int i = 0; i < keys; i++) { ++ u4 target = bci + (jint)Bytes::get_Java_u4(aligned_bcp+(3+i*delta)*jintSize); ++ if (target > code_length) return false; ++ bci_stack->push(target); ++ } ++ ++ // Start bytecode parsing for the switch at the default alternative. ++ if (default_offset > code_length) return false; ++ bcs.set_start(default_offset); ++ break; ++ } ++ ++ case Bytecodes::_return: ++ return false; ++ ++ case Bytecodes::_athrow: ++ { ++ if (bci_stack->is_empty()) { ++ if (handler_stack->is_empty()) { ++ return true; ++ } else { ++ // Parse the catch handlers for try blocks containing athrow. ++ bcs.set_start(handler_stack->pop()); ++ } ++ } else { ++ // Pop a bytecode offset and starting scanning from there. ++ bcs.set_start(bci_stack->pop()); ++ } ++ } ++ break; ++ ++ default: ++ ; ++ } // end switch ++ } // end while loop ++ ++ return false; ++} ++ + void ClassVerifier::verify_invoke_init( + RawBytecodeStream* bcs, u2 ref_class_index, VerificationType ref_class_type, + StackMapFrame* current_frame, u4 code_length, bool *this_uninit, +@@ -2239,6 +2417,37 @@ "Bad method call"); return; } @@ -11607,25 +12075,33 @@ + return; + } + -+ // Make sure that this call is not done from within a TRY block because -+ // that can result in returning an incomplete object. Simply checking -+ // (bci >= start_pc) also ensures that this call is not done after a TRY -+ // block. That is also illegal because this call must be the first Java -+ // statement in the constructor. ++ // Check if this call is done from inside of a TRY block. If so, make ++ // sure that all catch clause paths end in a throw. Otherwise, this ++ // can result in returning an incomplete object. + ExceptionTable exhandlers(_method()); + int exlength = exhandlers.length(); + for(int i = 0; i < exlength; i++) { -+ if (bci >= exhandlers.start_pc(i)) { -+ verify_error(ErrorContext::bad_code(bci), -+ "Bad method call from after the start of a try block"); -+ return; ++ u2 start_pc = exhandlers.start_pc(i); ++ u2 end_pc = exhandlers.end_pc(i); ++ ++ if (bci >= start_pc && bci < end_pc) { ++ if (!ends_in_athrow(exhandlers.handler_pc(i))) { ++ verify_error(ErrorContext::bad_code(bci), ++ "Bad method call from after the start of a try block"); ++ return; ++ } else if (VerboseVerification) { ++ ResourceMark rm; ++ tty->print_cr( ++ "Survived call to ends_in_athrow(): %s", ++ current_class()->name()->as_C_string()); ++ } + } + } + current_frame->initialize_object(type, current_type()); *this_uninit = true; } else if (type.is_uninitialized()) { -@@ -2275,6 +2301,11 @@ +@@ -2275,6 +2484,11 @@ methodOop m = instanceKlass::cast(ref_klass)->uncached_lookup_method( vmSymbols::object_initializer_name(), cp->signature_ref_at(bcs->get_index_u2())); @@ -11638,7 +12114,7 @@ if (m->is_protected() && !mh->is_same_class_package(_klass())) { bool assignable = current_type().is_assignable_from( --- ./hotspot/src/share/vm/classfile/verifier.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/classfile/verifier.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/classfile/verifier.hpp 2014-10-28 20:19:38.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. @@ -11646,7 +12122,15 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -256,6 +256,9 @@ +@@ -30,6 +30,7 @@ + #include "oops/klass.hpp" + #include "oops/methodOop.hpp" + #include "runtime/handles.hpp" ++#include "utilities/growableArray.hpp" + #include "utilities/exceptions.hpp" + + // The verifier class +@@ -256,6 +257,9 @@ ErrorContext _error_context; // contains information about an error @@ -11656,7 +12140,24 @@ void verify_method(methodHandle method, TRAPS); char* generate_code_data(methodHandle m, u4 code_length, TRAPS); void verify_exception_handler_table(u4 code_length, char* code_data, -@@ -398,6 +401,20 @@ +@@ -301,6 +305,16 @@ + StackMapFrame* current_frame, u4 code_length, bool* this_uninit, + constantPoolHandle cp, TRAPS); + ++ // Used by ends_in_athrow() to push all handlers that contain bci onto ++ // the handler_stack, if the handler is not already on the stack. ++ void push_handlers(ExceptionTable* exhandlers, ++ GrowableArray* handler_stack, ++ u4 bci); ++ ++ // Returns true if all paths starting with start_bc_offset end in athrow ++ // bytecode or loop. ++ bool ends_in_athrow(u4 start_bc_offset); ++ + void verify_invoke_instructions( + RawBytecodeStream* bcs, u4 code_length, StackMapFrame* current_frame, + bool* this_uninit, VerificationType return_type, +@@ -398,6 +412,20 @@ Symbol* create_temporary_symbol(const char *s, int length, TRAPS); TypeOrigin ref_ctx(const char* str, TRAPS); @@ -11678,7 +12179,7 @@ inline int ClassVerifier::change_sig_to_verificationType( --- ./hotspot/src/share/vm/classfile/vmSymbols.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/classfile/vmSymbols.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/classfile/vmSymbols.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. @@ -11703,7 +12204,7 @@ template(forName0_name, "forName0") \ template(isJavaIdentifierStart_name, "isJavaIdentifierStart") \ --- ./hotspot/src/share/vm/code/nmethod.cpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/code/nmethod.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/code/nmethod.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -676,6 +676,7 @@ code_buffer->copy_oops_to(this); if (ScavengeRootsInCode && detect_scavenge_root_oops()) { @@ -11784,7 +12285,7 @@ // If the method is not entrant or zombie then a JMP is plastered over the // first few bytes. If an oop in the old code was there, that oop --- ./hotspot/src/share/vm/code/nmethod.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/code/nmethod.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/code/nmethod.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -548,8 +548,8 @@ void preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, @@ -11797,7 +12298,7 @@ void verify_scavenge_root_oops() PRODUCT_RETURN; --- ./hotspot/src/share/vm/code/relocInfo.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/code/relocInfo.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/code/relocInfo.hpp 2014-10-28 20:19:39.000000000 -0700 @@ -371,7 +371,7 @@ // "immediate" in the prefix header word itself. This optimization // is invisible outside this module.) @@ -11817,7 +12318,7 @@ return relocInfo(relocInfo::data_prefix_tag, relocInfo::RAW_BITS, relocInfo::datalen_tag | datalen); } --- ./hotspot/src/share/vm/compiler/compileBroker.cpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/compiler/compileBroker.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/compiler/compileBroker.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved. @@ -11834,7 +12335,7 @@ size_t maxLen = CompilerCounters::cmname_buffer_length; --- ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -58,8 +58,22 @@ MarkRefsIntoClosure(MemRegion span, CMSBitMap* bitMap); virtual void do_oop(oop* p); @@ -11861,7 +12362,7 @@ Prefetch::style prefetch_style() { return Prefetch::do_read; --- ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -575,6 +575,7 @@ _restart_addr(NULL), _overflow_list(NULL), @@ -12376,7 +12877,7 @@ } - --- ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -516,6 +516,8 @@ friend class ConcurrentMarkSweepThread; friend class ConcurrentMarkSweepGeneration; @@ -12432,7 +12933,7 @@ // Printing const char* name() const; --- ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmCMSOperations.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. @@ -12477,7 +12978,7 @@ #ifndef USDT2 HS_DTRACE_PROBE(hs_private, cms__remark__end); --- ./hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -114,6 +114,14 @@ } } @@ -12502,7 +13003,7 @@ + return _threads[worker_thread_num()]; +} --- ./hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/concurrentG1Refine.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -35,6 +35,7 @@ class G1CollectedHeap; class G1HotCardCache; @@ -12529,7 +13030,7 @@ void print_worker_threads_on(outputStream* st) const; --- ./hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -1154,10 +1154,9 @@ if (VerifyDuringGC) { @@ -12735,7 +13236,7 @@ _out->cr(); } --- ./hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -1224,6 +1224,12 @@ size_t _hum_prev_live_bytes; size_t _hum_next_live_bytes; @@ -12750,7 +13251,7 @@ if (total == 0) { return 0.0; --- ./hotspot/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp 2013-09-06 11:22:10.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -81,7 +81,7 @@ size_t* marked_bytes_array, BitMap* task_card_bm) { @@ -12761,7 +13262,7 @@ HeapWord* start = mr.start(); HeapWord* end = mr.end(); --- ./hotspot/src/share/vm/gc_implementation/g1/g1CardCounts.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1CardCounts.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1CardCounts.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -65,9 +65,7 @@ // threshold limit is no more than this. guarantee(G1ConcRSHotCardLimit <= max_jubyte, "sanity"); @@ -12774,7 +13275,7 @@ // Allocate/Reserve the counts table --- ./hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -23,6 +23,7 @@ */ @@ -13908,7 +14409,7 @@ + CodeCache::blobs_do(&blob_cl); +} --- ./hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -31,6 +31,7 @@ #include "gc_implementation/g1/g1HRPrinter.hpp" #include "gc_implementation/g1/g1MonitoringSupport.hpp" @@ -14229,7 +14730,7 @@ template void immediate_rs_update(HeapRegion* from, T* p, int tid) { if (!from->is_survivor()) { --- ./hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -29,6 +29,7 @@ #include "gc_implementation/g1/g1CollectedHeap.hpp" #include "gc_implementation/g1/g1AllocRegion.inline.hpp" @@ -14248,7 +14749,7 @@ inline RefToScanQueue* G1CollectedHeap::task_queue(int i) const { --- ./hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -310,7 +310,8 @@ void G1CollectorPolicy::initialize_flags() { set_min_alignment(HeapRegion::GrainBytes); @@ -14260,7 +14761,7 @@ vm_exit_during_initialization("Invalid survivor ratio specified"); } --- ./hotspot/src/share/vm/gc_implementation/g1/g1EvacFailure.hpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1EvacFailure.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1EvacFailure.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -41,11 +41,11 @@ private: G1CollectedHeap* _g1; @@ -14276,7 +14777,7 @@ virtual void do_oop(narrowOop* p) { do_oop_work(p); } virtual void do_oop( oop* p) { do_oop_work(p); } --- ./hotspot/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -161,6 +161,8 @@ _last_update_rs_times_ms(_max_gc_threads, "%.1lf"), _last_update_rs_processed_buffers(_max_gc_threads, "%d"), @@ -14356,7 +14857,7 @@ double misc_time_ms = pause_time_sec * MILLIUNITS - accounted_time_ms(); print_stats(1, "Other", misc_time_ms); --- ./hotspot/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1GCPhaseTimes.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -119,6 +119,8 @@ WorkerDataArray _last_update_rs_times_ms; WorkerDataArray _last_update_rs_processed_buffers; @@ -14416,7 +14917,7 @@ return _last_obj_copy_times_ms.average(); } --- ./hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -177,10 +177,8 @@ GenMarkSweep::follow_mdo_weak_refs(); assert(GenMarkSweep::_marking_stack.is_empty(), "just drained"); @@ -14467,7 +14968,7 @@ _humongous_proxy_set("G1MarkSweep Humongous Proxy Set") { } --- ./hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1RemSet.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -34,6 +34,7 @@ #include "gc_implementation/g1/g1OopClosures.inline.hpp" #include "gc_implementation/g1/g1RemSet.inline.hpp" @@ -14761,7 +15262,7 @@ _g1->set_refine_cte_cl_concurrency(false); if (SafepointSynchronize::is_at_safepoint()) { --- ./hotspot/src/share/vm/gc_implementation/g1/g1RemSet.hpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1RemSet.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1RemSet.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -25,6 +25,8 @@ #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_HPP #define SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSET_HPP @@ -14858,7 +15359,7 @@ class CountNonCleanMemRegionClosure: public MemRegionClosure { --- ./hotspot/src/share/vm/gc_implementation/g1/g1RemSetSummary.cpp 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1RemSetSummary.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1RemSetSummary.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,354 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -15215,7 +15716,7 @@ + blk.print_summary_on(out); +} --- ./hotspot/src/share/vm/gc_implementation/g1/g1RemSetSummary.hpp 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1RemSetSummary.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1RemSetSummary.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -15336,7 +15837,7 @@ + +#endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1REMSETSUMMARY_HPP --- ./hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -76,6 +76,46 @@ } } @@ -15460,7 +15961,7 @@ } } --- ./hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -37,7 +37,14 @@ // snapshot-at-the-beginning marking. @@ -15523,7 +16024,7 @@ // Adds card-table logging to the post-barrier. --- ./hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -71,6 +71,9 @@ diagnostic(bool, G1TraceConcRefinement, false, \ "Trace G1 concurrent refinement") \ @@ -15551,7 +16052,7 @@ G1_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG, DECLARE_MANAGEABLE_FLAG, DECLARE_PRODUCT_RW_FLAG) --- ./hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -23,6 +23,7 @@ */ @@ -16068,7 +16569,7 @@ // G1OffsetTableContigSpace code; copied from space.cpp. Hope this can go --- ./hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -51,6 +51,7 @@ class HeapRegionRemSetIterator; class HeapRegion; @@ -16114,7 +16615,7 @@ void print_on(outputStream* st) const; --- ./hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -33,6 +33,7 @@ #include "oops/oop.inline.hpp" #include "utilities/bitMap.inline.hpp" @@ -16289,7 +16790,7 @@ HeapRegionRemSetIterator:: --- ./hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -37,6 +37,7 @@ class HeapRegionRemSetIterator; class PerRegionTable; @@ -16363,7 +16864,7 @@ // Called during a stop-world phase to perform any deferred cleanups. --- ./hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -79,6 +79,10 @@ void reset() { if (_buf != NULL) _index = _sz; } @@ -16376,7 +16877,7 @@ void enqueue(void* ptr) { if (!_active) return; --- ./hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -923,7 +923,7 @@ GenCollectedHeap* gch = GenCollectedHeap::heap(); @@ -16396,7 +16897,7 @@ gc_tracer.report_gc_end(_gc_timer->gc_end(), _gc_timer->time_partitions()); } --- ./hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -90,14 +90,16 @@ og_min_size, og_max_size, yg_min_size, yg_max_size); @@ -16450,7 +16951,7 @@ ReservedHeapSpace heap_rs1(pg_max_size, pg_align, og_max_size + yg_max_size, og_align, addr); --- ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -24,6 +24,7 @@ #include "precompiled.hpp" @@ -16518,7 +17019,7 @@ + +#endif /* !PRODUCT */ --- ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -238,7 +238,6 @@ void major_collection_begin(); void major_collection_end(size_t amount_live, GCCause::Cause gc_cause); @@ -16541,7 +17042,7 @@ size_t average_old_live_in_bytes() const { return (size_t) avg_old_live()->average(); --- ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -116,7 +116,7 @@ assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity"); GCCause::Cause gc_cause = heap->gc_cause(); @@ -16581,7 +17082,7 @@ _gc_tracer->report_gc_end(_gc_timer->gc_end(), _gc_timer->time_partitions()); --- ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. @@ -16628,7 +17129,7 @@ _gc_tracer.report_dense_prefix(dense_prefix(old_space_id)); _gc_tracer.report_gc_end(_gc_timer.gc_end(), _gc_timer.time_partitions()); --- ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2013-09-06 11:22:11.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -266,7 +266,7 @@ assert(_preserved_mark_stack.is_empty(), "should be empty"); assert(_preserved_oop_stack.is_empty(), "should be empty"); @@ -16708,7 +17209,7 @@ _gc_tracer.report_gc_end(_gc_timer.gc_end(), _gc_timer.time_partitions()); --- ./hotspot/src/share/vm/gc_implementation/shared/gcTimer.cpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/shared/gcTimer.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/shared/gcTimer.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. @@ -16907,7 +17408,7 @@ assert(!iter.has_next(), "Too many elements"); } --- ./hotspot/src/share/vm/gc_implementation/shared/gcTimer.hpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/shared/gcTimer.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/shared/gcTimer.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -28,6 +28,7 @@ #include "memory/allocation.hpp" #include "prims/jni_md.h" @@ -17031,7 +17532,7 @@ class TimePartitionPhasesIterator { --- ./hotspot/src/share/vm/gc_implementation/shared/gcTrace.cpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/shared/gcTrace.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/shared/gcTrace.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -33,6 +33,7 @@ #include "memory/referenceProcessorStats.hpp" #include "runtime/os.hpp" @@ -17135,7 +17636,7 @@ YoungGCTracer::report_gc_end_impl(timestamp, time_partitions); --- ./hotspot/src/share/vm/gc_implementation/shared/gcTrace.hpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/shared/gcTrace.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/shared/gcTrace.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -34,6 +34,7 @@ #ifndef SERIALGC #include "gc_implementation/g1/g1YCTypes.hpp" @@ -17269,7 +17770,7 @@ void report_evacuation_failed(EvacuationFailedInfo& ef_info); --- ./hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/shared/gcTraceSend.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -28,8 +28,10 @@ #include "gc_implementation/shared/gcTrace.hpp" #include "gc_implementation/shared/gcWhen.hpp" @@ -17291,7 +17792,7 @@ } } --- ./hotspot/src/share/vm/gc_implementation/shared/gcTraceTime.cpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/shared/gcTraceTime.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/shared/gcTraceTime.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. @@ -17345,7 +17846,7 @@ gclog_or_tty->flush(); } --- ./hotspot/src/share/vm/gc_implementation/shared/gcTraceTime.hpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/shared/gcTraceTime.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/shared/gcTraceTime.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -26,6 +26,7 @@ #define SHARE_VM_GC_IMPLEMENTATION_SHARED_GCTRACETIME_HPP @@ -17364,7 +17865,7 @@ public: GCTraceTime(const char* title, bool doit, bool print_cr, GCTimer* timer); --- ./hotspot/src/share/vm/gc_implementation/shared/objectCountEventSender.cpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/shared/objectCountEventSender.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/shared/objectCountEventSender.cpp 2014-07-15 21:48:36.000000000 -0700 @@ -28,8 +28,10 @@ #include "memory/heapInspection.hpp" #include "trace/tracing.hpp" @@ -17387,7 +17888,7 @@ bool ObjectCountEventSender::should_send_event() { --- ./hotspot/src/share/vm/gc_implementation/shared/objectCountEventSender.hpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_implementation/shared/objectCountEventSender.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_implementation/shared/objectCountEventSender.hpp 2014-07-15 21:48:36.000000000 -0700 @@ -29,10 +29,11 @@ #include "memory/allocation.hpp" @@ -17402,7 +17903,7 @@ }; --- ./hotspot/src/share/vm/gc_interface/collectedHeap.cpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_interface/collectedHeap.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_interface/collectedHeap.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -121,6 +121,14 @@ } } @@ -17419,7 +17920,7 @@ const GCHeapSummary& heap_summary = create_heap_summary(); const PermGenSummary& perm_summary = create_perm_gen_summary(); --- ./hotspot/src/share/vm/gc_interface/collectedHeap.hpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/gc_interface/collectedHeap.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/gc_interface/collectedHeap.hpp 2014-07-15 21:48:36.000000000 -0700 @@ -49,6 +49,7 @@ class Thread; class ThreadClosure; @@ -17441,7 +17942,7 @@ void trace_heap_after_gc(GCTracer* gc_tracer); --- ./hotspot/src/share/vm/interpreter/interpreterRuntime.cpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/interpreter/interpreterRuntime.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/interpreter/interpreterRuntime.cpp 2014-07-15 21:48:33.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. @@ -17475,7 +17976,7 @@ + } +IRT_END --- ./hotspot/src/share/vm/interpreter/interpreterRuntime.hpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/interpreter/interpreterRuntime.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/interpreter/interpreterRuntime.hpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -17491,8 +17992,104 @@ static void throw_pending_exception(JavaThread* thread); // Statics & fields +--- ./hotspot/src/share/vm/interpreter/linkResolver.cpp 2013-09-06 11:22:12.000000000 -0700 ++++ ./hotspot/src/share/vm/interpreter/linkResolver.cpp 2014-10-28 20:19:39.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1997, 2014, 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 +@@ -187,6 +187,14 @@ + + void LinkResolver::lookup_method_in_klasses(methodHandle& result, KlassHandle klass, Symbol* name, Symbol* signature, TRAPS) { + methodOop result_oop = klass->uncached_lookup_method(name, signature); ++ ++ //JDK 7 does not support default methods, but this code ported from JDK8 to keep code consistent for all JDK. ++ if (klass->oop_is_array()) { ++ // Only consider klass and super klass for arrays ++ result = methodHandle(THREAD, result_oop); ++ return; ++ } ++ + if (EnableInvokeDynamic && result_oop != NULL) { + vmIntrinsics::ID iid = result_oop->intrinsic_id(); + if (MethodHandles::is_signature_polymorphic(iid)) { +@@ -421,7 +429,7 @@ + // 2. lookup method in resolved klass and its super klasses + lookup_method_in_klasses(resolved_method, resolved_klass, method_name, method_signature, CHECK); + +- if (resolved_method.is_null()) { // not found in the class hierarchy ++ if (resolved_method.is_null() && !resolved_klass->oop_is_array()) { // not found in the class hierarchy + // 3. lookup method in all the interfaces implemented by the resolved klass + lookup_method_in_interfaces(resolved_method, resolved_klass, method_name, method_signature, CHECK); + +@@ -434,16 +442,16 @@ + CLEAR_PENDING_EXCEPTION; + } + } ++ } + +- if (resolved_method.is_null()) { +- // 4. method lookup failed +- ResourceMark rm(THREAD); +- THROW_MSG_CAUSE(vmSymbols::java_lang_NoSuchMethodError(), +- methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()), +- method_name, +- method_signature), +- nested_exception); +- } ++ if (resolved_method.is_null()) { ++ // 4. method lookup failed ++ ResourceMark rm(THREAD); ++ THROW_MSG_CAUSE(vmSymbols::java_lang_NoSuchMethodError(), ++ methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()), ++ method_name, ++ method_signature), ++ nested_exception); + } + + // 5. check if method is concrete +@@ -514,17 +522,18 @@ + // lookup method in this interface or its super, java.lang.Object + lookup_instance_method_in_klasses(resolved_method, resolved_klass, method_name, method_signature, CHECK); + +- if (resolved_method.is_null()) { ++ if (resolved_method.is_null() && !resolved_klass->oop_is_array()) { + // lookup method in all the super-interfaces + lookup_method_in_interfaces(resolved_method, resolved_klass, method_name, method_signature, CHECK); +- if (resolved_method.is_null()) { +- // no method found +- ResourceMark rm(THREAD); +- THROW_MSG(vmSymbols::java_lang_NoSuchMethodError(), +- methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()), +- method_name, +- method_signature)); +- } ++ } ++ ++ if (resolved_method.is_null()) { ++ // no method found ++ ResourceMark rm(THREAD); ++ THROW_MSG(vmSymbols::java_lang_NoSuchMethodError(), ++ methodOopDesc::name_and_sig_as_C_string(Klass::cast(resolved_klass()), ++ method_name, ++ method_signature)); + } + + if (check_access) { +@@ -614,7 +623,7 @@ + + // Resolve instance field + fieldDescriptor fd; // find_field initializes fd if found +- KlassHandle sel_klass(THREAD, instanceKlass::cast(resolved_klass())->find_field(field, sig, &fd)); ++ KlassHandle sel_klass(THREAD, resolved_klass->find_field(field, sig, &fd)); + // check if field exists; i.e., if a klass containing the field def has been selected + if (sel_klass.is_null()){ + ResourceMark rm(THREAD); --- ./hotspot/src/share/vm/memory/cardTableModRefBS.cpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/memory/cardTableModRefBS.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/memory/cardTableModRefBS.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -400,60 +400,6 @@ inline_write_ref_field(field, newVal); } @@ -17555,7 +18152,7 @@ void CardTableModRefBS::non_clean_card_iterate_possibly_parallel(Space* sp, MemRegion mr, --- ./hotspot/src/share/vm/memory/cardTableModRefBS.hpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/memory/cardTableModRefBS.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/memory/cardTableModRefBS.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -344,34 +344,10 @@ _byte_map[card_index] = dirty_card_val(); } @@ -17592,7 +18189,7 @@ // This would be the 0th element of _byte_map, if the heap started at 0x0. // But since the heap starts at some higher address, this points to somewhere --- ./hotspot/src/share/vm/memory/collectorPolicy.cpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/memory/collectorPolicy.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -230,6 +230,8 @@ alignment = lcm(os::large_page_size(), alignment); } @@ -17603,7 +18200,7 @@ } --- ./hotspot/src/share/vm/memory/defNewGeneration.cpp 2013-09-06 11:22:12.000000000 -0700 -+++ ./hotspot/src/share/vm/memory/defNewGeneration.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/memory/defNewGeneration.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. @@ -17661,7 +18258,7 @@ void DefNewGeneration::gc_prologue(bool full) { --- ./hotspot/src/share/vm/memory/genCollectedHeap.cpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/memory/genCollectedHeap.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/memory/genCollectedHeap.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -99,17 +99,19 @@ guarantee(HeapWordSize == wordSize, "HeapWordSize must equal wordSize"); @@ -17810,7 +18407,7 @@ #endif --- ./hotspot/src/share/vm/memory/generation.cpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/memory/generation.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/memory/generation.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. @@ -17839,7 +18436,7 @@ SpecializationStats::print(); } --- ./hotspot/src/share/vm/memory/generation.hpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/memory/generation.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/memory/generation.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -457,6 +457,7 @@ // expected to be GC worker thread-local, with the worker index // indicated by "thr_num". @@ -17849,7 +18446,7 @@ // Some generations may require some cleanup actions before allowing // a verification. --- ./hotspot/src/share/vm/memory/iterator.cpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/memory/iterator.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/memory/iterator.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -70,7 +70,7 @@ } @@ -17860,7 +18457,7 @@ void CodeBlobToOopClosure::do_code_blob(CodeBlob* cb) { --- ./hotspot/src/share/vm/memory/sharedHeap.cpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/memory/sharedHeap.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/memory/sharedHeap.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -64,7 +64,8 @@ } _sh = this; // ch is static, should be set only once. @@ -17891,7 +18488,7 @@ // visit all of the CodeCache, collect from the non-perm roots if any. // This makes the code cache function temporarily as a source of strong --- ./hotspot/src/share/vm/memory/sharedHeap.hpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/memory/sharedHeap.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/memory/sharedHeap.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -267,7 +267,8 @@ ScanningOption so, OopClosure* roots, @@ -17903,7 +18500,7 @@ // Apply "blk" to all the weak roots of the system. These include // JNI weak roots, the code cache, system dictionary, symbol table, --- ./hotspot/src/share/vm/memory/universe.cpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/memory/universe.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/memory/universe.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -826,17 +826,23 @@ // 32Gb // OopEncodingHeapMax == NarrowOopHeapMax << LogMinObjAlignmentInBytes; @@ -17964,7 +18561,7 @@ SymbolTable::verify(); if (!silent) gclog_or_tty->print("strs "); --- ./hotspot/src/share/vm/memory/universe.hpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/memory/universe.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/memory/universe.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -380,7 +380,7 @@ static NARROW_OOP_MODE narrow_oop_mode(); @@ -17992,8 +18589,59 @@ } static int verify_count() { return _verify_count; } +--- ./hotspot/src/share/vm/oops/arrayKlass.cpp 2013-09-06 11:22:13.000000000 -0700 ++++ ./hotspot/src/share/vm/oops/arrayKlass.cpp 2014-10-28 20:19:38.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1997, 2014, 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 +@@ -64,6 +64,13 @@ + return NULL; + } + ++// find field according to JVM spec 5.4.3.2, returns the klass in which the field is defined ++klassOop arrayKlass::find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const { ++ // There are no fields in an array klass but look to the super class (Object) ++ assert(super(), "super klass must be present"); ++ return Klass::cast(super())->find_field(name, sig, fd); ++} ++ + methodOop arrayKlass::uncached_lookup_method(Symbol* name, Symbol* signature) const { + // There are no methods in an array klass but the super class (Object) has some + assert(super(), "super klass must be present"); +--- ./hotspot/src/share/vm/oops/arrayKlass.hpp 2013-09-06 11:22:13.000000000 -0700 ++++ ./hotspot/src/share/vm/oops/arrayKlass.hpp 2014-10-28 20:19:38.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1997, 2014, 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 +@@ -30,6 +30,8 @@ + #include "oops/klassOop.hpp" + #include "oops/klassVtable.hpp" + ++class fieldDescriptor; ++ + // arrayKlass is the abstract baseclass for all array classes + + class arrayKlass: public Klass { +@@ -83,6 +85,9 @@ + virtual oop multi_allocate(int rank, jint* sizes, TRAPS); + objArrayOop allocate_arrayArray(int n, int length, TRAPS); + ++ // find field according to JVM spec 5.4.3.2, returns the klass in which the field is defined ++ klassOop find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const; ++ + // Lookup operations + methodOop uncached_lookup_method(Symbol* name, Symbol* signature) const; + --- ./hotspot/src/share/vm/oops/constantPoolOop.cpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/oops/constantPoolOop.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/oops/constantPoolOop.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. @@ -18249,7 +18897,7 @@ const char* constantPoolOopDesc::printable_name_at(int which) { --- ./hotspot/src/share/vm/oops/constantPoolOop.hpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/oops/constantPoolOop.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/oops/constantPoolOop.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -18314,7 +18962,7 @@ int find_matching_entry(int pattern_i, constantPoolHandle search_cp, TRAPS); int orig_length() const { return _orig_length; } --- ./hotspot/src/share/vm/oops/instanceKlass.cpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/oops/instanceKlass.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/oops/instanceKlass.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. @@ -18372,7 +19020,7 @@ #ifndef PRODUCT --- ./hotspot/src/share/vm/oops/instanceKlass.hpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/oops/instanceKlass.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/oops/instanceKlass.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. @@ -18409,8 +19057,58 @@ public: // JVMTI support jint jvmti_class_status() const; +--- ./hotspot/src/share/vm/oops/klass.cpp 2013-09-06 11:22:13.000000000 -0700 ++++ ./hotspot/src/share/vm/oops/klass.cpp 2014-10-28 20:19:38.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1997, 2014, 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 +@@ -119,6 +119,15 @@ + return is_subclass_of(k); + } + ++klassOop Klass::find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const { ++#ifdef ASSERT ++ tty->print_cr("Error: find_field called on a klass oop." ++ " Likely error: reflection method does not correctly" ++ " wrap return value in a mirror object."); ++#endif ++ ShouldNotReachHere(); ++ return NULL; ++} + + methodOop Klass::uncached_lookup_method(Symbol* name, Symbol* signature) const { + #ifdef ASSERT +--- ./hotspot/src/share/vm/oops/klass.hpp 2013-09-06 11:22:13.000000000 -0700 ++++ ./hotspot/src/share/vm/oops/klass.hpp 2014-10-28 20:19:38.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1997, 2014, 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 +@@ -88,6 +88,7 @@ + class klassVtable; + class KlassHandle; + class OrderAccess; ++class fieldDescriptor; + + // Holder (or cage) for the C++ vtable of each kind of Klass. + // We want to tightly constrain the location of the C++ vtable in the overall layout. +@@ -514,6 +515,7 @@ + virtual void initialize(TRAPS); + // lookup operation for MethodLookupCache + friend class MethodLookupCache; ++ virtual klassOop find_field(Symbol* name, Symbol* signature, fieldDescriptor* fd) const; + virtual methodOop uncached_lookup_method(Symbol* name, Symbol* signature) const; + public: + methodOop lookup_method(Symbol* name, Symbol* signature) const { --- ./hotspot/src/share/vm/oops/klassVtable.cpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/oops/klassVtable.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/oops/klassVtable.cpp 2014-07-15 21:54:40.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. @@ -18465,7 +19163,7 @@ // a new entry ResourceMark rm; --- ./hotspot/src/share/vm/oops/objArrayKlass.cpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/oops/objArrayKlass.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/oops/objArrayKlass.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -149,7 +149,7 @@ if (element_is_null || Klass::cast((new_val->klass()))->is_subtype_of(bound)) { @@ -18476,7 +19174,7 @@ // We must do a barrier to cover the partial copy. const size_t pd = pointer_delta(p, dst, (size_t)heapOopSize); --- ./hotspot/src/share/vm/opto/bytecodeInfo.cpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/bytecodeInfo.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/bytecodeInfo.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -103,7 +103,7 @@ // Allows targeted inlining if(callee_method->should_inline()) { @@ -18523,7 +19221,7 @@ tty->print_cr(" \\-> discounting inline depth"); } --- ./hotspot/src/share/vm/opto/c2_globals.hpp 2013-09-06 11:22:13.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/c2_globals.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/c2_globals.hpp 2014-10-28 20:19:39.000000000 -0700 @@ -173,6 +173,9 @@ product_pd(intx, LoopUnrollLimit, \ "Unroll loop bodies with node count less than this") \ @@ -18535,7 +19233,7 @@ "Minimum number of unroll loop bodies before checking progress" \ "of rounds of unroll,optimize,..") \ --- ./hotspot/src/share/vm/opto/callGenerator.hpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/callGenerator.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/callGenerator.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -158,8 +158,9 @@ virtual void print_inlining_late(const char* msg) { ShouldNotReachHere(); } @@ -18548,7 +19246,7 @@ }; --- ./hotspot/src/share/vm/opto/coalesce.cpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/coalesce.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/coalesce.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -135,20 +135,26 @@ // After cloning some rematerialized instruction, clone any MachProj's that // follow it. Example: Intel zero is XOR, kills flags. Sparc FP constants @@ -18601,7 +19299,7 @@ const RegMask *rm = C->matcher()->idealreg2spillmask[m->ideal_reg()]; copy = new (C) MachSpillCopyNode( m, *rm, *rm ); --- ./hotspot/src/share/vm/opto/compile.cpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/compile.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/compile.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -642,7 +642,7 @@ _inlining_progress(false), _inlining_incrementally(false), @@ -18738,7 +19436,7 @@ } } --- ./hotspot/src/share/vm/opto/compile.hpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/compile.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/compile.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -18869,7 +19567,7 @@ static void print_statistics() PRODUCT_RETURN; --- ./hotspot/src/share/vm/opto/doCall.cpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/doCall.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/doCall.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -42,9 +42,9 @@ #include "runtime/sharedRuntime.hpp" @@ -18883,8 +19581,26 @@ method->print_short_name(); tty->cr(); --- ./hotspot/src/share/vm/opto/graphKit.cpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/graphKit.cpp 2014-07-15 23:24:54.000000000 -0700 -@@ -3596,7 +3596,7 @@ ++++ ./hotspot/src/share/vm/opto/graphKit.cpp 2014-10-28 20:19:37.000000000 -0700 +@@ -1120,6 +1120,17 @@ + } + return _gvn.transform( new (C) ConvI2LNode(offset)); + } ++ ++Node* GraphKit::ConvI2UL(Node* offset) { ++ juint offset_con = (juint) find_int_con(offset, Type::OffsetBot); ++ if (offset_con != (juint) Type::OffsetBot) { ++ return longcon((julong) offset_con); ++ } ++ Node* conv = _gvn.transform( new (C) ConvI2LNode(offset)); ++ Node* mask = _gvn.transform( ConLNode::make(C, (julong) max_juint) ); ++ return _gvn.transform( new (C) AndLNode(conv, mask) ); ++} ++ + Node* GraphKit::ConvL2I(Node* offset) { + // short-circuit a common case + jlong offset_con = find_long_con(offset, (jlong)Type::OffsetBot); +@@ -3596,7 +3607,7 @@ Node* marking = __ load(__ ctrl(), marking_adr, TypeInt::INT, active_type, Compile::AliasIdxRaw); // if (!marking) @@ -18893,7 +19609,7 @@ BasicType index_bt = TypeX_X->basic_type(); assert(sizeof(size_t) == type2aelembytes(index_bt), "Loading G1 PtrQueue::_index with wrong size."); Node* index = __ load(__ ctrl(), index_adr, TypeX_X, index_bt, Compile::AliasIdxRaw); -@@ -3604,7 +3604,7 @@ +@@ -3604,7 +3615,7 @@ if (do_load) { // load original value // alias_idx correct?? @@ -18902,7 +19618,7 @@ } // if (pre_val != NULL) -@@ -3701,7 +3701,8 @@ +@@ -3701,7 +3712,8 @@ Node* no_base = __ top(); float likely = PROB_LIKELY(0.999); float unlikely = PROB_UNLIKELY(0.999); @@ -18912,7 +19628,7 @@ Node* zeroX = __ ConX(0); // Get the alias_index for raw card-mark memory -@@ -3757,8 +3758,16 @@ +@@ -3757,8 +3769,16 @@ // load the original value of the card Node* card_val = __ load(__ ctrl(), card_adr, TypeInt::INT, T_BYTE, Compile::AliasIdxRaw); @@ -18931,8 +19647,18 @@ } __ end_if(); } __ end_if(); } __ end_if(); +--- ./hotspot/src/share/vm/opto/graphKit.hpp 2013-09-06 11:22:14.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/graphKit.hpp 2014-10-28 20:19:37.000000000 -0700 +@@ -338,6 +338,7 @@ + // Convert between int and long, and size_t. + // (See macros ConvI2X, etc., in type.hpp for ConvI2X, etc.) + Node* ConvI2L(Node* offset); ++ Node* ConvI2UL(Node* offset); + Node* ConvL2I(Node* offset); + // Find out the klass of an object. + Node* load_object_klass(Node* object); --- ./hotspot/src/share/vm/opto/library_call.cpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/library_call.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/library_call.cpp 2014-10-28 20:19:37.000000000 -0700 @@ -525,7 +525,7 @@ Compile* C = kit.C; int nodes = C->unique(); @@ -18996,6 +19722,15 @@ tty->print(" from base type: "); adr_type->dump(); tty->print(" sharpened value: "); tjp->dump(); } +@@ -2432,7 +2432,7 @@ + case T_ADDRESS: + // Cast to an int type. + p = _gvn.transform(new (C) CastP2XNode(NULL, p)); +- p = ConvX2L(p); ++ p = ConvX2UL(p); + break; + default: + fatal(err_msg_res("unexpected type %d: %s", type, type2name(type))); @@ -3158,7 +3158,7 @@ if (mirror_con == NULL) return false; // cannot happen? @@ -19060,7 +19795,7 @@ tty->print_cr(" JVM state at this point:"); for (int i = _depth; i >= 1; i--) { --- ./hotspot/src/share/vm/opto/loopTransform.cpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/loopTransform.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/loopTransform.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -623,8 +623,6 @@ } @@ -19089,7 +19824,7 @@ // but NOT before the pre-loop. _igvn.replace_input_of(cd, 0, ctrl); // ctrl, not NULL --- ./hotspot/src/share/vm/opto/matcher.cpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/matcher.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/matcher.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -464,17 +464,17 @@ C->FIRST_STACK_mask().Clear(); @@ -19152,7 +19887,7 @@ assert(aligned_stack_mask.is_AllStack(), "should be infinite stack"); *idealreg2spillmask[Op_VecY] = *idealreg2regmask[Op_VecY]; --- ./hotspot/src/share/vm/opto/memnode.cpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/memnode.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/memnode.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -1957,6 +1957,11 @@ if (t != NULL) { // constant oop => constant klass @@ -19166,7 +19901,7 @@ } if (!t->is_klass()) { --- ./hotspot/src/share/vm/opto/memnode.hpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/memnode.hpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/memnode.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -204,6 +204,17 @@ protected: const Type* load_array_final_field(const TypeKlassPtr *tkls, @@ -19220,7 +19955,7 @@ //------------------------------LoadKlassNode---------------------------------- --- ./hotspot/src/share/vm/opto/output.cpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/output.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/output.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -345,6 +345,11 @@ uint* jmp_offset = NEW_RESOURCE_ARRAY(uint,nblocks); uint* jmp_size = NEW_RESOURCE_ARRAY(uint,nblocks); @@ -19260,8 +19995,41 @@ offset -= nop_size; --- ./hotspot/src/share/vm/opto/reg_split.cpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/opto/reg_split.cpp 2014-07-15 23:24:54.000000000 -0700 -@@ -391,10 +391,15 @@ ++++ ./hotspot/src/share/vm/opto/reg_split.cpp 2014-10-28 20:19:37.000000000 -0700 +@@ -51,15 +51,6 @@ + + static const char out_of_nodes[] = "out of nodes during split"; + +-static bool contains_no_live_range_input(const Node* def) { +- for (uint i = 1; i < def->req(); ++i) { +- if (def->in(i) != NULL && def->in_RegMask(i).is_NotEmpty()) { +- return false; +- } +- } +- return true; +-} +- + //------------------------------get_spillcopy_wide----------------------------- + // Get a SpillCopy node with wide-enough masks. Use the 'wide-mask', the + // wide ideal-register spill-mask if possible. If the 'wide-mask' does +@@ -326,10 +317,13 @@ + if( def->req() > 1 ) { + for( uint i = 1; i < def->req(); i++ ) { + Node *in = def->in(i); +- // Check for single-def (LRG cannot redefined) + uint lidx = n2lidx(in); +- if( lidx >= _maxlrg ) continue; // Value is a recent spill-copy +- if (lrgs(lidx).is_singledef()) continue; ++ // We do not need this for live ranges that are only defined once. ++ // However, this is not true for spill copies that are added in this ++ // Split() pass, since they might get coalesced later on in this pass. ++ if (lidx < _maxlrg && lrgs(lidx).is_singledef()) { ++ continue; ++ } + + Block *b_def = _cfg._bbs[def->_idx]; + int idx_def = b_def->find_node(def); +@@ -391,10 +385,15 @@ #endif // See if the cloned def kills any flags, and copy those kills as well uint i = insidx+1; @@ -19280,8 +20048,35 @@ } return spill; +@@ -1298,7 +1297,7 @@ + Node *def = Reaches[pidx][slidx]; + assert( def, "must have reaching def" ); + // If input up/down sense and reg-pressure DISagree +- if (def->rematerialize() && contains_no_live_range_input(def)) { ++ if (def->rematerialize()) { + // Place the rematerialized node above any MSCs created during + // phi node splitting. end_idx points at the insertion point + // so look at the node before it. +--- ./hotspot/src/share/vm/opto/type.hpp 2013-09-06 11:22:14.000000000 -0700 ++++ ./hotspot/src/share/vm/opto/type.hpp 2014-10-28 20:19:37.000000000 -0700 +@@ -1348,6 +1348,7 @@ + #define ConvL2X(x) (x) + #define ConvX2I(x) ConvL2I(x) + #define ConvX2L(x) (x) ++#define ConvX2UL(x) (x) + + #else + +@@ -1392,6 +1393,7 @@ + #define ConvL2X(x) ConvL2I(x) + #define ConvX2I(x) (x) + #define ConvX2L(x) ConvI2L(x) ++#define ConvX2UL(x) ConvI2UL(x) + + #endif + --- ./hotspot/src/share/vm/prims/jni.cpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/prims/jni.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/prims/jni.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -5042,14 +5042,22 @@ tty->print_cr("Running test: " #unit_test_function_call); \ unit_test_function_call @@ -19305,8 +20100,115 @@ tty->print_cr("All internal VM tests passed"); } } +--- ./hotspot/src/share/vm/prims/jvm.cpp 2013-09-06 11:22:14.000000000 -0700 ++++ ./hotspot/src/share/vm/prims/jvm.cpp 2014-10-28 20:19:39.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1997, 2014, 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 +@@ -746,6 +746,7 @@ + return (jclass) JNIHandles::make_local(env, Klass::cast(k)->java_mirror()); + JVM_END + ++// Not used; JVM_FindClassFromCaller replaces this. + JVM_ENTRY(jclass, JVM_FindClassFromClassLoader(JNIEnv* env, const char* name, + jboolean init, jobject loader, + jboolean throwError)) +@@ -772,6 +773,42 @@ + return result; + JVM_END + ++// Find a class with this name in this loader, using the caller's protection domain. ++JVM_ENTRY(jclass, JVM_FindClassFromCaller(JNIEnv* env, const char* name, ++ jboolean init, jobject loader, ++ jclass caller)) ++ JVMWrapper2("JVM_FindClassFromCaller %s throws ClassNotFoundException", name); ++ // Java libraries should ensure that name is never null... ++ if (name == NULL || (int)strlen(name) > Symbol::max_length()) { ++ // It's impossible to create this class; the name cannot fit ++ // into the constant pool. ++ THROW_MSG_0(vmSymbols::java_lang_ClassNotFoundException(), name); ++ } ++ ++ TempNewSymbol h_name = SymbolTable::new_symbol(name, CHECK_NULL); ++ ++ oop loader_oop = JNIHandles::resolve(loader); ++ oop from_class = JNIHandles::resolve(caller); ++ oop protection_domain = NULL; ++ // If loader is null, shouldn't call ClassLoader.checkPackageAccess; otherwise get ++ // NPE. Put it in another way, the bootstrap class loader has all permission and ++ // thus no checkPackageAccess equivalence in the VM class loader. ++ // The caller is also passed as NULL by the java code if there is no security ++ // manager to avoid the performance cost of getting the calling class. ++ if (from_class != NULL && loader_oop != NULL) { ++ protection_domain = instanceKlass::cast(java_lang_Class::as_klassOop(from_class))->protection_domain(); ++ } ++ ++ Handle h_loader(THREAD, loader_oop); ++ Handle h_prot(THREAD, protection_domain); ++ jclass result = find_class_from_class_loader(env, h_name, init, h_loader, ++ h_prot, false, THREAD); ++ ++ if (TraceClassResolution && result != NULL) { ++ trace_class_resolution(java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(result))); ++ } ++ return result; ++JVM_END + + JVM_ENTRY(jclass, JVM_FindClassFromClass(JNIEnv *env, const char *name, + jboolean init, jclass from)) +@@ -4098,10 +4135,15 @@ + + // Shared JNI/JVM entry points ////////////////////////////////////////////////////////////// + +-jclass find_class_from_class_loader(JNIEnv* env, Symbol* name, jboolean init, Handle loader, Handle protection_domain, jboolean throwError, TRAPS) { ++jclass find_class_from_class_loader(JNIEnv* env, Symbol* name, jboolean init, ++ Handle loader, Handle protection_domain, ++ jboolean throwError, TRAPS) { + // Security Note: + // The Java level wrapper will perform the necessary security check allowing +- // us to pass the NULL as the initiating class loader. ++ // us to pass the NULL as the initiating class loader. The VM is responsible for ++ // the checkPackageAccess relative to the initiating class loader via the ++ // protection_domain. The protection_domain is passed as NULL by the java code ++ // if there is no security manager in 3-arg Class.forName(). + klassOop klass = SystemDictionary::resolve_or_fail(name, loader, protection_domain, throwError != 0, CHECK_NULL); + + KlassHandle klass_handle(THREAD, klass); +--- ./hotspot/src/share/vm/prims/jvm.h 2013-09-06 11:22:14.000000000 -0700 ++++ ./hotspot/src/share/vm/prims/jvm.h 2014-10-28 20:19:39.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1997, 2014, 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 +@@ -415,6 +415,19 @@ + JVM_FindClassFromBootLoader(JNIEnv *env, const char *name); + + /* ++ * Find a class from a given class loader. Throws ClassNotFoundException. ++ * name: name of class ++ * init: whether initialization is done ++ * loader: class loader to look up the class. This may not be the same as the caller's ++ * class loader. ++ * caller: initiating class. The initiating class may be null when a security ++ * manager is not installed. ++ */ ++JNIEXPORT jclass JNICALL ++JVM_FindClassFromCaller(JNIEnv *env, const char *name, jboolean init, ++ jobject loader, jclass caller); ++ ++/* + * Find a class from a given class. + */ + JNIEXPORT jclass JNICALL --- ./hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp 2013-09-06 11:22:14.000000000 -0700 -+++ ./hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp 2014-07-15 23:24:54.000000000 -0700 ++++ ./hotspot/src/share/vm/prims/jvmtiClassFileReconstituter.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -204,7 +204,7 @@ write_attribute_name_index("Code"); @@ -19317,7 +20219,7 @@ write_u4(code_size); copy_bytecodes(method, (unsigned char*)writeable_address(code_size)); --- ./hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/prims/jvmtiRedefineClasses.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. @@ -19901,7 +20803,7 @@ // Flush references to any obsolete methods from the oop map cache // so that obsolete methods are not pinned. --- ./hotspot/src/share/vm/prims/jvmtiRedefineClasses.hpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/prims/jvmtiRedefineClasses.hpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/prims/jvmtiRedefineClasses.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -370,6 +370,13 @@ // _index_map_p contains any entries. int _index_map_count; @@ -19953,7 +20855,7 @@ void flush_dependent_code(instanceKlassHandle k_h, TRAPS); --- ./hotspot/src/share/vm/prims/methodHandles.cpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/prims/methodHandles.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/prims/methodHandles.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. @@ -20513,7 +21415,7 @@ return res; } --- ./hotspot/src/share/vm/prims/methodHandles.hpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/prims/methodHandles.hpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/prims/methodHandles.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. @@ -20589,7 +21491,7 @@ + #endif // SHARE_VM_PRIMS_METHODHANDLES_HPP --- ./hotspot/src/share/vm/prims/whitebox.cpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/prims/whitebox.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/prims/whitebox.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -27,6 +27,8 @@ #include "memory/universe.hpp" #include "oops/oop.inline.hpp" @@ -20622,7 +21524,7 @@ #undef CC --- ./hotspot/src/share/vm/runtime/arguments.cpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/arguments.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/arguments.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1447,6 +1447,17 @@ } FLAG_SET_DEFAULT(UseParallelGC, true); @@ -20728,7 +21630,18 @@ if (VerifyBeforeExit) { warning("Heap verification at shutdown disabled " "(due to current incompatibility with FLSVerifyAllHeapReferences)"); -@@ -2549,7 +2593,9 @@ +@@ -2013,6 +2057,10 @@ + PrintNMTStatistics = false; + } + ++#ifdef COMPILER1 ++ status &= verify_interval(SafepointPollOffset, 0, os::vm_page_size() - BytesPerWord, "SafepointPollOffset"); ++#endif ++ + return status; + } + +@@ -2549,7 +2597,9 @@ FLAG_SET_CMDLINE(uintx, MaxNewSize, NewSize); } @@ -20738,7 +21651,7 @@ // Increase some data structure sizes for efficiency FLAG_SET_CMDLINE(uintx, BaseFootPrintEstimate, MaxHeapSize); -@@ -3111,6 +3157,10 @@ +@@ -3111,6 +3161,10 @@ UNSUPPORTED_OPTION(UseG1GC, "G1 GC"); #endif @@ -20750,7 +21663,7 @@ if (TraceBytecodesAt != 0) { TraceBytecodes = true; --- ./hotspot/src/share/vm/runtime/arguments.hpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/arguments.hpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/arguments.hpp 2014-07-15 21:48:35.000000000 -0700 @@ -27,6 +27,7 @@ #include "runtime/java.hpp" @@ -20783,7 +21696,7 @@ static bool check_gc_consistency(); // Check consistecy or otherwise of VM argument settings --- ./hotspot/src/share/vm/runtime/atomic.cpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/atomic.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/atomic.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -54,6 +54,12 @@ #ifdef TARGET_OS_ARCH_windows_x86 # include "atomic_windows_x86.inline.hpp" @@ -20798,7 +21711,7 @@ # include "atomic_linux_arm.inline.hpp" #endif --- ./hotspot/src/share/vm/runtime/frame.cpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/frame.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/frame.cpp 2014-07-15 21:48:35.000000000 -0700 @@ -23,6 +23,7 @@ */ @@ -20834,8 +21747,23 @@ st->print("J " PTR_FORMAT, pc()); } --- ./hotspot/src/share/vm/runtime/globals.hpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/globals.hpp 2014-07-15 23:24:55.000000000 -0700 -@@ -1697,6 +1697,9 @@ ++++ ./hotspot/src/share/vm/runtime/globals.hpp 2014-10-28 20:19:39.000000000 -0700 +@@ -1094,9 +1094,11 @@ + "Prevent spurious or premature wakeups from object.wait " \ + "(Solaris only)") \ + \ +- product(intx, NativeMonitorTimeout, -1, "(Unstable)" ) \ +- product(intx, NativeMonitorFlags, 0, "(Unstable)" ) \ +- product(intx, NativeMonitorSpinLimit, 20, "(Unstable)" ) \ ++ experimental(intx, NativeMonitorTimeout, -1, "(Unstable)") \ ++ \ ++ experimental(intx, NativeMonitorFlags, 0, "(Unstable)") \ ++ \ ++ experimental(intx, NativeMonitorSpinLimit, 20, "(Unstable)") \ + \ + develop(bool, UsePthreads, false, \ + "Use pthread-based instead of libthread-based synchronization " \ +@@ -1697,6 +1699,9 @@ product(bool, CMSAbortSemantics, false, \ "Whether abort-on-overflow semantics is implemented") \ \ @@ -20845,7 +21773,7 @@ product(bool, CMSParallelRemarkEnabled, true, \ "Whether parallel remark enabled (only if ParNewGC)") \ \ -@@ -1708,6 +1711,14 @@ +@@ -1708,6 +1713,14 @@ "Whether to always record survivor space PLAB bdries" \ " (effective only if CMSParallelSurvivorRemarkEnabled)") \ \ @@ -20860,7 +21788,7 @@ product(bool, CMSConcurrentMTEnabled, true, \ "Whether multi-threaded concurrent work enabled (if ParNewGC)") \ \ -@@ -1917,6 +1928,9 @@ +@@ -1917,6 +1930,9 @@ notproduct(bool, ExecuteInternalVMTests, false, \ "Enable execution of internal VM tests.") \ \ @@ -20870,7 +21798,7 @@ product_pd(bool, UseTLAB, "Use thread-local object allocation") \ \ product_pd(bool, ResizeTLAB, \ -@@ -2126,6 +2140,13 @@ +@@ -2126,6 +2142,13 @@ product(intx, PrefetchFieldsAhead, -1, \ "How many fields ahead to prefetch in oop scan (<= 0 means off)") \ \ @@ -20884,7 +21812,7 @@ diagnostic(bool, VerifyBeforeExit, trueInDebug, \ "Verify system before exiting") \ \ -@@ -3010,10 +3031,10 @@ +@@ -3010,10 +3033,10 @@ product_pd(uintx, MaxPermSize, \ "Maximum size of permanent generation (in bytes)") \ \ @@ -20898,7 +21826,7 @@ \ product(intx, SoftRefLRUPolicyMSPerMB, 1000, \ --- ./hotspot/src/share/vm/runtime/mutexLocker.cpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/mutexLocker.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/mutexLocker.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. @@ -20970,7 +21898,7 @@ GCMutexLocker::GCMutexLocker(Monitor * mutex) { --- ./hotspot/src/share/vm/runtime/mutexLocker.hpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/mutexLocker.hpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/mutexLocker.hpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. @@ -21006,7 +21934,7 @@ // A MutexLocker provides mutual exclusion with respect to a given mutex // for the scope which contains the locker. The lock is an OS lock, not --- ./hotspot/src/share/vm/runtime/objectMonitor.cpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/objectMonitor.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/objectMonitor.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1684,7 +1684,7 @@ } iterator->_notified = 1 ; @@ -21026,7 +21954,7 @@ iterator->TState = ObjectWaiter::TS_ENTER ; } --- ./hotspot/src/share/vm/runtime/os.cpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/os.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/os.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -399,13 +399,6 @@ if (_native_java_library == NULL) { vm_exit_during_initialization("Unable to load native library", ebuf); @@ -21052,7 +21980,7 @@ char* sysclasspath = format_boot_path(classpath_format, home, home_len, fileSep, pathSep); if (sysclasspath == NULL) return false; --- ./hotspot/src/share/vm/runtime/os.hpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/os.hpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/os.hpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. @@ -21102,7 +22030,7 @@ #ifdef TARGET_OS_ARCH_linux_x86 # include "os_linux_x86.hpp" --- ./hotspot/src/share/vm/runtime/reflection.cpp 2013-09-06 11:22:15.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/reflection.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/reflection.cpp 2014-07-15 21:48:36.000000000 -0700 @@ -460,7 +460,7 @@ // doesn't have a classloader. if ((current_class == NULL) || @@ -21113,7 +22041,7 @@ return true; } --- ./hotspot/src/share/vm/runtime/sweeper.cpp 2013-09-06 11:22:16.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/sweeper.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/sweeper.cpp 2014-07-15 21:48:33.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -21217,7 +22145,7 @@ #endif } --- ./hotspot/src/share/vm/runtime/sweeper.hpp 2013-09-06 11:22:16.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/sweeper.hpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/sweeper.hpp 2014-07-15 21:48:33.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. @@ -21273,7 +22201,7 @@ static void record_sweep(nmethod* nm, int line); static void report_events(int id, address entry); --- ./hotspot/src/share/vm/runtime/thread.cpp 2013-09-06 11:22:16.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/thread.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/thread.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -3416,9 +3416,10 @@ } @@ -21305,7 +22233,7 @@ // get the Java runtime name after java.lang.System is initialized --- ./hotspot/src/share/vm/runtime/virtualspace.cpp 2013-09-06 11:22:16.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/virtualspace.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/virtualspace.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -42,8 +42,19 @@ @@ -21539,7 +22467,7 @@ + #endif --- ./hotspot/src/share/vm/runtime/virtualspace.hpp 2013-09-06 11:22:16.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/virtualspace.hpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/virtualspace.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -90,6 +90,7 @@ public: @@ -21549,7 +22477,7 @@ ReservedSpace(size_t size, size_t alignment, bool large, char* requested_address = NULL, --- ./hotspot/src/share/vm/runtime/vmThread.cpp 2013-09-06 11:22:16.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/vmThread.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/vmThread.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -305,7 +305,7 @@ os::check_heap(); // Silent verification so as not to pollute normal output, @@ -21569,7 +22497,7 @@ } --- ./hotspot/src/share/vm/runtime/vm_operations.cpp 2013-09-06 11:22:16.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/vm_operations.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/vm_operations.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -189,7 +189,8 @@ } @@ -21581,7 +22509,7 @@ bool VM_PrintThreads::doit_prologue() { --- ./hotspot/src/share/vm/runtime/vm_operations.hpp 2013-09-06 11:22:16.000000000 -0700 -+++ ./hotspot/src/share/vm/runtime/vm_operations.hpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/runtime/vm_operations.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -303,9 +303,9 @@ class VM_Verify: public VM_Operation { @@ -21595,7 +22523,7 @@ void doit(); }; --- ./hotspot/src/share/vm/services/attachListener.cpp 2013-09-06 11:22:16.000000000 -0700 -+++ ./hotspot/src/share/vm/services/attachListener.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/services/attachListener.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -282,6 +282,20 @@ return JNI_ERR; } @@ -21656,7 +22584,7 @@ { MutexLocker mu(Threads_lock); JavaThread* listener_thread = new JavaThread(&attach_listener_thread_entry); --- ./hotspot/src/share/vm/services/gcNotifier.cpp 2013-09-06 11:22:16.000000000 -0700 -+++ ./hotspot/src/share/vm/services/gcNotifier.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/services/gcNotifier.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. @@ -21681,7 +22609,7 @@ klassOop k = Management::sun_management_GarbageCollectorImpl_klass(CHECK); instanceKlassHandle gc_mbean_klass(THREAD, k); --- ./hotspot/src/share/vm/services/management.cpp 2013-09-06 11:22:16.000000000 -0700 -+++ ./hotspot/src/share/vm/services/management.cpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/services/management.cpp 2014-07-15 21:48:34.000000000 -0700 @@ -851,8 +851,6 @@ total_used += u.used(); total_committed += u.committed(); @@ -21727,7 +22655,7 @@ } else if (flag->is_uint64_t()) { uint64_t uvalue = (uint64_t)new_value.j; --- ./hotspot/src/share/vm/services/memTracker.hpp 2013-09-06 11:22:16.000000000 -0700 -+++ ./hotspot/src/share/vm/services/memTracker.hpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/services/memTracker.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -302,6 +302,13 @@ } } @@ -21743,7 +22671,7 @@ // record memory type on virtual memory base address static inline void record_virtual_memory_type(address base, MEMFLAGS flags, --- ./hotspot/src/share/vm/trace/noTraceBackend.hpp 2013-09-06 11:22:17.000000000 -0700 -+++ ./hotspot/src/share/vm/trace/noTraceBackend.hpp 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/trace/noTraceBackend.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -25,9 +25,7 @@ #define SHARE_VM_TRACE_NOTRACEBACKEND_HPP @@ -21762,7 +22690,7 @@ - - --- ./hotspot/src/share/vm/trace/trace.xml 2013-09-06 11:22:17.000000000 -0700 -+++ ./hotspot/src/share/vm/trace/trace.xml 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/src/share/vm/trace/trace.xml 2014-07-15 21:48:34.000000000 -0700 @@ -169,8 +169,8 @@ @@ -21775,7 +22703,7 @@ (span, MILLISECONDS); +} --- ./hotspot/src/share/vm/utilities/ticks.hpp 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/src/share/vm/utilities/ticks.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/utilities/ticks.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -22356,7 +23284,7 @@ + +#endif // SHARE_VM_UTILITIES_TICKS_HPP --- ./hotspot/src/share/vm/utilities/ticks.inline.hpp 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/src/share/vm/utilities/ticks.inline.hpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/utilities/ticks.inline.hpp 2014-07-15 21:48:34.000000000 -0700 @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -22456,7 +23384,7 @@ + +#endif // SHARE_VM_UTILITIES_TICKS_INLINE_HPP --- ./hotspot/src/share/vm/utilities/vmError.cpp 2013-09-06 11:22:17.000000000 -0700 -+++ ./hotspot/src/share/vm/utilities/vmError.cpp 2014-07-15 23:24:53.000000000 -0700 ++++ ./hotspot/src/share/vm/utilities/vmError.cpp 2014-10-28 20:19:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. @@ -22487,7 +23415,7 @@ log.set_fd(fd); } else { --- ./hotspot/test/compiler/5091921/Test7005594.sh 2013-09-06 11:22:17.000000000 -0700 -+++ ./hotspot/test/compiler/5091921/Test7005594.sh 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/compiler/5091921/Test7005594.sh 2014-10-28 20:19:39.000000000 -0700 @@ -60,6 +60,9 @@ # Windows/MKS MEM=`"$ROOTDIR/mksnt/sysinf" memory -v | grep "Total Physical Memory: " | sed 's/Total Physical Memory: *//g'` @@ -22498,8 +23426,103 @@ else echo "Unable to determine amount of physical memory on the machine" fi +--- ./hotspot/test/compiler/6653795/UnsafeGetAddressTest.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./hotspot/test/compiler/6653795/UnsafeGetAddressTest.java 2014-10-28 20:19:38.000000000 -0700 +@@ -0,0 +1,68 @@ ++/* ++ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6653795 ++ * @summary C2 intrinsic for Unsafe.getAddress performs pointer sign extension on 32-bit systems ++ * @run main UnsafeGetAddressTest ++ * ++ */ ++ ++import sun.misc.Unsafe; ++import java.lang.reflect.*; ++ ++public class UnsafeGetAddressTest { ++ private static Unsafe unsafe; ++ ++ public static void main(String[] args) throws Exception { ++ Class c = UnsafeGetAddressTest.class.getClassLoader().loadClass("sun.misc.Unsafe"); ++ Field f = c.getDeclaredField("theUnsafe"); ++ f.setAccessible(true); ++ unsafe = (Unsafe)f.get(c); ++ ++ long address = unsafe.allocateMemory(unsafe.addressSize()); ++ unsafe.putAddress(address, 0x0000000080000000L); ++ // from sun.misc.Unsafe.getAddress' documentation: ++ // "If the native pointer is less than 64 bits wide, it is ++ // extended as an unsigned number to a Java long." ++ result = unsafe.getAddress(address); ++ System.out.printf("1: was 0x%x, expected 0x%x\n", result, ++ 0x0000000080000000L); ++ for (int i = 0; i < 1000000; i++) { ++ result = unsafe.getAddress(address); ++ } ++ ++ // The code has got compiled, check the result now ++ System.out.printf("2: was 0x%x, expected 0x%x\n", result, ++ 0x0000000080000000L); ++ if (result != 0x0000000080000000L) { ++ System.out.println("Test Failed"); ++ System.exit(97); ++ } else { ++ System.out.println("Test Passed"); ++ } ++ } ++ static volatile long result; ++} ++ +--- ./hotspot/test/compiler/7141637/SpreadNullArg.java 2013-09-06 11:22:19.000000000 -0700 ++++ ./hotspot/test/compiler/7141637/SpreadNullArg.java 2014-10-28 20:19:38.000000000 -0700 +@@ -46,13 +46,17 @@ + mh_spread_target = + MethodHandles.lookup().findStatic(SpreadNullArg.class, "target_spread_arg", mt_ref_arg); + result = (int) mh_spreadInvoker.invokeExact(mh_spread_target, (Object[]) null); +- } catch(NullPointerException e) { +- // Expected exception - do nothing! +- } catch(Throwable e) { ++ throw new Error("Expected IllegalArgumentException was not thrown"); ++ } catch (IllegalArgumentException e) { ++ System.out.println("Expected exception : " + e); ++ } catch (Throwable e) { + throw new Error(e); + } + +- if (result != 42) throw new Error("Expected NullPointerException was not thrown"); ++ if (result != 42) { ++ throw new Error("result [" + result ++ + "] != 42 : Expected IllegalArgumentException was not thrown?"); ++ } + } + + public static int target_spread_arg(Integer i1) { --- ./hotspot/test/compiler/8004051/Test8004051.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/compiler/8004051/Test8004051.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/compiler/8004051/Test8004051.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -22558,7 +23581,7 @@ + } +} --- ./hotspot/test/compiler/codegen/LoadWithMask.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/compiler/codegen/LoadWithMask.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/compiler/codegen/LoadWithMask.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. @@ -22605,7 +23628,7 @@ + } +} --- ./hotspot/test/compiler/codegen/LoadWithMask2.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/compiler/codegen/LoadWithMask2.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/compiler/codegen/LoadWithMask2.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. @@ -22663,7 +23686,7 @@ + } +} --- ./hotspot/test/compiler/gcbarriers/G1CrashTest.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/compiler/gcbarriers/G1CrashTest.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/compiler/gcbarriers/G1CrashTest.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -22750,7 +23773,7 @@ + } +} --- ./hotspot/test/compiler/print/PrintInlining.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/compiler/print/PrintInlining.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/compiler/print/PrintInlining.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -22789,7 +23812,7 @@ + } +} --- ./hotspot/test/compiler/reflection/ArrayNewInstanceOfVoid.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/compiler/reflection/ArrayNewInstanceOfVoid.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/compiler/reflection/ArrayNewInstanceOfVoid.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -22836,7 +23859,7 @@ + } +} --- ./hotspot/test/compiler/regalloc/C1ObjectSpillInLogicOp.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/compiler/regalloc/C1ObjectSpillInLogicOp.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/compiler/regalloc/C1ObjectSpillInLogicOp.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -22884,7 +23907,7 @@ + } +} --- ./hotspot/test/gc/8000311/Test8000311.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/gc/8000311/Test8000311.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/gc/8000311/Test8000311.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -22977,7 +24000,7 @@ - } -} --- ./hotspot/test/gc/TestVerifyDuringStartup.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/gc/TestVerifyDuringStartup.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/gc/TestVerifyDuringStartup.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -23025,7 +24048,7 @@ + } +} --- ./hotspot/test/gc/TestVerifySilently.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/gc/TestVerifySilently.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/gc/TestVerifySilently.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. @@ -23112,7 +24135,7 @@ + } +} --- ./hotspot/test/gc/arguments/TestDynMaxHeapFreeRatio.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/gc/arguments/TestDynMaxHeapFreeRatio.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/gc/arguments/TestDynMaxHeapFreeRatio.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. @@ -23179,7 +24202,7 @@ + +} --- ./hotspot/test/gc/arguments/TestDynMinHeapFreeRatio.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/gc/arguments/TestDynMinHeapFreeRatio.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/gc/arguments/TestDynMinHeapFreeRatio.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. @@ -23244,7 +24267,7 @@ + } +} --- ./hotspot/test/gc/g1/TestHumongousCodeCacheRoots.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/gc/g1/TestHumongousCodeCacheRoots.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/gc/g1/TestHumongousCodeCacheRoots.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,143 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -23390,7 +24413,7 @@ +} + --- ./hotspot/test/gc/g1/TestPrintRegionRememberedSetInfo.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/gc/g1/TestPrintRegionRememberedSetInfo.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/gc/g1/TestPrintRegionRememberedSetInfo.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -23485,7 +24508,7 @@ +} + --- ./hotspot/test/gc/g1/TestSummarizeRSetStats.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/gc/g1/TestSummarizeRSetStats.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/gc/g1/TestSummarizeRSetStats.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -23573,7 +24596,7 @@ +} + --- ./hotspot/test/gc/g1/TestSummarizeRSetStatsPerRegion.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/gc/g1/TestSummarizeRSetStatsPerRegion.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/gc/g1/TestSummarizeRSetStatsPerRegion.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -23631,7 +24654,7 @@ + } +} --- ./hotspot/test/gc/g1/TestSummarizeRSetStatsThreads.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/gc/g1/TestSummarizeRSetStatsThreads.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/gc/g1/TestSummarizeRSetStatsThreads.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -23717,7 +24740,7 @@ + } +} --- ./hotspot/test/gc/g1/TestSummarizeRSetStatsTools.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/gc/g1/TestSummarizeRSetStatsTools.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/gc/g1/TestSummarizeRSetStatsTools.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,154 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -23874,7 +24897,7 @@ +} + --- ./hotspot/test/runtime/6929067/Test6929067.sh 2013-09-06 11:22:19.000000000 -0700 -+++ ./hotspot/test/runtime/6929067/Test6929067.sh 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/runtime/6929067/Test6929067.sh 2014-07-15 21:48:35.000000000 -0700 @@ -3,6 +3,7 @@ ## ## @test Test6929067.sh @@ -23911,7 +24934,7 @@ ./invoke exit $? --- ./hotspot/test/runtime/7107135/Test7107135.sh 2013-09-06 11:22:19.000000000 -0700 -+++ ./hotspot/test/runtime/7107135/Test7107135.sh 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/runtime/7107135/Test7107135.sh 2014-07-15 21:48:35.000000000 -0700 @@ -27,6 +27,7 @@ ## ## @test Test7107135.sh @@ -23945,7 +24968,7 @@ ld -shared -z noexecstack -o libtest-rw.so test.o --- ./hotspot/test/runtime/7110720/Test7110720.sh 2013-09-06 11:22:20.000000000 -0700 -+++ ./hotspot/test/runtime/7110720/Test7110720.sh 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/runtime/7110720/Test7110720.sh 2014-10-28 20:19:39.000000000 -0700 @@ -28,7 +28,7 @@ # set platform-dependent variables OS=`uname -s` @@ -23956,7 +24979,7 @@ RM=/bin/rm CP=/bin/cp --- ./hotspot/test/runtime/7158800/Test7158800.sh 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/runtime/7158800/Test7158800.sh 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/runtime/7158800/Test7158800.sh 2014-10-28 20:19:39.000000000 -0700 @@ -0,0 +1,91 @@ +#!/bin/sh +# @@ -24050,7 +25073,7 @@ + exit 0 +fi --- ./hotspot/test/runtime/jsig/Test8017498.sh 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/runtime/jsig/Test8017498.sh 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/runtime/jsig/Test8017498.sh 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,94 @@ +#!/bin/sh + @@ -24147,7 +25170,7 @@ +echo "Test Failed" +exit 1 --- ./hotspot/test/runtime/jsig/TestJNI.c 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/runtime/jsig/TestJNI.c 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/runtime/jsig/TestJNI.c 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -24205,7 +25228,7 @@ +#endif + --- ./hotspot/test/runtime/jsig/TestJNI.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/runtime/jsig/TestJNI.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/runtime/jsig/TestJNI.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -24250,7 +25273,7 @@ +} + --- ./hotspot/test/runtime/memory/LargePages/TestLargePagesFlags.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/runtime/memory/LargePages/TestLargePagesFlags.java 2014-07-15 23:24:55.000000000 -0700 ++++ ./hotspot/test/runtime/memory/LargePages/TestLargePagesFlags.java 2014-07-15 21:48:35.000000000 -0700 @@ -0,0 +1,389 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -24641,33 +25664,675 @@ + public String value(); + } +} +--- ./hotspot/test/testlibrary/ClassFileInstaller.java 2013-09-06 11:22:20.000000000 -0700 ++++ ./hotspot/test/testlibrary/ClassFileInstaller.java 2014-10-28 20:19:38.000000000 -0700 +@@ -45,7 +45,9 @@ + + // Create the class file's package directory + Path p = Paths.get(pathName); +- Files.createDirectories(p.getParent()); ++ if (pathName.contains("/")) { ++ Files.createDirectories(p.getParent()); ++ } + // Create the class file + Files.copy(is, p, StandardCopyOption.REPLACE_EXISTING); + } --- ./hotspot/test/testlibrary/OutputAnalyzerTest.java 2013-09-06 11:22:20.000000000 -0700 -+++ ./hotspot/test/testlibrary/OutputAnalyzerTest.java 2014-07-15 23:24:56.000000000 -0700 -@@ -172,5 +172,22 @@ - } catch (RuntimeException e) { - // expected - } ++++ ./hotspot/test/testlibrary/OutputAnalyzerTest.java 1969-12-31 16:00:00.000000000 -0800 +@@ -1,176 +0,0 @@ +-/* +- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. +- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +- * +- * This code is free software; you can redistribute it and/or modify it +- * under the terms of the GNU General Public License version 2 only, as +- * published by the Free Software Foundation. +- * +- * This code is distributed in the hope that it will be useful, but WITHOUT +- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +- * version 2 for more details (a copy is included in the LICENSE file that +- * accompanied this code). +- * +- * You should have received a copy of the GNU General Public License version +- * 2 along with this work; if not, write to the Free Software Foundation, +- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +- * +- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +- * or visit www.oracle.com if you need additional information or have any +- * questions. +- */ +- +-/* +- * @test +- * @summary Test the OutputAnalyzer utility class +- * @library /testlibrary +- */ +- +-import com.oracle.java.testlibrary.OutputAnalyzer; +- +-public class OutputAnalyzerTest { +- +- public static void main(String args[]) throws Exception { +- +- String stdout = "aaaaaa"; +- String stderr = "bbbbbb"; +- +- // Regexps used for testing pattern matching of the test input +- String stdoutPattern = "[a]"; +- String stderrPattern = "[b]"; +- String nonExistingPattern = "[c]"; +- +- OutputAnalyzer output = new OutputAnalyzer(stdout, stderr); +- +- if (!stdout.equals(output.getStdout())) { +- throw new Exception("getStdout() returned '" + output.getStdout() + "', expected '" + stdout + "'"); +- } +- +- if (!stderr.equals(output.getStderr())) { +- throw new Exception("getStderr() returned '" + output.getStderr() + "', expected '" + stderr + "'"); +- } +- +- try { +- output.shouldContain(stdout); +- output.stdoutShouldContain(stdout); +- output.shouldContain(stderr); +- output.stderrShouldContain(stderr); +- } catch (RuntimeException e) { +- throw new Exception("shouldContain() failed", e); +- } +- +- try { +- output.shouldContain("cccc"); +- throw new Exception("shouldContain() failed to throw exception"); +- } catch (RuntimeException e) { +- // expected +- } +- +- try { +- output.stdoutShouldContain(stderr); +- throw new Exception("stdoutShouldContain() failed to throw exception"); +- } catch (RuntimeException e) { +- // expected +- } +- +- try { +- output.stderrShouldContain(stdout); +- throw new Exception("stdoutShouldContain() failed to throw exception"); +- } catch (RuntimeException e) { +- // expected +- } +- +- try { +- output.shouldNotContain("cccc"); +- output.stdoutShouldNotContain("cccc"); +- output.stderrShouldNotContain("cccc"); +- } catch (RuntimeException e) { +- throw new Exception("shouldNotContain() failed", e); +- } +- +- try { +- output.shouldNotContain(stdout); +- throw new Exception("shouldContain() failed to throw exception"); +- } catch (RuntimeException e) { +- // expected +- } +- +- try { +- output.stdoutShouldNotContain(stdout); +- throw new Exception("shouldContain() failed to throw exception"); +- } catch (RuntimeException e) { +- // expected +- } +- +- try { +- output.stderrShouldNotContain(stderr); +- throw new Exception("shouldContain() failed to throw exception"); +- } catch (RuntimeException e) { +- // expected +- } +- +- // Should match +- try { +- output.shouldMatch(stdoutPattern); +- output.stdoutShouldMatch(stdoutPattern); +- output.shouldMatch(stderrPattern); +- output.stderrShouldMatch(stderrPattern); +- } catch (RuntimeException e) { +- throw new Exception("shouldMatch() failed", e); +- } +- +- try { +- output.shouldMatch(nonExistingPattern); +- throw new Exception("shouldMatch() failed to throw exception"); +- } catch (RuntimeException e) { +- // expected +- } +- +- try { +- output.stdoutShouldMatch(stderrPattern); +- throw new Exception( +- "stdoutShouldMatch() failed to throw exception"); +- } catch (RuntimeException e) { +- // expected +- } +- +- try { +- output.stderrShouldMatch(stdoutPattern); +- throw new Exception( +- "stderrShouldMatch() failed to throw exception"); +- } catch (RuntimeException e) { +- // expected +- } +- +- // Should not match +- try { +- output.shouldNotMatch(nonExistingPattern); +- output.stdoutShouldNotMatch(nonExistingPattern); +- output.stderrShouldNotMatch(nonExistingPattern); +- } catch (RuntimeException e) { +- throw new Exception("shouldNotMatch() failed", e); +- } +- +- try { +- output.shouldNotMatch(stdoutPattern); +- throw new Exception("shouldNotMatch() failed to throw exception"); +- } catch (RuntimeException e) { +- // expected +- } +- +- try { +- output.stdoutShouldNotMatch(stdoutPattern); +- throw new Exception("shouldNotMatch() failed to throw exception"); +- } catch (RuntimeException e) { +- // expected +- } +- +- try { +- output.stderrShouldNotMatch(stderrPattern); +- throw new Exception("shouldNotMatch() failed to throw exception"); +- } catch (RuntimeException e) { +- // expected +- } +- } +-} +--- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/Asserts.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/Asserts.java 2014-10-28 20:19:38.000000000 -0700 +@@ -0,0 +1,395 @@ ++/* ++ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ + -+ { -+ String aaaa = "aaaa"; -+ String result = output.firstMatch(aaaa); -+ if (!aaaa.equals(result)) { -+ throw new Exception("firstMatch(String) faild to match. Expected: " + aaaa + " got: " + result); -+ } ++package com.oracle.java.testlibrary; ++ ++/** ++ * Asserts that can be used for verifying assumptions in tests. ++ * ++ * An assertion will throw a {@link RuntimeException} if the assertion isn't ++ * valid. All the asserts can be imported into a test by using a static ++ * import: ++ * ++ *
++ * {@code
++ * import static com.oracle.java.testlibrary.Asserts.*;
++ * }
++ *
++ * Always provide a message describing the assumption if the line number of the
++ * failing assertion isn't enough to understand why the assumption failed. For
++ * example, if the assertion is in a loop or in a method that is called
++ * multiple times, then the line number won't provide enough context to
++ * understand the failure.
++ * 
++ */ ++public class Asserts { ++ ++ /** ++ * Shorthand for {@link #assertLessThan(T, T)}. ++ * ++ * @see #assertLessThan(T, T) ++ */ ++ public static > void assertLT(T lhs, T rhs) { ++ assertLessThan(lhs, rhs); + } + -+ { -+ String aa = "aa"; -+ String aa_grouped_aa = aa + "(" + aa + ")"; -+ String result = output.firstMatch(aa_grouped_aa, 1); -+ if (!aa.equals(result)) { -+ throw new Exception("firstMatch(String, int) failed to match. Expected: " + aa + " got: " + result); -+ } ++ /** ++ * Shorthand for {@link #assertLessThan(T, T, String)}. ++ * ++ * @see #assertLessThan(T, T, String) ++ */ ++ public static > void assertLT(T lhs, T rhs, String msg) { ++ assertLessThan(lhs, rhs, msg); + } - } - } ++ ++ /** ++ * Calls {@link #assertLessThan(T, T, String)} with a default message. ++ * ++ * @see #assertLessThan(T, T, String) ++ */ ++ public static > void assertLessThan(T lhs, T rhs) { ++ String msg = "Expected that " + format(lhs) + " < " + format(rhs); ++ assertLessThan(lhs, rhs, msg); ++ } ++ ++ /** ++ * Asserts that {@code lhs} is less than {@code rhs}. ++ * ++ * @param lhs The left hand side of the comparison. ++ * @param rhs The right hand side of the comparison. ++ * @param msg A description of the assumption. ++ * @throws RuntimeException if the assertion isn't valid. ++ */ ++ public static >void assertLessThan(T lhs, T rhs, String msg) { ++ assertTrue(compare(lhs, rhs, msg) < 0, msg); ++ } ++ ++ /** ++ * Shorthand for {@link #assertLessThanOrEqual(T, T)}. ++ * ++ * @see #assertLessThanOrEqual(T, T) ++ */ ++ public static > void assertLTE(T lhs, T rhs) { ++ assertLessThanOrEqual(lhs, rhs); ++ } ++ ++ /** ++ * Shorthand for {@link #assertLessThanOrEqual(T, T, String)}. ++ * ++ * @see #assertLessThanOrEqual(T, T, String) ++ */ ++ public static > void assertLTE(T lhs, T rhs, String msg) { ++ assertLessThanOrEqual(lhs, rhs, msg); ++ } ++ ++ /** ++ * Calls {@link #assertLessThanOrEqual(T, T, String)} with a default message. ++ * ++ * @see #assertLessThanOrEqual(T, T, String) ++ */ ++ public static > void assertLessThanOrEqual(T lhs, T rhs) { ++ String msg = "Expected that " + format(lhs) + " <= " + format(rhs); ++ assertLessThanOrEqual(lhs, rhs, msg); ++ } ++ ++ /** ++ * Asserts that {@code lhs} is less than or equal to {@code rhs}. ++ * ++ * @param lhs The left hand side of the comparison. ++ * @param rhs The right hand side of the comparison. ++ * @param msg A description of the assumption. ++ * @throws RuntimeException if the assertion isn't valid. ++ */ ++ public static > void assertLessThanOrEqual(T lhs, T rhs, String msg) { ++ assertTrue(compare(lhs, rhs, msg) <= 0, msg); ++ } ++ ++ /** ++ * Shorthand for {@link #assertEquals(T, T)}. ++ * ++ * @see #assertEquals(T, T) ++ */ ++ public static void assertEQ(Object lhs, Object rhs) { ++ assertEquals(lhs, rhs); ++ } ++ ++ /** ++ * Shorthand for {@link #assertEquals(T, T, String)}. ++ * ++ * @see #assertEquals(T, T, String) ++ */ ++ public static void assertEQ(Object lhs, Object rhs, String msg) { ++ assertEquals(lhs, rhs, msg); ++ } ++ ++ /** ++ * Calls {@link #assertEquals(T, T, String)} with a default message. ++ * ++ * @see #assertEquals(T, T, String) ++ */ ++ public static void assertEquals(Object lhs, Object rhs) { ++ String msg = "Expected " + format(lhs) + " to equal " + format(rhs); ++ assertEquals(lhs, rhs, msg); ++ } ++ ++ /** ++ * Asserts that {@code lhs} is equal to {@code rhs}. ++ * ++ * @param lhs The left hand side of the comparison. ++ * @param rhs The right hand side of the comparison. ++ * @param msg A description of the assumption. ++ * @throws RuntimeException if the assertion isn't valid. ++ */ ++ public static void assertEquals(Object lhs, Object rhs, String msg) { ++ if (lhs == null) { ++ if (rhs != null) { ++ error(msg); ++ } ++ } else { ++ assertTrue(lhs.equals(rhs), msg); ++ } ++ } ++ ++ /** ++ * Shorthand for {@link #assertGreaterThanOrEqual(T, T)}. ++ * ++ * @see #assertGreaterThanOrEqual(T, T) ++ */ ++ public static > void assertGTE(T lhs, T rhs) { ++ assertGreaterThanOrEqual(lhs, rhs); ++ } ++ ++ /** ++ * Shorthand for {@link #assertGreaterThanOrEqual(T, T, String)}. ++ * ++ * @see #assertGreaterThanOrEqual(T, T, String) ++ */ ++ public static > void assertGTE(T lhs, T rhs, String msg) { ++ assertGreaterThanOrEqual(lhs, rhs, msg); ++ } ++ ++ /** ++ * Calls {@link #assertGreaterThanOrEqual(T, T, String)} with a default message. ++ * ++ * @see #assertGreaterThanOrEqual(T, T, String) ++ */ ++ public static > void assertGreaterThanOrEqual(T lhs, T rhs) { ++ String msg = "Expected that " + format(lhs) + " >= " + format(rhs); ++ assertGreaterThanOrEqual(lhs, rhs, msg); ++ } ++ ++ /** ++ * Asserts that {@code lhs} is greater than or equal to {@code rhs}. ++ * ++ * @param lhs The left hand side of the comparison. ++ * @param rhs The right hand side of the comparison. ++ * @param msg A description of the assumption. ++ * @throws RuntimeException if the assertion isn't valid. ++ */ ++ public static > void assertGreaterThanOrEqual(T lhs, T rhs, String msg) { ++ assertTrue(compare(lhs, rhs, msg) >= 0, msg); ++ } ++ ++ /** ++ * Shorthand for {@link #assertGreaterThan(T, T)}. ++ * ++ * @see #assertGreaterThan(T, T) ++ */ ++ public static > void assertGT(T lhs, T rhs) { ++ assertGreaterThan(lhs, rhs); ++ } ++ ++ /** ++ * Shorthand for {@link #assertGreaterThan(T, T, String)}. ++ * ++ * @see #assertGreaterThan(T, T, String) ++ */ ++ public static > void assertGT(T lhs, T rhs, String msg) { ++ assertGreaterThan(lhs, rhs, msg); ++ } ++ ++ /** ++ * Calls {@link #assertGreaterThan(T, T, String)} with a default message. ++ * ++ * @see #assertGreaterThan(T, T, String) ++ */ ++ public static > void assertGreaterThan(T lhs, T rhs) { ++ String msg = "Expected that " + format(lhs) + " > " + format(rhs); ++ assertGreaterThan(lhs, rhs, msg); ++ } ++ ++ /** ++ * Asserts that {@code lhs} is greater than {@code rhs}. ++ * ++ * @param lhs The left hand side of the comparison. ++ * @param rhs The right hand side of the comparison. ++ * @param msg A description of the assumption. ++ * @throws RuntimeException if the assertion isn't valid. ++ */ ++ public static > void assertGreaterThan(T lhs, T rhs, String msg) { ++ assertTrue(compare(lhs, rhs, msg) > 0, msg); ++ } ++ ++ /** ++ * Shorthand for {@link #assertNotEquals(T, T)}. ++ * ++ * @see #assertNotEquals(T, T) ++ */ ++ public static void assertNE(Object lhs, Object rhs) { ++ assertNotEquals(lhs, rhs); ++ } ++ ++ /** ++ * Shorthand for {@link #assertNotEquals(T, T, String)}. ++ * ++ * @see #assertNotEquals(T, T, String) ++ */ ++ public static void assertNE(Object lhs, Object rhs, String msg) { ++ assertNotEquals(lhs, rhs, msg); ++ } ++ ++ /** ++ * Calls {@link #assertNotEquals(T, T, String)} with a default message. ++ * ++ * @see #assertNotEquals(T, T, String) ++ */ ++ public static void assertNotEquals(Object lhs, Object rhs) { ++ String msg = "Expected " + format(lhs) + " to not equal " + format(rhs); ++ assertNotEquals(lhs, rhs, msg); ++ } ++ ++ /** ++ * Asserts that {@code lhs} is not equal to {@code rhs}. ++ * ++ * @param lhs The left hand side of the comparison. ++ * @param rhs The right hand side of the comparison. ++ * @param msg A description of the assumption. ++ * @throws RuntimeException if the assertion isn't valid. ++ */ ++ public static void assertNotEquals(Object lhs, Object rhs, String msg) { ++ if (lhs == null) { ++ if (rhs == null) { ++ error(msg); ++ } ++ } else { ++ assertFalse(lhs.equals(rhs), msg); ++ } ++ } ++ ++ /** ++ * Calls {@link #assertNull(Object, String)} with a default message. ++ * ++ * @see #assertNull(Object, String) ++ */ ++ public static void assertNull(Object o) { ++ assertNull(o, "Expected " + format(o) + " to be null"); ++ } ++ ++ /** ++ * Asserts that {@code o} is null. ++ * ++ * @param o The reference assumed to be null. ++ * @param msg A description of the assumption. ++ * @throws RuntimeException if the assertion isn't valid. ++ */ ++ public static void assertNull(Object o, String msg) { ++ assertEquals(o, null, msg); ++ } ++ ++ /** ++ * Calls {@link #assertNotNull(Object, String)} with a default message. ++ * ++ * @see #assertNotNull(Object, String) ++ */ ++ public static void assertNotNull(Object o) { ++ assertNotNull(o, "Expected non null reference"); ++ } ++ ++ /** ++ * Asserts that {@code o} is not null. ++ * ++ * @param o The reference assumed not to be null, ++ * @param msg A description of the assumption. ++ * @throws RuntimeException if the assertion isn't valid. ++ */ ++ public static void assertNotNull(Object o, String msg) { ++ assertNotEquals(o, null, msg); ++ } ++ ++ /** ++ * Calls {@link #assertFalse(boolean, String)} with a default message. ++ * ++ * @see #assertFalse(boolean, String) ++ */ ++ public static void assertFalse(boolean value) { ++ assertFalse(value, "Expected value to be false"); ++ } ++ ++ /** ++ * Asserts that {@code value} is {@code false}. ++ * ++ * @param value The value assumed to be false. ++ * @param msg A description of the assumption. ++ * @throws RuntimeException if the assertion isn't valid. ++ */ ++ public static void assertFalse(boolean value, String msg) { ++ assertTrue(!value, msg); ++ } ++ ++ /** ++ * Calls {@link #assertTrue(boolean, String)} with a default message. ++ * ++ * @see #assertTrue(boolean, String) ++ */ ++ public static void assertTrue(boolean value) { ++ assertTrue(value, "Expected value to be true"); ++ } ++ ++ /** ++ * Asserts that {@code value} is {@code true}. ++ * ++ * @param value The value assumed to be true. ++ * @param msg A description of the assumption. ++ * @throws RuntimeException if the assertion isn't valid. ++ */ ++ public static void assertTrue(boolean value, String msg) { ++ if (!value) { ++ error(msg); ++ } ++ } ++ ++ private static > int compare(T lhs, T rhs, String msg) { ++ assertNotNull(lhs, msg); ++ assertNotNull(rhs, msg); ++ return lhs.compareTo(rhs); ++ } ++ ++ private static String format(Object o) { ++ return o == null? "null" : o.toString(); ++ } ++ ++ private static void error(String msg) { ++ throw new RuntimeException(msg); ++ } ++ ++} +--- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/ByteCodeLoader.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/ByteCodeLoader.java 2014-10-28 20:19:38.000000000 -0700 +@@ -0,0 +1,74 @@ ++/* ++ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++package com.oracle.java.testlibrary; ++ ++import java.security.SecureClassLoader; ++ ++/** ++ * {@code ByteCodeLoader} can be used for easy loading of byte code already ++ * present in memory. ++ * ++ * {@code InMemoryCompiler} can be used for compiling source code in a string ++ * into byte code, which then can be loaded with {@code ByteCodeLoader}. ++ * ++ * @see InMemoryCompiler ++ */ ++public class ByteCodeLoader extends SecureClassLoader { ++ private final String className; ++ private final byte[] byteCode; ++ ++ /** ++ * Creates a new {@code ByteCodeLoader} ready to load a class with the ++ * given name and the given byte code. ++ * ++ * @param className The name of the class ++ * @param byteCode The byte code of the class ++ */ ++ public ByteCodeLoader(String className, byte[] byteCode) { ++ this.className = className; ++ this.byteCode = byteCode; ++ } ++ ++ @Override ++ protected Class findClass(String name) throws ClassNotFoundException { ++ if (!name.equals(className)) { ++ throw new ClassNotFoundException(name); ++ } ++ ++ return defineClass(name, byteCode, 0, byteCode.length); ++ } ++ ++ /** ++ * Utility method for creating a new {@code ByteCodeLoader} and then ++ * directly load the given byte code. ++ * ++ * @param className The name of the class ++ * @param byteCode The byte code for the class ++ * @throws ClassNotFoundException if the class can't be loaded ++ * @return A {@see Class} object representing the class ++ */ ++ public static Class load(String className, byte[] byteCode) throws ClassNotFoundException { ++ return new ByteCodeLoader(className, byteCode).loadClass(className); ++ } ++} --- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/DynamicVMOptionChecker.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/DynamicVMOptionChecker.java 2014-07-15 23:24:56.000000000 -0700 ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/DynamicVMOptionChecker.java 2014-07-15 21:48:36.000000000 -0700 @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. @@ -24780,9 +26445,622 @@ + } + +} +--- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/InMemoryJavaCompiler.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/InMemoryJavaCompiler.java 2014-10-28 20:19:38.000000000 -0700 +@@ -0,0 +1,154 @@ ++/* ++ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++package com.oracle.java.testlibrary; ++ ++import java.io.ByteArrayOutputStream; ++import java.io.IOException; ++import java.io.OutputStream; ++ ++import java.net.URI; ++import java.util.Arrays; ++ ++import javax.tools.ForwardingJavaFileManager; ++import javax.tools.ForwardingJavaFileManager; ++import javax.tools.FileObject; ++import javax.tools.JavaCompiler; ++import javax.tools.JavaCompiler.CompilationTask; ++import javax.tools.JavaFileManager; ++import javax.tools.JavaFileObject; ++import javax.tools.JavaFileObject.Kind; ++import javax.tools.SimpleJavaFileObject; ++import javax.tools.ToolProvider; ++ ++/** ++ * {@code InMemoryJavaCompiler} can be used for compiling a {@link ++ * CharSequence} to a {@code byte[]}. ++ * ++ * The compiler will not use the file system at all, instead using a {@link ++ * ByteArrayOutputStream} for storing the byte code. For the source code, any ++ * kind of {@link CharSequence} can be used, e.g. {@link String}, {@link ++ * StringBuffer} or {@link StringBuilder}. ++ * ++ * The {@code InMemoryCompiler} can easily be used together with a {@code ++ * ByteClassLoader} to easily compile and load source code in a {@link String}: ++ * ++ *
++ * {@code
++ * import com.oracle.java.testlibrary.InMemoryJavaCompiler;
++ * import com.oracle.java.testlibrary.ByteClassLoader;
++ *
++ * class Example {
++ *     public static void main(String[] args) {
++ *         String className = "Foo";
++ *         String sourceCode = "public class " + className + " {" +
++ *                             "    public void bar() {" +
++ *                             "        System.out.println("Hello from bar!");" +
++ *                             "    }" +
++ *                             "}";
++ *         byte[] byteCode = InMemoryJavaCompiler.compile(className, sourceCode);
++ *         Class fooClass = ByteClassLoader.load(className, byteCode);
++ *     }
++ * }
++ * }
++ * 
++ */ ++public class InMemoryJavaCompiler { ++ private static class MemoryJavaFileObject extends SimpleJavaFileObject { ++ private final String className; ++ private final CharSequence sourceCode; ++ private final ByteArrayOutputStream byteCode; ++ ++ public MemoryJavaFileObject(String className, CharSequence sourceCode) { ++ super(URI.create("string:///" + className.replace('.','/') + Kind.SOURCE.extension), Kind.SOURCE); ++ this.className = className; ++ this.sourceCode = sourceCode; ++ this.byteCode = new ByteArrayOutputStream(); ++ } ++ ++ @Override ++ public CharSequence getCharContent(boolean ignoreEncodingErrors) { ++ return sourceCode; ++ } ++ ++ @Override ++ public OutputStream openOutputStream() throws IOException { ++ return byteCode; ++ } ++ ++ public byte[] getByteCode() { ++ return byteCode.toByteArray(); ++ } ++ ++ public String getClassName() { ++ return className; ++ } ++ } ++ ++ private static class FileManagerWrapper extends ForwardingJavaFileManager { ++ private MemoryJavaFileObject file; ++ ++ public FileManagerWrapper(MemoryJavaFileObject file) { ++ super(getCompiler().getStandardFileManager(null, null, null)); ++ this.file = file; ++ } ++ ++ @Override ++ public JavaFileObject getJavaFileForOutput(Location location, String className, ++ Kind kind, FileObject sibling) ++ throws IOException { ++ if (!file.getClassName().equals(className)) { ++ throw new IOException("Expected class with name " + file.getClassName() + ++ ", but got " + className); ++ } ++ return file; ++ } ++ } ++ ++ /** ++ * Compiles the class with the given name and source code. ++ * ++ * @param className The name of the class ++ * @param sourceCode The source code for the class with name {@code className} ++ * @throws RuntimeException if the compilation did not succeed ++ * @return The resulting byte code from the compilation ++ */ ++ public static byte[] compile(String className, CharSequence sourceCode) { ++ MemoryJavaFileObject file = new MemoryJavaFileObject(className, sourceCode); ++ CompilationTask task = getCompilationTask(file); ++ ++ if(!task.call()) { ++ throw new RuntimeException("Could not compile " + className + " with source code " + sourceCode); ++ } ++ ++ return file.getByteCode(); ++ } ++ ++ private static JavaCompiler getCompiler() { ++ return ToolProvider.getSystemJavaCompiler(); ++ } ++ ++ private static CompilationTask getCompilationTask(MemoryJavaFileObject file) { ++ return getCompiler().getTask(null, new FileManagerWrapper(file), null, null, null, Arrays.asList(file)); ++ } ++} +--- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/InputArguments.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/InputArguments.java 2014-10-28 20:19:38.000000000 -0700 +@@ -0,0 +1,76 @@ ++/* ++ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++package com.oracle.java.testlibrary; ++ ++import java.lang.management.RuntimeMXBean; ++import java.lang.management.ManagementFactory; ++import java.util.List; ++ ++/** ++ * This class provides access to the input arguments to the VM. ++ */ ++public class InputArguments { ++ private static final List args; ++ ++ static { ++ RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean(); ++ args = runtimeMxBean.getInputArguments(); ++ } ++ ++ /** ++ * Returns true if {@code arg} is an input argument to the VM. ++ * ++ * This is useful for checking boolean flags such as -XX:+UseSerialGC or ++ * -XX:-UsePerfData. ++ * ++ * @param arg The name of the argument. ++ * @return {@code true} if the given argument is an input argument, ++ * otherwise {@code false}. ++ */ ++ public static boolean contains(String arg) { ++ return args.contains(arg); ++ } ++ ++ /** ++ * Returns true if {@code prefix} is the start of an input argument to the ++ * VM. ++ * ++ * This is useful for checking if flags describing a quantity, such as ++ * -XX:+MaxMetaspaceSize=100m, is set without having to know the quantity. ++ * To check if the flag -XX:MaxMetaspaceSize is set, use ++ * {@code InputArguments.containsPrefix("-XX:MaxMetaspaceSize")}. ++ * ++ * @param prefix The start of the argument. ++ * @return {@code true} if the given argument is the start of an input ++ * argument, otherwise {@code false}. ++ */ ++ public static boolean containsPrefix(String prefix) { ++ for (String arg : args) { ++ if (arg.startsWith(prefix)) { ++ return true; ++ } ++ } ++ return false; ++ } ++} +--- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/JDKToolFinder.java 2013-09-06 11:22:20.000000000 -0700 ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/JDKToolFinder.java 2014-10-28 20:19:38.000000000 -0700 +@@ -23,28 +23,84 @@ + + package com.oracle.java.testlibrary; + +-import java.io.File; ++import java.io.FileNotFoundException; ++import java.nio.file.Path; ++import java.nio.file.Paths; + + public final class JDKToolFinder { + +- private JDKToolFinder() { +- } ++ private JDKToolFinder() { ++ } ++ ++ /** ++ * Returns the full path to an executable in jdk/bin based on System ++ * property {@code test.jdk} or {@code compile.jdk} (both are set by the jtreg test suite) ++ * ++ * @return Full path to an executable in jdk/bin ++ */ ++ public static String getJDKTool(String tool) { ++ ++ // First try to find the executable in test.jdk ++ try { ++ return getTool(tool, "test.jdk"); ++ } catch (FileNotFoundException e) { ++ ++ } ++ ++ // Now see if it's available in compile.jdk ++ try { ++ return getTool(tool, "compile.jdk"); ++ } catch (FileNotFoundException e) { ++ throw new RuntimeException("Failed to find " + tool + ++ ", looked in test.jdk (" + System.getProperty("test.jdk") + ++ ") and compile.jdk (" + System.getProperty("compile.jdk") + ")"); ++ } ++ } + +- /** +- * Returns the full path to an executable in jdk/bin based on System property +- * test.jdk (set by jtreg test suite) +- * +- * @return Full path to an executable in jdk/bin +- */ +- public static String getJDKTool(String tool) { +- String binPath = System.getProperty("test.jdk"); +- if (binPath == null) { +- throw new RuntimeException("System property 'test.jdk' not set. This property is normally set by jtreg. " +- + "When running test separately, set this property using '-Dtest.jdk=/path/to/jdk'."); ++ /** ++ * Returns the full path to an executable in jdk/bin based on System ++ * property {@code compile.jdk} ++ * ++ * @return Full path to an executable in jdk/bin ++ */ ++ public static String getCompileJDKTool(String tool) { ++ try { ++ return getTool(tool, "compile.jdk"); ++ } catch (FileNotFoundException e) { ++ throw new RuntimeException(e); ++ } + } + +- binPath += File.separatorChar + "bin" + File.separatorChar + tool; ++ /** ++ * Returns the full path to an executable in jdk/bin based on System ++ * property {@code test.jdk} ++ * ++ * @return Full path to an executable in jdk/bin ++ */ ++ public static String getTestJDKTool(String tool) { ++ try { ++ return getTool(tool, "test.jdk"); ++ } catch (FileNotFoundException e) { ++ throw new RuntimeException(e); ++ } ++ } + +- return binPath; +- } ++ private static String getTool(String tool, String property) throws FileNotFoundException { ++ String jdkPath = System.getProperty(property); ++ ++ if (jdkPath == null) { ++ throw new RuntimeException( ++ "System property '" + property + "' not set. This property is normally set by jtreg. " ++ + "When running test separately, set this property using '-D" + property + "=/path/to/jdk'."); ++ } ++ ++ Path toolName = Paths.get("bin", tool + (Platform.isWindows() ? ".exe" : "")); ++ ++ Path jdkTool = Paths.get(jdkPath, toolName.toString()); ++ if (!jdkTool.toFile().exists()) { ++ throw new FileNotFoundException("Could not find file " + jdkTool.toAbsolutePath()); ++ } ++ ++ return jdkTool.toAbsolutePath().toString(); ++ } + } +--- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/JDKToolLauncher.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/JDKToolLauncher.java 2014-10-28 20:19:38.000000000 -0700 +@@ -0,0 +1,134 @@ ++/* ++ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++package com.oracle.java.testlibrary; ++ ++import java.util.ArrayList; ++import java.util.Arrays; ++import java.util.List; ++ ++/** ++ * A utility for constructing command lines for starting JDK tool processes. ++ * ++ * The JDKToolLauncher can in particular be combined with a ++ * java.lang.ProcessBuilder to easily run a JDK tool. For example, the following ++ * code run {@code jmap -heap} against a process with GC logging turned on for ++ * the {@code jmap} process: ++ * ++ *
++ * {@code
++ * JDKToolLauncher jmap = JDKToolLauncher.create("jmap")
++ *                                       .addVMArg("-XX:+PrintGC");
++ *                                       .addVMArg("-XX:+PrintGCDetails")
++ *                                       .addToolArg("-heap")
++ *                                       .addToolArg(pid);
++ * ProcessBuilder pb = new ProcessBuilder(jmap.getCommand());
++ * Process p = pb.start();
++ * }
++ * 
++ */ ++public class JDKToolLauncher { ++ private final String executable; ++ private final List vmArgs = new ArrayList(); ++ private final List toolArgs = new ArrayList(); ++ ++ private JDKToolLauncher(String tool, boolean useCompilerJDK) { ++ if (useCompilerJDK) { ++ executable = JDKToolFinder.getJDKTool(tool); ++ } else { ++ executable = JDKToolFinder.getTestJDKTool(tool); ++ } ++ vmArgs.addAll(Arrays.asList(ProcessTools.getPlatformSpecificVMArgs())); ++ } ++ ++ /** ++ * Creates a new JDKToolLauncher for the specified tool. Using tools path ++ * from the compiler JDK. ++ * ++ * @param tool ++ * The name of the tool ++ * @return A new JDKToolLauncher ++ */ ++ public static JDKToolLauncher create(String tool) { ++ return new JDKToolLauncher(tool, true); ++ } ++ ++ /** ++ * Creates a new JDKToolLauncher for the specified tool in the Tested JDK. ++ * ++ * @param tool ++ * The name of the tool ++ * ++ * @return A new JDKToolLauncher ++ */ ++ public static JDKToolLauncher createUsingTestJDK(String tool) { ++ return new JDKToolLauncher(tool, false); ++ } ++ ++ /** ++ * Adds an argument to the JVM running the tool. ++ * ++ * The JVM arguments are passed to the underlying JVM running the tool. ++ * Arguments will automatically be prepended with "-J". ++ * ++ * Any platform specific arguments required for running the tool are ++ * automatically added. ++ * ++ * ++ * @param arg ++ * The argument to VM running the tool ++ * @return The JDKToolLauncher instance ++ */ ++ public JDKToolLauncher addVMArg(String arg) { ++ vmArgs.add(arg); ++ return this; ++ } ++ ++ /** ++ * Adds an argument to the tool. ++ * ++ * @param arg ++ * The argument to the tool ++ * @return The JDKToolLauncher instance ++ */ ++ public JDKToolLauncher addToolArg(String arg) { ++ toolArgs.add(arg); ++ return this; ++ } ++ ++ /** ++ * Returns the command that can be used for running the tool. ++ * ++ * @return An array whose elements are the arguments of the command. ++ */ ++ public String[] getCommand() { ++ List command = new ArrayList(); ++ command.add(executable); ++ // Add -J in front of all vmArgs ++ for (String arg : vmArgs) { ++ command.add("-J" + arg); ++ } ++ command.addAll(toolArgs); ++ return command.toArray(new String[command.size()]); ++ } ++} --- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/OutputAnalyzer.java 2013-09-06 11:22:20.000000000 -0700 -+++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/OutputAnalyzer.java 2014-07-15 23:24:56.000000000 -0700 -@@ -241,7 +241,38 @@ ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/OutputAnalyzer.java 2014-10-28 20:19:38.000000000 -0700 +@@ -76,7 +76,8 @@ + */ + public void shouldContain(String expectedString) { + if (!stdout.contains(expectedString) && !stderr.contains(expectedString)) { +- throw new RuntimeException("'" + expectedString + "' missing from stdout/stderr: [" + stdout + stderr + "]\n"); ++ reportDiagnosticSummary(); ++ throw new RuntimeException("'" + expectedString + "' missing from stdout/stderr \n"); + } + } + +@@ -88,7 +89,8 @@ + */ + public void stdoutShouldContain(String expectedString) { + if (!stdout.contains(expectedString)) { +- throw new RuntimeException("'" + expectedString + "' missing from stdout: [" + stdout + "]\n"); ++ reportDiagnosticSummary(); ++ throw new RuntimeException("'" + expectedString + "' missing from stdout \n"); + } + } + +@@ -100,7 +102,8 @@ + */ + public void stderrShouldContain(String expectedString) { + if (!stderr.contains(expectedString)) { +- throw new RuntimeException("'" + expectedString + "' missing from stderr: [" + stderr + "]\n"); ++ reportDiagnosticSummary(); ++ throw new RuntimeException("'" + expectedString + "' missing from stderr \n"); + } + } + +@@ -112,10 +115,12 @@ + */ + public void shouldNotContain(String notExpectedString) { + if (stdout.contains(notExpectedString)) { +- throw new RuntimeException("'" + notExpectedString + "' found in stdout: [" + stdout + "]\n"); ++ reportDiagnosticSummary(); ++ throw new RuntimeException("'" + notExpectedString + "' found in stdout \n"); + } + if (stderr.contains(notExpectedString)) { +- throw new RuntimeException("'" + notExpectedString + "' found in stderr: [" + stderr + "]\n"); ++ reportDiagnosticSummary(); ++ throw new RuntimeException("'" + notExpectedString + "' found in stderr \n"); + } + } + +@@ -127,7 +132,8 @@ + */ + public void stdoutShouldNotContain(String notExpectedString) { + if (stdout.contains(notExpectedString)) { +- throw new RuntimeException("'" + notExpectedString + "' found in stdout: [" + stdout + "]\n"); ++ reportDiagnosticSummary(); ++ throw new RuntimeException("'" + notExpectedString + "' found in stdout \n"); + } + } + +@@ -139,7 +145,8 @@ + */ + public void stderrShouldNotContain(String notExpectedString) { + if (stderr.contains(notExpectedString)) { +- throw new RuntimeException("'" + notExpectedString + "' found in stderr: [" + stderr + "]\n"); ++ reportDiagnosticSummary(); ++ throw new RuntimeException("'" + notExpectedString + "' found in stderr \n"); + } + } + +@@ -154,9 +161,9 @@ + Matcher stdoutMatcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stdout); + Matcher stderrMatcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stderr); + if (!stdoutMatcher.find() && !stderrMatcher.find()) { ++ reportDiagnosticSummary(); + throw new RuntimeException("'" + pattern +- + "' missing from stdout/stderr: [" + stdout + stderr +- + "]\n"); ++ + "' missing from stdout/stderr \n"); + } + } + +@@ -170,8 +177,9 @@ + public void stdoutShouldMatch(String pattern) { + Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stdout); + if (!matcher.find()) { ++ reportDiagnosticSummary(); + throw new RuntimeException("'" + pattern +- + "' missing from stdout: [" + stdout + "]\n"); ++ + "' missing from stdout \n"); + } + } + +@@ -185,8 +193,9 @@ + public void stderrShouldMatch(String pattern) { + Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stderr); + if (!matcher.find()) { ++ reportDiagnosticSummary(); + throw new RuntimeException("'" + pattern +- + "' missing from stderr: [" + stderr + "]\n"); ++ + "' missing from stderr \n"); + } + } + +@@ -200,13 +209,15 @@ + public void shouldNotMatch(String pattern) { + Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stdout); + if (matcher.find()) { ++ reportDiagnosticSummary(); + throw new RuntimeException("'" + pattern +- + "' found in stdout: [" + stdout + "]\n"); ++ + "' found in stdout: '" + matcher.group() + "' \n"); + } + matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stderr); + if (matcher.find()) { ++ reportDiagnosticSummary(); + throw new RuntimeException("'" + pattern +- + "' found in stderr: [" + stderr + "]\n"); ++ + "' found in stderr: '" + matcher.group() + "' \n"); + } + } + +@@ -220,8 +231,9 @@ + public void stdoutShouldNotMatch(String pattern) { + Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stdout); + if (matcher.find()) { ++ reportDiagnosticSummary(); + throw new RuntimeException("'" + pattern +- + "' found in stdout: [" + stdout + "]\n"); ++ + "' found in stdout \n"); + } + } + +@@ -235,23 +247,76 @@ + public void stderrShouldNotMatch(String pattern) { + Matcher matcher = Pattern.compile(pattern, Pattern.MULTILINE).matcher(stderr); + if (matcher.find()) { ++ reportDiagnosticSummary(); + throw new RuntimeException("'" + pattern +- + "' found in stderr: [" + stderr + "]\n"); ++ + "' found in stderr \n"); + } } /** @@ -24822,8 +27100,361 @@ * * @param expectedExitValue Expected exit value from process * @throws RuntimeException If the exit value from the process did not match the expected value + */ + public void shouldHaveExitValue(int expectedExitValue) { + if (getExitValue() != expectedExitValue) { +- throw new RuntimeException("Exit value " + getExitValue() + " , expected to get " + expectedExitValue); ++ reportDiagnosticSummary(); ++ throw new RuntimeException("Expected to get exit value of [" ++ + expectedExitValue + "]\n"); + } + } + ++ ++ /** ++ * Report summary that will help to diagnose the problem ++ * Currently includes: ++ * - standard input produced by the process under test ++ * - standard output ++ * - exit code ++ * Note: the command line is printed by the ProcessTools ++ */ ++ private void reportDiagnosticSummary() { ++ String msg = ++ " stdout: [" + stdout + "];\n" + ++ " stderr: [" + stderr + "]\n" + ++ " exitValue = " + getExitValue() + "\n"; ++ ++ System.err.println(msg); ++ } ++ ++ + /** + * Get the contents of the output buffer (stdout and stderr) + * +--- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/PerfCounter.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/PerfCounter.java 2014-10-28 20:19:38.000000000 -0700 +@@ -0,0 +1,70 @@ ++/* ++ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++package com.oracle.java.testlibrary; ++ ++import sun.jvmstat.monitor.Monitor; ++ ++/** ++ * Represents a performance counter in the JVM. ++ * ++ * See http://openjdk.java.net/groups/hotspot/docs/Serviceability.html#bjvmstat ++ * for more details about performance counters. ++ */ ++public class PerfCounter { ++ private final Monitor monitor; ++ private final String name; ++ ++ PerfCounter(Monitor monitor, String name) { ++ this.monitor = monitor; ++ this.name = name; ++ } ++ ++ /** ++ * Returns the value of this performance counter as a long. ++ * ++ * @return The long value of this performance counter ++ * @throws RuntimeException If the value of the performance counter isn't a long ++ */ ++ public long longValue() { ++ Object value = monitor.getValue(); ++ if (value instanceof Long) { ++ return ((Long) value).longValue(); ++ } ++ throw new RuntimeException("Expected " + monitor.getName() + " to have a long value"); ++ } ++ ++ /** ++ * Returns the name of the performance counter. ++ * ++ * @return The name of the performance counter. ++ */ ++ public String getName() { ++ return name; ++ } ++ ++ @Override ++ public String toString() { ++ return name; ++ } ++} +--- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/PerfCounters.java 1969-12-31 16:00:00.000000000 -0800 ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/PerfCounters.java 2014-10-28 20:19:38.000000000 -0700 +@@ -0,0 +1,69 @@ ++/* ++ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++package com.oracle.java.testlibrary; ++ ++import sun.jvmstat.monitor.Monitor; ++import sun.jvmstat.monitor.MonitorException; ++import sun.jvmstat.monitor.MonitoredHost; ++import sun.jvmstat.monitor.MonitoredVm; ++import sun.jvmstat.monitor.VmIdentifier; ++ ++/** ++ * PerfCounters can be used to get a performance counter from the currently ++ * executing VM. ++ * ++ * Throws a runtime exception if an error occurs while communicating with the ++ * currently executing VM. ++ */ ++public class PerfCounters { ++ private final static MonitoredVm vm; ++ ++ static { ++ try { ++ String pid = Integer.toString(ProcessTools.getProcessId()); ++ VmIdentifier vmId = new VmIdentifier(pid); ++ MonitoredHost host = MonitoredHost.getMonitoredHost(vmId); ++ vm = host.getMonitoredVm(vmId); ++ } catch (Exception e) { ++ throw new RuntimeException("Could not connect to the VM"); ++ } ++ } ++ ++ /** ++ * Returns the performance counter with the given name. ++ * ++ * @param name The name of the performance counter. ++ * @throws IllegalArgumentException If no counter with the given name exists. ++ * @throws MonitorException If an error occurs while communicating with the VM. ++ * @return The performance counter with the given name. ++ */ ++ public static PerfCounter findByName(String name) ++ throws MonitorException, IllegalArgumentException { ++ Monitor m = vm.findByName(name); ++ if (m == null) { ++ throw new IllegalArgumentException("Did not find a performance counter with name " + name); ++ } ++ return new PerfCounter(m, name); ++ } ++} +--- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/Platform.java 2013-09-06 11:22:20.000000000 -0700 ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/Platform.java 2014-10-28 20:19:38.000000000 -0700 +@@ -24,39 +24,80 @@ + package com.oracle.java.testlibrary; + + public class Platform { +- private static final String osName = System.getProperty("os.name"); +- private static final String dataModel = System.getProperty("sun.arch.data.model"); +- private static final String vmVersion = System.getProperty("java.vm.version"); +- +- public static boolean is64bit() { +- return dataModel.equals("64"); +- } +- +- public static boolean isSolaris() { +- return osName.toLowerCase().startsWith("sunos"); +- } +- +- public static boolean isWindows() { +- return osName.toLowerCase().startsWith("win"); +- } +- +- public static boolean isOSX() { +- return osName.toLowerCase().startsWith("mac"); +- } +- +- public static boolean isLinux() { +- return osName.toLowerCase().startsWith("linux"); +- } +- +- public static String getOsName() { +- return osName; +- } +- +- public static boolean isDebugBuild() { +- return vmVersion.toLowerCase().contains("debug"); +- } +- +- public static String getVMVersion() { +- return vmVersion; +- } ++ private static final String osName = System.getProperty("os.name"); ++ private static final String dataModel = System.getProperty("sun.arch.data.model"); ++ private static final String vmVersion = System.getProperty("java.vm.version"); ++ private static final String osArch = System.getProperty("os.arch"); ++ ++ public static boolean is32bit() { ++ return dataModel.equals("32"); ++ } ++ ++ public static boolean is64bit() { ++ return dataModel.equals("64"); ++ } ++ ++ public static boolean isSolaris() { ++ return isOs("sunos"); ++ } ++ ++ public static boolean isWindows() { ++ return isOs("win"); ++ } ++ ++ public static boolean isOSX() { ++ return isOs("mac"); ++ } ++ ++ public static boolean isLinux() { ++ return isOs("linux"); ++ } ++ ++ private static boolean isOs(String osname) { ++ return osName.toLowerCase().startsWith(osname.toLowerCase()); ++ } ++ ++ public static String getOsName() { ++ return osName; ++ } ++ ++ public static boolean isDebugBuild() { ++ return vmVersion.toLowerCase().contains("debug"); ++ } ++ ++ public static String getVMVersion() { ++ return vmVersion; ++ } ++ ++ // Returns true for sparc and sparcv9. ++ public static boolean isSparc() { ++ return isArch("sparc"); ++ } ++ ++ public static boolean isARM() { ++ return isArch("arm"); ++ } ++ ++ public static boolean isPPC() { ++ return isArch("ppc"); ++ } ++ ++ public static boolean isX86() { ++ // On Linux it's 'i386', Windows 'x86' ++ return (isArch("i386") || isArch("x86")); ++ } ++ ++ public static boolean isX64() { ++ // On OSX it's 'x86_64' and on other (Linux, Windows and Solaris) platforms it's 'amd64' ++ return (isArch("amd64") || isArch("x86_64")); ++ } ++ ++ private static boolean isArch(String archname) { ++ return osArch.toLowerCase().startsWith(archname.toLowerCase()); ++ } ++ ++ public static String getOsArch() { ++ return osArch; ++ } ++ + } +--- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/ProcessTools.java 2013-09-06 11:22:20.000000000 -0700 ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/ProcessTools.java 2014-10-28 20:19:38.000000000 -0700 +@@ -31,6 +31,7 @@ + import java.lang.reflect.Method; + import java.util.ArrayList; + import java.util.Collections; ++import java.util.List; + + import sun.management.VMManagement; + +@@ -107,15 +108,29 @@ + } + + /** ++ * Get the string containing input arguments passed to the VM ++ * ++ * @return arguments ++ */ ++ public static String getVmInputArguments() { ++ RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); ++ ++ List args = runtime.getInputArguments(); ++ StringBuilder result = new StringBuilder(); ++ for (String arg : args) ++ result.append(arg).append(' '); ++ ++ return result.toString(); ++ } ++ ++ /** + * Get platform specific VM arguments (e.g. -d64 on 64bit Solaris) + * + * @return String[] with platform specific arguments, empty if there are none + */ + public static String[] getPlatformSpecificVMArgs() { +- String osName = System.getProperty("os.name"); +- String dataModel = System.getProperty("sun.arch.data.model"); + +- if (osName.equals("SunOS") && dataModel.equals("64")) { ++ if (Platform.is64bit() && Platform.isSolaris()) { + return new String[] { "-d64" }; + } + +@@ -134,8 +149,13 @@ + Collections.addAll(args, getPlatformSpecificVMArgs()); + Collections.addAll(args, command); + +- return new ProcessBuilder(args.toArray(new String[args.size()])); ++ // Reporting ++ StringBuilder cmdLine = new StringBuilder(); ++ for (String cmd : args) ++ cmdLine.append(cmd).append(' '); ++ System.out.println("Command line: [" + cmdLine.toString() + "]"); + ++ return new ProcessBuilder(args.toArray(new String[args.size()])); + } + + } --- ./hotspot/test/testlibrary/com/oracle/java/testlibrary/TestDynamicVMOption.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/TestDynamicVMOption.java 2014-07-15 23:24:56.000000000 -0700 ++++ ./hotspot/test/testlibrary/com/oracle/java/testlibrary/TestDynamicVMOption.java 2014-07-15 21:48:36.000000000 -0700 @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. @@ -24921,7 +27552,7 @@ + +} --- ./hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java 2013-09-06 11:22:20.000000000 -0700 -+++ ./hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java 2014-07-15 23:24:56.000000000 -0700 ++++ ./hotspot/test/testlibrary/whitebox/sun/hotspot/WhiteBox.java 2014-07-15 21:48:36.000000000 -0700 @@ -78,4 +78,7 @@ public native void NMTUncommitMemory(long addr, long size); public native void NMTReleaseMemory(long addr, long size); @@ -24931,7 +27562,7 @@ + public native void deoptimizeAll(); } --- ./jaxp/.hgtags 2013-09-06 11:22:52.000000000 -0700 -+++ ./jaxp/.hgtags 2014-07-15 23:25:08.000000000 -0700 ++++ ./jaxp/.hgtags 2014-10-28 20:19:32.000000000 -0700 @@ -123,6 +123,7 @@ bcd31fa1e3c6f51b4fdd427ef905188cdac57164 jdk7-b146 067fb18071e3872698f6218724958bd0cebf30a3 jdk7u1-b01 @@ -24963,7 +27594,7 @@ 5e87aee78c91efa65bd5aeb37bcc1c1c637a7f0c jdk7u25-b12 83b80c094befd08cbac4247d9b8f12c6a039f23f jdk7u25-b13 68cc0d2a49f09b5c611b2775f2e66de1022bdedc jdk7u25-b14 -@@ -343,3 +360,105 @@ +@@ -343,3 +360,147 @@ 66363323f14d85d4ab28e883a3323b9d72dea5fd jdk7u40-b42 c0bd71414ea513f54f23965936a837fca093ac91 jdk7u40-b43 91bc4534851265291bb3b16452a0968d6909979f jdk7u40-b60 @@ -25029,9 +27660,13 @@ +14719f73596f5c90e3f46c0f4312f32e5b105edd jdk7u55-b13 +01f26830f88cf4f10897416fe1f4f372efcdecf5 jdk7u55-b30 +26187a65c765b3177f1b7ff0638259bf66f9ec47 jdk7u55-b14 ++b81309c6014182819d752a4517d48b201d91b154 jdk7u55-b15 +5be97f6c25d9eb3ef0a05fc860964cb3d27134b0 jdk7u55-b31 +94f3ad704f28d5ec65f7a3b1cbf5cfe7e42151f3 jdk7u55-b32 +476aad2c130e2b1b7033fa6789754c03151da95c jdk7u55-b33 ++32aa4a5892b0567b19da2bc5b72aa3f3a3398130 jdk7u55-b34 ++1f8449a6e05ee0a495ba89c3b4021b46f641ff40 jdk7u55-b35 ++7767e8740aea3283703e634ffdbfccd0fbebe82d jdk7u55-b36 +d9b92749a0f4c8e6c6f4fe11210c2a02d70bae74 jdk7u60-b00 +ad39e88c503948fc4fc01e97c75b6e3c24599d23 jdk7u60-b01 +050986fd54e3ec4515032ee938bc59e86772b6c0 jdk7u60-b02 @@ -25053,6 +27688,10 @@ +ba6b0b5dfe5a0f50fac95c488c8a5400ea07d4f8 jdk7u60-b18 +dd5a398eedc7031a4fb8682bc423e787db465c9e jdk7u65-b01 +581752d32aebea959fec84e8ae692e1f63d2c4a8 jdk7u60-b19 ++cef2dec8b5d76555c5b7b2e1a62275206f76a07a jdk7u60-b30 ++bfa8403a1e28bdc1e94ba61d89e170e4ccc7d58b jdk7u60-b31 ++33a8a292a02aa76139d0d04970a0d87cc674f2e3 jdk7u60-b32 ++583c5eeb9f31275121aecca60307b8885a1a80d0 jdk7u60-b33 +27909f138bdb9ffdd2ab4bded231c7ccc2264046 jdk7u65-b02 +b3307181bd0f1a2c6e1e2c403b87a76e34452110 jdk7u65-b03 +efa9425faaf402b7ea9c6226eb08236d8fa1ff2b jdk7u65-b04 @@ -25069,8 +27708,42 @@ +708c636721447ebf679c2c754cb36a503c6177b8 jdk7u65-b15 +a34a9f6740955e1cd844c5b701d76dbe7290913a jdk7u65-b16 +178512d1bd9caf56d61811ad0d4b4269475407aa jdk7u65-b17 ++be897d0fd2a0b5f43b0d0e48075e5b070ca584d4 jdk7u65-b30 ++45db678253587755df4a00066e42e2fce04bbb71 jdk7u65-b18 ++4e323af07c47061109fb5f585613b0cc4b4208ca jdk7u65-b19 ++f3b7bb6f1924ab7f635cdd60db7fbab64576cd6d jdk7u65-b32 ++d41f31b707c87675f3467e980b1ceef2e53b3b5d jdk7u65-b20 ++d1f8566d39c56e40516a1afb304ed7c0681355d8 jdk7u67-b01 ++4e323af07c47061109fb5f585613b0cc4b4208ca jdk7u65-b40 ++a5f829d7fa05cf769402dfc82c94b737b8d011b0 jdk7u65-b31 ++f33ea72260ca7480f4a1405d35a3709895b491a2 jdk7u65-b33 ++86e93799766d67102a37559b3831abcc825d7e24 jdk7u66-b00 ++d34839cb2f15dee01cdfb1fd93378849de34d662 jdk7u66-b01 ++19e4e978c8212921104ba16d0db6bf18c6f8d0ab jdk7u66-b09 ++533ecae83034da1e68ee9a414b690c9b6eead293 jdk7u66-b10 ++763f80d4aae130a89efa4c6544ee98fcb7e6a2ca jdk7u66-b11 ++0d91d2f038d19261e0085a76bb8974c3b7609c5d jdk7u66-b12 ++cddc3774bebfe597228c7b3e386859b1fa775387 jdk7u66-b13 ++15206a7046a97d0a0fd824bec8b0e4174a56d8eb jdk7u66-b14 ++af60b8e3b9deb32d50552916e0afd38a30feaef0 jdk7u66-b15 ++36bba6c72f866df5c65ba8678544bf0442a952b3 jdk7u66-b16 ++9a777cc0d6b3b25d13feca1e610584d042565367 jdk7u66-b17 ++174a2f822f4f600f798e9963f0c1496206dce471 jdk7u71-b00 ++df8d93eddfc2de1046b8fb87204bc945c538a282 jdk7u71-b01 ++153724c929075f0a741aacead679af39f03a0a80 jdk7u71-b02 ++9e2007e23f356b7bc5d4d0c6c6350e9b3b3cd56b jdk7u71-b03 ++f58a7f8db6c54cd76621d1f48d17102ffbe93983 jdk7u71-b04 ++edab7f6d9a30feea45bf9185de0c65e11ab3a7b0 jdk7u71-b05 ++ca2992ad734eaf8295e21351b0de329555e9e60a jdk7u71-b06 ++5fbecd4c30c2e566e9b815818d51042e20d3ab83 jdk7u71-b07 ++acf176ea76f904674228745c25af195e460f1240 jdk7u71-b08 ++8a9f55d8d011ad6dc36f307dfac47981b676b379 jdk7u71-b09 ++d82fd2f6c5c8ed03c75828033058b675f9239d4b jdk7u71-b10 ++f7542072016b7972b383075f84df29bc05495d2e jdk7u71-b11 ++109dd4c4a07a8adfaf59e11c29e502277b803c44 jdk7u71-b12 ++df2c7c9a3609f8f4b30b09c29a9cfddc8b4b90ef jdk7u71-b13 --- ./jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java 2014-07-15 21:54:36.000000000 -0700 @@ -39,33 +39,150 @@ // // Constants @@ -25256,7 +27929,7 @@ */ public static final boolean IS_JDK8_OR_ABOVE = isJavaVersionAtLeast(8); --- ./jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/lib/ExsltStrings.java 2014-07-15 21:46:30.000000000 -0700 @@ -52,6 +52,8 @@ */ public class ExsltStrings extends ExsltBase @@ -25340,7 +28013,7 @@ - } --- ./jaxp/src/com/sun/org/apache/xalan/internal/lib/Extensions.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/lib/Extensions.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/lib/Extensions.java 2014-07-15 21:46:30.000000000 -0700 @@ -56,6 +56,7 @@ */ public class Extensions @@ -25451,7 +28124,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources.java 2014-07-15 21:46:30.000000000 -0700 @@ -471,7 +471,13 @@ // Error messages... @@ -25482,7 +28155,7 @@ // ================= INFRASTRUCTURE ====================== --- ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_de.java 2014-07-15 21:46:30.000000000 -0700 @@ -471,7 +471,13 @@ // Error messages... @@ -25513,7 +28186,7 @@ // ================= INFRASTRUCTURE ====================== --- ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_es.java 2014-07-15 21:46:30.000000000 -0700 @@ -471,7 +471,13 @@ // Error messages... @@ -25544,7 +28217,7 @@ // ================= INFRASTRUCTURE ====================== --- ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_fr.java 2014-07-15 21:46:30.000000000 -0700 @@ -471,7 +471,13 @@ // Error messages... @@ -25575,7 +28248,7 @@ // ================= INFRASTRUCTURE ====================== --- ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_it.java 2014-07-15 21:46:30.000000000 -0700 @@ -471,7 +471,13 @@ // Error messages... @@ -25606,7 +28279,7 @@ // ================= INFRASTRUCTURE ====================== --- ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ja.java 2014-07-15 21:46:30.000000000 -0700 @@ -471,7 +471,13 @@ // Error messages... @@ -25637,7 +28310,7 @@ // ================= INFRASTRUCTURE ====================== --- ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_ko.java 2014-07-15 21:46:30.000000000 -0700 @@ -471,7 +471,13 @@ // Error messages... @@ -25668,7 +28341,7 @@ // ================= INFRASTRUCTURE ====================== --- ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_pt_BR.java 2014-07-15 21:46:30.000000000 -0700 @@ -472,7 +472,13 @@ // Error messages... @@ -25699,7 +28372,7 @@ // ================= INFRASTRUCTURE ====================== --- ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_sv.java 2014-07-15 21:46:30.000000000 -0700 @@ -471,7 +471,13 @@ // Error messages... @@ -25730,7 +28403,7 @@ // ================= INFRASTRUCTURE ====================== --- ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_CN.java 2014-07-15 21:46:30.000000000 -0700 @@ -471,7 +471,13 @@ // Error messages... @@ -25761,7 +28434,7 @@ // ================= INFRASTRUCTURE ====================== --- ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/res/XSLTErrorResources_zh_TW.java 2014-07-15 21:46:30.000000000 -0700 @@ -471,7 +471,13 @@ // Error messages... @@ -25792,7 +28465,7 @@ // ================= INFRASTRUCTURE ====================== --- ./jaxp/src/com/sun/org/apache/xalan/internal/utils/FeatureManager.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/utils/FeatureManager.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/utils/FeatureManager.java 2014-07-15 21:46:30.000000000 -0700 @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. @@ -25919,7 +28592,7 @@ + +} --- ./jaxp/src/com/sun/org/apache/xalan/internal/utils/FeaturePropertyBase.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/utils/FeaturePropertyBase.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/utils/FeaturePropertyBase.java 2014-07-15 21:46:30.000000000 -0700 @@ -0,0 +1,215 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. @@ -26137,7 +28810,7 @@ + } +} --- ./jaxp/src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/utils/ObjectFactory.java 2014-07-15 21:46:30.000000000 -0700 @@ -54,8 +54,8 @@ // // Constants @@ -26193,7 +28866,7 @@ try { providerClass = cl.loadClass(className); --- ./jaxp/src/com/sun/org/apache/xalan/internal/utils/SecuritySupport.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/utils/SecuritySupport.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/utils/SecuritySupport.java 2014-07-15 21:46:30.000000000 -0700 @@ -57,7 +57,7 @@ return securitySupport; } @@ -26204,7 +28877,7 @@ public Object run() { ClassLoader cl = null; --- ./jaxp/src/com/sun/org/apache/xalan/internal/utils/XMLSecurityManager.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/utils/XMLSecurityManager.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/utils/XMLSecurityManager.java 2014-07-15 21:54:36.000000000 -0700 @@ -0,0 +1,437 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -26644,7 +29317,7 @@ + } +} --- ./jaxp/src/com/sun/org/apache/xalan/internal/utils/XMLSecurityPropertyManager.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/utils/XMLSecurityPropertyManager.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/utils/XMLSecurityPropertyManager.java 2014-07-15 21:46:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Oracle and/or its affiliates. All rights reserved. @@ -26775,7 +29448,7 @@ - } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/cmdline/Compile.java 2014-07-15 21:46:30.000000000 -0700 @@ -23,6 +23,7 @@ package com.sun.org.apache.xalan.internal.xsltc.cmdline; @@ -26794,7 +29467,7 @@ int c; --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/FunctionCall.java 2014-07-15 21:46:30.000000000 -0700 @@ -42,6 +42,7 @@ import com.sun.org.apache.bcel.internal.generic.LocalVariableGen; import com.sun.org.apache.bcel.internal.generic.NEW; @@ -26831,7 +29504,7 @@ final String clazz = _chosenMethod.getDeclaringClass().getName(); --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Import.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Import.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Import.java 2014-07-15 21:46:30.000000000 -0700 @@ -86,7 +86,7 @@ if (input == null) { docToLoad = SystemIDResolver.getAbsoluteURI(docToLoad, currLoadedDoc); @@ -26842,7 +29515,7 @@ if (accessError != null) { --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Include.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Include.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Include.java 2014-07-15 21:46:30.000000000 -0700 @@ -87,7 +87,7 @@ if (input == null) { docToLoad = SystemIDResolver.getAbsoluteURI(docToLoad, currLoadedDoc); @@ -26853,7 +29526,7 @@ if (accessError != null) { --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java 2013-09-06 11:22:55.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/Parser.java 2014-07-15 21:46:30.000000000 -0700 @@ -28,6 +28,7 @@ import com.sun.org.apache.xalan.internal.utils.FactoryImpl; import com.sun.org.apache.xalan.internal.utils.ObjectFactory; @@ -26892,8 +29565,30 @@ XalanConstants.ACCESS_EXTERNAL_ALL); if (accessError != null) { ErrorMsg msg = new ErrorMsg(ErrorMsg.ACCESSING_XSLT_TARGET_ERR, +--- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StringLengthCall.java 2013-09-06 11:22:56.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/StringLengthCall.java 2014-10-28 20:19:32.000000000 -0700 +@@ -26,7 +26,7 @@ + import java.util.Vector; + + import com.sun.org.apache.bcel.internal.generic.ConstantPoolGen; +-import com.sun.org.apache.bcel.internal.generic.INVOKEVIRTUAL; ++import com.sun.org.apache.bcel.internal.generic.INVOKESTATIC; + import com.sun.org.apache.bcel.internal.generic.InstructionList; + import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator; + import com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator; +@@ -51,7 +51,8 @@ + il.append(methodGen.loadContextNode()); + Type.Node.translateTo(classGen, methodGen, Type.String); + } +- il.append(new INVOKEVIRTUAL(cpg.addMethodref(STRING_CLASS, +- "length", "()I"))); ++ il.append(new INVOKESTATIC(cpg.addMethodref(BASIS_LIBRARY_CLASS, ++ "getStringLength", ++ "(Ljava/lang/String;)I"))); + } + } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/XSLTC.java 2014-07-15 21:46:30.000000000 -0700 @@ -43,12 +43,14 @@ import com.sun.org.apache.bcel.internal.classfile.JavaClass; @@ -26973,7 +29668,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27003,7 +29698,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ca.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ca.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ca.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27033,7 +29728,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_cs.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_cs.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_cs.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27063,7 +29758,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_de.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27093,7 +29788,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_es.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27123,7 +29818,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_fr.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27153,7 +29848,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_it.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27183,7 +29878,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ja.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27213,7 +29908,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_ko.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27243,7 +29938,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_pt_BR.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27273,7 +29968,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sk.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sk.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sk.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27303,7 +29998,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_sv.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27333,7 +30028,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_CN.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27363,7 +30058,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/compiler/util/ErrorMessages_zh_TW.java 2014-07-15 21:46:30.000000000 -0700 @@ -90,7 +90,13 @@ */ @@ -27393,7 +30088,7 @@ } } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/BasisLibrary.java 2014-10-28 20:19:32.000000000 -0700 @@ -955,6 +955,9 @@ if (Double.isNaN(d) || Double.isInfinite(d)) return(Double.toString(d)); @@ -27404,8 +30099,23 @@ // Use the XPath formatter to ignore locales StringBuffer result = threadLocalStringBuffer.get(); result.setLength(0); +@@ -1657,5 +1660,14 @@ + + } + ++ /** ++ * Utility method to calculate string-length as a number of code points, ++ * to avoid possible errors with string that contains ++ * complementary characters ++ */ ++ public static int getStringLength(String str) { ++ return str.codePointCount(0,str.length()); ++ } ++ + //-- End utility functions + } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages.java 2014-07-15 21:46:30.000000000 -0700 @@ -81,7 +81,13 @@ */ @@ -27436,7 +30146,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ca.java 2013-09-06 11:22:56.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ca.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ca.java 2014-07-15 21:46:30.000000000 -0700 @@ -79,7 +79,13 @@ */ @@ -27467,7 +30177,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_cs.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_cs.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_cs.java 2014-07-15 21:46:30.000000000 -0700 @@ -79,7 +79,13 @@ */ @@ -27498,7 +30208,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_de.java 2014-07-15 21:46:30.000000000 -0700 @@ -81,7 +81,13 @@ */ @@ -27529,7 +30239,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_es.java 2014-07-15 21:46:30.000000000 -0700 @@ -81,7 +81,13 @@ */ @@ -27560,7 +30270,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_fr.java 2014-07-15 21:46:30.000000000 -0700 @@ -81,7 +81,13 @@ */ @@ -27591,7 +30301,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_it.java 2014-07-15 21:46:30.000000000 -0700 @@ -81,7 +81,13 @@ */ @@ -27622,7 +30332,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ja.java 2014-07-15 21:46:30.000000000 -0700 @@ -81,7 +81,13 @@ */ @@ -27653,7 +30363,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_ko.java 2014-07-15 21:46:30.000000000 -0700 @@ -81,7 +81,13 @@ */ @@ -27684,7 +30394,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_pt_BR.java 2014-07-15 21:46:30.000000000 -0700 @@ -81,7 +81,13 @@ */ @@ -27715,7 +30425,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sk.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sk.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sk.java 2014-07-15 21:46:30.000000000 -0700 @@ -79,7 +79,13 @@ */ @@ -27746,7 +30456,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_sv.java 2014-07-15 21:46:30.000000000 -0700 @@ -81,7 +81,13 @@ */ @@ -27777,7 +30487,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_CN.java 2014-07-15 21:46:30.000000000 -0700 @@ -81,7 +81,13 @@ */ @@ -27808,7 +30518,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/runtime/ErrorMessages_zh_TW.java 2014-07-15 21:46:30.000000000 -0700 @@ -81,7 +81,13 @@ */ @@ -27839,7 +30549,7 @@ } --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesHandlerImpl.java 2014-07-15 21:46:30.000000000 -0700 @@ -29,7 +29,7 @@ import javax.xml.transform.TransformerException; import javax.xml.transform.URIResolver; @@ -27868,7 +30578,7 @@ if ("true".equals(tfactory.getAttribute(TransformerFactoryImpl.ENABLE_INLINING))) --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java 2014-07-15 21:46:30.000000000 -0700 @@ -23,6 +23,23 @@ package com.sun.org.apache.xalan.internal.xsltc.trax; @@ -28100,7 +30810,7 @@ // Set a document loader (for xsl:include/import) if defined --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerImpl.java 2014-07-15 21:46:30.000000000 -0700 @@ -25,6 +25,7 @@ import com.sun.org.apache.xalan.internal.XalanConstants; @@ -28138,7 +30848,7 @@ /** * Return the state of the services mechanism feature. --- ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xalan/internal/xsltc/trax/Util.java 2014-07-15 21:46:30.000000000 -0700 @@ -23,6 +23,7 @@ package com.sun.org.apache.xalan.internal.xsltc.trax; @@ -28193,7 +30903,7 @@ }catch (SAXNotRecognizedException snre ) { throw new TransformerConfigurationException --- ./jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java 2014-07-15 23:25:05.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xerces/internal/dom/DOMConfigurationImpl.java 2014-07-15 21:46:30.000000000 -0700 @@ -33,6 +33,7 @@ import com.sun.org.apache.xerces.internal.util.PropertyState; import com.sun.org.apache.xerces.internal.util.SymbolTable; @@ -28238,7 +30948,7 @@ new XMLSecurityPropertyManager()); --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java 2014-07-15 21:54:36.000000000 -0700 @@ -174,8 +174,6 @@ /** JAXP schemaSource language: when used internally may include DTD namespace (DOM) */ public static final String SCHEMA_LANGUAGE = "schemaLanguage"; @@ -28388,7 +31098,7 @@ /** * {@link org.w3c.dom.TypeInfo} associated with current element/attribute --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/PropertyManager.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/PropertyManager.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/PropertyManager.java 2014-07-15 21:46:30.000000000 -0700 @@ -25,6 +25,7 @@ package com.sun.org.apache.xerces.internal.impl; @@ -28480,8 +31190,577 @@ } if(equivalentProperty != null){ +--- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java 2013-09-06 11:22:57.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11EntityScanner.java 2014-10-28 20:19:32.000000000 -0700 +@@ -61,14 +61,13 @@ + + package com.sun.org.apache.xerces.internal.impl; + +-import java.io.IOException; +- + import com.sun.org.apache.xerces.internal.impl.msg.XMLMessageFormatter; +-import com.sun.org.apache.xerces.internal.util.XMLChar; + import com.sun.org.apache.xerces.internal.util.XML11Char; ++import com.sun.org.apache.xerces.internal.util.XMLChar; + import com.sun.org.apache.xerces.internal.util.XMLStringBuffer; + import com.sun.org.apache.xerces.internal.xni.QName; + import com.sun.org.apache.xerces.internal.xni.XMLString; ++import java.io.IOException; + + /** + * Implements the entity scanner methods in +@@ -78,6 +77,7 @@ + * + * @author Michael Glavassevich, IBM + * @author Neil Graham, IBM ++ * @version $Id: XML11EntityScanner.java,v 1.5 2010-11-01 04:39:40 joehw Exp $ + */ + + public class XML11EntityScanner +@@ -108,7 +108,7 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + } + + // peek at character +@@ -136,7 +136,7 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + } + + // scan character +@@ -148,7 +148,7 @@ + fCurrentEntity.columnNumber = 1; + if (fCurrentEntity.position == fCurrentEntity.count) { + fCurrentEntity.ch[0] = (char)c; +- load(1, false); ++ load(1, false, true); + } + if (c == '\r' && external) { + int cc = fCurrentEntity.ch[fCurrentEntity.position++]; +@@ -183,7 +183,7 @@ + public String scanNmtoken() throws IOException { + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + } + + // scan nmtoken +@@ -194,6 +194,7 @@ + if (XML11Char.isXML11Name(ch)) { + if (++fCurrentEntity.position == fCurrentEntity.count) { + int length = fCurrentEntity.position - offset; ++ invokeListeners(length); + if (length == fCurrentEntity.ch.length) { + // bad luck we have to resize our buffer + char[] tmp = new char[fCurrentEntity.ch.length << 1]; +@@ -206,7 +207,7 @@ + fCurrentEntity.ch, 0, length); + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + break; + } + } +@@ -214,6 +215,7 @@ + else if (XML11Char.isXML11NameHighSurrogate(ch)) { + if (++fCurrentEntity.position == fCurrentEntity.count) { + int length = fCurrentEntity.position - offset; ++ invokeListeners(length); + if (length == fCurrentEntity.ch.length) { + // bad luck we have to resize our buffer + char[] tmp = new char[fCurrentEntity.ch.length << 1]; +@@ -226,7 +228,7 @@ + fCurrentEntity.ch, 0, length); + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + --fCurrentEntity.startPosition; + --fCurrentEntity.position; + break; +@@ -240,6 +242,7 @@ + } + if (++fCurrentEntity.position == fCurrentEntity.count) { + int length = fCurrentEntity.position - offset; ++ invokeListeners(length); + if (length == fCurrentEntity.ch.length) { + // bad luck we have to resize our buffer + char[] tmp = new char[fCurrentEntity.ch.length << 1]; +@@ -252,7 +255,7 @@ + fCurrentEntity.ch, 0, length); + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + break; + } + } +@@ -294,7 +297,7 @@ + public String scanName() throws IOException { + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + } + + // scan name +@@ -305,7 +308,7 @@ + if (++fCurrentEntity.position == fCurrentEntity.count) { + fCurrentEntity.ch[0] = ch; + offset = 0; +- if (load(1, false)) { ++ if (load(1, false, true)) { + fCurrentEntity.columnNumber++; + String symbol = fSymbolTable.addSymbol(fCurrentEntity.ch, 0, 1); + return symbol; +@@ -316,7 +319,7 @@ + if (++fCurrentEntity.position == fCurrentEntity.count) { + fCurrentEntity.ch[0] = ch; + offset = 0; +- if (load(1, false)) { ++ if (load(1, false, true)) { + --fCurrentEntity.position; + --fCurrentEntity.startPosition; + return null; +@@ -332,7 +335,7 @@ + fCurrentEntity.ch[0] = ch; + fCurrentEntity.ch[1] = ch2; + offset = 0; +- if (load(2, false)) { ++ if (load(2, false, true)) { + fCurrentEntity.columnNumber += 2; + String symbol = fSymbolTable.addSymbol(fCurrentEntity.ch, 0, 2); + return symbol; +@@ -348,6 +351,7 @@ + if (XML11Char.isXML11Name(ch)) { + if (++fCurrentEntity.position == fCurrentEntity.count) { + int length = fCurrentEntity.position - offset; ++ invokeListeners(length); + if (length == fCurrentEntity.ch.length) { + // bad luck we have to resize our buffer + char[] tmp = new char[fCurrentEntity.ch.length << 1]; +@@ -360,7 +364,7 @@ + fCurrentEntity.ch, 0, length); + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + break; + } + } +@@ -368,6 +372,7 @@ + else if (XML11Char.isXML11NameHighSurrogate(ch)) { + if (++fCurrentEntity.position == fCurrentEntity.count) { + int length = fCurrentEntity.position - offset; ++ invokeListeners(length); + if (length == fCurrentEntity.ch.length) { + // bad luck we have to resize our buffer + char[] tmp = new char[fCurrentEntity.ch.length << 1]; +@@ -380,7 +385,7 @@ + fCurrentEntity.ch, 0, length); + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + --fCurrentEntity.position; + --fCurrentEntity.startPosition; + break; +@@ -394,6 +399,7 @@ + } + if (++fCurrentEntity.position == fCurrentEntity.count) { + int length = fCurrentEntity.position - offset; ++ invokeListeners(length); + if (length == fCurrentEntity.ch.length) { + // bad luck we have to resize our buffer + char[] tmp = new char[fCurrentEntity.ch.length << 1]; +@@ -406,7 +412,7 @@ + fCurrentEntity.ch, 0, length); + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + break; + } + } +@@ -449,7 +455,7 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + } + + // scan name +@@ -460,7 +466,7 @@ + if (++fCurrentEntity.position == fCurrentEntity.count) { + fCurrentEntity.ch[0] = ch; + offset = 0; +- if (load(1, false)) { ++ if (load(1, false, true)) { + fCurrentEntity.columnNumber++; + String symbol = fSymbolTable.addSymbol(fCurrentEntity.ch, 0, 1); + return symbol; +@@ -471,7 +477,7 @@ + if (++fCurrentEntity.position == fCurrentEntity.count) { + fCurrentEntity.ch[0] = ch; + offset = 0; +- if (load(1, false)) { ++ if (load(1, false, true)) { + --fCurrentEntity.position; + --fCurrentEntity.startPosition; + return null; +@@ -487,7 +493,7 @@ + fCurrentEntity.ch[0] = ch; + fCurrentEntity.ch[1] = ch2; + offset = 0; +- if (load(2, false)) { ++ if (load(2, false, true)) { + fCurrentEntity.columnNumber += 2; + String symbol = fSymbolTable.addSymbol(fCurrentEntity.ch, 0, 2); + return symbol; +@@ -503,6 +509,7 @@ + if (XML11Char.isXML11NCName(ch)) { + if (++fCurrentEntity.position == fCurrentEntity.count) { + int length = fCurrentEntity.position - offset; ++ invokeListeners(length); + if (length == fCurrentEntity.ch.length) { + // bad luck we have to resize our buffer + char[] tmp = new char[fCurrentEntity.ch.length << 1]; +@@ -515,7 +522,7 @@ + fCurrentEntity.ch, 0, length); + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + break; + } + } +@@ -523,6 +530,7 @@ + else if (XML11Char.isXML11NameHighSurrogate(ch)) { + if (++fCurrentEntity.position == fCurrentEntity.count) { + int length = fCurrentEntity.position - offset; ++ invokeListeners(length); + if (length == fCurrentEntity.ch.length) { + // bad luck we have to resize our buffer + char[] tmp = new char[fCurrentEntity.ch.length << 1]; +@@ -535,7 +543,7 @@ + fCurrentEntity.ch, 0, length); + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + --fCurrentEntity.startPosition; + --fCurrentEntity.position; + break; +@@ -549,6 +557,7 @@ + } + if (++fCurrentEntity.position == fCurrentEntity.count) { + int length = fCurrentEntity.position - offset; ++ invokeListeners(length); + if (length == fCurrentEntity.ch.length) { + // bad luck we have to resize our buffer + char[] tmp = new char[fCurrentEntity.ch.length << 1]; +@@ -561,7 +570,7 @@ + fCurrentEntity.ch, 0, length); + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + break; + } + } +@@ -610,7 +619,7 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + } + + // scan qualified name +@@ -621,7 +630,7 @@ + if (++fCurrentEntity.position == fCurrentEntity.count) { + fCurrentEntity.ch[0] = ch; + offset = 0; +- if (load(1, false)) { ++ if (load(1, false, true)) { + fCurrentEntity.columnNumber++; + String name = fSymbolTable.addSymbol(fCurrentEntity.ch, 0, 1); + qname.setValues(null, name, name, null); +@@ -633,7 +642,7 @@ + if (++fCurrentEntity.position == fCurrentEntity.count) { + fCurrentEntity.ch[0] = ch; + offset = 0; +- if (load(1, false)) { ++ if (load(1, false, true)) { + --fCurrentEntity.startPosition; + --fCurrentEntity.position; + return false; +@@ -649,7 +658,7 @@ + fCurrentEntity.ch[0] = ch; + fCurrentEntity.ch[1] = ch2; + offset = 0; +- if (load(2, false)) { ++ if (load(2, false, true)) { + fCurrentEntity.columnNumber += 2; + String name = fSymbolTable.addSymbol(fCurrentEntity.ch, 0, 2); + qname.setValues(null, name, name, null); +@@ -674,6 +683,7 @@ + } + if (++fCurrentEntity.position == fCurrentEntity.count) { + int length = fCurrentEntity.position - offset; ++ invokeListeners(length); + if (length == fCurrentEntity.ch.length) { + // bad luck we have to resize our buffer + char[] tmp = new char[fCurrentEntity.ch.length << 1]; +@@ -689,7 +699,7 @@ + index = index - offset; + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + break; + } + } +@@ -697,6 +707,7 @@ + else if (XML11Char.isXML11NameHighSurrogate(ch)) { + if (++fCurrentEntity.position == fCurrentEntity.count) { + int length = fCurrentEntity.position - offset; ++ invokeListeners(length); + if (length == fCurrentEntity.ch.length) { + // bad luck we have to resize our buffer + char[] tmp = new char[fCurrentEntity.ch.length << 1]; +@@ -712,7 +723,7 @@ + index = index - offset; + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + sawIncompleteSurrogatePair = true; + --fCurrentEntity.startPosition; + --fCurrentEntity.position; +@@ -728,6 +739,7 @@ + } + if (++fCurrentEntity.position == fCurrentEntity.count) { + int length = fCurrentEntity.position - offset; ++ invokeListeners(length); + if (length == fCurrentEntity.ch.length) { + // bad luck we have to resize our buffer + char[] tmp = new char[fCurrentEntity.ch.length << 1]; +@@ -743,7 +755,7 @@ + index = index - offset; + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + break; + } + } +@@ -820,11 +832,11 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + } + else if (fCurrentEntity.position == fCurrentEntity.count - 1) { + fCurrentEntity.ch[0] = fCurrentEntity.ch[fCurrentEntity.count - 1]; +- load(1, false); ++ load(1, false, true); + fCurrentEntity.position = 0; + fCurrentEntity.startPosition = 0; + } +@@ -846,7 +858,7 @@ + fCurrentEntity.baseCharOffset += (fCurrentEntity.position - fCurrentEntity.startPosition); + fCurrentEntity.position = newlines; + fCurrentEntity.startPosition = newlines; +- if (load(newlines, false)) { ++ if (load(newlines, false, true)) { + break; + } + } +@@ -869,7 +881,7 @@ + fCurrentEntity.baseCharOffset += (fCurrentEntity.position - fCurrentEntity.startPosition); + fCurrentEntity.position = newlines; + fCurrentEntity.startPosition = newlines; +- if (load(newlines, false)) { ++ if (load(newlines, false, true)) { + break; + } + } +@@ -961,11 +973,11 @@ + throws IOException { + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + } + else if (fCurrentEntity.position == fCurrentEntity.count - 1) { + fCurrentEntity.ch[0] = fCurrentEntity.ch[fCurrentEntity.count - 1]; +- load(1, false); ++ load(1, false, true); + fCurrentEntity.startPosition = 0; + fCurrentEntity.position = 0; + } +@@ -987,7 +999,7 @@ + fCurrentEntity.baseCharOffset += (fCurrentEntity.position - fCurrentEntity.startPosition); + fCurrentEntity.position = newlines; + fCurrentEntity.startPosition = newlines; +- if (load(newlines, false)) { ++ if (load(newlines, false, true)) { + break; + } + } +@@ -1010,7 +1022,7 @@ + fCurrentEntity.baseCharOffset += (fCurrentEntity.position - fCurrentEntity.startPosition); + fCurrentEntity.position = newlines; + fCurrentEntity.startPosition = newlines; +- if (load(newlines, false)) { ++ if (load(newlines, false, true)) { + break; + } + } +@@ -1113,7 +1125,7 @@ + do { + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, false); + } + + boolean bNextEntity = false; +@@ -1127,7 +1139,7 @@ + 0, + fCurrentEntity.count - fCurrentEntity.position); + +- bNextEntity = load(fCurrentEntity.count - fCurrentEntity.position, false); ++ bNextEntity = load(fCurrentEntity.count - fCurrentEntity.position, false, false); + fCurrentEntity.position = 0; + fCurrentEntity.startPosition = 0; + } +@@ -1140,7 +1152,7 @@ + fCurrentEntity.baseCharOffset += (fCurrentEntity.position - fCurrentEntity.startPosition); + fCurrentEntity.position = fCurrentEntity.count; + fCurrentEntity.startPosition = fCurrentEntity.count; +- load(0,true); ++ load(0,true, false); + return false; + } + +@@ -1160,7 +1172,7 @@ + fCurrentEntity.baseCharOffset += (fCurrentEntity.position - fCurrentEntity.startPosition); + fCurrentEntity.position = newlines; + fCurrentEntity.startPosition = newlines; +- if (load(newlines, false)) { ++ if (load(newlines, false, true)) { + break; + } + } +@@ -1184,7 +1196,7 @@ + fCurrentEntity.position = newlines; + fCurrentEntity.startPosition = newlines; + fCurrentEntity.count = newlines; +- if (load(newlines, false)) { ++ if (load(newlines, false, true)) { + break; + } + } +@@ -1309,7 +1321,7 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + } + + // skip character +@@ -1335,7 +1347,7 @@ + // handle newlines + if (fCurrentEntity.position == fCurrentEntity.count) { + fCurrentEntity.ch[0] = (char)cc; +- load(1, false); ++ load(1, false, true); + } + int ccc = fCurrentEntity.ch[++fCurrentEntity.position]; + if (ccc == '\n' || ccc == 0x85) { +@@ -1369,7 +1381,7 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + } + + +@@ -1397,7 +1409,7 @@ + fCurrentEntity.columnNumber = 1; + if (fCurrentEntity.position == fCurrentEntity.count - 1) { + fCurrentEntity.ch[0] = (char)c; +- entityChanged = load(1, true); ++ entityChanged = load(1, true, true); + if (!entityChanged) { + // the load change the position to be 1, + // need to restore it when entity not changed +@@ -1424,7 +1436,7 @@ + if (!entityChanged) + fCurrentEntity.position++; + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + + if(fCurrentEntity == null){ + return true ; +@@ -1445,7 +1457,7 @@ + fCurrentEntity.columnNumber = 1; + if (fCurrentEntity.position == fCurrentEntity.count - 1) { + fCurrentEntity.ch[0] = (char)c; +- entityChanged = load(1, true); ++ entityChanged = load(1, true, true); + if (!entityChanged) { + // the load change the position to be 1, + // need to restore it when entity not changed +@@ -1463,7 +1475,7 @@ + if (!entityChanged) + fCurrentEntity.position++; + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + + if(fCurrentEntity == null){ + return true ; +@@ -1496,7 +1508,7 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, true); + } + + // skip string +@@ -1508,10 +1520,11 @@ + return false; + } + if (i < length - 1 && fCurrentEntity.position == fCurrentEntity.count) { ++ invokeListeners(0); + System.arraycopy(fCurrentEntity.ch, fCurrentEntity.count - i - 1, fCurrentEntity.ch, 0, i + 1); + // REVISIT: Can a string to be skipped cross an + // entity boundary? -Ac +- if (load(i + 1, false)) { ++ if (load(i + 1, false, false)) { + fCurrentEntity.startPosition -= i + 1; + fCurrentEntity.position -= i + 1; + return false; --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XML11NSDocumentScannerImpl.java 2014-07-15 21:46:30.000000000 -0700 @@ -108,6 +108,7 @@ * @author Elena Litani, IBM * @author Michael Glavassevich, IBM @@ -28501,7 +31780,7 @@ "ElementAttributeLimit", new Object[]{rawname, new Integer(fElementAttributeLimit) }, --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDTDScannerImpl.java 2014-07-15 21:46:30.000000000 -0700 @@ -44,6 +44,9 @@ import com.sun.org.apache.xerces.internal.impl.XMLErrorReporter; import com.sun.org.apache.xerces.internal.impl.XMLEntityHandler; @@ -28645,7 +31924,7 @@ public DTDGrammar getGrammar(){ --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java 2014-10-28 20:19:32.000000000 -0700 @@ -50,12 +50,14 @@ import com.sun.org.apache.xerces.internal.xni.Augmentations; import com.sun.org.apache.xerces.internal.impl.Constants; @@ -28757,7 +32036,7 @@ //fEntityManager.test(); } // reset(XMLComponentManager) -@@ -631,17 +609,7 @@ +@@ -631,22 +609,12 @@ fNamespaces = ((Boolean)propertyManager.getProperty(XMLInputFactory.IS_NAMESPACE_AWARE)).booleanValue(); fNotifyBuiltInRefs = false ; @@ -28774,7 +32053,14 @@ - fStandalone = false; //fReplaceEntityReferences = true; //fSupportExternalEntities = true; - Boolean bo = (Boolean)propertyManager.getProperty(XMLInputFactoryImpl.IS_REPLACING_ENTITY_REFERENCES); +- Boolean bo = (Boolean)propertyManager.getProperty(XMLInputFactoryImpl.IS_REPLACING_ENTITY_REFERENCES); ++ Boolean bo = (Boolean)propertyManager.getProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES); + fReplaceEntityReferences = bo.booleanValue(); +- bo = (Boolean)propertyManager.getProperty(XMLInputFactoryImpl.IS_SUPPORTING_EXTERNAL_ENTITIES); ++ bo = (Boolean)propertyManager.getProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES); + fSupportExternalEntities = bo.booleanValue(); + Boolean cdata = (Boolean)propertyManager.getProperty(Constants.ZEPHYR_PROPERTY_PREFIX + Constants.STAX_REPORT_CDATA_EVENT) ; + if(cdata != null) @@ -662,17 +630,43 @@ //we dont need to do this -- nb. //setScannerState(SCANNER_STATE_CONTENT); @@ -28944,7 +32230,7 @@ // // Protected methods --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java 2014-07-15 21:46:30.000000000 -0700 @@ -1090,6 +1090,8 @@ ((XMLDTDScannerImpl)fDTDScanner).reset(fPropertyManager); @@ -28955,7 +32241,7 @@ again = false; switch (fScannerState) { --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java 2013-09-06 11:22:57.000000000 -0700 -+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java 2014-07-15 23:25:04.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityManager.java 2014-10-28 20:19:32.000000000 -0700 @@ -18,19 +18,17 @@ * limitations under the License. */ @@ -28979,7 +32265,15 @@ import com.sun.org.apache.xerces.internal.utils.XMLSecurityPropertyManager; import com.sun.org.apache.xerces.internal.xni.Augmentations; import com.sun.org.apache.xerces.internal.xni.XMLResourceIdentifier; -@@ -174,7 +172,6 @@ +@@ -52,6 +50,7 @@ + import java.util.Map; + import java.util.Stack; + import javax.xml.XMLConstants; ++import javax.xml.stream.XMLInputFactory; + + + /** +@@ -174,7 +173,6 @@ /** access external dtd: file protocol */ static final String EXTERNAL_ACCESS_DEFAULT = Constants.EXTERNAL_ACCESS_DEFAULT; @@ -28987,15 +32281,22 @@ // recognized features and properties /** Recognized features. */ -@@ -307,6 +304,7 @@ +@@ -305,8 +303,14 @@ + /** Property Manager. This is used from Stax */ + protected PropertyManager fPropertyManager ; ++ /** StAX properties */ ++ boolean fSupportDTD = true; ++ boolean fReplaceEntityReferences = true; ++ boolean fSupportExternalEntities = true; ++ /** used to restrict external access */ protected String fAccessExternalDTD = EXTERNAL_ACCESS_DEFAULT; + // settings /** -@@ -324,9 +322,12 @@ +@@ -324,9 +328,12 @@ */ protected int fBufferSize = DEFAULT_BUFFER_SIZE; @@ -29011,7 +32312,7 @@ /** * True if the document entity is standalone. This should really -@@ -352,10 +353,6 @@ +@@ -352,10 +359,6 @@ /** XML 1.1 entity scanner. */ protected XMLEntityScanner fXML11EntityScanner; @@ -29022,7 +32323,7 @@ /** count of entities expanded: */ protected int fEntityExpansionCount = 0; -@@ -833,6 +830,9 @@ +@@ -833,6 +836,9 @@ fCurrentEntity.setEncodingExternallySpecified(encodingExternallySpecified); fEntityScanner.setCurrentEntity(fCurrentEntity); fResourceIdentifier.setValues(publicId, literalSystemId, baseSystemId, expandedSystemId); @@ -29032,7 +32333,17 @@ return encoding; } //setupCurrentEntity(String, XMLInputSource, boolean, boolean): String -@@ -1294,10 +1294,13 @@ +@@ -1133,7 +1139,8 @@ + boolean parameter = entityName.startsWith("%"); + boolean general = !parameter; + if (unparsed || (general && !fExternalGeneralEntities) || +- (parameter && !fExternalParameterEntities)) { ++ (parameter && !fExternalParameterEntities) || ++ !fSupportDTD || !fSupportExternalEntities) { + + if (fEntityHandler != null) { + fResourceIdentifier.clear(); +@@ -1294,10 +1301,13 @@ //expansions exceeds the entity expansion limit, parser will throw fatal error. // Note that this represents the nesting level of open entities. fEntityExpansionCount++; @@ -29050,7 +32361,7 @@ XMLErrorReporter.SEVERITY_FATAL_ERROR ); // is there anything better to do than reset the counter? // at least one can envision debugging applications where this might -@@ -1361,6 +1364,12 @@ +@@ -1361,6 +1371,12 @@ if(fCurrentEntity != null){ //close the reader try{ @@ -29063,7 +32374,18 @@ fCurrentEntity.close(); }catch(IOException ex){ throw new XNIException(ex); -@@ -1426,6 +1435,8 @@ +@@ -1419,6 +1435,10 @@ + fStaxEntityResolver = null; + } + ++ fSupportDTD = ((Boolean)propertyManager.getProperty(XMLInputFactory.SUPPORT_DTD)).booleanValue(); ++ fReplaceEntityReferences = ((Boolean)propertyManager.getProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES)).booleanValue(); ++ fSupportExternalEntities = ((Boolean)propertyManager.getProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES)).booleanValue(); ++ + // Zephyr feature ignore-external-dtd is the opposite of Xerces' load-external-dtd + fLoadExternalDTD = !((Boolean)propertyManager.getProperty(Constants.ZEPHYR_PROPERTY_PREFIX + Constants.IGNORE_EXTERNAL_DTD)).booleanValue(); + +@@ -1426,6 +1446,8 @@ XMLSecurityPropertyManager spm = (XMLSecurityPropertyManager) propertyManager.getProperty(XML_SECURITY_PROPERTY_MANAGER); fAccessExternalDTD = spm.getValue(XMLSecurityPropertyManager.Property.ACCESS_EXTERNAL_DTD); @@ -29072,17 +32394,22 @@ // initialize state //fStandalone = false; fEntities.clear(); -@@ -1485,7 +1496,8 @@ +@@ -1485,7 +1507,13 @@ fEntityResolver = (XMLEntityResolver)componentManager.getProperty(ENTITY_RESOLVER, null); fStaxEntityResolver = (StaxEntityResolverWrapper)componentManager.getProperty(STAX_ENTITY_RESOLVER, null); fValidationManager = (ValidationManager)componentManager.getProperty(VALIDATION_MANAGER, null); - fSecurityManager = (SecurityManager)componentManager.getProperty(SECURITY_MANAGER, null); + fSecurityManager = (XMLSecurityManager)componentManager.getProperty(SECURITY_MANAGER, null); + entityExpansionIndex = fSecurityManager.getIndex(Constants.JDK_ENTITY_EXPANSION_LIMIT); ++ ++ //StAX Property ++ fSupportDTD = true; ++ fReplaceEntityReferences = true; ++ fSupportExternalEntities = true; // JAXP 1.5 feature XMLSecurityPropertyManager spm = (XMLSecurityPropertyManager) componentManager.getProperty(XML_SECURITY_PROPERTY_MANAGER, null); -@@ -1506,7 +1518,6 @@ +@@ -1506,7 +1534,6 @@ // a class acting as a component manager but not // implementing that interface for whatever reason. public void reset() { @@ -29090,7 +32417,7 @@ // initialize state fStandalone = false; -@@ -1642,17 +1653,20 @@ +@@ -1642,17 +1669,20 @@ } if (suffixLength == Constants.SECURITY_MANAGER_PROPERTY.length() && propertyId.endsWith(Constants.SECURITY_MANAGER_PROPERTY)) { @@ -29114,8 +32441,423 @@ } /** +--- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java 2013-09-06 11:22:57.000000000 -0700 ++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLEntityScanner.java 2014-10-28 20:19:32.000000000 -0700 +@@ -20,34 +20,28 @@ + + package com.sun.org.apache.xerces.internal.impl; + +-import java.io.EOFException; +-import java.io.IOException; +-import java.util.Locale; +-import java.util.Vector; +- +-import com.sun.xml.internal.stream.Entity; +-import com.sun.xml.internal.stream.XMLBufferListener; +-import java.io.InputStream; +-import java.io.InputStreamReader; +-import java.io.Reader; + + + import com.sun.org.apache.xerces.internal.impl.io.ASCIIReader; + import com.sun.org.apache.xerces.internal.impl.io.UCSReader; + import com.sun.org.apache.xerces.internal.impl.io.UTF8Reader; +- +- + import com.sun.org.apache.xerces.internal.impl.msg.XMLMessageFormatter; + import com.sun.org.apache.xerces.internal.util.EncodingMap; +- + import com.sun.org.apache.xerces.internal.util.SymbolTable; + import com.sun.org.apache.xerces.internal.util.XMLChar; + import com.sun.org.apache.xerces.internal.util.XMLStringBuffer; +-import com.sun.org.apache.xerces.internal.xni.QName; +-import com.sun.org.apache.xerces.internal.xni.XMLString; ++import com.sun.org.apache.xerces.internal.xni.*; + import com.sun.org.apache.xerces.internal.xni.parser.XMLComponentManager; + import com.sun.org.apache.xerces.internal.xni.parser.XMLConfigurationException; +-import com.sun.org.apache.xerces.internal.xni.*; ++import com.sun.xml.internal.stream.Entity; ++import com.sun.xml.internal.stream.XMLBufferListener; ++import java.io.EOFException; ++import java.io.IOException; ++import java.io.InputStream; ++import java.io.InputStreamReader; ++import java.io.Reader; ++import java.util.Locale; ++import java.util.Vector; + + /** + * Implements the entity scanner methods. +@@ -493,8 +487,7 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(0); +- load(0, true); ++ load(0, true, true); + } + + // peek at character +@@ -535,8 +528,7 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(0); +- load(0, true); ++ load(0, true, true); + } + + // scan character +@@ -546,9 +538,8 @@ + fCurrentEntity.lineNumber++; + fCurrentEntity.columnNumber = 1; + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(1); + fCurrentEntity.ch[0] = (char)c; +- load(1, false); ++ load(1, false, true); + } + if (c == '\r' && isExternal) { + if (fCurrentEntity.ch[fCurrentEntity.position++] != '\n') { +@@ -593,8 +584,7 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(0); +- load(0, true); ++ load(0, true, true); + } + + // scan nmtoken +@@ -626,7 +616,7 @@ + fCurrentEntity.ch, 0, length); + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + break; + } + } +@@ -673,18 +663,16 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(0); +- load(0, true); ++ load(0, true, true); + } + + // scan name + int offset = fCurrentEntity.position; + if (XMLChar.isNameStart(fCurrentEntity.ch[offset])) { + if (++fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(1); + fCurrentEntity.ch[0] = fCurrentEntity.ch[offset]; + offset = 0; +- if (load(1, false)) { ++ if (load(1, false, true)) { + fCurrentEntity.columnNumber++; + String symbol = fSymbolTable.addSymbol(fCurrentEntity.ch, 0, 1); + +@@ -721,7 +709,7 @@ + fCurrentEntity.ch, 0, length); + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + break; + } + } +@@ -776,8 +764,7 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(0); +- load(0, true); ++ load(0, true, true); + } + + // scan qualified name +@@ -789,11 +776,10 @@ + + if (XMLChar.isNameStart(fCurrentEntity.ch[offset])) { + if (++fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(1); + fCurrentEntity.ch[0] = fCurrentEntity.ch[offset]; + offset = 0; + +- if (load(1, false)) { ++ if (load(1, false, true)) { + fCurrentEntity.columnNumber++; + //adding into symbol table. + //XXX We are trying to add single character in SymbolTable?????? +@@ -843,7 +829,7 @@ + index = index - offset; + } + offset = 0; +- if (load(length, false)) { ++ if (load(length, false, false)) { + break; + } + } +@@ -918,12 +904,10 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(0); +- load(0, true); ++ load(0, true, true); + } else if (fCurrentEntity.position == fCurrentEntity.count - 1) { +- invokeListeners(0); + fCurrentEntity.ch[0] = fCurrentEntity.ch[fCurrentEntity.count - 1]; +- load(1, false); ++ load(1, false, true); + fCurrentEntity.position = 0; + } + +@@ -945,9 +929,8 @@ + fCurrentEntity.columnNumber = 1; + if (fCurrentEntity.position == fCurrentEntity.count) { + offset = 0; +- invokeListeners(newlines); + fCurrentEntity.position = newlines; +- if (load(newlines, false)) { ++ if (load(newlines, false, true)) { + break; + } + } +@@ -965,9 +948,8 @@ + fCurrentEntity.columnNumber = 1; + if (fCurrentEntity.position == fCurrentEntity.count) { + offset = 0; +- invokeListeners(newlines); + fCurrentEntity.position = newlines; +- if (load(newlines, false)) { ++ if (load(newlines, false, true)) { + break; + } + } +@@ -1070,13 +1052,10 @@ + } + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(0); +- load(0, true); ++ load(0, true, true); + } else if (fCurrentEntity.position == fCurrentEntity.count - 1) { +- invokeListeners(0); + fCurrentEntity.ch[0] = fCurrentEntity.ch[fCurrentEntity.count - 1]; +- +- load(1, false); ++ load(1, false, true); + fCurrentEntity.position = 0; + } + +@@ -1099,10 +1078,9 @@ + fCurrentEntity.lineNumber++; + fCurrentEntity.columnNumber = 1; + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(newlines); + offset = 0; + fCurrentEntity.position = newlines; +- if (load(newlines, false)) { ++ if (load(newlines, false, true)) { + break; + } + } +@@ -1121,9 +1099,8 @@ + fCurrentEntity.columnNumber = 1; + if (fCurrentEntity.position == fCurrentEntity.count) { + offset = 0; +- invokeListeners(newlines); + fCurrentEntity.position = newlines; +- if (load(newlines, false)) { ++ if (load(newlines, false, true)) { + break; + } + } +@@ -1249,7 +1226,7 @@ + // load more characters, if needed + + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, false); + } + + boolean bNextEntity = false; +@@ -1263,7 +1240,7 @@ + 0, + fCurrentEntity.count - fCurrentEntity.position); + +- bNextEntity = load(fCurrentEntity.count - fCurrentEntity.position, false); ++ bNextEntity = load(fCurrentEntity.count - fCurrentEntity.position, false, false); + fCurrentEntity.position = 0; + fCurrentEntity.startPosition = 0; + } +@@ -1276,7 +1253,7 @@ + fCurrentEntity.baseCharOffset += (fCurrentEntity.position - fCurrentEntity.startPosition); + fCurrentEntity.position = fCurrentEntity.count; + fCurrentEntity.startPosition = fCurrentEntity.count; +- load(0, true); ++ load(0, true, false); + return false; + } + +@@ -1298,9 +1275,8 @@ + fCurrentEntity.columnNumber = 1; + if (fCurrentEntity.position == fCurrentEntity.count) { + offset = 0; +- invokeListeners(newlines); + fCurrentEntity.position = newlines; +- if (load(newlines, false)) { ++ if (load(newlines, false, true)) { + break; + } + } +@@ -1318,10 +1294,9 @@ + fCurrentEntity.columnNumber = 1; + if (fCurrentEntity.position == fCurrentEntity.count) { + offset = 0; +- invokeListeners(newlines); + fCurrentEntity.position = newlines; + fCurrentEntity.count = newlines; +- if (load(newlines, false)) { ++ if (load(newlines, false, true)) { + break; + } + } +@@ -1422,8 +1397,7 @@ + + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(0); +- load(0, true); ++ load(0, true, true); + } + + // skip character +@@ -1445,9 +1419,8 @@ + } else if (c == '\n' && cc == '\r' && isExternal) { + // handle newlines + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(1); + fCurrentEntity.ch[0] = (char)cc; +- load(1, false); ++ load(1, false, true); + } + fCurrentEntity.position++; + if (fCurrentEntity.ch[fCurrentEntity.position] == '\n') { +@@ -1498,8 +1471,7 @@ + //boolean entityChanged = false; + // load more characters, if needed + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(0); +- load(0, true); ++ load(0, true, true); + } + + //we are doing this check only in skipSpace() because it is called by +@@ -1522,9 +1494,8 @@ + fCurrentEntity.lineNumber++; + fCurrentEntity.columnNumber = 1; + if (fCurrentEntity.position == fCurrentEntity.count - 1) { +- invokeListeners(0); + fCurrentEntity.ch[0] = (char)c; +- entityChanged = load(1, true); ++ entityChanged = load(1, true, true); + if (!entityChanged){ + // the load change the position to be 1, + // need to restore it when entity not changed +@@ -1549,8 +1520,7 @@ + } + + if (fCurrentEntity.position == fCurrentEntity.count) { +- invokeListeners(0); +- load(0, true); ++ load(0, true, true); + + //we are doing this check only in skipSpace() because it is called by + //fMiscDispatcher and we want the parser to exit gracefully when document +@@ -1626,7 +1596,7 @@ + if((fCurrentEntity.count - fCurrentEntity.position) < length){ + int pos = fCurrentEntity.position; + invokeListeners(pos); +- entityChanged = load(fCurrentEntity.count, changeEntity); ++ entityChanged = load(fCurrentEntity.count, changeEntity, false); + fCurrentEntity.position = pos; + if(entityChanged)break; + } +@@ -1731,17 +1701,22 @@ + * the current entity in place and the entity + * boundary will be signaled by the return + * value. ++ * @param notify Determine whether to notify listeners of ++ * the event + * + * @returns Returns true if the entity changed as a result of this + * load operation. + */ +- final boolean load(int offset, boolean changeEntity) ++ final boolean load(int offset, boolean changeEntity, boolean notify) + throws IOException { + if (DEBUG_BUFFER) { + System.out.print("(load, "+offset+": "); + print(); + System.out.println(); + } ++ if (notify) { ++ invokeListeners(offset); ++ } + //maintaing the count till last load + fCurrentEntity.fTotalCountTillLastLoad = fCurrentEntity.fTotalCountTillLastLoad + fCurrentEntity.fLastCount ; + // read characters +@@ -1778,7 +1753,7 @@ + } + // handle the trailing edges + if (fCurrentEntity.position == fCurrentEntity.count) { +- load(0, true); ++ load(0, true, false); + } + } + +@@ -2075,7 +2050,7 @@ + * + * @param loadPos Starting position from which new data is being loaded into scanner buffer. + */ +- private void invokeListeners(int loadPos){ ++ public void invokeListeners(int loadPos){ + for(int i=0;i *
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties	2013-09-06 11:22:58.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties	2014-07-15 21:54:36.000000000 -0700
 @@ -44,6 +44,7 @@
          
  # 2.9 Standalone Document Declaration
@@ -29300,7 +33042,7 @@
 -# Application can set the limit of number of attributes of entity that should be expanded by the parser.
 -ElementAttributeLimit= Element \"{0}\" has more than \"{1}\" attributes, \"{1}\" is the limit imposed by the application.
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties	2014-07-15 21:54:36.000000000 -0700
 @@ -1,31 +1,3 @@
 -/*
 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -29746,7 +33488,7 @@
 -# Application can set the limit of number of attributes of entity that should be expanded by the parser.
 -ElementAttributeLimit= Element \"{0}\" hat mehr als \"{1}\" Attribute. \"{1}\" ist der durch die Anwendung vorgeschriebene Grenzwert.
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties	2014-07-15 21:54:36.000000000 -0700
 @@ -1,31 +1,3 @@
 -/*
 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -30193,7 +33935,7 @@
 -# Application can set the limit of number of attributes of entity that should be expanded by the parser.
 -ElementAttributeLimit= El elemento \"{0}\" tiene m\u00E1s de \"{1}\" atributos, \"{1}\" es el l\u00EDmite impuesto por la aplicaci\u00F3n.
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties	2014-07-15 21:54:36.000000000 -0700
 @@ -1,31 +1,3 @@
 -/*
 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -30641,7 +34383,7 @@
 -# Application can set the limit of number of attributes of entity that should be expanded by the parser.
 -ElementAttributeLimit= L''\u00E9l\u00E9ment \"{0}\" a plus de \"{1}\" attributs. \"{1}\" est la limite impos\u00E9e par l''application.
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties	2014-07-15 21:54:36.000000000 -0700
 @@ -1,31 +1,3 @@
 -/*
 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -31088,7 +34830,7 @@
 -# Application can set the limit of number of attributes of entity that should be expanded by the parser.
 -ElementAttributeLimit= L''elemento \"{0}\" contiene pi\u00F9 di \"{1}\" attributi. \"{1}\" \u00E8 il limite imposto dall''applicazione.
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties	2014-07-15 21:54:36.000000000 -0700
 @@ -1,31 +1,3 @@
 -/*
 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -31536,7 +35278,7 @@
 -# Application can set the limit of number of attributes of entity that should be expanded by the parser.
 -ElementAttributeLimit= \u8981\u7D20\"{0}\"\u306B\"{1}\"\u3092\u8D85\u3048\u308B\u5C5E\u6027\u304C\u5B58\u5728\u3057\u307E\u3059\u3002\"{1}\"\u306F\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306B\u3088\u308B\u5236\u9650\u3067\u3059\u3002
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties	2014-07-15 21:54:36.000000000 -0700
 @@ -1,31 +1,3 @@
 -/*
 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -31983,7 +35725,7 @@
 -# Application can set the limit of number of attributes of entity that should be expanded by the parser.
 -ElementAttributeLimit= \"{0}\" \uC694\uC18C\uC5D0 \"{1}\"\uAC1C\uB97C \uCD08\uACFC\uD558\uB294 \uC18D\uC131\uC774 \uC788\uC2B5\uB2C8\uB2E4. \"{1}\"\uC740(\uB294) \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8\uC5D0\uC11C \uC801\uC6A9\uD558\uB294 \uC81C\uD55C\uC785\uB2C8\uB2E4.
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties	2014-07-15 21:54:36.000000000 -0700
 @@ -1,31 +1,3 @@
 -/*
 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -32445,7 +36187,7 @@
 -# Application can set the limit of number of attributes of entity that should be expanded by the parser.
 -ElementAttributeLimit= O elemento \"{0}\" tem mais de \"{1}\" atributos. \"{1}\" \u00E9 o limite imposto pela aplica\u00E7\u00E3o.
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties	2014-07-15 21:54:36.000000000 -0700
 @@ -1,31 +1,3 @@
 -/*
 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -32902,7 +36644,7 @@
 -# Application can set the limit of number of attributes of entity that should be expanded by the parser.
 -ElementAttributeLimit= Elementet \"{0}\" har fler \u00E4n \"{1}\" attribut, \"{1}\" \u00E4r applikationens gr\u00E4nsv\u00E4rde.
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties	2014-07-15 21:54:36.000000000 -0700
 @@ -1,31 +1,3 @@
 -/*
 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -33356,7 +37098,7 @@
 -# Application can set the limit of number of attributes of entity that should be expanded by the parser.
 -ElementAttributeLimit= \u5143\u7D20 \"{0}\" \u5177\u6709\u591A\u4E2A \"{1}\" \u5C5E\u6027, \"{1}\" \u662F\u5E94\u7528\u7A0B\u5E8F\u65BD\u52A0\u7684\u9650\u5236\u3002
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties	2014-07-15 21:54:36.000000000 -0700
 @@ -1,31 +1,3 @@
 -/*
 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -33825,7 +37567,7 @@
 -# Application can set the limit of number of attributes of entity that should be expanded by the parser.
 -ElementAttributeLimit= \u5143\u7D20 \"{0}\" \u5177\u6709\u8D85\u904E \"{1}\" \u500B\u4EE5\u4E0A\u7684\u5C6C\u6027\uFF0C\"{1}\" \u70BA\u61C9\u7528\u7A0B\u5F0F\u6240\u898F\u5B9A\u7684\u9650\u5236\u3002
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/xpath/XPath.java	2014-07-15 21:46:30.000000000 -0700
 @@ -1422,7 +1422,7 @@
                              }
                              ch = data.charAt(currentOffset);
@@ -33836,7 +37578,7 @@
                              starIsMultiplyOperator = true;
                              break;
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/CMNodeFactory.java	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/CMNodeFactory.java	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/models/CMNodeFactory.java	2014-07-15 21:46:30.000000000 -0700
 @@ -21,13 +21,13 @@
  
  package com.sun.org.apache.xerces.internal.impl.xs.models;
@@ -33900,7 +37642,7 @@
              }
              if (suffixLength == Constants.ERROR_REPORTER_PROPERTY.length() &&
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAttributeChecker.java	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAttributeChecker.java	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSAttributeChecker.java	2014-07-15 21:46:30.000000000 -0700
 @@ -40,6 +40,7 @@
  import com.sun.org.apache.xerces.internal.util.SymbolTable;
  import com.sun.org.apache.xerces.internal.util.XMLChar;
@@ -33921,7 +37663,7 @@
  
                          // reset max values in case processing continues on error
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java	2013-09-06 11:22:59.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/impl/xs/traversers/XSDHandler.java	2014-07-15 21:46:30.000000000 -0700
 @@ -70,7 +70,6 @@
  import com.sun.org.apache.xerces.internal.util.DefaultErrorHandler;
  import com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper;
@@ -33976,7 +37718,7 @@
  
          //set entity resolver
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DefaultValidationErrorHandler.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DefaultValidationErrorHandler.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DefaultValidationErrorHandler.java	2014-07-15 21:46:30.000000000 -0700
 @@ -20,6 +20,8 @@
  
  package com.sun.org.apache.xerces.internal.jaxp;
@@ -34013,7 +37755,7 @@
  
          String systemId = e.getSystemId();
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java	2014-07-15 21:46:30.000000000 -0700
 @@ -36,7 +36,7 @@
  import com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator;
  import com.sun.org.apache.xerces.internal.jaxp.validation.XSGrammarPoolContainer;
@@ -34134,7 +37876,7 @@
      }
  
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java	2014-07-15 21:46:30.000000000 -0700
 @@ -20,22 +20,13 @@
  
  package com.sun.org.apache.xerces.internal.jaxp;
@@ -34370,7 +38112,7 @@
              throws SAXNotRecognizedException, SAXNotSupportedException {
              try {
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StAXValidatorHelper.java	2014-07-15 21:46:30.000000000 -0700
 @@ -26,6 +26,7 @@
  package com.sun.org.apache.xerces.internal.jaxp.validation;
  
@@ -34400,7 +38142,7 @@
                      identityTransformer2 = tf.newTransformerHandler();
                  } catch (TransformerConfigurationException e) {
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/StreamValidatorHelper.java	2014-07-15 21:46:30.000000000 -0700
 @@ -20,28 +20,27 @@
  
  package com.sun.org.apache.xerces.internal.jaxp.validation;
@@ -34475,7 +38217,7 @@
          return config;
      }
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java	2014-07-15 21:46:30.000000000 -0700
 @@ -49,10 +49,10 @@
  import com.sun.org.apache.xerces.internal.util.SAXMessageFormatter;
  import com.sun.org.apache.xerces.internal.util.Status;
@@ -34503,7 +38245,7 @@
                                 try {
                                     reader.setProperty(SECURITY_MANAGER, securityManager);
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java	2014-07-15 21:46:30.000000000 -0700
 @@ -41,10 +41,10 @@
  import com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper;
  import com.sun.org.apache.xerces.internal.util.SAXInputSource;
@@ -34631,7 +38373,7 @@
          }
          catch (XMLConfigurationException e) {
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java	2014-07-15 21:46:30.000000000 -0700
 @@ -39,9 +39,9 @@
  import com.sun.org.apache.xerces.internal.util.NamespaceSupport;
  import com.sun.org.apache.xerces.internal.util.ParserConfigurationSettings;
@@ -34738,7 +38480,7 @@
  
      /**
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/AbstractSAXParser.java	2014-07-15 21:46:30.000000000 -0700
 @@ -20,18 +20,15 @@
  
  package com.sun.org.apache.xerces.internal.parsers;
@@ -34819,7 +38561,7 @@
              //
              // Default handling
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParser.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParser.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/DOMParser.java	2014-07-15 21:46:30.000000000 -0700
 @@ -29,6 +29,7 @@
  import com.sun.org.apache.xerces.internal.util.SAXMessageFormatter;
  import com.sun.org.apache.xerces.internal.util.Status;
@@ -34884,7 +38626,7 @@
              fConfiguration.setProperty(propertyId, value);
          }
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/DTDConfiguration.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/DTDConfiguration.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/DTDConfiguration.java	2014-07-15 21:46:30.000000000 -0700
 @@ -38,7 +38,6 @@
  import com.sun.org.apache.xerces.internal.util.PropertyState;
  import com.sun.org.apache.xerces.internal.util.Status;
@@ -34921,7 +38663,7 @@
  
      //
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/NonValidatingConfiguration.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/NonValidatingConfiguration.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/NonValidatingConfiguration.java	2014-07-15 21:46:30.000000000 -0700
 @@ -36,7 +36,6 @@
  import com.sun.org.apache.xerces.internal.util.PropertyState;
  import com.sun.org.apache.xerces.internal.util.Status;
@@ -34958,7 +38700,7 @@
  
      //
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/SAXParser.java	2014-07-15 21:46:30.000000000 -0700
 @@ -22,6 +22,7 @@
  
  import com.sun.org.apache.xerces.internal.impl.Constants;
@@ -35030,7 +38772,7 @@
      }
  } // class SAXParser
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecurityConfiguration.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecurityConfiguration.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/SecurityConfiguration.java	2014-07-15 21:46:30.000000000 -0700
 @@ -23,8 +23,8 @@
  import com.sun.org.apache.xerces.internal.impl.Constants;
  import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool;
@@ -35059,7 +38801,7 @@
  
  } // class SecurityConfiguration
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java	2014-07-15 21:46:30.000000000 -0700
 @@ -52,6 +52,7 @@
  import com.sun.org.apache.xerces.internal.util.ParserConfigurationSettings;
  import com.sun.org.apache.xerces.internal.util.PropertyState;
@@ -35210,7 +38952,7 @@
          if (fErrorReporter.getMessageFormatter(XMLMessageFormatter.XML_DOMAIN) == null) {
              XMLMessageFormatter xmft = new XMLMessageFormatter();
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLParser.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLParser.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/parsers/XMLParser.java	2014-07-15 21:46:30.000000000 -0700
 @@ -23,6 +23,8 @@
  import java.io.IOException;
  
@@ -35251,7 +38993,7 @@
          reset();
          fConfiguration.parse(inputSource);
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/util/SecurityManager.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/util/SecurityManager.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/util/SecurityManager.java	2014-07-15 21:46:30.000000000 -0700
 @@ -61,8 +61,6 @@
  
  package com.sun.org.apache.xerces.internal.util;
@@ -35350,7 +39092,7 @@
 -    }
  } // class SecurityManager
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/util/SymbolTable.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/util/SymbolTable.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/util/SymbolTable.java	2014-07-15 21:46:30.000000000 -0700
 @@ -173,7 +173,7 @@
          for (int i = 0; i < length; i++) {
              code = code * 37 + symbol.charAt(i);
@@ -35370,7 +39112,7 @@
      } // hash(char[],int,int):int
  
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/util/URI.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/util/URI.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/util/URI.java	2014-07-15 21:46:30.000000000 -0700
 @@ -689,9 +689,13 @@
          if (!initializeAuthority(uriSpec.substring(startPos, index))) {
            index = startPos - 2;
@@ -35388,7 +39130,7 @@
      }
  
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java	2014-07-15 21:46:30.000000000 -0700
 @@ -48,7 +48,8 @@
      //
      // Constants
@@ -35433,7 +39175,7 @@
              try {
                  providerClass = cl.loadClass(className);
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/utils/SecuritySupport.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/utils/SecuritySupport.java	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/utils/SecuritySupport.java	2014-07-15 21:46:30.000000000 -0700
 @@ -211,7 +211,7 @@
          if (i > 0) {
              return uri.substring(i+1, uri.length());
@@ -35444,7 +39186,7 @@
  
      /**
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java	2014-07-15 21:54:36.000000000 -0700
 @@ -0,0 +1,241 @@
 +/*
 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
@@ -35688,7 +39430,7 @@
 +    }
 +}
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLSecurityManager.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLSecurityManager.java	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLSecurityManager.java	2014-07-15 21:54:36.000000000 -0700
 @@ -0,0 +1,542 @@
 +/*
 + * Copyright (c) 2013 Oracle and/or its affiliates. All rights reserved.
@@ -36233,7 +39975,7 @@
 +    }
 +}
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLSecurityPropertyManager.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLSecurityPropertyManager.java	2014-07-15 23:25:04.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLSecurityPropertyManager.java	2014-07-15 21:46:30.000000000 -0700
 @@ -91,6 +91,24 @@
          readSystemProperties();
      }
@@ -36284,7 +40026,7 @@
       * Return the value of the specified property
       *
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java	2013-09-06 11:23:00.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java	2014-07-15 21:46:30.000000000 -0700
 @@ -37,7 +37,6 @@
  import com.sun.org.apache.xerces.internal.util.HTTPInputSource;
  import com.sun.org.apache.xerces.internal.util.IntStack;
@@ -36331,7 +40073,7 @@
                  fChildConfig.setProperty(propertyId, value);
              }
 --- ./jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java	2013-09-06 11:23:01.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xerces/internal/xni/parser/XMLDTDScanner.java	2014-07-15 21:46:30.000000000 -0700
 @@ -20,6 +20,7 @@
  
  package com.sun.org.apache.xerces.internal.xni.parser;
@@ -36347,7 +40089,7 @@
 +    public void setLimitAnalyzer(XMLLimitAnalyzer limitAnalyzer);
  } // interface XMLDTDScanner
 --- ./jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIterNodeList.java	2013-09-06 11:23:01.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIterNodeList.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xml/internal/dtm/ref/DTMAxisIterNodeList.java	2014-07-15 21:46:30.000000000 -0700
 @@ -105,15 +105,15 @@
       */
      public Node item(int index) {
@@ -36368,7 +40110,7 @@
                      count++;
                  }
 --- ./jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java	2013-09-06 11:23:02.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xml/internal/resolver/CatalogManager.java	2014-07-15 21:46:30.000000000 -0700
 @@ -24,20 +24,17 @@
  package com.sun.org.apache.xml.internal.resolver;
  
@@ -36404,7 +40146,7 @@
              debug.message(1,"Catalog class named '"
                            + catalogClassName
 --- ./jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java	2013-09-06 11:23:02.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/DOMCatalogReader.java	2014-07-15 21:46:30.000000000 -0700
 @@ -23,24 +23,21 @@
  
  package com.sun.org.apache.xml.internal.resolver.readers;
@@ -36448,7 +40190,7 @@
        catalog.getCatalogManager().debug.message(1, "Cannot load XML Catalog Parser class", domParserClass);
        throw new CatalogException(CatalogException.UNPARSEABLE);
 --- ./jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java	2013-09-06 11:23:02.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xml/internal/resolver/readers/SAXCatalogReader.java	2014-07-15 21:46:30.000000000 -0700
 @@ -23,19 +23,21 @@
  
  package com.sun.org.apache.xml.internal.resolver.readers;
@@ -36519,7 +40261,7 @@
          saxParser.setCatalog(catalog);
          saxParser.startDocument();
 --- ./jaxp/src/com/sun/org/apache/xml/internal/serializer/CharInfo.java	2013-09-06 11:23:02.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xml/internal/serializer/CharInfo.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xml/internal/serializer/CharInfo.java	2014-07-15 21:46:30.000000000 -0700
 @@ -22,6 +22,11 @@
   */
  package com.sun.org.apache.xml.internal.serializer;
@@ -36734,7 +40476,7 @@
  
      /** Table of user-specified char infos. */
 --- ./jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java	2013-09-06 11:23:02.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java	2014-07-15 21:46:30.000000000 -0700
 @@ -60,7 +60,7 @@
       */
      private static final CharInfo m_htmlcharInfo =
@@ -36745,7 +40487,7 @@
      /** A digital search trie for fast, case insensitive lookup of ElemDesc objects. */
      static final Trie m_elementFlags = new Trie();
 --- ./jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java	2013-09-06 11:23:02.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java	2014-07-15 21:46:30.000000000 -0700
 @@ -58,7 +58,7 @@
       */
      private static CharInfo m_xmlcharInfo =
@@ -36756,7 +40498,7 @@
      /**
       * Default constructor.
 --- ./jaxp/src/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java	2013-09-06 11:23:03.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java	2014-07-15 21:46:30.000000000 -0700
 @@ -25,12 +25,15 @@
  import com.sun.org.apache.xalan.internal.XalanConstants;
  import com.sun.org.apache.xalan.internal.utils.FactoryImpl;
@@ -36863,7 +40605,7 @@
      }
  }
 --- ./jaxp/src/com/sun/org/apache/xpath/internal/XPathContext.java	2013-09-06 11:23:03.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xpath/internal/XPathContext.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xpath/internal/XPathContext.java	2014-07-15 21:46:30.000000000 -0700
 @@ -103,8 +103,7 @@
     * the DTMManager, it really is a proxy for this object, which
     * is the real DTMManager.
@@ -36875,7 +40617,7 @@
    /**
     * Return the DTMManager object.  Though XPathContext context extends
 --- ./jaxp/src/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java	2013-09-06 11:23:03.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java	2014-07-15 21:46:30.000000000 -0700
 @@ -33,6 +33,7 @@
  import com.sun.org.apache.xpath.internal.objects.XNodeSet;
  import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
@@ -36900,7 +40642,7 @@
  
      /**
 --- ./jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java	2013-09-06 11:23:03.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathExpressionImpl.java	2014-07-15 21:46:30.000000000 -0700
 @@ -30,6 +30,7 @@
  import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
  import com.sun.org.apache.xalan.internal.res.XSLMessages;
@@ -36966,7 +40708,7 @@
          } else {
              xpathSupport = new com.sun.org.apache.xpath.internal.XPathContext();
 --- ./jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java	2013-09-06 11:23:04.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathFactoryImpl.java	2014-07-15 21:46:30.000000000 -0700
 @@ -24,6 +24,8 @@
  import com.sun.org.apache.xalan.internal.XalanConstants;
  import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
@@ -37047,7 +40789,7 @@
              String fmsg = XSLMessages.createXPATHMessage(
                      XPATHErrorResources.ER_GETTING_UNKNOWN_FEATURE,
 --- ./jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java	2013-09-06 11:23:04.000000000 -0700
-+++ ./jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/com/sun/org/apache/xpath/internal/jaxp/XPathImpl.java	2014-07-15 21:46:30.000000000 -0700
 @@ -35,6 +35,7 @@
  import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
  import com.sun.org.apache.xalan.internal.res.XSLMessages;
@@ -37099,7 +40841,7 @@
          } catch ( javax.xml.transform.TransformerException te ) {
              throw new XPathExpressionException ( te ) ;
 --- ./jaxp/src/javax/xml/stream/FactoryFinder.java	2013-09-06 11:23:04.000000000 -0700
-+++ ./jaxp/src/javax/xml/stream/FactoryFinder.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/javax/xml/stream/FactoryFinder.java	2014-07-15 21:46:30.000000000 -0700
 @@ -204,13 +204,15 @@
       *                              a property name
       * @param fallbackClassName     Implementation class name, if nothing else
@@ -37157,7 +40899,7 @@
  
          // Try read $java.home/lib/stax.properties followed by
 --- ./jaxp/src/javax/xml/stream/XMLEventFactory.java	2013-09-06 11:23:04.000000000 -0700
-+++ ./jaxp/src/javax/xml/stream/XMLEventFactory.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/javax/xml/stream/XMLEventFactory.java	2014-07-15 21:46:30.000000000 -0700
 @@ -60,9 +60,7 @@
    public static XMLEventFactory newInstance()
      throws FactoryConfigurationError
@@ -37201,7 +40943,7 @@
            throw new FactoryConfigurationError(e.getException(),
                    e.getMessage());
 --- ./jaxp/src/javax/xml/stream/XMLInputFactory.java	2013-09-06 11:23:04.000000000 -0700
-+++ ./jaxp/src/javax/xml/stream/XMLInputFactory.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/javax/xml/stream/XMLInputFactory.java	2014-07-15 21:46:30.000000000 -0700
 @@ -139,6 +139,7 @@
    public static final String ALLOCATOR=
      "javax.xml.stream.allocator";
@@ -37253,7 +40995,7 @@
            throw new FactoryConfigurationError(e.getException(),
                    e.getMessage());
 --- ./jaxp/src/javax/xml/stream/XMLOutputFactory.java	2013-09-06 11:23:04.000000000 -0700
-+++ ./jaxp/src/javax/xml/stream/XMLOutputFactory.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/javax/xml/stream/XMLOutputFactory.java	2014-07-15 21:46:30.000000000 -0700
 @@ -115,6 +115,7 @@
    public static final String IS_REPAIRING_NAMESPACES=
      "javax.xml.stream.isRepairingNamespaces";
@@ -37303,7 +41045,7 @@
            throw new FactoryConfigurationError(e.getException(),
                    e.getMessage());
 --- ./jaxp/src/javax/xml/xpath/XPathException.java	2013-09-06 11:23:05.000000000 -0700
-+++ ./jaxp/src/javax/xml/xpath/XPathException.java	2014-07-15 23:25:05.000000000 -0700
++++ ./jaxp/src/javax/xml/xpath/XPathException.java	2014-07-15 21:46:30.000000000 -0700
 @@ -26,6 +26,11 @@
  package javax.xml.xpath;
  
@@ -37395,7 +41137,7 @@
  
      /**
 --- ./jaxws/.hgtags	2013-09-06 11:23:51.000000000 -0700
-+++ ./jaxws/.hgtags	2014-07-15 23:25:03.000000000 -0700
++++ ./jaxws/.hgtags	2014-10-28 20:19:33.000000000 -0700
 @@ -123,6 +123,7 @@
  05469dd4c3662c454f8a019e492543add60795cc jdk7-b146
  c01bfd68d0528bc88348813c4d75d7f5c62bc4e2 jdk7u1-b01
@@ -37427,7 +41169,7 @@
  4c5d242efa0d6e0cdb688e41e722bff671dfbfec jdk7u25-b12
  6b4a165221304d809f678a18f51c7a8cb042d60b jdk7u25-b13
  03073e4e6d3f600102d31e862154f56730838b11 jdk7u25-b14
-@@ -343,3 +360,104 @@
+@@ -343,3 +360,146 @@
  89f6c9663d75d9e4b672aed16f885b84232e9c93 jdk7u40-b42
  3ee85b3793de16855e20272336a3565af8477b6b jdk7u40-b43
  cbeef786ce489096c39ec5effee4f8f9e770b4af jdk7u40-b60
@@ -37492,9 +41234,13 @@
 +3b0da73591b1ea23c48aa7babc34ed776fc183f0 jdk7u55-b13
 +5d726bf8fedc1f10d250e980653315919b7602f2 jdk7u55-b30
 +81d0f297557c4a876727cabeb2bfcdf066a1fc9d jdk7u55-b14
++f616603ab693f6629c2994f6006ed4a21a428d8e jdk7u55-b15
 +2d103c97c9bd0b3357e6d5e2b5b9ffb64c271288 jdk7u55-b31
 +b15b4084288fa4ea9caf7f6b4e79d164c77bb1d6 jdk7u55-b32
 +efd71c6ca0832e894b7e1619111860062fa96458 jdk7u55-b33
++485d7912bc20775bda670ea2236c883366590dd7 jdk7u55-b34
++587be38f9a6d60fbefc92dbe9fbd4c83d579c680 jdk7u55-b35
++62332eaec2ff8fc8bece2a905554ac08e375a661 jdk7u55-b36
 +cb5f95263f620967f5097c5ff8e0b27cfb9e8c44 jdk7u60-b00
 +f675dfce1e61a6ed01732ae7cfbae941791cba74 jdk7u60-b01
 +8a3b9e8492a5ac4e2e0c166dbfc5d058be244377 jdk7u60-b02
@@ -37516,6 +41262,10 @@
 +b312ec543dc09db784e161eb89607d4afd4cab1e jdk7u60-b18
 +23598a667bb89b57d5abab5b37781a0952e16cf9 jdk7u65-b01
 +1d21eb9011a060c7761c9a8a53e69d58bbea4893 jdk7u60-b19
++39e67887a3b112bf74f84df2aac0f46c65bfb005 jdk7u60-b30
++dfc2c4b9b16bd2d68435ddc9bb12036982021844 jdk7u60-b31
++0e17943c39fadb810b4dd2e9ac732503b86043f4 jdk7u60-b32
++910559d7f754d8fd6ab80a627869877443358316 jdk7u60-b33
 +8ac19021e6af5d92b46111a6c41430f36ccdb901 jdk7u65-b02
 +a70d681bc273a110d10cf3c4f9b35b25ca6a600f jdk7u65-b03
 +7cd17f96988509e99fbb71003aeb76d92b638fef jdk7u65-b04
@@ -37532,8 +41282,42 @@
 +39ad61a579fd824fbec1bec4e071376449ba8195 jdk7u65-b15
 +198bf1acd262f2c16715d3be5e33d7b8de1e7776 jdk7u65-b16
 +df4dc644fe344e973fc1692c28683eec8ba82600 jdk7u65-b17
++0e0ca87a6d5212a0885f0c8c00b8f7cf24a64d89 jdk7u65-b30
++dedfc93eeb5f4b28ad1a91902a0676aef0937e42 jdk7u65-b18
++db4cccbfd72fc265b736a273797963754434a7d2 jdk7u65-b19
++0cd66509e11335fac490076cbdcb2f47c592de86 jdk7u65-b32
++28d868d40df0d420b87698e1215e5039d24a8ae5 jdk7u65-b20
++1ef1681e21ca00edbc8727e849fef50637cc52d8 jdk7u67-b01
++db4cccbfd72fc265b736a273797963754434a7d2 jdk7u65-b40
++190d885fe83b5b1801ee6d7327161254545d55a8 jdk7u65-b31
++6cf7676aa11c053481c0806afda9fc91c2bfd782 jdk7u65-b33
++d63ca1c5bdb9fb2e36ec4afda431c0d1dfdfc07c jdk7u66-b00
++1dce52b208a9528266c26352e03e67ec0ddb4dd7 jdk7u66-b01
++04481967eff566b8a379a0315d2a3a255928d6ce jdk7u66-b09
++73d97ba8b2d94c904f2b087b9f28664eb19e9ce2 jdk7u66-b10
++7ecf8d9df00c185f381fa8cb92ea66fe1e5798ca jdk7u66-b11
++9ac1d99f712a04548d7e5d784f06c87e35023080 jdk7u66-b12
++f562dd8fb2b211a11b9a84849995d61b541723c3 jdk7u66-b13
++ae584331109f291e03af72cc9fcbbe5f8f789ab1 jdk7u66-b14
++36461c772d3101a8cb1eca16a9c81ed53218a4c9 jdk7u66-b15
++19ed8a653a3e8c6536fd1090c14f93e690eda7a3 jdk7u66-b16
++ea1e6f01f95c9a0984378643754d0f493bfa4484 jdk7u66-b17
++6092d0059338df25e82fbc69cc749b95e2565547 jdk7u71-b00
++814a3f0bb13071666375dd35bab7c9cc44c62448 jdk7u71-b01
++ba22fdc22c0410b91f6f992e480d9e8b4c5e85d0 jdk7u71-b02
++30edf4d8760f96b420bd40a2d9552826435356d4 jdk7u71-b03
++22cc8b125a119f9c23d0e81fc6627af330a27e4a jdk7u71-b04
++f612dbc0589894463f569fba245a98f842182d7a jdk7u71-b05
++15bdfc8b209a7c5b4e06907df11d3f795d326c14 jdk7u71-b06
++26ad03c06f31c516329059c5f053330570455887 jdk7u71-b07
++8d9d92a8e6d8610994d1596961395a4ce2bc5a69 jdk7u71-b08
++9ad7bbe28aecaf22c4f5c9ab905207ae963ec2c2 jdk7u71-b09
++32406b446fd458c6d0d8bd610eeb12d96a5f20a4 jdk7u71-b10
++b37043cee55ed025b04a3420908897e69c6c687f jdk7u71-b11
++3a432d7f01ed998ee6ca2ed04e818849a3d1e0c7 jdk7u71-b12
++9dd0dea849dd2550b58346977d9111717c1f38b2 jdk7u71-b13
 --- ./jaxws/src/share/jaf_classes/javax/activation/CommandMap.java	2013-09-06 11:23:51.000000000 -0700
-+++ ./jaxws/src/share/jaf_classes/javax/activation/CommandMap.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaf_classes/javax/activation/CommandMap.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
@@ -37613,7 +41397,7 @@
      }
  
 --- ./jaxws/src/share/jaf_classes/javax/activation/DataHandler.java	2013-09-06 11:23:51.000000000 -0700
-+++ ./jaxws/src/share/jaf_classes/javax/activation/DataHandler.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaf_classes/javax/activation/DataHandler.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
@@ -37636,7 +41420,7 @@
  
      /**
 --- ./jaxws/src/share/jaf_classes/javax/activation/FileTypeMap.java	2013-09-06 11:23:51.000000000 -0700
-+++ ./jaxws/src/share/jaf_classes/javax/activation/FileTypeMap.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaf_classes/javax/activation/FileTypeMap.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
@@ -37722,7 +41506,7 @@
      }
  }
 --- ./jaxws/src/share/jaf_classes/javax/activation/MailcapCommandMap.java	2013-09-06 11:23:51.000000000 -0700
-+++ ./jaxws/src/share/jaf_classes/javax/activation/MailcapCommandMap.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaf_classes/javax/activation/MailcapCommandMap.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
@@ -37761,7 +41545,7 @@
          DB = new MailcapFile[dbv.size()];
          DB = (MailcapFile[])dbv.toArray(DB);
 --- ./jaxws/src/share/jaf_classes/javax/activation/MimetypesFileTypeMap.java	2013-09-06 11:23:51.000000000 -0700
-+++ ./jaxws/src/share/jaf_classes/javax/activation/MimetypesFileTypeMap.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaf_classes/javax/activation/MimetypesFileTypeMap.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
@@ -37800,7 +41584,7 @@
          DB = new MimeTypeFile[dbv.size()];
          dbv.copyInto(DB);
 --- ./jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/BoundedRangeStatisticImpl.java	2013-09-06 11:23:52.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/BoundedRangeStatisticImpl.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/org/glassfish/external/statistics/impl/BoundedRangeStatisticImpl.java	2014-07-15 21:46:13.000000000 -0700
 @@ -26,6 +26,7 @@
  
  
@@ -37810,7 +41594,7 @@
  import java.util.Map;
  import java.lang.reflect.*;
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/jxc/model/nav/APTNavigator.java	2013-09-06 11:23:52.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/jxc/model/nav/APTNavigator.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/jxc/model/nav/APTNavigator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -37841,7 +41625,7 @@
  
      public boolean isBridgeMethod(MethodDeclaration method) {
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceVisitor.java	2013-09-06 11:23:53.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceVisitor.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/processor/modeler/annotation/WebServiceVisitor.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -37994,7 +41778,7 @@
          }
          TypeMirror holderType;
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wscompile/WsimportTool.java	2013-09-06 11:23:53.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wscompile/WsimportTool.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wscompile/WsimportTool.java	2014-07-15 21:46:13.000000000 -0700
 @@ -334,7 +334,7 @@
              if(options.verbose) {
                  listener.message(WscompileMessages.WSIMPORT_ARCHIVE_ARTIFACT(f, options.clientjar));
@@ -38005,7 +41789,7 @@
                              new FileInputStream(f));
              JarEntry jarEntry = new JarEntry(entry);
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/ContextClassloaderLocal.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/ContextClassloaderLocal.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/ContextClassloaderLocal.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,86 @@
 +/*
 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -38094,7 +41878,7 @@
 +}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/ContextClassloaderLocal.properties	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/ContextClassloaderLocal.properties	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/ContextClassloaderLocal.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,27 @@
 +#
 +# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -38124,7 +41908,7 @@
 +FAILED_TO_CREATE_NEW_INSTANCE=Failed to create new instance of {0}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/Internalizer.java	2013-09-06 11:23:54.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/Internalizer.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/Internalizer.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -38151,7 +41935,7 @@
      private final DOMForest forest;
      private final ErrorReceiver errorReceiver;
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/JAXWSBindingExtensionHandler.java	2013-09-06 11:23:54.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/JAXWSBindingExtensionHandler.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/ws/wsdl/parser/JAXWSBindingExtensionHandler.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -38177,7 +41961,7 @@
      public JAXWSBindingExtensionHandler(Map extensionHandlerMap) {
          super(extensionHandlerMap);
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/nav/EagerNType.java	2013-09-06 11:23:55.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/nav/EagerNType.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/nav/EagerNType.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -38202,7 +41986,7 @@
      }
  }
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/nav/NavigatorImpl.java	2013-09-06 11:23:55.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/nav/NavigatorImpl.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/nav/NavigatorImpl.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -38249,7 +42033,7 @@
      }
  
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/nav/Utils.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/nav/Utils.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/nav/Utils.java	2014-07-15 21:54:37.000000000 -0700
 @@ -0,0 +1,97 @@
 +/*
 + * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
@@ -38349,7 +42133,7 @@
 +    }
 +}
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/internalizer/ContextClassloaderLocal.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/internalizer/ContextClassloaderLocal.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/internalizer/ContextClassloaderLocal.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,86 @@
 +/*
 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -38438,7 +42222,7 @@
 +}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/internalizer/ContextClassloaderLocal.properties	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/internalizer/ContextClassloaderLocal.properties	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/internalizer/ContextClassloaderLocal.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,27 @@
 +#
 +# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -38468,7 +42252,7 @@
 +FAILED_TO_CREATE_NEW_INSTANCE=Failed to create new instance of {0}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/internalizer/Internalizer.java	2013-09-06 11:23:56.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/internalizer/Internalizer.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/reader/internalizer/Internalizer.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -38494,7 +42278,7 @@
      /**
       * Internalize all <jaxb:bindings> customizations in the given forest.
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/DatatypeConverterImpl.java	2013-09-06 11:23:57.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/DatatypeConverterImpl.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/DatatypeConverterImpl.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -38564,7 +42348,7 @@
  
      private static final class CalendarFormatter {
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/Messages.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/Messages.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/Messages.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,48 @@
 +/*
 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -38615,7 +42399,7 @@
 +    }
 +}
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/Messages.properties	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/Messages.properties	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/Messages.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,27 @@
 +#
 +# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -38645,7 +42429,7 @@
 +FAILED_TO_INITIALE_DATATYPE_FACTORY = \
 +    Failed to initialize JAXP 1.3 DatatypeFactory class.
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/api/JAXBRIContext.java	2013-09-06 11:23:57.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/api/JAXBRIContext.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/api/JAXBRIContext.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -38671,7 +42455,7 @@
  
  
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/api/TypeReference.java	2013-09-06 11:23:57.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/api/TypeReference.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/api/TypeReference.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -38703,7 +42487,7 @@
      }
  }
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/api/Utils.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/api/Utils.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/api/Utils.java	2014-07-15 21:54:37.000000000 -0700
 @@ -0,0 +1,97 @@
 +/*
 + * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
@@ -38803,7 +42587,7 @@
 +    }
 +}
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/Messages.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/Messages.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/Messages.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -38820,7 +42604,7 @@
  
      ILLEGAL_MIME_TYPE, // 2 args
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/Messages.properties	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/Messages.properties	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/Messages.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  #
 -# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -38839,7 +42623,7 @@
      No javax.imageio.ImageWriter is available for the specified MIME type "{0}"
  
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/ModelBuilder.java	2014-07-15 21:46:13.000000000 -0700
 @@ -160,8 +160,8 @@
                  res = Messages.INCOMPATIBLE_API_VERSION;
  
@@ -38906,7 +42690,7 @@
      }
  
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeAnyTypeImpl.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeAnyTypeImpl.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeAnyTypeImpl.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -38932,7 +42716,7 @@
  
      public  Transducer getTransducer() {
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeBuiltinLeafInfoImpl.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeBuiltinLeafInfoImpl.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeBuiltinLeafInfoImpl.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -38992,7 +42776,7 @@
                  XMLGregorianCalendar cal)throws javax.xml.bind.MarshalException{
                  StringBuilder buf = new StringBuilder();
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeElementInfoImpl.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeElementInfoImpl.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeElementInfoImpl.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39018,7 +42802,7 @@
  
      public RuntimeClassInfo getScope() {
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeModelBuilder.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeModelBuilder.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeModelBuilder.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39056,7 +42840,7 @@
      protected RuntimeTypeInfoSetImpl createTypeInfoSet() {
          return new RuntimeTypeInfoSetImpl(reader);
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeTypeInfoSetImpl.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeTypeInfoSetImpl.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/RuntimeTypeInfoSetImpl.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39095,7 +42879,7 @@
          return (RuntimeNonElement)super.getTypeInfo(type);
      }
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/Utils.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/Utils.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/Utils.java	2014-07-15 21:54:37.000000000 -0700
 @@ -0,0 +1,97 @@
 +/*
 + * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
@@ -39195,7 +42979,7 @@
 +    }
 +}
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/nav/Navigator.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/nav/Navigator.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/nav/Navigator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39232,7 +43016,7 @@
      /**
       * Returns true if this method is a bridge method as defined in JLS.
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/nav/ReflectionNavigator.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/nav/ReflectionNavigator.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/nav/ReflectionNavigator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -39316,7 +43100,7 @@
          String name = method.getName();
          Class[] params = method.getParameterTypes();
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/runtime/RuntimeTypeInfoSet.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/runtime/RuntimeTypeInfoSet.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/runtime/RuntimeTypeInfoSet.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39340,7 +43124,7 @@
 -    ReflectionNavigator getNavigator();
  }
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/ElementBeanInfoImpl.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/ElementBeanInfoImpl.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/ElementBeanInfoImpl.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39370,7 +43154,7 @@
              constructor = null;
          else {
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/JAXBContextImpl.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/JAXBContextImpl.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/JAXBContextImpl.java	2014-07-15 21:54:37.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39468,7 +43252,7 @@
          }
          return xsdgen;
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/Utils.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/Utils.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/Utils.java	2014-07-15 21:54:37.000000000 -0700
 @@ -0,0 +1,97 @@
 +/*
 + * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
@@ -39568,7 +43352,7 @@
 +    }
 +}
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/output/XMLStreamWriterOutput.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/output/XMLStreamWriterOutput.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/output/XMLStreamWriterOutput.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39635,7 +43419,7 @@
          } catch (Throwable e) {
              return null;
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/ArrayProperty.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/ArrayProperty.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/ArrayProperty.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39661,7 +43445,7 @@
          acc = prop.getAccessor().optimize(context);
          assert acc!=null;
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/SingleMapNodeProperty.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/SingleMapNodeProperty.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/SingleMapNodeProperty.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39688,7 +43472,7 @@
          // TODO: error check for mapImplClass==null
          // what is the error reporting path for this part of the code?
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/Utils.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/Utils.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/Utils.java	2014-07-15 21:54:37.000000000 -0700
 @@ -0,0 +1,97 @@
 +/*
 + * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
@@ -39788,7 +43572,7 @@
 +    }
 +}
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Accessor.java	2013-09-06 11:23:58.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Accessor.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Accessor.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39814,7 +43598,7 @@
                  adapter.adapterType);
      }
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Lister.java	2013-09-06 11:23:59.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Lister.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Lister.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39852,7 +43636,7 @@
                  itemType = Object.class;
              l = new CollectionLister(getImplClass(rawType));
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/TransducedAccessor.java	2013-09-06 11:23:59.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/TransducedAccessor.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/TransducedAccessor.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -39879,7 +43663,7 @@
  
          if(prop.id()==ID.IDREF)
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Utils.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Utils.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Utils.java	2014-07-15 21:54:37.000000000 -0700
 @@ -0,0 +1,97 @@
 +/*
 + * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
@@ -39979,7 +43763,7 @@
 +    }
 +}
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXStreamConnector.java	2013-09-06 11:23:59.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXStreamConnector.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StAXStreamConnector.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -40043,7 +43827,7 @@
 -
  }
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/AttachmentPartImpl.java	2013-09-06 11:24:01.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/AttachmentPartImpl.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/AttachmentPartImpl.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -40191,7 +43975,7 @@
 +}
 \ No newline at end of file
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/ContextClassloaderLocal.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/ContextClassloaderLocal.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/ContextClassloaderLocal.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,86 @@
 +/*
 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -40280,7 +44064,7 @@
 +}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/ContextClassloaderLocal.properties	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/ContextClassloaderLocal.properties	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/ContextClassloaderLocal.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,27 @@
 +#
 +# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -40310,7 +44094,7 @@
 +FAILED_TO_CREATE_NEW_INSTANCE=Failed to create new instance of {0}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/EnvelopeFactory.java	2013-09-06 11:24:01.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/EnvelopeFactory.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/messaging/saaj/soap/EnvelopeFactory.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -40430,7 +44214,7 @@
          }
      }
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java	2013-09-06 11:24:01.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/MemoryData.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
@@ -40439,7 +44223,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java	2013-09-06 11:24:01.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java	2014-07-15 23:24:59.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/org/jvnet/mimepull/TempFiles.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -40448,7 +44232,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/stream/buffer/ContextClassloaderLocal.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/stream/buffer/ContextClassloaderLocal.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/stream/buffer/ContextClassloaderLocal.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,86 @@
 +/*
 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -40537,7 +44321,7 @@
 +}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/stream/buffer/ContextClassloaderLocal.properties	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/stream/buffer/ContextClassloaderLocal.properties	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/stream/buffer/ContextClassloaderLocal.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,27 @@
 +#
 +# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -40567,7 +44351,7 @@
 +FAILED_TO_CREATE_NEW_INSTANCE=Failed to create new instance of {0}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/stream/buffer/XMLStreamBuffer.java	2013-09-06 11:24:03.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/stream/buffer/XMLStreamBuffer.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/stream/buffer/XMLStreamBuffer.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -40599,7 +44383,7 @@
              return n.getLastChild();
          } catch (TransformerException e) {
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/server/InstanceResolver.java	2013-09-06 11:24:04.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/server/InstanceResolver.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/server/InstanceResolver.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -40617,7 +44401,7 @@
                      postInvoke(p,t);
                  }
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/server/MethodUtil.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/server/MethodUtil.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/server/MethodUtil.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,94 @@
 +/*
 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -40714,7 +44498,7 @@
 +
 +}
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/ContextClassloaderLocal.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/ContextClassloaderLocal.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/ContextClassloaderLocal.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,86 @@
 +/*
 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -40803,7 +44587,7 @@
 +}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/ContextClassloaderLocal.properties	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/ContextClassloaderLocal.properties	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/ContextClassloaderLocal.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,27 @@
 +#
 +# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -40833,7 +44617,7 @@
 +FAILED_TO_CREATE_NEW_INSTANCE=Failed to create new instance of {0}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/XMLStreamReaderFactory.java	2013-09-06 11:24:04.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/XMLStreamReaderFactory.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/XMLStreamReaderFactory.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -40907,7 +44691,7 @@
  
      public static XMLStreamReader create(InputSource source, boolean rejectDTDs) {
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/XMLStreamWriterFactory.java	2013-09-06 11:24:04.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/XMLStreamWriterFactory.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/api/streaming/XMLStreamWriterFactory.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41004,7 +44788,7 @@
  
      /**
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/binding/BindingImpl.java	2013-09-06 11:24:04.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/binding/BindingImpl.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/binding/BindingImpl.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41090,7 +44874,7 @@
 +
  }
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java	2013-09-06 11:24:05.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/WSServiceDelegate.java	2014-07-15 21:46:13.000000000 -0700
 @@ -22,6 +22,7 @@
   * or visit www.oracle.com if you need additional information or have any
   * questions.
@@ -41195,7 +44979,7 @@
              Thread daemonThread = new Thread(r);
              daemonThread.setDaemon(Boolean.TRUE);
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/MethodUtil.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/MethodUtil.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/MethodUtil.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,94 @@
 +/*
 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -41292,7 +45076,7 @@
 +
 +}
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/SEIStub.java	2013-09-06 11:24:05.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/SEIStub.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/client/sei/SEIStub.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41368,7 +45152,7 @@
          return super.process(request, rc, receiver);
      }
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/developer/ContextClassloaderLocal.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/developer/ContextClassloaderLocal.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/developer/ContextClassloaderLocal.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,86 @@
 +/*
 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -41457,7 +45241,7 @@
 +}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/developer/ContextClassloaderLocal.properties	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/developer/ContextClassloaderLocal.properties	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/developer/ContextClassloaderLocal.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,27 @@
 +#
 +# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -41487,7 +45271,7 @@
 +FAILED_TO_CREATE_NEW_INSTANCE=Failed to create new instance of {0}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/developer/MemberSubmissionEndpointReference.java	2013-09-06 11:24:05.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/developer/MemberSubmissionEndpointReference.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/developer/MemberSubmissionEndpointReference.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41528,7 +45312,7 @@
              marshaller.marshal(this, result);
          } catch (JAXBException e) {
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/encoding/MimeCodec.java	2013-09-06 11:24:05.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/encoding/MimeCodec.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/encoding/MimeCodec.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41581,7 +45365,7 @@
  
      private String boundary;
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/fault/SOAPFaultBuilder.java	2013-09-06 11:24:05.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/fault/SOAPFaultBuilder.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/fault/SOAPFaultBuilder.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -41648,7 +45432,7 @@
 +    }
  }
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/model/RuntimeModeler.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/model/RuntimeModeler.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/model/RuntimeModeler.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41709,7 +45493,7 @@
                  i++;
              }
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/model/Utils.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/model/Utils.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/model/Utils.java	2014-07-15 21:54:37.000000000 -0700
 @@ -0,0 +1,97 @@
 +/*
 + * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
@@ -41809,7 +45593,7 @@
 +    }
 +}
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/model/WrapperBeanGenerator.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/model/WrapperBeanGenerator.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/model/WrapperBeanGenerator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41827,7 +45611,7 @@
      private static final class RuntimeWrapperBeanGenerator extends AbstractWrapperBeanGenerator {
  
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/AssertionSet.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/AssertionSet.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/AssertionSet.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41836,7 +45620,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/AssertionValidationProcessor.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/AssertionValidationProcessor.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/AssertionValidationProcessor.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41845,7 +45629,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/ComplexAssertion.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/ComplexAssertion.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/ComplexAssertion.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41854,7 +45638,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/EffectiveAlternativeSelector.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/EffectiveAlternativeSelector.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/EffectiveAlternativeSelector.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41863,7 +45647,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/EffectivePolicyModifier.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/EffectivePolicyModifier.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/EffectivePolicyModifier.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41872,7 +45656,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/NestedPolicy.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/NestedPolicy.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/NestedPolicy.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41881,7 +45665,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/Policy.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/Policy.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/Policy.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41890,7 +45674,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyAssertion.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyAssertion.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyAssertion.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41899,7 +45683,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyConstants.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyConstants.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyConstants.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41908,7 +45692,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyException.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyException.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyException.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41917,7 +45701,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyIntersector.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyIntersector.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyIntersector.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41926,7 +45710,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMap.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMap.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMap.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41935,7 +45719,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMapExtender.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMapExtender.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMapExtender.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41944,7 +45728,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMapKey.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMapKey.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMapKey.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41953,7 +45737,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMapKeyHandler.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMapKeyHandler.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMapKeyHandler.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41962,7 +45746,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMapMutator.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMapMutator.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMapMutator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41971,7 +45755,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMerger.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMerger.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMerger.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41980,7 +45764,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyScope.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyScope.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicyScope.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41989,7 +45773,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicySubject.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicySubject.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/PolicySubject.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -41998,7 +45782,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/SimpleAssertion.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/SimpleAssertion.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/SimpleAssertion.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42007,7 +45791,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/package-info.java	2013-09-06 11:24:06.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/package-info.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/package-info.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42016,7 +45800,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/MethodUtil.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/MethodUtil.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/MethodUtil.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,92 @@
 +/*
 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -42111,7 +45895,7 @@
 +
 +}
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/PolicyLogger.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/PolicyLogger.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/PolicyLogger.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42120,7 +45904,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/PolicyUtils.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/PolicyUtils.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/PolicyUtils.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42154,7 +45938,7 @@
                  return resultClass.cast(result);
              } catch (IllegalArgumentException e) {
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/RuntimePolicyUtilsException.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/RuntimePolicyUtilsException.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/RuntimePolicyUtilsException.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42163,7 +45947,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/ServiceConfigurationError.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/ServiceConfigurationError.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/ServiceConfigurationError.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42172,7 +45956,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/ServiceFinder.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/ServiceFinder.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/ServiceFinder.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42181,7 +45965,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/package-info.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/package-info.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/privateutil/package-info.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42190,7 +45974,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/AssertionData.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/AssertionData.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/AssertionData.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42199,7 +45983,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/CompactModelGenerator.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/CompactModelGenerator.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/CompactModelGenerator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42208,7 +45992,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/DefaultPolicyAssertionCreator.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/DefaultPolicyAssertionCreator.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/DefaultPolicyAssertionCreator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42217,7 +46001,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/ModelNode.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/ModelNode.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/ModelNode.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42226,7 +46010,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/NormalizedModelGenerator.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/NormalizedModelGenerator.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/NormalizedModelGenerator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42235,7 +46019,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyModelGenerator.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyModelGenerator.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyModelGenerator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42244,7 +46028,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyModelMarshaller.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyModelMarshaller.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyModelMarshaller.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42253,7 +46037,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyModelTranslator.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyModelTranslator.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyModelTranslator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42262,7 +46046,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyModelUnmarshaller.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyModelUnmarshaller.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyModelUnmarshaller.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42271,7 +46055,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyReferenceData.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyReferenceData.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicyReferenceData.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42280,7 +46064,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicySourceModel.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicySourceModel.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicySourceModel.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42289,7 +46073,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicySourceModelContext.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicySourceModelContext.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/PolicySourceModelContext.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42298,7 +46082,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/XmlPolicyModelMarshaller.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/XmlPolicyModelMarshaller.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/XmlPolicyModelMarshaller.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42307,7 +46091,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/XmlPolicyModelUnmarshaller.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/XmlPolicyModelUnmarshaller.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/XmlPolicyModelUnmarshaller.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42316,7 +46100,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocal.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocal.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocal.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,86 @@
 +/*
 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -42405,7 +46189,7 @@
 +}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocal.properties	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocal.properties	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ContextClassloaderLocal.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,27 @@
 +#
 +# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -42435,7 +46219,7 @@
 +FAILED_TO_CREATE_NEW_INSTANCE=Failed to create new instance of {0}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ExternalAttachmentsUnmarshaller.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ExternalAttachmentsUnmarshaller.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/ExternalAttachmentsUnmarshaller.java	2014-07-15 21:54:37.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42468,7 +46252,7 @@
              final Map map = instance.unmarshal(reader, null);
              LOGGER.exiting(map);
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/package-info.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/package-info.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/attach/package-info.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42477,7 +46261,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/package-info.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/package-info.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/package-info.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42486,7 +46270,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/wspolicy/NamespaceVersion.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/wspolicy/NamespaceVersion.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/wspolicy/NamespaceVersion.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42495,7 +46279,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/wspolicy/XmlToken.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/wspolicy/XmlToken.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/sourcemodel/wspolicy/XmlToken.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42504,7 +46288,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/AbstractQNameValidator.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/AbstractQNameValidator.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/AbstractQNameValidator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42513,7 +46297,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/AssertionCreationException.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/AssertionCreationException.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/AssertionCreationException.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42522,7 +46306,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/PolicyAssertionCreator.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/PolicyAssertionCreator.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/PolicyAssertionCreator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42531,7 +46315,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/PolicyAssertionValidator.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/PolicyAssertionValidator.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/PolicyAssertionValidator.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42540,7 +46324,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/PrefixMapper.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/PrefixMapper.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/PrefixMapper.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42549,7 +46333,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/package-info.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/package-info.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/spi/package-info.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42558,7 +46342,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/subject/PolicyMapKeyConverter.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/subject/PolicyMapKeyConverter.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/subject/PolicyMapKeyConverter.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42567,7 +46351,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/subject/WsdlBindingSubject.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/subject/WsdlBindingSubject.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/subject/WsdlBindingSubject.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42576,7 +46360,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/subject/package-info.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/subject/package-info.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/policy/subject/package-info.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42585,7 +46369,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/server/AbstractInstanceResolver.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/server/AbstractInstanceResolver.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/server/AbstractInstanceResolver.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42603,7 +46387,7 @@
                      throw new ServerRtException("server.rt.err",e);
                  } catch (InvocationTargetException e) {
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/server/MethodUtil.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/server/MethodUtil.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/server/MethodUtil.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,94 @@
 +/*
 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -42700,7 +46484,7 @@
 +
 +}
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/ContextClassloaderLocal.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/ContextClassloaderLocal.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/ContextClassloaderLocal.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,86 @@
 +/*
 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -42789,7 +46573,7 @@
 +}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/ContextClassloaderLocal.properties	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/ContextClassloaderLocal.properties	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/ContextClassloaderLocal.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,27 @@
 +#
 +# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -42819,7 +46603,7 @@
 +FAILED_TO_CREATE_NEW_INSTANCE=Failed to create new instance of {0}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/ProviderImpl.java	2013-09-06 11:24:07.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/ProviderImpl.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/ProviderImpl.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -42851,7 +46635,7 @@
                  } catch (JAXBException e) {
                      throw new WebServiceException("Error creating Marshaller or marshalling.", e);
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/util/xml/ContextClassloaderLocal.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/util/xml/ContextClassloaderLocal.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/util/xml/ContextClassloaderLocal.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,86 @@
 +/*
 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -42940,7 +46724,7 @@
 +}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/util/xml/ContextClassloaderLocal.properties	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/util/xml/ContextClassloaderLocal.properties	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/util/xml/ContextClassloaderLocal.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,27 @@
 +#
 +# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -42970,7 +46754,7 @@
 +FAILED_TO_CREATE_NEW_INSTANCE=Failed to create new instance of {0}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/util/xml/XmlUtil.java	2013-09-06 11:24:08.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/util/xml/XmlUtil.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/util/xml/XmlUtil.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -43027,7 +46811,7 @@
              reader.setProperty(LEXICAL_HANDLER_PROPERTY, th);
              reader.parse(toInputSource(ssrc));
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/ContextClassloaderLocal.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/ContextClassloaderLocal.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/ContextClassloaderLocal.java	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,86 @@
 +/*
 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -43116,7 +46900,7 @@
 +}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/ContextClassloaderLocal.properties	1969-12-31 16:00:00.000000000 -0800
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/ContextClassloaderLocal.properties	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/ContextClassloaderLocal.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -0,0 +1,27 @@
 +#
 +# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -43146,7 +46930,7 @@
 +FAILED_TO_CREATE_NEW_INSTANCE=Failed to create new instance of {0}
 +
 --- ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/DomAnnotationParserFactory.java	2013-09-06 11:24:10.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/DomAnnotationParserFactory.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/com/sun/xml/internal/xsom/util/DomAnnotationParserFactory.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -43178,7 +46962,7 @@
                  throw new Error(e); // impossible
              }
 --- ./jaxws/src/share/jaxws_classes/javax/xml/bind/DatatypeConverterImpl.java	2013-09-06 11:24:10.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/bind/DatatypeConverterImpl.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/bind/DatatypeConverterImpl.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43266,7 +47050,7 @@
  
      private static final class CalendarFormatter {
 --- ./jaxws/src/share/jaxws_classes/javax/xml/bind/Messages.java	2013-09-06 11:24:10.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/bind/Messages.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/bind/Messages.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -43282,7 +47066,7 @@
 +    static final String FAILED_TO_INITIALE_DATATYPE_FACTORY = "FAILED_TO_INITIALE_DATATYPE_FACTORY";
  }
 --- ./jaxws/src/share/jaxws_classes/javax/xml/bind/Messages.properties	2013-09-06 11:24:10.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/bind/Messages.properties	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/bind/Messages.properties	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  #
 -# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43298,7 +47082,7 @@
 +FAILED_TO_INITIALE_DATATYPE_FACTORY = \
 +    Failed to initialize JAXP 1.3 DatatypeFactory class.
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/AttachmentPart.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/AttachmentPart.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/AttachmentPart.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43307,7 +47091,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/Detail.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/Detail.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/Detail.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43316,7 +47100,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/DetailEntry.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/DetailEntry.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/DetailEntry.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43325,7 +47109,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/FactoryFinder.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/FactoryFinder.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/FactoryFinder.java	2014-07-15 21:46:13.000000000 -0700
 @@ -40,11 +40,12 @@
       */
      private static Object newInstance(String className,
@@ -43429,7 +47213,7 @@
                  return Class.forName(className);
  
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/MessageFactory.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/MessageFactory.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/MessageFactory.java	2014-07-15 21:46:13.000000000 -0700
 @@ -96,8 +96,9 @@
       * @see SAAJMetaFactory
       */
@@ -43453,7 +47237,7 @@
              throw new SOAPException(
                      "Unable to create message factory for SOAP: "
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/MimeHeader.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/MimeHeader.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/MimeHeader.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43462,7 +47246,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/MimeHeaders.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/MimeHeaders.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/MimeHeaders.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43471,7 +47255,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/Name.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/Name.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/Name.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43480,7 +47264,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/Node.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/Node.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/Node.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43489,7 +47273,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SAAJResult.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SAAJResult.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SAAJResult.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43498,7 +47282,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPBody.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPBody.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPBody.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43507,7 +47291,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPBodyElement.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPBodyElement.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPBodyElement.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43516,7 +47300,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPConnection.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPConnection.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPConnection.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43525,7 +47309,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPConstants.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPConstants.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPConstants.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43534,7 +47318,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPElement.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPElement.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPElement.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43543,7 +47327,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPElementFactory.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPElementFactory.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPElementFactory.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43552,7 +47336,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPEnvelope.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPEnvelope.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPEnvelope.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43561,7 +47345,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPException.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPException.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPException.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43570,7 +47354,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPFactory.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPFactory.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPFactory.java	2014-07-15 21:46:13.000000000 -0700
 @@ -261,7 +261,8 @@
          throws SOAPException
      {
@@ -43582,7 +47366,7 @@
                  return factory;
              return newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPFault.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPFault.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPFault.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43591,7 +47375,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPFaultElement.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPFaultElement.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPFaultElement.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43600,7 +47384,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPHeader.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPHeader.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPHeader.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43609,7 +47393,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPHeaderElement.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPHeaderElement.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPHeaderElement.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43618,7 +47402,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPMessage.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPMessage.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPMessage.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43627,7 +47411,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPPart.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPPart.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/SOAPPart.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43636,7 +47420,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/soap/Text.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/Text.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/soap/Text.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -43645,7 +47429,7 @@
   *
   * This code is free software; you can redistribute it and/or modify it
 --- ./jaxws/src/share/jaxws_classes/javax/xml/ws/wsaddressing/W3CEndpointReference.java	2013-09-06 11:24:11.000000000 -0700
-+++ ./jaxws/src/share/jaxws_classes/javax/xml/ws/wsaddressing/W3CEndpointReference.java	2014-07-15 23:25:00.000000000 -0700
++++ ./jaxws/src/share/jaxws_classes/javax/xml/ws/wsaddressing/W3CEndpointReference.java	2014-07-15 21:46:13.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -43663,7 +47447,7 @@
      protected W3CEndpointReference() {
      }
 --- ./jdk/.hgtags	2013-09-06 11:27:36.000000000 -0700
-+++ ./jdk/.hgtags	2014-07-15 23:24:50.000000000 -0700
++++ ./jdk/.hgtags	2014-10-28 20:19:52.000000000 -0700
 @@ -123,6 +123,7 @@
  539e576793a8e64aaf160e0d6ab0b9723cd0bef0 jdk7-b146
  69e973991866c948cf1808b06884ef2d28b64fcb jdk7u1-b01
@@ -43672,7 +47456,7 @@
  2baf612764d215e6f3a5b48533f74c6924ac98d7 jdk7u1-b02
  a4781b6d9cfb6901452579adee17c9a17c1b584c jdk7u1-b03
  b223ed9a5fdf8ce3af42adfa8815975811d70eae jdk7u1-b04
-@@ -342,3 +343,105 @@
+@@ -342,3 +343,147 @@
  b479996d5c924128c3490165b592bf66a3034932 jdk7u40-b42
  fb25cdef17e9610db5cb89fc35c0c4abef5ad781 jdk7u40-b43
  ed444a09a5fd32237deaef6e43804e20ba4f6352 jdk7u40-b60
@@ -43738,9 +47522,13 @@
 +92fd166252c2701092a510002f4cf9285a20473d jdk7u55-b13
 +4a5651c84b1e6cf26dc9b19f00747e5004efba68 jdk7u55-b30
 +ffd99c5975217a14609851602c5f5dc005234aba jdk7u55-b14
++a015a0971dacd536f1ab92bf9bcf0dafb7684e61 jdk7u55-b15
 +88f1bf248cc520e0bf7ef17bc862f87aab958373 jdk7u55-b31
 +b83f5194edf23b752fe2c0a9be361455f87196df jdk7u55-b32
 +01a4cd03a6c85abb62eb5d1c2b5bf7d2f544c04e jdk7u55-b33
++3f54f8a387c1a908c07106b685183b19a5fc1064 jdk7u55-b34
++2cdc52ec4813abe38b4e52ae9c9f0ff5dcc87faa jdk7u55-b35
++6845d311ff990d422f9376d37e3e82d5d06bff3f jdk7u55-b36
 +db5a29c812ee25c34ce9cd97de6e0dae284a4e34 jdk7u60-b00
 +def34c4a798678c424786a8f0d0508e90185958d jdk7u60-b01
 +ff67c89658525e8903fb870861ed3645befd6bc5 jdk7u60-b02
@@ -43762,6 +47550,10 @@
 +e484202d9a4104840d758a21b2bba1250e766343 jdk7u60-b18
 +c220d329a78161f79df73048ed55db91f538e3b7 jdk7u65-b01
 +7190843ddaf4f3ad158c3071be0f4ca42a5802dc jdk7u60-b19
++8dc56d0f3e860658619eaa57d10fb1a4182d71cd jdk7u60-b30
++feac9624a1e1ffebe09a19ae351d88e3ef98c441 jdk7u60-b31
++fb40615ef352e03ee94c0682a6ca0a0e6a33a70b jdk7u60-b32
++9cfcdeeecfac66004cb5bbb2c5bba5c57e170539 jdk7u60-b33
 +a42a3bb22f6991d8f6a30e4f1782ad620c40eb65 jdk7u65-b02
 +756071871d61e1ca410c63a3f1c4dabcc51a90df jdk7u65-b03
 +bac16c82c14a35d1e9d3c4d0bd317dbbb296f34e jdk7u65-b04
@@ -43778,8 +47570,42 @@
 +8cff6ce00a91820b4cb7ef24ed42063c2305127d jdk7u65-b15
 +190017413768f02addea8b2c5106157e3c4076c7 jdk7u65-b16
 +23e78e36bc39f4f761ac2b0e055c562c3ff204f5 jdk7u65-b17
++96d1fa382dda17ae105f28083bda41f79fc3093f jdk7u65-b30
++7f7430459adfe7b7fb65da8c3fac2ac5e3495ea1 jdk7u65-b18
++ba6cef21c369076be97dd8133fd4a158cd486bd8 jdk7u65-b19
++c3a56021fc22f886106f123d4f25b385ac6b79d7 jdk7u65-b32
++8b9d926bd35adceb99f244b7b068fedb0f220f03 jdk7u65-b20
++5cf343beab2ce73d299d4f1a8f3b95892f9fd818 jdk7u67-b01
++ba6cef21c369076be97dd8133fd4a158cd486bd8 jdk7u65-b40
++7b47a34063e94e1ab5636b11231d33fae92754c9 jdk7u65-b31
++4cb63f8ca9ee8c60d6f3d0051b69acc8392bd8de jdk7u65-b33
++9ccfe70cee626ac7831cfa7b7a7eb7a88fe1cd42 jdk7u66-b00
++fc87b55d62fc1e81aaf61ff21175129b8ccc302e jdk7u66-b01
++c67e394e49429565540f04c5c2a5544f750658bb jdk7u66-b09
++257fd79cdef52511db18e1bab8967d94a03920bc jdk7u66-b10
++6f38c929df1b9d6df7760b2eb9bf3e4681a27c56 jdk7u66-b11
++d4f0008cdf6d3ec8e8e210c03e55aaa751647e8d jdk7u66-b12
++24b7c3d0942766af3415dd6125b9b8da059dbccc jdk7u66-b13
++74d01c3385b915490255cd7467a3740aa3dce310 jdk7u66-b14
++07fc91c550da6ba689e3abc9e688edcb73f9c95c jdk7u66-b15
++d4814cafa25f5b076be9e99be2a8c0d98929476d jdk7u66-b16
++69adfb3ccee5373438a6c394646c2c5ab93c89ee jdk7u66-b17
++ee0cedc50d3250edf24e96aecc785580dd61944f jdk7u71-b00
++6c865d8ab14093e4ef95e7c548c432e4bf887760 jdk7u71-b01
++829ca47df2ced2d0dc330391bf7578363369b92b jdk7u71-b02
++5b9e9506bd57763c958ea6fcff99b03d47942b9d jdk7u71-b03
++347bc2b7831097ea373ef7be72bfbf0ba3de4b7f jdk7u71-b04
++3019595da91688c79f617cf737431a2acee3ef71 jdk7u71-b05
++0a05fabc719fe6c1ed02678d255f1250b32c30ed jdk7u71-b06
++48db48aab05e47cafc37b277f68a0e2ff5f1f0b6 jdk7u71-b07
++9ff013674339cb269280bfb4eaba40bba0584c40 jdk7u71-b08
++7e47a971eff7d78a459c23ee0d44b8f6c6c4c812 jdk7u71-b09
++919e84964279a058da2c8d4088c570c19543979f jdk7u71-b10
++1108ab8e3dce0318529b4bcda46ce895659bb09b jdk7u71-b11
++ae4e88c495851c43862e2fc3d1ff7b64c68f368c jdk7u71-b12
++a6cbc82d62f915cdcd6037c8b40a4590585553c7 jdk7u71-b13
 --- ./jdk/make/bridge/AccessBridgeJava/Makefile	2013-09-06 11:27:36.000000000 -0700
-+++ ./jdk/make/bridge/AccessBridgeJava/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/bridge/AccessBridgeJava/Makefile	2014-07-15 21:49:28.000000000 -0700
 @@ -1,5 +1,5 @@
  #
 -# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
@@ -43806,7 +47632,7 @@
  
  all : build $(JARFILE) 
 --- ./jdk/make/bridge/Jabswitch/Makefile	2013-09-06 11:27:36.000000000 -0700
-+++ ./jdk/make/bridge/Jabswitch/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/bridge/Jabswitch/Makefile	2014-07-15 21:49:28.000000000 -0700
 @@ -53,7 +53,7 @@
  buildexe : 
  	$(CD) $(TEMPDIR)  
@@ -43817,7 +47643,7 @@
  
  copyfilejab : 
 --- ./jdk/make/com/oracle/Makefile	2013-09-06 11:27:36.000000000 -0700
-+++ ./jdk/make/com/oracle/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/com/oracle/Makefile	2014-07-15 21:49:28.000000000 -0700
 @@ -30,22 +30,8 @@
  #SUBDIRS_MAKEFLAGS += JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation,-path
  include $(BUILDDIR)/common/Defs.gmk
@@ -43844,7 +47670,7 @@
  
  # build com/oracle/security/ucrypto on Solaris platform for non-OpenJDK builds
 --- ./jdk/make/com/sun/jmx/Makefile	2013-09-06 11:27:36.000000000 -0700
-+++ ./jdk/make/com/sun/jmx/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/com/sun/jmx/Makefile	2014-07-15 21:49:28.000000000 -0700
 @@ -1,5 +1,5 @@
  #
 -# Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
@@ -43876,7 +47702,7 @@
  	@$(java-vm-cleanup)
  
 --- ./jdk/make/com/sun/nio/Makefile	2013-09-06 11:27:36.000000000 -0700
-+++ ./jdk/make/com/sun/nio/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/com/sun/nio/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -31,11 +31,18 @@
  include $(BUILDDIR)/common/Defs.gmk
  
@@ -43898,7 +47724,7 @@
  all build clean clobber::
  	$(SUBDIRS-loop)
 --- ./jdk/make/com/sun/nio/sctp/Makefile	2013-09-06 11:27:36.000000000 -0700
-+++ ./jdk/make/com/sun/nio/sctp/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/com/sun/nio/sctp/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -59,15 +59,11 @@
    -I$(PLATFORM_SRC)/native/java/net \
    -I$(CLASSHDRDIR)/../../../../java/java.nio/nio/CClassHeaders
@@ -43918,7 +47744,7 @@
  else # windows
  include $(BUILDDIR)/common/Classes.gmk
 --- ./jdk/make/com/sun/security/auth/module/Makefile	2013-09-06 11:27:36.000000000 -0700
-+++ ./jdk/make/com/sun/security/auth/module/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/com/sun/security/auth/module/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -67,7 +67,7 @@
    include FILES_c_solaris.gmk
  endif # solaris
@@ -43929,7 +47755,7 @@
    include FILES_export_unix.gmk
    include FILES_c_unix.gmk
 --- ./jdk/make/com/sun/tools/attach/Exportedfiles.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/com/sun/tools/attach/Exportedfiles.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/com/sun/tools/attach/Exportedfiles.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -43,7 +43,7 @@
  	sun/tools/attach/LinuxVirtualMachine.java
  endif
@@ -43940,7 +47766,7 @@
  	sun/tools/attach/BsdVirtualMachine.java
  endif
 --- ./jdk/make/com/sun/tools/attach/FILES_c.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/com/sun/tools/attach/FILES_c.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/com/sun/tools/attach/FILES_c.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -39,7 +39,7 @@
  	LinuxVirtualMachine.c
  endif
@@ -43951,7 +47777,7 @@
  	BsdVirtualMachine.c
  endif
 --- ./jdk/make/com/sun/tools/attach/FILES_java.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/com/sun/tools/attach/FILES_java.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/com/sun/tools/attach/FILES_java.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -43,7 +43,7 @@
  	sun/tools/attach/LinuxAttachProvider.java
  endif
@@ -43962,7 +47788,7 @@
  	sun/tools/attach/BsdAttachProvider.java
  endif
 --- ./jdk/make/com/sun/tools/attach/Makefile	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/com/sun/tools/attach/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/com/sun/tools/attach/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -38,7 +38,7 @@
  ifeq ($(PLATFORM), linux)
  FILES_m = mapfile-linux
@@ -43982,7 +47808,7 @@
  else
    vpath %.c $(PLATFORM_SRC)/native/sun/tools/attach
 --- ./jdk/make/com/sun/tools/attach/mapfile-bsd	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/com/sun/tools/attach/mapfile-bsd	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/com/sun/tools/attach/mapfile-bsd	2014-10-28 20:19:52.000000000 -0700
 @@ -30,6 +30,7 @@
  	    Java_sun_tools_attach_BsdVirtualMachine_checkPermissions;
  	    Java_sun_tools_attach_BsdVirtualMachine_close;
@@ -43992,7 +47818,7 @@
  	    Java_sun_tools_attach_BsdVirtualMachine_sendQuitTo;
  	    Java_sun_tools_attach_BsdVirtualMachine_socket;
 --- ./jdk/make/common/Defs-bsd.gmk	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/make/common/Defs-bsd.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/Defs-bsd.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -0,0 +1,482 @@
 +#
 +# Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
@@ -44477,7 +48303,7 @@
 +  OTHER_CPPFLAGS += -I$(OPENWIN_HOME)/include
 +endif
 --- ./jdk/make/common/Defs-embedded.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/Defs-embedded.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/Defs-embedded.gmk	2014-07-15 21:49:28.000000000 -0700
 @@ -71,7 +71,9 @@
  # and it must be linked after fdlibm - this places it at the end after libc
  # -z muldefs avoids linker errors for duplicate symbols.
@@ -44490,7 +48316,7 @@
  endif
  
 --- ./jdk/make/common/Defs-linux.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/Defs-linux.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/Defs-linux.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -426,6 +426,7 @@
  override LIBDL                   = -ldl
  override MOOT_PRIORITIES         = true
@@ -44500,7 +48326,7 @@
  override OPENWIN_LIB             = $(OPENWIN_HOME)/lib64
  else
 --- ./jdk/make/common/Defs-macosx.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/Defs-macosx.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/Defs-macosx.gmk	2014-07-15 21:49:28.000000000 -0700
 @@ -397,11 +397,14 @@
    INCLUDE_SA = true
  endif
@@ -44523,7 +48349,7 @@
  
  LIB_LOCATION ?= $(LIBDIR)
 --- ./jdk/make/common/Defs-solaris.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/Defs-solaris.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/Defs-solaris.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -753,6 +753,9 @@
  # Network Services library
  LIBNSL = -lnsl
@@ -44535,7 +48361,7 @@
  LIBSCF = -lscf
  
 --- ./jdk/make/common/Defs.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/Defs.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/Defs.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -179,15 +179,15 @@
  
    ifdef ALT_FREETYPE_LIB_PATH
@@ -44587,7 +48413,7 @@
  else
    VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes
 --- ./jdk/make/common/Library.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/Library.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/Library.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -299,8 +299,12 @@
              ifeq ($(PLATFORM), solaris)
  	      $(STRIP) -x $@
@@ -44604,7 +48430,7 @@
            # implied else here is no stripping at all
            endif
 --- ./jdk/make/common/Mapfile-vers.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/Mapfile-vers.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/Mapfile-vers.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -76,7 +76,7 @@
  
  endif # PLATFORM
@@ -44615,7 +48441,7 @@
  ifeq ($(VARIANT), OPT)
    # OPT build MUST have a mapfile?
 --- ./jdk/make/common/Program.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/Program.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/Program.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -95,23 +95,31 @@
    endif # SYSTEM_ZLIB
  endif # PLATFORM
@@ -44706,7 +48532,7 @@
  OTHER_CPPFLAGS  += -DPROGNAME='"$(PROGRAM)"'
  VERSION_DEFINES += -DFULL_VERSION='"$(FULL_VERSION)"'
 --- ./jdk/make/common/Release-macosx.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/Release-macosx.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/Release-macosx.gmk	2014-07-15 21:49:28.000000000 -0700
 @@ -58,6 +58,9 @@
  jdk-bundle-setup:
  	$(RM) -r $(JDK_BUNDLE_DIR)
@@ -44726,7 +48552,7 @@
  
  .PHONY: $(EXTRA_JRE_TARGETS) $(EXTRA_IMAGE_TARGETS)
 --- ./jdk/make/common/Release.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/Release.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/Release.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -180,6 +180,12 @@
    JA_DIRNAME=ja_JP.UTF-8
  endif # linux
@@ -44847,7 +48673,7 @@
  	  fi; \
  	done
 --- ./jdk/make/common/Rules.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/Rules.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/Rules.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -51,7 +51,7 @@
  #
  # All source tree areas for java/properties files (a few may be closed)
@@ -44867,7 +48693,7 @@
  $(CLASSDESTDIR)/%.class: $(JDK_TOPDIR)/src/macosx/classes/%.java
  	@$(add-java-file)
 --- ./jdk/make/common/shared/Compiler-gcc.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/shared/Compiler-gcc.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/shared/Compiler-gcc.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -72,6 +72,21 @@
  
  endif
@@ -44891,7 +48717,7 @@
  
    # Settings specific to Solaris
 --- ./jdk/make/common/shared/Defs-bsd.gmk	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/make/common/shared/Defs-bsd.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/shared/Defs-bsd.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -0,0 +1,267 @@
 +#
 +# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -45161,7 +48987,7 @@
 +endif
 +
 --- ./jdk/make/common/shared/Defs-utils.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/shared/Defs-utils.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/shared/Defs-utils.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -74,6 +74,13 @@
    UTILS_DEVTOOL_PATH=$(DEVTOOLS_PATH)
  endif
@@ -45213,7 +49039,7 @@
 +  endif
 +endif
 --- ./jdk/make/common/shared/Defs-versions.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/shared/Defs-versions.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/shared/Defs-versions.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -44,6 +44,11 @@
    override CC_VERSION = gcc
  endif
@@ -45241,7 +49067,7 @@
  ifeq ($(PLATFORM), macosx)
    REQUIRED_OS_NAME            = Darwin
 --- ./jdk/make/common/shared/Defs.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/shared/Defs.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/shared/Defs.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -181,7 +181,7 @@
  # platform and shared sources/headers.  This is mainly useful for the
  # Mac OS X build, which pulls its platform sources from the solaris and/or
@@ -45278,7 +49104,7 @@
  endif
  
 --- ./jdk/make/common/shared/Platform.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/common/shared/Platform.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/common/shared/Platform.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -298,6 +298,85 @@
    # How much RAM does this machine have:
  endif
@@ -45366,7 +49192,7 @@
  ifeq ($(SYSTEM_UNAME), Windows_NT)
    PLATFORM = windows
 --- ./jdk/make/java/Makefile	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/Makefile	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -53,14 +53,10 @@
    endif
  endif # PLATFORM
@@ -45384,7 +49210,7 @@
  
  all build clean clobber::
 --- ./jdk/make/java/instrument/Makefile	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/instrument/Makefile	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/instrument/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -104,12 +104,24 @@
    # equivalent of strcasecmp is stricmp on Windows
    CPPFLAGS_COMMON += -Dstrcasecmp=stricmp
@@ -45416,7 +49242,7 @@
      OTHER_LDLIBS += -lz
    endif
 --- ./jdk/make/java/java/Exportedfiles.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/java/Exportedfiles.gmk	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/java/Exportedfiles.gmk	2014-07-15 21:49:28.000000000 -0700
 @@ -50,6 +50,7 @@
      java/lang/SecurityManager.java \
      java/lang/Shutdown.java \
@@ -45426,7 +49252,7 @@
      java/lang/reflect/AccessibleObject.java \
      java/lang/reflect/Field.java \
 --- ./jdk/make/java/java/FILES_c.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/java/FILES_c.gmk	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/java/FILES_c.gmk	2014-07-15 21:49:28.000000000 -0700
 @@ -37,7 +37,6 @@
  	FileInputStream.c \
  	FileInputStream_md.c \
@@ -45436,7 +49262,7 @@
  	Object.c \
  	ObjectOutputStream.c \
 --- ./jdk/make/java/java/Makefile	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/java/Makefile	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/java/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -84,6 +84,7 @@
                  java/util/prefs/FileSystemPreferencesFactory.java \
  
@@ -45514,7 +49340,7 @@
 +
 +endif #BUILDHELPER
 --- ./jdk/make/java/java/genlocales.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/java/genlocales.gmk	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/java/genlocales.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -93,18 +93,66 @@
  
  else
@@ -45587,7 +49413,7 @@
  genlocales : $(LocaleDataMetaInfo_Dest)  
  
 --- ./jdk/make/java/java/mapfile-vers	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/java/mapfile-vers	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/java/mapfile-vers	2014-07-15 21:49:28.000000000 -0700
 @@ -121,6 +121,7 @@
  		Java_java_io_UnixFileSystem_setReadOnly;
  		Java_java_io_UnixFileSystem_setPermission;
@@ -45614,7 +49440,7 @@
  		Java_java_lang_UNIXProcess_forkAndExec;
  		Java_java_lang_UNIXProcess_destroyProcess;
 --- ./jdk/make/java/java/reorder-i586	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/java/reorder-i586	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/java/reorder-i586	2014-07-15 21:49:28.000000000 -0700
 @@ -77,7 +77,6 @@
  text: .text%JNU_GetEnv;
  text: .text%Java_java_io_UnixFileSystem_checkAccess;
@@ -45624,7 +49450,7 @@
  text: .text%Java_java_lang_reflect_Array_newArray;
  text: .text%Java_java_lang_Throwable_getStackTraceDepth;
 --- ./jdk/make/java/java/reorder-sparc	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/java/reorder-sparc	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/java/reorder-sparc	2014-07-15 21:49:28.000000000 -0700
 @@ -87,7 +87,6 @@
  text: .text%throwFileNotFoundException;
  text: .text%JNU_NotifyAll;
@@ -45634,7 +49460,7 @@
  text: .text%JNU_CallMethodByNameV;
  text: .text%Java_java_io_UnixFileSystem_createDirectory;
 --- ./jdk/make/java/java/reorder-sparcv9	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/java/reorder-sparcv9	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/java/reorder-sparcv9	2014-07-15 21:49:28.000000000 -0700
 @@ -77,7 +77,6 @@
  text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
  text: .text%JNU_GetEnv;
@@ -45644,7 +49470,7 @@
  text: .text%Java_java_lang_Throwable_getStackTraceDepth;
  text: .text%Java_java_lang_Throwable_getStackTraceElement;
 --- ./jdk/make/java/jli/Makefile	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/jli/Makefile	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/jli/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -119,9 +119,9 @@
    LIBARCH_DEFINES += -DLIBARCH64NAME='"$(LIBARCH64)"'
  endif # PLATFORM
@@ -45667,7 +49493,7 @@
        LDLIBS += -lpthread
      endif # USE_PTHREADS 
 --- ./jdk/make/java/management/mapfile-vers	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/management/mapfile-vers	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/management/mapfile-vers	2014-07-15 21:49:28.000000000 -0700
 @@ -53,7 +53,7 @@
  	    Java_sun_management_GcInfoBuilder_fillGcAttributeInfo;
  	    Java_sun_management_GcInfoBuilder_getLastGcInfo0;
@@ -45678,8 +49504,8 @@
  	    Java_sun_management_HotspotThread_getInternalThreadTimes0;
  	    Java_sun_management_MemoryImpl_getMemoryManagers0;
 --- ./jdk/make/java/net/FILES_c.gmk	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/net/FILES_c.gmk	2014-07-15 23:24:32.000000000 -0700
-@@ -24,20 +24,21 @@
++++ ./jdk/make/java/net/FILES_c.gmk	2014-10-28 20:19:52.000000000 -0700
+@@ -24,20 +24,22 @@
  #
  
  FILES_c = \
@@ -45697,6 +49523,7 @@
 -	net_util_md.c \
 -	ResolverConfigurationImpl.c \
 -	DefaultProxySelector.c
++        AbstractPlainDatagramSocketImpl.c \
 +        DatagramPacket.c \
 +        InetAddress.c \
 +        Inet4Address.c \
@@ -45715,7 +49542,7 @@
  
  ifeq ($(PLATFORM), linux)
      FILES_c += linux_close.c
-@@ -47,6 +48,10 @@
+@@ -47,6 +49,10 @@
      FILES_c += bsd_close.c
  endif
  
@@ -45727,7 +49554,7 @@
      FILES_c += TwoStacksPlainSocketImpl.c
      FILES_c += DualStackPlainSocketImpl.c
 --- ./jdk/make/java/net/Makefile	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/net/Makefile	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/net/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -83,7 +83,8 @@
  # Find platform specific native code
  #
@@ -45748,8 +49575,8 @@
    OTHER_CFLAGS += -DDONT_ENABLE_IPV6
  endif
 --- ./jdk/make/java/net/mapfile-vers	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/net/mapfile-vers	2014-07-15 23:24:32.000000000 -0700
-@@ -26,84 +26,86 @@
++++ ./jdk/make/java/net/mapfile-vers	2014-10-28 20:19:45.000000000 -0700
+@@ -26,84 +26,88 @@
  # Define public interface.
  
  SUNWprivate_1.1 {
@@ -45823,6 +49650,8 @@
 -		NET_SockaddrToInetAddress;
 +        global:
 +                JNI_OnLoad;
++                Java_java_net_AbstractPlainDatagramSocketImpl_init;
++                Java_java_net_AbstractPlainDatagramSocketImpl_dataAvailable;
 +                Java_java_net_PlainSocketImpl_socketListen;
 +                Java_java_net_PlainDatagramSocketImpl_getTTL;
 +                Java_java_net_PlainDatagramSocketImpl_init;
@@ -45914,7 +49743,7 @@
 +                *;
  };
 --- ./jdk/make/java/nio/Makefile	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/nio/Makefile	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/nio/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -263,13 +263,89 @@
  	sun/nio/fs/UnixConstants.java
  endif # PLATFORM = linux
@@ -46056,7 +49885,7 @@
  endif
  include $(BUILDDIR)/common/Mapfile-vers.gmk
 --- ./jdk/make/java/nio/mapfile-bsd	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/nio/mapfile-bsd	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/nio/mapfile-bsd	2014-10-28 20:19:52.000000000 -0700
 @@ -70,6 +70,7 @@
                  Java_sun_nio_ch_IOUtil_drain;
                  Java_sun_nio_ch_IOUtil_fdVal;
@@ -46078,7 +49907,7 @@
  		Java_sun_nio_ch_KQueuePort_interrupt;
  		Java_sun_nio_ch_KQueuePort_drain1;
 --- ./jdk/make/java/npt/Makefile	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/npt/Makefile	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/npt/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -74,6 +74,14 @@
    OTHER_LDLIBS += -liconv
  endif
@@ -46095,7 +49924,7 @@
  # Add to ambient vpath so we pick up the library files
  #
 --- ./jdk/make/java/redist/fonts/Makefile	2013-09-06 11:27:37.000000000 -0700
-+++ ./jdk/make/java/redist/fonts/Makefile	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/redist/fonts/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -42,7 +42,7 @@
  	$(LIBDIR)/fonts/LucidaSansRegular.ttf       	\
  	$(LIBDIR)/fonts/LucidaSansDemiBold.ttf       	\
@@ -46124,7 +49953,7 @@
  all build : $(INTERNAL_IMPORT_LIST)
  
 --- ./jdk/make/java/util/FILES_properties.gmk	2013-09-06 11:27:38.000000000 -0700
-+++ ./jdk/make/java/util/FILES_properties.gmk	2014-07-15 23:24:32.000000000 -0700
++++ ./jdk/make/java/util/FILES_properties.gmk	2014-07-15 21:54:44.000000000 -0700
 @@ -107,6 +107,7 @@
          sun/util/resources/CalendarData_pl.properties \
          sun/util/resources/CalendarData_pt.properties \
@@ -46134,7 +49963,7 @@
          sun/util/resources/CalendarData_ru.properties \
          sun/util/resources/CalendarData_sk.properties \
 --- ./jdk/make/javax/sound/Makefile	2013-09-06 11:27:38.000000000 -0700
-+++ ./jdk/make/javax/sound/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/javax/sound/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -111,6 +111,21 @@
    #MXSPP_ADD = $(PLATFORM)-$(ARCH)/
  endif # PLATFORM linux
@@ -46158,7 +49987,7 @@
    CPPFLAGS += -DUSE_PORTS=TRUE \
                -DUSE_DAUDIO=TRUE \
 --- ./jdk/make/javax/sound/SoundDefs.gmk	2013-09-06 11:27:38.000000000 -0700
-+++ ./jdk/make/javax/sound/SoundDefs.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/javax/sound/SoundDefs.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -40,6 +40,10 @@
    CPPFLAGS += -DX_PLATFORM=X_LINUX
  endif # PLATFORM linux
@@ -46171,7 +50000,7 @@
    CPPFLAGS += -DX_PLATFORM=X_MACOSX
  endif # PLATFORM macosx
 --- ./jdk/make/javax/sound/jsoundalsa/Makefile	2013-09-06 11:27:38.000000000 -0700
-+++ ./jdk/make/javax/sound/jsoundalsa/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/javax/sound/jsoundalsa/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -51,6 +51,7 @@
  	$(PORTFILES_c)
  
@@ -46223,7 +50052,7 @@
  #
  # Add to the ambient VPATH.
 --- ./jdk/make/jpda/transport/socket/Makefile	2013-09-06 11:27:38.000000000 -0700
-+++ ./jdk/make/jpda/transport/socket/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/jpda/transport/socket/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -38,6 +38,11 @@
  
  include $(BUILDDIR)/common/Defs.gmk
@@ -46300,7 +50129,7 @@
 -FILES_export += \
 -	com/apple/resources/MacOSXResourceBundle.java
 --- ./jdk/make/sun/awt/Makefile	2013-09-06 11:27:39.000000000 -0700
-+++ ./jdk/make/sun/awt/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/awt/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -127,7 +127,12 @@
  OTHER_LDLIBS = $(JVMLIB) $(LIBM) $(LIBDL)
  endif
@@ -46388,7 +50217,7 @@
  endif
  
 --- ./jdk/make/sun/awt/mawt.gmk	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/awt/mawt.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/awt/mawt.gmk	2014-10-28 20:19:52.000000000 -0700
 @@ -169,7 +169,7 @@
  OTHER_LDLIBS = -lXt -lXext $(LIBXTST) $(LIBXMU) -lX11 -lXi
  endif
@@ -46446,7 +50275,7 @@
    CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
                -I$(OPENWIN_HOME)/include 
 --- ./jdk/make/sun/font/Makefile	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/font/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/font/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -36,7 +36,11 @@
  CPLUSPLUSLIBRARY=true
  
@@ -46479,7 +50308,7 @@
  OTHER_LDLIBS  += -lawt $(LIBM) $(LIBCXX)
   ifeq ($(OS_VENDOR),Apple)
 --- ./jdk/make/sun/javazic/tzdata/VERSION	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/VERSION	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/VERSION	2014-07-15 21:54:44.000000000 -0700
 @@ -21,4 +21,4 @@
  # or visit www.oracle.com if you need additional information or have any
  # questions.
@@ -46487,7 +50316,7 @@
 -tzdata2013d
 +tzdata2014c
 --- ./jdk/make/sun/javazic/tzdata/africa	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/africa	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/africa	2014-07-15 21:54:44.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -46752,7 +50581,7 @@
  # Swaziland
  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
 --- ./jdk/make/sun/javazic/tzdata/antarctica	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/antarctica	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/antarctica	2014-07-15 21:49:28.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -46889,7 +50718,7 @@
 -Link	Antarctica/McMurdo	Antarctica/South_Pole
 +# See 'australasia' for Antarctica/McMurdo.
 --- ./jdk/make/sun/javazic/tzdata/asia	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/asia	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/asia	2014-07-15 21:54:44.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47135,7 +50964,7 @@
  # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
  Zone	Asia/Gaza	2:17:52	-	LMT	1900 Oct
 --- ./jdk/make/sun/javazic/tzdata/australasia	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/australasia	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/australasia	2014-07-15 21:49:28.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47252,7 +51081,7 @@
  # Kingman
  # uninhabited
 --- ./jdk/make/sun/javazic/tzdata/backward	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/backward	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/backward	2014-07-15 21:49:28.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47315,7 +51144,7 @@
  Link	Europe/Lisbon		Portugal
  Link	Asia/Taipei		ROC
 --- ./jdk/make/sun/javazic/tzdata/etcetera	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/etcetera	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/etcetera	2014-07-15 21:49:28.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47356,7 +51185,7 @@
  # In the draft 5 of POSIX 1003.1-200x, the angle bracket notation allows for
  # TZ='+4'; if you want time zone abbreviations conforming to
 --- ./jdk/make/sun/javazic/tzdata/europe	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/europe	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/europe	2014-07-15 21:54:44.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47832,7 +51661,7 @@
  ###############################################################################
  
 --- ./jdk/make/sun/javazic/tzdata/factory	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/factory	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/factory	2014-07-15 21:49:28.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47861,7 +51690,7 @@
  # or visit www.oracle.com if you need additional information or have any
  # questions.
 --- ./jdk/make/sun/javazic/tzdata/iso3166.tab	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/iso3166.tab	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/iso3166.tab	2014-07-15 21:49:28.000000000 -0700
 @@ -1,30 +1,30 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47927,7 +51756,7 @@
  BS	Bahamas
  BT	Bhutan
 --- ./jdk/make/sun/javazic/tzdata/leapseconds	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/leapseconds	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/leapseconds	2014-07-15 21:49:28.000000000 -0700
 @@ -1,37 +1,43 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48047,7 +51876,7 @@
 -# Earth Orientation Center of IERS
 -# Observatoire de Paris, France
 --- ./jdk/make/sun/javazic/tzdata/northamerica	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/northamerica	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/northamerica	2014-07-15 21:49:28.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48461,7 +52290,7 @@
 -			-4:00	-	AST
 +# See 'southamerica'.
 --- ./jdk/make/sun/javazic/tzdata/pacificnew	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/pacificnew	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/pacificnew	2014-07-15 21:49:28.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48490,7 +52319,7 @@
  # or visit www.oracle.com if you need additional information or have any
  # questions.
 --- ./jdk/make/sun/javazic/tzdata/solar87	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/solar87	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/solar87	2014-07-15 21:49:28.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48519,7 +52348,7 @@
  # or visit www.oracle.com if you need additional information or have any
  # questions.
 --- ./jdk/make/sun/javazic/tzdata/solar88	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/solar88	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/solar88	2014-07-15 21:49:28.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48548,7 +52377,7 @@
  # or visit www.oracle.com if you need additional information or have any
  # questions.
 --- ./jdk/make/sun/javazic/tzdata/solar89	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/solar89	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/solar89	2014-07-15 21:49:28.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48577,7 +52406,7 @@
  # or visit www.oracle.com if you need additional information or have any
  # questions.
 --- ./jdk/make/sun/javazic/tzdata/southamerica	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/southamerica	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/southamerica	2014-07-15 21:49:28.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48792,7 +52621,7 @@
  Rule	Uruguay	1942	only	-	Jan	 1	 0:00	0	-
  Rule	Uruguay	1942	only	-	Dec	14	 0:00	1:00	S
 --- ./jdk/make/sun/javazic/tzdata/systemv	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/systemv	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/systemv	2014-07-15 21:49:28.000000000 -0700
 @@ -1,22 +1,22 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48821,7 +52650,7 @@
  # or visit www.oracle.com if you need additional information or have any
  # questions.
 --- ./jdk/make/sun/javazic/tzdata/zone.tab	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/javazic/tzdata/zone.tab	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/javazic/tzdata/zone.tab	2014-07-15 21:49:28.000000000 -0700
 @@ -1,53 +1,55 @@
  #
  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48957,7 +52786,7 @@
  US	+611305-1495401	America/Anchorage	Alaska Time
  US	+581807-1342511	America/Juneau	Alaska Time - Alaska panhandle
 --- ./jdk/make/sun/jawt/Makefile	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/jawt/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/jawt/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -99,8 +99,7 @@
  #
  # Other extra flags needed for compiling.
@@ -48985,8 +52814,25 @@
    ifndef BUILD_HEADLESS_ONLY
      OTHER_LDLIBS = -L$(LIBDIR)/$(LIBARCH) -lawt -L$(LIBDIR)/$(LIBARCH)/xawt -lmawt
    else
+--- ./jdk/make/sun/lwawt/FILES_export_macosx.gmk	2013-09-06 11:27:40.000000000 -0700
++++ ./jdk/make/sun/lwawt/FILES_export_macosx.gmk	2014-10-28 20:19:47.000000000 -0700
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
++# Copyright (c) 2011, 2014, 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
+@@ -141,7 +141,6 @@
+         sun/lwawt/macosx/CMenuBar.java \
+         sun/lwawt/macosx/CMenuComponent.java \
+         sun/lwawt/macosx/CMenuItem.java \
+-        sun/lwawt/macosx/CMouseInfoPeer.java \
+         sun/lwawt/macosx/CPlatformView.java \
+         sun/lwawt/macosx/CPlatformWindow.java \
+         sun/lwawt/macosx/CPlatformComponent.java \
 --- ./jdk/make/sun/net/FILES_java.gmk	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/net/FILES_java.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/net/FILES_java.gmk	2014-07-15 21:49:28.000000000 -0700
 @@ -24,122 +24,123 @@
  #
  
@@ -49226,7 +53072,7 @@
      FILES_java += sun/net/sdp/SdpProvider.java
  endif
 --- ./jdk/make/sun/nio/cs/FILES_java.gmk	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/nio/cs/FILES_java.gmk	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/nio/cs/FILES_java.gmk	2014-07-15 21:49:28.000000000 -0700
 @@ -329,6 +329,7 @@
  	sun/nio/cs/ext/IBM280.java \
  	sun/nio/cs/ext/IBM284.java \
@@ -49236,7 +53082,7 @@
  	sun/nio/cs/ext/IBM420.java \
  	sun/nio/cs/ext/IBM424.java \
 --- ./jdk/make/sun/nio/cs/Makefile	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/nio/cs/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/nio/cs/Makefile	2014-07-15 21:49:28.000000000 -0700
 @@ -85,9 +85,6 @@
  #
  # Extra rules to build character converters.
@@ -49271,7 +53117,7 @@
  	@$(java-vm-cleanup)
  
 --- ./jdk/make/sun/rmi/rmi/Makefile	2013-09-06 11:27:40.000000000 -0700
-+++ ./jdk/make/sun/rmi/rmi/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/rmi/rmi/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -71,6 +71,9 @@
      BUILD_TARGETS += bin
    endif
@@ -49283,7 +53129,7 @@
  build: $(BUILD_TARGETS)
  
 --- ./jdk/make/sun/security/ec/mapfile-vers	2013-09-06 11:27:41.000000000 -0700
-+++ ./jdk/make/sun/security/ec/mapfile-vers	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/security/ec/mapfile-vers	2014-07-15 21:54:44.000000000 -0700
 @@ -1,5 +1,5 @@
  #
 -# Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
@@ -49300,7 +53146,7 @@
  		Java_sun_security_ec_ECDSASignature_verifySignedDigest;
  		Java_sun_security_ec_ECDHKeyAgreement_deriveKey;
 --- ./jdk/make/sun/splashscreen/Makefile	2013-09-06 11:27:41.000000000 -0700
-+++ ./jdk/make/sun/splashscreen/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/splashscreen/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -61,6 +61,12 @@
  
  CFLAGS += -DSPLASHSCREEN
@@ -49353,7 +53199,7 @@
    OTHER_LDLIBS += $(ZLIB_LIBS)
  endif
 --- ./jdk/make/sun/xawt/Makefile	2013-09-06 11:27:41.000000000 -0700
-+++ ./jdk/make/sun/xawt/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/sun/xawt/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -52,6 +52,9 @@
  AUTO_JAVA_PRUNE = WrapperGenerator.java
  
@@ -49407,7 +53253,7 @@
    CPPFLAGS += -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
  endif
 --- ./jdk/make/tools/CharsetMapping/IBM290.c2b	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/make/tools/CharsetMapping/IBM290.c2b	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/tools/CharsetMapping/IBM290.c2b	2014-07-15 21:49:28.000000000 -0700
 @@ -0,0 +1,100 @@
 +# 
 +# Diff of 
@@ -49510,7 +53356,7 @@
 +0xF8    U+FF18
 +0xF9    U+FF19
 --- ./jdk/make/tools/CharsetMapping/IBM290.map	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/make/tools/CharsetMapping/IBM290.map	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/tools/CharsetMapping/IBM290.map	2014-07-15 21:49:28.000000000 -0700
 @@ -0,0 +1,232 @@
 +#
 +# b2c mapping for IBM290, generated from
@@ -49745,7 +53591,7 @@
 +0xF9    U+0039
 +0xFF    U+009F
 --- ./jdk/make/tools/CharsetMapping/extsbcs	2013-09-06 11:27:42.000000000 -0700
-+++ ./jdk/make/tools/CharsetMapping/extsbcs	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/tools/CharsetMapping/extsbcs	2014-07-15 21:49:28.000000000 -0700
 @@ -28,6 +28,7 @@
  IBM280		IBM280		Cp280		false		sun.nio.cs.ext
  IBM284		IBM284		Cp284		false		sun.nio.cs.ext
@@ -49755,7 +53601,7 @@
  IBM420		IBM420		Cp420		false		sun.nio.cs.ext
  IBM424		IBM424		Cp424		false		sun.nio.cs.ext
 --- ./jdk/make/tools/freetypecheck/Makefile	2013-09-06 11:27:43.000000000 -0700
-+++ ./jdk/make/tools/freetypecheck/Makefile	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/tools/freetypecheck/Makefile	2014-10-28 20:19:52.000000000 -0700
 @@ -52,8 +52,15 @@
    else 
      ifeq ($(PLATFORM), macosx)
@@ -49775,7 +53621,7 @@
    endif
  endif
 --- ./jdk/make/tools/sharing/classlist.bsd	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/make/tools/sharing/classlist.bsd	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/make/tools/sharing/classlist.bsd	2014-10-28 20:19:52.000000000 -0700
 @@ -0,0 +1,2327 @@
 +java/lang/Object
 +java/lang/String
@@ -52105,7 +55951,7 @@
 +javax/swing/BufferStrategyPaintManager$1
 +# f3ac8b467e7f8c49
 --- ./jdk/src/macosx/classes/com/apple/eawt/_AppMenuBarHandler.java	2013-09-06 11:27:48.000000000 -0700
-+++ ./jdk/src/macosx/classes/com/apple/eawt/_AppMenuBarHandler.java	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/src/macosx/classes/com/apple/eawt/_AppMenuBarHandler.java	2014-07-15 21:49:29.000000000 -0700
 @@ -31,6 +31,7 @@
  import javax.swing.*;
  import javax.swing.plaf.MenuBarUI;
@@ -52150,7 +55996,7 @@
  
      void setAboutMenuItemVisible(final boolean present) {
 --- ./jdk/src/macosx/classes/com/apple/laf/AquaLookAndFeel.java	2013-09-06 11:27:48.000000000 -0700
-+++ ./jdk/src/macosx/classes/com/apple/laf/AquaLookAndFeel.java	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/src/macosx/classes/com/apple/laf/AquaLookAndFeel.java	2014-07-15 21:49:29.000000000 -0700
 @@ -37,8 +37,6 @@
  import sun.swing.*;
  import apple.laf.*;
@@ -52170,7 +56016,7 @@
  
              while (propertyKeys.hasMoreElements()) {
 --- ./jdk/src/macosx/classes/com/apple/laf/AquaUtils.java	2013-09-06 11:27:48.000000000 -0700
-+++ ./jdk/src/macosx/classes/com/apple/laf/AquaUtils.java	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/src/macosx/classes/com/apple/laf/AquaUtils.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
@@ -52619,7 +56465,7 @@
              return;
          }
 --- ./jdk/src/macosx/classes/com/apple/laf/ScreenMenu.java	2013-09-06 11:27:48.000000000 -0700
-+++ ./jdk/src/macosx/classes/com/apple/laf/ScreenMenu.java	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/src/macosx/classes/com/apple/laf/ScreenMenu.java	2014-07-15 21:49:29.000000000 -0700
 @@ -37,26 +37,31 @@
  import sun.lwawt.LWToolkit;
  import sun.lwawt.macosx.*;
@@ -52914,7 +56760,7 @@
          MenuItem sm = fItems.get(m);
  
 --- ./jdk/src/macosx/classes/com/apple/laf/resources/aqua_ko.properties	2013-09-06 11:27:48.000000000 -0700
-+++ ./jdk/src/macosx/classes/com/apple/laf/resources/aqua_ko.properties	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/src/macosx/classes/com/apple/laf/resources/aqua_ko.properties	2014-07-15 21:49:29.000000000 -0700
 @@ -46,7 +46,7 @@
  FileChooser.openButton.textAndMnemonic=\uC5F4\uAE30
  FileChooser.saveDialogTitle.textAndMnemonic=\uC800\uC7A5
@@ -53038,7 +56884,7 @@
 -}
 -
 --- ./jdk/src/macosx/classes/sun/awt/resources/awtosx.properties	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/src/macosx/classes/sun/awt/resources/awtosx.properties	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/awt/resources/awtosx.properties	2014-07-15 21:49:29.000000000 -0700
 @@ -0,0 +1,71 @@
 +#
 +# OS X specific AWT properties
@@ -53112,7 +56958,7 @@
 +AWT.numpad=\u2328
 +
 --- ./jdk/src/macosx/classes/sun/font/CFontManager.java	2013-09-06 11:27:48.000000000 -0700
-+++ ./jdk/src/macosx/classes/sun/font/CFontManager.java	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/font/CFontManager.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
@@ -53171,7 +57017,7 @@
              }
          }
 --- ./jdk/src/macosx/classes/sun/font/CStrike.java	2013-09-06 11:27:48.000000000 -0700
-+++ ./jdk/src/macosx/classes/sun/font/CStrike.java	2014-07-15 23:24:33.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/font/CStrike.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
@@ -53366,7 +57212,7 @@
                  this.cache = new float[1 << shift][];
                  this.secondLayerLength = size >> shift;
 --- ./jdk/src/macosx/classes/sun/lwawt/LWToolkit.java	2013-09-06 11:27:49.000000000 -0700
-+++ ./jdk/src/macosx/classes/sun/lwawt/LWToolkit.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/lwawt/LWToolkit.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
@@ -53422,8 +57268,225 @@
          toolkitThread.setDaemon(true);
          toolkitThread.setPriority(Thread.NORM_PRIORITY + 1);
          toolkitThread.start();
+--- ./jdk/src/macosx/classes/sun/lwawt/LWWindowPeer.java	2013-09-06 11:27:49.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/lwawt/LWWindowPeer.java	2014-10-28 20:19:45.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2011, 2014, 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
+@@ -89,10 +89,15 @@
+ 
+     private volatile int windowState = Frame.NORMAL;
+ 
+-    // A peer where the last mouse event came to. Used to generate
+-    // MOUSE_ENTERED/EXITED notifications and by cursor manager to
++    // check that the mouse is over the window
++    private volatile boolean isMouseOver = false;
++    // A peer where the last mouse event came to. Used by cursor manager to
+     // find the component under cursor
+-    private static volatile LWComponentPeer lastMouseEventPeer = null;
++    private static volatile LWComponentPeer lastCommonMouseEventPeer = null;
++
++    // A peer where the last mouse event came to. Used to generate
++    // MOUSE_ENTERED/EXITED notifications
++    private volatile LWComponentPeer lastMouseEventPeer;
+ 
+     // Peers where all dragged/released events should come to,
+     // depending on what mouse button is being dragged according to Cocoa
+@@ -773,59 +778,62 @@
+         Rectangle r = getBounds();
+         // findPeerAt() expects parent coordinates
+         LWComponentPeer targetPeer = findPeerAt(r.x + x, r.y + y);
+-        LWWindowPeer lastWindowPeer =
+-            (lastMouseEventPeer != null) ? lastMouseEventPeer.getWindowPeerOrSelf() : null;
+-        LWWindowPeer curWindowPeer =
+-            (targetPeer != null) ? targetPeer.getWindowPeerOrSelf() : null;
+ 
+         if (id == MouseEvent.MOUSE_EXITED) {
+-            // Sometimes we may get MOUSE_EXITED after lastMouseEventPeer is switched
+-            // to a peer from another window. So we must first check if this peer is
+-            // the same as lastWindowPeer
+-            if (lastWindowPeer == this) {
+-                if (isEnabled()) {
++            isMouseOver = false;
++            if (lastMouseEventPeer != null) {
++                if (lastMouseEventPeer.isEnabled()) {
+                     Point lp = lastMouseEventPeer.windowToLocal(x, y,
+-                                                                lastWindowPeer);
++                            this);
+                     Component target = lastMouseEventPeer.getTarget();
+                     postMouseEnteredExitedEvent(target, MouseEvent.MOUSE_EXITED,
+                             when, modifiers, lp,
+                             screenX, screenY, clickCount, popupTrigger, button);
+                 }
++
++                // Sometimes we may get MOUSE_EXITED after lastCommonMouseEventPeer is switched
++                // to a peer from another window. So we must first check if this peer is
++                // the same as lastWindowPeer
++                if (lastCommonMouseEventPeer != null && lastCommonMouseEventPeer.getWindowPeerOrSelf() == this) {
++                    lastCommonMouseEventPeer = null;
++                }
+                 lastMouseEventPeer = null;
+             }
+-        } else {
+-            if (targetPeer != lastMouseEventPeer) {
+-                // lastMouseEventPeer may be null if mouse was out of Java windows
+-                if (lastMouseEventPeer != null && lastMouseEventPeer.isEnabled()) {
+-                    // Sometimes, MOUSE_EXITED is not sent by delegate (or is sent a bit
+-                    // later), in which case lastWindowPeer is another window
+-                    if (lastWindowPeer != this) {
+-                        Point oldp = lastMouseEventPeer.windowToLocal(x, y, lastWindowPeer);
+-                        // Additionally translate from this to lastWindowPeer coordinates
+-                        Rectangle lr = lastWindowPeer.getBounds();
+-                        oldp.x += r.x - lr.x;
+-                        oldp.y += r.y - lr.y;
+-                        Component target = lastMouseEventPeer.getTarget();
+-                        postMouseEnteredExitedEvent(target, MouseEvent.MOUSE_EXITED,
+-                                when, modifiers, oldp,
+-                                screenX, screenY, clickCount, popupTrigger, button);
+-                    } else {
+-                        Point oldp = lastMouseEventPeer.windowToLocal(x, y, this);
+-                        Component target = lastMouseEventPeer.getTarget();
+-                        postMouseEnteredExitedEvent(target, MouseEvent.MOUSE_EXITED,
+-                                when, modifiers, oldp,
+-                                screenX, screenY, clickCount, popupTrigger, button);
+-                    }
+-                }
+-                lastMouseEventPeer = targetPeer;
+-                if (targetPeer != null && targetPeer.isEnabled() && id != MouseEvent.MOUSE_ENTERED) {
+-                    Point newp = targetPeer.windowToLocal(x, y, curWindowPeer);
++        } else if (id == MouseEvent.MOUSE_ENTERED) {
++            isMouseOver = true;
++            if (targetPeer != null) {
++                if (targetPeer.isEnabled()) {
++                    Point lp = targetPeer.windowToLocal(x, y, this);
+                     Component target = targetPeer.getTarget();
+-                    postMouseEnteredExitedEvent(target, MouseEvent.MOUSE_ENTERED,
+-                            when, modifiers, newp,
++                    postMouseEnteredExitedEvent(target, MouseEvent.MOUSE_ENTERED, when, modifiers, lp,
+                             screenX, screenY, clickCount, popupTrigger, button);
+                 }
++                lastCommonMouseEventPeer = targetPeer;
++                lastMouseEventPeer = targetPeer;
++            }
++        } else {
++            PlatformWindow topmostPlatformWindow =
++                    platformWindow.getTopmostPlatformWindowUnderMouse();
++
++            LWWindowPeer topmostWindowPeer =
++                    topmostPlatformWindow != null ? topmostPlatformWindow.getPeer() : null;
++
++            // topmostWindowPeer == null condition is added for the backword
++            // compatibility with applets. It can be removed when the
++            // getTopmostPlatformWindowUnderMouse() method will be properly
++            // implemented i CPlatformEmbeddedFrame class
++            if (topmostWindowPeer == this || topmostWindowPeer == null) {
++                generateMouseEnterExitEventsForComponents(when, button, x, y,
++                        screenX, screenY, modifiers, clickCount, popupTrigger,
++                        targetPeer);
++            } else {
++                LWComponentPeer topmostTargetPeer =
++                        topmostWindowPeer != null ? topmostWindowPeer.findPeerAt(r.x + x, r.y + y) : null;
++                topmostWindowPeer.generateMouseEnterExitEventsForComponents(when, button, x, y,
++                        screenX, screenY, modifiers, clickCount, popupTrigger,
++                        topmostTargetPeer);
+             }
++
+             // TODO: fill "bdata" member of AWTEvent
+ 
+             int eventButtonMask = (button > 0)? MouseEvent.getMaskForButton(button) : 0;
+@@ -875,19 +883,13 @@
+                 // mouseClickButtons is updated below, after MOUSE_CLICK is sent
+             }
+ 
+-            // check if we receive mouseEvent from outside the window's bounds
+-            // it can be either mouseDragged or mouseReleased
+-            if (curWindowPeer == null) {
+-                //TODO This can happen if this window is invisible. this is correct behavior in this case?
+-                curWindowPeer = this;
+-            }
+             if (targetPeer == null) {
+                 //TODO This can happen if this window is invisible. this is correct behavior in this case?
+                 targetPeer = this;
+             }
+ 
+ 
+-            Point lp = targetPeer.windowToLocal(x, y, curWindowPeer);
++            Point lp = targetPeer.windowToLocal(x, y, this);
+             if (targetPeer.isEnabled()) {
+                 if (id == MouseEvent.MOUSE_ENTERED || id == MouseEvent.MOUSE_EXITED) {
+                     postMouseEnteredExitedEvent(targetPeer.getTarget(), id,
+@@ -918,6 +920,33 @@
+         notifyUpdateCursor();
+     }
+ 
++    private void generateMouseEnterExitEventsForComponents(long when,
++            int button, int x, int y, int screenX, int screenY,
++            int modifiers, int clickCount, boolean popupTriger,
++            LWComponentPeer targetPeer) {
++        if (!isMouseOver || targetPeer == lastMouseEventPeer) {
++            return;
++        }
++
++        // Generate Mouse Exit for components
++        if (lastMouseEventPeer != null && lastMouseEventPeer.isEnabled()) {
++            Point oldp = lastMouseEventPeer.windowToLocal(x, y, this);
++            Component target = lastMouseEventPeer.getTarget();
++            postMouseEnteredExitedEvent(target, MouseEvent.MOUSE_EXITED, when, modifiers,
++                    oldp, screenX, screenY, clickCount, popupTriger, button);
++        }
++        lastCommonMouseEventPeer = targetPeer;
++        lastMouseEventPeer = targetPeer;
++
++        // Genrate Mouse Enter for Componetns
++        if (targetPeer != null && targetPeer.isEnabled()) {
++            Point newp = targetPeer.windowToLocal(x, y, this);
++            Component target = targetPeer.getTarget();
++            postMouseEnteredExitedEvent(target, MouseEvent.MOUSE_ENTERED, when, modifiers,
++                    newp, screenX, screenY, clickCount, popupTriger, button);
++        }
++    }
++
+     private void postMouseEnteredExitedEvent(
+             Component target, int id, long when, int modifiers,
+             Point loc, int xAbs, int yAbs,
+@@ -1198,11 +1227,11 @@
+     }
+ 
+     public static LWWindowPeer getWindowUnderCursor() {
+-        return lastMouseEventPeer != null ? lastMouseEventPeer.getWindowPeerOrSelf() : null;
++        return lastCommonMouseEventPeer != null ? lastCommonMouseEventPeer.getWindowPeerOrSelf() : null;
+     }
+ 
+     public static LWComponentPeer getPeerUnderCursor() {
+-        return lastMouseEventPeer;
++        return lastCommonMouseEventPeer;
+     }
+ 
+     /*
+--- ./jdk/src/macosx/classes/sun/lwawt/PlatformWindow.java	2013-09-06 11:27:49.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/lwawt/PlatformWindow.java	2014-10-28 20:19:45.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2011, 2014, 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
+@@ -118,6 +118,8 @@
+ 
+     public void setAlwaysOnTop(boolean value);
+ 
++    public PlatformWindow getTopmostPlatformWindowUnderMouse();
++
+     public void updateFocusableWindowState();
+ 
+     public boolean rejectFocusRequest(CausedFocusEvent.Cause cause);
 --- ./jdk/src/macosx/classes/sun/lwawt/macosx/CClipboard.java	2013-09-06 11:27:49.000000000 -0700
-+++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CClipboard.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CClipboard.java	2014-07-15 21:49:29.000000000 -0700
 @@ -53,7 +53,7 @@
      }
  
@@ -53434,7 +57497,7 @@
          // If we did that, we would call Transferable.getTransferData on
          // the Toolkit thread, which is a security hole.
 --- ./jdk/src/macosx/classes/sun/lwawt/macosx/CDropTargetContextPeer.java	2013-09-06 11:27:49.000000000 -0700
-+++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CDropTargetContextPeer.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CDropTargetContextPeer.java	2014-07-15 21:49:29.000000000 -0700
 @@ -26,6 +26,7 @@
  package sun.lwawt.macosx;
  
@@ -53548,7 +57611,7 @@
      protected int postDropTargetEvent(Component component, int x, int y, int dropAction,
                                        int actions, long[] formats, long nativeCtxt, int eventID,
 --- ./jdk/src/macosx/classes/sun/lwawt/macosx/CInputMethod.java	2013-09-06 11:27:49.000000000 -0700
-+++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CInputMethod.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CInputMethod.java	2014-07-15 21:49:29.000000000 -0700
 @@ -620,8 +620,7 @@
                      retString[0] = new String(selectedText);
                  }}
@@ -53600,7 +57663,7 @@
          // This bit of gymnastics ensures that the returned location is within the composed text.
          // If it falls outside that region, the input method will commit the text, which is inconsistent with native
 --- ./jdk/src/macosx/classes/sun/lwawt/macosx/CMenuComponent.java	2013-09-06 11:27:49.000000000 -0700
-+++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CMenuComponent.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CMenuComponent.java	2014-07-15 21:49:29.000000000 -0700
 @@ -43,7 +43,7 @@
          return target;
      }
@@ -53610,9 +57673,149 @@
          return modelPtr;
      }
  
+--- ./jdk/src/macosx/classes/sun/lwawt/macosx/CMouseInfoPeer.java	2013-09-06 11:27:49.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CMouseInfoPeer.java	1969-12-31 16:00:00.000000000 -0800
+@@ -1,45 +0,0 @@
+-/*
+- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+- *
+- * This code is free software; you can redistribute it and/or modify it
+- * under the terms of the GNU General Public License version 2 only, as
+- * published by the Free Software Foundation.  Oracle designates this
+- * particular file as subject to the "Classpath" exception as provided
+- * by Oracle in the LICENSE file that accompanied this code.
+- *
+- * This code is distributed in the hope that it will be useful, but WITHOUT
+- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+- * version 2 for more details (a copy is included in the LICENSE file that
+- * accompanied this code).
+- *
+- * You should have received a copy of the GNU General Public License version
+- * 2 along with this work; if not, write to the Free Software Foundation,
+- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+- *
+- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+- * or visit www.oracle.com if you need additional information or have any
+- * questions.
+- */
+-
+-package sun.lwawt.macosx;
+-
+-import java.awt.Window;
+-import sun.lwawt.LWMouseInfoPeer;
+-import sun.lwawt.LWWindowPeer;
+-
+-public class CMouseInfoPeer extends LWMouseInfoPeer
+-{
+-    //If a new window is to appear under the cursor,
+-    //we get wrong window.
+-    //This is a workaround for macosx.
+-    @Override
+-    public boolean isWindowUnderMouse(Window w) {
+-        if (w == null) {
+-            return false;
+-        }
+-
+-        return ((LWWindowPeer)w.getPeer()).getPlatformWindow().isUnderMouse();
+-    }
+-}
+--- ./jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformEmbeddedFrame.java	2013-09-06 11:27:49.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformEmbeddedFrame.java	2014-10-28 20:19:45.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2011, 2014, 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,11 @@
+     @Override
+     public void setAlwaysOnTop(boolean value) {}
+ 
++    // This method should be properly implemented for applets.
++    // It returns null just as a stub.
++    @Override
++    public PlatformWindow getTopmostPlatformWindowUnderMouse() { return null; }
++
+     @Override
+     public void updateFocusableWindowState() {}
+ 
 --- ./jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	2013-09-06 11:27:49.000000000 -0700
-+++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	2014-07-15 23:24:34.000000000 -0700
-@@ -918,7 +918,7 @@
++++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java	2014-10-28 20:19:45.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2011, 2014, 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
+@@ -61,8 +61,9 @@
+     private static native void nativeSetNSWindowMinimizedIcon(long nsWindowPtr, long nsImage);
+     private static native void nativeSetNSWindowRepresentedFilename(long nsWindowPtr, String representedFilename);
+     private static native void nativeSetEnabled(long nsWindowPtr, boolean isEnabled);
+-    private static native void nativeSynthesizeMouseEnteredExitedEvents(long nsWindowPtr);
++    private static native void nativeSynthesizeMouseEnteredExitedEvents();
+     private static native void nativeDispose(long nsWindowPtr);
++    private static native CPlatformWindow nativeGetTopmostPlatformWindowUnderMouse();
+ 
+     // Loger to report issues happened during execution but that do not affect functionality
+     private static final PlatformLogger logger = PlatformLogger.getLogger("sun.lwawt.macosx.CPlatformWindow");
+@@ -579,7 +580,12 @@
+         if (visible) {
+             // Apply the extended state as expected in shared code
+             if (target instanceof Frame) {
+-                switch (((Frame)target).getExtendedState()) {
++                int frameState = ((Frame)target).getExtendedState();
++                if ((frameState & Frame.ICONIFIED) != 0) {
++                    // Treat all state bit masks with ICONIFIED bit as ICONIFIED state.
++                    frameState = Frame.ICONIFIED;
++                }
++                switch (frameState) {
+                     case Frame.ICONIFIED:
+                         CWrapper.NSWindow.miniaturize(nsWindowPtr);
+                         break;
+@@ -593,7 +599,7 @@
+             }
+         }
+ 
+-        nativeSynthesizeMouseEnteredExitedEvents(nsWindowPtr);
++        nativeSynthesizeMouseEnteredExitedEvents();
+ 
+         // Configure stuff #2
+         updateFocusabilityForAutoRequestFocus(true);
+@@ -738,6 +744,9 @@
+         setStyleBits(ALWAYS_ON_TOP, isAlwaysOnTop);
+     }
+ 
++    public PlatformWindow getTopmostPlatformWindowUnderMouse() {
++        return CPlatformWindow.nativeGetTopmostPlatformWindowUnderMouse();
++    }
+     @Override
+     public void setOpacity(float opacity) {
+         CWrapper.NSWindow.setAlphaValue(getNSWindowPtr(), opacity);
+@@ -802,6 +811,10 @@
+         if (prevWindowState == windowState) return;
+ 
+         final long nsWindowPtr = getNSWindowPtr();
++        if ((windowState & Frame.ICONIFIED) != 0) {
++            // Treat all state bit masks with ICONIFIED bit as ICONIFIED state.
++            windowState = Frame.ICONIFIED;
++        }
+         switch (windowState) {
+             case Frame.ICONIFIED:
+                 if (prevWindowState == Frame.MAXIMIZED_BOTH) {
+@@ -830,7 +843,7 @@
+                 throw new RuntimeException("Unknown window state: " + windowState);
+         }
+ 
+-        nativeSynthesizeMouseEnteredExitedEvents(nsWindowPtr);
++        nativeSynthesizeMouseEnteredExitedEvents();
+ 
+         // NOTE: the SWP.windowState field gets updated to the newWindowState
+         //       value when the native notification comes to us
+@@ -918,7 +931,7 @@
                          //Posting an empty to flush the EventQueue without blocking the main thread
                      }
                  }, target);
@@ -53622,7 +57825,7 @@
              }
          }
 --- ./jdk/src/macosx/classes/sun/lwawt/macosx/CViewEmbeddedFrame.java	2013-09-06 11:27:49.000000000 -0700
-+++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CViewEmbeddedFrame.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CViewEmbeddedFrame.java	2014-07-15 21:49:29.000000000 -0700
 @@ -97,6 +97,6 @@
                      setVisible(true);
                  }
@@ -53631,8 +57834,36 @@
 +        } catch (InvocationTargetException ex) {}
      }
  }
+--- ./jdk/src/macosx/classes/sun/lwawt/macosx/CViewPlatformEmbeddedFrame.java	2013-09-06 11:27:49.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/lwawt/macosx/CViewPlatformEmbeddedFrame.java	2014-10-28 20:19:45.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2012, 2014, 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
+@@ -148,6 +148,11 @@
+     }
+ 
+     @Override
++    public PlatformWindow getTopmostPlatformWindowUnderMouse() {
++        return null;
++    }
++
++    @Override
+     public void updateFocusableWindowState() {
+     }
+ 
 --- ./jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java	2013-09-06 11:27:49.000000000 -0700
-+++ ./jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java	2014-10-28 20:19:45.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2012, 2014, 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
 @@ -44,6 +44,8 @@
  import sun.lwawt.LWWindowPeer.PeerType;
  import sun.security.action.GetBooleanAction;
@@ -53672,7 +57903,19 @@
          if (!GraphicsEnvironment.isHeadless()) {
              initIDs();
          }
-@@ -414,8 +429,15 @@
+@@ -285,11 +300,6 @@
+     }
+ 
+     @Override
+-    protected MouseInfoPeer createMouseInfoPeerImpl() {
+-        return new CMouseInfoPeer();
+-    }
+-
+-    @Override
+     protected int getScreenHeight() {
+         return GraphicsEnvironment.getLocalGraphicsEnvironment()
+                 .getDefaultScreenDevice().getDefaultConfiguration().getBounds().height;
+@@ -414,8 +424,15 @@
      }
  
      // Intended to be called from the LWCToolkit.m only.
@@ -53689,7 +57932,7 @@
      }
  
      @Override
-@@ -518,22 +540,21 @@
+@@ -518,22 +535,21 @@
      // Any selector invoked using ThreadUtilities performOnMainThread will be processed in doAWTRunLoop
      // The InvocationEvent will call LWCToolkit.stopAWTRunLoop() when finished, which will stop our manual runloop
      // Does not dispatch native events while in the loop
@@ -53725,7 +57968,7 @@
          if (component != null) {
              AppContext appContext = SunToolkit.targetToAppContext(component);
 --- ./jdk/src/macosx/lib/flavormap.properties	2013-09-06 11:27:49.000000000 -0700
-+++ ./jdk/src/macosx/lib/flavormap.properties	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/lib/flavormap.properties	2014-07-15 21:49:29.000000000 -0700
 @@ -76,5 +76,6 @@
  text/uri-list=application/x-java-file-list;class=java.util.List
  PNG=image/x-java-image;class=java.awt.Image
@@ -53847,7 +58090,7 @@
 -    return returnVal;
 -}
 --- ./jdk/src/macosx/native/java/util/SCDynamicStoreConfig.m	2013-09-06 11:27:49.000000000 -0700
-+++ ./jdk/src/macosx/native/java/util/SCDynamicStoreConfig.m	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/java/util/SCDynamicStoreConfig.m	2014-07-15 21:49:29.000000000 -0700
 @@ -103,7 +103,6 @@
          CFTypeRef realmInfo = SCDynamicStoreCopyValue(store, (CFStringRef) [NSString stringWithFormat:@"Kerberos:%@", realm]);
  
@@ -53893,7 +58136,7 @@
          CFRelease(realms);
          CFRelease(store);
 --- ./jdk/src/macosx/native/sun/awt/AWTEvent.m	2013-09-06 11:27:50.000000000 -0700
-+++ ./jdk/src/macosx/native/sun/awt/AWTEvent.m	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/sun/awt/AWTEvent.m	2014-07-15 21:49:29.000000000 -0700
 @@ -382,7 +382,7 @@
  {
      TISInputSourceRef currentKeyboard = TISCopyCurrentKeyboardInputSource();
@@ -53903,8 +58146,116 @@
      const UCKeyboardLayout *keyboardLayout = (const UCKeyboardLayout*)CFDataGetBytePtr(uchr);
      // Carbon modifiers should be used instead of NSEvent modifiers
      UInt32 modifierKeyState = (GetCurrentEventKeyModifiers() >> 8) & 0xFF;
+--- ./jdk/src/macosx/native/sun/awt/AWTView.h	2013-09-06 11:27:50.000000000 -0700
++++ ./jdk/src/macosx/native/sun/awt/AWTView.h	2014-10-28 20:19:45.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2011, 2014 Oracle and/or its affiliates. All rights reserved.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+  * This code is free software; you can redistribute it and/or modify it
+@@ -33,8 +33,8 @@
+ @private
+     jobject m_cPlatformView;
+ 
+-    // Handler for the tracking rect needed for Enter/Exit events management.
+-    NSTrackingRectTag rolloverTrackingRectTag;
++    // Handler for the tracking area needed for Enter/Exit events management.
++    NSTrackingArea* rolloverTrackingArea;
+ 
+     // TODO: NSMenu *contextualMenu;
+ 
+@@ -61,7 +61,7 @@
+ 
+ - (id) initWithRect:(NSRect) rect platformView:(jobject)cPlatformView windowLayer:(CALayer*)windowLayer;
+ - (void) deliverJavaMouseEvent: (NSEvent *) event;
+-- (void) resetTrackingRect;
++- (void) resetTrackingArea;
+ - (void) deliverJavaKeyEventHelper: (NSEvent *) event;
+ - (jobject) awtComponent:(JNIEnv *)env;
+ 
+--- ./jdk/src/macosx/native/sun/awt/AWTView.m	2013-09-06 11:27:50.000000000 -0700
++++ ./jdk/src/macosx/native/sun/awt/AWTView.m	2014-10-28 20:19:45.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2011, 2014, 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
+@@ -82,6 +82,7 @@
+     fPAHNeedsToSelect = NO;
+ 
+     mouseIsOver = NO;
++    [self resetTrackingArea];
+ 
+     if (windowLayer != nil) {
+         self.cglLayer = windowLayer;
+@@ -149,7 +150,7 @@
+         [[self window] makeFirstResponder: self];
+     }];
+     if ([self window] != NULL) {
+-        [self resetTrackingRect];
++        [self resetTrackingArea];
+     }
+ }
+ 
+@@ -380,30 +381,31 @@
+     JNFCallVoidMethod(env, m_cPlatformView, jm_deliverMouseEvent, jEvent);
+ }
+ 
+-
+-- (void) clearTrackingRect {
+-    if (rolloverTrackingRectTag > 0) {
+-        [self removeTrackingRect:rolloverTrackingRectTag];
+-        rolloverTrackingRectTag = 0;
++- (void) resetTrackingArea {
++    if (rolloverTrackingArea != nil) {
++        [self removeTrackingArea:rolloverTrackingArea];
++        [rolloverTrackingArea release];
+     }
+-}
+ 
+-- (void) resetTrackingRect {
+-    [self clearTrackingRect];
+-    rolloverTrackingRectTag = [self addTrackingRect:[self visibleRect]
+-                                              owner:self
+-                                           userData:NULL
+-                                       assumeInside:NO];
++    int options = (NSTrackingActiveAlways | NSTrackingMouseEnteredAndExited |
++                   NSTrackingMouseMoved | NSTrackingEnabledDuringMouseDrag);
++
++    rolloverTrackingArea = [[NSTrackingArea alloc] initWithRect:[self visibleRect]
++                                                        options:options
++                                                          owner:self
++                                                       userInfo:nil
++                            ];
++    [self addTrackingArea:rolloverTrackingArea];
+ }
+ 
+ - (void)updateTrackingAreas {
+     [super updateTrackingAreas];
+-    [self resetTrackingRect];
++    [self resetTrackingArea];
+ }
+ 
+ - (void) resetCursorRects {
+     [super resetCursorRects];
+-    [self resetTrackingRect];
++    [self resetTrackingArea];
+ }
+ 
+ -(void) deliverJavaKeyEventHelper: (NSEvent *) event {
 --- ./jdk/src/macosx/native/sun/awt/AWTWindow.m	2013-09-06 11:27:51.000000000 -0700
-+++ ./jdk/src/macosx/native/sun/awt/AWTWindow.m	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/sun/awt/AWTWindow.m	2014-10-28 20:19:45.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2011, 2014, 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
 @@ -30,6 +30,7 @@
  #import "sun_lwawt_macosx_CPlatformWindow.h"
  #import "com_apple_eawt_event_GestureHandler.h"
@@ -53913,7 +58264,116 @@
  
  #import "AWTWindow.h"
  #import "AWTView.h"
-@@ -585,17 +586,26 @@
+@@ -313,10 +314,8 @@
+     return [window isKindOfClass: [AWTWindow_Panel class]] || [window isKindOfClass: [AWTWindow_Normal class]];
+ }
+ 
+-// checks that this window is under the mouse cursor and this point is not overlapped by others windows
+-- (BOOL) isTopmostWindowUnderMouse {
+-
+-    int currentWinID = [self.nsWindow windowNumber];
++// return id for the topmost window under mouse
+++ (NSInteger) getTopmostWindowUnderMouseID {
+ 
+     NSRect screenRect = [[NSScreen mainScreen] frame];
+     NSPoint nsMouseLocation = [NSEvent mouseLocation];
+@@ -326,51 +325,75 @@
+ 
+ 
+     for (NSDictionary *window in windows) {
+-        int layer = [[window objectForKey:(id)kCGWindowLayer] intValue];
++        NSInteger layer = [[window objectForKey:(id)kCGWindowLayer] integerValue];
+         if (layer == 0) {
+-            int winID = [[window objectForKey:(id)kCGWindowNumber] intValue];
+             CGRect rect;
+             CGRectMakeWithDictionaryRepresentation((CFDictionaryRef)[window objectForKey:(id)kCGWindowBounds], &rect);
+             if (CGRectContainsPoint(rect, cgMouseLocation)) {
+-                return currentWinID == winID;
+-            } else if (currentWinID == winID) {
+-                return NO;
++                return [[window objectForKey:(id)kCGWindowNumber] integerValue];
+             }
+         }
+     }
+-    return NO;
++    return -1;
+ }
+ 
+-- (void) synthesizeMouseEnteredExitedEvents {
++// checks that this window is under the mouse cursor and this point is not overlapped by other windows
++- (BOOL) isTopmostWindowUnderMouse {
++    return [self.nsWindow windowNumber] == [AWTWindow getTopmostWindowUnderMouseID];
++}
+ 
+-    int eventType = 0;
+-    BOOL isUnderMouse = [self isTopmostWindowUnderMouse];
+-    BOOL mouseIsOver = [[self.nsWindow contentView] mouseIsOver];
+-
+-    if (isUnderMouse && !mouseIsOver) {
+-        eventType = NSMouseEntered;
+-    } else if (!isUnderMouse && mouseIsOver) {
+-        eventType = NSMouseExited;
+-    } else {
+-        return;
+++ (AWTWindow *) getTopmostWindowUnderMouse {
++    NSEnumerator *windowEnumerator = [[NSApp windows] objectEnumerator];
++    NSWindow *window;
++
++    NSInteger topmostWindowUnderMouseID = [AWTWindow getTopmostWindowUnderMouseID];
++
++    while ((window = [windowEnumerator nextObject]) != nil) {
++        if ([window windowNumber] == topmostWindowUnderMouseID) {
++            BOOL isAWTWindow = [AWTWindow isAWTWindow: window];
++            return isAWTWindow ? (AWTWindow *) [window delegate] : nil;
++        }
+     }
++    return nil;
++}
++
+++ (void) synthesizeMouseEnteredExitedEvents:(NSWindow*)window withType:(NSEventType)eventType {
+ 
+     NSPoint screenLocation = [NSEvent mouseLocation];
+-    NSPoint windowLocation = [self.nsWindow convertScreenToBase: screenLocation];
++    NSPoint windowLocation = [window convertScreenToBase: screenLocation];
+     int modifierFlags = (eventType == NSMouseEntered) ? NSMouseEnteredMask : NSMouseExitedMask;
+ 
+     NSEvent *mouseEvent = [NSEvent enterExitEventWithType: eventType
+                                                  location: windowLocation
+                                             modifierFlags: modifierFlags
+                                                 timestamp: 0
+-                                             windowNumber: [self.nsWindow windowNumber]
++                                             windowNumber: [window windowNumber]
+                                                   context: nil
+                                               eventNumber: 0
+                                            trackingNumber: 0
+                                                  userData: nil
+                            ];
+ 
+-    [[self.nsWindow contentView] deliverJavaMouseEvent: mouseEvent];
++    [[window contentView] deliverJavaMouseEvent: mouseEvent];
++}
++
+++(void) synthesizeMouseEnteredExitedEventsForAllWindows {
++    NSInteger topmostWindowUnderMouseID = [AWTWindow getTopmostWindowUnderMouseID];
++    NSArray *windows = [NSApp windows];
++    NSWindow *window;
++
++    NSEnumerator *windowEnumerator = [windows objectEnumerator];
++    while ((window = [windowEnumerator nextObject]) != nil) {
++        if ([AWTWindow isAWTWindow: window]) {
++            BOOL isUnderMouse = ([window windowNumber] == topmostWindowUnderMouseID);
++            BOOL mouseIsOver = [[window contentView] mouseIsOver];
++            if (isUnderMouse && !mouseIsOver) {
++                [AWTWindow synthesizeMouseEnteredExitedEvents: window withType:NSMouseEntered];
++            } else if (!isUnderMouse && mouseIsOver) {
++                [AWTWindow synthesizeMouseEnteredExitedEvents: window withType:NSMouseExited];
++            }
++        }
++    }
+ }
+ 
+ + (NSNumber *) getNSWindowDisplayID_AppKitThread:(NSWindow *)window {
+@@ -585,17 +608,26 @@
  AWT_ASSERT_APPKIT_THREAD;
      [AWTToolkit eventCountPlusPlus];
      AWTWindow *opposite = [AWTWindow lastKeyWindow];
@@ -53942,7 +58402,7 @@
  
      [AWTWindow setLastKeyWindow:nil];
  
-@@ -608,6 +618,14 @@
+@@ -608,6 +640,14 @@
      [AWTToolkit eventCountPlusPlus];
      [self.javaMenuBar deactivate];
  
@@ -53957,7 +58417,7 @@
      // the new key window
      NSWindow *keyWindow = [NSApp keyWindow];
      AWTWindow *opposite = nil;
-@@ -875,11 +893,19 @@
+@@ -875,11 +915,19 @@
  
          AWTWindow *window = (AWTWindow*)[nsWindow delegate];
  
@@ -53979,8 +58439,63 @@
          }
      }];
  
+@@ -953,7 +1001,7 @@
+         // (this will also re-enable screen updates, which were disabled above)
+         // TODO: send PaintEvent
+ 
+-        [window synthesizeMouseEnteredExitedEvents];
++        [AWTWindow synthesizeMouseEnteredExitedEventsForAllWindows];
+     }];
+ 
+ JNF_COCOA_EXIT(env);
+@@ -1132,19 +1180,40 @@
+ 
+ /*
+  * Class:     sun_lwawt_macosx_CPlatformWindow
++ * Method:    nativeGetTopMostWindowUnderMouse
++ * Signature: (J)V
++ */
++JNIEXPORT jobject
++JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeGetTopmostPlatformWindowUnderMouse
++(JNIEnv *env, jclass clazz)
++{
++    jobject topmostWindowUnderMouse = nil;
++
++    JNF_COCOA_ENTER(env);
++    AWT_ASSERT_APPKIT_THREAD;
++
++    AWTWindow *awtWindow = [AWTWindow getTopmostWindowUnderMouse];
++    if (awtWindow != nil) {
++        topmostWindowUnderMouse = [awtWindow.javaPlatformWindow jObject];
++    }
++
++    JNF_COCOA_EXIT(env);
++
++    return topmostWindowUnderMouse;
++}
++
++/*
++ * Class:     sun_lwawt_macosx_CPlatformWindow
+  * Method:    nativeSynthesizeMouseEnteredExitedEvents
+  * Signature: (J)V
+  */
+ JNIEXPORT void JNICALL Java_sun_lwawt_macosx_CPlatformWindow_nativeSynthesizeMouseEnteredExitedEvents
+-(JNIEnv *env, jclass clazz, jlong windowPtr)
++(JNIEnv *env, jclass clazz)
+ {
+     JNF_COCOA_ENTER(env);
+ 
+-    NSWindow *nsWindow = OBJC(windowPtr);
+     [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
+-        AWTWindow *window = (AWTWindow*)[nsWindow delegate];
+-
+-        [window synthesizeMouseEnteredExitedEvents];
++        [AWTWindow synthesizeMouseEnteredExitedEventsForAllWindows];
+     }];
+ 
+     JNF_COCOA_EXIT(env);
 --- ./jdk/src/macosx/native/sun/awt/CDropTarget.m	2013-09-06 11:27:51.000000000 -0700
-+++ ./jdk/src/macosx/native/sun/awt/CDropTarget.m	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/sun/awt/CDropTarget.m	2014-07-15 21:49:29.000000000 -0700
 @@ -477,6 +477,8 @@
          sDraggingExited = FALSE;
          sDraggingLocation = [sender draggingLocation];
@@ -54001,7 +58516,7 @@
  
          jlongArray formats = sDraggingFormats;
 --- ./jdk/src/macosx/native/sun/awt/CMenuItem.m	2013-09-06 11:27:51.000000000 -0700
-+++ ./jdk/src/macosx/native/sun/awt/CMenuItem.m	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/sun/awt/CMenuItem.m	2014-07-15 21:49:29.000000000 -0700
 @@ -70,9 +70,15 @@
      JNIEnv *env = [ThreadUtilities getJNIEnv];
  JNF_COCOA_ENTER(env);
@@ -54041,7 +58556,7 @@
          case java_awt_event_KeyEvent_VK_DELETE          : macKey = NSDeleteCharacter; break;
          case java_awt_event_KeyEvent_VK_CLEAR           : macKey = NSClearDisplayFunctionKey; break;
 --- ./jdk/src/macosx/native/sun/awt/LWCToolkit.m	2013-09-06 11:27:51.000000000 -0700
-+++ ./jdk/src/macosx/native/sun/awt/LWCToolkit.m	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/sun/awt/LWCToolkit.m	2014-07-15 21:49:29.000000000 -0700
 @@ -193,8 +193,8 @@
  
          JNIEnv *env = [ThreadUtilities getJNIEnv];
@@ -54054,7 +58569,7 @@
      
      gNumberOfButtons = sun_lwawt_macosx_LWCToolkit_BUTTONS;
 --- ./jdk/src/macosx/native/sun/awt/awt.m	2013-09-06 11:27:51.000000000 -0700
-+++ ./jdk/src/macosx/native/sun/awt/awt.m	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/sun/awt/awt.m	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
@@ -54080,7 +58595,7 @@
  
      // We need to let Foundation know that this is a multithreaded application, if it isn't already.
 --- ./jdk/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m	2013-09-06 11:27:51.000000000 -0700
-+++ ./jdk/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m	2014-07-15 21:49:29.000000000 -0700
 @@ -290,8 +290,8 @@
          SplashUnlock(splash);
          rc = poll(pfd, 1, timeout);
@@ -54093,7 +58608,7 @@
              SplashRedrawWindow(splash);
          }
 --- ./jdk/src/macosx/native/sun/font/AWTStrike.h	2013-09-06 11:27:51.000000000 -0700
-+++ ./jdk/src/macosx/native/sun/font/AWTStrike.h	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/sun/font/AWTStrike.h	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
@@ -54117,7 +58632,7 @@
      CGAffineTransform        fFontTx;
  }
 --- ./jdk/src/macosx/native/sun/font/AWTStrike.m	2013-09-06 11:27:51.000000000 -0700
-+++ ./jdk/src/macosx/native/sun/font/AWTStrike.m	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/sun/font/AWTStrike.m	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
@@ -54155,7 +58670,7 @@
  JNF_COCOA_EXIT(env);
      return advance.width;
 --- ./jdk/src/macosx/native/sun/font/CGGlyphImages.m	2013-09-06 11:27:51.000000000 -0700
-+++ ./jdk/src/macosx/native/sun/font/CGGlyphImages.m	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/sun/font/CGGlyphImages.m	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
@@ -54216,7 +58731,7 @@
          if (maxWidth < glyphInfo->width)   maxWidth = glyphInfo->width;
          if (maxHeight < glyphInfo->height) maxHeight = glyphInfo->height;
 --- ./jdk/src/macosx/native/sun/osxapp/ThreadUtilities.h	2013-09-06 11:27:51.000000000 -0700
-+++ ./jdk/src/macosx/native/sun/osxapp/ThreadUtilities.h	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/sun/osxapp/ThreadUtilities.h	2014-07-15 21:49:30.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
@@ -54234,7 +58749,7 @@
  //Wrappers for the corresponding JNFRunLoop methods with a check for main thread
  + (void)performOnMainThreadWaiting:(BOOL)wait block:(void (^)())block;
 --- ./jdk/src/macosx/native/sun/osxapp/ThreadUtilities.m	2013-09-06 11:27:51.000000000 -0700
-+++ ./jdk/src/macosx/native/sun/osxapp/ThreadUtilities.m	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/macosx/native/sun/osxapp/ThreadUtilities.m	2014-07-15 21:49:30.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
@@ -54290,7 +58805,7 @@
      if ([NSThread isMainThread] && wait == YES) {
          block(); 
 --- ./jdk/src/share/back/SDE.c	2013-09-06 11:27:51.000000000 -0700
-+++ ./jdk/src/share/back/SDE.c	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/back/SDE.c	2014-07-15 21:49:30.000000000 -0700
 @@ -28,6 +28,12 @@
  #include "util.h"
  #include "SDE.h"
@@ -54305,7 +58820,7 @@
   * This SourceDebugExtension code does not
   * allow concurrent translation - due to caching method.
 --- ./jdk/src/share/back/export/sys.h	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/back/export/sys.h	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/back/export/sys.h	2014-07-15 21:49:30.000000000 -0700
 @@ -37,7 +37,7 @@
  
  /* Implemented in linker_md.c */
@@ -54316,7 +58831,7 @@
  void    dbgsysUnloadLibrary(void *);
  void *  dbgsysFindLibraryEntry(void *, const char *);
 --- ./jdk/src/share/back/transport.c	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/back/transport.c	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/back/transport.c	2014-07-15 21:49:30.000000000 -0700
 @@ -97,12 +97,12 @@
  
  /* Load transport library (directory=="" means do system search) */
@@ -54358,7 +58873,7 @@
      /* Make sure library name is not empty */
      if (name == NULL) {
 --- ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_de.properties	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_de.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_de.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -17,7 +17,7 @@
  awtcomponent=AWT-Komponente
  checkbox=Kontrollk\u00E4stchen
@@ -54387,7 +58902,7 @@
  # new relations, roles and states for J2SE 1.5.0
  
 --- ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_es.properties	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_es.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_es.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -102,7 +102,7 @@
  #
  # accessible actions
@@ -54398,7 +58913,7 @@
  # new relations, roles and states for J2SE 1.5.0
  
 --- ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_fr.properties	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_fr.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_fr.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -102,7 +102,7 @@
  #
  # accessible actions
@@ -54409,7 +58924,7 @@
  # new relations, roles and states for J2SE 1.5.0
  
 --- ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_it.properties	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_it.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_it.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -102,7 +102,7 @@
  #
  # accessible actions
@@ -54420,7 +58935,7 @@
  # new relations, roles and states for J2SE 1.5.0
  
 --- ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_pt_BR.properties	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_pt_BR.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_pt_BR.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -102,7 +102,7 @@
  #
  # accessible actions
@@ -54431,7 +58946,7 @@
  # new relations, roles and states for J2SE 1.5.0
  
 --- ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_sv.properties	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_sv.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_sv.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -102,7 +102,7 @@
  #
  # accessible actions
@@ -54441,8 +58956,19 @@
  
  # new relations, roles and states for J2SE 1.5.0
  
+--- ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_zh_TW.properties	2013-09-06 11:27:52.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_zh_TW.properties	2014-10-28 20:19:45.000000000 -0700
+@@ -44,7 +44,7 @@
+ popupmenu=\u5373\u73FE\u5F0F\u529F\u80FD\u8868
+ progressbar=\u9032\u5EA6\u5217
+ pushbutton=\u4E0B\u58D3\u6309\u9215
+-radiobutton=\u55AE\u9078\u9215
++radiobutton=\u5713\u9215
+ rootpane=root \u7A97\u683C
+ rowheader=\u5217\u6A19\u984C
+ scrollbar=\u6372\u8EF8
 --- ./jdk/src/share/classes/com/sun/beans/decoder/ArrayElementHandler.java	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/beans/decoder/ArrayElementHandler.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/beans/decoder/ArrayElementHandler.java	2014-07-15 21:49:30.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
@@ -54472,7 +58998,7 @@
       *
       * @param type  the base class
 --- ./jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/beans/decoder/DocumentHandler.java	2014-07-15 21:49:30.000000000 -0700
 @@ -29,6 +29,7 @@
  import java.beans.ExceptionListener;
  
@@ -54497,7 +59023,7 @@
       */
      @Override
 --- ./jdk/src/share/classes/com/sun/beans/finder/ConstructorFinder.java	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/beans/finder/ConstructorFinder.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/beans/finder/ConstructorFinder.java	2014-07-15 21:49:30.000000000 -0700
 @@ -24,11 +24,12 @@
   */
  package com.sun.beans.finder;
@@ -54553,7 +59079,7 @@
  
      /**
 --- ./jdk/src/share/classes/com/sun/beans/finder/MethodFinder.java	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/beans/finder/MethodFinder.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/beans/finder/MethodFinder.java	2014-07-15 21:49:30.000000000 -0700
 @@ -25,7 +25,7 @@
  package com.sun.beans.finder;
  
@@ -54614,7 +59140,7 @@
  
      /**
 --- ./jdk/src/share/classes/com/sun/beans/finder/Signature.java	2013-09-06 11:27:52.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/beans/finder/Signature.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/beans/finder/Signature.java	2014-07-15 21:49:30.000000000 -0700
 @@ -62,6 +62,18 @@
          this.args = args;
      }
@@ -54635,7 +59161,7 @@
       * Indicates whether some other object is "equal to" this one.
       *
 --- ./jdk/src/share/classes/com/sun/beans/finder/SignatureException.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/src/share/classes/com/sun/beans/finder/SignatureException.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/beans/finder/SignatureException.java	2014-07-15 21:49:30.000000000 -0700
 @@ -0,0 +1,41 @@
 +/*
 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -54679,7 +59205,7 @@
 +    }
 +}
 --- ./jdk/src/share/classes/com/sun/beans/util/Cache.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/src/share/classes/com/sun/beans/util/Cache.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/beans/util/Cache.java	2014-07-15 21:49:30.000000000 -0700
 @@ -0,0 +1,613 @@
 +/*
 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -55295,7 +59821,7 @@
 +    }
 +}
 --- ./jdk/src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java	2013-09-06 11:27:53.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java	2014-07-15 21:49:30.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
@@ -55316,7 +59842,7 @@
              throw new NoSuchAlgorithmException("Unsupported secret key "
                                                 + "algorithm: "+ algorithm);
 --- ./jdk/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java	2013-09-06 11:27:53.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/crypto/provider/DHPrivateKey.java	2014-07-15 21:49:30.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -55347,41 +59873,186 @@
      private void parseKeyBits() throws InvalidKeyException {
          try {
              DerInputStream in = new DerInputStream(this.key);
---- ./jdk/src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java	2013-09-06 11:27:53.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java	2014-07-15 23:24:37.000000000 -0700
+--- ./jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java	2013-09-06 11:27:53.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java	2014-10-28 20:19:45.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
-- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2014, 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
-@@ -72,13 +72,17 @@
+@@ -39,6 +39,8 @@
+ 
+ import sun.security.rsa.*;
+ import sun.security.jca.Providers;
++import sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec;
++import sun.security.util.KeyUtil;
+ 
+ /**
+  * RSA cipher implementation. Supports RSA en/decryption and signing/verifying
+@@ -91,8 +93,8 @@
+     // padding object
+     private RSAPadding padding;
+ 
+-    // cipher parameter for OAEP padding
+-    private OAEPParameterSpec spec = null;
++    // cipher parameter for OAEP padding and TLS RSA premaster secret
++    private AlgorithmParameterSpec spec = null;
+ 
+     // buffer for the data
+     private byte[] buffer;
+@@ -110,6 +112,9 @@
+     // hash algorithm for OAEP
+     private String oaepHashAlgorithm = "SHA-1";
+ 
++    // the source of randomness
++    private SecureRandom random;
++
+     public RSACipher() {
+         paddingType = PAD_PKCS1;
+     }
+@@ -175,7 +180,7 @@
+ 
+     // see JCE spec
+     protected AlgorithmParameters engineGetParameters() {
+-        if (spec != null) {
++        if (spec != null && spec instanceof OAEPParameterSpec) {
+             try {
+                 AlgorithmParameters params =
+                     AlgorithmParameters.getInstance("OAEP", "SunJCE");
+@@ -278,8 +283,13 @@
+             buffer = new byte[n];
+         } else if (paddingType == PAD_PKCS1) {
+             if (params != null) {
+-                throw new InvalidAlgorithmParameterException
+-                ("Parameters not supported");
++                if (!(params instanceof TlsRsaPremasterSecretParameterSpec)) {
++                    throw new InvalidAlgorithmParameterException(
++                            "Parameters not supported");
++                }
++
++                spec = params;
++                this.random = random;   // for TLS RSA premaster secret
+             }
+             int blockType = (mode <= MODE_DECRYPT) ? RSAPadding.PAD_BLOCKTYPE_2
+                                                    : RSAPadding.PAD_BLOCKTYPE_1;
+@@ -295,19 +305,18 @@
+                 throw new InvalidKeyException
+                         ("OAEP cannot be used to sign or verify signatures");
+             }
+-            OAEPParameterSpec myParams;
+             if (params != null) {
+                 if (!(params instanceof OAEPParameterSpec)) {
+                     throw new InvalidAlgorithmParameterException
+                         ("Wrong Parameters for OAEP Padding");
+                 }
+-                myParams = (OAEPParameterSpec) params;
++                spec = params;
+             } else {
+-                myParams = new OAEPParameterSpec(oaepHashAlgorithm, "MGF1",
++                spec = new OAEPParameterSpec(oaepHashAlgorithm, "MGF1",
+                     MGF1ParameterSpec.SHA1, PSource.PSpecified.DEFAULT);
+             }
+             padding = RSAPadding.getInstance(RSAPadding.PAD_OAEP_MGF1, n,
+-                random, myParams);
++                random, (OAEPParameterSpec)spec);
+             if (encrypt) {
+                 int k = padding.getMaxDataSize();
+                 buffer = new byte[k];
+@@ -422,17 +431,40 @@
+         if (wrappedKey.length > buffer.length) {
+             throw new InvalidKeyException("Key is too long for unwrapping");
+         }
++
++        boolean isTlsRsaPremasterSecret =
++                algorithm.equals("TlsRsaPremasterSecret");
++        Exception failover = null;
++        byte[] encoded = null;
++
+         update(wrappedKey, 0, wrappedKey.length);
+         try {
+-            byte[] encoded = doFinal();
+-            return ConstructKeys.constructKey(encoded, algorithm, type);
++            encoded = doFinal();
+         } catch (BadPaddingException e) {
+-            // should not occur
+-            throw new InvalidKeyException("Unwrapping failed", e);
++            if (isTlsRsaPremasterSecret) {
++                failover = e;
++            } else {
++                throw new InvalidKeyException("Unwrapping failed", e);
++            }
+         } catch (IllegalBlockSizeException e) {
+             // should not occur, handled with length check above
+             throw new InvalidKeyException("Unwrapping failed", e);
+         }
++
++        if (isTlsRsaPremasterSecret) {
++            if (!(spec instanceof TlsRsaPremasterSecretParameterSpec)) {
++                throw new IllegalStateException(
++                        "No TlsRsaPremasterSecretParameterSpec specified");
++            }
++
++            // polish the TLS premaster secret
++            encoded = KeyUtil.checkTlsPreMasterSecretKey(
++                ((TlsRsaPremasterSecretParameterSpec)spec).getClientVersion(),
++                ((TlsRsaPremasterSecretParameterSpec)spec).getServerVersion(),
++                random, encoded, (failover != null));
++        }
++
++        return ConstructKeys.constructKey(encoded, algorithm, type);
+     }
+ 
+     // see JCE spec
+@@ -440,5 +472,4 @@
+         RSAKey rsaKey = RSAKeyFactory.toRSAKey(key);
+         return rsaKey.getModulus().bitLength();
+     }
+-
+ }
+--- ./jdk/src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java	2013-09-06 11:27:53.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java	2014-10-28 20:19:45.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2005, 2014, 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
+@@ -56,7 +56,7 @@
+ 
+     protected void engineInit(AlgorithmParameterSpec params,
+             SecureRandom random) throws InvalidAlgorithmParameterException {
+-        if (params instanceof TlsRsaPremasterSecretParameterSpec == false) {
++        if (!(params instanceof TlsRsaPremasterSecretParameterSpec)) {
+             throw new InvalidAlgorithmParameterException(MSG);
+         }
+         this.spec = (TlsRsaPremasterSecretParameterSpec)params;
+@@ -67,11 +67,13 @@
+         throw new InvalidParameterException(MSG);
+     }
+ 
++    // Only can be used in client side to generate TLS RSA premaster secret.
+     protected SecretKey engineGenerateKey() {
+         if (spec == null) {
              throw new IllegalStateException(
                  "TlsRsaPremasterSecretGenerator must be initialized");
          }
--        if (random == null) {
--            random = new SecureRandom();
-+        byte[] b = spec.getEncodedSecret();
-+        if (b == null) {
-+            if (random == null) {
-+                random = new SecureRandom();
-+            }
-+            b = new byte[48];
-+            random.nextBytes(b);
-+            b[0] = (byte)spec.getMajorVersion();
-+            b[1] = (byte)spec.getMinorVersion();
++
+         if (random == null) {
+             random = new SecureRandom();
          }
--        byte[] b = new byte[48];
--        random.nextBytes(b);
--        b[0] = (byte)spec.getMajorVersion();
--        b[1] = (byte)spec.getMinorVersion();
+@@ -79,6 +81,7 @@
+         random.nextBytes(b);
+         b[0] = (byte)spec.getMajorVersion();
+         b[1] = (byte)spec.getMinorVersion();
 +
          return new SecretKeySpec(b, "TlsRsaPremasterSecret");
      }
  
 --- ./jdk/src/share/classes/com/sun/demo/jvmti/hprof/Tracker.java	2013-09-06 11:27:53.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/demo/jvmti/hprof/Tracker.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/demo/jvmti/hprof/Tracker.java	2014-07-15 21:49:30.000000000 -0700
 @@ -53,7 +53,10 @@
  
      public static void ObjectInit(Object obj)
@@ -55437,7 +60108,7 @@
          }
      }
 --- ./jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java	2013-09-06 11:27:53.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java	2014-07-15 21:49:30.000000000 -0700
 @@ -1160,6 +1160,11 @@
              target = imRas;
          }
@@ -55451,7 +60122,7 @@
          /*
           * If the process is sequential, and we have restart markers,
 --- ./jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java	2013-09-06 11:27:53.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java	2014-07-15 21:49:30.000000000 -0700
 @@ -490,8 +490,8 @@
              // handle <= 8-bit samples.  We now check the band sizes and throw
              // an exception for images, such as USHORT_GRAY, with > 8 bits
@@ -55464,7 +60135,7 @@
              // 4450894 part 2: We expand IndexColorModel images to full 24-
              // or 32-bit in grabPixels() for each scanline.  For indexed
 --- ./jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java	2013-09-06 11:27:53.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java	2014-07-15 21:49:30.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved.
@@ -55488,7 +60159,7 @@
                  } else {
                      newGuy = new MarkerSegment(buffer);
 --- ./jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties	2013-09-06 11:27:54.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -41,7 +41,7 @@
  FileChooser.openDialogTitle.textAndMnemonic=\u00D6ffnen
  FileChooser.pathLabel.textAndMnemonic=Aus&wahl:
@@ -55499,7 +60170,7 @@
  
  FileChooser.cancelButtonToolTip.textAndMnemonic=Dialogfeld f\u00FCr Dateiauswahl schlie\u00DFen.
 --- ./jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ko.properties	2013-09-06 11:27:54.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ko.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ko.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -24,7 +24,7 @@
  FileChooser.openButton.textAndMnemonic=\uD655\uC778
  FileChooser.saveDialogTitle.textAndMnemonic=\uC800\uC7A5
@@ -55517,7 +60188,7 @@
 +FileChooser.updateButtonToolTip.textAndMnemonic=\uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D\uC744 \uC5C5\uB370\uC774\uD2B8\uD569\uB2C8\uB2E4.
  FileChooser.helpButtonToolTip.textAndMnemonic=FileChooser \uB3C4\uC6C0\uB9D0\uC785\uB2C8\uB2E4.
 --- ./jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_fr.properties	2013-09-06 11:27:55.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_fr.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_fr.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -25,8 +25,8 @@
  FileChooser.filesOfTypeLabel.textAndMnemonic=&Type de fichier :
  FileChooser.upFolderToolTip.textAndMnemonic=Remonte d'un niveau.
@@ -55529,8 +60200,19 @@
  FileChooser.newFolderToolTip.textAndMnemonic=Cr\u00E9e un dossier.
  FileChooser.newFolderAccessibleName=Nouveau dossier
  FileChooser.newFolderActionLabel.textAndMnemonic=Nouveau dossier
+--- ./jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties	2013-09-06 11:27:55.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/java/swing/plaf/windows/resources/windows_sv.properties	2014-10-28 20:19:45.000000000 -0700
+@@ -22,7 +22,7 @@
+ FileChooser.saveInLabel.textAndMnemonic=Spara i:
+ FileChooser.fileNameLabel.textAndMnemonic=Fil&namn:
+ FileChooser.folderNameLabel.textAndMnemonic=Mapp&namn:
+-FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typ:
++FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typen:
+ FileChooser.upFolderToolTip.textAndMnemonic=Upp en niv\u00E5
+ FileChooser.upFolderAccessibleName=Upp
+ FileChooser.homeFolderToolTip.textAndMnemonic=Hem
 --- ./jdk/src/share/classes/com/sun/java/util/jar/pack/Code.java	2013-09-06 11:27:55.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/java/util/jar/pack/Code.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/java/util/jar/pack/Code.java	2014-07-15 21:49:30.000000000 -0700
 @@ -146,7 +146,6 @@
          int verbose = getPackage().verbose;
          if (verbose > 2)
@@ -55540,7 +60222,7 @@
          if (fixups != null) {
              fixups.visitRefs(refs);
 --- ./jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2013-09-06 11:27:55.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java	2014-07-15 21:49:30.000000000 -0700
 @@ -670,53 +670,55 @@
          return new String(sig);
      }
@@ -55638,7 +60320,7 @@
          //assert(flattenSignature(parts).equals(sig));
          return parts;
 --- ./jdk/src/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/src/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java	2014-07-15 21:49:30.000000000 -0700
 @@ -0,0 +1,131 @@
 +/*
 + * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
@@ -55772,7 +60454,7 @@
 +
 +}
 --- ./jdk/src/share/classes/com/sun/java/util/jar/pack/DriverResource_zh_CN.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/src/share/classes/com/sun/java/util/jar/pack/DriverResource_zh_CN.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/java/util/jar/pack/DriverResource_zh_CN.java	2014-07-15 21:49:30.000000000 -0700
 @@ -0,0 +1,131 @@
 +/*
 + * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
@@ -55906,7 +60588,7 @@
 +
 +}
 --- ./jdk/src/share/classes/com/sun/jmx/remote/protocol/iiop/IIOPProxyImpl.java	2013-09-06 11:27:56.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/jmx/remote/protocol/iiop/IIOPProxyImpl.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/jmx/remote/protocol/iiop/IIOPProxyImpl.java	2014-07-15 21:49:30.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
@@ -55978,7 +60660,7 @@
      }
  }
 --- ./jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java	2013-09-06 11:27:56.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java	2014-07-15 21:54:44.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
@@ -56255,7 +60937,7 @@
 -    private final int nSoftReferences;
 -}
 --- ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibEntry.java	2013-09-06 11:27:57.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibEntry.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibEntry.java	2014-07-15 21:49:30.000000000 -0700
 @@ -27,17 +27,9 @@
  
  // java imports
@@ -56285,7 +60967,7 @@
  
      /**
 --- ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibGroup.java	2013-09-06 11:27:57.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibGroup.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibGroup.java	2014-07-15 21:49:30.000000000 -0700
 @@ -116,7 +116,7 @@
      public void validateVarId(long arc, Object userData)
          throws SnmpStatusException {
@@ -56352,7 +61034,7 @@
          } catch (SnmpStatusException e) {
              // We didn't find anything at the given arc, so we're going
 --- ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibNode.java	2013-09-06 11:27:57.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibNode.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibNode.java	2014-07-15 21:49:30.000000000 -0700
 @@ -155,7 +155,7 @@
                            long[] oid, int depth,
                            SnmpRequestTree handlers)
@@ -56410,7 +61092,7 @@
 -        new SnmpStatusException(SnmpDefinitions.snmpRspNoSuchName);
  }
 --- ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibOid.java	2013-09-06 11:27:57.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibOid.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibOid.java	2014-07-15 21:49:30.000000000 -0700
 @@ -157,11 +157,11 @@
  
          if (depth > length) {
@@ -56470,7 +61152,7 @@
      }
  
 --- ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibTable.java	2013-09-06 11:27:57.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibTable.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/jmx/snmp/agent/SnmpMibTable.java	2014-07-15 21:49:30.000000000 -0700
 @@ -279,7 +279,7 @@
              SnmpVarBind     var = null;
              for (Enumeration e= r.getElements(); e.hasMoreElements();) {
@@ -56601,7 +61283,7 @@
      }
  
 --- ./jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java	2013-09-06 11:27:58.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/jmx/snmp/daemon/SnmpRequestHandler.java	2014-07-15 21:49:30.000000000 -0700
 @@ -1146,7 +1146,4 @@
  
      static final private String InterruptSysCallMsg =
@@ -56611,7 +61293,7 @@
 -        new SnmpStatusException(SnmpDefinitions.snmpRspNoSuchName) ;
  }
 --- ./jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java	2013-09-06 11:27:58.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java	2014-07-15 21:49:30.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
@@ -56820,7 +61502,7 @@
              }
          }
 --- ./jdk/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java	2013-09-06 11:27:58.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/jndi/ldap/LdapBindingEnumeration.java	2014-07-15 21:49:30.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
@@ -56876,7 +61558,7 @@
          if (obj == null) {
              // DirContext object
 --- ./jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java	2013-09-06 11:27:58.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java	2014-07-15 21:49:30.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
@@ -56933,7 +61615,7 @@
              if (obj == null) {
                  obj = new LdapCtx(homeCtx, dn);
 --- ./jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java	2013-09-06 11:27:58.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java	2014-07-15 21:49:30.000000000 -0700
 @@ -25,11 +25,12 @@
  
  package com.sun.jndi.ldap;
@@ -56971,7 +61653,7 @@
      }
  }
 --- ./jdk/src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java	2013-09-06 11:27:59.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java	2014-07-15 21:49:30.000000000 -0700
 @@ -66,6 +66,11 @@
       *                     cannot be created, opened, or written to.
       * @throws UnsupportedOperationException if this operation is not supported.
@@ -56985,7 +61667,7 @@
      public void dumpHeap(String outputFile, boolean live) throws java.io.IOException;
  
 --- ./jdk/src/share/classes/com/sun/media/sound/JDK13Services.java	2013-09-06 11:27:59.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/media/sound/JDK13Services.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/media/sound/JDK13Services.java	2014-07-15 21:49:31.000000000 -0700
 @@ -25,27 +25,33 @@
  
  package com.sun.media.sound;
@@ -57161,7 +61843,7 @@
 -    }
  }
 --- ./jdk/src/share/classes/com/sun/media/sound/JSSecurityManager.java	2013-09-06 11:27:59.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/media/sound/JSSecurityManager.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/media/sound/JSSecurityManager.java	2014-07-15 21:49:31.000000000 -0700
 @@ -187,7 +187,7 @@
          return thread;
      }
@@ -57172,7 +61854,7 @@
          // Service.providers(Class) just creates "lazy" iterator instance,
          // so it doesn't require do be called from privileged section
 --- ./jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java	2013-09-06 11:28:00.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/naming/internal/FactoryEnumeration.java	2014-07-15 21:49:31.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
@@ -57220,7 +61902,7 @@
                  // Instantiate Class to get factory
                  answer = ((Class) answer).newInstance();
 --- ./jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java	2013-09-06 11:28:00.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java	2014-07-15 21:49:31.000000000 -0700
 @@ -69,6 +69,14 @@
      private static final String JRELIB_PROPERTY_FILE_NAME = "jndi.properties";
  
@@ -57251,7 +61933,7 @@
          // resource files.  Colon-separated lists are concatenated.
          mergeTables(env, getApplicationResources());
 --- ./jdk/src/share/classes/com/sun/naming/internal/VersionHelper12.java	2013-09-06 11:28:00.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/naming/internal/VersionHelper12.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/naming/internal/VersionHelper12.java	2014-07-15 21:49:31.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved.
@@ -57367,8 +62049,241 @@
      /**
       * Given an enumeration of URLs, an instance of this class represents
       * an enumeration of their InputStreams.  Each operation on the URL
+--- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/Init.java	2013-09-06 11:28:00.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/Init.java	2014-10-28 20:19:45.000000000 -0700
+@@ -25,6 +25,8 @@
+ import java.io.InputStream;
+ import java.security.AccessController;
+ import java.security.PrivilegedAction;
++import java.security.PrivilegedActionException;
++import java.security.PrivilegedExceptionAction;
+ import java.util.ArrayList;
+ import java.util.List;
+ 
+@@ -35,6 +37,7 @@
+ import com.sun.org.apache.xml.internal.security.algorithms.JCEMapper;
+ import com.sun.org.apache.xml.internal.security.algorithms.SignatureAlgorithm;
+ import com.sun.org.apache.xml.internal.security.c14n.Canonicalizer;
++import com.sun.org.apache.xml.internal.security.exceptions.XMLSecurityException;
+ import com.sun.org.apache.xml.internal.security.keys.keyresolver.KeyResolver;
+ import com.sun.org.apache.xml.internal.security.transforms.Transform;
+ import com.sun.org.apache.xml.internal.security.utils.ElementProxy;
+@@ -118,43 +121,50 @@
+             log.log(java.util.logging.Level.FINE, "Registering default algorithms");
+         }
+         try {
+-            //
+-            // Bind the default prefixes
+-            //
+-            ElementProxy.registerDefaultPrefixes();
+-
+-            //
+-            // Set the default Transforms
+-            //
+-            Transform.registerDefaultAlgorithms();
+-
+-            //
+-            // Set the default signature algorithms
+-            //
+-            SignatureAlgorithm.registerDefaultAlgorithms();
+-
+-            //
+-            // Set the default JCE algorithms
+-            //
+-            JCEMapper.registerDefaultAlgorithms();
+-
+-            //
+-            // Set the default c14n algorithms
+-            //
+-            Canonicalizer.registerDefaultAlgorithms();
+-
+-            //
+-            // Register the default resolvers
+-            //
+-            ResourceResolver.registerDefaultResolvers();
+-
+-            //
+-            // Register the default key resolvers
+-            //
+-            KeyResolver.registerDefaultResolvers();
+-        } catch (Exception ex) {
+-            log.log(java.util.logging.Level.SEVERE, ex.getMessage(), ex);
+-            ex.printStackTrace();
++            AccessController.doPrivileged(new PrivilegedExceptionAction(){
++                @Override public Void run() throws XMLSecurityException {
++                    //
++                    // Bind the default prefixes
++                    //
++                    ElementProxy.registerDefaultPrefixes();
++
++                    //
++                    // Set the default Transforms
++                    //
++                    Transform.registerDefaultAlgorithms();
++
++                    //
++                    // Set the default signature algorithms
++                    //
++                    SignatureAlgorithm.registerDefaultAlgorithms();
++
++                    //
++                    // Set the default JCE algorithms
++                    //
++                    JCEMapper.registerDefaultAlgorithms();
++
++                    //
++                    // Set the default c14n algorithms
++                    //
++                    Canonicalizer.registerDefaultAlgorithms();
++
++                    //
++                    // Register the default resolvers
++                    //
++                    ResourceResolver.registerDefaultResolvers();
++
++                    //
++                    // Register the default key resolvers
++                    //
++                    KeyResolver.registerDefaultResolvers();
++
++                    return null;
++                }
++           });
++        } catch (PrivilegedActionException ex) {
++            XMLSecurityException xse = (XMLSecurityException)ex.getException();
++            log.log(java.util.logging.Level.SEVERE, xse.getMessage(), xse);
++            xse.printStackTrace();
+         }
+     }
+ 
+--- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/JCEMapper.java	2013-09-06 11:28:00.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/JCEMapper.java	2014-10-28 20:19:45.000000000 -0700
+@@ -27,6 +27,7 @@
+ 
+ import com.sun.org.apache.xml.internal.security.encryption.XMLCipher;
+ import com.sun.org.apache.xml.internal.security.signature.XMLSignature;
++import com.sun.org.apache.xml.internal.security.utils.JavaUtils;
+ import org.w3c.dom.Element;
+ 
+ 
+@@ -49,8 +50,11 @@
+      *
+      * @param id
+      * @param algorithm
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register the JCE algorithm
+      */
+     public static void register(String id, Algorithm algorithm) {
++        JavaUtils.checkRegisterPermission();
+         algorithmsMap.put(id, algorithm);
+     }
+ 
+@@ -264,8 +268,11 @@
+     /**
+      * Sets the default Provider for obtaining the security algorithms
+      * @param provider the default providerId.
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to set the JCE provider
+      */
+     public static void setProviderId(String provider) {
++        JavaUtils.checkRegisterPermission();
+         providerName = provider;
+     }
+ 
+--- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/SignatureAlgorithm.java	2013-09-06 11:28:00.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/algorithms/SignatureAlgorithm.java	2014-10-28 20:19:45.000000000 -0700
+@@ -37,6 +37,7 @@
+ import com.sun.org.apache.xml.internal.security.signature.XMLSignature;
+ import com.sun.org.apache.xml.internal.security.signature.XMLSignatureException;
+ import com.sun.org.apache.xml.internal.security.utils.Constants;
++import com.sun.org.apache.xml.internal.security.utils.JavaUtils;
+ import org.w3c.dom.Attr;
+ import org.w3c.dom.Document;
+ import org.w3c.dom.Element;
+@@ -314,18 +315,21 @@
+     }
+ 
+     /**
+-     * Registers implementing class of the Transform algorithm with algorithmURI
++     * Registers implementing class of the SignatureAlgorithm with algorithmURI
+      *
+-     * @param algorithmURI algorithmURI URI representation of Transform algorithm.
++     * @param algorithmURI algorithmURI URI representation of SignatureAlgorithm.
+      * @param implementingClass implementingClass the implementing class of
+      * {@link SignatureAlgorithmSpi}
+      * @throws AlgorithmAlreadyRegisteredException if specified algorithmURI is already registered
+      * @throws XMLSignatureException
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register the signature algorithm
+      */
+     @SuppressWarnings("unchecked")
+     public static void register(String algorithmURI, String implementingClass)
+        throws AlgorithmAlreadyRegisteredException, ClassNotFoundException,
+            XMLSignatureException {
++        JavaUtils.checkRegisterPermission();
+         if (log.isLoggable(java.util.logging.Level.FINE)) {
+             log.log(java.util.logging.Level.FINE, "Try to register " + algorithmURI + " " + implementingClass);
+         }
+@@ -352,15 +356,18 @@
+     /**
+      * Registers implementing class of the Transform algorithm with algorithmURI
+      *
+-     * @param algorithmURI algorithmURI URI representation of Transform algorithm.
++     * @param algorithmURI algorithmURI URI representation of SignatureAlgorithm.
+      * @param implementingClass implementingClass the implementing class of
+      * {@link SignatureAlgorithmSpi}
+      * @throws AlgorithmAlreadyRegisteredException if specified algorithmURI is already registered
+      * @throws XMLSignatureException
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register the signature algorithm
+      */
+     public static void register(String algorithmURI, Class implementingClass)
+        throws AlgorithmAlreadyRegisteredException, ClassNotFoundException,
+            XMLSignatureException {
++        JavaUtils.checkRegisterPermission();
+         if (log.isLoggable(java.util.logging.Level.FINE)) {
+             log.log(java.util.logging.Level.FINE, "Try to register " + algorithmURI + " " + implementingClass);
+         }
+--- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/Canonicalizer.java	2013-09-06 11:28:00.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/Canonicalizer.java	2014-10-28 20:19:45.000000000 -0700
+@@ -40,6 +40,7 @@
+ import com.sun.org.apache.xml.internal.security.c14n.implementations.Canonicalizer20010315OmitComments;
+ import com.sun.org.apache.xml.internal.security.c14n.implementations.Canonicalizer20010315WithComments;
+ import com.sun.org.apache.xml.internal.security.exceptions.AlgorithmAlreadyRegisteredException;
++import com.sun.org.apache.xml.internal.security.utils.JavaUtils;
+ import org.w3c.dom.Document;
+ import org.w3c.dom.Node;
+ import org.w3c.dom.NodeList;
+@@ -136,10 +137,13 @@
+      * @param algorithmURI
+      * @param implementingClass
+      * @throws AlgorithmAlreadyRegisteredException
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register the canonicalizer
+      */
+     @SuppressWarnings("unchecked")
+     public static void register(String algorithmURI, String implementingClass)
+         throws AlgorithmAlreadyRegisteredException, ClassNotFoundException {
++        JavaUtils.checkRegisterPermission();
+         // check whether URI is already registered
+         Class registeredClass =
+             canonicalizerHash.get(algorithmURI);
+@@ -160,9 +164,12 @@
+      * @param algorithmURI
+      * @param implementingClass
+      * @throws AlgorithmAlreadyRegisteredException
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register the canonicalizer
+      */
+-    public static void register(String algorithmURI, Class implementingClass)
++    public static void register(String algorithmURI, Class implementingClass)
+         throws AlgorithmAlreadyRegisteredException, ClassNotFoundException {
++        JavaUtils.checkRegisterPermission();
+         // check whether URI is already registered
+         Class registeredClass = canonicalizerHash.get(algorithmURI);
+ 
 --- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer11.java	2013-09-06 11:28:00.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer11.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer11.java	2014-07-15 21:49:31.000000000 -0700
 @@ -358,7 +358,8 @@
              } else if (!isVisible(xmlns)) {
                  // There is a defn but the xmlns is not selected by the xpath.
@@ -57380,7 +62295,7 @@
              // output the xmlns def if needed.
              if (n != null) {
 --- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315.java	2013-09-06 11:28:00.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315.java	2014-07-15 21:49:31.000000000 -0700
 @@ -302,7 +302,8 @@
          } else if ( !isVisible(xmlns)) {
                  //There is a definition but the xmlns is not selected by the xpath.
@@ -57392,7 +62307,7 @@
          //output the xmlns def if needed.
          if (n!=null) {
 --- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315Excl.java	2013-09-06 11:28:00.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315Excl.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/Canonicalizer20010315Excl.java	2014-07-15 21:49:31.000000000 -0700
 @@ -300,7 +300,7 @@
             if ((xmlns!=null) &&  (!isVisible(xmlns))) {
                //There is a definition but the xmlns is not selected by the xpath.
@@ -57403,7 +62318,7 @@
  
                          if (E.getNamespaceURI() != null) {
 --- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/CanonicalizerBase.java	2013-09-06 11:28:00.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/CanonicalizerBase.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/c14n/implementations/CanonicalizerBase.java	2014-07-15 21:49:31.000000000 -0700
 @@ -34,7 +34,6 @@
  import java.util.Map;
  import java.util.Set;
@@ -57669,8 +62584,167 @@
 +    }
 +
  }
+--- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolver.java	2013-09-06 11:28:01.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/keys/keyresolver/KeyResolver.java	2014-10-28 20:19:45.000000000 -0700
+@@ -39,6 +39,7 @@
+ import com.sun.org.apache.xml.internal.security.keys.keyresolver.implementations.X509SKIResolver;
+ import com.sun.org.apache.xml.internal.security.keys.keyresolver.implementations.X509SubjectNameResolver;
+ import com.sun.org.apache.xml.internal.security.keys.storage.StorageResolver;
++import com.sun.org.apache.xml.internal.security.utils.JavaUtils;
+ import org.w3c.dom.Element;
+ import org.w3c.dom.Node;
+ 
+@@ -172,9 +173,12 @@
+      * @throws InstantiationException
+      * @throws IllegalAccessException
+      * @throws ClassNotFoundException
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register the key resolver
+      */
+     public static void register(String className, boolean globalResolver)
+         throws ClassNotFoundException, IllegalAccessException, InstantiationException {
++        JavaUtils.checkRegisterPermission();
+         KeyResolverSpi keyResolverSpi =
+             (KeyResolverSpi) Class.forName(className).newInstance();
+         keyResolverSpi.setGlobalResolver(globalResolver);
+@@ -192,8 +196,11 @@
+      *
+      * @param className
+      * @param globalResolver Whether the KeyResolverSpi is a global resolver or not
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register the key resolver
+      */
+     public static void registerAtStart(String className, boolean globalResolver) {
++        JavaUtils.checkRegisterPermission();
+         KeyResolverSpi keyResolverSpi = null;
+         Exception ex = null;
+         try {
+@@ -225,11 +232,14 @@
+      *
+      * @param keyResolverSpi a KeyResolverSpi instance to register
+      * @param start whether to register the KeyResolverSpi at the start of the list or not
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register the key resolver
+      */
+     public static void register(
+         KeyResolverSpi keyResolverSpi,
+         boolean start
+     ) {
++        JavaUtils.checkRegisterPermission();
+         KeyResolver resolver = new KeyResolver(keyResolverSpi);
+         if (start) {
+             resolverVector.add(0, resolver);
+@@ -251,9 +261,12 @@
+      * @throws InstantiationException
+      * @throws IllegalAccessException
+      * @throws ClassNotFoundException
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register the key resolver
+      */
+     public static void registerClassNames(List classNames)
+         throws ClassNotFoundException, IllegalAccessException, InstantiationException {
++        JavaUtils.checkRegisterPermission();
+         List keyResolverList = new ArrayList(classNames.size());
+         for (String className : classNames) {
+             KeyResolverSpi keyResolverSpi =
+--- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/Transform.java	2013-09-06 11:28:01.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/transforms/Transform.java	2014-10-28 20:19:45.000000000 -0700
+@@ -46,6 +46,7 @@
+ import com.sun.org.apache.xml.internal.security.transforms.implementations.TransformXSLT;
+ import com.sun.org.apache.xml.internal.security.utils.Constants;
+ import com.sun.org.apache.xml.internal.security.utils.HelperNodeList;
++import com.sun.org.apache.xml.internal.security.utils.JavaUtils;
+ import com.sun.org.apache.xml.internal.security.utils.SignatureElementProxy;
+ import com.sun.org.apache.xml.internal.security.utils.XMLUtils;
+ import org.w3c.dom.Document;
+@@ -181,11 +182,14 @@
+      * class of {@link TransformSpi}
+      * @throws AlgorithmAlreadyRegisteredException if specified algorithmURI
+      * is already registered
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register the transform
+      */
+     @SuppressWarnings("unchecked")
+     public static void register(String algorithmURI, String implementingClass)
+         throws AlgorithmAlreadyRegisteredException, ClassNotFoundException,
+             InvalidTransformException {
++        JavaUtils.checkRegisterPermission();
+         // are we already registered?
+         Class transformSpi = transformSpiHash.get(algorithmURI);
+         if (transformSpi != null) {
+@@ -206,9 +210,12 @@
+      * class of {@link TransformSpi}
+      * @throws AlgorithmAlreadyRegisteredException if specified algorithmURI
+      * is already registered
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register the transform
+      */
+     public static void register(String algorithmURI, Class implementingClass)
+         throws AlgorithmAlreadyRegisteredException {
++        JavaUtils.checkRegisterPermission();
+         // are we already registered?
+         Class transformSpi = transformSpiHash.get(algorithmURI);
+         if (transformSpi != null) {
+--- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/ElementProxy.java	2013-09-06 11:28:02.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/ElementProxy.java	2014-10-28 20:19:45.000000000 -0700
+@@ -468,9 +468,12 @@
+      * @param namespace
+      * @param prefix
+      * @throws XMLSecurityException
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to set the default prefix
+      */
+     public static void setDefaultPrefix(String namespace, String prefix)
+         throws XMLSecurityException {
++        JavaUtils.checkRegisterPermission();
+         if (prefixMappings.containsValue(prefix)) {
+             String storedPrefix = prefixMappings.get(namespace);
+             if (!storedPrefix.equals(prefix)) {
+--- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/JavaUtils.java	2013-09-06 11:28:02.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/JavaUtils.java	2014-10-28 20:19:45.000000000 -0700
+@@ -26,6 +26,7 @@
+ import java.io.FileOutputStream;
+ import java.io.IOException;
+ import java.io.InputStream;
++import java.security.SecurityPermission;
+ 
+ /**
+  * A collection of different, general-purpose methods for JAVA-specific things
+@@ -37,6 +38,10 @@
+     static java.util.logging.Logger log =
+         java.util.logging.Logger.getLogger(JavaUtils.class.getName());
+ 
++    private static final SecurityPermission REGISTER_PERMISSION =
++        new SecurityPermission(
++            "com.sun.org.apache.xml.internal.security.register");
++
+     private JavaUtils() {
+         // we don't allow instantiation
+     }
+@@ -128,4 +133,21 @@
+         refBytes = baos.toByteArray();
+         return refBytes;
+     }
++
++    /**
++     * Throws a {@code SecurityException} if a security manager is installed
++     * and the caller is not allowed to register an implementation of an
++     * algorithm, transform, or other security sensitive XML Signature function.
++     *
++     * @throws SecurityException if a security manager is installed and the
++     *    caller has not been granted the
++     *    {@literal "com.sun.org.apache.xml.internal.security.register"}
++     *    {@code SecurityPermission}
++     */
++    public static void checkRegisterPermission() {
++        SecurityManager sm = System.getSecurityManager();
++        if (sm != null) {
++            sm.checkPermission(REGISTER_PERMISSION);
++        }
++    }
+ }
 --- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream.java	2013-09-06 11:28:02.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/UnsyncByteArrayOutputStream.java	2014-07-15 21:49:32.000000000 -0700
 @@ -44,6 +44,9 @@
      }
  
@@ -57714,8 +62788,93 @@
          }
          byte newBuf[] = new byte[newSize];
          System.arraycopy(buf, 0, newBuf, 0, pos);
+--- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/XMLUtils.java	2013-09-06 11:28:02.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/XMLUtils.java	2014-10-28 20:19:45.000000000 -0700
+@@ -79,16 +79,22 @@
+     /**
+      * Set the prefix for the digital signature namespace
+      * @param prefix the new prefix for the digital signature namespace
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to set the prefix
+      */
+     public static void setDsPrefix(String prefix) {
++        JavaUtils.checkRegisterPermission();
+         dsPrefix = prefix;
+     }
+ 
+     /**
+      * Set the prefix for the encryption namespace
+      * @param prefix the new prefix for the encryption namespace
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to set the prefix
+      */
+     public static void setXencPrefix(String prefix) {
++        JavaUtils.checkRegisterPermission();
+         xencPrefix = prefix;
+     }
+ 
+--- ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolver.java	2013-09-06 11:28:02.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/ResourceResolver.java	2014-10-28 20:19:45.000000000 -0700
+@@ -27,6 +27,7 @@
+ import java.util.Map;
+ 
+ import com.sun.org.apache.xml.internal.security.signature.XMLSignatureInput;
++import com.sun.org.apache.xml.internal.security.utils.JavaUtils;
+ import com.sun.org.apache.xml.internal.security.utils.resolver.implementations.ResolverDirectHTTP;
+ import com.sun.org.apache.xml.internal.security.utils.resolver.implementations.ResolverFragment;
+ import com.sun.org.apache.xml.internal.security.utils.resolver.implementations.ResolverLocalFilesystem;
+@@ -192,9 +193,12 @@
+      * the class cannot be registered.
+      *
+      * @param className the name of the ResourceResolverSpi class to be registered
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register a resource resolver
+      */
+     @SuppressWarnings("unchecked")
+     public static void register(String className) {
++        JavaUtils.checkRegisterPermission();
+         try {
+             Class resourceResolverClass =
+                 (Class) Class.forName(className);
+@@ -209,9 +213,12 @@
+      * list. This method logs a warning if the class cannot be registered.
+      *
+      * @param className the name of the ResourceResolverSpi class to be registered
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register a resource resolver
+      */
+     @SuppressWarnings("unchecked")
+     public static void registerAtStart(String className) {
++        JavaUtils.checkRegisterPermission();
+         try {
+             Class resourceResolverClass =
+                 (Class) Class.forName(className);
+@@ -226,8 +233,11 @@
+      * cannot be registered.
+      * @param className
+      * @param start
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register a resource resolver
+      */
+     public static void register(Class className, boolean start) {
++        JavaUtils.checkRegisterPermission();
+         try {
+             ResourceResolverSpi resourceResolverSpi = className.newInstance();
+             register(resourceResolverSpi, start);
+@@ -243,8 +253,11 @@
+      * cannot be registered.
+      * @param resourceResolverSpi
+      * @param start
++     * @throws SecurityException if a security manager is installed and the
++     *    caller does not have permission to register a resource resolver
+      */
+     public static void register(ResourceResolverSpi resourceResolverSpi, boolean start) {
++        JavaUtils.checkRegisterPermission();
+         synchronized(resolverList) {
+             if (start) {
+                 resolverList.add(0, new ResourceResolver(resourceResolverSpi));
 --- ./jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2013-09-06 11:28:02.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java	2014-07-15 21:49:32.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -57766,7 +62925,7 @@
                  // get the attributes from the struct
                  Object attribs[] = s.getAttributes(map);
 --- ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties	2013-09-06 11:28:02.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_de.properties	2014-07-15 21:49:32.000000000 -0700
 @@ -140,7 +140,7 @@
  #WebRowSetXmlReader exception
  wrsxmlreader.invalidcp = Ende von RowSet wurde erreicht. Ung\u00FCltige Cursorposition
@@ -57777,7 +62936,7 @@
  #WebRowSetXmlWriter exceptions
  wrsxmlwriter.ioex = IOException: {0}
 --- ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_ja.properties	2013-09-06 11:28:02.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_ja.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_ja.properties	2014-07-15 21:49:32.000000000 -0700
 @@ -51,8 +51,8 @@
  cachedrowsetimpl.last = last: TYPE_FORWARD_ONLY
  cachedrowsetimpl.absolute = absolute: \u7121\u52B9\u306A\u30AB\u30FC\u30BD\u30EB\u4F4D\u7F6E
@@ -57799,7 +62958,7 @@
  jdbcrowsetimpl.matchcols = \u4E00\u81F4\u5217\u304C\u5217\u306E\u30BB\u30C3\u30C8\u3068\u540C\u3058\u3067\u306F\u3042\u308A\u307E\u305B\u3093
  jdbcrowsetimpl.setmatchcols = \u4E00\u81F4\u5217\u3092\u53D6\u5F97\u3059\u308B\u524D\u306B\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044
 --- ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties	2013-09-06 11:28:02.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties	2014-07-15 21:49:32.000000000 -0700
 @@ -44,7 +44,7 @@
  cachedrowsetimpl.dtypemismt = \uB370\uC774\uD130 \uC720\uD615\uC774 \uC77C\uCE58\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4. 
  cachedrowsetimpl.datefail = {1} \uC5F4\uC758 \uAC12({0})\uC5D0\uC11C getDate\uB97C \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4. \uBCC0\uD658\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
@@ -57827,8 +62986,26 @@
  xmlrch.chars = \uBB38\uC790:
  xmlrch.badvalue = \uC798\uBABB\uB41C \uAC12: \uB110\uC77C \uC218 \uC5C6\uB294 \uC18D\uC131\uC785\uB2C8\uB2E4.
  xmlrch.badvalue1 = \uC798\uBABB\uB41C \uAC12: \uB110\uC77C \uC218 \uC5C6\uB294 \uBA54\uD0C0 \uB370\uC774\uD130\uC785\uB2C8\uB2E4.
+--- ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_pt_BR.properties	2013-09-06 11:28:02.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_pt_BR.properties	2014-10-28 20:19:45.000000000 -0700
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
++# Copyright (c) 2005, 2014, 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
+@@ -153,7 +153,7 @@
+ xmlrch.errmetadata = Erro ao definir metadados : {0}
+ xmlrch.errinsertval = Erro ao inserir valores : {0}
+ xmlrch.errconstr = Erro ao construir a linha : {0}
+-xmlrch.errdel = Erro ao deletar a linha : {0}
++xmlrch.errdel = Erro ao excluir a linha : {0}
+ xmlrch.errinsert = Erro ao construir a linha de inser\u00E7\u00E3o : {0}
+ xmlrch.errinsdel = Erro ao construir a linha insdel : {0}
+ xmlrch.errupdate = Erro ao construir a linha de atualiza\u00E7\u00E3o : {0}
 --- ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties	2013-09-06 11:28:02.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/rowset/RowSetResourceBundle_sv.properties	2014-07-15 21:49:32.000000000 -0700
 @@ -29,11 +29,11 @@
  cachedrowsetimpl.nullhash = Kan inte instansiera CachedRowSetImpl. Null-hashtabell skickades till konstruktor
  cachedrowsetimpl.invalidop = En ogiltig \u00E5tg\u00E4rd utf\u00F6rdes p\u00E5 infogad rad
@@ -57863,7 +63040,7 @@
  
  #FilteredRowSetImpl exceptions
 --- ./jdk/src/share/classes/com/sun/rowset/internal/CachedRowSetWriter.java	2013-09-06 11:28:02.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/rowset/internal/CachedRowSetWriter.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/rowset/internal/CachedRowSetWriter.java	2014-07-15 21:49:32.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -57897,7 +63074,7 @@
                          // get the attributes from the struct
                          Object attribs[] = s.getAttributes(map);
 --- ./jdk/src/share/classes/com/sun/rowset/internal/XmlReaderContentHandler.java	2013-09-06 11:28:02.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/rowset/internal/XmlReaderContentHandler.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/rowset/internal/XmlReaderContentHandler.java	2014-07-15 21:49:32.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -57915,7 +63092,7 @@
                          }catch(ClassNotFoundException ex) {
                            throw new SAXException(MessageFormat.format(resBundle.handleGetObject("xmlrch.errmap").toString(), ex.getMessage()));
 --- ./jdk/src/share/classes/com/sun/script/util/InterfaceImplementor.java	2013-09-06 11:28:02.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/script/util/InterfaceImplementor.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/script/util/InterfaceImplementor.java	2014-07-15 21:49:32.000000000 -0700
 @@ -28,6 +28,7 @@
  import javax.script.*;
  import java.lang.reflect.*;
@@ -57966,7 +63143,7 @@
 +    }
  }
 --- ./jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java	2013-09-06 11:28:02.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java	2014-07-15 21:49:32.000000000 -0700
 @@ -875,8 +875,7 @@
                  char[] tmpPassword = ((PasswordCallback)
                                        callbacks[0]).getPassword();
@@ -57978,7 +63155,7 @@
                  password = new char[tmpPassword.length];
                  System.arraycopy(tmpPassword, 0,
 --- ./jdk/src/share/classes/com/sun/security/sasl/CramMD5Base.java	2013-09-06 11:28:03.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/security/sasl/CramMD5Base.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/security/sasl/CramMD5Base.java	2014-07-15 21:54:44.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
@@ -58033,7 +63210,7 @@
      }
  
 --- ./jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java	2013-09-06 11:28:03.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java	2014-07-15 21:49:32.000000000 -0700
 @@ -252,11 +252,12 @@
  
  
@@ -58075,7 +63252,7 @@
              logger.logp(Level.WARNING, srcClass, srcMethod,
                  "SASLIMPL09:Error generating trace output: {0}", e);
 --- ./jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties	2013-09-06 11:28:03.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties	2014-07-15 21:49:32.000000000 -0700
 @@ -46,7 +46,7 @@
  FileChooser.openButton.textAndMnemonic=\uC5F4\uAE30(&O)
  FileChooser.saveDialogTitle.textAndMnemonic=\uC800\uC7A5
@@ -58095,7 +63272,7 @@
  FileChooser.directoryOpenButtonToolTip.textAndMnemonic=\uC120\uD0DD\uB41C \uB514\uB809\uD1A0\uB9AC \uC5F4\uAE30
  
 --- ./jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties	2013-09-06 11:28:03.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_fr.properties	2014-07-15 21:49:32.000000000 -0700
 @@ -25,8 +25,8 @@
  FileChooser.filesOfTypeLabel.textAndMnemonic=&Type de fichier :
  FileChooser.upFolderToolTip.textAndMnemonic=Remonte d'un niveau.
@@ -58108,20 +63285,22 @@
  FileChooser.newFolderAccessibleName=Nouveau dossier
  FileChooser.newFolderActionLabel.textAndMnemonic=Nouveau dossier
 --- ./jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties	2013-09-06 11:28:03.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties	2014-07-15 23:24:37.000000000 -0700
-@@ -20,8 +20,8 @@
++++ ./jdk/src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties	2014-10-28 20:19:45.000000000 -0700
+@@ -20,9 +20,9 @@
  
  FileChooser.lookInLabel.textAndMnemonic=Leta &i:
  FileChooser.saveInLabel.textAndMnemonic=Spara i:
 -FileChooser.fileNameLabel.textAndMnemonic=Fil&namn:
 -FileChooser.folderNameLabel.textAndMnemonic=Mapp&namn:
+-FileChooser.filesOfTypeLabel.textAndMnemonic=Mapp&namn:
 +FileChooser.fileNameLabel.textAndMnemonic=&Fil:
 +FileChooser.folderNameLabel.textAndMnemonic=&Mapp:
- FileChooser.filesOfTypeLabel.textAndMnemonic=Mapp&namn:
++FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typen:
  FileChooser.upFolderToolTip.textAndMnemonic=Upp en niv\u00E5
  FileChooser.upFolderAccessibleName=Upp
+ FileChooser.homeFolderToolTip.textAndMnemonic=Hem
 --- ./jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties	2013-09-06 11:28:03.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_fr.properties	2014-07-15 21:49:32.000000000 -0700
 @@ -25,8 +25,8 @@
  FileChooser.filesOfTypeLabel.textAndMnemonic=&Type de fichier :
  FileChooser.upFolderToolTip.textAndMnemonic=Remonte d'un niveau.
@@ -58133,8 +63312,37 @@
  FileChooser.newFolderToolTip.textAndMnemonic=Cr\u00E9e un dossier.
  FileChooser.newFolderAccessibleName=Nouveau dossier
  FileChooser.newFolderActionLabel.textAndMnemonic=Nouveau dossier
+--- ./jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties	2013-09-06 11:28:03.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/swing/internal/plaf/synth/resources/synth_sv.properties	2014-10-28 20:19:46.000000000 -0700
+@@ -22,7 +22,7 @@
+ FileChooser.saveInLabel.textAndMnemonic=Spara i:
+ FileChooser.fileNameLabel.textAndMnemonic=Fil&namn:
+ FileChooser.folderNameLabel.textAndMnemonic=Mapp&namn:
+-FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typ:
++FileChooser.filesOfTypeLabel.textAndMnemonic=Filer av &typen:
+ FileChooser.upFolderToolTip.textAndMnemonic=Upp en niv\u00E5
+ FileChooser.upFolderAccessibleName=Upp
+ FileChooser.homeFolderToolTip.textAndMnemonic=Hem
+--- ./jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java	2013-09-06 11:28:04.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java	2014-10-28 20:19:46.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2001, 2014, 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
+@@ -82,7 +82,7 @@
+         {"Can only trace", "'methods'\u3001'method exit'\u307E\u305F\u306F'method exits'\u306E\u307F\u30C8\u30EC\u30FC\u30B9\u3067\u304D\u307E\u3059"},
+         {"cannot redefine existing connection", "{0}\u306F\u65E2\u5B58\u306E\u63A5\u7D9A\u3092\u518D\u5B9A\u7FA9\u3067\u304D\u307E\u305B\u3093"},
+         {"Cannot assign to a method invocation", "\u30E1\u30BD\u30C3\u30C9\u547C\u51FA\u3057\u306B\u5272\u5F53\u3066\u3067\u304D\u307E\u305B\u3093"},
+-        {"Cannot specify command line with connector:", "\u30B3\u30CD\u30AF\u30BF\u3067\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: {0}"},
++        {"Cannot specify command line with connector:", "\u30B3\u30CD\u30AF\u30BF\u3067\u30B3\u30DE\u30F3\u30C9\u884C\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: {0}"},
+         {"Cannot specify target vm arguments with connector:", "\u30B3\u30CD\u30AF\u30BF\u3067\u30BF\u30FC\u30B2\u30C3\u30C8VM\u5F15\u6570\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093: {0}"},
+         {"Class containing field must be specified.", "\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u542B\u3080\u30AF\u30E9\u30B9\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"},
+         {"Class:", "\u30AF\u30E9\u30B9: {0}"},
 --- ./jdk/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java	2013-09-06 11:28:04.000000000 -0700
-+++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java	2014-07-15 21:49:32.000000000 -0700
 @@ -84,7 +84,7 @@
              lastPackage = pkg;
              printClass(clazz);
@@ -58145,7 +63353,7 @@
              out.println("
"); } --- ./jdk/src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java 2013-09-06 11:28:04.000000000 -0700 -+++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java 2014-07-15 21:49:32.000000000 -0700 @@ -112,12 +112,12 @@ out.println("

Instances

"); @@ -58185,7 +63393,7 @@ out.println("References summary by type"); --- ./jdk/src/share/classes/com/sun/tools/hat/internal/server/HttpReader.java 2013-09-06 11:28:04.000000000 -0700 -+++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/HttpReader.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/HttpReader.java 2014-07-15 21:49:32.000000000 -0700 @@ -41,21 +41,17 @@ @@ -58228,7 +63436,7 @@ } --- ./jdk/src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java 2013-09-06 11:28:04.000000000 -0700 -+++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java 2014-07-15 21:49:32.000000000 -0700 @@ -102,7 +102,7 @@ int count = clazz.getInstancesCount(false); print("" + count); @@ -58248,7 +63456,7 @@ print("" + newInst + " new"); out.print(") "); --- ./jdk/src/share/classes/com/sun/tools/hat/internal/server/OQLHelp.java 2013-09-06 11:28:04.000000000 -0700 -+++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/OQLHelp.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/OQLHelp.java 2014-07-15 21:49:32.000000000 -0700 @@ -54,10 +54,7 @@ out.print((char)ch); } @@ -58262,7 +63470,7 @@ } } --- ./jdk/src/share/classes/com/sun/tools/hat/internal/server/OQLQuery.java 2013-09-06 11:28:04.000000000 -0700 -+++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/OQLQuery.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/OQLQuery.java 2014-07-15 21:49:32.000000000 -0700 @@ -32,10 +32,7 @@ package com.sun.tools.hat.internal.server; @@ -58308,7 +63516,7 @@ } --- ./jdk/src/share/classes/com/sun/tools/hat/internal/server/QueryHandler.java 2013-09-06 11:28:04.000000000 -0700 -+++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/QueryHandler.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/QueryHandler.java 2014-07-15 21:49:32.000000000 -0700 @@ -36,6 +36,7 @@ import com.sun.tools.hat.internal.model.*; @@ -58360,7 +63568,7 @@ + } } --- ./jdk/src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java 2013-09-06 11:28:04.000000000 -0700 -+++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java 2014-07-15 21:49:32.000000000 -0700 @@ -89,7 +89,7 @@ out.println("

"); printClass(clazz); @@ -58383,7 +63591,33 @@ out.println(""); out.println(map.get(clazz)); --- ./jdk/src/share/classes/com/sun/tools/jdi/resources/jdi_ja.properties 2013-09-06 11:28:05.000000000 -0700 -+++ ./jdk/src/share/classes/com/sun/tools/jdi/resources/jdi_ja.properties 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/classes/com/sun/tools/jdi/resources/jdi_ja.properties 2014-10-28 20:19:46.000000000 -0700 +@@ -5,9 +5,9 @@ + raw.command.label = \u30B3\u30DE\u30F3\u30C9 + raw.address = raw\u30B3\u30DE\u30F3\u30C9\u5B9F\u884C\u5F8C\u306B\u63A5\u7D9A\u3092\u30EA\u30B9\u30CB\u30F3\u30B0\u3059\u308B\u30A2\u30C9\u30EC\u30B9 + raw.address.label = \u30A2\u30C9\u30EC\u30B9 +-raw.quote = \u5358\u4E00\u306E\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u5F15\u6570\u5185\u306B\u30B9\u30DA\u30FC\u30B9\u3067\u533A\u5207\u3089\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u3092\u7D50\u3073\u4ED8\u3051\u308B\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u308B\u6587\u5B57 ++raw.quote = \u5358\u4E00\u306E\u30B3\u30DE\u30F3\u30C9\u884C\u5F15\u6570\u5185\u306B\u30B9\u30DA\u30FC\u30B9\u3067\u533A\u5207\u3089\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u3092\u7D50\u3073\u4ED8\u3051\u308B\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u308B\u6587\u5B57 + raw.quote.label = \u5F15\u7528\u7B26 +-raw.description = \u30E6\u30FC\u30B6\u30FC\u304C\u6307\u5B9A\u3057\u305F\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3092\u4F7F\u7528\u3057\u3066\u30BF\u30FC\u30B2\u30C3\u30C8\u3092\u8D77\u52D5\u3057\u3001\u63A5\u7D9A\u3057\u307E\u3059 ++raw.description = \u30E6\u30FC\u30B6\u30FC\u304C\u6307\u5B9A\u3057\u305F\u30B3\u30DE\u30F3\u30C9\u884C\u3092\u4F7F\u7528\u3057\u3066\u30BF\u30FC\u30B2\u30C3\u30C8\u3092\u8D77\u52D5\u3057\u3001\u63A5\u7D9A\u3057\u307E\u3059 + sun.home = SDK\u306E\u30DB\u30FC\u30E0\u30FB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u307E\u305F\u306F\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u8D77\u52D5\u306B\u4F7F\u7528\u3055\u308C\u308B\u5B9F\u884C\u74B0\u5883 + sun.home.label = \u30DB\u30FC\u30E0 + sun.options = \u8D77\u52D5\u3059\u308BVM\u306E\u30AA\u30D7\u30B7\u30E7\u30F3 +@@ -16,11 +16,11 @@ + sun.main.label = \u30E1\u30A4\u30F3 + sun.init_suspend = \u30E1\u30A4\u30F3\u306E\u5B9F\u884C\u524D\u306B\u3059\u3079\u3066\u306E\u30B9\u30EC\u30C3\u30C9\u304C\u4E2D\u65AD\u3055\u308C\u307E\u3059\u3002 + sun.init_suspend.label = \u4E2D\u65AD +-sun.quote = \u5358\u4E00\u306E\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u5F15\u6570\u5185\u306B\u30B9\u30DA\u30FC\u30B9\u3067\u533A\u5207\u3089\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u3092\u7D50\u3073\u4ED8\u3051\u308B\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u308B\u6587\u5B57 ++sun.quote = \u5358\u4E00\u306E\u30B3\u30DE\u30F3\u30C9\u884C\u5F15\u6570\u5185\u306B\u30B9\u30DA\u30FC\u30B9\u3067\u533A\u5207\u3089\u308C\u305F\u30C6\u30AD\u30B9\u30C8\u3092\u7D50\u3073\u4ED8\u3051\u308B\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u308B\u6587\u5B57 + sun.quote.label = \u5F15\u7528\u7B26 + sun.vm_exec = Java VM\u8D77\u52D5\u30C4\u30FC\u30EB\u540D + sun.vm_exec.label = \u8D77\u52D5\u30C4\u30FC\u30EB +-sun.description = Sun\u306EJava VM\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3092\u4F7F\u7528\u3057\u3066\u30BF\u30FC\u30B2\u30C3\u30C8\u3092\u8D77\u52D5\u3057\u3001\u63A5\u7D9A\u3057\u307E\u3059 ++sun.description = Sun\u306EJava VM\u30B3\u30DE\u30F3\u30C9\u884C\u3092\u4F7F\u7528\u3057\u3066\u30BF\u30FC\u30B2\u30C3\u30C8\u3092\u8D77\u52D5\u3057\u3001\u63A5\u7D9A\u3057\u307E\u3059 + generic_attaching.address = VM\u306B\u63A5\u7D9A\u3059\u308B\u30A2\u30C9\u30EC\u30B9 + generic_attaching.address.label = \u30A2\u30C9\u30EC\u30B9 + generic_attaching.timeout = \u63A5\u7D9A\u3092\u5F85\u3064\u9593\u306E\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8 @@ -47,6 +47,6 @@ memory_listening.name = VM\u3078\u306E\u63A5\u7D9A\u3092\u30EA\u30B9\u30CB\u30F3\u30B0\u3059\u308B\u305F\u3081\u306E\u5171\u6709\u30E1\u30E2\u30EA\u30FC\u9818\u57DF\u540D memory_listening.name.label = \u540D\u524D @@ -58394,7 +63628,7 @@ -process_attaching.pid.label = \u30C7\u30D0\u30C3\u30B0\u3059\u308B\u30D7\u30ED\u30BB\u30B9ID(pid) +process_attaching.pid.label = \u30C7\u30D0\u30C3\u30B0\u3059\u308B\u30D7\u30ED\u30BB\u30B9ID (pid) --- ./jdk/src/share/classes/java/awt/AWTException.java 2013-09-06 11:28:05.000000000 -0700 -+++ ./jdk/src/share/classes/java/awt/AWTException.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/awt/AWTException.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 1997, Oracle and/or its affiliates. All rights reserved. @@ -58412,7 +63646,7 @@ * @author Arthur van Hoff */ --- ./jdk/src/share/classes/java/awt/Component.java 2013-09-06 11:28:05.000000000 -0700 -+++ ./jdk/src/share/classes/java/awt/Component.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/awt/Component.java 2014-07-15 21:54:44.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved. @@ -58455,7 +63689,7 @@ focusLog.finer("clear global focus owner"); } --- ./jdk/src/share/classes/java/awt/EventQueue.java 2013-09-06 11:28:05.000000000 -0700 -+++ ./jdk/src/share/classes/java/awt/EventQueue.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/awt/EventQueue.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. @@ -58488,7 +63722,7 @@ queues[i].head = entry.next; } else { --- ./jdk/src/share/classes/java/awt/KeyboardFocusManager.java 2013-09-06 11:28:06.000000000 -0700 -+++ ./jdk/src/share/classes/java/awt/KeyboardFocusManager.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/awt/KeyboardFocusManager.java 2014-07-15 21:54:44.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. @@ -58666,7 +63900,7 @@ } } --- ./jdk/src/share/classes/java/awt/Toolkit.java 2013-09-06 11:28:06.000000000 -0700 -+++ ./jdk/src/share/classes/java/awt/Toolkit.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/awt/Toolkit.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved. @@ -58734,7 +63968,7 @@ pcs.firePropertyChange(evt); } --- ./jdk/src/share/classes/java/awt/datatransfer/DataFlavor.java 2013-09-06 11:28:06.000000000 -0700 -+++ ./jdk/src/share/classes/java/awt/datatransfer/DataFlavor.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/awt/datatransfer/DataFlavor.java 2014-07-15 21:49:32.000000000 -0700 @@ -25,12 +25,14 @@ package java.awt.datatransfer; @@ -58804,7 +64038,7 @@ /* --- ./jdk/src/share/classes/java/awt/datatransfer/SystemFlavorMap.java 2013-09-06 11:28:06.000000000 -0700 -+++ ./jdk/src/share/classes/java/awt/datatransfer/SystemFlavorMap.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/awt/datatransfer/SystemFlavorMap.java 2014-07-15 21:49:32.000000000 -0700 @@ -45,8 +45,8 @@ import java.util.List; import java.util.Map; @@ -58907,7 +64141,7 @@ try { parseAndStoreReader(flavormapURL); --- ./jdk/src/share/classes/java/awt/event/InvocationEvent.java 2013-09-06 11:28:07.000000000 -0700 -+++ ./jdk/src/share/classes/java/awt/event/InvocationEvent.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/awt/event/InvocationEvent.java 2014-07-15 21:49:32.000000000 -0700 @@ -25,6 +25,8 @@ package java.awt.event; @@ -59065,7 +64299,7 @@ * This method is useful for event-logging and for debugging. * --- ./jdk/src/share/classes/java/beans/Beans.java 2013-09-06 11:28:08.000000000 -0700 -+++ ./jdk/src/share/classes/java/beans/Beans.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/beans/Beans.java 2014-07-15 21:49:32.000000000 -0700 @@ -42,6 +42,8 @@ import java.io.ObjectStreamClass; import java.io.StreamCorruptedException; @@ -59087,7 +64321,7 @@ * Try to instantiate the class. */ --- ./jdk/src/share/classes/java/beans/DefaultPersistenceDelegate.java 2013-09-06 11:28:08.000000000 -0700 -+++ ./jdk/src/share/classes/java/beans/DefaultPersistenceDelegate.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/beans/DefaultPersistenceDelegate.java 2014-07-15 21:49:32.000000000 -0700 @@ -220,6 +220,9 @@ // Write out the properties of this instance. private void initBean(Class type, Object oldInstance, Object newInstance, Encoder out) { @@ -59099,7 +64333,7 @@ if (Modifier.isFinal(mod) || Modifier.isStatic(mod) || Modifier.isTransient(mod)) { continue; --- ./jdk/src/share/classes/java/beans/MetaData.java 2013-09-06 11:28:08.000000000 -0700 -+++ ./jdk/src/share/classes/java/beans/MetaData.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/beans/MetaData.java 2014-07-15 21:49:33.000000000 -0700 @@ -42,6 +42,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Field; @@ -59141,7 +64375,7 @@ } } --- ./jdk/src/share/classes/java/beans/ThreadGroupContext.java 2013-09-06 11:28:08.000000000 -0700 -+++ ./jdk/src/share/classes/java/beans/ThreadGroupContext.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/beans/ThreadGroupContext.java 2014-07-15 21:49:33.000000000 -0700 @@ -41,24 +41,20 @@ */ final class ThreadGroupContext { @@ -59175,7 +64409,7 @@ private volatile boolean isDesignTime; --- ./jdk/src/share/classes/java/beans/WeakIdentityMap.java 2013-09-06 11:28:08.000000000 -0700 -+++ ./jdk/src/share/classes/java/beans/WeakIdentityMap.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/beans/WeakIdentityMap.java 2014-07-15 21:49:33.000000000 -0700 @@ -33,18 +33,22 @@ * and reference-equality in place of object-equality to compare them. * An entry will automatically be removed when its key is no longer @@ -59354,7 +64588,7 @@ Entry(Object key, int hash, T value, ReferenceQueue queue, Entry next) { super(key, queue); --- ./jdk/src/share/classes/java/io/File.java 2013-09-06 11:28:09.000000000 -0700 -+++ ./jdk/src/share/classes/java/io/File.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/io/File.java 2014-07-15 21:49:33.000000000 -0700 @@ -1885,10 +1885,18 @@ } else { n = Math.abs(n); @@ -59377,7 +64611,7 @@ } } --- ./jdk/src/share/classes/java/io/ObjectInputStream.java 2013-09-06 11:28:09.000000000 -0700 -+++ ./jdk/src/share/classes/java/io/ObjectInputStream.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/io/ObjectInputStream.java 2014-07-15 21:49:33.000000000 -0700 @@ -490,11 +490,12 @@ public void defaultReadObject() throws IOException, ClassNotFoundException @@ -59419,7 +64653,7 @@ if (cl != null && obj != null && !cl.isInstance(obj)) { throw new ClassCastException(); --- ./jdk/src/share/classes/java/io/ObjectOutputStream.java 2013-09-06 11:28:09.000000000 -0700 -+++ ./jdk/src/share/classes/java/io/ObjectOutputStream.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/io/ObjectOutputStream.java 2014-10-28 20:19:46.000000000 -0700 @@ -430,11 +430,12 @@ * OutputStream */ @@ -59452,6 +64686,24 @@ curPut = new PutFieldImpl(curDesc); } return curPut; +@@ -1252,7 +1254,7 @@ + } + + bout.setBlockDataMode(true); +- if (isCustomSubclass()) { ++ if (cl != null && isCustomSubclass()) { + ReflectUtil.checkPackageAccess(cl); + } + annotateProxyClass(cl); +@@ -1281,7 +1283,7 @@ + + Class cl = desc.forClass(); + bout.setBlockDataMode(true); +- if (isCustomSubclass()) { ++ if (cl != null && isCustomSubclass()) { + ReflectUtil.checkPackageAccess(cl); + } + annotateClass(cl); @@ -1516,7 +1518,11 @@ private void defaultWriteFields(Object obj, ObjectStreamClass desc) throws IOException @@ -59466,7 +64718,7 @@ int primDataSize = desc.getPrimDataSize(); --- ./jdk/src/share/classes/java/lang/AbstractStringBuilder.java 2013-09-06 11:28:09.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/AbstractStringBuilder.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/AbstractStringBuilder.java 2014-07-15 21:49:33.000000000 -0700 @@ -1273,7 +1273,7 @@ * specified substring, starting at the specified index. The integer * returned is the smallest value k for which: @@ -59486,8 +64738,61 @@ * * If no such value of k exists, then -1 is returned. --- ./jdk/src/share/classes/java/lang/Class.java 2013-09-06 11:28:09.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/Class.java 2014-07-15 23:24:36.000000000 -0700 -@@ -1096,7 +1096,17 @@ ++++ ./jdk/src/share/classes/java/lang/Class.java 2014-10-28 20:19:46.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1994, 2014, 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 +@@ -187,8 +187,8 @@ + @CallerSensitive + public static Class forName(String className) + throws ClassNotFoundException { +- return forName0(className, true, +- ClassLoader.getClassLoader(Reflection.getCallerClass())); ++ Class caller = Reflection.getCallerClass(); ++ return forName0(className, true, ClassLoader.getClassLoader(caller), caller); + } + + +@@ -257,22 +257,27 @@ + ClassLoader loader) + throws ClassNotFoundException + { +- if (loader == null) { +- SecurityManager sm = System.getSecurityManager(); +- if (sm != null) { +- ClassLoader ccl = ClassLoader.getClassLoader(Reflection.getCallerClass()); ++ Class caller = null; ++ SecurityManager sm = System.getSecurityManager(); ++ if (sm != null) { ++ // Reflective call to get caller class is only needed if a security manager ++ // is present. Avoid the overhead of making this call otherwise. ++ caller = Reflection.getCallerClass(); ++ if (loader == null) { ++ ClassLoader ccl = ClassLoader.getClassLoader(caller); + if (ccl != null) { + sm.checkPermission( + SecurityConstants.GET_CLASSLOADER_PERMISSION); + } + } + } +- return forName0(name, initialize, loader); ++ return forName0(name, initialize, loader, caller); + } + +- /** Called after security checks have been made. */ ++ /** Called after security check for system loader access checks have been made. */ + private static native Class forName0(String name, boolean initialize, +- ClassLoader loader) ++ ClassLoader loader, ++ Class caller) + throws ClassNotFoundException; + + /** +@@ -1096,7 +1101,17 @@ * @return the declaring class for this class * @since JDK1.1 */ @@ -59506,7 +64811,7 @@ /** -@@ -2197,14 +2207,53 @@ +@@ -2197,14 +2212,53 @@ */ static native Class getPrimitiveClass(String name); @@ -59529,24 +64834,24 @@ + } + this.overrideCheckMemberAccess = overridden; + } -+ -+ } -+ -+ private static volatile SecurityManagerHelper smHelper; -+ private static boolean isCheckMemberAccessOverridden(SecurityManager sm) { -+ if (sm.getClass() == SecurityManager.class) return false; - Class[] paramTypes = new Class[] {Class.class, int.class}; - return smgr.getClass().getMethod0("checkMemberAccess", paramTypes). - getDeclaringClass() != SecurityManager.class; + } + ++ private static volatile SecurityManagerHelper smHelper; ++ private static boolean isCheckMemberAccessOverridden(SecurityManager sm) { ++ if (sm.getClass() == SecurityManager.class) return false; ++ + SecurityManagerHelper helper = smHelper; + if (helper == null || helper.sm != sm) { + helper = new SecurityManagerHelper(sm); + smHelper = helper; + } + return helper.overrideCheckMemberAccess; - } - ++ } ++ + /** + * Finds the checkMemberAccess method of the given SecurityManager class. + * @@ -59565,8 +64870,384 @@ /* * Check if client is allowed to access members. If access is denied, +@@ -2289,44 +2343,110 @@ + } + + /** ++ * Atomic operations support. ++ */ ++ private static class Atomic { ++ // initialize Unsafe machinery here, since we need to call Class.class instance method ++ // and have to avoid calling it in the static initializer of the Class class... ++ private static final Unsafe unsafe = Unsafe.getUnsafe(); ++ // offset of Class.reflectionData instance field ++ private static final long reflectionDataOffset; ++ // offset of Class.annotationType instance field ++ private static final long annotationTypeOffset; ++ ++ static { ++ Field[] fields = Class.class.getDeclaredFields0(false); // bypass caches ++ reflectionDataOffset = objectFieldOffset(fields, "reflectionData"); ++ annotationTypeOffset = objectFieldOffset(fields, "annotationType"); ++ } ++ ++ private static long objectFieldOffset(Field[] fields, String fieldName) { ++ Field field = searchFields(fields, fieldName); ++ if (field == null) { ++ throw new Error("No " + fieldName + " field found in java.lang.Class"); ++ } ++ return unsafe.objectFieldOffset(field); ++ } ++ ++ static boolean casReflectionData(Class clazz, ++ SoftReference> oldData, ++ SoftReference> newData) { ++ return unsafe.compareAndSwapObject(clazz, reflectionDataOffset, oldData, newData); ++ } ++ ++ static boolean casAnnotationType(Class clazz, ++ AnnotationType oldType, ++ AnnotationType newType) { ++ return unsafe.compareAndSwapObject(clazz, annotationTypeOffset, oldType, newType); ++ } ++ } ++ ++ /** + * Reflection support. + */ + + // Caches for certain reflective results + private static boolean useCaches = true; +- private volatile transient SoftReference declaredFields; +- private volatile transient SoftReference publicFields; +- private volatile transient SoftReference declaredMethods; +- private volatile transient SoftReference publicMethods; +- private volatile transient SoftReference[]> declaredConstructors; +- private volatile transient SoftReference[]> publicConstructors; +- // Intermediate results for getFields and getMethods +- private volatile transient SoftReference declaredPublicFields; +- private volatile transient SoftReference declaredPublicMethods; ++ ++ // reflection data that might get invalidated when JVM TI RedefineClasses() is called ++ static class ReflectionData { ++ volatile Field[] declaredFields; ++ volatile Field[] publicFields; ++ volatile Method[] declaredMethods; ++ volatile Method[] publicMethods; ++ volatile Constructor[] declaredConstructors; ++ volatile Constructor[] publicConstructors; ++ // Intermediate results for getFields and getMethods ++ volatile Field[] declaredPublicFields; ++ volatile Method[] declaredPublicMethods; ++ // Value of classRedefinedCount when we created this ReflectionData instance ++ final int redefinedCount; ++ ++ ReflectionData(int redefinedCount) { ++ this.redefinedCount = redefinedCount; ++ } ++ } ++ ++ private volatile transient SoftReference> reflectionData; + + // Incremented by the VM on each call to JVM TI RedefineClasses() + // that redefines this class or a superclass. + private volatile transient int classRedefinedCount = 0; + +- // Value of classRedefinedCount when we last cleared the cached values +- // that are sensitive to class redefinition. +- private volatile transient int lastRedefinedCount = 0; +- +- // Clears cached values that might possibly have been obsoleted by +- // a class redefinition. +- private void clearCachesOnClassRedefinition() { +- if (lastRedefinedCount != classRedefinedCount) { +- declaredFields = publicFields = declaredPublicFields = null; +- declaredMethods = publicMethods = declaredPublicMethods = null; +- declaredConstructors = publicConstructors = null; +- annotations = declaredAnnotations = null; +- +- // Use of "volatile" (and synchronization by caller in the case +- // of annotations) ensures that no thread sees the update to +- // lastRedefinedCount before seeing the caches cleared. +- // We do not guard against brief windows during which multiple +- // threads might redundantly work to fill an empty cache. +- lastRedefinedCount = classRedefinedCount; ++ // Lazily create and cache ReflectionData ++ private ReflectionData reflectionData() { ++ SoftReference> reflectionData = this.reflectionData; ++ int classRedefinedCount = this.classRedefinedCount; ++ ReflectionData rd; ++ if (useCaches && ++ reflectionData != null && ++ (rd = reflectionData.get()) != null && ++ rd.redefinedCount == classRedefinedCount) { ++ return rd; ++ } ++ // else no SoftReference or cleared SoftReference or stale ReflectionData ++ // -> create and replace new instance ++ return newReflectionData(reflectionData, classRedefinedCount); ++ } ++ ++ private ReflectionData newReflectionData(SoftReference> oldReflectionData, ++ int classRedefinedCount) { ++ if (!useCaches) return null; ++ ++ while (true) { ++ ReflectionData rd = new ReflectionData<>(classRedefinedCount); ++ // try to CAS it... ++ if (Atomic.casReflectionData(this, oldReflectionData, new SoftReference<>(rd))) { ++ return rd; ++ } ++ // else retry ++ oldReflectionData = this.reflectionData; ++ classRedefinedCount = this.classRedefinedCount; ++ if (oldReflectionData != null && ++ (rd = oldReflectionData.get()) != null && ++ rd.redefinedCount == classRedefinedCount) { ++ return rd; ++ } + } + } + +@@ -2354,7 +2474,7 @@ + } + + // Annotations handling +- private native byte[] getRawAnnotations(); ++ native byte[] getRawAnnotations(); + + native ConstantPool getConstantPool(); + +@@ -2369,27 +2489,19 @@ + // via ReflectionFactory.copyField. + private Field[] privateGetDeclaredFields(boolean publicOnly) { + checkInitted(); +- Field[] res = null; +- if (useCaches) { +- clearCachesOnClassRedefinition(); +- if (publicOnly) { +- if (declaredPublicFields != null) { +- res = declaredPublicFields.get(); +- } +- } else { +- if (declaredFields != null) { +- res = declaredFields.get(); +- } +- } ++ Field[] res; ++ ReflectionData rd = reflectionData(); ++ if (rd != null) { ++ res = publicOnly ? rd.declaredPublicFields : rd.declaredFields; + if (res != null) return res; + } + // No cached value available; request value from VM + res = Reflection.filterFields(this, getDeclaredFields0(publicOnly)); +- if (useCaches) { ++ if (rd != null) { + if (publicOnly) { +- declaredPublicFields = new SoftReference<>(res); ++ rd.declaredPublicFields = res; + } else { +- declaredFields = new SoftReference<>(res); ++ rd.declaredFields = res; + } + } + return res; +@@ -2400,12 +2512,10 @@ + // via ReflectionFactory.copyField. + private Field[] privateGetPublicFields(Set> traversedInterfaces) { + checkInitted(); +- Field[] res = null; +- if (useCaches) { +- clearCachesOnClassRedefinition(); +- if (publicFields != null) { +- res = publicFields.get(); +- } ++ Field[] res; ++ ReflectionData rd = reflectionData(); ++ if (rd != null) { ++ res = rd.publicFields; + if (res != null) return res; + } + +@@ -2438,8 +2548,8 @@ + + res = new Field[fields.size()]; + fields.toArray(res); +- if (useCaches) { +- publicFields = new SoftReference<>(res); ++ if (rd != null) { ++ rd.publicFields = res; + } + return res; + } +@@ -2462,18 +2572,10 @@ + // instead be copied via ReflectionFactory.copyConstructor. + private Constructor[] privateGetDeclaredConstructors(boolean publicOnly) { + checkInitted(); +- Constructor[] res = null; +- if (useCaches) { +- clearCachesOnClassRedefinition(); +- if (publicOnly) { +- if (publicConstructors != null) { +- res = publicConstructors.get(); +- } +- } else { +- if (declaredConstructors != null) { +- res = declaredConstructors.get(); +- } +- } ++ Constructor[] res; ++ ReflectionData rd = reflectionData(); ++ if (rd != null) { ++ res = publicOnly ? rd.publicConstructors : rd.declaredConstructors; + if (res != null) return res; + } + // No cached value available; request value from VM +@@ -2482,11 +2584,11 @@ + } else { + res = getDeclaredConstructors0(publicOnly); + } +- if (useCaches) { ++ if (rd != null) { + if (publicOnly) { +- publicConstructors = new SoftReference<>(res); ++ rd.publicConstructors = res; + } else { +- declaredConstructors = new SoftReference<>(res); ++ rd.declaredConstructors = res; + } + } + return res; +@@ -2503,27 +2605,19 @@ + // via ReflectionFactory.copyMethod. + private Method[] privateGetDeclaredMethods(boolean publicOnly) { + checkInitted(); +- Method[] res = null; +- if (useCaches) { +- clearCachesOnClassRedefinition(); +- if (publicOnly) { +- if (declaredPublicMethods != null) { +- res = declaredPublicMethods.get(); +- } +- } else { +- if (declaredMethods != null) { +- res = declaredMethods.get(); +- } +- } ++ Method[] res; ++ ReflectionData rd = reflectionData(); ++ if (rd != null) { ++ res = publicOnly ? rd.declaredPublicMethods : rd.declaredMethods; + if (res != null) return res; + } + // No cached value available; request value from VM + res = Reflection.filterMethods(this, getDeclaredMethods0(publicOnly)); +- if (useCaches) { ++ if (rd != null) { + if (publicOnly) { +- declaredPublicMethods = new SoftReference<>(res); ++ rd.declaredPublicMethods = res; + } else { +- declaredMethods = new SoftReference<>(res); ++ rd.declaredMethods = res; + } + } + return res; +@@ -2625,12 +2719,10 @@ + // via ReflectionFactory.copyMethod. + private Method[] privateGetPublicMethods() { + checkInitted(); +- Method[] res = null; +- if (useCaches) { +- clearCachesOnClassRedefinition(); +- if (publicMethods != null) { +- res = publicMethods.get(); +- } ++ Method[] res; ++ ReflectionData rd = reflectionData(); ++ if (rd != null) { ++ res = rd.publicMethods; + if (res != null) return res; + } + +@@ -2678,8 +2770,8 @@ + methods.addAllIfNotPresent(inheritedMethods); + methods.compactAndTrim(); + res = methods.getArray(); +- if (useCaches) { +- publicMethods = new SoftReference<>(res); ++ if (rd != null) { ++ rd.publicMethods = res; + } + return res; + } +@@ -2689,7 +2781,7 @@ + // Helpers for fetchers of one field, method, or constructor + // + +- private Field searchFields(Field[] fields, String name) { ++ private static Field searchFields(Field[] fields, String name) { + String internedName = name.intern(); + for (int i = 0; i < fields.length; i++) { + if (fields[i].getName() == internedName) { +@@ -2707,7 +2799,7 @@ + // of Field objects which have to be created for the common + // case where the field being requested is declared in the + // class which is being queried. +- Field res = null; ++ Field res; + // Search declared public fields + if ((res = searchFields(privateGetDeclaredFields(true), name)) != null) { + return res; +@@ -2759,7 +2851,7 @@ + // number of Method objects which have to be created for the + // common case where the method being requested is declared in + // the class which is being queried. +- Method res = null; ++ Method res; + // Search declared public methods + if ((res = searchMethods(privateGetDeclaredMethods(true), + name, +@@ -3160,9 +3252,20 @@ + // Annotations cache + private transient Map, Annotation> annotations; + private transient Map, Annotation> declaredAnnotations; ++ // Value of classRedefinedCount when we last cleared the cached annotations and declaredAnnotations fields ++ private transient int lastAnnotationsRedefinedCount = 0; ++ ++ // Clears cached values that might possibly have been obsoleted by ++ // a class redefinition. ++ private void clearAnnotationCachesOnClassRedefinition() { ++ if (lastAnnotationsRedefinedCount != classRedefinedCount) { ++ annotations = declaredAnnotations = null; ++ lastAnnotationsRedefinedCount = classRedefinedCount; ++ } ++ } + + private synchronized void initAnnotationsIfNecessary() { +- clearCachesOnClassRedefinition(); ++ clearAnnotationCachesOnClassRedefinition(); + if (annotations != null) + return; + declaredAnnotations = AnnotationParser.parseAnnotations( +@@ -3184,10 +3287,11 @@ + + // Annotation types cache their internal (AnnotationType) form + +- private AnnotationType annotationType; ++ @SuppressWarnings("UnusedDeclaration") ++ private volatile transient AnnotationType annotationType; + +- void setAnnotationType(AnnotationType type) { +- annotationType = type; ++ boolean casAnnotationType(AnnotationType oldType, AnnotationType newType) { ++ return Atomic.casAnnotationType(this, oldType, newType); + } + + AnnotationType getAnnotationType() { --- ./jdk/src/share/classes/java/lang/ClassLoader.java 2013-09-06 11:28:09.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/ClassLoader.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/ClassLoader.java 2014-07-15 21:49:33.000000000 -0700 @@ -58,6 +58,7 @@ import sun.misc.VM; import sun.reflect.CallerSensitive; @@ -59590,7 +65271,7 @@ final int i = name.lastIndexOf('.'); if (i != -1) { --- ./jdk/src/share/classes/java/lang/ConditionalSpecialCasing.java 2013-09-06 11:28:09.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/ConditionalSpecialCasing.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/ConditionalSpecialCasing.java 2014-07-15 21:49:33.000000000 -0700 @@ -74,7 +74,6 @@ new Entry(0x00CC, new char[]{0x0069, 0x0307, 0x0300}, new char[]{0x00CC}, "lt", 0), // # LATIN CAPITAL LETTER I WITH GRAVE new Entry(0x00CD, new char[]{0x0069, 0x0307, 0x0301}, new char[]{0x00CD}, "lt", 0), // # LATIN CAPITAL LETTER I WITH ACUTE @@ -59612,7 +65293,7 @@ // A hash table that contains the above entries --- ./jdk/src/share/classes/java/lang/ProcessBuilder.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/ProcessBuilder.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/ProcessBuilder.java 2014-07-15 21:54:44.000000000 -0700 @@ -1018,6 +1018,12 @@ String dir = directory == null ? null : directory.toString(); @@ -59627,7 +65308,7 @@ return ProcessImpl.start(cmdarray, environment, --- ./jdk/src/share/classes/java/lang/SecurityManager.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/SecurityManager.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/SecurityManager.java 2014-07-15 21:49:33.000000000 -0700 @@ -1131,12 +1131,8 @@ * @see #checkPermission(java.security.Permission) checkPermission */ @@ -59644,7 +65325,7 @@ /** --- ./jdk/src/share/classes/java/lang/String.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/String.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/String.java 2014-07-15 21:49:33.000000000 -0700 @@ -2461,21 +2461,14 @@ } if (localeDependent || srcChar == '\u03A3') { // GREEK CAPITAL LETTER SIGMA @@ -59670,7 +65351,14 @@ resultOffset += Character.toChars(lowerChar, result, i + resultOffset) - srcCount; continue; --- ./jdk/src/share/classes/java/lang/System.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/System.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/System.java 2014-10-28 20:19:46.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1994, 2014, 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 @@ -25,6 +25,7 @@ package java.lang; @@ -59679,7 +65367,25 @@ import java.util.Properties; import java.util.PropertyPermission; import java.util.StringTokenizer; -@@ -1202,6 +1203,12 @@ +@@ -1177,12 +1178,15 @@ + public sun.reflect.ConstantPool getConstantPool(Class klass) { + return klass.getConstantPool(); + } +- public void setAnnotationType(Class klass, AnnotationType type) { +- klass.setAnnotationType(type); ++ public boolean casAnnotationType(Class klass, AnnotationType oldType, AnnotationType newType) { ++ return klass.casAnnotationType(oldType, newType); + } + public AnnotationType getAnnotationType(Class klass) { + return klass.getAnnotationType(); + } ++ public byte[] getRawClassAnnotations(Class klass) { ++ return klass.getRawAnnotations(); ++ } + public > + E[] getEnumConstantsShared(Class klass) { + return klass.getEnumConstantsShared(); +@@ -1202,6 +1206,12 @@ public int getStringHash32(String string) { return string.hash32(); } @@ -59693,7 +65399,7 @@ } } --- ./jdk/src/share/classes/java/lang/Thread.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/Thread.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/Thread.java 2014-07-15 21:49:33.000000000 -0700 @@ -341,6 +341,15 @@ } @@ -59760,7 +65466,7 @@ * effect as {@linkplain #Thread(ThreadGroup,Runnable,String) Thread} * {@code (group, target, gname)} ,where {@code gname} is a newly generated --- ./jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/invoke/BoundMethodHandle.java 2014-07-15 21:49:33.000000000 -0700 @@ -140,7 +140,7 @@ * Return the {@link SpeciesData} instance representing this BMH species. All subclasses must provide a * static field containing this value, and they must accordingly implement this method. @@ -59985,7 +65691,7 @@ mv.visitLdcInsn(types); mv.visitLdcInsn(Type.getObjectType(className)); --- ./jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/invoke/DirectMethodHandle.java 2014-07-15 21:54:44.000000000 -0700 @@ -53,7 +53,8 @@ if (!member.isResolved()) throw new InternalError(); @@ -60144,7 +65850,7 @@ } } --- ./jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java 2014-10-28 20:19:46.000000000 -0700 @@ -289,8 +289,9 @@ * Set up class file generation. */ @@ -60169,8 +65875,21 @@ if (!member.isPrivate() && VerifyAccess.isSamePackage(MethodHandle.class, cls)) return true; // in java.lang.invoke package if (member.isPublic() && isStaticallyNameable(cls)) +@@ -654,6 +661,12 @@ + refKind = REF_invokeVirtual; + } + ++ if (member.getDeclaringClass().isInterface() && refKind == REF_invokeVirtual) { ++ // Methods from Object declared in an interface can be resolved by JVM to invokevirtual kind. ++ // Need to convert it back to invokeinterface to pass verification and make the invocation works as expected. ++ refKind = REF_invokeInterface; ++ } ++ + // push arguments + for (int i = 0; i < name.arguments.length; i++) { + emitPushArgument(name, i); --- ./jdk/src/share/classes/java/lang/invoke/Invokers.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/invoke/Invokers.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/invoke/Invokers.java 2014-07-15 21:54:44.000000000 -0700 @@ -318,6 +318,7 @@ // let mt=TYPEOF(a*:R), tmh=asType(mh, mt); // tmh.invokeBasic(a*) @@ -60180,7 +65899,7 @@ } else { names[CHECK_TYPE] = new Name(NF_checkGenericType, names[CALL_MH], mtypeArg); --- ./jdk/src/share/classes/java/lang/invoke/MethodHandle.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/invoke/MethodHandle.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/invoke/MethodHandle.java 2014-10-28 20:19:47.000000000 -0700 @@ -753,6 +753,10 @@ * to the target method handle. * (The array may also be null when zero elements are required.) @@ -60205,8 +65924,17 @@ // spread both arguments from a String array: MethodHandle eq2s = equals.asSpreader(String[].class, 2); assert( (boolean) eq2s.invokeExact(new String[]{ "me", "me" })); +@@ -1250,8 +1260,6 @@ + /*non-public*/ + MethodHandle viewAsType(MethodType newType) { + // No actual conversions, just a new view of the same method. +- if (!type.isViewableAs(newType)) +- throw new InternalError(); + return MethodHandleImpl.makePairwiseConvert(this, newType, 0); + } + --- ./jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/invoke/MethodHandleImpl.java 2014-07-15 21:54:44.000000000 -0700 @@ -430,7 +430,7 @@ // Spread the array. MethodHandle aload = MethodHandles.arrayElementGetter(spreadArgType); @@ -60277,7 +66005,7 @@ } --- ./jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/invoke/MethodHandleNatives.java 2014-07-15 21:49:33.000000000 -0700 @@ -456,6 +456,7 @@ case "getDeclaredField": case "getDeclaredMethod": @@ -60295,7 +66023,7 @@ case "newProxyInstance": return defc == java.lang.reflect.Proxy.class; --- ./jdk/src/share/classes/java/lang/invoke/MethodHandles.java 2013-09-06 11:28:10.000000000 -0700 -+++ ./jdk/src/share/classes/java/lang/invoke/MethodHandles.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/java/lang/invoke/MethodHandles.java 2014-10-28 20:19:47.000000000 -0700 @@ -26,12 +26,15 @@ package java.lang.invoke; @@ -60536,18 +66264,39 @@ /** * Find my trustable caller class if m is a caller sensitive method. * If this lookup object has private access, then the caller class is the lookupClass. -@@ -1146,6 +1268,10 @@ +@@ -1146,6 +1268,31 @@ int allowedModes = this.allowedModes; if (allowedModes == TRUSTED) return; int mods = m.getModifiers(); -+ if (Modifier.isProtected(mods) && refKind == REF_newInvokeSpecial) { -+ // cannot "new" a protected ctor in a different package -+ mods ^= Modifier.PROTECTED; ++ if (Modifier.isProtected(mods)) { ++ if (refKind == REF_invokeVirtual && ++ m.getDeclaringClass() == Object.class && ++ m.getName().equals("clone") && ++ refc.isArray()) { ++ // The JVM does this hack also. ++ // (See ClassVerifier::verify_invoke_instructions ++ // and LinkResolver::check_method_accessability.) ++ // Because the JVM does not allow separate methods on array types, ++ // there is no separate method for int[].clone. ++ // All arrays simply inherit Object.clone. ++ // But for access checking logic, we make Object.clone ++ // (normally protected) appear to be public. ++ // Later on, when the DirectMethodHandle is created, ++ // its leading argument will be restricted to the ++ // requested array type. ++ // N.B. The return type is not adjusted, because ++ // that is *not* the bytecode behavior. ++ mods ^= Modifier.PROTECTED | Modifier.PUBLIC; ++ } ++ if (refKind == REF_newInvokeSpecial) { ++ // cannot "new" a protected ctor in a different package ++ mods ^= Modifier.PROTECTED; ++ } + } if (Modifier.isFinal(mods) && MethodHandleNatives.refKindIsSetter(refKind)) throw m.makeAccessException("unexpected set of a final field", this); -@@ -1316,6 +1442,10 @@ +@@ -1316,6 +1463,10 @@ : resolveOrFail(refKind, defc, name, (Class) type); return getDirectField(refKind, defc, field); } else if (MethodHandleNatives.refKindIsMethod(refKind)) { @@ -60558,7 +66307,7 @@ MemberName method = (resolved != null) ? resolved : resolveOrFail(refKind, defc, name, (MethodType) type); return getDirectMethod(refKind, defc, method, lookupClass); -@@ -1386,6 +1516,9 @@ +@@ -1386,6 +1537,9 @@ *

* Before invoking its target, the invoker will spread the final array, apply * reference casts as necessary, and unbox and widen primitive arguments. @@ -60568,7 +66317,7 @@ *

* This method is equivalent to the following code (though it may be more efficient): *

-@@ -1603,6 +1736,7 @@
+@@ -1603,6 +1757,7 @@
       */
      public static
      MethodHandle permuteArguments(MethodHandle target, MethodType newType, int... reorder) {
@@ -60576,7 +66325,7 @@
          checkReorder(reorder, newType, target.type());
          return target.permuteArguments(newType, reorder);
      }
-@@ -1797,6 +1931,7 @@
+@@ -1797,6 +1952,7 @@
              throw newIllegalArgumentException("no argument type to remove");
          ArrayList> ptypes = new ArrayList<>(oldType.parameterList());
          ptypes.addAll(pos, valueTypes);
@@ -60584,8 +66333,19 @@
          MethodType newType = MethodType.methodType(oldType.returnType(), ptypes);
          return target.dropArguments(newType, pos, dropped);
      }
+--- ./jdk/src/share/classes/java/lang/invoke/MethodType.java	2013-09-06 11:28:10.000000000 -0700
++++ ./jdk/src/share/classes/java/lang/invoke/MethodType.java	2014-10-28 20:19:47.000000000 -0700
+@@ -628,7 +628,7 @@
+      * @return the parameter types (as an immutable list)
+      */
+     public List> parameterList() {
+-        return Collections.unmodifiableList(Arrays.asList(ptypes));
++        return Collections.unmodifiableList(Arrays.asList(ptypes.clone()));
+     }
+ 
+     /*non-public*/ Class lastParameterType() {
 --- ./jdk/src/share/classes/java/lang/ref/Finalizer.java	2013-09-06 11:28:10.000000000 -0700
-+++ ./jdk/src/share/classes/java/lang/ref/Finalizer.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/lang/ref/Finalizer.java	2014-07-15 21:49:33.000000000 -0700
 @@ -27,17 +27,14 @@
  
  import java.security.PrivilegedAction;
@@ -60704,7 +66464,7 @@
              }
          }
 --- ./jdk/src/share/classes/java/lang/reflect/Proxy.java	2013-09-06 11:28:11.000000000 -0700
-+++ ./jdk/src/share/classes/java/lang/reflect/Proxy.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/lang/reflect/Proxy.java	2014-07-15 21:54:44.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -61244,7 +67004,7 @@
  
      private static native Class defineClass0(ClassLoader loader, String name,
 --- ./jdk/src/share/classes/java/lang/reflect/WeakCache.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/src/share/classes/java/lang/reflect/WeakCache.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/lang/reflect/WeakCache.java	2014-07-15 21:49:33.000000000 -0700
 @@ -0,0 +1,393 @@
 +/*
 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -61639,8 +67399,139 @@
 +        }
 +    }
 +}
+--- ./jdk/src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java	2013-09-06 11:28:11.000000000 -0700
++++ ./jdk/src/share/classes/java/net/AbstractPlainDatagramSocketImpl.java	2014-10-28 20:19:47.000000000 -0700
+@@ -70,6 +70,7 @@
+     static {
+         java.security.AccessController.doPrivileged(
+                   new sun.security.action.LoadLibraryAction("net"));
++        init();
+     }
+ 
+     /**
+@@ -362,4 +363,7 @@
+     protected boolean nativeConnectDisabled() {
+         return connectDisabled;
+     }
++
++    native int dataAvailable();
++    private static native void init();
+ }
+--- ./jdk/src/share/classes/java/net/DatagramSocket.java	2013-09-06 11:28:11.000000000 -0700
++++ ./jdk/src/share/classes/java/net/DatagramSocket.java	2014-10-28 20:19:47.000000000 -0700
+@@ -85,6 +85,17 @@
+      */
+     boolean oldImpl = false;
+ 
++    /**
++     * Set when a socket is ST_CONNECTED until we are certain
++     * that any packets which might have been received prior
++     * to calling connect() but not read by the application
++     * have been read. During this time we check the source
++     * address of all packets received to be sure they are from
++     * the connected destination. Other packets are read but
++     * silently dropped.
++     */
++    private boolean explicitFilter = false;
++    private int bytesLeftToFilter;
+     /*
+      * Connection state:
+      * ST_NOT_CONNECTED = socket not connected
+@@ -144,6 +155,15 @@
+ 
+                 // socket is now connected by the impl
+                 connectState = ST_CONNECTED;
++                // Do we need to filter some packets?
++                int avail = getImpl().dataAvailable();
++                if (avail == -1) {
++                    throw new SocketException();
++                }
++                explicitFilter = avail > 0;
++                if (explicitFilter) {
++                    bytesLeftToFilter = getReceiveBufferSize();
++                }
+             } catch (SocketException se) {
+ 
+                 // connection will be emulated by DatagramSocket
+@@ -494,6 +514,7 @@
+             connectedAddress = null;
+             connectedPort = -1;
+             connectState = ST_NOT_CONNECTED;
++            explicitFilter = false;
+         }
+     }
+ 
+@@ -752,10 +773,13 @@
+                     } // end of while
+                 }
+             }
+-            if (connectState == ST_CONNECTED_NO_IMPL) {
++            DatagramPacket tmp = null;
++            if ((connectState == ST_CONNECTED_NO_IMPL) || explicitFilter) {
+                 // We have to do the filtering the old fashioned way since
+                 // the native impl doesn't support connect or the connect
+-                // via the impl failed.
++                // via the impl failed, or .. "explicitFilter" may be set when
++                // a socket is connected via the impl, for a period of time
++                // when packets from other sources might be queued on socket.
+                 boolean stop = false;
+                 while (!stop) {
+                     InetAddress peekAddress = null;
+@@ -774,8 +798,14 @@
+                     if ((!connectedAddress.equals(peekAddress)) ||
+                         (connectedPort != peekPort)) {
+                         // throw the packet away and silently continue
+-                        DatagramPacket tmp = new DatagramPacket(new byte[1], 1);
++                        tmp = new DatagramPacket(
++                                                new byte[1024], 1024);
+                         getImpl().receive(tmp);
++                        if (explicitFilter) {
++                            if (checkFiltering(tmp)) {
++                                stop = true;
++                            }
++                        }
+                     } else {
+                         stop = true;
+                     }
+@@ -784,7 +814,21 @@
+             // If the security check succeeds, or the datagram is
+             // connected then receive the packet
+             getImpl().receive(p);
++            if (explicitFilter && tmp == null) {
++                // packet was not filtered, account for it here
++                checkFiltering(p);
++            }
++        }
++    }
++
++    // Update the filter information and return true if finished
++    private boolean checkFiltering(DatagramPacket p) throws SocketException {
++        bytesLeftToFilter -= p.getLength();
++        if (bytesLeftToFilter <= 0 || getImpl().dataAvailable() <= 0) {
++            explicitFilter = false;
++            return true;
+         }
++        return false;
+     }
+ 
+     /**
+--- ./jdk/src/share/classes/java/net/DatagramSocketImpl.java	2013-09-06 11:28:11.000000000 -0700
++++ ./jdk/src/share/classes/java/net/DatagramSocketImpl.java	2014-10-28 20:19:47.000000000 -0700
+@@ -47,6 +47,12 @@
+      */
+     protected FileDescriptor fd;
+ 
++    int dataAvailable() {
++        // default impl returns zero, which disables the calling
++        // functionality
++        return 0;
++    }
++
+     /**
+      * Creates a datagram socket.
+      * @exception SocketException if there is an error in the
 --- ./jdk/src/share/classes/java/net/IDN.java	2013-09-06 11:28:11.000000000 -0700
-+++ ./jdk/src/share/classes/java/net/IDN.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/net/IDN.java	2014-07-15 21:49:33.000000000 -0700
 @@ -271,13 +271,17 @@
          if (useSTD3ASCIIRules) {
              for (int i = 0; i < dest.length(); i++) {
@@ -61703,7 +67594,7 @@
      // search dots in a string and return the index of that character;
      // or if there is no dots, return the length of input string
 --- ./jdk/src/share/classes/java/net/Inet6Address.java	2013-09-06 11:28:11.000000000 -0700
-+++ ./jdk/src/share/classes/java/net/Inet6Address.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/net/Inet6Address.java	2014-07-15 21:49:33.000000000 -0700
 @@ -26,6 +26,8 @@
  package java.net;
  
@@ -62420,7 +68311,7 @@
 -    }
  }
 --- ./jdk/src/share/classes/java/net/InetAddress.java	2013-09-06 11:28:11.000000000 -0700
-+++ ./jdk/src/share/classes/java/net/InetAddress.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/net/InetAddress.java	2014-07-15 21:49:33.000000000 -0700
 @@ -213,6 +213,13 @@
              this.family = family;
          }
@@ -62444,7 +68335,7 @@
  }
  
 --- ./jdk/src/share/classes/java/net/Socket.java	2013-09-06 11:28:11.000000000 -0700
-+++ ./jdk/src/share/classes/java/net/Socket.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/net/Socket.java	2014-07-15 21:49:33.000000000 -0700
 @@ -624,6 +624,10 @@
          InetAddress addr = epoint.getAddress();
          int port = epoint.getPort();
@@ -62457,7 +68348,7 @@
          bound = true;
      }
 --- ./jdk/src/share/classes/java/net/SocketPermission.java	2013-09-06 11:28:11.000000000 -0700
-+++ ./jdk/src/share/classes/java/net/SocketPermission.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/net/SocketPermission.java	2014-07-15 21:49:28.000000000 -0700
 @@ -34,6 +34,9 @@
  import java.net.InetAddress;
  import java.security.Permission;
@@ -62617,7 +68508,7 @@
      public String toString()
      {
 --- ./jdk/src/share/classes/java/nio/charset/Charset.java	2013-09-06 11:28:12.000000000 -0700
-+++ ./jdk/src/share/classes/java/nio/charset/Charset.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/nio/charset/Charset.java	2014-07-15 21:49:28.000000000 -0700
 @@ -426,39 +426,32 @@
      }
  
@@ -62692,7 +68583,7 @@
                          CharsetProvider cp = (CharsetProvider)i.next();
                          put(cp.charsets(), m);
 --- ./jdk/src/share/classes/java/nio/file/Files.java	2013-09-06 11:28:12.000000000 -0700
-+++ ./jdk/src/share/classes/java/nio/file/Files.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/nio/file/Files.java	2014-07-15 21:49:28.000000000 -0700
 @@ -28,6 +28,8 @@
  import java.nio.file.attribute.*;
  import java.nio.file.spi.FileSystemProvider;
@@ -62807,8 +68698,41 @@
          }
      }
  
+--- ./jdk/src/share/classes/java/security/DigestOutputStream.java	2013-09-06 11:28:13.000000000 -0700
++++ ./jdk/src/share/classes/java/security/DigestOutputStream.java	2014-10-28 20:19:47.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1996, 2014, 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
+@@ -112,10 +112,10 @@
+      * @see MessageDigest#update(byte)
+      */
+     public void write(int b) throws IOException {
++        out.write(b);
+         if (on) {
+             digest.update((byte)b);
+         }
+-        out.write(b);
+     }
+ 
+     /**
+@@ -142,10 +142,10 @@
+      * @see MessageDigest#update(byte[], int, int)
+      */
+     public void write(byte[] b, int off, int len) throws IOException {
++        out.write(b, off, len);
+         if (on) {
+             digest.update(b, off, len);
+         }
+-        out.write(b, off, len);
+     }
+ 
+     /**
 --- ./jdk/src/share/classes/java/security/Provider.java	2013-09-06 11:28:13.000000000 -0700
-+++ ./jdk/src/share/classes/java/security/Provider.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/security/Provider.java	2014-07-15 21:54:44.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -62904,8 +68828,95 @@
                  + argClass.getName() + " found in class " + className);
          }
  
+--- ./jdk/src/share/classes/java/security/Signature.java	2013-09-06 11:28:13.000000000 -0700
++++ ./jdk/src/share/classes/java/security/Signature.java	2014-10-28 20:19:47.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1996, 2014, 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
+@@ -589,6 +589,9 @@
+         if (outbuf == null) {
+             throw new IllegalArgumentException("No output buffer given");
+         }
++        if (offset < 0 || len < 0) {
++            throw new IllegalArgumentException("offset or len is less than 0");
++        }
+         if (outbuf.length - offset < len) {
+             throw new IllegalArgumentException
+                 ("Output buffer too small for specified offset and length");
+@@ -657,9 +660,16 @@
+     public final boolean verify(byte[] signature, int offset, int length)
+         throws SignatureException {
+         if (state == VERIFY) {
+-            if ((signature == null) || (offset < 0) || (length < 0) ||
+-                (length > signature.length - offset)) {
+-                throw new IllegalArgumentException("Bad arguments");
++            if (signature == null) {
++                throw new IllegalArgumentException("signature is null");
++            }
++            if (offset < 0 || length < 0) {
++                throw new IllegalArgumentException
++                    ("offset or length is less than 0");
++            }
++            if (signature.length - offset < length) {
++                throw new IllegalArgumentException
++                    ("signature too small for specified offset and length");
+             }
+ 
+             return engineVerify(signature, offset, length);
+@@ -712,6 +722,16 @@
+     public final void update(byte[] data, int off, int len)
+             throws SignatureException {
+         if (state == SIGN || state == VERIFY) {
++            if (data == null) {
++                throw new IllegalArgumentException("data is null");
++            }
++            if (off < 0 || len < 0) {
++                throw new IllegalArgumentException("off or len is less than 0");
++            }
++            if (data.length - off < len) {
++                throw new IllegalArgumentException
++                    ("data too small for specified offset and length");
++            }
+             engineUpdate(data, off, len);
+         } else {
+             throw new SignatureException("object not initialized for "
+--- ./jdk/src/share/classes/java/security/cert/CertificateRevokedException.java	2013-09-06 11:28:14.000000000 -0700
++++ ./jdk/src/share/classes/java/security/cert/CertificateRevokedException.java	2014-10-28 20:19:47.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2007, 2014, 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
+@@ -95,7 +95,10 @@
+         this.revocationDate = new Date(revocationDate.getTime());
+         this.reason = reason;
+         this.authority = authority;
+-        this.extensions = new HashMap(extensions);
++        // make sure Map only contains correct types
++        this.extensions = Collections.checkedMap(new HashMap(),
++                                                 String.class, Extension.class);
++        this.extensions.putAll(extensions);
+     }
+ 
+     /**
+@@ -174,7 +177,8 @@
+     public String getMessage() {
+         return "Certificate has been revoked, reason: "
+                + reason + ", revocation date: " + revocationDate
+-               + ", authority: " + authority + ", extensions: " + extensions;
++               + ", authority: " + authority + ", extension OIDs: "
++               + extensions.keySet();
+     }
+ 
+     /**
 --- ./jdk/src/share/classes/java/util/ComparableTimSort.java	2013-09-06 11:28:15.000000000 -0700
-+++ ./jdk/src/share/classes/java/util/ComparableTimSort.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/util/ComparableTimSort.java	2014-07-15 21:49:28.000000000 -0700
 @@ -131,7 +131,7 @@
           */
          int stackLen = (len <    120  ?  5 :
@@ -62916,7 +68927,7 @@
          runLen = new int[stackLen];
      }
 --- ./jdk/src/share/classes/java/util/HashMap.java	2013-09-06 11:28:15.000000000 -0700
-+++ ./jdk/src/share/classes/java/util/HashMap.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/util/HashMap.java	2014-07-15 21:49:28.000000000 -0700
 @@ -300,13 +300,9 @@
  
      private static int roundUpToPowerOf2(int number) {
@@ -62933,8 +68944,50 @@
      }
  
      /**
+--- ./jdk/src/share/classes/java/util/ResourceBundle.java	2013-09-06 11:28:15.000000000 -0700
++++ ./jdk/src/share/classes/java/util/ResourceBundle.java	2014-10-28 20:19:47.000000000 -0700
+@@ -2577,7 +2577,10 @@
+                 } catch (ClassNotFoundException e) {
+                 }
+             } else if (format.equals("java.properties")) {
+-                final String resourceName = toResourceName(bundleName, "properties");
++                final String resourceName = toResourceName0(bundleName, "properties");
++                if (resourceName == null) {
++                    return bundle;
++                }
+                 final ClassLoader classLoader = loader;
+                 final boolean reloadFlag = reload;
+                 InputStream stream = null;
+@@ -2731,7 +2734,10 @@
+             }
+             boolean result = false;
+             try {
+-                String resourceName = toResourceName(toBundleName(baseName, locale), format);
++                String resourceName = toResourceName0(toBundleName(baseName, locale), format);
++                if (resourceName == null) {
++                    return result;
++                }
+                 URL url = loader.getResource(resourceName);
+                 if (url != null) {
+                     long lastModified = 0;
+@@ -2865,6 +2871,15 @@
+             sb.append(bundleName.replace('.', '/')).append('.').append(suffix);
+             return sb.toString();
+         }
++
++        private String toResourceName0(String bundleName, String suffix) {
++            // application protocol check
++            if (bundleName.contains("://")) {
++                return null;
++            } else {
++                return toResourceName(bundleName, suffix);
++            }
++        }
+     }
+ 
+     private static class SingleFormatControl extends Control {
 --- ./jdk/src/share/classes/java/util/ServiceLoader.java	2013-09-06 11:28:15.000000000 -0700
-+++ ./jdk/src/share/classes/java/util/ServiceLoader.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/util/ServiceLoader.java	2014-07-15 21:49:28.000000000 -0700
 @@ -375,7 +375,7 @@
                  return p;
              } catch (Throwable x) {
@@ -62945,7 +68998,7 @@
              }
              throw new Error();          // This cannot happen
 --- ./jdk/src/share/classes/java/util/TimSort.java	2013-09-06 11:28:15.000000000 -0700
-+++ ./jdk/src/share/classes/java/util/TimSort.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/util/TimSort.java	2014-07-15 21:49:28.000000000 -0700
 @@ -158,7 +158,7 @@
           */
          int stackLen = (len <    120  ?  5 :
@@ -62956,7 +69009,7 @@
          runLen = new int[stackLen];
      }
 --- ./jdk/src/share/classes/java/util/TimeZone.java	2013-09-06 11:28:15.000000000 -0700
-+++ ./jdk/src/share/classes/java/util/TimeZone.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/util/TimeZone.java	2014-10-28 20:19:52.000000000 -0700
 @@ -165,6 +165,11 @@
      // Proclaim serialization compatibility with JDK 1.1
      static final long serialVersionUID = 3581463369166924961L;
@@ -63061,7 +69114,7 @@
          return zi;
      }
 --- ./jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java	2013-09-06 11:28:16.000000000 -0700
-+++ ./jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java	2014-07-15 21:54:44.000000000 -0700
 @@ -221,6 +221,8 @@
  
              if (vclass != fieldClass)
@@ -63072,7 +69125,7 @@
              if (!Modifier.isVolatile(modifiers))
                  throw new IllegalArgumentException("Must be volatile type");
 --- ./jdk/src/share/classes/java/util/jar/JarFile.java	2013-09-06 11:28:16.000000000 -0700
-+++ ./jdk/src/share/classes/java/util/jar/JarFile.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/util/jar/JarFile.java	2014-07-15 21:49:28.000000000 -0700
 @@ -38,6 +38,7 @@
  import sun.security.action.GetPropertyAction;
  import sun.security.util.ManifestEntryVerifier;
@@ -63101,7 +69154,7 @@
                              mev = new ManifestEntryVerifier
                                  (getManifestFromReference());
 --- ./jdk/src/share/classes/java/util/jar/JarVerifier.java	2013-09-06 11:28:16.000000000 -0700
-+++ ./jdk/src/share/classes/java/util/jar/JarVerifier.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/util/jar/JarVerifier.java	2014-07-15 21:49:28.000000000 -0700
 @@ -32,6 +32,7 @@
  import java.security.cert.CertificateException;
  import java.util.zip.ZipEntry;
@@ -63180,7 +69233,7 @@
  
      private Enumeration unsignedEntryNames(JarFile jar) {
 --- ./jdk/src/share/classes/java/util/logging/Level.java	2013-09-06 11:28:16.000000000 -0700
-+++ ./jdk/src/share/classes/java/util/logging/Level.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/util/logging/Level.java	2014-07-15 21:49:28.000000000 -0700
 @@ -27,6 +27,7 @@
  import java.util.ArrayList;
  import java.util.HashMap;
@@ -63317,7 +69370,7 @@
          return this.value;
      }
 --- ./jdk/src/share/classes/java/util/logging/LogManager.java	2013-09-06 11:28:16.000000000 -0700
-+++ ./jdk/src/share/classes/java/util/logging/LogManager.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/util/logging/LogManager.java	2014-07-15 21:49:28.000000000 -0700
 @@ -149,7 +149,15 @@
      // The global LogManager object
      private static LogManager manager;
@@ -63603,8 +69656,32 @@
          }
      }
  
+--- ./jdk/src/share/classes/java/util/logging/LogRecord.java	2013-09-06 11:28:16.000000000 -0700
++++ ./jdk/src/share/classes/java/util/logging/LogRecord.java	2014-10-28 20:19:47.000000000 -0700
+@@ -510,7 +510,13 @@
+         // If necessary, try to regenerate the resource bundle.
+         if (resourceBundleName != null) {
+             try {
+-                resourceBundle = ResourceBundle.getBundle(resourceBundleName);
++                // use system class loader to ensure the ResourceBundle
++                // instance is a different instance than null loader uses
++                final ResourceBundle bundle =
++                        ResourceBundle.getBundle(resourceBundleName,
++                                Locale.getDefault(),
++                                ClassLoader.getSystemClassLoader());
++                resourceBundle = bundle;
+             } catch (MissingResourceException ex) {
+                 // This is not a good place to throw an exception,
+                 // so we simply leave the resourceBundle null.
 --- ./jdk/src/share/classes/java/util/logging/Logger.java	2013-09-06 11:28:16.000000000 -0700
-+++ ./jdk/src/share/classes/java/util/logging/Logger.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/java/util/logging/Logger.java	2014-10-28 20:19:47.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2000, 2014, 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
 @@ -174,11 +174,11 @@
  public class Logger {
      private static final Handler emptyHandlers[] = new Handler[0];
@@ -63707,7 +69784,17 @@
          return handlers.toArray(emptyHandlers);
      }
  
-@@ -1557,6 +1573,9 @@
+@@ -1510,6 +1526,9 @@
+         }
+ 
+         setCallersClassLoaderRef(callersClass);
++        if (isSystemLogger && getCallersClassLoader() != null) {
++            checkPermission();
++        }
+         if (findResourceBundle(name, true) == null) {
+             // We've failed to find an expected ResourceBundle.
+             // unset the caller's ClassLoader since we were unable to find the
+@@ -1557,6 +1576,9 @@
          if (parent == null) {
              throw new NullPointerException();
          }
@@ -63717,13 +69804,15 @@
          manager.checkPermission();
          doSetParent(parent);
      }
-@@ -1669,11 +1688,13 @@
+@@ -1669,11 +1691,15 @@
      private String getEffectiveResourceBundleName() {
          Logger target = this;
          while (target != null) {
 -            String rbn = target.getResourceBundleName();
 +            final String rbn = isSystemLogger
-+                ? target.resourceBundleName
++                // ancestor of a system logger is expected to be a system logger.
++                // ignore resource bundle name if it's not.
++                ? (target.isSystemLogger ? target.resourceBundleName : null)
 +                : target.getResourceBundleName();
              if (rbn != null) {
                  return rbn;
@@ -63733,8 +69822,177 @@
          }
          return null;
      }
+--- ./jdk/src/share/classes/javax/crypto/CipherInputStream.java	2013-09-06 11:28:17.000000000 -0700
++++ ./jdk/src/share/classes/javax/crypto/CipherInputStream.java	2014-10-28 20:19:47.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1997, 2014, 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
+@@ -86,6 +86,10 @@
+     private int ostart = 0;
+     // the offset pointing to the last "new" byte
+     private int ofinish = 0;
++    // stream status
++    private boolean closed = false;
++    // The stream has been read from.  False if the stream has never been read.
++    private boolean read = false;
+ 
+     /**
+      * private convenience function.
+@@ -101,13 +105,15 @@
+     private int getMoreData() throws IOException {
+         if (done) return -1;
+         int readin = input.read(ibuffer);
++        read = true;
+         if (readin == -1) {
+             done = true;
+             try {
+                 obuffer = cipher.doFinal();
++            } catch (IllegalBlockSizeException | BadPaddingException e) {
++                obuffer = null;
++                throw new IOException(e);
+             }
+-            catch (IllegalBlockSizeException e) {obuffer = null;}
+-            catch (BadPaddingException e) {obuffer = null;}
+             if (obuffer == null)
+                 return -1;
+             else {
+@@ -118,7 +124,10 @@
+         }
+         try {
+             obuffer = cipher.update(ibuffer, 0, readin);
+-        } catch (IllegalStateException e) {obuffer = null;};
++        } catch (IllegalStateException e) {
++            obuffer = null;
++            throw e;
++        }
+         ostart = 0;
+         if (obuffer == null)
+             ofinish = 0;
+@@ -293,14 +302,24 @@
+      * @since JCE1.2
+      */
+     public void close() throws IOException {
++        if (closed) {
++            return;
++        }
++
++        closed = true;
+         input.close();
+         try {
+             // throw away the unprocessed data
+-            cipher.doFinal();
+-        }
+-        catch (BadPaddingException ex) {
++            if (!done) {
++                cipher.doFinal();
++            }
+         }
+-        catch (IllegalBlockSizeException ex) {
++        catch (BadPaddingException | IllegalBlockSizeException ex) {
++            /* If no data has been read from the stream to be en/decrypted,
++               we supress any exceptions, and close quietly. */
++            if (read) {
++                throw new IOException(ex);
++            }
+         }
+         ostart = 0;
+         ofinish = 0;
+--- ./jdk/src/share/classes/javax/crypto/CipherOutputStream.java	2013-09-06 11:28:17.000000000 -0700
++++ ./jdk/src/share/classes/javax/crypto/CipherOutputStream.java	2014-10-28 20:19:47.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+  *
+  * This code is free software; you can redistribute it and/or modify it
+@@ -74,6 +74,9 @@
+     // the buffer holding data ready to be written out
+     private byte[] obuffer;
+ 
++    // stream status
++    private boolean closed = false;
++
+     /**
+      *
+      * Constructs a CipherOutputStream from an OutputStream and a
+@@ -198,11 +201,14 @@
+      * @since      JCE1.2
+      */
+     public void close() throws IOException {
++        if (closed) {
++            return;
++        }
++
++        closed = true;
+         try {
+             obuffer = cipher.doFinal();
+-        } catch (IllegalBlockSizeException e) {
+-            obuffer = null;
+-        } catch (BadPaddingException e) {
++        } catch (IllegalBlockSizeException | BadPaddingException e) {
+             obuffer = null;
+         }
+         try {
+--- ./jdk/src/share/classes/javax/crypto/JceSecurity.java	2013-09-06 11:28:17.000000000 -0700
++++ ./jdk/src/share/classes/javax/crypto/JceSecurity.java	2014-10-28 20:19:47.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 1997, 2014, 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
+@@ -216,26 +216,28 @@
+     private static final Map codeBaseCacheRef = new WeakHashMap();
+ 
+     /*
+-     * Retuns the CodeBase for the given class.
++     * Returns the CodeBase for the given class.
+      */
+     static URL getCodeBase(final Class clazz) {
+-        URL url = (URL)codeBaseCacheRef.get(clazz);
+-        if (url == null) {
+-            url = (URL)AccessController.doPrivileged(new PrivilegedAction() {
+-                public Object run() {
+-                    ProtectionDomain pd = clazz.getProtectionDomain();
+-                    if (pd != null) {
+-                        CodeSource cs = pd.getCodeSource();
+-                        if (cs != null) {
+-                            return cs.getLocation();
++        synchronized (codeBaseCacheRef) {
++            URL url = (URL)codeBaseCacheRef.get(clazz);
++            if (url == null) {
++                url = (URL)AccessController.doPrivileged(new PrivilegedAction() {
++                    public Object run() {
++                        ProtectionDomain pd = clazz.getProtectionDomain();
++                        if (pd != null) {
++                            CodeSource cs = pd.getCodeSource();
++                            if (cs != null) {
++                                return cs.getLocation();
++                            }
+                         }
++                        return NULL_URL;
+                     }
+-                    return NULL_URL;
+-                }
+-            });
+-            codeBaseCacheRef.put(clazz, url);
++                });
++                codeBaseCacheRef.put(clazz, url);
++            }
++            return (url == NULL_URL) ? null : url;
+         }
+-        return (url == NULL_URL) ? null : url;
+     }
+ 
+     private static void setupJurisdictionPolicies() throws Exception {
 --- ./jdk/src/share/classes/javax/management/BadAttributeValueExpException.java	2013-09-06 11:28:18.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/BadAttributeValueExpException.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/BadAttributeValueExpException.java	2014-07-15 21:49:28.000000000 -0700
 @@ -25,6 +25,9 @@
  
  package javax.management;
@@ -63781,7 +70039,7 @@
 +    }
   }
 --- ./jdk/src/share/classes/javax/management/MBeanAttributeInfo.java	2013-09-06 11:28:18.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/MBeanAttributeInfo.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/MBeanAttributeInfo.java	2014-07-15 21:49:28.000000000 -0700
 @@ -30,6 +30,7 @@
  
  import com.sun.jmx.mbeanserver.GetPropertyAction;
@@ -63815,7 +70073,7 @@
  
      private static boolean isIs(Method getter) {
 --- ./jdk/src/share/classes/javax/management/MBeanConstructorInfo.java	2013-09-06 11:28:18.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/MBeanConstructorInfo.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/MBeanConstructorInfo.java	2014-07-15 21:49:28.000000000 -0700
 @@ -29,6 +29,7 @@
  import java.lang.annotation.Annotation;
  import java.lang.reflect.Constructor;
@@ -63852,7 +70110,7 @@
  
      private static MBeanParameterInfo[] constructorSignature(Constructor cn) {
 --- ./jdk/src/share/classes/javax/management/MBeanFeatureInfo.java	2013-09-06 11:28:18.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/MBeanFeatureInfo.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/MBeanFeatureInfo.java	2014-07-15 21:49:28.000000000 -0700
 @@ -30,6 +30,7 @@
  import java.io.ObjectOutputStream;
  import java.io.Serializable;
@@ -63875,7 +70133,7 @@
  
      public int hashCode() {
 --- ./jdk/src/share/classes/javax/management/MBeanInfo.java	2013-09-06 11:28:18.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/MBeanInfo.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/MBeanInfo.java	2014-07-15 21:49:28.000000000 -0700
 @@ -36,6 +36,7 @@
  import java.util.WeakHashMap;
  import java.security.AccessController;
@@ -63915,7 +70173,7 @@
       * Cached results of previous calls to arrayGettersSafe.  This is
       * a WeakHashMap so that we don't prevent a class from being
 --- ./jdk/src/share/classes/javax/management/MBeanNotificationInfo.java	2013-09-06 11:28:18.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/MBeanNotificationInfo.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/MBeanNotificationInfo.java	2014-07-15 21:49:28.000000000 -0700
 @@ -25,7 +25,11 @@
  
  package javax.management;
@@ -63975,7 +70233,7 @@
 +    }
  }
 --- ./jdk/src/share/classes/javax/management/MBeanOperationInfo.java	2013-09-06 11:28:18.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/MBeanOperationInfo.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/MBeanOperationInfo.java	2014-07-15 21:49:28.000000000 -0700
 @@ -29,6 +29,7 @@
  import java.lang.annotation.Annotation;
  import java.lang.reflect.Method;
@@ -64011,7 +70269,7 @@
  
      private static MBeanParameterInfo[] methodSignature(Method method) {
 --- ./jdk/src/share/classes/javax/management/MBeanParameterInfo.java	2013-09-06 11:28:18.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/MBeanParameterInfo.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/MBeanParameterInfo.java	2014-07-15 21:49:28.000000000 -0700
 @@ -25,6 +25,8 @@
  
  package javax.management;
@@ -64041,7 +70299,7 @@
      }
  }
 --- ./jdk/src/share/classes/javax/management/MBeanTrustPermission.java	2013-09-06 11:28:18.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/MBeanTrustPermission.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/MBeanTrustPermission.java	2014-07-15 21:49:28.000000000 -0700
 @@ -26,6 +26,9 @@
  package javax.management;
  
@@ -64091,7 +70349,7 @@
      }
  }
 --- ./jdk/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java	2013-09-06 11:28:18.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/modelmbean/RequiredModelMBean.java	2014-07-15 21:49:28.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
@@ -64124,7 +70382,7 @@
 \ No newline at end of file
 +}
 --- ./jdk/src/share/classes/javax/management/openmbean/OpenMBeanInfoSupport.java	2013-09-06 11:28:19.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/openmbean/OpenMBeanInfoSupport.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/openmbean/OpenMBeanInfoSupport.java	2014-07-15 21:49:28.000000000 -0700
 @@ -31,6 +31,7 @@
  //
  import java.util.Arrays;
@@ -64156,7 +70414,7 @@
              value += arraySetHash(this.getConstructors());
              value += arraySetHash(this.getOperations());
 --- ./jdk/src/share/classes/javax/management/relation/RelationNotification.java	2013-09-06 11:28:19.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/relation/RelationNotification.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/relation/RelationNotification.java	2014-07-15 21:49:28.000000000 -0700
 @@ -260,7 +260,7 @@
  
          super(notifType, sourceObj, sequence, timeStamp, message);
@@ -64207,7 +70465,7 @@
          }
  
 --- ./jdk/src/share/classes/javax/management/remote/JMXPrincipal.java	2013-09-06 11:28:19.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/remote/JMXPrincipal.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/remote/JMXPrincipal.java	2014-07-15 21:49:28.000000000 -0700
 @@ -26,6 +26,9 @@
  
  package javax.management.remote;
@@ -64251,7 +70509,7 @@
 +    }
  }
 --- ./jdk/src/share/classes/javax/management/remote/JMXServiceURL.java	2013-09-06 11:28:19.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/remote/JMXServiceURL.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/remote/JMXServiceURL.java	2014-07-15 21:49:28.000000000 -0700
 @@ -29,6 +29,9 @@
  
  import com.sun.jmx.remote.util.ClassLogger;
@@ -64412,7 +70670,7 @@
      /**
       * Cached result of {@link #toString()}.
 --- ./jdk/src/share/classes/javax/management/remote/NotificationResult.java	2013-09-06 11:28:19.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/remote/NotificationResult.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/remote/NotificationResult.java	2014-07-15 21:49:28.000000000 -0700
 @@ -25,6 +25,9 @@
  
  package javax.management.remote;
@@ -64487,7 +70745,7 @@
 +    }
  }
 --- ./jdk/src/share/classes/javax/management/remote/TargetedNotification.java	2013-09-06 11:28:19.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/remote/TargetedNotification.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/remote/TargetedNotification.java	2014-07-15 21:49:28.000000000 -0700
 @@ -26,6 +26,9 @@
  
  package javax.management.remote;
@@ -64552,7 +70810,7 @@
 +    }
  }
 --- ./jdk/src/share/classes/javax/management/remote/rmi/RMIConnector.java	2013-09-06 11:28:19.000000000 -0700
-+++ ./jdk/src/share/classes/javax/management/remote/rmi/RMIConnector.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/management/remote/rmi/RMIConnector.java	2014-07-15 21:49:28.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -64685,7 +70943,7 @@
      private transient RMINotifClient rmiNotifClient;
      // = new RMINotifClient(new Integer(0));
 --- ./jdk/src/share/classes/javax/print/SimpleDoc.java	2013-09-06 11:28:20.000000000 -0700
-+++ ./jdk/src/share/classes/javax/print/SimpleDoc.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/print/SimpleDoc.java	2014-07-15 21:49:28.000000000 -0700
 @@ -91,7 +91,10 @@
  
         Class repClass = null;
@@ -64699,7 +70957,7 @@
             throw new IllegalArgumentException("unknown representation class");
         }
 --- ./jdk/src/share/classes/javax/script/ScriptEngineManager.java	2013-09-06 11:28:21.000000000 -0700
-+++ ./jdk/src/share/classes/javax/script/ScriptEngineManager.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/script/ScriptEngineManager.java	2014-07-15 21:49:28.000000000 -0700
 @@ -85,15 +85,18 @@
          nameAssociations = new HashMap();
          extensionAssociations = new HashMap();
@@ -64755,7 +71013,7 @@
  
      /**
 --- ./jdk/src/share/classes/javax/security/auth/Policy.java	2013-09-06 11:28:21.000000000 -0700
-+++ ./jdk/src/share/classes/javax/security/auth/Policy.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/security/auth/Policy.java	2014-07-15 21:49:28.000000000 -0700
 @@ -26,6 +26,10 @@
  package javax.security.auth;
  
@@ -64846,7 +71104,7 @@
                          throw new SecurityException
                                  (sun.security.util.ResourcesMgr.getString
 --- ./jdk/src/share/classes/javax/security/auth/Subject.java	2013-09-06 11:28:21.000000000 -0700
-+++ ./jdk/src/share/classes/javax/security/auth/Subject.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/security/auth/Subject.java	2014-07-15 21:49:28.000000000 -0700
 @@ -941,10 +941,30 @@
      /**
       * Reads this object from a stream (i.e., deserializes it)
@@ -64896,7 +71154,7 @@
      }
  
 --- ./jdk/src/share/classes/javax/security/auth/kerberos/KeyTab.java	2013-09-06 11:28:21.000000000 -0700
-+++ ./jdk/src/share/classes/javax/security/auth/kerberos/KeyTab.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/security/auth/kerberos/KeyTab.java	2014-07-15 21:49:28.000000000 -0700
 @@ -26,6 +26,7 @@
  package javax.security.auth.kerberos;
  
@@ -64927,7 +71185,7 @@
  
      /**
 --- ./jdk/src/share/classes/javax/security/auth/login/Configuration.java	2013-09-06 11:28:21.000000000 -0700
-+++ ./jdk/src/share/classes/javax/security/auth/login/Configuration.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/security/auth/login/Configuration.java	2014-07-15 21:49:28.000000000 -0700
 @@ -27,9 +27,6 @@
  
  import javax.security.auth.AuthPermission;
@@ -65005,7 +71263,7 @@
                      Exception ee = e.getException();
                      if (ee instanceof InstantiationException) {
 --- ./jdk/src/share/classes/javax/security/auth/login/LoginContext.java	2013-09-06 11:28:21.000000000 -0700
-+++ ./jdk/src/share/classes/javax/security/auth/login/LoginContext.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/security/auth/login/LoginContext.java	2014-07-15 21:49:28.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -65249,7 +71507,7 @@
                                  (moduleStack[i].module, args)).booleanValue();
  
 --- ./jdk/src/share/classes/javax/sql/rowset/RowSetProvider.java	2013-09-06 11:28:22.000000000 -0700
-+++ ./jdk/src/share/classes/javax/sql/rowset/RowSetProvider.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/sql/rowset/RowSetProvider.java	2014-07-15 21:49:28.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
@@ -65311,7 +71569,7 @@
              }
          }
 --- ./jdk/src/share/classes/javax/sql/rowset/serial/SQLInputImpl.java	2013-09-06 11:28:22.000000000 -0700
-+++ ./jdk/src/share/classes/javax/sql/rowset/serial/SQLInputImpl.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/sql/rowset/serial/SQLInputImpl.java	2014-07-15 21:49:28.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
@@ -65345,7 +71603,7 @@
                      // get the attributes from the struct
                      Object attribs[] = s.getAttributes(map);
 --- ./jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2013-09-06 11:28:22.000000000 -0700
-+++ ./jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/javax/sql/rowset/spi/SyncFactory.java	2014-07-15 21:49:28.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -65478,8 +71736,27 @@
               * there.
               **/
              c = Class.forName(providerID, true, cl);
+--- ./jdk/src/share/classes/javax/swing/JDesktopPane.java	2013-09-06 11:28:23.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/JDesktopPane.java	2014-10-28 20:19:47.000000000 -0700
+@@ -43,6 +43,7 @@
+ import java.beans.PropertyVetoException;
+ import java.util.Set;
+ import java.util.TreeSet;
++import java.util.LinkedHashSet;
+ /**
+  * A container used to create a multiple-document interface or a virtual desktop.
+  * You create JInternalFrame objects and add them to the
+@@ -266,7 +267,7 @@
+ 
+     private static Collection getAllFrames(Container parent) {
+         int i, count;
+-        Collection results = new ArrayList();
++        Collection results = new LinkedHashSet<>();
+         count = parent.getComponentCount();
+         for (i = 0; i < count; i++) {
+             Component next = parent.getComponent(i);
 --- ./jdk/src/share/classes/javax/swing/JTable.java	2013-09-06 11:28:23.000000000 -0700
-+++ ./jdk/src/share/classes/javax/swing/JTable.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/JTable.java	2014-07-15 21:49:28.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -65528,7 +71805,7 @@
              }
              catch (Exception e) {
 --- ./jdk/src/share/classes/javax/swing/SwingUtilities.java	2013-09-06 11:28:23.000000000 -0700
-+++ ./jdk/src/share/classes/javax/swing/SwingUtilities.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/SwingUtilities.java	2014-07-15 21:49:28.000000000 -0700
 @@ -24,6 +24,7 @@
   */
  package javax.swing;
@@ -65556,7 +71833,7 @@
                               getContextClassLoader());
      }
 --- ./jdk/src/share/classes/javax/swing/UIDefaults.java	2013-09-06 11:28:24.000000000 -0700
-+++ ./jdk/src/share/classes/javax/swing/UIDefaults.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/UIDefaults.java	2014-07-15 21:49:28.000000000 -0700
 @@ -53,6 +53,7 @@
  
  import sun.reflect.misc.MethodUtil;
@@ -65598,7 +71875,7 @@
           * Coerce the array of class types provided into one which
           * looks the way the Reflection APIs expect.  This is done
 --- ./jdk/src/share/classes/javax/swing/event/EventListenerList.java	2013-09-06 11:28:24.000000000 -0700
-+++ ./jdk/src/share/classes/javax/swing/event/EventListenerList.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/event/EventListenerList.java	2014-07-15 21:49:28.000000000 -0700
 @@ -27,6 +27,7 @@
  import java.io.*;
  import java.util.*;
@@ -65619,7 +71896,7 @@
      }
  
 --- ./jdk/src/share/classes/javax/swing/filechooser/FileSystemView.java	2013-09-06 11:28:24.000000000 -0700
-+++ ./jdk/src/share/classes/javax/swing/filechooser/FileSystemView.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/filechooser/FileSystemView.java	2014-07-15 21:54:44.000000000 -0700
 @@ -718,7 +718,8 @@
       * @return the Desktop folder.
       */
@@ -65631,7 +71908,7 @@
  
      /**
 --- ./jdk/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java	2013-09-06 11:28:25.000000000 -0700
-+++ ./jdk/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -65661,7 +71938,7 @@
                  if(cellEditor.shouldSelectCell(event)) {
                      stopEditingInCompleteEditing = false;
 --- ./jdk/src/share/classes/javax/swing/text/DefaultFormatter.java	2013-09-06 11:28:27.000000000 -0700
-+++ ./jdk/src/share/classes/javax/swing/text/DefaultFormatter.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/text/DefaultFormatter.java	2014-07-15 21:49:29.000000000 -0700
 @@ -24,7 +24,8 @@
   */
  package javax.swing.text;
@@ -65692,7 +71969,7 @@
                  } catch (Throwable ex) {
                      throw new ParseException("Error creating instance", 0);
 --- ./jdk/src/share/classes/javax/swing/text/FlowView.java	2013-09-06 11:28:27.000000000 -0700
-+++ ./jdk/src/share/classes/javax/swing/text/FlowView.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/text/FlowView.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
@@ -65724,7 +72001,7 @@
          // simply keep the class from being abstract.
  
 --- ./jdk/src/share/classes/javax/swing/text/GlyphView.java	2013-09-06 11:28:27.000000000 -0700
-+++ ./jdk/src/share/classes/javax/swing/text/GlyphView.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/text/GlyphView.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -65742,7 +72019,7 @@
                  int yTmp = y + 1;
                  g.drawLine(x0, yTmp, x1, yTmp);
 --- ./jdk/src/share/classes/javax/swing/text/NumberFormatter.java	2013-09-06 11:28:27.000000000 -0700
-+++ ./jdk/src/share/classes/javax/swing/text/NumberFormatter.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/text/NumberFormatter.java	2014-07-15 21:49:29.000000000 -0700
 @@ -27,6 +27,8 @@
  import java.lang.reflect.*;
  import java.text.*;
@@ -65767,7 +72044,7 @@
                          }
                      } catch (Throwable ex) { }
 --- ./jdk/src/share/classes/javax/swing/text/View.java	2013-09-06 11:28:27.000000000 -0700
-+++ ./jdk/src/share/classes/javax/swing/text/View.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/text/View.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1137,32 +1137,9 @@
       */
      protected void forwardUpdate(DocumentEvent.ElementChange ec,
@@ -65874,7 +72151,7 @@
 +
  };
 --- ./jdk/src/share/classes/javax/swing/text/html/ObjectView.java	2013-09-06 11:28:27.000000000 -0700
-+++ ./jdk/src/share/classes/javax/swing/text/html/ObjectView.java	2014-07-15 23:24:37.000000000 -0700
++++ ./jdk/src/share/classes/javax/swing/text/html/ObjectView.java	2014-07-15 21:49:29.000000000 -0700
 @@ -31,6 +31,9 @@
  import java.beans.*;
  import java.lang.reflect.*;
@@ -65932,7 +72209,7 @@
                      System.err.println("Invocation failed");
                      // invocation code
 --- ./jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_ja.java	2013-09-06 11:28:29.000000000 -0700
-+++ ./jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_ja.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_ja.java	2014-07-15 21:49:29.000000000 -0700
 @@ -57,9 +57,9 @@
              {"appletviewer.appletinfo.applet", "-- \u30A2\u30D7\u30EC\u30C3\u30C8\u60C5\u5831\u306A\u3057 --"},
              {"appletviewer.appletinfo.param", "-- \u30D1\u30E9\u30E1\u30FC\u30BF\u60C5\u5831\u306A\u3057 --"},
@@ -65965,7 +72242,7 @@
              {"appletpanel.fileexception", "{1}\u306E\u30ED\u30FC\u30C9\u4E2D\u306B{0}\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F"},
              {"appletpanel.filedeath", "{1}\u306E\u30ED\u30FC\u30C9\u4E2D\u306B{0}\u304C\u5F37\u5236\u7D42\u4E86\u3057\u307E\u3057\u305F"},
 --- ./jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_pt_BR.java	2013-09-06 11:28:29.000000000 -0700
-+++ ./jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_pt_BR.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_pt_BR.java	2014-07-15 21:49:29.000000000 -0700
 @@ -93,7 +93,7 @@
              {"appletviewer.main.nosecmgr", "Advert\u00EAncia: SecurityManager n\u00E3o instalado!"},
              {"appletviewer.main.warning", "Advert\u00EAncia: Nenhum applet iniciado. Certifique-se de que a entrada contenha uma tag ."},
@@ -65976,7 +72253,7 @@
              {"appletioexception.loadclass.throw.notloaded", "classe n\u00E3o carregada: {0}"},
              {"appletclassloader.loadcode.verbose", "Fluxo de abertura para: {0} para obter {1}"},
 --- ./jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java	2013-09-06 11:28:29.000000000 -0700
-+++ ./jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java	2014-07-15 21:49:29.000000000 -0700
 @@ -85,7 +85,7 @@
              {"appletviewer.main.prop.store", "Anv\u00E4ndarspecifika egenskaper f\u00F6r AppletViewer"},
              {"appletviewer.main.err.prop.cantread", "Kan inte l\u00E4sa egenskapsfilen: {0}"},
@@ -65987,7 +72264,7 @@
              {"appletviewer.main.debug.cantfindmain", "Hittar inte huvudmetoden i fels\u00F6kningsprogrammet!"},
              {"appletviewer.main.debug.exceptionindebug", "Undantag i fels\u00F6kningsprogrammet!"},
 --- ./jdk/src/share/classes/sun/awt/AWTAccessor.java	2013-09-06 11:28:29.000000000 -0700
-+++ ./jdk/src/share/classes/sun/awt/AWTAccessor.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/AWTAccessor.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -66103,7 +72380,7 @@
 +    }
  }
 --- ./jdk/src/share/classes/sun/awt/AWTAutoShutdown.java	2013-09-06 11:28:29.000000000 -0700
-+++ ./jdk/src/share/classes/sun/awt/AWTAutoShutdown.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/AWTAutoShutdown.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
@@ -66156,7 +72433,7 @@
          blockerThread = thread;
          thread.start();
 --- ./jdk/src/share/classes/sun/awt/AppContext.java	2013-09-06 11:28:29.000000000 -0700
-+++ ./jdk/src/share/classes/sun/awt/AppContext.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/AppContext.java	2014-07-15 21:54:44.000000000 -0700
 @@ -323,6 +323,20 @@
                      while (context == null) {
                          threadGroup = threadGroup.getParent();
@@ -66261,7 +72538,7 @@
      }
  }
 --- ./jdk/src/share/classes/sun/awt/FontConfiguration.java	2013-09-06 11:28:30.000000000 -0700
-+++ ./jdk/src/share/classes/sun/awt/FontConfiguration.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/FontConfiguration.java	2014-10-28 20:19:52.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -66288,7 +72565,7 @@
          } else if (existsMap == null) {
             existsMap = new HashMap();
 --- ./jdk/src/share/classes/sun/awt/OSInfo.java	2013-09-06 11:28:30.000000000 -0700
-+++ ./jdk/src/share/classes/sun/awt/OSInfo.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/OSInfo.java	2014-10-28 20:19:52.000000000 -0700
 @@ -39,6 +39,7 @@
          WINDOWS,
          LINUX,
@@ -66309,7 +72586,7 @@
                  return MACOSX;
              }
 --- ./jdk/src/share/classes/sun/awt/SunToolkit.java	2013-09-06 11:28:30.000000000 -0700
-+++ ./jdk/src/share/classes/sun/awt/SunToolkit.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/SunToolkit.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -66326,7 +72603,7 @@
  import java.util.concurrent.TimeUnit;
  import java.util.concurrent.locks.Condition;
 --- ./jdk/src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java	2013-09-06 11:28:30.000000000 -0700
-+++ ./jdk/src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java	2014-07-15 21:49:29.000000000 -0700
 @@ -87,7 +87,7 @@
                  HashMap cached_data = new HashMap(formats.length, 1.0f);
  
@@ -66347,7 +72624,7 @@
          } finally {
              clipboard.closeClipboard();
 --- ./jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java	2013-09-06 11:28:30.000000000 -0700
-+++ ./jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java	2014-07-15 21:49:29.000000000 -0700
 @@ -2406,15 +2406,6 @@
      }
  
@@ -66438,7 +72715,7 @@
      }
  
 --- ./jdk/src/share/classes/sun/awt/datatransfer/SunClipboard.java	2013-09-06 11:28:30.000000000 -0700
-+++ ./jdk/src/share/classes/sun/awt/datatransfer/SunClipboard.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/datatransfer/SunClipboard.java	2014-07-15 21:49:29.000000000 -0700
 @@ -64,9 +64,6 @@
  public abstract class SunClipboard extends Clipboard
      implements PropertyChangeListener {
@@ -66484,8 +72761,236 @@
 +        return (FlavorTable) SystemFlavorMap.getDefaultFlavorMap();
 +    }
  }
+--- ./jdk/src/share/classes/sun/awt/image/ByteBandedRaster.java	2013-09-06 11:28:30.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/image/ByteBandedRaster.java	2014-10-28 20:19:47.000000000 -0700
+@@ -755,10 +755,22 @@
+                     + scanlineStride);
+         }
+ 
+-        for (int i = 0; i < data.length; i++) {
+-            if (scanlineStride > data[i].length) {
+-                throw new RasterFormatException("Incorrect scanline stride: "
+-                    + scanlineStride);
++        if ((long)minX - sampleModelTranslateX < 0 ||
++            (long)minY - sampleModelTranslateY < 0) {
++
++            throw new RasterFormatException("Incorrect origin/translate: (" +
++                    minX + ", " + minY + ") / (" +
++                    sampleModelTranslateX + ", " + sampleModelTranslateY + ")");
++        }
++
++
++        if (height > 1 || minY - sampleModelTranslateY > 0) {
++            // buffer should contain at least one scanline
++            for (int i = 0; i < data.length; i++) {
++                if (scanlineStride > data[i].length) {
++                    throw new RasterFormatException("Incorrect scanline stride: "
++                        + scanlineStride);
++                }
+             }
+         }
+ 
+--- ./jdk/src/share/classes/sun/awt/image/ByteComponentRaster.java	2013-09-06 11:28:30.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/image/ByteComponentRaster.java	2014-10-28 20:19:47.000000000 -0700
+@@ -885,15 +885,31 @@
+             }
+         }
+ 
++        if ((long)minX - sampleModelTranslateX < 0 ||
++            (long)minY - sampleModelTranslateY < 0) {
++
++            throw new RasterFormatException("Incorrect origin/translate: (" +
++                    minX + ", " + minY + ") / (" +
++                    sampleModelTranslateX + ", " + sampleModelTranslateY + ")");
++        }
++
+         // we can be sure that width and height are greater than 0
+         if (scanlineStride < 0 ||
+-            scanlineStride > (Integer.MAX_VALUE / height) ||
+-            scanlineStride > data.length)
++            scanlineStride > (Integer.MAX_VALUE / height))
+         {
+             // integer overflow
+             throw new RasterFormatException("Incorrect scanline stride: "
+                     + scanlineStride);
+         }
++
++        if (height > 1 || minY - sampleModelTranslateY > 0) {
++            // buffer should contain at least one scanline
++            if (scanlineStride > data.length) {
++                throw new RasterFormatException("Incorrect scanline stride: "
++                        + scanlineStride);
++            }
++        }
++
+         int lastScanOffset = (height - 1) * scanlineStride;
+ 
+         if (pixelStride < 0 ||
+--- ./jdk/src/share/classes/sun/awt/image/BytePackedRaster.java	2013-09-06 11:28:30.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/image/BytePackedRaster.java	2014-10-28 20:19:47.000000000 -0700
+@@ -1386,17 +1386,32 @@
+             throw new RasterFormatException("Invalid raster dimension");
+         }
+ 
++        if ((long)minX - sampleModelTranslateX < 0 ||
++            (long)minY - sampleModelTranslateY < 0) {
++
++            throw new RasterFormatException("Incorrect origin/translate: (" +
++                    minX + ", " + minY + ") / (" +
++                    sampleModelTranslateX + ", " + sampleModelTranslateY + ")");
++        }
++
+         if (scanlineStride < 0 ||
+-            scanlineStride > (Integer.MAX_VALUE / height) ||
+-            scanlineStride > data.length)
++            scanlineStride > (Integer.MAX_VALUE / height))
+         {
+             throw new RasterFormatException("Invalid scanline stride");
+         }
+ 
+-        int lastbit = (dataBitOffset
+-                       + (height-1) * scanlineStride * 8
+-                       + (width-1) * pixelBitStride
+-                       + pixelBitStride - 1);
++        if (height > 1 || minY - sampleModelTranslateY > 0) {
++            // buffer should contain at least one scanline
++            if (scanlineStride > data.length) {
++                throw new RasterFormatException("Incorrect scanline stride: "
++                        + scanlineStride);
++            }
++        }
++
++        long lastbit = (long) dataBitOffset
++                       + (long) (height - 1) * (long) scanlineStride * 8
++                       + (long) (width - 1) * (long) pixelBitStride
++                       + (long) pixelBitStride - 1;
+         if (lastbit < 0 || lastbit / 8 >= data.length) {
+             throw new RasterFormatException("raster dimensions overflow " +
+                                             "array bounds");
+--- ./jdk/src/share/classes/sun/awt/image/FileImageSource.java	2013-09-06 11:28:30.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/image/FileImageSource.java	2014-10-28 20:19:47.000000000 -0700
+@@ -48,6 +48,10 @@
+     }
+ 
+     protected ImageDecoder getDecoder() {
++        if (imagefile == null) {
++            return null;
++        }
++
+         InputStream is;
+         try {
+             is = new BufferedInputStream(new FileInputStream(imagefile));
+--- ./jdk/src/share/classes/sun/awt/image/IntegerComponentRaster.java	2013-09-06 11:28:30.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/image/IntegerComponentRaster.java	2014-10-28 20:19:47.000000000 -0700
+@@ -654,15 +654,31 @@
+                                             ") must be >= 0");
+         }
+ 
++        if ((long)minX - sampleModelTranslateX < 0 ||
++            (long)minY - sampleModelTranslateY < 0) {
++
++            throw new RasterFormatException("Incorrect origin/translate: (" +
++                    minX + ", " + minY + ") / (" +
++                    sampleModelTranslateX + ", " + sampleModelTranslateY + ")");
++        }
++
+         // we can be sure that width and height are greater than 0
+         if (scanlineStride < 0 ||
+-            scanlineStride > (Integer.MAX_VALUE / height) ||
+-            scanlineStride > data.length)
++            scanlineStride > (Integer.MAX_VALUE / height))
+         {
+             // integer overflow
+             throw new RasterFormatException("Incorrect scanline stride: "
+                     + scanlineStride);
+         }
++
++        if (height > 1 || minY - sampleModelTranslateY > 0) {
++            // buffer should contain at least one scanline
++            if (scanlineStride > data.length) {
++                throw new RasterFormatException("Incorrect scanline stride: "
++                        + scanlineStride);
++            }
++        }
++
+         int lastScanOffset = (height - 1) * scanlineStride;
+ 
+         if (pixelStride < 0 ||
+--- ./jdk/src/share/classes/sun/awt/image/ShortBandedRaster.java	2013-09-06 11:28:30.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/image/ShortBandedRaster.java	2014-10-28 20:19:47.000000000 -0700
+@@ -754,10 +754,21 @@
+                     + scanlineStride);
+         }
+ 
+-        for (int i = 0; i < data.length; i++) {
+-            if (scanlineStride > data[i].length) {
+-                throw new RasterFormatException("Incorrect scanline stride: "
+-                    + scanlineStride);
++        if ((long)minX - sampleModelTranslateX < 0 ||
++            (long)minY - sampleModelTranslateY < 0) {
++
++            throw new RasterFormatException("Incorrect origin/translate: (" +
++                    minX + ", " + minY + ") / (" +
++                    sampleModelTranslateX + ", " + sampleModelTranslateY + ")");
++        }
++
++        if (height > 1 || minY - sampleModelTranslateY > 0) {
++            // buffer should contain at least one scanline
++            for (int i = 0; i < data.length; i++) {
++                if (scanlineStride > data[i].length) {
++                    throw new RasterFormatException("Incorrect scanline stride: "
++                        + scanlineStride);
++                }
+             }
+         }
+ 
+--- ./jdk/src/share/classes/sun/awt/image/ShortComponentRaster.java	2013-09-06 11:28:30.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/image/ShortComponentRaster.java	2014-10-28 20:19:48.000000000 -0700
+@@ -819,15 +819,31 @@
+             }
+         }
+ 
++        if ((long)minX - sampleModelTranslateX < 0 ||
++            (long)minY - sampleModelTranslateY < 0) {
++
++            throw new RasterFormatException("Incorrect origin/translate: (" +
++                    minX + ", " + minY + ") / (" +
++                    sampleModelTranslateX + ", " + sampleModelTranslateY + ")");
++        }
++
+         // we can be sure that width and height are greater than 0
+         if (scanlineStride < 0 ||
+-            scanlineStride > (Integer.MAX_VALUE / height) ||
+-            scanlineStride > data.length)
++            scanlineStride > (Integer.MAX_VALUE / height))
+         {
+             // integer overflow
+             throw new RasterFormatException("Incorrect scanline stride: "
+                     + scanlineStride);
+         }
++
++        if (height > 1 || minY - sampleModelTranslateY > 0) {
++            // buffer should contain at least one scanline
++            if (scanlineStride > data.length) {
++                throw new RasterFormatException("Incorrect scanline stride: "
++                        + scanlineStride);
++            }
++        }
++
+         int lastScanOffset = (height - 1) * scanlineStride;
+ 
+         if (pixelStride < 0 ||
 --- ./jdk/src/share/classes/sun/awt/resources/awt_pt_BR.properties	2013-09-06 11:28:30.000000000 -0700
-+++ ./jdk/src/share/classes/sun/awt/resources/awt_pt_BR.properties	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/awt/resources/awt_pt_BR.properties	2014-10-28 20:19:48.000000000 -0700
+@@ -44,7 +44,7 @@
+ AWT.subtract=Teclado Num\u00E9rico -
+ AWT.decimal=Teclado Num\u00E9rico .
+ AWT.divide=Teclado Num\u00E9rico /
+-AWT.delete=Deletar
++AWT.delete=Excluir
+ AWT.numLock=Num Lock
+ AWT.scrollLock=Scroll Lock
+ AWT.f1=F1
 @@ -151,7 +151,7 @@
  AWT.undefined=Indefinido
  
@@ -66509,7 +73014,7 @@
  # Input method related strings
  AWT.CompositionWindowTitle=Janela de Entrada
 --- ./jdk/src/share/classes/sun/font/CreatedFontTracker.java	2013-09-06 11:28:31.000000000 -0700
-+++ ./jdk/src/share/classes/sun/font/CreatedFontTracker.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/font/CreatedFontTracker.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
@@ -66582,7 +73087,7 @@
          }
  
 --- ./jdk/src/share/classes/sun/font/FileFont.java	2013-09-06 11:28:31.000000000 -0700
-+++ ./jdk/src/share/classes/sun/font/FileFont.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/font/FileFont.java	2014-07-15 21:49:29.000000000 -0700
 @@ -170,7 +170,9 @@
                  }
              }
@@ -66595,7 +73100,7 @@
      }
  
 --- ./jdk/src/share/classes/sun/font/FontUtilities.java	2013-09-06 11:28:31.000000000 -0700
-+++ ./jdk/src/share/classes/sun/font/FontUtilities.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/font/FontUtilities.java	2014-10-28 20:19:52.000000000 -0700
 @@ -48,6 +48,8 @@
  
      public static boolean isLinux;
@@ -66618,7 +73123,7 @@
  
                  String t2kStr = System.getProperty("sun.java2d.font.scaler");
 --- ./jdk/src/share/classes/sun/font/GlyphLayout.java	2013-09-06 11:28:31.000000000 -0700
-+++ ./jdk/src/share/classes/sun/font/GlyphLayout.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/font/GlyphLayout.java	2014-07-15 21:49:29.000000000 -0700
 @@ -468,9 +468,10 @@
                          _gvdata.grow();
                      }
@@ -66634,7 +73139,7 @@
          }
  
 --- ./jdk/src/share/classes/sun/font/StandardGlyphVector.java	2013-09-06 11:28:31.000000000 -0700
-+++ ./jdk/src/share/classes/sun/font/StandardGlyphVector.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/font/StandardGlyphVector.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1740,8 +1740,9 @@
                                                       tx,
                                                       sgv.font.getStyle(),
@@ -66648,7 +73153,7 @@
              return new GlyphStrike(sgv, strike, dx, dy);
          }
 --- ./jdk/src/share/classes/sun/font/SunFontManager.java	2013-09-06 11:28:31.000000000 -0700
-+++ ./jdk/src/share/classes/sun/font/SunFontManager.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/font/SunFontManager.java	2014-10-28 20:19:52.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
@@ -66713,7 +73218,7 @@
              }
          }
 --- ./jdk/src/share/classes/sun/font/TrueTypeFont.java	2013-09-06 11:28:31.000000000 -0700
-+++ ./jdk/src/share/classes/sun/font/TrueTypeFont.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/font/TrueTypeFont.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1037,6 +1037,9 @@
              if (head_Table != null && head_Table.capacity() >= 18) {
                  ShortBuffer sb = head_Table.asShortBuffer();
@@ -66725,7 +73230,7 @@
  
              ByteBuffer os2_Table = getTableBuffer(os_2Tag);
 --- ./jdk/src/share/classes/sun/invoke/util/VerifyAccess.java	2013-09-06 11:28:31.000000000 -0700
-+++ ./jdk/src/share/classes/sun/invoke/util/VerifyAccess.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/invoke/util/VerifyAccess.java	2014-07-15 21:54:44.000000000 -0700
 @@ -89,35 +89,28 @@
          if (allowedModes == 0)  return false;
          assert((allowedModes & PUBLIC) != 0 &&
@@ -66785,7 +73290,7 @@
  
      /**
 --- ./jdk/src/share/classes/sun/java2d/Disposer.java	2013-09-06 11:28:34.000000000 -0700
-+++ ./jdk/src/share/classes/sun/java2d/Disposer.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/java2d/Disposer.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -66875,7 +73380,7 @@
              pollingQueue = false;
          }
 --- ./jdk/src/share/classes/sun/java2d/opengl/OGLRenderQueue.java	2013-09-06 11:28:34.000000000 -0700
-+++ ./jdk/src/share/classes/sun/java2d/opengl/OGLRenderQueue.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/java2d/opengl/OGLRenderQueue.java	2014-07-15 21:49:29.000000000 -0700
 @@ -1,5 +1,5 @@
  /*
 - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
@@ -66907,7 +73412,7 @@
          });
      }
 --- ./jdk/src/share/classes/sun/launcher/resources/launcher_de.properties	2013-09-06 11:28:35.000000000 -0700
-+++ ./jdk/src/share/classes/sun/launcher/resources/launcher_de.properties	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/launcher/resources/launcher_de.properties	2014-07-15 21:49:29.000000000 -0700
 @@ -37,7 +37,7 @@
  java.launcher.opt.footer     =\    -cp \n    -classpath \n                  Eine durch {0} getrennte Liste mit Verzeichnissen, JAR-Archiven\n                  und ZIP-Archiven zur Suche nach Klassendateien.\n    -D=\n                  Legt eine Systemeigenschaft fest\n    -verbose:[class|gc|jni]\n                  Aktiviert die Verbose-Ausgabe\n    -version      Druckt Produktversion und beendet das Programm\n    -version:\n                  Erfordert die angegebene Version zur Ausf\u00FChrung\n    -showversion  Druckt Produktversion und f\u00E4hrt fort\n    -jre-restrict-search | -no-jre-restrict-search\n                  Bezieht private JREs des Benutzers in Versionssuche ein bzw. schlie\u00DFt sie aus\n    -? -help      Druckt diese Hilfemeldung\n    -X            Druckt Hilfe zu Nicht-Standardoptionen\n    -ea[:...|:]\n    -enableassertions[:...|:]\n                  Aktiviert Assertionen mit angegebener Granularit\u00E4t\n    -da[:...|:]\n    -disableassertions[:...|:]\n                  Deaktiviert Assertionen mit angegebener Granularit\u00E4t\n    -esa | -enablesystemassertions\n                  Aktiviert Systemassertionen\n    -dsa | -disablesystemassertions\n                  Deaktiviert Systemassertionen\n    -agentlib:[=]\n                  L\u00E4dt native Agent Library , z.B. -agentlib:hprof\n                  siehe auch -agentlib:jdwp=help und -agentlib:hprof=help\n    -agentpath:[=]\n                  L\u00E4dt native Agent Library nach vollem Pfadnamen\n    -javaagent:[=]\n                  L\u00E4dt Java-Programmiersprachen-Agent, siehe java.lang.instrument\n    -splash:\n                  Zeigt Startbildschirm mit angegebenem Bild\nWeitere Einzelheiten finden Sie unter http://www.oracle.com/technetwork/java/javase/documentation/index.html
  
@@ -66918,7 +73423,7 @@
  # Translators please note do not translate the options themselves
  java.launcher.X.macosx.usage=\nDie folgenden Optionen sind f\u00FCr Mac OS X spezifisch:\n    -XstartOnFirstThread\n                      f\u00FChrt die main()-Methode f\u00FCr den ersten (AppKit) Thread aus\n    -Xdock:name="\n                      \u00DCberschreibt den in der Uhr angezeigten Standardanwendungsnamen\n    -Xdock:icon=\n                      \u00DCberschreibt das in der Uhr angezeigte Standardsymbol\n\n
 --- ./jdk/src/share/classes/sun/launcher/resources/launcher_fr.properties	2013-09-06 11:28:35.000000000 -0700
-+++ ./jdk/src/share/classes/sun/launcher/resources/launcher_fr.properties	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/launcher/resources/launcher_fr.properties	2014-07-15 21:49:29.000000000 -0700
 @@ -34,7 +34,7 @@
  java.launcher.ergo.message2  =\                  car vous ex\u00E9cutez une machine de classe de serveur.\n
  
@@ -66929,7 +73434,7 @@
  # Translators please note do not translate the options themselves
  java.launcher.X.usage=\    -Xmixed           ex\u00E9cution en mode mixte (valeur par d\u00E9faut)\n    -Xint             ex\u00E9cution en mode interpr\u00E9t\u00E9 uniquement\n    -Xbootclasspath:\n                      d\u00E9finition du chemin de recherche pour les ressources et classes bootstrap\n    -Xbootclasspath/a:\n                      ajout \u00E0 la fin du chemin de classe bootstrap\n    -Xbootclasspath/p:\n                      ajout au d\u00E9but du chemin de classe bootstrap\n    -Xdiag            affichage de messages de diagnostic suppl\u00E9mentaires\n    -Xnoclassgc       d\u00E9sactivation de l''op\u00E9ration de ramasse-miette (garbage collection) de la classe\n    -Xincgc           activation de l''op\u00E9ration de ramasse-miette (garbage collection) incr\u00E9mentielle\n    -Xloggc:    journalisation du statut de l''op\u00E9ration de ramasse-miette (garbage collection) dans un fichier avec horodatages\n    -Xbatch           d\u00E9sactivation de la compilation en arri\u00E8re-plan\n    -Xms        d\u00E9finition de la taille initiale des portions de m\u00E9moire Java\n    -Xmx        d\u00E9finition de la taille maximale des portions de m\u00E9moire Java\n    -Xss        d\u00E9finition de la taille de pile de thread Java\n    -Xprof            sortie des donn\u00E9es de profilage de l''unit\u00E9 centrale\n    -Xfuture          activation des contr\u00F4les les plus stricts en vue d''anticiper la future valeur par d\u00E9faut\n    -Xrs              r\u00E9duction de l''utilisation des signaux OS par Java/la machine virtuelle (voir documentation)\n    -Xcheck:jni       ex\u00E9cution de contr\u00F4les suppl\u00E9mentaires pour les fonctions JNI\n    -Xshare:off       aucune tentative d''utilisation des donn\u00E9es de classe partag\u00E9es\n    -Xshare:auto      utilisation des donn\u00E9es de classe partag\u00E9es si possible (valeur par d\u00E9faut)\n    -Xshare:on        utilisation des donn\u00E9es de classe partag\u00E9es obligatoire ou \u00E9chec de l''op\u00E9ration\n    -XshowSettings    affichage de tous les param\u00E8tres et poursuite de l''op\u00E9ration\n    -XshowSettings:all\n                      affichage de tous les param\u00E8tres et poursuite de l''op\u00E9ration\n    -XshowSettings:vm affichage de tous les param\u00E8tres de machine virtuelle et poursuite de l''op\u00E9ration\n    -XshowSettings:properties\n                      affichage de tous les param\u00E8tres de propri\u00E9t\u00E9 et poursuite de l''op\u00E9ration\n    -XshowSettings:locale\n                      affichage de tous les param\u00E8tres d''environnement local et poursuite de l''op\u00E9ration\n\nLes options -X ne sont pas des options standard et peuvent faire l''objet de modifications sans pr\u00E9avis.\n
 --- ./jdk/src/share/classes/sun/launcher/resources/launcher_ja.properties	2013-09-06 11:28:35.000000000 -0700
-+++ ./jdk/src/share/classes/sun/launcher/resources/launcher_ja.properties	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/launcher/resources/launcher_ja.properties	2014-07-15 21:49:29.000000000 -0700
 @@ -34,11 +34,11 @@
  java.launcher.ergo.message2  =\                  \u3053\u308C\u306F\u30B5\u30FC\u30D0\u30FC\u30AF\u30E9\u30B9\u306E\u30DE\u30B7\u30F3\u3067\u5B9F\u884C\u3057\u3066\u3044\u308B\u305F\u3081\u3067\u3059\u3002\n
  
@@ -66946,7 +73451,7 @@
  # Translators please note do not translate the options themselves
  java.launcher.X.macosx.usage=\n\u6B21\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306FMac OS X\u56FA\u6709\u3067\u3059\u3002\n    -XstartOnFirstThread\n                      main()\u30E1\u30BD\u30C3\u30C9\u3092\u6700\u521D(AppKit)\u306E\u30B9\u30EC\u30C3\u30C9\u3067\u5B9F\u884C\u3059\u308B\n    -Xdock:name="\n                      Dock\u306B\u8868\u793A\u3055\u308C\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u540D\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n    -Xdock:icon=\n                      Dock\u306B\u8868\u793A\u3055\u308C\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30A2\u30A4\u30B3\u30F3\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n\n
 --- ./jdk/src/share/classes/sun/launcher/resources/launcher_ko.properties	2013-09-06 11:28:35.000000000 -0700
-+++ ./jdk/src/share/classes/sun/launcher/resources/launcher_ko.properties	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/launcher/resources/launcher_ko.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -34,10 +34,11 @@
  java.launcher.ergo.message2  =\                  \uC11C\uBC84\uAE09 \uC2DC\uC2A4\uD15C\uC5D0\uC11C \uC2E4\uD589 \uC911\uC774\uAE30 \uB54C\uBB38\uC785\uB2C8\uB2E4.\n
  
@@ -66962,7 +73467,7 @@
  # Translators please note do not translate the options themselves
  java.launcher.X.macosx.usage=\n\uB2E4\uC74C\uC740 Mac OS X\uC5D0 \uD2B9\uC815\uB41C \uC635\uC158\uC785\uB2C8\uB2E4.\n    -XstartOnFirstThread\n                      \uCCAB\uBC88\uC9F8 (AppKit) \uC2A4\uB808\uB4DC\uC5D0 main() \uBA54\uC18C\uB4DC\uB97C \uC2E4\uD589\uD569\uB2C8\uB2E4.\n    -Xdock:name="\n                      \uACE0\uC815\uC73C\uB85C \uD45C\uC2DC\uB41C \uAE30\uBCF8 \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8 \uC774\uB984\uC744 \uBB34\uD6A8\uD654\uD569\uB2C8\uB2E4.\n    -Xdock:icon=\n                      \uACE0\uC815\uC73C\uB85C \uD45C\uC2DC\uB41C \uAE30\uBCF8 \uC544\uC774\uCF58\uC744 \uBB34\uD6A8\uD654\uD569\uB2C8\uB2E4.\n\n
 --- ./jdk/src/share/classes/sun/launcher/resources/launcher_pt_BR.properties	2013-09-06 11:28:35.000000000 -0700
-+++ ./jdk/src/share/classes/sun/launcher/resources/launcher_pt_BR.properties	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/launcher/resources/launcher_pt_BR.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -30,17 +30,17 @@
  java.launcher.opt.vmselect   =\    {0}\t  para selecionar a VM "{1}"\n
  java.launcher.opt.hotspot    =\    {0}\t  \u00E9 um sin\u00F4nimo da VM "{1}" [obsoleto]\n
@@ -66986,7 +73491,7 @@
  java.launcher.cls.error1=Erro: N\u00E3o foi poss\u00EDvel localizar nem carregar a classe principal {0}
  java.launcher.cls.error2=Erro: o m\u00E9todo main n\u00E3o \u00E9 {0} na classe {1}; defina o m\u00E9todo main como:\n   public static void main(String[] args)
 --- ./jdk/src/share/classes/sun/management/HotSpotDiagnostic.java	2013-09-06 11:28:35.000000000 -0700
-+++ ./jdk/src/share/classes/sun/management/HotSpotDiagnostic.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/management/HotSpotDiagnostic.java	2014-07-15 21:49:30.000000000 -0700
 @@ -40,7 +40,17 @@
      public HotSpotDiagnostic() {
      }
@@ -67007,7 +73512,7 @@
      public List getDiagnosticOptions() {
          List allFlags = Flag.getAllFlags();
 --- ./jdk/src/share/classes/sun/management/resources/agent_ja.properties	2013-09-06 11:28:36.000000000 -0700
-+++ ./jdk/src/share/classes/sun/management/resources/agent_ja.properties	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/management/resources/agent_ja.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -36,7 +36,7 @@
  agent.err.configfile.closed.failed = \u69CB\u6210\u30D5\u30A1\u30A4\u30EB\u3092\u9589\u3058\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
  agent.err.configfile.access.denied = \u69CB\u6210\u30D5\u30A1\u30A4\u30EB\u3078\u306E\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F
@@ -67018,7 +73523,7 @@
  agent.err.agentclass.notfound      = \u7BA1\u7406\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
  agent.err.agentclass.failed        = \u7BA1\u7406\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30AF\u30E9\u30B9\u304C\u5931\u6557\u3057\u307E\u3057\u305F 
 --- ./jdk/src/share/classes/sun/misc/FloatingDecimal.java	2013-09-06 11:28:37.000000000 -0700
-+++ ./jdk/src/share/classes/sun/misc/FloatingDecimal.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/misc/FloatingDecimal.java	2014-07-15 21:49:30.000000000 -0700
 @@ -70,6 +70,15 @@
      static final int    minDecimalExponent = -324;
      static final int    bigDecimalExponent = 324; // i.e. abs(minDecimalExponent)
@@ -67047,7 +73552,7 @@
              exp   = decExponent - nDigits;
  
 --- ./jdk/src/share/classes/sun/misc/InnocuousThread.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/src/share/classes/sun/misc/InnocuousThread.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/misc/InnocuousThread.java	2014-07-15 21:49:30.000000000 -0700
 @@ -0,0 +1,121 @@
 +/*
 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -67171,7 +73676,7 @@
 +    }
 +}
 --- ./jdk/src/share/classes/sun/misc/JavaAWTAccess.java	2013-09-06 11:28:37.000000000 -0700
-+++ ./jdk/src/share/classes/sun/misc/JavaAWTAccess.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/misc/JavaAWTAccess.java	2014-07-15 21:49:30.000000000 -0700
 @@ -26,14 +26,16 @@
  package sun.misc;
  
@@ -67196,7 +73701,14 @@
      public void put(Object key, Object value);
      public void remove(Object key);
 --- ./jdk/src/share/classes/sun/misc/JavaLangAccess.java	2013-09-06 11:28:37.000000000 -0700
-+++ ./jdk/src/share/classes/sun/misc/JavaLangAccess.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/misc/JavaLangAccess.java	2014-10-28 20:19:48.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2014, 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
 @@ -25,6 +25,7 @@
  
  package sun.misc;
@@ -67205,7 +73717,33 @@
  import sun.reflect.ConstantPool;
  import sun.reflect.annotation.AnnotationType;
  import sun.nio.ch.Interruptible;
-@@ -88,4 +89,15 @@
+@@ -34,10 +35,10 @@
+     ConstantPool getConstantPool(Class klass);
+ 
+     /**
+-     * Set the AnnotationType instance corresponding to this class.
++     * Compare-And-Swap the AnnotationType instance corresponding to this class.
+      * (This method only applies to annotation types.)
+      */
+-    void setAnnotationType(Class klass, AnnotationType annotationType);
++    boolean casAnnotationType(Class klass, AnnotationType oldType, AnnotationType newType);
+ 
+     /**
+      * Get the AnnotationType instance corresponding to this class.
+@@ -46,6 +47,12 @@
+     AnnotationType getAnnotationType(Class klass);
+ 
+     /**
++     * Get the array of bytes that is the class-file representation
++     * of this Class' annotations.
++     */
++    byte[] getRawClassAnnotations(Class klass);
++
++    /**
+      * Returns the elements of an enum class or null if the
+      * Class object does not represent an enum type;
+      * the result is uncloned, cached, and shared by all callers.
+@@ -88,4 +95,15 @@
       * Returns the murmur hash value for the specified String.
       */
      int getStringHash32(String string);
@@ -67222,7 +73760,7 @@
 +    void invokeFinalize(Object o) throws Throwable;
  }
 --- ./jdk/src/share/classes/sun/misc/Service.java	2013-09-06 11:28:37.000000000 -0700
-+++ ./jdk/src/share/classes/sun/misc/Service.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/misc/Service.java	2014-07-15 21:49:30.000000000 -0700
 @@ -299,7 +299,7 @@
                  return service.cast(c.newInstance());
              } catch (Throwable x) {
@@ -67233,7 +73771,7 @@
              }
              return null;        /* This cannot happen */
 --- ./jdk/src/share/classes/sun/misc/SharedSecrets.java	2013-09-06 11:28:37.000000000 -0700
-+++ ./jdk/src/share/classes/sun/misc/SharedSecrets.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/misc/SharedSecrets.java	2014-07-15 21:49:30.000000000 -0700
 @@ -197,9 +197,6 @@
      public static JavaAWTAccess getJavaAWTAccess() {
          // this may return null in which case calling code needs to
@@ -67245,7 +73783,7 @@
      }
  }
 --- ./jdk/src/share/classes/sun/misc/ThreadGroupUtils.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/src/share/classes/sun/misc/ThreadGroupUtils.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/misc/ThreadGroupUtils.java	2014-07-15 21:49:30.000000000 -0700
 @@ -0,0 +1,55 @@
 +/*
 + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
@@ -67303,7 +73841,7 @@
 +    }
 +}
 --- ./jdk/src/share/classes/sun/misc/VM.java	2013-09-06 11:28:37.000000000 -0700
-+++ ./jdk/src/share/classes/sun/misc/VM.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/misc/VM.java	2014-07-15 21:49:30.000000000 -0700
 @@ -147,6 +147,7 @@
  
  
@@ -67341,8 +73879,19 @@
      // A user-settable upper limit on the maximum amount of allocatable direct
      // buffer memory.  This value may be changed during VM initialization if
      // "java" is launched with "-XX:MaxDirectMemorySize=".
+--- ./jdk/src/share/classes/sun/net/www/http/ChunkedOutputStream.java	2013-09-06 11:28:38.000000000 -0700
++++ ./jdk/src/share/classes/sun/net/www/http/ChunkedOutputStream.java	2014-10-28 20:19:48.000000000 -0700
+@@ -125,7 +125,7 @@
+         completeHeader = getHeader(preferredChunkDataSize);
+ 
+         /* start with an initial buffer */
+-        buf = new byte[preferredChunkDataSize + 32];
++        buf = new byte[preferredChunkGrossSize];
+         reset();
+     }
+ 
 --- ./jdk/src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java	2013-09-06 11:28:38.000000000 -0700
-+++ ./jdk/src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/nio/ch/AsynchronousSocketChannelImpl.java	2014-07-15 21:49:30.000000000 -0700
 @@ -428,6 +428,10 @@
                      throw new AlreadyBoundException();
                  InetSocketAddress isa = (local == null) ?
@@ -67354,8 +73903,37 @@
                  NetHooks.beforeTcpBind(fd, isa.getAddress(), isa.getPort());
                  Net.bind(fd, isa.getAddress(), isa.getPort());
                  localAddress = Net.localAddress(fd);
+--- ./jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java	2013-09-06 11:28:38.000000000 -0700
++++ ./jdk/src/share/classes/sun/nio/ch/DatagramChannelImpl.java	2014-10-28 20:19:48.000000000 -0700
+@@ -751,6 +751,26 @@
+ 
+                     // set or refresh local address
+                     localAddress = Net.localAddress(fd);
++
++                    // flush any packets already received.
++                    boolean blocking = false;
++                    synchronized (blockingLock()) {
++                        try {
++                            blocking = isBlocking();
++                            // remainder of each packet thrown away
++                            ByteBuffer tmpBuf = ByteBuffer.allocate(1);
++                            if (blocking) {
++                                configureBlocking(false);
++                            }
++                            do {
++                                tmpBuf.clear();
++                            } while (receive(tmpBuf) != null);
++                        } finally {
++                            if (blocking) {
++                                configureBlocking(true);
++                            }
++                        }
++                    }
+                 }
+             }
+         }
 --- ./jdk/src/share/classes/sun/nio/ch/Invoker.java	2013-09-06 11:28:39.000000000 -0700
-+++ ./jdk/src/share/classes/sun/nio/ch/Invoker.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/nio/ch/Invoker.java	2014-07-15 21:49:30.000000000 -0700
 @@ -130,6 +130,18 @@
  
          // clear interrupt
@@ -67376,7 +73954,7 @@
  
      /**
 --- ./jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java	2013-09-06 11:28:39.000000000 -0700
-+++ ./jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/nio/ch/SocketChannelImpl.java	2014-07-15 21:49:30.000000000 -0700
 @@ -599,6 +599,10 @@
                          throw new AlreadyBoundException();
                      InetSocketAddress isa = (local == null) ?
@@ -67389,7 +73967,7 @@
                      Net.bind(fd, isa.getAddress(), isa.getPort());
                      localAddress = Net.localAddress(fd);
 --- ./jdk/src/share/classes/sun/nio/ch/ThreadPool.java	2013-09-06 11:28:39.000000000 -0700
-+++ ./jdk/src/share/classes/sun/nio/ch/ThreadPool.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/nio/ch/ThreadPool.java	2014-07-15 21:49:30.000000000 -0700
 @@ -27,6 +27,7 @@
  
  import java.util.concurrent.*;
@@ -67454,7 +74032,7 @@
          ExecutorService executor =
              new ThreadPoolExecutor(0, Integer.MAX_VALUE,
 --- ./jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java	2013-09-06 11:28:39.000000000 -0700
-+++ ./jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java	2014-07-15 23:24:34.000000000 -0700
++++ ./jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java	2014-07-15 21:49:30.000000000 -0700
 @@ -1031,6 +1031,24 @@
                      "ebcdic-s-871+euro"
                  });
@@ -67481,7 +74059,7 @@
  
  
 --- ./jdk/src/share/classes/sun/nio/cs/ext/IBM300.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/src/share/classes/sun/nio/cs/ext/IBM300.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/sun/nio/cs/ext/IBM300.java	2014-07-15 21:49:30.000000000 -0700
 @@ -0,0 +1,1875 @@
 +/*
 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -69364,7 +75942,7 @@
 -# NIO charset SPI extended charset provider
 -sun.nio.cs.ext.ExtendedCharsets
 --- ./jdk/src/share/classes/sun/print/DocumentPropertiesUI.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/src/share/classes/sun/print/DocumentPropertiesUI.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/sun/print/DocumentPropertiesUI.java	2014-07-15 21:49:30.000000000 -0700
 @@ -0,0 +1,62 @@
 +/*
 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -69429,7 +76007,7 @@
 +
 +}
 --- ./jdk/src/share/classes/sun/print/PSPrinterJob.java	2013-09-06 11:28:40.000000000 -0700
-+++ ./jdk/src/share/classes/sun/print/PSPrinterJob.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/sun/print/PSPrinterJob.java	2014-10-28 20:19:52.000000000 -0700
 @@ -1568,7 +1568,7 @@
          }
  
@@ -69440,7 +76018,7 @@
              execCmd[n++] = "/usr/bin/lpr";
              if ((pFlags & PRINTER) != 0) {
 --- ./jdk/src/share/classes/sun/print/PrinterJobWrapper.java	1969-12-31 16:00:00.000000000 -0800
-+++ ./jdk/src/share/classes/sun/print/PrinterJobWrapper.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/sun/print/PrinterJobWrapper.java	2014-07-15 21:49:30.000000000 -0700
 @@ -0,0 +1,60 @@
 +/*
 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
@@ -69503,7 +76081,7 @@
 +    }
 +}
 --- ./jdk/src/share/classes/sun/print/RasterPrinterJob.java	2013-09-06 11:28:40.000000000 -0700
-+++ ./jdk/src/share/classes/sun/print/RasterPrinterJob.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/sun/print/RasterPrinterJob.java	2014-07-15 21:49:30.000000000 -0700
 @@ -879,6 +879,9 @@
          int x = bounds.x+bounds.width/3;
          int y = bounds.y+bounds.height/3;
@@ -69523,7 +76101,7 @@
          if (newService == null) {
              return false;
 --- ./jdk/src/share/classes/sun/print/ServiceDialog.java	2013-09-06 11:28:40.000000000 -0700
-+++ ./jdk/src/share/classes/sun/print/ServiceDialog.java	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/sun/print/ServiceDialog.java	2014-07-15 21:49:30.000000000 -0700
 @@ -46,6 +46,7 @@
  import java.awt.event.ItemListener;
  import java.awt.event.WindowEvent;
@@ -69578,7 +76156,7 @@
                  }
              }
 --- ./jdk/src/share/classes/sun/print/resources/serviceui_es.properties	2013-09-06 11:28:40.000000000 -0700
-+++ ./jdk/src/share/classes/sun/print/resources/serviceui_es.properties	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/sun/print/resources/serviceui_es.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -36,29 +36,29 @@
  label.pstype=Tipo:
  label.rangeto=A
@@ -69616,7 +76194,7 @@
  # The vkMnemonics correspond with the constants defined in KeyEvent, eg
  # 65 = KeyEvent.VK_A
 --- ./jdk/src/share/classes/sun/print/resources/serviceui_fr.properties	2013-09-06 11:28:40.000000000 -0700
-+++ ./jdk/src/share/classes/sun/print/resources/serviceui_fr.properties	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/sun/print/resources/serviceui_fr.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -29,7 +29,7 @@
  dialog.writeerror=Impossible d'\u00E9crire dans le fichier :
  #
@@ -69665,7 +76243,7 @@
  error.pagerange=Plage de pages non valide. Sp\u00E9cifiez les valeurs de nouveau (ex. : 1-3,5,7-10)
  error.destination=Nom de fichier non valide ; recommencez
 --- ./jdk/src/share/classes/sun/print/resources/serviceui_it.properties	2013-09-06 11:28:40.000000000 -0700
-+++ ./jdk/src/share/classes/sun/print/resources/serviceui_it.properties	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/sun/print/resources/serviceui_it.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -47,8 +47,8 @@
  label.rightmargin=&destro
  #
@@ -69687,7 +76265,7 @@
  tab.pagesetup=Impo&sta pagina
  #
 --- ./jdk/src/share/classes/sun/print/resources/serviceui_pt_BR.properties	2013-09-06 11:28:40.000000000 -0700
-+++ ./jdk/src/share/classes/sun/print/resources/serviceui_pt_BR.properties	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/sun/print/resources/serviceui_pt_BR.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -31,7 +31,7 @@
  label.info=Informa\u00E7\u00F5es:
  label.jobname=Nome do &Job:
@@ -69736,7 +76314,7 @@
  error.pagerange=Faixa de p\u00E1ginas inv\u00E1lida; insira novamente os valores (por exemplo, 1-3,5,7-10)
  error.destination=Nome de arquivo inv\u00E1lido; tente novamente
 --- ./jdk/src/share/classes/sun/print/resources/serviceui_sv.properties	2013-09-06 11:28:40.000000000 -0700
-+++ ./jdk/src/share/classes/sun/print/resources/serviceui_sv.properties	2014-07-15 23:24:36.000000000 -0700
++++ ./jdk/src/share/classes/sun/print/resources/serviceui_sv.properties	2014-07-15 21:49:30.000000000 -0700
 @@ -17,7 +17,7 @@
  button.properties=&Egenskaper...
  #
@@ -69783,8 +76361,448 @@
  #
  error.pagerange=Ogiltigt sidintervall. Skriv in v\u00E4rdena igen (t ex 1-3,5,7-10)
  error.destination=Ogiltigt filnamn. F\u00F6rs\u00F6k igen.
+--- ./jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	2013-09-06 11:28:41.000000000 -0700
++++ ./jdk/src/share/classes/sun/reflect/annotation/AnnotationInvocationHandler.java	2014-10-28 20:19:48.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2014, 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
+@@ -29,7 +29,6 @@
+ import java.lang.reflect.*;
+ import java.io.Serializable;
+ import java.util.*;
+-import java.lang.annotation.*;
+ import java.security.AccessController;
+ import java.security.PrivilegedAction;
+ 
+@@ -45,6 +44,11 @@
+     private final Map memberValues;
+ 
+     AnnotationInvocationHandler(Class type, Map memberValues) {
++        Class[] superInterfaces = type.getInterfaces();
++        if (!type.isAnnotation() ||
++            superInterfaces.length != 1 ||
++            superInterfaces[0] != java.lang.annotation.Annotation.class)
++            throw new AnnotationFormatError("Attempt to create proxy for a non-annotation type.");
+         this.type = type;
+         this.memberValues = memberValues;
+     }
+@@ -57,13 +61,17 @@
+         if (member.equals("equals") && paramTypes.length == 1 &&
+             paramTypes[0] == Object.class)
+             return equalsImpl(args[0]);
+-        assert paramTypes.length == 0;
+-        if (member.equals("toString"))
++        if (paramTypes.length != 0)
++            throw new AssertionError("Too many parameters for an annotation method");
++
++        switch(member) {
++        case "toString":
+             return toStringImpl();
+-        if (member.equals("hashCode"))
++        case "hashCode":
+             return hashCodeImpl();
+-        if (member.equals("annotationType"))
++        case "annotationType":
+             return type;
++        }
+ 
+         // Handle annotation member accessors
+         Object result = memberValues.get(member);
+@@ -129,7 +137,7 @@
+      * Implementation of dynamicProxy.toString()
+      */
+     private String toStringImpl() {
+-        StringBuffer result = new StringBuffer(128);
++        StringBuilder result = new StringBuilder(128);
+         result.append('@');
+         result.append(type.getName());
+         result.append('(');
+@@ -277,6 +285,7 @@
+                 new PrivilegedAction() {
+                     public Method[] run() {
+                         final Method[] mm = type.getDeclaredMethods();
++                        validateAnnotationMethods(mm);
+                         AccessibleObject.setAccessible(mm, true);
+                         return mm;
+                     }
+@@ -287,6 +296,93 @@
+     private transient volatile Method[] memberMethods = null;
+ 
+     /**
++     * Validates that a method is structurally appropriate for an
++     * annotation type. As of Java SE 7, annotation types cannot
++     * contain static methods and the declared methods of an
++     * annotation type must take zero arguments and there are
++     * restrictions on the return type.
++     */
++    private void validateAnnotationMethods(Method[] memberMethods) {
++        /*
++         * Specification citations below are from JLS
++         * 9.6.1. Annotation Type Elements
++         */
++        boolean valid = true;
++        for(Method method : memberMethods) {
++            /*
++             * "By virtue of the AnnotationTypeElementDeclaration
++             * production, a method declaration in an annotation type
++             * declaration cannot have formal parameters, type
++             * parameters, or a throws clause.
++             *
++             * "By virtue of the AnnotationTypeElementModifier
++             * production, a method declaration in an annotation type
++             * declaration cannot be default or static."
++             */
++            if (method.getModifiers() != (Modifier.PUBLIC | Modifier.ABSTRACT) ||
++                method.getParameterTypes().length != 0 ||
++                method.getExceptionTypes().length != 0) {
++                valid = false;
++                break;
++            }
++
++            /*
++             * "It is a compile-time error if the return type of a
++             * method declared in an annotation type is not one of the
++             * following: a primitive type, String, Class, any
++             * parameterized invocation of Class, an enum type
++             * (section 8.9), an annotation type, or an array type
++             * (chapter 10) whose element type is one of the preceding
++             * types."
++             */
++            Class returnType = method.getReturnType();
++            if (returnType.isArray()) {
++                returnType = returnType.getComponentType();
++                if (returnType.isArray()) { // Only single dimensional arrays
++                    valid = false;
++                    break;
++                }
++            }
++
++            if (!((returnType.isPrimitive() && returnType != void.class) ||
++                  returnType == java.lang.String.class ||
++                  returnType == java.lang.Class.class ||
++                  returnType.isEnum() ||
++                  returnType.isAnnotation())) {
++                valid = false;
++                break;
++            }
++
++            /*
++             * "It is a compile-time error if any method declared in an
++             * annotation type has a signature that is
++             * override-equivalent to that of any public or protected
++             * method declared in class Object or in the interface
++             * java.lang.annotation.Annotation."
++             *
++             * The methods in Object or Annotation meeting the other
++             * criteria (no arguments, contrained return type, etc.)
++             * above are:
++             *
++             * String toString()
++             * int hashCode()
++             * Class annotationType()
++             */
++            String methodName = method.getName();
++            if ((methodName.equals("toString") && returnType == java.lang.String.class) ||
++                (methodName.equals("hashCode") && returnType == int.class) ||
++                (methodName.equals("annotationType") && returnType == java.lang.Class.class)) {
++                valid = false;
++                break;
++            }
++        }
++        if (valid)
++            return;
++        else
++            throw new AnnotationFormatError("Malformed method on an annotation type");
++    }
++
++    /**
+      * Implementation of dynamicProxy.hashCode()
+      */
+     private int hashCodeImpl() {
+@@ -330,7 +426,6 @@
+         throws java.io.IOException, ClassNotFoundException {
+         s.defaultReadObject();
+ 
+-
+         // Check to make sure that types have not evolved incompatibly
+ 
+         AnnotationType annotationType = null;
+@@ -343,7 +438,6 @@
+ 
+         Map> memberTypes = annotationType.memberTypes();
+ 
+-
+         // If there are annotation members without values, that
+         // situation is handled by the invoke method.
+         for (Map.Entry memberValue : memberValues.entrySet()) {
+--- ./jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java	2013-09-06 11:28:41.000000000 -0700
++++ ./jdk/src/share/classes/sun/reflect/annotation/AnnotationParser.java	2014-10-28 20:19:48.000000000 -0700
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2003, 2014, 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
+@@ -67,7 +67,35 @@
+             return Collections.emptyMap();
+ 
+         try {
+-            return parseAnnotations2(rawAnnotations, constPool, container);
++            return parseAnnotations2(rawAnnotations, constPool, container, null);
++        } catch(BufferUnderflowException e) {
++            throw new AnnotationFormatError("Unexpected end of annotations.");
++        } catch(IllegalArgumentException e) {
++            // Type mismatch in constant pool
++            throw new AnnotationFormatError(e);
++        }
++    }
++
++    /**
++     * Like {@link #parseAnnotations(byte[], sun.reflect.ConstantPool, Class)}
++     * with an additional parameter {@code selectAnnotationClasses} which selects the
++     * annotation types to parse (other than selected are quickly skipped).

++ * This method is only used to parse select meta annotations in the construction ++ * phase of {@link AnnotationType} instances to prevent infinite recursion. ++ * ++ * @param selectAnnotationClasses an array of annotation types to select when parsing ++ */ ++ @SafeVarargs ++ static Map, Annotation> parseSelectAnnotations( ++ byte[] rawAnnotations, ++ ConstantPool constPool, ++ Class container, ++ Class ... selectAnnotationClasses) { ++ if (rawAnnotations == null) ++ return Collections.emptyMap(); ++ ++ try { ++ return parseAnnotations2(rawAnnotations, constPool, container, selectAnnotationClasses); + } catch(BufferUnderflowException e) { + throw new AnnotationFormatError("Unexpected end of annotations."); + } catch(IllegalArgumentException e) { +@@ -79,22 +107,23 @@ + private static Map, Annotation> parseAnnotations2( + byte[] rawAnnotations, + ConstantPool constPool, +- Class container) { ++ Class container, ++ Class[] selectAnnotationClasses) { + Map, Annotation> result = + new LinkedHashMap, Annotation>(); + ByteBuffer buf = ByteBuffer.wrap(rawAnnotations); + int numAnnotations = buf.getShort() & 0xFFFF; + for (int i = 0; i < numAnnotations; i++) { +- Annotation a = parseAnnotation(buf, constPool, container, false); ++ Annotation a = parseAnnotation2(buf, constPool, container, false, selectAnnotationClasses); + if (a != null) { + Class klass = a.annotationType(); +- AnnotationType type = AnnotationType.getInstance(klass); +- if (type.retention() == RetentionPolicy.RUNTIME) +- if (result.put(klass, a) != null) ++ if (AnnotationType.getInstance(klass).retention() == RetentionPolicy.RUNTIME && ++ result.put(klass, a) != null) { + throw new AnnotationFormatError( + "Duplicate annotation for class: "+klass+": " + a); + } + } ++ } + return result; + } + +@@ -191,6 +220,15 @@ + ConstantPool constPool, + Class container, + boolean exceptionOnMissingAnnotationClass) { ++ return parseAnnotation2(buf, constPool, container, exceptionOnMissingAnnotationClass, null); ++ } ++ ++ @SuppressWarnings("unchecked") ++ private static Annotation parseAnnotation2(ByteBuffer buf, ++ ConstantPool constPool, ++ Class container, ++ boolean exceptionOnMissingAnnotationClass, ++ Class[] selectAnnotationClasses) { + int typeIndex = buf.getShort() & 0xFFFF; + Class annotationClass = null; + String sig = "[unknown]"; +@@ -216,6 +254,10 @@ + skipAnnotation(buf, false); + return null; + } ++ if (selectAnnotationClasses != null && !contains(selectAnnotationClasses, annotationClass)) { ++ skipAnnotation(buf, false); ++ return null; ++ } + AnnotationType type = null; + try { + type = AnnotationType.getInstance(annotationClass); +@@ -791,6 +833,17 @@ + skipMemberValue(buf); + } + ++ /** ++ * Searches for given {@code element} in given {@code array} by identity. ++ * Returns {@code true} if found {@code false} if not. ++ */ ++ private static boolean contains(Object[] array, Object element) { ++ for (Object e : array) ++ if (e == element) ++ return true; ++ return false; ++ } ++ + /* + * This method converts the annotation map returned by the parseAnnotations() + * method to an array. It is called by Field.getDeclaredAnnotations(), +--- ./jdk/src/share/classes/sun/reflect/annotation/AnnotationType.java 2013-09-06 11:28:41.000000000 -0700 ++++ ./jdk/src/share/classes/sun/reflect/annotation/AnnotationType.java 2014-10-28 20:19:48.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2003, 2014, 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 +@@ -25,6 +25,8 @@ + + package sun.reflect.annotation; + ++import sun.misc.JavaLangAccess; ++ + import java.lang.annotation.*; + import java.lang.reflect.*; + import java.util.*; +@@ -45,29 +47,28 @@ + * types. This matches the return value that must be used for a + * dynamic proxy, allowing for a simple isInstance test. + */ +- private final Map> memberTypes = new HashMap>(); ++ private final Map> memberTypes; + + /** + * Member name -> default value mapping. + */ +- private final Map memberDefaults = +- new HashMap(); ++ private final Map memberDefaults; + + /** +- * Member name -> Method object mapping. This (and its assoicated ++ * Member name -> Method object mapping. This (and its associated + * accessor) are used only to generate AnnotationTypeMismatchExceptions. + */ +- private final Map members = new HashMap(); ++ private final Map members; + + /** + * The retention policy for this annotation type. + */ +- private RetentionPolicy retention = RetentionPolicy.RUNTIME;; ++ private final RetentionPolicy retention; + + /** + * Whether this annotation type is inherited. + */ +- private boolean inherited = false; ++ private final boolean inherited; + + /** + * Returns an AnnotationType instance for the specified annotation type. +@@ -75,13 +76,20 @@ + * @throw IllegalArgumentException if the specified class object for + * does not represent a valid annotation type + */ +- public static synchronized AnnotationType getInstance( ++ public static AnnotationType getInstance( + Class annotationClass) + { +- AnnotationType result = sun.misc.SharedSecrets.getJavaLangAccess(). +- getAnnotationType(annotationClass); +- if (result == null) +- result = new AnnotationType((Class) annotationClass); ++ JavaLangAccess jla = sun.misc.SharedSecrets.getJavaLangAccess(); ++ AnnotationType result = jla.getAnnotationType(annotationClass); // volatile read ++ if (result == null) { ++ result = new AnnotationType(annotationClass); ++ // try to CAS the AnnotationType: null -> result ++ if (!jla.casAnnotationType(annotationClass, null, result)) { ++ // somebody was quicker -> read it's result ++ result = jla.getAnnotationType(annotationClass); ++ assert result != null; ++ } ++ } + + return result; + } +@@ -105,6 +113,9 @@ + } + }); + ++ memberTypes = new HashMap>(methods.length+1, 1.0f); ++ memberDefaults = new HashMap(0); ++ members = new HashMap(methods.length+1, 1.0f); + + for (Method method : methods) { + if (method.getParameterTypes().length != 0) +@@ -117,20 +128,27 @@ + Object defaultValue = method.getDefaultValue(); + if (defaultValue != null) + memberDefaults.put(name, defaultValue); +- +- members.put(name, method); + } + +- sun.misc.SharedSecrets.getJavaLangAccess(). +- setAnnotationType(annotationClass, this); +- + // Initialize retention, & inherited fields. Special treatment + // of the corresponding annotation types breaks infinite recursion. + if (annotationClass != Retention.class && + annotationClass != Inherited.class) { +- Retention ret = annotationClass.getAnnotation(Retention.class); ++ JavaLangAccess jla = sun.misc.SharedSecrets.getJavaLangAccess(); ++ Map, Annotation> metaAnnotations = ++ AnnotationParser.parseSelectAnnotations( ++ jla.getRawClassAnnotations(annotationClass), ++ jla.getConstantPool(annotationClass), ++ annotationClass, ++ Retention.class, Inherited.class ++ ); ++ Retention ret = (Retention) metaAnnotations.get(Retention.class); + retention = (ret == null ? RetentionPolicy.CLASS : ret.value()); +- inherited = annotationClass.isAnnotationPresent(Inherited.class); ++ inherited = metaAnnotations.containsKey(Inherited.class); ++ } ++ else { ++ retention = RetentionPolicy.RUNTIME; ++ inherited = false; + } + } + +@@ -205,11 +223,10 @@ + * For debugging. + */ + public String toString() { +- StringBuffer s = new StringBuffer("Annotation Type:" + "\n"); +- s.append(" Member types: " + memberTypes + "\n"); +- s.append(" Member defaults: " + memberDefaults + "\n"); +- s.append(" Retention policy: " + retention + "\n"); +- s.append(" Inherited: " + inherited); +- return s.toString(); ++ return "Annotation Type:\n" + ++ " Member types: " + memberTypes + "\n" + ++ " Member defaults: " + memberDefaults + "\n" + ++ " Retention policy: " + retention + "\n" + ++ " Inherited: " + inherited; + } + } --- ./jdk/src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java 2013-09-06 11:28:41.000000000 -0700 -+++ ./jdk/src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java 2014-07-15 21:49:30.000000000 -0700 @@ -25,13 +25,17 @@ package sun.reflect.generics.reflectiveObjects; @@ -69842,7 +76860,7 @@ GenericDeclaration thatDecl = that.getGenericDeclaration(); --- ./jdk/src/share/classes/sun/reflect/misc/ReflectUtil.java 2013-09-06 11:28:41.000000000 -0700 -+++ ./jdk/src/share/classes/sun/reflect/misc/ReflectUtil.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/reflect/misc/ReflectUtil.java 2014-07-15 21:49:30.000000000 -0700 @@ -26,9 +26,13 @@ package sun.reflect.misc; @@ -69949,7 +76967,7 @@ + } } --- ./jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java 2013-09-06 11:28:41.000000000 -0700 -+++ ./jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/rmi/registry/RegistryImpl.java 2014-07-15 21:49:30.000000000 -0700 @@ -352,7 +352,7 @@ public RegistryImpl run() throws RemoteException { return new RegistryImpl(regPort); @@ -69976,8 +76994,29 @@ perms.add(new RuntimePermission("accessClassInPackage.sun.jvmstat.*")); perms.add(new RuntimePermission("accessClassInPackage.sun.jvm.hotspot.*")); +--- ./jdk/src/share/classes/sun/rmi/rmic/resources/rmic_ja.properties 2013-09-06 11:28:42.000000000 -0700 ++++ ./jdk/src/share/classes/sun/rmi/rmic/resources/rmic_ja.properties 2014-10-28 20:19:48.000000000 -0700 +@@ -1,6 +1,6 @@ + # + # +-# Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 1996, 2014, 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 +@@ -91,8 +91,8 @@ + rmic.warnings=\u8B66\u544A{0}\u500B + rmic.1warning=\u8B66\u544A1\u500B + rmic.done_in=[{0}\u30DF\u30EA\u79D2\u3067\u5B8C\u4E86] +-rmic.no.memory=\u30B3\u30F3\u30D1\u30A4\u30E9\u306B\u30E1\u30E2\u30EA\u30FC\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\u3002"-J-Xmx"\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u3001\u6700\u5927\u30D2\u30FC\u30D7\u30FB\u30B5\u30A4\u30BA\u3092\u5897\u3084\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +-rmic.stack.overflow=\u30B3\u30F3\u30D1\u30A4\u30E9\u306B\u30B9\u30BF\u30C3\u30AF\u7A7A\u9593\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\u3002"-J-Xss"\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u3001Java\u30B9\u30BF\u30C3\u30AF\u306B\u5272\u308A\u5F53\u3066\u308B\u30E1\u30E2\u30EA\u30FC\u3092\u5897\u3084\u3057\u3066\u304F\u3060\u3055\u3044\u3002 ++rmic.no.memory=\u30B3\u30F3\u30D1\u30A4\u30E9\u306B\u30E1\u30E2\u30EA\u30FC\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\u3002"-J-Xmx"\u30B3\u30DE\u30F3\u30C9\u884C\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u3001\u6700\u5927\u30D2\u30FC\u30D7\u30FB\u30B5\u30A4\u30BA\u3092\u5897\u3084\u3057\u3066\u304F\u3060\u3055\u3044\u3002 ++rmic.stack.overflow=\u30B3\u30F3\u30D1\u30A4\u30E9\u306B\u30B9\u30BF\u30C3\u30AF\u7A7A\u9593\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\u3002"-J-Xss"\u30B3\u30DE\u30F3\u30C9\u884C\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u3001Java\u30B9\u30BF\u30C3\u30AF\u306B\u5272\u308A\u5F53\u3066\u308B\u30E1\u30E2\u30EA\u30FC\u3092\u5897\u3084\u3057\u3066\u304F\u3060\u3055\u3044\u3002 + rmic.class.not.found=\u30AF\u30E9\u30B9{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 + rmic.missing.property=\u30D7\u30ED\u30D1\u30C6\u30A3generator.class.{0}\u304C\u3042\u308A\u307E\u305B\u3093 + rmic.cannot.instantiate=\u30AF\u30E9\u30B9{0}\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u751F\u6210\u3067\u304D\u307E\u305B\u3093 --- ./jdk/src/share/classes/sun/rmi/server/resources/rmid_ko.properties 2013-09-06 11:28:42.000000000 -0700 -+++ ./jdk/src/share/classes/sun/rmi/server/resources/rmid_ko.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/rmi/server/resources/rmid_ko.properties 2014-07-15 21:49:30.000000000 -0700 @@ -87,7 +87,7 @@ rmid.restart.service.warning=\nrmid: (\uACBD\uACE0) \uC11C\uBE44\uC2A4 \uC7AC\uC2DC\uC791\uC73C\uB85C \uC778\uD574 \uBC1C\uC0DD\uD55C \uC624\uB958: @@ -69988,7 +77027,7 @@ # "rmid" should not be translated rmid.log.snapshot.warning=\nrmid: (\uC2EC\uAC01) \uB85C\uADF8 \uC2A4\uB0C5\uC0F7\uC73C\uB85C \uC778\uD574 \uBC1C\uC0DD\uD55C \uC624\uB958: --- ./jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java 2013-09-06 11:28:42.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java 2014-07-15 21:54:44.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. @@ -70040,7 +77079,7 @@ - private static native byte[] getEncodedBytes(long handle); } --- ./jdk/src/share/classes/sun/security/ec/ECPrivateKeyImpl.java 2013-09-06 11:28:42.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/ec/ECPrivateKeyImpl.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/ec/ECPrivateKeyImpl.java 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. @@ -70062,7 +77101,7 @@ - } --- ./jdk/src/share/classes/sun/security/internal/spec/TlsRsaPremasterSecretParameterSpec.java 2013-09-06 11:28:42.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/internal/spec/TlsRsaPremasterSecretParameterSpec.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/internal/spec/TlsRsaPremasterSecretParameterSpec.java 2014-10-28 20:19:48.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. @@ -70070,81 +77109,157 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -45,11 +45,12 @@ +@@ -26,11 +26,11 @@ + package sun.security.internal.spec; - private final int majorVersion; - private final int minorVersion; -+ private final byte[] encodedSecret; + import java.security.spec.AlgorithmParameterSpec; ++import java.security.AccessController; ++import java.security.PrivilegedAction; + + /** +- * Parameters for SSL/TLS RSA Premaster secret generation. +- * This class is used by SSL/TLS client to initialize KeyGenerators of the +- * type "TlsRsaPremasterSecret". ++ * Parameters for SSL/TLS RSA premaster secret. + * + *

Instances of this class are immutable. + * +@@ -43,45 +43,108 @@ + public class TlsRsaPremasterSecretParameterSpec + implements AlgorithmParameterSpec { + +- private final int majorVersion; +- private final int minorVersion; ++ /* ++ * The TLS spec says that the version in the RSA premaster secret must ++ * be the maximum version supported by the client (i.e. the version it ++ * requested in its client hello version). However, we (and other ++ * implementations) used to send the active negotiated version. The ++ * system property below allows to toggle the behavior. ++ */ ++ private final static String PROP_NAME = ++ "com.sun.net.ssl.rsaPreMasterSecretFix"; ++ ++ /* ++ * Default is "false" (old behavior) for compatibility reasons in ++ * SSLv3/TLSv1. Later protocols (TLSv1.1+) do not use this property. ++ */ ++ private final static boolean rsaPreMasterSecretFix = ++ AccessController.doPrivileged(new PrivilegedAction() { ++ public Boolean run() { ++ String value = System.getProperty(PROP_NAME); ++ if (value != null && value.equalsIgnoreCase("true")) { ++ return Boolean.TRUE; ++ } ++ ++ return Boolean.FALSE; ++ } ++ }); ++ ++ private final int clientVersion; ++ private final int serverVersion; /** * Constructs a new TlsRsaPremasterSecretParameterSpec. -- * + * - *

The version numbers will be placed inside the premaster secret to -+ *

-+ * The version numbers will be placed inside the premaster secret to - * detect version rollbacks attacks as described in the TLS specification. - * Note that they do not indicate the protocol version negotiated for - * the handshake. -@@ -65,7 +66,42 @@ - this.majorVersion = - TlsMasterSecretParameterSpec.checkVersion(majorVersion); - this.minorVersion = +- * detect version rollbacks attacks as described in the TLS specification. +- * Note that they do not indicate the protocol version negotiated for +- * the handshake. +- * +- * @param majorVersion the major number of the protocol version +- * @param minorVersion the minor number of the protocol version +- * +- * @throws IllegalArgumentException if minorVersion or majorVersion are +- * negative or larger than 255 +- */ +- public TlsRsaPremasterSecretParameterSpec(int majorVersion, +- int minorVersion) { +- this.majorVersion = +- TlsMasterSecretParameterSpec.checkVersion(majorVersion); +- this.minorVersion = - TlsMasterSecretParameterSpec.checkVersion(minorVersion); } -+ TlsMasterSecretParameterSpec.checkVersion(minorVersion); -+ this.encodedSecret = null; ++ * @param clientVersion the version of the TLS protocol by which the ++ * client wishes to communicate during this session ++ * @param serverVersion the negotiated version of the TLS protocol which ++ * contains the lower of that suggested by the client in the client ++ * hello and the highest supported by the server. ++ * ++ * @throws IllegalArgumentException if clientVersion or serverVersion are ++ * negative or larger than (2^16 - 1) ++ */ ++ public TlsRsaPremasterSecretParameterSpec( ++ int clientVersion, int serverVersion) { ++ ++ this.clientVersion = checkVersion(clientVersion); ++ this.serverVersion = checkVersion(serverVersion); + } + + /** -+ * Constructs a new TlsRsaPremasterSecretParameterSpec. -+ *

-+ * The version numbers will be placed inside the premaster secret to -+ * detect version rollbacks attacks as described in the TLS specification. -+ * Note that they do not indicate the protocol version negotiated for -+ * the handshake. -+ *

-+ * Usually, the encoded secret key is a random number that acts as -+ * dummy pre_master_secret to avoid vulnerabilities described by -+ * section 7.4.7.1, RFC 5246. ++ * Returns the version of the TLS protocol by which the client wishes to ++ * communicate during this session. + * -+ * @param majorVersion the major number of the protocol version -+ * @param minorVersion the minor number of the protocol version -+ * @param encodedSecret the encoded secret key -+ * -+ * @throws IllegalArgumentException if minorVersion or majorVersion are -+ * negative or larger than 255, or encodedSecret is not exactly 48 bytes. ++ * @return the version of the TLS protocol in ClientHello message + */ -+ public TlsRsaPremasterSecretParameterSpec(int majorVersion, -+ int minorVersion, byte[] encodedSecret) { -+ this.majorVersion = -+ TlsMasterSecretParameterSpec.checkVersion(majorVersion); -+ this.minorVersion = -+ TlsMasterSecretParameterSpec.checkVersion(minorVersion); -+ -+ if (encodedSecret == null || encodedSecret.length != 48) { -+ throw new IllegalArgumentException( -+ "Encoded secret is not exactly 48 bytes"); -+ } -+ this.encodedSecret = encodedSecret.clone(); ++ public int getClientVersion() { ++ return clientVersion; + } /** - * Returns the major version. -@@ -84,4 +120,13 @@ - public int getMinorVersion() { - return minorVersion; - } +- * Returns the major version. ++ * Returns the negotiated version of the TLS protocol which contains the ++ * lower of that suggested by the client in the client hello and the ++ * highest supported by the server. + * +- * @return the major version. ++ * @return the negotiated version of the TLS protocol in ServerHello message ++ */ ++ public int getServerVersion() { ++ return serverVersion; ++ } + + /** -+ * Returns the encoded secret. ++ * Returns the major version used in RSA premaster secret. + * -+ * @return the encoded secret, may be null if no encoded secret. -+ */ -+ public byte[] getEncodedSecret() { -+ return encodedSecret == null ? null : encodedSecret.clone(); ++ * @return the major version used in RSA premaster secret. + */ + public int getMajorVersion() { +- return majorVersion; ++ if (rsaPreMasterSecretFix || clientVersion >= 0x0302) { ++ // 0x0302: TLSv1.1 ++ return (clientVersion >>> 8) & 0xFF; ++ } ++ ++ return (serverVersion >>> 8) & 0xFF; + } + + /** +- * Returns the minor version. ++ * Returns the minor version used in RSA premaster secret. + * +- * @return the minor version. ++ * @return the minor version used in RSA premaster secret. + */ + public int getMinorVersion() { +- return minorVersion; ++ if (rsaPreMasterSecretFix || clientVersion >= 0x0302) { ++ // 0x0302: TLSv1.1 ++ return clientVersion & 0xFF; ++ } ++ ++ return serverVersion & 0xFF; + } ++ ++ private int checkVersion(int version) { ++ if ((version < 0) || (version > 0xFFFF)) { ++ throw new IllegalArgumentException( ++ "Version must be between 0 and 65,535"); ++ } ++ return version; + } } --- ./jdk/src/share/classes/sun/security/jgss/GSSCredentialImpl.java 2013-09-06 11:28:42.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/jgss/GSSCredentialImpl.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/jgss/GSSCredentialImpl.java 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. @@ -70162,7 +77277,7 @@ } catch (GSSException e) { // skip to next element --- ./jdk/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java 2013-09-06 11:28:43.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/jgss/spnego/SpNegoContext.java 2014-07-15 21:49:30.000000000 -0700 @@ -525,6 +525,10 @@ // get the mechanism token @@ -70175,7 +77290,7 @@ /* * Select the best match between the list of mechs --- ./jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java 2013-09-06 11:28:43.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java 2014-10-28 20:19:52.000000000 -0700 @@ -83,7 +83,8 @@ String osname = System.getProperty("os.name"); if (osname.startsWith("SunOS")) { @@ -70187,7 +77302,7 @@ "libgssapi.so", "libgssapi_krb5.so", --- ./jdk/src/share/classes/sun/security/krb5/Credentials.java 2013-09-06 11:28:43.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/krb5/Credentials.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/krb5/Credentials.java 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. @@ -70232,7 +77347,7 @@ } return result; --- ./jdk/src/share/classes/sun/security/krb5/KdcComm.java 2013-09-06 11:28:43.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/krb5/KdcComm.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/krb5/KdcComm.java 2014-07-15 21:49:30.000000000 -0700 @@ -239,11 +239,15 @@ savedException = e; } @@ -70254,7 +77369,7 @@ } return ibuf; --- ./jdk/src/share/classes/sun/security/krb5/Realm.java 2013-09-06 11:28:43.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/krb5/Realm.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/krb5/Realm.java 2014-07-15 21:49:30.000000000 -0700 @@ -34,6 +34,7 @@ import sun.security.krb5.internal.Krb5; import sun.security.util.*; @@ -70732,7 +77847,7 @@ - } --- ./jdk/src/share/classes/sun/security/krb5/internal/CredentialsUtil.java 2013-09-06 11:28:43.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/krb5/internal/CredentialsUtil.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/krb5/internal/CredentialsUtil.java 2014-07-15 21:49:30.000000000 -0700 @@ -155,13 +155,11 @@ } @@ -70751,7 +77866,7 @@ tempService = new ServiceName( --- ./jdk/src/share/classes/sun/security/krb5/internal/NetClient.java 2013-09-06 11:28:43.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/krb5/internal/NetClient.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/krb5/internal/NetClient.java 2014-07-15 21:49:30.000000000 -0700 @@ -31,6 +31,8 @@ package sun.security.krb5.internal; @@ -70783,7 +77898,7 @@ } --- ./jdk/src/share/classes/sun/security/pkcs/PKCS8Key.java 2013-09-06 11:28:44.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/pkcs/PKCS8Key.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/pkcs/PKCS8Key.java 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2004, Oracle and/or its affiliates. All rights reserved. @@ -70810,7 +77925,7 @@ * Initialize an PKCS8Key object from an input stream. The data * on that input stream must be encoded using DER, obeying the --- ./jdk/src/share/classes/sun/security/pkcs11/P11Key.java 2013-09-06 11:28:44.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/pkcs11/P11Key.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/pkcs11/P11Key.java 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. @@ -70900,7 +78015,7 @@ private static final class P11ECPublicKey extends P11Key --- ./jdk/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java 2013-09-06 11:28:44.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/pkcs11/P11KeyAgreement.java 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. @@ -70918,7 +78033,7 @@ key = new SecretKeySpec(newBytes, algorithm); } --- ./jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java 2013-09-06 11:28:44.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java 2014-10-28 20:19:48.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. @@ -70926,15 +78041,113 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -451,30 +451,7 @@ +@@ -37,6 +37,8 @@ + import static sun.security.pkcs11.TemplateManager.*; + import sun.security.pkcs11.wrapper.*; + import static sun.security.pkcs11.wrapper.PKCS11Constants.*; ++import sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec; ++import sun.security.util.KeyUtil; + + /** + * RSA Cipher implementation class. We currently only support +@@ -102,6 +104,12 @@ + // maximum output size. this is the length of the key + private int outputSize; + ++ // cipher parameter for TLS RSA premaster secret ++ private AlgorithmParameterSpec spec = null; ++ ++ // the source of randomness ++ private SecureRandom random; ++ + P11RSACipher(Token token, String algorithm, long mechanism) + throws PKCS11Exception { + super(); +@@ -165,8 +173,12 @@ + AlgorithmParameterSpec params, SecureRandom random) + throws InvalidKeyException, InvalidAlgorithmParameterException { + if (params != null) { +- throw new InvalidAlgorithmParameterException +- ("Parameters not supported"); ++ if (!(params instanceof TlsRsaPremasterSecretParameterSpec)) { ++ throw new InvalidAlgorithmParameterException( ++ "Parameters not supported"); ++ } ++ spec = params; ++ this.random = random; // for TLS RSA premaster secret + } + implInit(opmode, key); + } +@@ -176,8 +188,8 @@ + SecureRandom random) + throws InvalidKeyException, InvalidAlgorithmParameterException { + if (params != null) { +- throw new InvalidAlgorithmParameterException +- ("Parameters not supported"); ++ throw new InvalidAlgorithmParameterException( ++ "Parameters not supported"); + } + implInit(opmode, key); + } +@@ -451,46 +463,103 @@ // see JCE spec protected Key engineUnwrap(byte[] wrappedKey, String algorithm, int type) throws InvalidKeyException, NoSuchAlgorithmException { - if (algorithm.equals("TlsRsaPremasterSecret")) { - // the instance variable "session" has been initialized for - // decrypt mode, so use a local variable instead. -- Session s = null; -- try { ++ ++ boolean isTlsRsaPremasterSecret = ++ algorithm.equals("TlsRsaPremasterSecret"); ++ Exception failover = null; ++ ++ SecureRandom secureRandom = random; ++ if (secureRandom == null && isTlsRsaPremasterSecret) { ++ secureRandom = new SecureRandom(); ++ } ++ ++ // Should C_Unwrap be preferred for non-TLS RSA premaster secret? ++ if (token.supportsRawSecretKeyImport()) { ++ // XXX implement unwrap using C_Unwrap() for all keys ++ implInit(Cipher.DECRYPT_MODE, p11Key); ++ if (wrappedKey.length > maxInputSize) { ++ throw new InvalidKeyException("Key is too long for unwrapping"); ++ } ++ ++ byte[] encoded = null; ++ implUpdate(wrappedKey, 0, wrappedKey.length); ++ try { ++ encoded = doFinal(); ++ } catch (BadPaddingException e) { ++ if (isTlsRsaPremasterSecret) { ++ failover = e; ++ } else { ++ throw new InvalidKeyException("Unwrapping failed", e); ++ } ++ } catch (IllegalBlockSizeException e) { ++ // should not occur, handled with length check above ++ throw new InvalidKeyException("Unwrapping failed", e); ++ } ++ ++ if (isTlsRsaPremasterSecret) { ++ if (!(spec instanceof TlsRsaPremasterSecretParameterSpec)) { ++ throw new IllegalStateException( ++ "No TlsRsaPremasterSecretParameterSpec specified"); ++ } ++ ++ // polish the TLS premaster secret ++ TlsRsaPremasterSecretParameterSpec psps = ++ (TlsRsaPremasterSecretParameterSpec)spec; ++ encoded = KeyUtil.checkTlsPreMasterSecretKey( ++ psps.getClientVersion(), psps.getServerVersion(), ++ secureRandom, encoded, (failover != null)); ++ } ++ ++ return ConstructKeys.constructKey(encoded, algorithm, type); ++ } else { + Session s = null; ++ SecretKey secretKey = null; + try { - s = token.getObjSession(); - long keyType = CKK_GENERIC_SECRET; - CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { @@ -70950,16 +78163,107 @@ - attributes); - } catch (PKCS11Exception e) { - throw new InvalidKeyException("unwrap() failed", e); -- } finally { -- token.releaseSession(s); -- } -- } ++ try { ++ s = token.getObjSession(); ++ long keyType = CKK_GENERIC_SECRET; ++ CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[] { ++ new CK_ATTRIBUTE(CKA_CLASS, CKO_SECRET_KEY), ++ new CK_ATTRIBUTE(CKA_KEY_TYPE, keyType), ++ }; ++ attributes = token.getAttributes( ++ O_IMPORT, CKO_SECRET_KEY, keyType, attributes); ++ long keyID = token.p11.C_UnwrapKey(s.id(), ++ new CK_MECHANISM(mechanism), p11Key.keyID, ++ wrappedKey, attributes); ++ secretKey = P11Key.secretKey(s, keyID, ++ algorithm, 48 << 3, attributes); ++ } catch (PKCS11Exception e) { ++ if (isTlsRsaPremasterSecret) { ++ failover = e; ++ } else { ++ throw new InvalidKeyException("unwrap() failed", e); ++ } ++ } + - // XXX implement unwrap using C_Unwrap() for all keys - implInit(Cipher.DECRYPT_MODE, p11Key); - if (wrappedKey.length > maxInputSize) { ++ if (isTlsRsaPremasterSecret) { ++ byte[] replacer = new byte[48]; ++ if (failover == null) { ++ // Does smart compiler dispose this operation? ++ secureRandom.nextBytes(replacer); ++ } ++ ++ TlsRsaPremasterSecretParameterSpec psps = ++ (TlsRsaPremasterSecretParameterSpec)spec; ++ ++ // Please use the tricky failover and replacer byte array ++ // as the parameters so that smart compiler won't dispose ++ // the unused variable . ++ secretKey = polishPreMasterSecretKey(token, s, ++ failover, replacer, secretKey, ++ psps.getClientVersion(), psps.getServerVersion()); ++ } ++ ++ return secretKey; + } finally { + token.releaseSession(s); + } + } +- // XXX implement unwrap using C_Unwrap() for all keys +- implInit(Cipher.DECRYPT_MODE, p11Key); +- if (wrappedKey.length > maxInputSize) { +- throw new InvalidKeyException("Key is too long for unwrapping"); +- } +- implUpdate(wrappedKey, 0, wrappedKey.length); +- try { +- byte[] encoded = doFinal(); +- return ConstructKeys.constructKey(encoded, algorithm, type); +- } catch (BadPaddingException e) { +- // should not occur +- throw new InvalidKeyException("Unwrapping failed", e); +- } catch (IllegalBlockSizeException e) { +- // should not occur, handled with length check above +- throw new InvalidKeyException("Unwrapping failed", e); +- } + } + + // see JCE spec +@@ -498,6 +567,34 @@ + int n = P11KeyFactory.convertKey(token, key, algorithm).length(); + return n; + } ++ ++ private static SecretKey polishPreMasterSecretKey( ++ Token token, Session session, ++ Exception failover, byte[] replacer, SecretKey secretKey, ++ int clientVersion, int serverVersion) { ++ ++ if (failover != null) { ++ CK_VERSION version = new CK_VERSION( ++ (clientVersion >>> 8) & 0xFF, clientVersion & 0xFF); ++ try { ++ CK_ATTRIBUTE[] attributes = token.getAttributes( ++ O_GENERATE, CKO_SECRET_KEY, ++ CKK_GENERIC_SECRET, new CK_ATTRIBUTE[0]); ++ long keyID = token.p11.C_GenerateKey(session.id(), ++ // new CK_MECHANISM(CKM_TLS_PRE_MASTER_KEY_GEN, version), ++ new CK_MECHANISM(CKM_SSL3_PRE_MASTER_KEY_GEN, version), ++ attributes); ++ return P11Key.secretKey(session, ++ keyID, "TlsRsaPremasterSecret", 48 << 3, attributes); ++ } catch (PKCS11Exception e) { ++ throw new ProviderException( ++ "Could not generate premaster secret", e); ++ } ++ } ++ ++ return secretKey; ++ } ++ + } + + final class ConstructKeys { --- ./jdk/src/share/classes/sun/security/pkcs11/P11Signature.java 2013-09-06 11:28:44.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/pkcs11/P11Signature.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/pkcs11/P11Signature.java 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. @@ -70987,7 +78291,7 @@ // r and s each occupy half the array byte[] res = new byte[k << 1]; --- ./jdk/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java 2013-09-06 11:28:44.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/pkcs11/P11TlsRsaPremasterSecretGenerator.java 2014-10-28 20:19:48.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. @@ -70995,58 +78299,56 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -88,23 +88,33 @@ +@@ -73,7 +73,7 @@ + + protected void engineInit(AlgorithmParameterSpec params, + SecureRandom random) throws InvalidAlgorithmParameterException { +- if (params instanceof TlsRsaPremasterSecretParameterSpec == false) { ++ if (!(params instanceof TlsRsaPremasterSecretParameterSpec)) { + throw new InvalidAlgorithmParameterException(MSG); + } + this.spec = (TlsRsaPremasterSecretParameterSpec)params; +@@ -83,25 +83,29 @@ + throw new InvalidParameterException(MSG); + } + ++ // Only can be used in client side to generate TLS RSA premaster secret. + protected SecretKey engineGenerateKey() { + if (spec == null) { throw new IllegalStateException ("TlsRsaPremasterSecretGenerator must be initialized"); } - CK_VERSION version = - new CK_VERSION(spec.getMajorVersion(), spec.getMinorVersion()); -- Session session = null; -- try { -- session = token.getObjSession(); ++ ++ CK_VERSION version = new CK_VERSION( ++ spec.getMajorVersion(), spec.getMinorVersion()); + Session session = null; + try { + session = token.getObjSession(); - CK_ATTRIBUTE[] attributes = token.getAttributes - (O_GENERATE, CKO_SECRET_KEY, CKK_GENERIC_SECRET, new CK_ATTRIBUTE[0]); - long keyID = token.p11.C_GenerateKey - (session.id(), new CK_MECHANISM(mechanism, version), attributes); - SecretKey key = P11Key.secretKey - (session, keyID, "TlsRsaPremasterSecret", 48 << 3, attributes); -- return key; -- } catch (PKCS11Exception e) { ++ CK_ATTRIBUTE[] attributes = token.getAttributes( ++ O_GENERATE, CKO_SECRET_KEY, ++ CKK_GENERIC_SECRET, new CK_ATTRIBUTE[0]); ++ long keyID = token.p11.C_GenerateKey(session.id(), ++ new CK_MECHANISM(mechanism, version), attributes); ++ SecretKey key = P11Key.secretKey(session, ++ keyID, "TlsRsaPremasterSecret", 48 << 3, attributes); + return key; + } catch (PKCS11Exception e) { - throw new ProviderException("Could not generate premaster secret", e); -- } finally { -- token.releaseSession(session); -+ -+ byte[] b = spec.getEncodedSecret(); -+ if (b == null) { -+ CK_VERSION version = new CK_VERSION( -+ spec.getMajorVersion(), spec.getMinorVersion()); -+ Session session = null; -+ try { -+ session = token.getObjSession(); -+ CK_ATTRIBUTE[] attributes = token.getAttributes( -+ O_GENERATE, CKO_SECRET_KEY, -+ CKK_GENERIC_SECRET, new CK_ATTRIBUTE[0]); -+ long keyID = token.p11.C_GenerateKey(session.id(), -+ new CK_MECHANISM(mechanism, version), attributes); -+ SecretKey key = P11Key.secretKey(session, -+ keyID, "TlsRsaPremasterSecret", 48 << 3, attributes); -+ return key; -+ } catch (PKCS11Exception e) { -+ throw new ProviderException( -+ "Could not generate premaster secret", e); -+ } finally { -+ token.releaseSession(session); -+ } ++ throw new ProviderException( ++ "Could not generate premaster secret", e); + } finally { + token.releaseSession(session); } -+ -+ // Won't worry, the TlsRsaPremasterSecret will be soon converted to -+ // TlsMasterSecret. -+ return new SecretKeySpec(b, "TlsRsaPremasterSecret"); - } - - } --- ./jdk/src/share/classes/sun/security/pkcs11/P11Util.java 2013-09-06 11:28:44.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/pkcs11/P11Util.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/pkcs11/P11Util.java 2014-07-15 21:49:31.000000000 -0700 @@ -131,20 +131,6 @@ return b; } @@ -71068,8 +78370,65 @@ public static byte[] getMagnitude(BigInteger bi) { byte[] b = bi.toByteArray(); if ((b.length > 1) && (b[0] == 0)) { +--- ./jdk/src/share/classes/sun/security/pkcs11/Token.java 2013-09-06 11:28:44.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/pkcs11/Token.java 2014-10-28 20:19:48.000000000 -0700 +@@ -35,6 +35,7 @@ + import sun.security.jca.JCAUtil; + + import sun.security.pkcs11.wrapper.*; ++import static sun.security.pkcs11.TemplateManager.*; + import static sun.security.pkcs11.wrapper.PKCS11Constants.*; + + /** +@@ -121,6 +122,9 @@ + private final static CK_MECHANISM_INFO INVALID_MECH = + new CK_MECHANISM_INFO(0, 0, 0); + ++ // flag indicating whether the token supports raw secret key material import ++ private Boolean supportsRawSecretKeyImport; ++ + Token(SunPKCS11 provider) throws PKCS11Exception { + this.provider = provider; + this.removable = provider.removable; +@@ -159,6 +163,36 @@ + return writeProtected; + } + ++ // return whether the token supports raw secret key material import ++ boolean supportsRawSecretKeyImport() { ++ if (supportsRawSecretKeyImport == null) { ++ SecureRandom random = JCAUtil.getSecureRandom(); ++ byte[] encoded = new byte[48]; ++ random.nextBytes(encoded); ++ ++ CK_ATTRIBUTE[] attributes = new CK_ATTRIBUTE[3]; ++ attributes[0] = new CK_ATTRIBUTE(CKA_CLASS, CKO_SECRET_KEY); ++ attributes[1] = new CK_ATTRIBUTE(CKA_KEY_TYPE, CKK_GENERIC_SECRET); ++ attributes[2] = new CK_ATTRIBUTE(CKA_VALUE, encoded); ++ ++ Session session = null; ++ try { ++ attributes = getAttributes(O_IMPORT, ++ CKO_SECRET_KEY, CKK_GENERIC_SECRET, attributes); ++ session = getObjSession(); ++ long keyID = p11.C_CreateObject(session.id(), attributes); ++ ++ supportsRawSecretKeyImport = Boolean.TRUE; ++ } catch (PKCS11Exception e) { ++ supportsRawSecretKeyImport = Boolean.FALSE; ++ } finally { ++ releaseSession(session); ++ } ++ } ++ ++ return supportsRawSecretKeyImport; ++ } ++ + // return whether we are logged in + // uses cached result if current. session is optional and may be null + boolean isLoggedIn(Session session) throws PKCS11Exception { --- ./jdk/src/share/classes/sun/security/provider/ByteArrayAccess.java 2013-09-06 11:28:44.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/provider/ByteArrayAccess.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/provider/ByteArrayAccess.java 2014-07-15 21:49:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved. @@ -71216,7 +78575,7 @@ - } --- ./jdk/src/share/classes/sun/security/provider/DSAPrivateKey.java 2013-09-06 11:28:44.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/provider/DSAPrivateKey.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/provider/DSAPrivateKey.java 2014-07-15 21:49:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2002, Oracle and/or its affiliates. All rights reserved. @@ -71237,7 +78596,7 @@ try { DerInputStream in = new DerInputStream(key); --- ./jdk/src/share/classes/sun/security/provider/SeedGenerator.java 2013-09-06 11:28:44.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/provider/SeedGenerator.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/provider/SeedGenerator.java 2014-07-15 21:49:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. @@ -71289,7 +78648,7 @@ * Helper function to convert a long into a byte array (least significant * byte first). --- ./jdk/src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/provider/certpath/AlgorithmChecker.java 2014-07-15 21:49:31.000000000 -0700 @@ -75,7 +75,7 @@ private PublicKey prevPubKey; @@ -71300,7 +78659,7 @@ private final static DisabledAlgorithmConstraints certPathDefaultConstraints = new DisabledAlgorithmConstraints( --- ./jdk/src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/provider/certpath/ldap/LDAPCertStore.java 2014-07-15 21:49:31.000000000 -0700 @@ -50,6 +50,7 @@ import sun.security.util.Cache; import sun.security.util.Debug; @@ -71343,7 +78702,7 @@ ctx = new InitialDirContext(env); /* --- ./jdk/src/share/classes/sun/security/rsa/RSACore.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/rsa/RSACore.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/rsa/RSACore.java 2014-07-15 21:54:45.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. @@ -71743,7 +79102,7 @@ } --- ./jdk/src/share/classes/sun/security/rsa/RSAPadding.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/rsa/RSAPadding.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/rsa/RSAPadding.java 2014-07-15 21:49:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. @@ -72017,7 +79376,7 @@ - } --- ./jdk/src/share/classes/sun/security/rsa/RSAPrivateCrtKeyImpl.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/rsa/RSAPrivateCrtKeyImpl.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/rsa/RSAPrivateCrtKeyImpl.java 2014-07-15 21:49:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. @@ -72056,7 +79415,7 @@ - } --- ./jdk/src/share/classes/sun/security/rsa/RSAPrivateKeyImpl.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/rsa/RSAPrivateKeyImpl.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/rsa/RSAPrivateKeyImpl.java 2014-07-15 21:49:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. @@ -72076,16 +79435,284 @@ - } - } ---- ./jdk/src/share/classes/sun/security/ssl/Handshaker.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/Handshaker.java 2014-07-15 23:24:36.000000000 -0700 +--- ./jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java 2013-09-06 11:28:45.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java 2014-10-28 20:19:48.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1996, 2014, 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 -@@ -1047,94 +1047,22 @@ +@@ -36,6 +36,8 @@ + + import java.security.cert.X509Certificate; + import java.security.cert.CertificateException; ++import java.security.cert.CertificateParsingException; ++import javax.security.auth.x500.X500Principal; + + import javax.crypto.SecretKey; + import javax.crypto.spec.SecretKeySpec; +@@ -93,6 +95,60 @@ + Debug.getBooleanProperty("jsse.enableSNIExtension", true); + + /* ++ * Allow unsafe server certificate change? ++ * ++ * Server certificate change during SSL/TLS renegotiation may be considered ++ * unsafe, as described in the Triple Handshake attacks: ++ * ++ * https://secure-resumption.com/tlsauth.pdf ++ * ++ * Endpoint identification (See ++ * SSLParameters.getEndpointIdentificationAlgorithm()) is a pretty nice ++ * guarantee that the server certificate change in the renegotiation is legal. ++ * However, endpoint identification is only enabled for HTTPS and LDAP ++ * over SSL/TLS by default. It is not enough to protect SSL/TLS ++ * connections other than HTTPS and LDAP. ++ * ++ * The renegotiation indication extension (See RFC 5764) is a pretty ++ * strong guarantee that the endpoints on both client and server sides ++ * are identical on the same connection. However, the Triple Handshake ++ * attacks can bypass this guarantee if there is a session-resumption ++ * handshake between the initial full handshake and the renegotiation ++ * full handshake. ++ * ++ * Server certificate change may be unsafe and should be restricted if ++ * endpoint identification is not enabled and the previous handshake is ++ * a session-resumption abbreviated initial handshake, unless the ++ * identities reproesented by both certificates can be regraded as the ++ * same (See isIdentityEquivalent()). ++ * ++ * Considering the compatibility impact and the actual requirements to ++ * support server certificate change in practice, the system property, ++ * jdk.tls.allowUnsafeServerCertChange, is used to define whether unsafe ++ * server certificate change in renegotiation is allowed or not. The ++ * default value of the system property is "false". To mitigate the ++ * compatibility impact, applications may want to set the system ++ * property to "true" at their own risk. ++ * ++ * If the value of the system property is "false", server certificate ++ * change in renegotiation after a session-resumption abbreviated initial ++ * handshake is restricted (See isIdentityEuivalent()). ++ * ++ * If the system property is set to "truie" explicitly, the restriction on ++ * server certificate change in renegotiation is disabled. ++ */ ++ private final static boolean allowUnsafeServerCertChange = ++ Debug.getBooleanProperty("jdk.tls.allowUnsafeServerCertChange", false); ++ ++ /* ++ * the reserved server certificate chain in previous handshaking ++ * ++ * The server certificate chain is only reserved if the previous ++ * handshake is a session-resumption abbreviated initial handshake. ++ */ ++ private X509Certificate[] reservedServerCerts = null; ++ ++ /* + * Constructors + */ + ClientHandshaker(SSLSocketImpl socket, SSLContextImpl context, +@@ -551,8 +607,7 @@ + // we wanted to resume, but the server refused + session = null; + if (!enableNewSession) { +- throw new SSLException +- ("New session creation is disabled"); ++ throw new SSLException("New session creation is disabled"); + } + } + } +@@ -563,6 +618,11 @@ + } + + setHandshakeSessionSE(session); ++ // Reserve the handshake state if this is a session-resumption ++ // abbreviated initial handshake. ++ if (isInitialHandshake) { ++ session.setAsSessionResumption(true); ++ } + return; + } + +@@ -1035,6 +1095,13 @@ + } + + /* ++ * Reset the handshake state if this is not an initial handshake. ++ */ ++ if (!isInitialHandshake) { ++ session.setAsSessionResumption(false); ++ } ++ ++ /* + * OK, it verified. If we're doing the fast handshake, add that + * "Finished" message to the hash of handshake messages, then send + * our own change_cipher_spec and Finished message for the server +@@ -1131,8 +1198,22 @@ + System.out.println("%% No cached client session"); + } + } +- if ((session != null) && (session.isRejoinable() == false)) { +- session = null; ++ if (session != null) { ++ // If unsafe server certificate change is not allowed, reserve ++ // current server certificates if the preious handshake is a ++ // session-resumption abbreviated initial handshake. ++ if (!allowUnsafeServerCertChange && session.isSessionResumption()) { ++ try { ++ // If existing, peer certificate chain cannot be null. ++ reservedServerCerts = ++ (X509Certificate[])session.getPeerCertificates(); ++ } catch (SSLPeerUnverifiedException puve) { ++ // Maybe not certificate-based, ignore the exception. ++ } ++ } ++ if (!session.isRejoinable()) { ++ session = null; ++ } + } + + if (session != null) { +@@ -1303,8 +1384,25 @@ + } + X509Certificate[] peerCerts = mesg.getCertificateChain(); + if (peerCerts.length == 0) { +- fatalSE(Alerts.alert_bad_certificate, +- "empty certificate chain"); ++ fatalSE(Alerts.alert_bad_certificate, "empty certificate chain"); ++ } ++ ++ // Allow server certificate change in client side during renegotiation ++ // after session-resumption abbreviated initial handshake ? ++ // ++ // DO NOT need to check allowUnsafeServerCertChange here. We only ++ // reserve server certificates when allowUnsafeServerCertChange is ++ // false. ++ if (reservedServerCerts != null) { ++ // It is not necessary to check the certificate update if endpoint ++ // identification is enabled. ++ String identityAlg = getEndpointIdentificationAlgorithmSE(); ++ if ((identityAlg == null || identityAlg.length() == 0) && ++ !isIdentityEquivalent(peerCerts[0], reservedServerCerts[0])) { ++ fatalSE(Alerts.alert_bad_certificate, ++ "server certificate change is restricted" + ++ "during renegotiation"); ++ } + } + // ask the trust manager to verify the chain + X509TrustManager tm = sslContext.getX509TrustManager(); +@@ -1342,4 +1440,82 @@ + } + session.setPeerCertificates(peerCerts); + } ++ ++ /* ++ * Whether the certificates can represent the same identity? ++ * ++ * The certificates can be used to represent the same identity: ++ * 1. If the subject alternative names of IP address are present in ++ * both certificates, they should be identical; otherwise, ++ * 2. if the subject alternative names of DNS name are present in ++ * both certificates, they should be identical; otherwise, ++ * 3. if the subject fields are present in both certificates, the ++ * certificate subjects and issuers should be identical. ++ */ ++ ++ private static boolean isIdentityEquivalent(X509Certificate thisCert, ++ X509Certificate prevCert) { ++ if (thisCert.equals(prevCert)) { ++ return true; ++ } ++ ++ // check the iPAddress field in subjectAltName extension ++ Object thisIPAddress = getSubjectAltName(thisCert, 7); // 7: iPAddress ++ Object prevIPAddress = getSubjectAltName(prevCert, 7); ++ if (thisIPAddress != null && prevIPAddress!= null) { ++ // only allow the exactly match ++ return Objects.equals(thisIPAddress, prevIPAddress); ++ } ++ ++ // check the dNSName field in subjectAltName extension ++ Object thisDNSName = getSubjectAltName(thisCert, 2); // 2: dNSName ++ Object prevDNSName = getSubjectAltName(prevCert, 2); ++ if (thisDNSName != null && prevDNSName!= null) { ++ // only allow the exactly match ++ return Objects.equals(thisDNSName, prevDNSName); ++ } ++ ++ // check the certificate subject and issuer ++ X500Principal thisSubject = thisCert.getSubjectX500Principal(); ++ X500Principal prevSubject = prevCert.getSubjectX500Principal(); ++ X500Principal thisIssuer = thisCert.getIssuerX500Principal(); ++ X500Principal prevIssuer = prevCert.getIssuerX500Principal(); ++ if (!thisSubject.getName().isEmpty() && ++ !prevSubject.getName().isEmpty() && ++ thisSubject.equals(prevSubject) && ++ thisIssuer.equals(prevIssuer)) { ++ return true; ++ } ++ ++ return false; ++ } ++ ++ /* ++ * Returns the subject alternative name of the specified type in the ++ * subjectAltNames extension of a certificate. ++ */ ++ private static Object getSubjectAltName(X509Certificate cert, int type) { ++ Collection> subjectAltNames; ++ ++ try { ++ subjectAltNames = cert.getSubjectAlternativeNames(); ++ } catch (CertificateParsingException cpe) { ++ if (debug != null && Debug.isOn("handshake")) { ++ System.out.println( ++ "Attempt to obtain subjectAltNames extension failed!"); ++ } ++ return null; ++ } ++ ++ if (subjectAltNames != null) { ++ for (List subjectAltName : subjectAltNames) { ++ int subjectAltNameType = (Integer)subjectAltName.get(0); ++ if (subjectAltNameType == type) { ++ return subjectAltName.get(1); ++ } ++ } ++ } ++ ++ return null; ++ } + } +--- ./jdk/src/share/classes/sun/security/ssl/Handshaker.java 2013-09-06 11:28:45.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/ssl/Handshaker.java 2014-10-28 20:19:49.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1996, 2014, 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 +@@ -348,6 +348,16 @@ + } + } + ++ String getEndpointIdentificationAlgorithmSE() { ++ SSLParameters paras; ++ if (conn != null) { ++ paras = conn.getSSLParameters(); ++ } else { ++ paras = engine.getSSLParameters(); ++ } ++ return paras.getEndpointIdentificationAlgorithm(); ++ } ++ + private void setVersionSE(ProtocolVersion protocolVersion) { + if (conn != null) { + conn.setVersion(protocolVersion); +@@ -1047,94 +1057,22 @@ clnt_random.random_bytes, svr_random.random_bytes, prfHashAlg, prfHashLength, prfBlockSize); @@ -72110,8 +79737,7 @@ if (debug != null && Debug.isOn("handshake")) { System.out.println("RSA master secret generation error:"); - e.printStackTrace(System.out); -+ iae.printStackTrace(System.out); - } +- } - - if (requestedVersion != null) { - preMasterSecret = @@ -72119,11 +79745,13 @@ - } else { - preMasterSecret = - RSAClientKeyExchange.generateDummySecret(protocolVersion); -- } ++ iae.printStackTrace(System.out); + } - - // recursive call with new premaster secret - return calculateMasterSecret(preMasterSecret, null); -- } ++ throw new ProviderException(iae); + } - - // if no version check requested (client side handshake), or version - // information is not available (not an RSA premaster secret), @@ -72167,8 +79795,7 @@ - if (versionMismatch == false) { - // check passed, return key - return masterSecret; -+ throw new ProviderException(iae); - } +- } - - // Due to the Bleichenbacher attack, do not signal a protocol error. - // Generate a random premaster secret and continue with the handshake, @@ -72188,7 +79815,7 @@ /* --- ./jdk/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/ssl/RSAClientKeyExchange.java 2014-10-28 20:19:49.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved. @@ -72196,7 +79823,56 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -135,26 +135,37 @@ +@@ -50,23 +50,6 @@ + */ + final class RSAClientKeyExchange extends HandshakeMessage { + +- /** +- * The TLS spec says that the version in the RSA premaster secret must +- * be the maximum version supported by the client (i.e. the version it +- * requested in its client hello version). However, we (and other +- * implementations) used to send the active negotiated version. The +- * system property below allows to toggle the behavior. +- */ +- private final static String PROP_NAME = +- "com.sun.net.ssl.rsaPreMasterSecretFix"; +- +- /* +- * Default is "false" (old behavior) for compatibility reasons in +- * SSLv3/TLSv1. Later protocols (TLSv1.1+) do not use this property. +- */ +- private final static boolean rsaPreMasterSecretFix = +- Debug.getBooleanProperty(PROP_NAME, false); +- + /* + * The following field values were encrypted with the server's public + * key (or temp key from server key exchange msg) and are presented +@@ -90,22 +73,12 @@ + } + this.protocolVersion = protocolVersion; + +- int major, minor; +- +- if (rsaPreMasterSecretFix || maxVersion.v >= ProtocolVersion.TLS11.v) { +- major = maxVersion.major; +- minor = maxVersion.minor; +- } else { +- major = protocolVersion.major; +- minor = protocolVersion.minor; +- } +- + try { + String s = ((protocolVersion.v >= ProtocolVersion.TLS12.v) ? + "SunTls12RsaPremasterSecret" : "SunTlsRsaPremasterSecret"); + KeyGenerator kg = JsseJce.getKeyGenerator(s); +- kg.init(new TlsRsaPremasterSecretParameterSpec(major, minor), +- generator); ++ kg.init(new TlsRsaPremasterSecretParameterSpec( ++ maxVersion.v, protocolVersion.v), generator); + preMaster = kg.generateKey(); + + Cipher cipher = JsseJce.getCipher(JsseJce.CIPHER_RSA_PKCS1); +@@ -135,140 +108,30 @@ } else { encrypted = new byte [messageSize]; if (input.read(encrypted) != messageSize) { @@ -72207,25 +79883,22 @@ } } -+ Exception failover = null; -+ byte[] encoded = null; try { Cipher cipher = JsseJce.getCipher(JsseJce.CIPHER_RSA_PKCS1); - cipher.init(Cipher.UNWRAP_MODE, privateKey); -- preMaster = (SecretKey)cipher.unwrap(encrypted, -- "TlsRsaPremasterSecret", Cipher.SECRET_KEY); ++ // Cannot generate key here, please don't use Cipher.UNWRAP_MODE! ++ cipher.init(Cipher.UNWRAP_MODE, privateKey, ++ new TlsRsaPremasterSecretParameterSpec( ++ maxVersion.v, currentVersion.v), ++ generator); + preMaster = (SecretKey)cipher.unwrap(encrypted, + "TlsRsaPremasterSecret", Cipher.SECRET_KEY); - - // polish the premaster secret - preMaster = polishPreMasterSecretKey(currentVersion, maxVersion, - generator, preMaster, null); -+ // Cannot generate key here, please don't use Cipher.UNWRAP_MODE! -+ cipher.init(Cipher.DECRYPT_MODE, privateKey); -+ encoded = cipher.doFinal(encrypted); -+ } catch (BadPaddingException bpe) { -+ failover = bpe; -+ encoded = null; -+ } catch (IllegalBlockSizeException ibse) { -+ // the message it too big to process with RSA ++ } catch (InvalidKeyException ibk) { ++ // the message is too big to process with RSA + throw new SSLProtocolException( + "Unable to process PreMasterSecret, may be too big"); } catch (Exception e) { @@ -72233,70 +79906,45 @@ - preMaster = - polishPreMasterSecretKey(currentVersion, maxVersion, - generator, null, e); -+ // unlikely to happen, otherwise, must be a provider exception -+ if (debug != null && Debug.isOn("handshake")) { -+ System.out.println("RSA premaster secret decryption error:"); -+ e.printStackTrace(System.out); -+ } -+ throw new RuntimeException("Could not generate dummy secret", e); - } -+ -+ // polish the premaster secret -+ preMaster = polishPreMasterSecretKey( -+ currentVersion, maxVersion, generator, encoded, failover); - } - - /** -@@ -165,85 +176,74 @@ - * - * RFC 5246 describes the approach as : - * +- } +- } +- +- /** +- * To avoid vulnerabilities described by section 7.4.7.1, RFC 5246, +- * treating incorrectly formatted message blocks and/or mismatched +- * version numbers in a manner indistinguishable from correctly +- * formatted RSA blocks. +- * +- * RFC 5246 describes the approach as : +- * - * 1. Generate a string R of 46 random bytes -+ * 1. Generate a string R of 48 random bytes - * - * 2. Decrypt the message to recover the plaintext M - * - * 3. If the PKCS#1 padding is not correct, or the length of message - * M is not exactly 48 bytes: +- * +- * 2. Decrypt the message to recover the plaintext M +- * +- * 3. If the PKCS#1 padding is not correct, or the length of message +- * M is not exactly 48 bytes: - * pre_master_secret = ClientHello.client_version || R -+ * pre_master_secret = R - * else If ClientHello.client_version <= TLS 1.0, and version - * number check is explicitly disabled: +- * else If ClientHello.client_version <= TLS 1.0, and version +- * number check is explicitly disabled: - * pre_master_secret = M -+ * premaster secret = M -+ * else If M[0..1] != ClientHello.client_version: -+ * premaster secret = R - * else: +- * else: - * pre_master_secret = ClientHello.client_version || M[2..47] -+ * premaster secret = M -+ * -+ * Note that #2 has completed before the call of this method. - */ - private SecretKey polishPreMasterSecretKey(ProtocolVersion currentVersion, - ProtocolVersion clientHelloVersion, SecureRandom generator, +- */ +- private SecretKey polishPreMasterSecretKey(ProtocolVersion currentVersion, +- ProtocolVersion clientHelloVersion, SecureRandom generator, - SecretKey secretKey, Exception failoverException) { -+ byte[] encoded, Exception failoverException) { - - this.protocolVersion = clientHelloVersion; -+ if (generator == null) { -+ generator = new SecureRandom(); -+ } -+ byte[] random = new byte[48]; -+ generator.nextBytes(random); - +- +- this.protocolVersion = clientHelloVersion; +- - if (failoverException == null && secretKey != null) { -+ if (failoverException == null && encoded != null) { - // check the length +- // check the length - byte[] encoded = secretKey.getEncoded(); - if (encoded == null) { // unable to get the encoded key -+ if (encoded.length != 48) { - if (debug != null && Debug.isOn("handshake")) { - System.out.println( +- if (debug != null && Debug.isOn("handshake")) { +- System.out.println( - "unable to get the plaintext of the premaster secret"); -+ "incorrect length of premaster secret: " + -+ encoded.length); - } - +- } +- - int keySize = KeyUtil.getKeySize(secretKey); - if (keySize > 0 && keySize != 384) { // 384 = 48 * 8 - if (debug != null && Debug.isOn("handshake")) { @@ -72304,15 +79952,10 @@ - "incorrect length of premaster secret: " + - (keySize/8)); - } -+ return generatePreMasterSecret( -+ clientHelloVersion, random, generator); -+ } - +- - return generateDummySecret(clientHelloVersion); - } -+ if (clientHelloVersion.major != encoded[0] || -+ clientHelloVersion.minor != encoded[1]) { - +- - // The key size is exactly 48 bytes or not accessible. - // - // Conservatively, pass the checking to master secret @@ -72327,15 +79970,12 @@ - } else if (clientHelloVersion.v <= ProtocolVersion.TLS10.v && - currentVersion.major == encoded[0] && - currentVersion.minor == encoded[1]) { -+ if (clientHelloVersion.v <= ProtocolVersion.TLS10.v && -+ currentVersion.major == encoded[0] && -+ currentVersion.minor == encoded[1]) { - /* - * For compatibility, we maintain the behavior that the - * version in pre_master_secret can be the negotiated - * version for TLS v1.0 and SSL v3.0. - */ - this.protocolVersion = currentVersion; +- /* +- * For compatibility, we maintain the behavior that the +- * version in pre_master_secret can be the negotiated +- * version for TLS v1.0 and SSL v3.0. +- */ +- this.protocolVersion = currentVersion; - return secretKey; - } - @@ -72345,73 +79985,98 @@ - ", while PreMasterSecret.client_version is " + - ProtocolVersion.valueOf(encoded[0], encoded[1])); - } -+ } else { -+ if (debug != null && Debug.isOn("handshake")) { -+ System.out.println("Mismatching Protocol Versions, " + -+ "ClientHello.client_version is " + -+ clientHelloVersion + -+ ", while PreMasterSecret.client_version is " + -+ ProtocolVersion.valueOf(encoded[0], encoded[1])); -+ } - +- - return generateDummySecret(clientHelloVersion); - } else { - if (debug != null && Debug.isOn("handshake")) { - System.out.println( - "incorrect length of premaster secret: " + - encoded.length); -+ encoded = random; - } +- } - - return generateDummySecret(clientHelloVersion); - } -+ -+ return generatePreMasterSecret( -+ clientHelloVersion, encoded, generator); - } - - if (debug != null && Debug.isOn("handshake") && -@@ -252,11 +252,14 @@ - failoverException.printStackTrace(System.out); - } - -- return generateDummySecret(clientHelloVersion); -+ return generatePreMasterSecret(clientHelloVersion, random, generator); - } - - // generate a premaster secret with the specified version number -- static SecretKey generateDummySecret(ProtocolVersion version) { -+ private static SecretKey generatePreMasterSecret( -+ ProtocolVersion version, byte[] encodedSecret, -+ SecureRandom generator) { -+ - if (debug != null && Debug.isOn("handshake")) { - System.out.println("Generating a random fake premaster secret"); - } -@@ -265,11 +268,17 @@ - String s = ((version.v >= ProtocolVersion.TLS12.v) ? - "SunTls12RsaPremasterSecret" : "SunTlsRsaPremasterSecret"); - KeyGenerator kg = JsseJce.getKeyGenerator(s); -- kg.init(new TlsRsaPremasterSecretParameterSpec -- (version.major, version.minor)); -+ kg.init(new TlsRsaPremasterSecretParameterSpec( -+ version.major, version.minor, encodedSecret), generator); - return kg.generateKey(); -- } catch (GeneralSecurityException e) { -- throw new RuntimeException("Could not generate dummy secret", e); -+ } catch (InvalidAlgorithmParameterException | -+ NoSuchAlgorithmException iae) { + // unlikely to happen, otherwise, must be a provider exception + if (debug != null && Debug.isOn("handshake")) { -+ System.out.println("RSA premaster secret generation error:"); -+ iae.printStackTrace(System.out); -+ } -+ throw new RuntimeException("Could not generate dummy secret", iae); ++ System.out.println("RSA premaster secret decryption error:"); ++ e.printStackTrace(System.out); + } +- } +- +- if (debug != null && Debug.isOn("handshake") && +- failoverException != null) { +- System.out.println("Error decrypting premaster secret:"); +- failoverException.printStackTrace(System.out); +- } +- +- return generateDummySecret(clientHelloVersion); +- } +- +- // generate a premaster secret with the specified version number +- static SecretKey generateDummySecret(ProtocolVersion version) { +- if (debug != null && Debug.isOn("handshake")) { +- System.out.println("Generating a random fake premaster secret"); +- } +- +- try { +- String s = ((version.v >= ProtocolVersion.TLS12.v) ? +- "SunTls12RsaPremasterSecret" : "SunTlsRsaPremasterSecret"); +- KeyGenerator kg = JsseJce.getKeyGenerator(s); +- kg.init(new TlsRsaPremasterSecretParameterSpec +- (version.major, version.minor)); +- return kg.generateKey(); +- } catch (GeneralSecurityException e) { + throw new RuntimeException("Could not generate dummy secret", e); } } +--- ./jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java 2013-09-06 11:28:45.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/ssl/SSLSessionImpl.java 2014-10-28 20:19:49.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1996, 2014, 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 +@@ -117,6 +117,14 @@ + private Principal localPrincipal; + /* ++ * Is the session currently re-established with a session-resumption ++ * abbreviated initial handshake? ++ * ++ * Note that currently we only set this variable in client side. ++ */ ++ private boolean isSessionResumption = false; ++ ++ /* + * We count session creations, eventually for statistical data but + * also since counters make shorter debugging IDs than the big ones + * we use in the protocol for uniqueness-over-time. +@@ -320,6 +328,22 @@ + } + + /** ++ * Return true if the session is currently re-established with a ++ * session-resumption abreviated initial handshake. ++ */ ++ boolean isSessionResumption() { ++ return isSessionResumption; ++ } ++ ++ /** ++ * Resets whether the session is re-established with a session-resumption ++ * abbreviated initial handshake. ++ */ ++ void setAsSessionResumption(boolean flag) { ++ isSessionResumption = flag; ++ } ++ ++ /** + * Returns the name of the cipher suite in use on this session + */ + public String getCipherSuite() { --- ./jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java 2014-07-15 21:49:31.000000000 -0700 @@ -172,7 +172,7 @@ /* * Drives the protocol state machine. @@ -72431,7 +80096,7 @@ /** --- ./jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/ssl/SignatureAndHashAlgorithm.java 2014-07-15 21:49:31.000000000 -0700 @@ -68,7 +68,7 @@ // performance optimization @@ -72442,7 +80107,7 @@ // supported pairs of signature and hash algorithm private final static Map supportedMap; --- ./jdk/src/share/classes/sun/security/tools/JarSigner.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/tools/JarSigner.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/tools/JarSigner.java 2014-07-15 21:49:31.000000000 -0700 @@ -88,9 +88,6 @@ private static final String META_INF = "META-INF/"; @@ -72668,7 +80333,7 @@ // display the certificate(s). The first one is end-entity cert and // its KeyUsage should be checked. --- ./jdk/src/share/classes/sun/security/tools/JarSignerResources.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/tools/JarSignerResources.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/tools/JarSignerResources.java 2014-07-15 21:49:31.000000000 -0700 @@ -110,9 +110,9 @@ {"Please.specify.alias.name", "Please specify alias name"}, {"Only.one.alias.can.be.specified", "Only one alias can be specified"}, @@ -72712,7 +80377,7 @@ /** --- ./jdk/src/share/classes/sun/security/tools/JarSignerResources_ja.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/tools/JarSignerResources_ja.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/tools/JarSignerResources_ja.java 2014-07-15 21:49:31.000000000 -0700 @@ -79,7 +79,7 @@ {".verbose.suboptions.verbose.output.when.signing.verifying.", "[-verbose[:suboptions]] \u7F72\u540D/\u691C\u8A3C\u6642\u306E\u8A73\u7D30\u51FA\u529B\u3002"}, @@ -72754,7 +80419,7 @@ /** --- ./jdk/src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java 2013-09-06 11:28:45.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java 2014-07-15 21:49:31.000000000 -0700 @@ -53,9 +53,9 @@ {"If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified", "\u5982\u679C\u5BC6\u94A5\u5E93\u672A\u53D7\u53E3\u4EE4\u4FDD\u62A4, \u5219\u4E0D\u80FD\u6307\u5B9A -storepass \u548C -keypass"}, @@ -72809,7 +80474,7 @@ /** --- ./jdk/src/share/classes/sun/security/util/KeyUtil.java 2013-09-06 11:28:46.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/util/KeyUtil.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/util/KeyUtil.java 2014-10-28 20:19:49.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. @@ -72817,7 +80482,95 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -198,7 +198,35 @@ +@@ -32,6 +32,7 @@ + import java.security.interfaces.ECKey; + import java.security.interfaces.RSAKey; + import java.security.interfaces.DSAKey; ++import java.security.SecureRandom; + import java.security.spec.KeySpec; + import javax.crypto.SecretKey; + import javax.crypto.interfaces.DHKey; +@@ -157,6 +158,79 @@ + } + + /** ++ * Check the format of TLS PreMasterSecret. ++ *

++ * To avoid vulnerabilities described by section 7.4.7.1, RFC 5246, ++ * treating incorrectly formatted message blocks and/or mismatched ++ * version numbers in a manner indistinguishable from correctly ++ * formatted RSA blocks. ++ * ++ * RFC 5246 describes the approach as : ++ * ++ * 1. Generate a string R of 48 random bytes ++ * ++ * 2. Decrypt the message to recover the plaintext M ++ * ++ * 3. If the PKCS#1 padding is not correct, or the length of message ++ * M is not exactly 48 bytes: ++ * pre_master_secret = R ++ * else If ClientHello.client_version <= TLS 1.0, and version ++ * number check is explicitly disabled: ++ * premaster secret = M ++ * else If M[0..1] != ClientHello.client_version: ++ * premaster secret = R ++ * else: ++ * premaster secret = M ++ * ++ * Note that #2 should have completed before the call to this method. ++ * ++ * @param clientVersion the version of the TLS protocol by which the ++ * client wishes to communicate during this session ++ * @param serverVersion the negotiated version of the TLS protocol which ++ * contains the lower of that suggested by the client in the client ++ * hello and the highest supported by the server. ++ * @param encoded the encoded key in its "RAW" encoding format ++ * @param isFailover whether or not the previous decryption of the ++ * encrypted PreMasterSecret message run into problem ++ * @return the polished PreMasterSecret key in its "RAW" encoding format ++ */ ++ public static byte[] checkTlsPreMasterSecretKey( ++ int clientVersion, int serverVersion, SecureRandom random, ++ byte[] encoded, boolean isFailOver) { ++ ++ if (random == null) { ++ random = new SecureRandom(); ++ } ++ byte[] replacer = new byte[48]; ++ random.nextBytes(replacer); ++ ++ if (!isFailOver && (encoded != null)) { ++ // check the length ++ if (encoded.length != 48) { ++ // private, don't need to clone the byte array. ++ return replacer; ++ } ++ ++ int encodedVersion = ++ ((encoded[0] & 0xFF) << 8) | (encoded[1] & 0xFF); ++ if (clientVersion != encodedVersion) { ++ if (clientVersion > 0x0301 || // 0x0301: TLSv1 ++ serverVersion != encodedVersion) { ++ encoded = replacer; ++ } // Otherwise, For compatibility, we maintain the behavior ++ // that the version in pre_master_secret can be the ++ // negotiated version for TLS v1.0 and SSL v3.0. ++ } ++ ++ // private, don't need to clone the byte array. ++ return encoded; ++ } ++ ++ // private, don't need to clone the byte array. ++ return replacer; ++ } ++ ++ /** + * Returns whether the Diffie-Hellman public key is valid or not. + * + * Per RFC 2631 and NIST SP800-56A, the following algorithm is used to +@@ -198,7 +272,35 @@ "Diffie-Hellman public key is too large"); } @@ -72832,7 +80585,7 @@ + if (r.equals(BigInteger.ZERO)) { + throw new InvalidKeyException("Invalid Diffie-Hellman parameters"); + } -+ } + } + + /** + * Trim leading (most significant) zeroes from the result. @@ -72850,12 +80603,49 @@ + byte[] t = new byte[b.length - i]; + System.arraycopy(b, i, t, 0, t.length); + return t; - } ++ } + } --- ./jdk/src/share/classes/sun/security/util/Resources_de.java 2013-09-06 11:28:46.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/util/Resources_de.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/util/Resources_de.java 2014-10-28 20:19:49.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2000, 2014, 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 +@@ -75,7 +75,7 @@ + {"Imports.entries.from.a.JDK.1.1.x.style.identity.database", + "Importiert Eintr\u00E4ge aus einer Identity-Datenbank im JDK 1.1.x-Stil"}, //-identitydb + {"Imports.a.certificate.or.a.certificate.chain", +- "Importiert ein Zertifikat oder eine Zertifikatkette"}, //-importcert ++ "Importiert ein Zertifikat oder eine Zertifikatskette"}, //-importcert + {"Imports.one.or.all.entries.from.another.keystore", + "Importiert einen oder alle Eintr\u00E4ge aus einem anderen Keystore"}, //-importkeystore + {"Clones.a.key.entry", +@@ -301,7 +301,7 @@ + "{0}, {1,date}, "}, + {"alias.", "{0}, "}, + {"Entry.type.type.", "Eintragstyp: {0}"}, +- {"Certificate.chain.length.", "Zertifikatkettenl\u00E4nge: "}, ++ {"Certificate.chain.length.", "Zertifikatskettenl\u00E4nge: "}, + {"Certificate.i.1.", "Zertifikat[{0,number,integer}]:"}, + {"Certificate.fingerprint.SHA1.", "Zertifikat-Fingerprint (SHA1): "}, + {"Keystore.type.", "Keystore-Typ: "}, +@@ -384,9 +384,9 @@ + {"Certificate.reply.does.not.contain.public.key.for.alias.", + "Zertifikatantwort enth\u00E4lt keinen Public Key f\u00FCr <{0}>"}, + {"Incomplete.certificate.chain.in.reply", +- "Unvollst\u00E4ndige Zertifikatkette in Antwort"}, ++ "Unvollst\u00E4ndige Zertifikatskette in Antwort"}, + {"Certificate.chain.in.reply.does.not.verify.", +- "Zertifikatkette in Antwort verifiziert nicht: "}, ++ "Zertifikatskette in Antwort verifiziert nicht: "}, + {"Top.level.certificate.in.reply.", + "Zertifikat der obersten Ebene in Antwort:\n"}, + {".is.not.trusted.", "... ist nicht vertrauensw\u00FCrdig. "}, @@ -444,7 +444,7 @@ {"Retain", "Beibehalten"}, @@ -72866,7 +80656,23 @@ {"Add.Public.Key.Alias", "Public Key-Alias hinzuf\u00FCgen"}, {"Remove.Public.Key.Alias", "Public Key-Alias entfernen"}, --- ./jdk/src/share/classes/sun/security/util/Resources_fr.java 2013-09-06 11:28:46.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/util/Resources_fr.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/util/Resources_fr.java 2014-10-28 20:19:49.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2000, 2014, 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 +@@ -444,7 +444,7 @@ + {"Retain", "Conserver"}, + + {"Warning.File.name.may.include.escaped.backslash.characters.It.is.not.necessary.to.escape.backslash.characters.the.tool.escapes", +- "Avertissement : il se peut que le nom de fichier contienne des barres obliques inverses avec caract\u00E8re d'\u00E9chappement. Il n'est pas n\u00E9cessaire d'ajouter un caract\u00E8re d'\u00E9chappement aux barres obliques inverses. L'outil proc\u00E8de \u00E0 l'\u00E9chappement si n\u00E9cessaire lorsqu'il \u00E9crit le contenu des r\u00E8gles dans la zone de stockage persistant).\n\nCliquez sur Conserver pour garder le nom saisi ou sur Modifier pour le remplacer."}, ++ "Avertissement : il se peut que le nom de fichier contienne des barres obliques inverses avec caract\u00E8re d'\u00E9chappement. Il n'est pas n\u00E9cessaire d'ajouter un caract\u00E8re d'\u00E9chappement aux barres obliques inverses. (L'outil proc\u00E8de \u00E0 l'\u00E9chappement si n\u00E9cessaire lorsqu'il \u00E9crit le contenu des r\u00E8gles dans la zone de stockage persistant).\n\nCliquez sur Conserver pour garder le nom saisi ou sur Modifier pour le remplacer."}, + + {"Add.Public.Key.Alias", "Ajouter un alias de cl\u00E9 publique"}, + {"Remove.Public.Key.Alias", "Enlever un alias de cl\u00E9 publique"}, @@ -557,12 +557,12 @@ {"invalid.null.Class.provided", "classe NULL fournie non valide"}, {"Subject.", "Objet :\n"}, @@ -72884,8 +80690,44 @@ {"Subject.is.read.only", "Sujet en lecture seule"}, {"attempting.to.add.an.object.which.is.not.an.instance.of.java.security.Principal.to.a.Subject.s.Principal.Set", "tentative d'ajout d'un objet qui n'est pas une instance de java.security.Principal dans un ensemble de principaux du sujet"}, +--- ./jdk/src/share/classes/sun/security/util/Resources_it.java 2013-09-06 11:28:46.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/util/Resources_it.java 2014-10-28 20:19:49.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2000, 2014, 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 +@@ -340,7 +340,7 @@ + "Immettere un nuovo nome alias\t(premere INVIO per annullare l'importazione della voce): "}, + {"Enter.alias.name.", "Immettere nome alias: "}, + {".RETURN.if.same.as.for.otherAlias.", +- "\t(INVIO se corrisponde al nome di <{0}>"}, ++ "\t(INVIO se corrisponde al nome di <{0}>)"}, + {".PATTERN.printX509Cert", + "Proprietario: {0}\nAutorit\u00E0 emittente: {1}\nNumero di serie: {2}\nValido da: {3} a: {4}\nImpronte digitali certificato:\n\t MD5: {5}\n\t SHA1: {6}\n\t SHA256: {7}\n\t Nome algoritmo firma: {8}\n\t Versione: {9}"}, + {"What.is.your.first.and.last.name.", +--- ./jdk/src/share/classes/sun/security/util/Resources_pt_BR.java 2013-09-06 11:28:46.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/util/Resources_pt_BR.java 2014-10-28 20:19:49.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2000, 2014, 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 +@@ -62,7 +62,7 @@ + {"Changes.an.entry.s.alias", + "Altera um alias de entrada"}, //-changealias + {"Deletes.an.entry", +- "Deleta uma entrada"}, //-delete ++ "Exclui uma entrada"}, //-delete + {"Exports.certificate", + "Exporta o certificado"}, //-exportcert + {"Generates.a.key.pair", --- ./jdk/src/share/classes/sun/security/util/Resources_zh_CN.java 2013-09-06 11:28:46.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/util/Resources_zh_CN.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/util/Resources_zh_CN.java 2014-07-15 21:49:31.000000000 -0700 @@ -310,7 +310,7 @@ "\u60A8\u7684\u5BC6\u94A5\u5E93\u5305\u542B {0,number,integer} \u4E2A\u6761\u76EE"}, {"Your.keystore.contains.keyStore.size.entries", @@ -72896,7 +80738,7 @@ {"Not.X.509.certificate", "\u975E X.509 \u8BC1\u4E66"}, {"alias.has.no.public.key", "{0}\u6CA1\u6709\u516C\u5171\u5BC6\u94A5"}, --- ./jdk/src/share/classes/sun/security/util/Resources_zh_TW.java 2013-09-06 11:28:46.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/util/Resources_zh_TW.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/util/Resources_zh_TW.java 2014-07-15 21:49:31.000000000 -0700 @@ -388,7 +388,7 @@ {"Certificate.chain.in.reply.does.not.verify.", "\u56DE\u8986\u6642\u7684\u6191\u8B49\u93C8\u672A\u9A57\u8B49: "}, @@ -72907,7 +80749,7 @@ {"Install.reply.anyway.no.", "\u9084\u662F\u8981\u5B89\u88DD\u56DE\u8986\uFF1F [\u5426]: "}, {"NO", "\u5426"}, --- ./jdk/src/share/classes/sun/security/util/SecurityConstants.java 2013-09-06 11:28:46.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/util/SecurityConstants.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/util/SecurityConstants.java 2014-07-15 21:49:31.000000000 -0700 @@ -257,5 +257,5 @@ // java.lang.SecurityManager @@ -72916,7 +80758,7 @@ + new SocketPermission("localhost:0", SOCKET_LISTEN_ACTION); } --- ./jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java 2013-09-06 11:28:46.000000000 -0700 -+++ ./jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java 2014-07-15 21:49:31.000000000 -0700 @@ -153,6 +153,52 @@ return false; } @@ -72971,7 +80813,7 @@ private MessageDigest getDigest(String algorithm) --- ./jdk/src/share/classes/sun/swing/SwingLazyValue.java 2013-09-06 11:28:47.000000000 -0700 -+++ ./jdk/src/share/classes/sun/swing/SwingLazyValue.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/swing/SwingLazyValue.java 2014-07-15 21:49:31.000000000 -0700 @@ -30,6 +30,7 @@ import java.security.AccessController; import java.security.PrivilegedAction; @@ -72990,7 +80832,7 @@ if (methodName != null) { Class[] types = getClassArray(args); --- ./jdk/src/share/classes/sun/swing/SwingUtilities2.java 2013-09-06 11:28:47.000000000 -0700 -+++ ./jdk/src/share/classes/sun/swing/SwingUtilities2.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/swing/SwingUtilities2.java 2014-07-15 21:49:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. @@ -73174,7 +81016,7 @@ * access the system clipboard and if it is allowed gesture (if * checkGesture true) --- ./jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/attach/META-INF/services/com.sun.tools.attach.spi.AttachProvider 2014-10-28 20:19:52.000000000 -0700 @@ -30,4 +30,5 @@ #[solaris]sun.tools.attach.SolarisAttachProvider #[windows]sun.tools.attach.WindowsAttachProvider @@ -73182,7 +81024,7 @@ +#[bsd]sun.tools.attach.BsdAttachProvider #[macosx]sun.tools.attach.BsdAttachProvider --- ./jdk/src/share/classes/sun/tools/jar/Main.java 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jar/Main.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jar/Main.java 2014-10-28 20:19:52.000000000 -0700 @@ -51,6 +51,7 @@ String zname = ""; String[] files; @@ -73254,7 +81096,7 @@ throw new IOException(formatMsg( "error.create.dir", d.getPath())); --- ./jdk/src/share/classes/sun/tools/jar/resources/jar.properties 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jar/resources/jar.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar.properties 2014-10-28 20:19:52.000000000 -0700 @@ -44,6 +44,8 @@ {0} : could not create directory error.incorrect.length=\ @@ -73265,7 +81107,7 @@ added manifest out.update.manifest=\ --- ./jdk/src/share/classes/sun/tools/jar/resources/jar_de.properties 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_de.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_de.properties 2014-07-15 21:49:31.000000000 -0700 @@ -41,7 +41,7 @@ out.stored=(0 % gespeichert) out.create=\ erstellt: {0} @@ -73276,7 +81118,7 @@ usage=Verwendung: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] Dateien...\nOptionen:\n -c Neues Archiv erstellen\n -t Inhaltsverzeichnis f\u00FCr Archiv auflisten\n -x Genannte (oder alle) Dateien aus Archiv extrahieren\n -u Vorhandenes Archiv aktualisieren\n -v Verbose-Ausgabe f\u00FCr Standardausgabe generieren\n -f Namen der Archivdatei angeben\n -m Manifest-Informationen von angegebener Manifest-Datei einschlie\u00DFen\n -e Anwendungs-Einstiegspunkt f\u00FCr die \n in einer ausf\u00FChrbaren JAR-Datei geb\u00FCndelte Standalone-Anwendung angeben\n -0 Nur speichern (keine ZIP-Komprimierung)\n -M Keine Manifest-Datei f\u00FCr die Eintr\u00E4ge erstellen\n -i Indexinformationen f\u00FCr angegebenen JAR-Dateien erstellen\n -C zum angegebenen Verzeichnis wechseln und folgende Datei einschlie\u00DFen\nFalls eine Datei ein Verzeichnis ist, wird dieses rekursiv verarbeitet.\nDer Name der Manifest-Datei, der Name der Archivdatei und der Name des Einstiegspunkts werden\nin derselben Reihenfolge wie die Kennzeichen "m", "f" und "e" angegeben.\n\nBeispiel 1: Archivieren Sie zwei Klassendateien in ein Archiv mit Namen "classes.jar": \n jar cvf classes.jar Foo.class Bar.class \nBeispiel 2: Verwenden Sie die vorhandenen Manifest-Datei "mymanifest", und archivieren Sie\n alle Dateien im Verzeichnis foo/ in "classes.jar": \n jar cvfm classes.jar mymanifest -C foo/ .\n --- ./jdk/src/share/classes/sun/tools/jar/resources/jar_es.properties 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_es.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_es.properties 2014-07-15 21:49:31.000000000 -0700 @@ -41,7 +41,7 @@ out.stored=(almacenado 0%) out.create=\ creado: {0} @@ -73288,7 +81130,7 @@ -usage=Sintaxis: jar {ctxui}[vfm0Me] [archive-jar] [archive-manifiesto] [punto-entrada] [-C dir] archivos...\nOpciones:\n -c crear nuevo archivo\n -t crear la tabla de contenido del archivo\n -x extraer el archive mencionado (o todos) del archivo\n -u actualizar archive existente\n -v generar salida detallada de los datos de salida est\u00E1ndar\n -f especificar nombre de archive de almacenamiento\n -m incluir informaci\u00F3n de manifiesto del archive de manifiesto especificado\n -e especificar punto de entrada de la aplicaci\u00F3n para la aplicaci\u00F3n aut\u00F3noma \n que se incluye dentro de un archive jar ejecutable\n -0 s\u00F3lo almacenar; no utilizar compresi\u00F3n ZIP\n -M no crear un archive de manifiesto para las entradas\n -i generar informaci\u00F3n de \u00EDndice para los archives jar especificados\n -C cambiar al directorio especificado e incluir el archivo siguiente\nSi alg\u00FAn archivo es un directorio, se procesar\u00E1 de forma recurrente.\nEl nombre del archivo de manifiesto, el nombre del archivo de almacenamiento y el nombre del punto de entrada se\nespecifican en el mismo orden que los indicadores 'm', 'f' y 'e'.\n\nEjemplo 1: para archivar archivos de dos clases en un archivo llamado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEjemplo 2: utilice un archivo de manifiesto existente 'mymanifest' y archive todos los\n archivos del directorio foo/ en 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n +usage=Sintaxis: jar {ctxui}[vfm0Me] [archive-jar] [archive-manifiesto] [punto-entrada] [-C dir] archivos...\nOpciones:\n -c crear nuevo archivo\n -t crear la tabla de contenido del archivo\n -x extraer el archive mencionado (o todos) del archivo\n -u actualizar archive existente\n -v generar salida detallada de los datos de salida est\u00E1ndar\n -f especificar nombre de archive de almacenamiento\n -m incluir informaci\u00F3n de manifiesto del archive de manifiesto especificado\n -e especificar punto de entrada de la aplicaci\u00F3n para la aplicaci\u00F3n aut\u00F3noma \n que se incluye dentro de un archive jar ejecutable\n -0 s\u00F3lo almacenar; no utilizar compresi\u00F3n ZIP\n -M no crear un archive de manifiesto para las entradas\n -i generar informaci\u00F3n de \u00EDndice para los archives jar especificados\n -C cambiar al directorio especificado e incluir el archivo siguiente\nSi alg\u00FAn archivo es un directorio, se procesar\u00E1 de forma recurrente.\nEl nombre del archivo de manifiesto, el nombre del archivo de almacenamiento y el nombre del punto de entrada se\nespecifican en el mismo orden que los indicadores 'm', 'f' y 'e'.\n\nEjemplo 1: para archivar archivos de dos clases en un archivo llamado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEjemplo 2: utilice un archivo de manifiesto existente 'mymanifest' y archive todos los\n archivos del directorio foo/ en 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n --- ./jdk/src/share/classes/sun/tools/jar/resources/jar_fr.properties 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_fr.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_fr.properties 2014-07-15 21:49:31.000000000 -0700 @@ -41,7 +41,7 @@ out.stored=(stockage : 0 %) out.create=\ cr\u00E9\u00E9 : {0} @@ -73299,7 +81141,7 @@ usage=Syntaxe : jar {ctxui}[vfm0Me] [fichier-jar] [fichier-manifeste] [point-entr\u00E9e] [-C r\u00E9p] fichiers...\nOptions :\n -c cr\u00E9e une archive\n -t affiche la table des mati\u00E8res de l'archive\n -x extrait les fichiers nomm\u00E9s (ou tous les fichiers) de l'archive\n -u met \u00E0 jour l'archive existante\n -v g\u00E9n\u00E8re une version d\u00E9taill\u00E9e d'une sortie standard\n -f sp\u00E9cifie le nom du fichier archive\n -m inclut les informations de manifeste \u00E0 partir du fichier de manifeste sp\u00E9cifi\u00E9\n -e sp\u00E9cifie le point d'entr\u00E9e d'une application en mode autonome \n int\u00E9gr\u00E9e \u00E0 un fichier JAR ex\u00E9cutable\n -0 stockage uniquement, pas de compression ZIP\n -M ne cr\u00E9e pas de fichier manifeste pour les entr\u00E9es\n -i g\u00E9n\u00E8re les informations d'index des fichiers JAR sp\u00E9cifi\u00E9s\n -C passe au r\u00E9pertoire sp\u00E9cifi\u00E9 et inclut le fichier suivant\nSi l'un des fichiers est un r\u00E9pertoire, celui-ci est trait\u00E9 r\u00E9cursivement.\nLes noms du fichier manifeste, du fichier archive et du point d'entr\u00E9e sont\nsp\u00E9cifi\u00E9s dans le m\u00EAme ordre que celui des indicateurs m, f et e.\n\nExemple 1 : pour archiver deux fichiers de classe dans une archive intitul\u00E9e classes.jar : \n jar cvf classes.jar Foo.class Bar.class \nExemple 2 : pour utiliser un fichier manifeste existant 'monmanifeste', puis archiver tous les\n fichiers du r\u00E9pertoire foo/ dans 'classes.jar' : \n jar cvfm classes.jar monmanifeste -C foo/ .\n --- ./jdk/src/share/classes/sun/tools/jar/resources/jar_it.properties 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_it.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_it.properties 2014-07-15 21:49:31.000000000 -0700 @@ -41,7 +41,7 @@ out.stored=(memorizzato 0%) out.create=\ creato: {0} @@ -73311,7 +81153,7 @@ -usage=Uso: jar {ctxui}[vfm0Me] [file-jar] [file-manifest] [punto di ingresso] [-C dir] file ...\nOpzioni:\n -c crea un nuovo archivio\n -t visualizza l'indice dell'archivio\n -x estrae i file con nome (o tutti i file) dall'archivio\n -u aggiorna l'archivio esistente\n -v genera output commentato dall'output standard\n -f specifica il nome file dell'archivio\n -m include informazioni manifest dal file manifest specificato\n -e specifica il punto di ingresso per l'applicazione stand-alone \n inclusa nel file jar eseguibile\n -0 solo memorizzazione; senza compressione ZIP\n -M consente di non creare un file manifest per le voci\n -i genera informazioni sull'indice per i file jar specificati\n -C imposta la directory specificata e include il file seguente\nSe un file \u00E8 una directory, verr\u00E0 elaborato in modo ricorsivo.\nIl nome del file manifest, del file di archivio e del punto di ingresso devono\nessere specificati nello stesso ordine dei flag 'm', 'f' ed 'e'.\n\nEsempio 1: archiviazione di due file di classe in un archivio con il nome classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEsempio 2: utilizzo del file manifest esistente 'mymanifest' e archiviazione di tutti i\n file della directory foo/ in 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/.\n +usage=Uso: jar {ctxui}[vfm0Me] [file-jar] [file-manifest] [punto di ingresso] [-C dir] file ...\nOpzioni:\n -c crea un nuovo archivio\n -t visualizza l'indice dell'archivio\n -x estrae i file con nome (o tutti i file) dall'archivio\n -u aggiorna l'archivio esistente\n -v genera output commentato dall'output standard\n -f specifica il nome file dell'archivio\n -m include informazioni manifest dal file manifest specificato\n -e specifica il punto di ingresso per l'applicazione stand-alone \n inclusa nel file jar eseguibile\n -0 solo memorizzazione; senza compressione ZIP\n -M consente di non creare un file manifest per le voci\n -i genera informazioni sull'indice per i file jar specificati\n -C imposta la directory specificata e include il file seguente\nSe un file \u00E8 una directory, verr\u00E0 elaborato in modo ricorsivo.\nIl nome del file manifest, del file di archivio e del punto di ingresso devono\nessere specificati nello stesso ordine dei flag 'm', 'f' ed 'e'.\n\nEsempio 1: archiviazione di due file di classe in un archivio con il nome classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEsempio 2: utilizzo del file manifest esistente 'mymanifest' e archiviazione di tutti i\n file della directory foo/ in 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n --- ./jdk/src/share/classes/sun/tools/jar/resources/jar_ja.properties 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_ja.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_ja.properties 2014-07-15 21:49:31.000000000 -0700 @@ -41,7 +41,7 @@ out.stored=(0%\u683C\u7D0D\u3055\u308C\u307E\u3057\u305F) out.create=\ {0}\u304C\u4F5C\u6210\u3055\u308C\u307E\u3057\u305F @@ -73323,7 +81165,7 @@ -usage=\u4F7F\u7528\u65B9\u6CD5: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\u30AA\u30D7\u30B7\u30E7\u30F3:\n -c \u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B\n -t \u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u5185\u5BB9\u3092\u4E00\u89A7\u8868\u793A\u3059\u308B\n -x \u6307\u5B9A\u306E(\u307E\u305F\u306F\u3059\u3079\u3066\u306E)\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u62BD\u51FA\u3059\u308B\n -u \u65E2\u5B58\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u66F4\u65B0\u3059\u308B\n -v \u6A19\u6E96\u51FA\u529B\u306B\u8A73\u7D30\u306A\u51FA\u529B\u3092\u751F\u6210\u3059\u308B\n -f \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u6307\u5B9A\u3059\u308B\n -m \u6307\u5B9A\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u60C5\u5831\u3092\u53D6\u308A\u8FBC\u3080\n -e \u5B9F\u884C\u53EF\u80FDjar\u30D5\u30A1\u30A4\u30EB\u306B\u30D0\u30F3\u30C9\u30EB\u3055\u308C\u305F\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\n \u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u3092\u6307\u5B9A\u3059\u308B\n -0 \u683C\u7D0D\u306E\u307F\u3002ZIP\u5727\u7E2E\u3092\u4F7F\u7528\u3057\u306A\u3044\n -M \u30A8\u30F3\u30C8\u30EA\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u306A\u3044\n -i \u6307\u5B9A\u306Ejar\u30D5\u30A1\u30A4\u30EB\u306E\u7D22\u5F15\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n -C \u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u5909\u66F4\u3057\u3001\u4EE5\u4E0B\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u308A\u8FBC\u3080\n\u30D5\u30A1\u30A4\u30EB\u304C\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u5834\u5408\u306F\u518D\u5E30\u7684\u306B\u51E6\u7406\u3055\u308C\u307E\u3059\u3002\n\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u304A\u3088\u3073\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u540D\u306F\u3001\n\u30D5\u30E9\u30B0'm'\u3001'f'\u3001'e'\u306E\u6307\u5B9A\u3068\u540C\u3058\u9806\u756A\u3067\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\n\u4F8B1: 2\u3064\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6classes.jar\u306B\u4FDD\u5B58\u3059\u308B:\n jar cvf classes.jar Foo.class Bar.class\n\u4F8B2: \u65E2\u5B58\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB'mymanifest'\u3092\u4F7F\u7528\u3057\u3001foo/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\n \u5168\u30D5\u30A1\u30A4\u30EB\u3092'classes.jar'\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3059\u308B:\n jar cvfm classes.jar mymanifest -C foo/ \n +usage=\u4F7F\u7528\u65B9\u6CD5: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\u30AA\u30D7\u30B7\u30E7\u30F3:\n -c \u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B\n -t \u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u5185\u5BB9\u3092\u4E00\u89A7\u8868\u793A\u3059\u308B\n -x \u6307\u5B9A\u306E(\u307E\u305F\u306F\u3059\u3079\u3066\u306E)\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u62BD\u51FA\u3059\u308B\n -u \u65E2\u5B58\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u66F4\u65B0\u3059\u308B\n -v \u6A19\u6E96\u51FA\u529B\u306B\u8A73\u7D30\u306A\u51FA\u529B\u3092\u751F\u6210\u3059\u308B\n -f \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u6307\u5B9A\u3059\u308B\n -m \u6307\u5B9A\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u60C5\u5831\u3092\u53D6\u308A\u8FBC\u3080\n -e \u5B9F\u884C\u53EF\u80FDjar\u30D5\u30A1\u30A4\u30EB\u306B\u30D0\u30F3\u30C9\u30EB\u3055\u308C\u305F\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\n \u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u3092\u6307\u5B9A\u3059\u308B\n -0 \u683C\u7D0D\u306E\u307F\u3002ZIP\u5727\u7E2E\u3092\u4F7F\u7528\u3057\u306A\u3044\n -M \u30A8\u30F3\u30C8\u30EA\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u306A\u3044\n -i \u6307\u5B9A\u306Ejar\u30D5\u30A1\u30A4\u30EB\u306E\u7D22\u5F15\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n -C \u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u5909\u66F4\u3057\u3001\u4EE5\u4E0B\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u308A\u8FBC\u3080\n\u30D5\u30A1\u30A4\u30EB\u304C\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u5834\u5408\u306F\u518D\u5E30\u7684\u306B\u51E6\u7406\u3055\u308C\u307E\u3059\u3002\n\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u304A\u3088\u3073\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u540D\u306F\u3001\n\u30D5\u30E9\u30B0'm'\u3001'f'\u3001'e'\u306E\u6307\u5B9A\u3068\u540C\u3058\u9806\u756A\u3067\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\n\u4F8B1: 2\u3064\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6classes.jar\u306B\u4FDD\u5B58\u3059\u308B:\n jar cvf classes.jar Foo.class Bar.class\n\u4F8B2: \u65E2\u5B58\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB'mymanifest'\u3092\u4F7F\u7528\u3057\u3001foo/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\n \u5168\u30D5\u30A1\u30A4\u30EB\u3092'classes.jar'\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3059\u308B:\n jar cvfm classes.jar mymanifest -C foo/ .\n --- ./jdk/src/share/classes/sun/tools/jar/resources/jar_ko.properties 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_ko.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_ko.properties 2014-07-15 21:49:31.000000000 -0700 @@ -34,14 +34,14 @@ error.create.dir={0}: \uB514\uB809\uD1A0\uB9AC\uB97C \uC0DD\uC131\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. error.incorrect.length=\uCC98\uB9AC \uC911 \uC62C\uBC14\uB974\uC9C0 \uC54A\uC740 \uAE38\uC774\uAC00 \uBC1C\uACAC\uB428: {0} @@ -73343,7 +81185,7 @@ -usage=\uC0AC\uC6A9\uBC95: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\uC635\uC158:\n -c \uC0C8 \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -t \uC544\uCE74\uC774\uBE0C\uC5D0 \uB300\uD55C \uBAA9\uCC28\uB97C \uB098\uC5F4\uD569\uB2C8\uB2E4.\n -x \uBA85\uBA85\uB41C(\uB610\uB294 \uBAA8\uB4E0) \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uC5D0\uC11C \uCD94\uCD9C\uD569\uB2C8\uB2E4.\n -u \uAE30\uC874 \uC544\uCE74\uC774\uBE0C\uB97C \uAC31\uC2E0\uD569\uB2C8\uB2E4.\n -v \uD45C\uC900 \uCD9C\uB825\uC5D0 \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -f \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -m \uC9C0\uC815\uB41C Manifest \uD30C\uC77C\uC758 Manifest \uC815\uBCF4\uB97C \uD3EC\uD568\uD569\uB2C8\uB2E4.\n -e jar \uC2E4\uD589 \uD30C\uC77C\uC5D0 \uBC88\uB4E4\uB85C \uC81C\uACF5\uB41C \uB3C5\uB9BD\uD615 \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8\uC758 \n \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8 \uC2DC\uC791 \uC9C0\uC810\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -0 \uC800\uC7A5 \uC804\uC6A9: ZIP \uC555\uCD95\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -M \uD56D\uBAA9\uC5D0 \uB300\uD574 Manifest \uD30C\uC77C\uC744 \uC0DD\uC131\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -i \uC9C0\uC815\uB41C jar \uD30C\uC77C\uC5D0 \uB300\uD55C \uC778\uB371\uC2A4 \uC815\uBCF4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -C \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uB85C \uBCC0\uACBD\uD558\uACE0 \uB2E4\uC74C \uD30C\uC77C\uC744 \uD3EC\uD568\uD569\uB2C8\uB2E4.\n\uD2B9\uC815 \uD30C\uC77C\uC774 \uB514\uB809\uD1A0\uB9AC\uC77C \uACBD\uC6B0 \uC21C\uD658\uC801\uC73C\uB85C \uCC98\uB9AC\uB429\uB2C8\uB2E4.\nManifest \uD30C\uC77C \uC774\uB984, \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984 \uBC0F \uC2DC\uC791 \uC9C0\uC810 \uC774\uB984\uC740\n'm', 'f' \uBC0F 'e' \uD50C\uB798\uADF8\uC640 \uB3D9\uC77C\uD55C \uC21C\uC11C\uB85C \uC9C0\uC815\uB429\uB2C8\uB2E4.\n\n\uC608 1: classes.jar\uB77C\uB294 \uC544\uCE74\uC774\uBE0C\uC5D0 \uB450 \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvf classes.jar Foo.class Bar.class \n\uC608 2: \uAE30\uC874 Manifest \uD30C\uC77C 'mymanifest'\uB97C \uC0AC\uC6A9\uD558\uC5EC\n foo/ \uB514\uB809\uD1A0\uB9AC\uC758 \uBAA8\uB4E0 \uD30C\uC77C\uC744 'classes.jar'\uB85C \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvfm classes.jar mymanifest -C foo/ .\n +usage=\uC0AC\uC6A9\uBC95: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\uC635\uC158:\n -c \uC0C8 \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -t \uC544\uCE74\uC774\uBE0C\uC5D0 \uB300\uD55C \uBAA9\uCC28\uB97C \uB098\uC5F4\uD569\uB2C8\uB2E4.\n -x \uBA85\uBA85\uB41C(\uB610\uB294 \uBAA8\uB4E0) \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uC5D0\uC11C \uCD94\uCD9C\uD569\uB2C8\uB2E4.\n -u \uAE30\uC874 \uC544\uCE74\uC774\uBE0C\uB97C \uC5C5\uB370\uC774\uD2B8\uD569\uB2C8\uB2E4.\n -v \uD45C\uC900 \uCD9C\uB825\uC5D0 \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -f \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -m \uC9C0\uC815\uB41C Manifest \uD30C\uC77C\uC758 Manifest \uC815\uBCF4\uB97C \uD3EC\uD568\uD569\uB2C8\uB2E4.\n -e jar \uC2E4\uD589 \uD30C\uC77C\uC5D0 \uBC88\uB4E4\uB85C \uC81C\uACF5\uB41C \uB3C5\uB9BD\uD615 \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8\uC758 \n \uC751\uC6A9 \uD504\uB85C\uADF8\uB7A8 \uC2DC\uC791 \uC9C0\uC810\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -0 \uC800\uC7A5 \uC804\uC6A9: ZIP \uC555\uCD95\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -M \uD56D\uBAA9\uC5D0 \uB300\uD574 Manifest \uD30C\uC77C\uC744 \uC0DD\uC131\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -i \uC9C0\uC815\uB41C jar \uD30C\uC77C\uC5D0 \uB300\uD55C \uC778\uB371\uC2A4 \uC815\uBCF4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -C \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uB85C \uBCC0\uACBD\uD558\uACE0 \uB2E4\uC74C \uD30C\uC77C\uC744 \uD3EC\uD568\uD569\uB2C8\uB2E4.\n\uD2B9\uC815 \uD30C\uC77C\uC774 \uB514\uB809\uD1A0\uB9AC\uC77C \uACBD\uC6B0 \uC21C\uD658\uC801\uC73C\uB85C \uCC98\uB9AC\uB429\uB2C8\uB2E4.\nManifest \uD30C\uC77C \uC774\uB984, \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984 \uBC0F \uC2DC\uC791 \uC9C0\uC810 \uC774\uB984\uC740\n'm', 'f' \uBC0F 'e' \uD50C\uB798\uADF8\uC640 \uB3D9\uC77C\uD55C \uC21C\uC11C\uB85C \uC9C0\uC815\uB429\uB2C8\uB2E4.\n\n\uC608 1: classes.jar\uB77C\uB294 \uC544\uCE74\uC774\uBE0C\uC5D0 \uB450 \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvf classes.jar Foo.class Bar.class \n\uC608 2: \uAE30\uC874 Manifest \uD30C\uC77C 'mymanifest'\uB97C \uC0AC\uC6A9\uD558\uC5EC\n foo/ \uB514\uB809\uD1A0\uB9AC\uC758 \uBAA8\uB4E0 \uD30C\uC77C\uC744 'classes.jar'\uB85C \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvfm classes.jar mymanifest -C foo/ .\n --- ./jdk/src/share/classes/sun/tools/jar/resources/jar_pt_BR.properties 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_pt_BR.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_pt_BR.properties 2014-07-15 21:49:31.000000000 -0700 @@ -37,11 +37,11 @@ out.update.manifest=manifesto atualizado out.ignore.entry=ignorando entrada {0} @@ -73361,7 +81203,7 @@ -usage=Uso: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] arquivos ...\nOp\u00E7\u00F5es:\n -c cria novo arquivo compactado\n -t lista o sum\u00E1rio do arquivo compactado\n -x extrai arquivos com o nome (ou todos) do arquivo compactado\n -u atualizar o arquivo compactado existente\n -v gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o\n -f especifica o nome do arquivo do arquivo compactado\n -m inclui as informa\u00E7\u00F5es do manifesto do arquivo de manifesto especificado\n -e especifica o ponto de entrada da aplica\u00E7\u00E3o para aplica\u00E7\u00E3o independente \n empacotando em um arquivo jar execut\u00E1vel\n -0 armazena somente; n\u00E3o usa compacta\u00E7\u00E3o ZIP\n -M n\u00E3o cria um arquivo de manifesto para as entradas\n -i gera informa\u00E7\u00F5es de \u00EDndice para os arquivos especificados\n -C altera para o diret\u00F3rio e inclui o arquivo seguinte\nSe nenhum arquivo for um diret\u00F3rio, ent\u00E3o ser\u00E1 processado repetidamente.\nO nome do arquivo de manifesto, o nome do arquivo compactado e o nome do ponto de entrada s\u00E3o\nespecificados na mesma ordem dos flags 'm', 'f' e 'e'.\n\nExemplo 1: para arquivar dois arquivos de classe em um arquivo compactado com o nome classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExemplo 2: use um arquivo de manifesto existente 'mymanifest' e arquive todos os\n arquivos no diret\u00F3rio foo/ na 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n +usage=Uso: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] arquivos ...\nOp\u00E7\u00F5es:\n -c cria novo arquivo compactado\n -t lista o sum\u00E1rio do arquivo compactado\n -x extrai arquivos com o nome (ou todos) do arquivo compactado\n -u atualiza o arquivo compactado existente\n -v gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o\n -f especifica o nome do arquivo do arquivo compactado\n -m inclui as informa\u00E7\u00F5es do manifesto do arquivo de manifesto especificado\n -e especifica o ponto de entrada da aplica\u00E7\u00E3o para aplica\u00E7\u00E3o independente \n empacotando em um arquivo jar execut\u00E1vel\n -0 armazena somente; n\u00E3o usa compacta\u00E7\u00E3o ZIP\n -M n\u00E3o cria um arquivo de manifesto para as entradas\n -i gera informa\u00E7\u00F5es de \u00EDndice para os arquivos especificados\n -C passa para o diret\u00F3rio especificado e inclui o arquivo a seguir\nSe um arquivo tamb\u00E9m for um diret\u00F3rio, ele ser\u00E1 processado repetidamente.\nO nome do arquivo de manifesto, o nome do arquivo compactado e o nome do ponto de entrada s\u00E3o\nespecificados na mesma ordem dos flags 'm', 'f' e 'e'.\n\nExemplo 1: para arquivar dois arquivos de classe em um arquivo compactado denominado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExemplo 2: use um arquivo de manifesto existente 'mymanifest' e arquive todos os\n arquivos no diret\u00F3rio foo/ na 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n --- ./jdk/src/share/classes/sun/tools/jar/resources/jar_sv.properties 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_sv.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_sv.properties 2014-07-15 21:49:31.000000000 -0700 @@ -44,4 +44,4 @@ out.inflated=\ uppackat: {0} out.size=(in = {0}) (ut = {1}) @@ -73369,7 +81211,7 @@ -usage=Syntax: jar {ctxui}[vfm0Me] [jar fil] [manifestfil] [startpunkt] [-C-katalog] ...\nAlternativ:\n -c skapa nytt arkiv\n -t lista inneh\u00E5llsf\u00F6rteckning f\u00F6r arkiv\n -x extrahera namngivna (eller alla) filer fr\u00E5n arkiv\n -u uppdatera befintligt arkiv\n -v generera utf\u00F6rliga utdata vid standardutmatning\n -f ange arkivfilens namn\n -m inkludera manifestinformation fr\u00E5n angivet manifest\n -e ange programstartpunkt f\u00F6r frist\u00E5ende applikation \n som medf\u00F6ljer i en jar-programfil\n -0 endast lagra (ingen zip-komprimering)\n -M skapa inte n\u00E5gon manifestfil f\u00F6r posterna\n -i generera indexinformation f\u00F6r de angivna jar-filerna\n -C \u00E4ndra till den angivna katalogen och inkludera f\u00F6ljande fil\nOm en fil \u00E4r en katalog bearbetas den rekursivt.\nNamnen p\u00E5 manifestfilen, arkivfilen och startpunkten anges i samma\nordning som m-, f- och e-flaggorna.\n\nExempel 1: S\u00E5 h\u00E4r arkiverar du tv\u00E5 klassfiler i ett arkiv med namnet classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExempel 2: Anv\u00E4nd en befintlig manifestfil (mymanifest) och arkivera alla\n filer fr\u00E5n katalogen foo/ i classes.jar: \n jar cvfm classes.jar mymanifest -C foo/ .\n +usage=Syntax: jar {ctxui}[vfm0Me] [jar-fil] [manifestfil] [startpunkt] [-C katalog] filer...\nAlternativ:\n -c skapa nytt arkiv\n -t lista inneh\u00E5llsf\u00F6rteckning f\u00F6r arkiv\n -x extrahera namngivna (eller alla) filer fr\u00E5n arkiv\n -u uppdatera befintligt arkiv\n -v generera utf\u00F6rliga utdata vid standardutmatning\n -f ange arkivfilens namn\n -m inkludera manifestinformation fr\u00E5n angivet manifest\n -e ange programstartpunkt f\u00F6r frist\u00E5ende applikation \n som medf\u00F6ljer i en jar-programfil\n -0 endast lagra (ingen zip-komprimering)\n -M skapa inte n\u00E5gon manifestfil f\u00F6r posterna\n -i generera indexinformation f\u00F6r de angivna jar-filerna\n -C \u00E4ndra till den angivna katalogen och inkludera f\u00F6ljande fil\nOm en fil \u00E4r en katalog bearbetas den rekursivt.\nNamnen p\u00E5 manifestfilen, arkivfilen och startpunkten anges i samma\nordning som m-, f- och e-flaggorna.\n\nExempel 1: S\u00E5 h\u00E4r arkiverar du tv\u00E5 klassfiler i ett arkiv med namnet classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExempel 2: Anv\u00E4nd en befintlig manifestfil (mymanifest) och arkivera alla\n filer fr\u00E5n katalogen foo/ i classes.jar: \n jar cvfm classes.jar mymanifest -C foo/ .\n --- ./jdk/src/share/classes/sun/tools/jar/resources/jar_zh_CN.properties 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_zh_CN.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_zh_CN.properties 2014-07-15 21:49:31.000000000 -0700 @@ -44,4 +44,4 @@ out.inflated=\ \u5DF2\u89E3\u538B: {0} out.size=(\u8F93\u5165 = {0}) (\u8F93\u51FA = {1}) @@ -73377,7 +81219,7 @@ -usage=\u7528\u6CD5: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\u9009\u9879\u5305\u62EC: \n -c \u521B\u5EFA\u65B0\u7684\u5F52\u6863\u6587\u4EF6\n -t \u5217\u51FA\u5F52\u6863\u76EE\u5F55\n -x \u4ECE\u6863\u6848\u4E2D\u63D0\u53D6\u6307\u5B9A\u7684 (\u6216\u6240\u6709) \u6587\u4EF6\n -u \u66F4\u65B0\u73B0\u6709\u7684\u5F52\u6863\u6587\u4EF6\n -v \u5728\u6807\u51C6\u8F93\u51FA\u4E2D\u751F\u6210\u8BE6\u7EC6\u8F93\u51FA\n -f \u6307\u5B9A\u5F52\u6863\u6587\u4EF6\u540D\n -m \u5305\u542B\u6307\u5B9A\u6E05\u5355\u6587\u4EF6\u4E2D\u7684\u6E05\u5355\u4FE1\u606F\n -e \u4E3A\u6346\u7ED1\u5230\u53EF\u6267\u884C jar \u6587\u4EF6\u7684\u72EC\u7ACB\u5E94\u7528\u7A0B\u5E8F\n \u6307\u5B9A\u5E94\u7528\u7A0B\u5E8F\u5165\u53E3\u70B9\n -0 \u4EC5\u5B58\u50A8; \u4E0D\u4F7F\u7528\u60C5\u51B5\u4EFB\u4F55 ZIP \u538B\u7F29\n -M \u4E0D\u521B\u5EFA\u6761\u76EE\u7684\u6E05\u5355\u6587\u4EF6\n -i \u4E3A\u6307\u5B9A\u7684 jar \u6587\u4EF6\u751F\u6210\u7D22\u5F15\u4FE1\u606F\n -C \u66F4\u6539\u4E3A\u6307\u5B9A\u7684\u76EE\u5F55\u5E76\u5305\u542B\u5176\u4E2D\u7684\u6587\u4EF6\n\u5982\u679C\u6709\u4EFB\u4F55\u76EE\u5F55\u6587\u4EF6, \u5219\u5BF9\u5176\u8FDB\u884C\u9012\u5F52\u5904\u7406\u3002\n\u6E05\u5355\u6587\u4EF6\u540D, \u5F52\u6863\u6587\u4EF6\u540D\u548C\u5165\u53E3\u70B9\u540D\u79F0\u7684\u6307\u5B9A\u987A\u5E8F\n\u4E0E 'm', 'f' \u548C 'e' \u6807\u8BB0\u7684\u6307\u5B9A\u987A\u5E8F\u76F8\u540C\u3002\n\n\u793A\u4F8B 1: \u5C06\u4E24\u4E2A\u7C7B\u6587\u4EF6\u5F52\u6863\u5230\u4E00\u4E2A\u540D\u4E3A classes.jar \u7684\u5F52\u6863\u6587\u4EF6\u4E2D: \n jar cvf classes.jar Foo.class Bar.class \n\u793A\u4F8B 2: \u4F7F\u7528\u73B0\u6709\u7684\u6E05\u5355\u6587\u4EF6 'mymanifest' \u5E76\n \u5C06 foo/ \u76EE\u5F55\u4E2D\u7684\u6240\u6709\u6587\u4EF6\u5F52\u6863\u5230 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/\u3002\n +usage=\u7528\u6CD5: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\u9009\u9879\u5305\u62EC: \n -c \u521B\u5EFA\u65B0\u7684\u5F52\u6863\u6587\u4EF6\n -t \u5217\u51FA\u5F52\u6863\u76EE\u5F55\n -x \u4ECE\u6863\u6848\u4E2D\u63D0\u53D6\u6307\u5B9A\u7684 (\u6216\u6240\u6709) \u6587\u4EF6\n -u \u66F4\u65B0\u73B0\u6709\u7684\u5F52\u6863\u6587\u4EF6\n -v \u5728\u6807\u51C6\u8F93\u51FA\u4E2D\u751F\u6210\u8BE6\u7EC6\u8F93\u51FA\n -f \u6307\u5B9A\u5F52\u6863\u6587\u4EF6\u540D\n -m \u5305\u542B\u6307\u5B9A\u6E05\u5355\u6587\u4EF6\u4E2D\u7684\u6E05\u5355\u4FE1\u606F\n -e \u4E3A\u6346\u7ED1\u5230\u53EF\u6267\u884C jar \u6587\u4EF6\u7684\u72EC\u7ACB\u5E94\u7528\u7A0B\u5E8F\n \u6307\u5B9A\u5E94\u7528\u7A0B\u5E8F\u5165\u53E3\u70B9\n -0 \u4EC5\u5B58\u50A8; \u4E0D\u4F7F\u7528\u60C5\u51B5\u4EFB\u4F55 ZIP \u538B\u7F29\n -M \u4E0D\u521B\u5EFA\u6761\u76EE\u7684\u6E05\u5355\u6587\u4EF6\n -i \u4E3A\u6307\u5B9A\u7684 jar \u6587\u4EF6\u751F\u6210\u7D22\u5F15\u4FE1\u606F\n -C \u66F4\u6539\u4E3A\u6307\u5B9A\u7684\u76EE\u5F55\u5E76\u5305\u542B\u5176\u4E2D\u7684\u6587\u4EF6\n\u5982\u679C\u6709\u4EFB\u4F55\u76EE\u5F55\u6587\u4EF6, \u5219\u5BF9\u5176\u8FDB\u884C\u9012\u5F52\u5904\u7406\u3002\n\u6E05\u5355\u6587\u4EF6\u540D, \u5F52\u6863\u6587\u4EF6\u540D\u548C\u5165\u53E3\u70B9\u540D\u79F0\u7684\u6307\u5B9A\u987A\u5E8F\n\u4E0E 'm', 'f' \u548C 'e' \u6807\u8BB0\u7684\u6307\u5B9A\u987A\u5E8F\u76F8\u540C\u3002\n\n\u793A\u4F8B 1: \u5C06\u4E24\u4E2A\u7C7B\u6587\u4EF6\u5F52\u6863\u5230\u4E00\u4E2A\u540D\u4E3A classes.jar \u7684\u5F52\u6863\u6587\u4EF6\u4E2D: \n jar cvf classes.jar Foo.class Bar.class \n\u793A\u4F8B 2: \u4F7F\u7528\u73B0\u6709\u7684\u6E05\u5355\u6587\u4EF6 'mymanifest' \u5E76\n \u5C06 foo/ \u76EE\u5F55\u4E2D\u7684\u6240\u6709\u6587\u4EF6\u5F52\u6863\u5230 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/ .\n --- ./jdk/src/share/classes/sun/tools/jar/resources/jar_zh_TW.properties 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_zh_TW.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jar/resources/jar_zh_TW.properties 2014-07-15 21:49:31.000000000 -0700 @@ -41,7 +41,7 @@ out.stored=(\u5132\u5B58 0%) out.create=\ \u5EFA\u7ACB: {0} @@ -73388,7 +81230,7 @@ usage=\u7528\u6CD5: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] \u6A94\u6848 ...\n\u9078\u9805:\n -c \u5EFA\u7ACB\u65B0\u7684\u6B78\u6A94\n -t \u5217\u51FA\u6B78\u6A94\u7684\u76EE\u9304\n -x \u5F9E\u6B78\u6A94\u4E2D\u64F7\u53D6\u5DF2\u547D\u540D\u7684 (\u6216\u6240\u6709) \u6A94\u6848\n -u \u66F4\u65B0\u73FE\u6709\u6B78\u6A94\n -v \u5728\u6A19\u6E96\u8F38\u51FA\u4E2D\u7522\u751F\u8A73\u7D30\u8F38\u51FA\n -f \u6307\u5B9A\u6B78\u6A94\u6A94\u6848\u540D\u7A31\n -m \u5305\u542B\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u4E2D\u7684\u8CC7\u8A0A\u6E05\u55AE\u8CC7\u8A0A\n -e \u70BA\u7368\u7ACB\u61C9\u7528\u7A0B\u5F0F\u6307\u5B9A\u61C9\u7528\u7A0B\u5F0F\u9032\u5165\u9EDE\n \u5DF2\u96A8\u9644\u65BC\u53EF\u57F7\u884C jar \u6A94\u6848\u4E2D\n -0 \u50C5\u5132\u5B58; \u4E0D\u4F7F\u7528 ZIP \u58D3\u7E2E\u65B9\u5F0F\n -M \u4E0D\u70BA\u9805\u76EE\u5EFA\u7ACB\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\n -i \u70BA\u6307\u5B9A\u7684 jar \u6A94\u6848\u7522\u751F\u7D22\u5F15\u8CC7\u8A0A\n -C \u8B8A\u66F4\u81F3\u6307\u5B9A\u76EE\u9304\u4E26\u5305\u542B\u5F8C\u9762\u6240\u5217\u7684\u6A94\u6848\n\u5982\u679C\u6709\u4EFB\u4F55\u6A94\u6848\u662F\u76EE\u9304\uFF0C\u5247\u6703\u5C0D\u5176\u9032\u884C\u905E\u8FF4\u8655\u7406\u3002\n\u6E05\u55AE\u6A94\u6848\u540D\u7A31\u3001\u6B78\u6A94\u6A94\u6848\u540D\u7A31\u548C\u9032\u5165\u9EDE\u540D\u7A31\n\u7684\u6307\u5B9A\u9806\u5E8F\u8207\u6307\u5B9A 'm' \u65D7\u6A19\u3001'f' \u65D7\u6A19\u548C 'e' \u65D7\u6A19\u7684\u9806\u5E8F\u76F8\u540C\u3002\n\n\u7BC4\u4F8B 1: \u5C07\u5169\u500B\u985E\u5225\u6A94\u6848\u6B78\u6A94\u81F3\u540D\u70BA classes.jar \u7684\u6B78\u6A94\u4E2D: \n jar cvf classes.jar Foo.class Bar.class\n\u7BC4\u4F8B 2: \u4F7F\u7528\u73FE\u6709\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848 'mymanifest' \u4E26\u5C07\n foo/ \u76EE\u9304\u4E2D\u7684\u6240\u6709\u6A94\u6848\u6B78\u6A94\u81F3 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/ .\n --- ./jdk/src/share/classes/sun/tools/jconsole/Messages.java 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jconsole/Messages.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jconsole/Messages.java 2014-07-15 21:49:31.000000000 -0700 @@ -36,7 +36,7 @@ Resources.initializeMessages(Messages.class, BUNDLE_NAME); } @@ -73419,7 +81261,7 @@ public static String CONNECTING_TO2; public static String DEADLOCK_TAB; --- ./jdk/src/share/classes/sun/tools/jconsole/SummaryTab.java 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jconsole/SummaryTab.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jconsole/SummaryTab.java 2014-07-15 21:49:31.000000000 -0700 @@ -213,8 +213,8 @@ String[] strings2 = formatKByteStrings(u.getCommitted()); append(Messages.COMMITTED_MEMORY, strings2[0]); @@ -73432,7 +81274,7 @@ append(newTable); --- ./jdk/src/share/classes/sun/tools/jconsole/ThreadTab.java 2013-09-06 11:28:49.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jconsole/ThreadTab.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jconsole/ThreadTab.java 2014-07-15 21:49:31.000000000 -0700 @@ -66,9 +66,6 @@ private static final Border thinEmptyBorder = new EmptyBorder(2, 2, 2, 2); @@ -73453,7 +81295,7 @@ } } --- ./jdk/src/share/classes/sun/tools/jconsole/VMPanel.java 2013-09-06 11:28:50.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jconsole/VMPanel.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jconsole/VMPanel.java 2014-07-15 21:49:31.000000000 -0700 @@ -469,8 +469,8 @@ msgExplanation = Resources.format(Messages.CONNECTING_TO2, getConnectionName()); buttonStr = Messages.RECONNECT; @@ -73466,7 +81308,7 @@ } else { msgTitle = Messages.CONNECTION_FAILED1; --- ./jdk/src/share/classes/sun/tools/jconsole/resources/messages.properties 2013-09-06 11:28:50.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jconsole/resources/messages.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jconsole/resources/messages.properties 2014-07-15 21:49:32.000000000 -0700 @@ -223,6 +223,7 @@ SUMMARY_TAB_TAB_NAME=VM Summary SUMMARY_TAB_VM_VERSION={0} version {1} @@ -73497,7 +81339,16 @@ CONNECTING_TO2=You are currently being connected to {0}.
This will take a few moments. DEADLOCK_TAB=Deadlock --- ./jdk/src/share/classes/sun/tools/jconsole/resources/messages_ja.properties 2013-09-06 11:28:50.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jconsole/resources/messages_ja.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jconsole/resources/messages_ja.properties 2014-10-28 20:19:49.000000000 -0700 +@@ -31,7 +31,7 @@ + CPU_USAGE=CPU\u4F7F\u7528\u7387 + CPU_USAGE_FORMAT=CPU\u4F7F\u7528\u7387: {0}% + CANCEL=\u53D6\u6D88 +-CASCADE=\u91CD\u306D\u3066\u8868\u793A(&C) ++CASCADE=\u30AB\u30B9\u30B1\u30FC\u30C9\u8868\u793A(&C) + CHART_COLON=\u30C1\u30E3\u30FC\u30C8(&C): + CLASS_PATH=\u30AF\u30E9\u30B9\u30D1\u30B9 + CLASS_NAME=ClassName @@ -52,7 +52,7 @@ CONNECT_DIALOG_STATUS_BAR_ACCESSIBLE_NAME=\u30B9\u30C6\u30FC\u30BF\u30B9\u30FB\u30D0\u30FC CONNECT_DIALOG_TITLE=JConsole: \u65B0\u898F\u63A5\u7D9A @@ -73535,7 +81386,7 @@ REMOTE_PROCESS_COLON=\u30EA\u30E2\u30FC\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9(&R): REMOTE_PROCESS_TEXT_FIELD_ACCESSIBLE_NAME=\u30EA\u30E2\u30FC\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9 RESTORE_ALL=\u3059\u3079\u3066\u5FA9\u5143(&R) -@@ -222,6 +223,7 @@ +@@ -222,10 +223,11 @@ SUMMARY_TAB_TAB_NAME=VM\u30B5\u30DE\u30EA\u30FC SUMMARY_TAB_VM_VERSION={0}\u30D0\u30FC\u30B8\u30E7\u30F3{1} THREADS=\u30B9\u30EC\u30C3\u30C9 @@ -73543,7 +81394,12 @@ THREAD_TAB_THREAD_INFO_ACCESSIBLE_NAME=\u30B9\u30EC\u30C3\u30C9\u60C5\u5831 THREAD_TAB_THREAD_PLOTTER_ACCESSIBLE_NAME=\u30B9\u30EC\u30C3\u30C9\u6570\u306E\u30C1\u30E3\u30FC\u30C8\u3002 THRESHOLD=\u3057\u304D\u3044\u5024 -@@ -243,7 +245,7 @@ +-TILE=\u4E26\u3079\u3066\u8868\u793A(&T) ++TILE=\u30BF\u30A4\u30EB\u8868\u793A(&T) + TIME_RANGE_COLON=\u6642\u9593\u7BC4\u56F2(&T): + TIME=\u6642\u9593 + TIME_STAMP=TimeStamp +@@ -243,14 +245,14 @@ UNREGISTER=\u767B\u9332\u89E3\u9664 UPTIME=\u7A3C\u50CD\u6642\u9593 USAGE_THRESHOLD=\u4F7F\u7528\u3057\u304D\u3044\u5024 @@ -73552,6 +81408,14 @@ USED=\u4F7F\u7528\u6E08 USERNAME_COLON_=\u30E6\u30FC\u30B6\u30FC\u540D(&U): USERNAME_ACCESSIBLE_NAME=\u30E6\u30FC\u30B6\u30FC\u540D + USER_DATA=UserData + VIRTUAL_MACHINE=\u4EEE\u60F3\u30DE\u30B7\u30F3 + VM_ARGUMENTS=VM\u5F15\u6570 +-VMINTERNAL_FRAME_ACCESSIBLE_DESCRIPTION=Java\u4EEE\u60F3\u30DE\u30B7\u30F3\u306E\u30E2\u30CB\u30BF\u30FC\u7528\u306E\u5185\u90E8\u30D5\u30EC\u30FC\u30E0 ++VMINTERNAL_FRAME_ACCESSIBLE_DESCRIPTION=Java\u4EEE\u60F3\u30DE\u30B7\u30F3\u306E\u30E2\u30CB\u30BF\u30EA\u30F3\u30B0\u7528\u306E\u5185\u90E8\u30D5\u30EC\u30FC\u30E0 + VALUE=\u5024 + VENDOR=\u30D9\u30F3\u30C0\u30FC + VERBOSE_OUTPUT=\u8A73\u7D30\u51FA\u529B @@ -259,8 +261,10 @@ WINDOW=\u30A6\u30A3\u30F3\u30C9\u30A6(&W) WINDOWS=\u30A6\u30A3\u30F3\u30C9\u30A6 @@ -73570,9 +81434,9 @@ PLOT=\u30D7\u30ED\u30C3\u30C8 VISUALIZE=\u8996\u899A\u5316 -ZZ_USAGE_TEXT=\u4F7F\u7528\u65B9\u6CD5: {0} [ -interval=n ] [ -notile ] [ -pluginpath ] [ -version ] [ connection ... ]\n\n -interval \u66F4\u65B0\u9593\u9694\u3092n\u79D2\u306B\u8A2D\u5B9A\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8\u306F4\u79D2)\n -notile \u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u6700\u521D\u306B\u4E26\u3079\u3066\u8868\u793A\u3057\u306A\u3044(2\u3064\u4EE5\u4E0A\u306E\u63A5\u7D9A\u306B\u3064\u3044\u3066)\n -pluginpath JConsole\u304C\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u53C2\u7167\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3059\u308B\u30D1\u30B9\u3092\u6307\u5B9A\u3059\u308B\n -version \u30D7\u30ED\u30B0\u30E9\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u5370\u5237\u3059\u308B\n\n connection = pid || host:port || JMX URL (service:jmx:://...)\n pid \u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9\u306E\u30D7\u30ED\u30BB\u30B9ID\n host \u30EA\u30E2\u30FC\u30C8\u30FB\u30DB\u30B9\u30C8\u540D\u307E\u305F\u306FIP\u30A2\u30C9\u30EC\u30B9\n port \u30EA\u30E2\u30FC\u30C8\u63A5\u7D9A\u7528\u306E\u30DD\u30FC\u30C8\u756A\u53F7\n\n -J JConsole\u304C\u5B9F\u884C\u4E2D\u306EJava\u4EEE\u60F3\u30DE\u30B7\u30F3\u3078\u306E\n \u5165\u529B\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B -+ZZ_USAGE_TEXT=\u4F7F\u7528\u65B9\u6CD5: {0} [ -interval=n ] [ -notile ] [ -pluginpath ] [ -version ] [ connection ... ]\n\n -interval \u66F4\u65B0\u9593\u9694\u3092n\u79D2\u306B\u8A2D\u5B9A\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8\u306F4\u79D2)\n -notile \u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u6700\u521D\u306B\u4E26\u3079\u3066\u8868\u793A\u3057\u306A\u3044(2\u3064\u4EE5\u4E0A\u306E\u63A5\u7D9A\u306B\u3064\u3044\u3066)\n -pluginpath JConsole\u304C\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u53C2\u7167\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3059\u308B\u30D1\u30B9\u3092\u6307\u5B9A\u3059\u308B\n -version \u30D7\u30ED\u30B0\u30E9\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3059\u308B\n\n connection = pid || host:port || JMX URL (service:jmx:://...)\n pid \u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9\u306E\u30D7\u30ED\u30BB\u30B9ID\n host \u30EA\u30E2\u30FC\u30C8\u30FB\u30DB\u30B9\u30C8\u540D\u307E\u305F\u306FIP\u30A2\u30C9\u30EC\u30B9\n port \u30EA\u30E2\u30FC\u30C8\u63A5\u7D9A\u7528\u306E\u30DD\u30FC\u30C8\u756A\u53F7\n\n -J JConsole\u304C\u5B9F\u884C\u4E2D\u306EJava\u4EEE\u60F3\u30DE\u30B7\u30F3\u3078\u306E\n \u5165\u529B\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B ++ZZ_USAGE_TEXT=\u4F7F\u7528\u65B9\u6CD5: {0} [ -interval=n ] [ -notile ] [ -pluginpath ] [ -version ] [ connection ... ]\n\n -interval \u66F4\u65B0\u9593\u9694\u3092n\u79D2\u306B\u8A2D\u5B9A\u3059\u308B(\u30C7\u30D5\u30A9\u30EB\u30C8\u306F4\u79D2)\n -notile \u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u6700\u521D\u306B\u30BF\u30A4\u30EB\u8868\u793A\u3057\u306A\u3044(2\u3064\u4EE5\u4E0A\u306E\u63A5\u7D9A\u306B\u3064\u3044\u3066)\n -pluginpath JConsole\u304C\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u53C2\u7167\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3059\u308B\u30D1\u30B9\u3092\u6307\u5B9A\u3059\u308B\n -version \u30D7\u30ED\u30B0\u30E9\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3059\u308B\n\n connection = pid || host:port || JMX URL (service:jmx:://...)\n pid \u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9\u306E\u30D7\u30ED\u30BB\u30B9ID\n host \u30EA\u30E2\u30FC\u30C8\u30FB\u30DB\u30B9\u30C8\u540D\u307E\u305F\u306FIP\u30A2\u30C9\u30EC\u30B9\n port \u30EA\u30E2\u30FC\u30C8\u63A5\u7D9A\u7528\u306E\u30DD\u30FC\u30C8\u756A\u53F7\n\n -J JConsole\u304C\u5B9F\u884C\u4E2D\u306EJava\u4EEE\u60F3\u30DE\u30B7\u30F3\u3078\u306E\n \u5165\u529B\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B --- ./jdk/src/share/classes/sun/tools/jconsole/resources/messages_zh_CN.properties 2013-09-06 11:28:50.000000000 -0700 -+++ ./jdk/src/share/classes/sun/tools/jconsole/resources/messages_zh_CN.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/tools/jconsole/resources/messages_zh_CN.properties 2014-07-15 21:49:32.000000000 -0700 @@ -161,7 +161,7 @@ MESSAGE=\u6D88\u606F METHOD_SUCCESSFULLY_INVOKED=\u5DF2\u6210\u529F\u8C03\u7528\u65B9\u6CD5 @@ -73616,8 +81480,197 @@ CONNECTION_LOST1=\u8FDE\u63A5\u4E22\u5931: \u662F\u5426\u91CD\u65B0\u8FDE\u63A5? CONNECTING_TO1=\u6B63\u5728\u8FDE\u63A5\u5230{0} CONNECTING_TO2=\u60A8\u5F53\u524D\u6B63\u5728\u8FDE\u63A5\u5230{0}\u3002
\u8FD9\u5C06\u9700\u8981\u51E0\u5206\u949F\u7684\u65F6\u95F4\u3002 +--- ./jdk/src/share/classes/sun/util/locale/BaseLocale.java 2013-09-06 11:28:51.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/locale/BaseLocale.java 2014-10-28 20:19:49.000000000 -0700 +@@ -31,6 +31,7 @@ + */ + + package sun.util.locale; ++import java.lang.ref.SoftReference; + + + public final class BaseLocale { +@@ -163,11 +164,11 @@ + return h; + } + +- private static final class Key implements Comparable { +- private final String lang; +- private final String scrt; +- private final String regn; +- private final String vart; ++ private static final class Key { ++ private final SoftReference lang; ++ private final SoftReference scrt; ++ private final SoftReference regn; ++ private final SoftReference vart; + private final boolean normalized; + private final int hash; + +@@ -179,10 +180,10 @@ + assert language.intern() == language + && region.intern() == region; + +- lang = language; +- scrt = ""; +- regn = region; +- vart = ""; ++ lang = new SoftReference(language); ++ scrt = new SoftReference(""); ++ regn = new SoftReference(region); ++ vart = new SoftReference(""); + this.normalized = true; + + int h = language.hashCode(); +@@ -203,40 +204,40 @@ + String variant, boolean normalized) { + int h = 0; + if (language != null) { +- lang = language; ++ lang = new SoftReference(language); + int len = language.length(); + for (int i = 0; i < len; i++) { + h = 31*h + LocaleUtils.toLower(language.charAt(i)); + } + } else { +- lang = ""; ++ lang = new SoftReference(""); + } + if (script != null) { +- scrt = script; ++ scrt = new SoftReference(script); + int len = script.length(); + for (int i = 0; i < len; i++) { + h = 31*h + LocaleUtils.toLower(script.charAt(i)); + } + } else { +- scrt = ""; ++ scrt = new SoftReference(""); + } + if (region != null) { +- regn = region; ++ regn = new SoftReference(region); + int len = region.length(); + for (int i = 0; i < len; i++) { + h = 31*h + LocaleUtils.toLower(region.charAt(i)); + } + } else { +- regn = ""; ++ regn = new SoftReference(""); + } + if (variant != null) { +- vart = variant; ++ vart = new SoftReference(variant); + int len = variant.length(); + for (int i = 0; i < len; i++) { + h = 31*h + variant.charAt(i); + } + } else { +- vart = ""; ++ vart = new SoftReference(""); + } + hash = h; + this.normalized = normalized; +@@ -244,28 +245,31 @@ + + @Override + public boolean equals(Object obj) { +- return (this == obj) || +- (obj instanceof Key) +- && this.hash == ((Key)obj).hash +- && LocaleUtils.caseIgnoreMatch(((Key)obj).lang, this.lang) +- && LocaleUtils.caseIgnoreMatch(((Key)obj).scrt, this.scrt) +- && LocaleUtils.caseIgnoreMatch(((Key)obj).regn, this.regn) +- && ((Key)obj).vart.equals(vart); // variant is case sensitive in JDK! ++ if (this == obj) { ++ return true; + } + +- @Override +- public int compareTo(Key other) { +- int res = LocaleUtils.caseIgnoreCompare(this.lang, other.lang); +- if (res == 0) { +- res = LocaleUtils.caseIgnoreCompare(this.scrt, other.scrt); +- if (res == 0) { +- res = LocaleUtils.caseIgnoreCompare(this.regn, other.regn); +- if (res == 0) { +- res = this.vart.compareTo(other.vart); ++ if (obj instanceof Key && this.hash == ((Key)obj).hash) { ++ String tl = this.lang.get(); ++ String ol = ((Key)obj).lang.get(); ++ if (tl != null && ol != null && ++ LocaleUtils.caseIgnoreMatch(ol, tl)) { ++ String ts = this.scrt.get(); ++ String os = ((Key)obj).scrt.get(); ++ if (ts != null && os != null && ++ LocaleUtils.caseIgnoreMatch(os, ts)) { ++ String tr = this.regn.get(); ++ String or = ((Key)obj).regn.get(); ++ if (tr != null && or != null && ++ LocaleUtils.caseIgnoreMatch(or, tr)) { ++ String tv = this.vart.get(); ++ String ov = ((Key)obj).vart.get(); ++ return (ov != null && ov.equals(tv)); + } + } + } +- return res; ++ } ++ return false; + } + + @Override +@@ -278,10 +282,10 @@ + return key; + } + +- String lang = LocaleUtils.toLowerString(key.lang).intern(); +- String scrt = LocaleUtils.toTitleString(key.scrt).intern(); +- String regn = LocaleUtils.toUpperString(key.regn).intern(); +- String vart = key.vart.intern(); // preserve upper/lower cases ++ String lang = LocaleUtils.toLowerString(key.lang.get()).intern(); ++ String scrt = LocaleUtils.toTitleString(key.scrt.get()).intern(); ++ String regn = LocaleUtils.toUpperString(key.regn.get()).intern(); ++ String vart = key.vart.get().intern(); // preserve upper/lower cases + + return new Key(lang, scrt, regn, vart, true); + } +@@ -294,12 +298,18 @@ + + @Override + protected Key normalizeKey(Key key) { ++ assert key.lang.get() != null && ++ key.scrt.get() != null && ++ key.regn.get() != null && ++ key.vart.get() != null; ++ + return Key.normalize(key); + } + + @Override + protected BaseLocale createObject(Key key) { +- return new BaseLocale(key.lang, key.scrt, key.regn, key.vart); ++ return new BaseLocale(key.lang.get(), key.scrt.get(), ++ key.regn.get(), key.vart.get()); + } + } + } +--- ./jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java 2013-09-06 11:28:51.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/locale/LocaleObjectCache.java 2014-10-28 20:19:49.000000000 -0700 +@@ -57,8 +57,10 @@ + value = entry.get(); + } + if (value == null) { +- key = normalizeKey(key); + V newVal = createObject(key); ++ // make sure key is normalized *after* the object creation ++ // so that newVal is assured to be created from a valid key. ++ key = normalizeKey(key); + if (key == null || newVal == null) { + // subclass must return non-null key/value object + return null; --- ./jdk/src/share/classes/sun/util/logging/resources/logging.properties 2013-09-06 11:28:51.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/logging/resources/logging.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/logging/resources/logging.properties 2014-07-15 21:49:32.000000000 -0700 @@ -27,20 +27,20 @@ # these are the same as the non-localized level name. @@ -73649,7 +81702,7 @@ -OFF=OFF +OFF=Off --- ./jdk/src/share/classes/sun/util/logging/resources/logging_zh_TW.properties 2013-09-06 11:28:52.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/logging/resources/logging_zh_TW.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/logging/resources/logging_zh_TW.properties 2014-07-15 21:49:32.000000000 -0700 @@ -27,7 +27,7 @@ # these are the same as the non-localized level name. @@ -73660,7 +81713,7 @@ SEVERE=\u56B4\u91CD # The following ALL CAPS words should be translated. --- ./jdk/src/share/classes/sun/util/resources/CalendarData_pt_BR.properties 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/src/share/classes/sun/util/resources/CalendarData_pt_BR.properties 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/resources/CalendarData_pt_BR.properties 2014-07-15 21:54:45.000000000 -0700 @@ -0,0 +1,40 @@ +# +# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. @@ -73703,7 +81756,7 @@ +firstDayOfWeek=1 +minimalDaysInFirstWeek=1 --- ./jdk/src/share/classes/sun/util/resources/TimeZoneNames.java 2013-09-06 11:28:53.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. @@ -73840,7 +81893,7 @@ "Middle Europe Summer Time", "MEST"}}, {"Mexico/BajaNorte", PST}, --- ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java 2013-09-06 11:28:53.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -74086,7 +82139,7 @@ "Zentraleurop\u00e4ische Sommerzeit", "MEST"}}, {"Mexico/BajaNorte", PST}, --- ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java 2013-09-06 11:28:53.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -74300,7 +82353,7 @@ "Hora de verano de Europa Central", "MEST"}}, {"Mexico/BajaNorte", PST}, --- ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java 2013-09-06 11:28:53.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -74548,7 +82601,7 @@ "Heure d'\u00e9t\u00e9 de l'Europe centrale", "MEST"}}, {"Mexico/BajaNorte", PST}, --- ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java 2013-09-06 11:28:53.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -74802,7 +82855,7 @@ "Ora estiva dell'Europa centrale", "MEST"}}, {"Mexico/BajaNorte", PST}, --- ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java 2013-09-06 11:28:53.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -75066,7 +83119,7 @@ "\u4e2d\u90e8\u30e8\u30fc\u30ed\u30c3\u30d1\u590f\u6642\u9593", "MEST"}}, {"Mexico/BajaNorte", PST}, --- ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java 2013-09-06 11:28:53.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -75330,7 +83383,7 @@ "\uc911\ubd80 \uc720\ub7fd \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "MEST"}}, {"Mexico/BajaNorte", PST}, --- ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java 2013-09-06 11:28:53.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_pt_BR.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -75595,7 +83648,7 @@ "Fuso hor\u00e1rio de ver\u00e3o da Europa M\u00e9dia", "MEST"}}, {"Mexico/BajaNorte", PST}, --- ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java 2013-09-06 11:28:53.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -75857,7 +83910,7 @@ "Mellaneuropeisk sommartid", "MEST"}}, {"Mexico/BajaNorte", PST}, --- ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java 2013-09-06 11:28:53.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -76121,7 +84174,7 @@ "\u4e2d\u6b27\u590f\u4ee4\u65f6", "MEST"}}, {"Mexico/BajaNorte", PST}, --- ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java 2013-09-06 11:28:53.000000000 -0700 -+++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java 2014-07-15 23:24:36.000000000 -0700 ++++ ./jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -76385,7 +84438,7 @@ "\u4e2d\u6b50\u590f\u4ee4\u6642\u9593", "MEST"}}, {"Mexico/BajaNorte", PST}, --- ./jdk/src/share/demo/jvmti/compiledMethodLoad/sample.makefile.txt 2013-09-06 11:28:55.000000000 -0700 -+++ ./jdk/src/share/demo/jvmti/compiledMethodLoad/sample.makefile.txt 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/demo/jvmti/compiledMethodLoad/sample.makefile.txt 2014-10-28 20:19:52.000000000 -0700 @@ -38,6 +38,7 @@ # gnumake JDK= OSNAME=solaris [OPT=true] [LIBARCH=sparcv9] # gnumake JDK= OSNAME=linux [OPT=true] @@ -76425,7 +84478,7 @@ CFLAGS += -I. CFLAGS += -I../agent_util --- ./jdk/src/share/demo/jvmti/hprof/hprof_class.c 2013-09-06 11:28:55.000000000 -0700 -+++ ./jdk/src/share/demo/jvmti/hprof/hprof_class.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/demo/jvmti/hprof/hprof_class.c 2014-07-15 21:49:32.000000000 -0700 @@ -527,7 +527,12 @@ jmethodID method; @@ -76455,7 +84508,7 @@ HPROF_ASSERT(sig!=NULL); clazz = class_get_class(env, index); --- ./jdk/src/share/demo/jvmti/hprof/hprof_event.c 2013-09-06 11:28:55.000000000 -0700 -+++ ./jdk/src/share/demo/jvmti/hprof/hprof_event.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/demo/jvmti/hprof/hprof_event.c 2014-07-15 21:49:32.000000000 -0700 @@ -195,7 +195,12 @@ HPROF_ASSERT(env!=NULL); @@ -76512,7 +84565,7 @@ } } --- ./jdk/src/share/demo/jvmti/hprof/hprof_init.c 2013-09-06 11:28:55.000000000 -0700 -+++ ./jdk/src/share/demo/jvmti/hprof/hprof_init.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/demo/jvmti/hprof/hprof_init.c 2014-07-15 21:49:32.000000000 -0700 @@ -1899,11 +1899,17 @@ */ getSystemProperty("sun.boot.library.path", &boot_path); @@ -76542,7 +84595,7 @@ NPT_INITIALIZE(npt_lib, &(gdata->npt), NPT_VERSION, NULL); if ( gdata->npt == NULL ) { --- ./jdk/src/share/demo/jvmti/hprof/hprof_md.h 2013-09-06 11:28:55.000000000 -0700 -+++ ./jdk/src/share/demo/jvmti/hprof/hprof_md.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/demo/jvmti/hprof/hprof_md.h 2014-07-15 21:49:32.000000000 -0700 @@ -69,7 +69,7 @@ unsigned md_ntohs(unsigned short s); unsigned md_ntohl(unsigned l); @@ -76553,7 +84606,7 @@ void md_unload_library(void *handle); void * md_find_library_entry(void *handle, const char *name); --- ./jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java 2013-09-06 11:28:57.000000000 -0700 -+++ ./jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. @@ -76570,8 +84623,37 @@ private static final long serialVersionUID = 4116273141148726319L; +--- ./jdk/src/share/javavm/export/jvm.h 2013-09-06 11:28:57.000000000 -0700 ++++ ./jdk/src/share/javavm/export/jvm.h 2014-10-28 20:19:49.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1997, 2014, 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 +@@ -384,6 +384,19 @@ + JVM_FindClassFromBootLoader(JNIEnv *env, const char *name); + + /* ++ * Find a class from a given class loader. Throws ClassNotFoundException. ++ * name: name of class ++ * init: whether initialization is done ++ * loader: class loader to look up the class. This may not be the same as the caller's ++ * class loader. ++ * caller: initiating class. The initiating class may be null when a security ++ * manager is not installed. ++ */ ++JNIEXPORT jclass JNICALL ++JVM_FindClassFromCaller(JNIEnv *env, const char *name, jboolean init, ++ jobject loader, jclass caller); ++ ++/* + * Find a class from a given class loader. Throw ClassNotFoundException + * or NoClassDefFoundError depending on the value of the last + * argument. --- ./jdk/src/share/lib/security/java.policy 2013-09-06 11:28:57.000000000 -0700 -+++ ./jdk/src/share/lib/security/java.policy 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/lib/security/java.policy 2014-07-15 21:49:32.000000000 -0700 @@ -2,48 +2,51 @@ // Standard extensions get all permissions by default @@ -76660,7 +84742,7 @@ }; --- ./jdk/src/share/lib/security/java.security-linux 2013-09-06 11:28:57.000000000 -0700 -+++ ./jdk/src/share/lib/security/java.security-linux 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/lib/security/java.security-linux 2014-07-15 21:49:32.000000000 -0700 @@ -128,7 +128,10 @@ com.sun.imageio.,\ com.sun.istack.internal.,\ @@ -76689,7 +84771,7 @@ # jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 2048 - --- ./jdk/src/share/lib/security/java.security-macosx 2013-09-06 11:28:57.000000000 -0700 -+++ ./jdk/src/share/lib/security/java.security-macosx 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/lib/security/java.security-macosx 2014-07-15 21:49:32.000000000 -0700 @@ -129,7 +129,10 @@ com.sun.imageio.,\ com.sun.istack.internal.,\ @@ -76718,7 +84800,7 @@ # jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 2048 - --- ./jdk/src/share/lib/security/java.security-solaris 2013-09-06 11:28:57.000000000 -0700 -+++ ./jdk/src/share/lib/security/java.security-solaris 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/lib/security/java.security-solaris 2014-07-15 21:49:32.000000000 -0700 @@ -130,7 +130,10 @@ com.sun.imageio.,\ com.sun.istack.internal.,\ @@ -76747,7 +84829,7 @@ # jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 2048 -i --- ./jdk/src/share/lib/security/java.security-windows 2013-09-06 11:28:57.000000000 -0700 -+++ ./jdk/src/share/lib/security/java.security-windows 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/lib/security/java.security-windows 2014-07-15 21:49:32.000000000 -0700 @@ -129,7 +129,10 @@ com.sun.imageio.,\ com.sun.istack.internal.,\ @@ -76776,7 +84858,7 @@ # jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 2048 - --- ./jdk/src/share/native/com/sun/java/util/jar/pack/defines.h 2013-09-06 11:28:57.000000000 -0700 -+++ ./jdk/src/share/native/com/sun/java/util/jar/pack/defines.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/com/sun/java/util/jar/pack/defines.h 2014-10-28 20:19:52.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. @@ -76793,7 +84875,7 @@ #define LOGFILE_STDOUT "-" #define LOGFILE_STDERR "" --- ./jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp 2013-09-06 11:28:57.000000000 -0700 -+++ ./jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp 2014-07-15 21:54:45.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. @@ -76997,7 +85079,7 @@ return env->NewStringUTF(value); } --- ./jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp 2013-09-06 11:28:57.000000000 -0700 -+++ ./jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. @@ -77047,7 +85129,7 @@ // (Do not use stdout, since it might be jarout->jarfp.) errstrm = stderr; --- ./jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp 2013-09-06 11:28:57.000000000 -0700 -+++ ./jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp 2014-10-28 20:19:52.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. @@ -77055,16 +85137,27 @@ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it -@@ -62,7 +62,7 @@ +@@ -33,6 +33,10 @@ + + #include + ++#ifdef _ALLBSD_SOURCE ++#include ++#endif ++ + #ifndef _MSC_VER + #include + #endif +@@ -62,7 +66,7 @@ #endif // End of ZLIB -#ifdef sparc -+#ifdef _BIG_ENDIAN ++#if (BYTE_ORDER == BIG_ENDIAN) #define SWAP_BYTES(a) \ ((((a) << 8) & 0xff00) | 0x00ff) & (((a) >> 8) | 0xff00) #else -@@ -340,6 +340,10 @@ +@@ -340,6 +344,10 @@ struct tm sbuf; (void)memset((void*)&sbuf,0, sizeof(sbuf)); struct tm* s = gmtime_r(&t, &sbuf); @@ -77075,7 +85168,7 @@ modtime_cache = modtime; dostime_cache = dostime(s->tm_year + 1900, s->tm_mon + 1, s->tm_mday, s->tm_hour, s->tm_min, s->tm_sec); -@@ -384,7 +388,7 @@ +@@ -384,7 +392,7 @@ } deflated.empty(); @@ -77085,7 +85178,7 @@ zs.next_in = (uchar*)head.ptr; --- ./jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2013-09-06 11:28:58.000000000 -0700 -+++ ./jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2014-10-28 20:19:52.000000000 -0700 @@ -64,7 +64,7 @@ @@ -77096,7 +85189,7 @@ #endif --- ./jdk/src/share/native/common/check_code.c 2013-09-06 11:28:58.000000000 -0700 -+++ ./jdk/src/share/native/common/check_code.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/common/check_code.c 2014-10-28 20:19:52.000000000 -0700 @@ -90,6 +90,12 @@ #include "classfile_constants.h" #include "opcodes.in_out" @@ -77111,7 +85204,14 @@ /* align byte code */ #ifndef ALIGN_UP --- ./jdk/src/share/native/java/lang/Class.c 2013-09-06 11:28:58.000000000 -0700 -+++ ./jdk/src/share/native/java/lang/Class.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/java/lang/Class.c 2014-10-28 20:19:50.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1994, 2014, 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 @@ -70,7 +70,7 @@ {"getProtectionDomain0", "()" PD, (void *)&JVM_GetProtectionDomain}, {"setProtectionDomain0", "(" PD ")V", (void *)&JVM_SetProtectionDomain}, @@ -77121,7 +85221,26 @@ {"getGenericSignature", "()" STR, (void *)&JVM_GetClassSignature}, {"getRawAnnotations", "()" BA, (void *)&JVM_GetClassAnnotations}, {"getConstantPool", "()" CPL, (void *)&JVM_GetClassConstantPool}, -@@ -187,3 +187,16 @@ +@@ -97,7 +97,7 @@ + + JNIEXPORT jclass JNICALL + Java_java_lang_Class_forName0(JNIEnv *env, jclass this, jstring classname, +- jboolean initialize, jobject loader) ++ jboolean initialize, jobject loader, jclass caller) + { + char *clname; + jclass cls = 0; +@@ -135,8 +135,7 @@ + goto done; + } + +- cls = JVM_FindClassFromClassLoader(env, clname, initialize, +- loader, JNI_FALSE); ++ cls = JVM_FindClassFromCaller(env, clname, initialize, loader, caller); + + done: + if (clname != buf) { +@@ -187,3 +186,16 @@ return result; } @@ -77139,7 +85258,7 @@ +} + --- ./jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h 2013-09-06 11:28:58.000000000 -0700 -+++ ./jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h 2014-10-28 20:19:52.000000000 -0700 @@ -24,6 +24,9 @@ * questions. */ @@ -77209,7 +85328,7 @@ - (*env)->CallVoidMethod(env, ob, mid); -} --- ./jdk/src/share/native/java/net/Inet6Address.c 2013-09-06 11:28:58.000000000 -0700 -+++ ./jdk/src/share/native/java/net/Inet6Address.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/java/net/Inet6Address.c 2014-07-15 21:49:32.000000000 -0700 @@ -33,6 +33,8 @@ */ @@ -77252,7 +85371,7 @@ ia6_ctrID = (*env)->GetMethodID(env, ia6_class, "", "()V"); CHECK_NULL(ia6_ctrID); --- ./jdk/src/share/native/java/net/net_util.c 2013-09-06 11:28:58.000000000 -0700 -+++ ./jdk/src/share/native/java/net/net_util.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/java/net/net_util.c 2014-07-15 21:49:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. @@ -77415,7 +85534,7 @@ return JNI_TRUE; } else { --- ./jdk/src/share/native/java/net/net_util.h 2013-09-06 11:28:58.000000000 -0700 -+++ ./jdk/src/share/native/java/net/net_util.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/java/net/net_util.h 2014-07-15 21:49:32.000000000 -0700 @@ -58,6 +58,22 @@ extern jfieldID iac_hostNameID; extern jfieldID ia_preferIPv6AddressID; @@ -77448,7 +85567,7 @@ extern jfieldID ia6_scopeidID; extern jfieldID ia6_cachedscopeidID; --- ./jdk/src/share/native/sun/awt/giflib/dgif_lib.c 2013-09-06 11:28:59.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/giflib/dgif_lib.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/giflib/dgif_lib.c 2014-07-15 21:49:32.000000000 -0700 @@ -435,9 +435,7 @@ Private->PixelCount = (long)GifFile->Image.Width * (long)GifFile->Image.Height; @@ -77461,7 +85580,7 @@ /****************************************************************************** --- ./jdk/src/share/native/sun/awt/image/awt_parseImage.c 2013-09-06 11:28:59.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/image/awt_parseImage.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/image/awt_parseImage.c 2014-07-15 21:49:32.000000000 -0700 @@ -808,363 +808,204 @@ return 1; } @@ -77953,7 +86072,7 @@ + return 1; } --- ./jdk/src/share/native/sun/awt/image/awt_parseImage.h 2013-09-06 11:28:59.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/image/awt_parseImage.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/image/awt_parseImage.h 2014-07-15 21:49:32.000000000 -0700 @@ -188,13 +188,8 @@ void awt_freeParsedImage(BufImageS_t *imageP, int freeImageP); @@ -77972,7 +86091,7 @@ #endif /* AWT_PARSE_IMAGE_H */ --- ./jdk/src/share/native/sun/awt/image/gif/gifdecoder.c 2013-09-06 11:28:59.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/image/gif/gifdecoder.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/image/gif/gifdecoder.c 2014-07-15 21:49:32.000000000 -0700 @@ -249,6 +249,7 @@ /* fill the block */ len = (*env)->CallIntMethod(env, this, readID, @@ -77982,7 +86101,7 @@ return 0; } --- ./jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2013-09-06 11:28:59.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c 2014-07-15 21:49:32.000000000 -0700 @@ -930,14 +930,18 @@ * Now fill a complete buffer, or as much of one as the stream * will give us if we are near the end. @@ -78079,7 +86198,7 @@ if (scale == NULL) { scale = (UINT8**) calloc(numBands, sizeof(UINT8*)); --- ./jdk/src/share/native/sun/awt/image/jpeg/jdmarker.c 2013-09-06 11:28:59.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/image/jpeg/jdmarker.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/image/jpeg/jdmarker.c 2014-07-15 21:49:32.000000000 -0700 @@ -349,6 +349,12 @@ TRACEMS3(cinfo, 1, JTRC_SOS_COMPONENT, cc, @@ -78094,7 +86213,7 @@ /* Collect the additional scan parameters Ss, Se, Ah/Al. */ --- ./jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/image/jpeg/jpegdecoder.c 2014-07-15 21:49:32.000000000 -0700 @@ -289,6 +289,7 @@ buflen = (*env)->GetArrayLength(env, src->hInputBuffer); ret = (*env)->CallIntMethod(env, src->hInputStream, InputStream_readID, @@ -78120,7 +86239,7 @@ cinfo->err->error_exit((struct jpeg_common_struct *) cinfo); } --- ./jdk/src/share/native/sun/awt/libpng/pngrtran.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/libpng/pngrtran.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/libpng/pngrtran.c 2014-07-15 21:49:32.000000000 -0700 @@ -1862,6 +1862,9 @@ info_ptr->bit_depth = 8; @@ -78132,7 +86251,7 @@ else { --- ./jdk/src/share/native/sun/awt/libpng/pngset.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/libpng/pngset.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/libpng/pngset.c 2014-07-15 21:49:32.000000000 -0700 @@ -512,6 +512,17 @@ } } @@ -78152,7 +86271,7 @@ * we do it for backward compatibility with the way the png_handle_tRNS * function used to do the allocation. --- ./jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c 2014-07-15 21:54:45.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. @@ -78690,7 +86809,7 @@ } else { --- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv2x2_f.c 2014-10-28 20:19:52.000000000 -0700 @@ -86,7 +86,7 @@ #endif /* MLIB_USE_FTOI_CLAMPING */ @@ -78731,7 +86850,7 @@ #endif /* _NO_LONGLONG */ --- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c 2014-10-28 20:19:52.000000000 -0700 @@ -126,7 +126,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -78772,7 +86891,7 @@ /***************************************************************/ --- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c 2014-10-28 20:19:52.000000000 -0700 @@ -94,7 +94,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -78813,7 +86932,7 @@ /***************************************************************/ --- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c 2014-10-28 20:19:52.000000000 -0700 @@ -126,7 +126,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -78854,7 +86973,7 @@ /***************************************************************/ --- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c 2014-10-28 20:19:52.000000000 -0700 @@ -95,7 +95,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -78895,7 +87014,7 @@ /***************************************************************/ --- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c 2014-10-28 20:19:52.000000000 -0700 @@ -126,7 +126,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -78936,7 +87055,7 @@ /***************************************************************/ --- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c 2014-10-28 20:19:52.000000000 -0700 @@ -94,7 +94,7 @@ #define D2I(x) CLAMP_S32((x) SAT_OFF) @@ -78977,7 +87096,7 @@ /***************************************************************/ --- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageCopy_Bit.c 2014-10-28 20:19:52.000000000 -0700 @@ -95,7 +95,7 @@ dst = dp[0]; if (ld_offset + size < 32) { @@ -79198,7 +87317,7 @@ #else /* _LONGLONG */ --- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_64.c 2014-10-28 20:19:52.000000000 -0700 @@ -168,7 +168,7 @@ } @@ -79480,7 +87599,7 @@ dp[13] = t1; dp[14] = t2; --- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageLookUp_Bit.c 2014-10-28 20:19:52.000000000 -0700 @@ -88,7 +88,7 @@ } d64_2_f32; @@ -79633,7 +87752,7 @@ ((mlib_u32*)lh)[0] = l; ((mlib_u32*)lh)[1] = l; ((mlib_u32*)lh)[2] = l; ((mlib_u32*)lh)[3] = h; --- ./jdk/src/share/native/sun/awt/medialib/mlib_ImageUtils.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageUtils.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_ImageUtils.c 2014-10-28 20:19:52.000000000 -0700 @@ -30,7 +30,7 @@ typedef union { mlib_d64 db; @@ -79644,7 +87763,7 @@ #else mlib_s32 int0, int1; --- ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c 2013-09-06 11:29:00.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageCopy.c 2014-10-28 20:19:52.000000000 -0700 @@ -275,11 +275,11 @@ for (i = 0; j <= (b_size - 4); j += 4, i++) { src0 = src1; @@ -79744,7 +87863,7 @@ dp += SIZE; sp += SIZE; --- ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_c_ImageLookUp_f.c 2014-10-28 20:19:52.000000000 -0700 @@ -120,7 +120,7 @@ } \ } @@ -80978,7 +89097,7 @@ dp[13] = t1; dp[14] = t2; --- ./jdk/src/share/native/sun/awt/medialib/mlib_image.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_image.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_image.h 2014-10-28 20:19:52.000000000 -0700 @@ -27,9 +27,21 @@ #ifndef MLIB_IMAGE_H #define MLIB_IMAGE_H @@ -81003,7 +89122,7 @@ #include #include --- ./jdk/src/share/native/sun/awt/medialib/mlib_sys.c 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_sys.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_sys.c 2014-10-28 20:19:52.000000000 -0700 @@ -26,7 +26,7 @@ #include @@ -81026,7 +89145,7 @@ #else return (void *) memalign(8, size); --- ./jdk/src/share/native/sun/awt/medialib/mlib_types.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/medialib/mlib_types.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/medialib/mlib_types.h 2014-10-28 20:19:52.000000000 -0700 @@ -59,7 +59,7 @@ #if defined(__SUNPRO_C) || defined(__SUNPRO_CC) || defined(__GNUC__) @@ -81037,7 +89156,7 @@ #include /* for uintptr_t */ #elif defined(__linux__) --- ./jdk/src/share/native/sun/awt/splashscreen/splashscreen_impl.c 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/awt/splashscreen/splashscreen_impl.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/awt/splashscreen/splashscreen_impl.c 2014-07-15 21:49:32.000000000 -0700 @@ -111,8 +111,9 @@ int SplashIsStillLooping(Splash * splash) @@ -81109,7 +89228,7 @@ while (i < pSrcRect->numSamples && getRGBA(pSrc, pSrcRect->format) >= ALPHA_THRESHOLD) { --- ./jdk/src/share/native/sun/font/freetypeScaler.c 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/freetypeScaler.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/freetypeScaler.c 2014-07-15 21:54:46.000000000 -0700 @@ -177,18 +177,10 @@ if (numBytes > FILEDATACACHESIZE) { bBuffer = (*env)->NewDirectByteBuffer(env, destBuffer, numBytes); @@ -81158,7 +89277,7 @@ return numBytes; } --- ./jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/AlternateSubstSubtables.cpp 2014-07-15 21:49:32.000000000 -0700 @@ -55,7 +55,7 @@ (const AlternateSetTable *) ((char *) this + alternateSetTableOffset)); TTGlyphID alternate = SWAPW(alternateSetTable->alternateArray[0]); @@ -81169,7 +89288,7 @@ } --- ./jdk/src/share/native/sun/font/layout/AnchorTables.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/AnchorTables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/AnchorTables.cpp 2014-07-15 21:49:32.000000000 -0700 @@ -37,55 +37,54 @@ U_NAMESPACE_BEGIN @@ -81273,7 +89392,7 @@ pixels.fY += adjy; } --- ./jdk/src/share/native/sun/font/layout/AnchorTables.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/AnchorTables.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/AnchorTables.h 2014-07-15 21:49:32.000000000 -0700 @@ -49,20 +49,23 @@ le_int16 xCoordinate; le_int16 yCoordinate; @@ -81314,7 +89433,7 @@ U_NAMESPACE_END --- ./jdk/src/share/native/sun/font/layout/ArabicLayoutEngine.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ArabicLayoutEngine.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ArabicLayoutEngine.cpp 2014-07-15 21:49:32.000000000 -0700 @@ -51,7 +51,7 @@ U_NAMESPACE_BEGIN @@ -81347,7 +89466,7 @@ } --- ./jdk/src/share/native/sun/font/layout/ArabicShaping.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ArabicShaping.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ArabicShaping.cpp 2014-07-15 21:49:32.000000000 -0700 @@ -59,7 +59,8 @@ ArabicShaping::ShapeType ArabicShaping::getShapeType(LEUnicode c) { @@ -81359,7 +89478,7 @@ le_int32 joiningType = joiningTypes->getGlyphClass(joiningTypes, c, success); --- ./jdk/src/share/native/sun/font/layout/CanonShaping.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/CanonShaping.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/CanonShaping.cpp 2014-07-15 21:49:33.000000000 -0700 @@ -60,7 +60,7 @@ LEUnicode *outChars, LEGlyphStorage &glyphStorage) { @@ -81370,7 +89489,7 @@ le_int32 *combiningClasses = LE_NEW_ARRAY(le_int32, charCount); le_int32 *indices = LE_NEW_ARRAY(le_int32, charCount); --- ./jdk/src/share/native/sun/font/layout/CharSubstitutionFilter.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/CharSubstitutionFilter.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/CharSubstitutionFilter.h 2014-07-15 21:49:33.000000000 -0700 @@ -43,6 +43,8 @@ * This filter is used by character-based GSUB processors. It * accepts only those characters which the given font can display. @@ -81390,7 +89509,7 @@ U_NAMESPACE_END --- ./jdk/src/share/native/sun/font/layout/ClassDefinitionTables.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ClassDefinitionTables.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ClassDefinitionTables.h 2014-07-15 21:49:33.000000000 -0700 @@ -49,6 +49,7 @@ le_int32 getGlyphClass(const LETableReference &base, LEGlyphID glyphID, LEErrorCode &success) const; le_bool hasGlyphClass(const LETableReference &base, le_int32 glyphClass, LEErrorCode &success) const; @@ -81408,7 +89527,7 @@ struct ClassDefFormat1Table : ClassDefinitionTable --- ./jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc2.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc2.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ContextualGlyphSubstProc2.cpp 2014-07-15 21:49:33.000000000 -0700 @@ -154,6 +154,7 @@ TTGlyphID glyphCode = (TTGlyphID) LE_GET_GLYPH(gid); if ((glyphCode >= firstGlyph) && (glyphCode < lastGlyph)) { @@ -81418,7 +89537,7 @@ } } --- ./jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.cpp 2014-10-28 20:19:45.000000000 -0700 @@ -48,7 +48,7 @@ */ void ContextualSubstitutionBase::applySubstitutionLookups( @@ -81572,9 +89691,15 @@ GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode& success) const -@@ -227,22 +244,23 @@ +@@ -226,23 +243,34 @@ + le_uint16 srSetCount = SWAPW(subRuleSetCount); if (coverageIndex < srSetCount) { ++ LEReferenceToArrayOf subRuleSetTableOffsetArrayRef(base, success, ++ &subRuleSetTableOffsetArray[coverageIndex], 1); ++ if (LE_FAILURE(success)) { ++ return 0; ++ } Offset subRuleSetTableOffset = SWAPW(subRuleSetTableOffsetArray[coverageIndex]); - const SubRuleSetTable *subRuleSetTable = - (const SubRuleSetTable *) ((char *) this + subRuleSetTableOffset); @@ -81583,6 +89708,11 @@ le_uint16 subRuleCount = SWAPW(subRuleSetTable->subRuleCount); le_int32 position = glyphIterator->getCurrStreamPosition(); ++ LEReferenceToArrayOf subRuleTableOffsetArrayRef(base, success, ++ subRuleSetTable->subRuleTableOffsetArray, subRuleCount); ++ if (LE_FAILURE(success)) { ++ return 0; ++ } for (le_uint16 subRule = 0; subRule < subRuleCount; subRule += 1) { Offset subRuleTableOffset = SWAPW(subRuleSetTable->subRuleTableOffsetArray[subRule]); @@ -81604,7 +89734,7 @@ applySubstitutionLookups(lookupProcessor, substLookupRecordArray, substCount, glyphIterator, fontInstance, position, success); -@@ -259,7 +277,8 @@ +@@ -259,7 +287,8 @@ return 0; } @@ -81614,7 +89744,7 @@ GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode& success) const -@@ -275,29 +294,34 @@ +@@ -275,29 +304,43 @@ } if (coverageIndex >= 0) { @@ -81627,8 +89757,14 @@ + le_int32 setClass = classDefinitionTable->getGlyphClass(classDefinitionTable, + glyphIterator->getCurrGlyphID(), + success); ++ ++ if (setClass < scSetCount) { ++ LEReferenceToArrayOf ++ subClassSetTableOffsetArrayRef(base, success, subClassSetTableOffsetArray, setClass); ++ if (LE_FAILURE(success)) { return 0; } ++ if (subClassSetTableOffsetArray[setClass] != 0) { - if (setClass < scSetCount && subClassSetTableOffsetArray[setClass] != 0) { +- if (setClass < scSetCount && subClassSetTableOffsetArray[setClass] != 0) { Offset subClassSetTableOffset = SWAPW(subClassSetTableOffsetArray[setClass]); - const SubClassSetTable *subClassSetTable = - (const SubClassSetTable *) ((char *) this + subClassSetTableOffset); @@ -81636,7 +89772,12 @@ + subClassSetTable(base, success, (const SubClassSetTable *) ((char *) this + subClassSetTableOffset)); le_uint16 subClassRuleCount = SWAPW(subClassSetTable->subClassRuleCount); le_int32 position = glyphIterator->getCurrStreamPosition(); - +- ++ LEReferenceToArrayOf ++ subClassRuleTableOffsetArrayRef(base, success, subClassSetTable->subClassRuleTableOffsetArray, subClassRuleCount); ++ if (LE_FAILURE(success)) { ++ return 0; ++ } for (le_uint16 scRule = 0; scRule < subClassRuleCount; scRule += 1) { Offset subClassRuleTableOffset = SWAPW(subClassSetTable->subClassRuleTableOffsetArray[scRule]); @@ -81659,7 +89800,15 @@ applySubstitutionLookups(lookupProcessor, substLookupRecordArray, substCount, glyphIterator, fontInstance, position, success); -@@ -314,7 +338,8 @@ +@@ -307,6 +350,7 @@ + glyphIterator->setCurrStreamPosition(position); + } + } ++ } + + // XXX If we get here, the table is mal-formed... + } +@@ -314,7 +358,8 @@ return 0; } @@ -81669,7 +89818,7 @@ GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode& success)const -@@ -333,9 +358,13 @@ +@@ -333,9 +378,13 @@ // that matched when we're done. glyphIterator->prev(); @@ -81686,7 +89835,7 @@ ContextualSubstitutionBase::applySubstitutionLookups(lookupProcessor, substLookupRecordArray, subCount, glyphIterator, fontInstance, position, success); -@@ -347,7 +376,8 @@ +@@ -347,7 +396,8 @@ return 0; } @@ -81696,7 +89845,7 @@ GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode& success) const -@@ -363,20 +393,23 @@ +@@ -363,20 +413,23 @@ case 1: { @@ -81726,7 +89875,7 @@ } default: -@@ -390,7 +423,7 @@ +@@ -390,7 +443,7 @@ // emptyFeatureList matches an le_uint32 or an le_uint16... static const FeatureMask emptyFeatureList = 0x00000000UL; @@ -81735,9 +89884,15 @@ GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode& success) const -@@ -410,8 +443,8 @@ +@@ -409,23 +462,38 @@ + le_uint16 srSetCount = SWAPW(chainSubRuleSetCount); if (coverageIndex < srSetCount) { ++ LEReferenceToArrayOf ++ chainSubRuleSetTableOffsetArrayRef(base, success, chainSubRuleSetTableOffsetArray, coverageIndex); ++ if (LE_FAILURE(success)) { ++ return 0; ++ } Offset chainSubRuleSetTableOffset = SWAPW(chainSubRuleSetTableOffsetArray[coverageIndex]); - const ChainSubRuleSetTable *chainSubRuleSetTable = - (const ChainSubRuleSetTable *) ((char *) this + chainSubRuleSetTableOffset); @@ -81746,7 +89901,12 @@ le_uint16 chainSubRuleCount = SWAPW(chainSubRuleSetTable->chainSubRuleCount); le_int32 position = glyphIterator->getCurrStreamPosition(); GlyphIterator tempIterator(*glyphIterator, emptyFeatureList); -@@ -419,13 +452,19 @@ +- ++ LEReferenceToArrayOf ++ chainSubRuleTableOffsetArrayRef(base, success, chainSubRuleSetTable->chainSubRuleTableOffsetArray, chainSubRuleCount); ++ if (LE_FAILURE(success)) { ++ return 0; ++ } for (le_uint16 subRule = 0; subRule < chainSubRuleCount; subRule += 1) { Offset chainSubRuleTableOffset = SWAPW(chainSubRuleSetTable->chainSubRuleTableOffsetArray[subRule]); @@ -81770,7 +89930,7 @@ le_uint16 substCount = (le_uint16) SWAPW(lookaheadGlyphArray[lookaheadGlyphCount]); tempIterator.setCurrStreamPosition(position); -@@ -435,7 +474,8 @@ +@@ -435,7 +503,8 @@ } tempIterator.prev(); @@ -81780,7 +89940,7 @@ continue; } -@@ -446,8 +486,8 @@ +@@ -446,8 +515,8 @@ } if (matchGlyphIDs(inputGlyphArray, inputGlyphCount, glyphIterator)) { @@ -81791,7 +89951,7 @@ applySubstitutionLookups(lookupProcessor, substLookupRecordArray, substCount, glyphIterator, fontInstance, position, success); -@@ -464,7 +504,7 @@ +@@ -464,7 +533,7 @@ return 0; } @@ -81800,7 +89960,7 @@ GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode& success) const -@@ -480,19 +520,21 @@ +@@ -480,33 +549,46 @@ } if (coverageIndex >= 0) { @@ -81821,6 +89981,11 @@ + le_int32 setClass = inputClassDefinitionTable->getGlyphClass(inputClassDefinitionTable, + glyphIterator->getCurrGlyphID(), + success); ++ LEReferenceToArrayOf ++ chainSubClassSetTableOffsetArrayRef(base, success, chainSubClassSetTableOffsetArray, setClass); ++ if (LE_FAILURE(success)) { ++ return 0; ++ } if (setClass < scSetCount && chainSubClassSetTableOffsetArray[setClass] != 0) { Offset chainSubClassSetTableOffset = SWAPW(chainSubClassSetTableOffsetArray[setClass]); @@ -81831,7 +89996,12 @@ le_uint16 chainSubClassRuleCount = SWAPW(chainSubClassSetTable->chainSubClassRuleCount); le_int32 position = glyphIterator->getCurrStreamPosition(); GlyphIterator tempIterator(*glyphIterator, emptyFeatureList); -@@ -500,13 +542,15 @@ +- ++ LEReferenceToArrayOf ++ chainSubClassRuleTableOffsetArrayRef(base, success, chainSubClassSetTable->chainSubClassRuleTableOffsetArray, chainSubClassRuleCount); ++ if (LE_FAILURE(success)) { ++ return 0; ++ } for (le_uint16 scRule = 0; scRule < chainSubClassRuleCount; scRule += 1) { Offset chainSubClassRuleTableOffset = SWAPW(chainSubClassSetTable->chainSubClassRuleTableOffsetArray[scRule]); @@ -81852,7 +90022,7 @@ le_uint16 substCount = SWAPW(lookaheadClassArray[lookaheadGlyphCount]); -@@ -517,21 +561,23 @@ +@@ -517,21 +599,23 @@ } tempIterator.prev(); @@ -81883,7 +90053,7 @@ applySubstitutionLookups(lookupProcessor, substLookupRecordArray, substCount, glyphIterator, fontInstance, position, success); return inputGlyphCount + 1; -@@ -547,7 +593,7 @@ +@@ -547,7 +631,7 @@ return 0; } @@ -81892,24 +90062,27 @@ GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode & success) const -@@ -558,9 +604,14 @@ +@@ -557,10 +641,17 @@ + } le_uint16 backtrkGlyphCount = SWAPW(backtrackGlyphCount); ++ LEReferenceToArrayOf backtrackGlyphArrayRef(base, success, backtrackCoverageTableOffsetArray, backtrkGlyphCount); ++ if (LE_FAILURE(success)) { ++ return 0; ++ } le_uint16 inputGlyphCount = (le_uint16) SWAPW(backtrackCoverageTableOffsetArray[backtrkGlyphCount]); - const Offset *inputCoverageTableOffsetArray = &backtrackCoverageTableOffsetArray[backtrkGlyphCount + 1]; + LEReferenceToArrayOf inputCoverageTableOffsetArray(base, success, &backtrackCoverageTableOffsetArray[backtrkGlyphCount + 1], inputGlyphCount+2); // offset + if (LE_FAILURE(success)) { return 0; } const le_uint16 lookaheadGlyphCount = (le_uint16) SWAPW(inputCoverageTableOffsetArray[inputGlyphCount]); - const Offset *lookaheadCoverageTableOffsetArray = &inputCoverageTableOffsetArray[inputGlyphCount + 1]; -+ -+ if( LE_FAILURE(success) ) { return 0; } + LEReferenceToArrayOf lookaheadCoverageTableOffsetArray(base, success, inputCoverageTableOffsetArray.getAlias(inputGlyphCount + 1, success), lookaheadGlyphCount+2); + + if( LE_FAILURE(success) ) { return 0; } le_uint16 substCount = (le_uint16) SWAPW(lookaheadCoverageTableOffsetArray[lookaheadGlyphCount]); le_int32 position = glyphIterator->getCurrStreamPosition(); GlyphIterator tempIterator(*glyphIterator, emptyFeatureList); -@@ -571,14 +622,14 @@ +@@ -571,14 +662,14 @@ tempIterator.prev(); if (! ContextualSubstitutionBase::matchGlyphCoverages(backtrackCoverageTableOffsetArray, @@ -81926,7 +90099,7 @@ return 0; } -@@ -589,9 +640,10 @@ +@@ -589,9 +680,10 @@ glyphIterator->prev(); if (ContextualSubstitutionBase::matchGlyphCoverages(inputCoverageTableOffsetArray, @@ -81941,7 +90114,7 @@ ContextualSubstitutionBase::applySubstitutionLookups(lookupProcessor, substLookupRecordArray, substCount, glyphIterator, fontInstance, position, success); --- ./jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ContextualSubstSubtables.h 2014-07-15 21:49:33.000000000 -0700 @@ -56,20 +56,32 @@ struct ContextualSubstitutionBase : GlyphSubstitutionSubtable { @@ -82058,7 +90231,7 @@ LE_VAR_ARRAY(ChainingContextualSubstitutionFormat3Subtable, backtrackCoverageTableOffsetArray) --- ./jdk/src/share/native/sun/font/layout/CoverageTables.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/CoverageTables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/CoverageTables.cpp 2014-07-15 21:49:33.000000000 -0700 @@ -37,8 +37,10 @@ U_NAMESPACE_BEGIN @@ -82138,7 +90311,7 @@ } --- ./jdk/src/share/native/sun/font/layout/CoverageTables.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/CoverageTables.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/CoverageTables.h 2014-07-15 21:49:33.000000000 -0700 @@ -46,7 +46,7 @@ { le_uint16 coverageFormat; @@ -82167,7 +90340,7 @@ LE_VAR_ARRAY(CoverageFormat2Table, rangeRecordArray) --- ./jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp 2014-07-15 21:49:33.000000000 -0700 @@ -51,23 +51,27 @@ } @@ -82202,7 +90375,7 @@ //glyphIterator->clearCursiveExitPoint(); } --- ./jdk/src/share/native/sun/font/layout/DeviceTables.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/DeviceTables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/DeviceTables.cpp 2014-07-15 21:49:33.000000000 -0700 @@ -43,7 +43,7 @@ #define FORMAT_COUNT LE_ARRAY_SIZE(fieldBits) @@ -82227,7 +90400,7 @@ le_uint16 fieldIndex = sizeIndex % count; le_uint16 shift = 16 - (bits * (fieldIndex + 1)); --- ./jdk/src/share/native/sun/font/layout/DeviceTables.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/DeviceTables.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/DeviceTables.h 2014-07-15 21:49:33.000000000 -0700 @@ -50,7 +50,7 @@ le_uint16 deltaFormat; le_uint16 deltaValues[ANY_NUMBER]; @@ -82238,7 +90411,7 @@ private: static const le_uint16 fieldMasks[]; --- ./jdk/src/share/native/sun/font/layout/ExtensionSubtables.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ExtensionSubtables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ExtensionSubtables.cpp 2014-07-15 21:49:33.000000000 -0700 @@ -48,7 +48,6 @@ const LookupProcessor *lookupProcessor, le_uint16 lookupType, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode& success) const @@ -82248,7 +90421,7 @@ return 0; } --- ./jdk/src/share/native/sun/font/layout/ExtensionSubtables.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ExtensionSubtables.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ExtensionSubtables.h 2014-07-15 21:49:33.000000000 -0700 @@ -52,8 +52,7 @@ le_uint16 extensionLookupType; le_uint32 extensionOffset; @@ -82260,7 +90433,7 @@ }; --- ./jdk/src/share/native/sun/font/layout/GDEFMarkFilter.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/GDEFMarkFilter.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/GDEFMarkFilter.cpp 2014-07-15 21:49:33.000000000 -0700 @@ -49,9 +49,9 @@ // nothing to do? } @@ -82274,7 +90447,7 @@ return glyphClass == gcdMarkGlyph; } --- ./jdk/src/share/native/sun/font/layout/GDEFMarkFilter.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/GDEFMarkFilter.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/GDEFMarkFilter.h 2014-07-15 21:49:33.000000000 -0700 @@ -55,7 +55,7 @@ GDEFMarkFilter(const LEReferenceTo &gdefTable, LEErrorCode &success); virtual ~GDEFMarkFilter(); @@ -82285,7 +90458,7 @@ U_NAMESPACE_END --- ./jdk/src/share/native/sun/font/layout/GlyphIterator.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/GlyphIterator.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/GlyphIterator.cpp 2014-07-15 21:49:33.000000000 -0700 @@ -41,14 +41,13 @@ U_NAMESPACE_BEGIN @@ -82434,7 +90607,7 @@ le_bool GlyphIterator::hasFeatureTag(le_bool matchGroup) const --- ./jdk/src/share/native/sun/font/layout/GlyphIterator.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/GlyphIterator.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/GlyphIterator.h 2014-07-15 21:49:33.000000000 -0700 @@ -49,7 +49,7 @@ class GlyphIterator : public UMemory { public: @@ -82469,7 +90642,7 @@ U_NAMESPACE_END --- ./jdk/src/share/native/sun/font/layout/GlyphPosnLookupProc.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/GlyphPosnLookupProc.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/GlyphPosnLookupProc.cpp 2014-07-15 21:49:33.000000000 -0700 @@ -95,6 +95,8 @@ le_uint32 delta = 0; @@ -82519,7 +90692,7 @@ } --- ./jdk/src/share/native/sun/font/layout/GlyphSubstLookupProc.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/GlyphSubstLookupProc.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/GlyphSubstLookupProc.cpp 2014-07-15 21:49:33.000000000 -0700 @@ -123,7 +123,7 @@ { const LEReferenceTo subtable(lookupSubtable, success); @@ -82539,7 +90712,7 @@ } --- ./jdk/src/share/native/sun/font/layout/IndicLayoutEngine.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/IndicLayoutEngine.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/IndicLayoutEngine.cpp 2014-07-15 21:49:33.000000000 -0700 @@ -44,7 +44,7 @@ #include "LEGlyphStorage.h" @@ -82593,7 +90766,7 @@ } --- ./jdk/src/share/native/sun/font/layout/KernTable.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/KernTable.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/KernTable.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -39,7 +39,7 @@ #include @@ -82662,7 +90835,7 @@ storage[i-1], storage[i], i, value & 0xffff, font->xUnitsToPoints(value)); fflush(stdout); --- ./jdk/src/share/native/sun/font/layout/LEFontInstance.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LEFontInstance.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LEFontInstance.h 2014-07-15 21:49:28.000000000 -0700 @@ -181,6 +181,10 @@ * * Subclasses which represent composite fonts should always return NULL. @@ -82690,7 +90863,7 @@ - - --- ./jdk/src/share/native/sun/font/layout/LEGlyphFilter.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LEGlyphFilter.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LEGlyphFilter.h 2014-07-15 21:49:28.000000000 -0700 @@ -62,7 +62,7 @@ * * @internal @@ -82701,7 +90874,7 @@ #endif /* U_HIDE_INTERNAL_API */ --- ./jdk/src/share/native/sun/font/layout/LEGlyphStorage.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LEGlyphStorage.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LEGlyphStorage.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -458,7 +458,7 @@ success = LE_INDEX_OUT_OF_BOUNDS_ERROR; return; @@ -82717,14 +90890,14 @@ U_NAMESPACE_END - --- ./jdk/src/share/native/sun/font/layout/LEGlyphStorage.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LEGlyphStorage.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LEGlyphStorage.h 2014-07-15 21:49:28.000000000 -0700 @@ -568,4 +568,3 @@ U_NAMESPACE_END #endif - --- ./jdk/src/share/native/sun/font/layout/LEScripts.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LEScripts.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LEScripts.h 2014-10-28 20:19:45.000000000 -0700 @@ -30,7 +30,7 @@ * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS * YOU REALLY KNOW WHAT YOU'RE DOING. @@ -82734,18 +90907,12 @@ */ #ifndef __LESCRIPTS_H -@@ -262,7 +262,16 @@ +@@ -262,7 +262,10 @@ khojScriptCode = 157, tirhScriptCode = 158, - scriptCodeCount = 159 +/** -+ * @stable ICU 52 -+ */ -+ aghbScriptCode = 159, -+ mahjScriptCode = 160, -+ -+/** + * @stable ICU 2.2 + */ + scriptCodeCount @@ -82753,7 +90920,7 @@ U_NAMESPACE_END --- ./jdk/src/share/native/sun/font/layout/LEStandalone.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LEStandalone.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LEStandalone.h 2014-07-15 21:49:28.000000000 -0700 @@ -132,6 +132,9 @@ #define uprv_memcpy memcpy #define uprv_realloc realloc @@ -82765,7 +90932,7 @@ #ifdef _LITTLE_ENDIAN #define U_IS_BIG_ENDIAN 0 --- ./jdk/src/share/native/sun/font/layout/LETableReference.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LETableReference.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LETableReference.h 2014-07-15 21:49:28.000000000 -0700 @@ -38,34 +38,47 @@ #include "LETypes.h" #include "LEFontInstance.h" @@ -83207,7 +91374,7 @@ U_NAMESPACE_END --- ./jdk/src/share/native/sun/font/layout/LETypes.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LETypes.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LETypes.h 2014-07-15 21:49:28.000000000 -0700 @@ -337,6 +337,20 @@ typedef struct LEPoint LEPoint; #endif @@ -83268,7 +91435,7 @@ -#endif /* __LETYPES_H */ +#endif --- ./jdk/src/share/native/sun/font/layout/LayoutEngine.cpp 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LayoutEngine.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LayoutEngine.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -156,7 +156,7 @@ CanonMarkFilter(const LEReferenceTo &gdefTable, LEErrorCode &success); virtual ~CanonMarkFilter(); @@ -83382,7 +91549,7 @@ break; --- ./jdk/src/share/native/sun/font/layout/LayoutEngine.h 2013-09-06 11:29:01.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LayoutEngine.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LayoutEngine.h 2014-07-15 21:49:28.000000000 -0700 @@ -156,8 +156,8 @@ * @param fontInstance - the font for the text * @param scriptCode - the script for the text @@ -83395,7 +91562,7 @@ * * @see LEFontInstance --- ./jdk/src/share/native/sun/font/layout/LigatureSubstProc2.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LigatureSubstProc2.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LigatureSubstProc2.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -95,7 +95,7 @@ if (actionOffset != 0) { @@ -83424,7 +91591,7 @@ while (mm >= 0) { if (++m >= nComponents) { --- ./jdk/src/share/native/sun/font/layout/LigatureSubstSubtables.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LigatureSubstSubtables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LigatureSubstSubtables.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -49,14 +49,20 @@ return 0; } @@ -83460,7 +91627,7 @@ TTGlyphID deletedGlyph = tempIterator.ignoresMarks()? 0xFFFE : 0xFFFF; --- ./jdk/src/share/native/sun/font/layout/LookupProcessor.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/LookupProcessor.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/LookupProcessor.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -60,8 +60,10 @@ LEReferenceTo lookupSubtable = lookupTable->getLookupSubtable(lookupTable, subtable, success); @@ -83549,7 +91716,7 @@ // don't add the required feature to the list more than once... --- ./jdk/src/share/native/sun/font/layout/Lookups.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/Lookups.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/Lookups.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -65,7 +65,7 @@ if(LE_FAILURE(success)) return 0; @@ -83560,7 +91727,7 @@ U_NAMESPACE_END --- ./jdk/src/share/native/sun/font/layout/MarkArrays.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/MarkArrays.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/MarkArrays.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -38,20 +38,28 @@ U_NAMESPACE_BEGIN @@ -83597,7 +91764,7 @@ } --- ./jdk/src/share/native/sun/font/layout/MarkArrays.h 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/MarkArrays.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/MarkArrays.h 2014-07-15 21:49:28.000000000 -0700 @@ -54,8 +54,9 @@ le_uint16 markCount; MarkRecord markRecordArray[ANY_NUMBER]; @@ -83611,7 +91778,7 @@ LE_VAR_ARRAY(MarkArray, markRecordArray) --- ./jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/MarkToBasePosnSubtables.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -66,11 +66,12 @@ } @@ -83686,7 +91853,7 @@ glyphIterator->setCurrGlyphPositionAdjustment(anchorDiffX - baseAdvance.fX, anchorDiffY - baseAdvance.fY, -markAdvance.fX, -markAdvance.fY); --- ./jdk/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/MarkToLigaturePosnSubtables.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -65,8 +65,11 @@ } @@ -83738,7 +91905,7 @@ fontInstance->getGlyphAdvance(markGlyph, pixels); fontInstance->pixelsToUnits(pixels, markAdvance); --- ./jdk/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/MarkToMarkPosnSubtables.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -66,8 +66,11 @@ } @@ -83796,7 +91963,7 @@ if (glyphIterator->isRightToLeft()) { --- ./jdk/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/MultipleSubstSubtables.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -54,9 +54,10 @@ // FIXME: is this always the right thing to do? // FIXME: should this only be done for a non-zero @@ -83837,7 +92004,7 @@ } } --- ./jdk/src/share/native/sun/font/layout/OpenTypeLayoutEngine.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/OpenTypeLayoutEngine.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/OpenTypeLayoutEngine.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -470,6 +470,7 @@ void OpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, LEGlyphStorage &glyphStorage, LEErrorCode &success) @@ -83873,7 +92040,7 @@ xAdjust += fFontInstance->xUnitsToPoints(xAdvance); --- ./jdk/src/share/native/sun/font/layout/OpenTypeUtilities.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/OpenTypeUtilities.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/OpenTypeUtilities.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -80,6 +80,7 @@ Offset OpenTypeUtilities::getTagOffset(LETag tag, const LEReferenceToArrayOf &records, LEErrorCode &success) { @@ -83916,7 +92083,7 @@ } --- ./jdk/src/share/native/sun/font/layout/OpenTypeUtilities.h 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/OpenTypeUtilities.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/OpenTypeUtilities.h 2014-07-15 21:49:28.000000000 -0700 @@ -46,15 +46,14 @@ public: static le_int8 highBit(le_int32 value); @@ -83936,7 +92103,7 @@ static le_int32 search(le_uint16 value, const le_uint16 array[], le_int32 count); static le_int32 search(le_uint32 value, const le_uint32 array[], le_int32 count); --- ./jdk/src/share/native/sun/font/layout/PairPositioningSubtables.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/PairPositioningSubtables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/PairPositioningSubtables.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -76,19 +76,17 @@ { LEGlyphID firstGlyph = glyphIterator->getCurrGlyphID(); @@ -84075,7 +92242,7 @@ U_NAMESPACE_END --- ./jdk/src/share/native/sun/font/layout/PairPositioningSubtables.h 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/PairPositioningSubtables.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/PairPositioningSubtables.h 2014-07-15 21:49:28.000000000 -0700 @@ -77,9 +77,8 @@ le_uint32 process(const LEReferenceTo &base, GlyphIterator *glyphIterator, const LEFontInstance *fontInstance, LEErrorCode &success) const; @@ -84088,7 +92255,7 @@ LE_VAR_ARRAY(PairPositioningFormat1Subtable, pairSetTableOffsetArray) --- ./jdk/src/share/native/sun/font/layout/ScriptAndLanguage.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ScriptAndLanguage.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ScriptAndLanguage.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -106,7 +106,8 @@ } } else { @@ -84100,7 +92267,7 @@ if (scriptTableOffset != 0) { --- ./jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -126,13 +126,13 @@ linaScriptTag, /* 'lina' (LINA) */ mandScriptTag, /* 'mand' (MANDAIC) */ @@ -84136,7 +92303,7 @@ nbatScriptTag, /* 'nbat' (NBAT) */ palmScriptTag, /* 'palm' (PALM) */ --- ./jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.h 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ScriptAndLanguageTags.h 2014-07-15 21:49:28.000000000 -0700 @@ -140,13 +140,13 @@ const LETag linaScriptTag = 0x6C696E61; /* 'lina' (LINA) */ const LETag mandScriptTag = 0x6D616E64; /* 'mand' (MANDAIC) */ @@ -84172,7 +92339,7 @@ const LETag nbatScriptTag = 0x6E626174; /* 'nbat' (NBAT) */ const LETag palmScriptTag = 0x70616C6D; /* 'palm' (PALM) */ --- ./jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/SegmentArrayProcessor.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -73,6 +73,7 @@ if (offset != 0) { @@ -84182,7 +92349,7 @@ glyphStorage[glyph] = LE_SET_GLYPH(thisGlyph, newGlyph); } --- ./jdk/src/share/native/sun/font/layout/SegmentArrayProcessor2.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/SegmentArrayProcessor2.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/SegmentArrayProcessor2.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -65,16 +65,17 @@ for (glyph = 0; glyph < glyphCount; glyph += 1) { @@ -84208,7 +92375,7 @@ } } --- ./jdk/src/share/native/sun/font/layout/SinglePositioningSubtables.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/SinglePositioningSubtables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/SinglePositioningSubtables.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -75,7 +75,7 @@ } @@ -84228,7 +92395,7 @@ return 1; } --- ./jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/SingleSubstitutionSubtables.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -76,7 +76,7 @@ if (coverageIndex >= 0) { TTGlyphID substitute = ((TTGlyphID) LE_GET_GLYPH(glyph)) + SWAPW(deltaGlyphID); @@ -84248,7 +92415,7 @@ } --- ./jdk/src/share/native/sun/font/layout/StateTableProcessor.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/StateTableProcessor.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/StateTableProcessor.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -97,6 +97,7 @@ LEReferenceToArrayOf stateArray(stHeader, success, currentState, LE_UNBOUNDED_ARRAY); @@ -84258,7 +92425,7 @@ currentState = processStateEntry(glyphStorage, currGlyph, entryTableIndex); LE_STATE_PATIENCE_INCR(currGlyph); --- ./jdk/src/share/native/sun/font/layout/SunLayoutEngine.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/SunLayoutEngine.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/SunLayoutEngine.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -104,6 +104,10 @@ int putGV(JNIEnv* env, jint gmask, jint baseIndex, jobject gvdata, const LayoutEngine* engine, int glyphCount) { @@ -84271,7 +92438,7 @@ jarray glyphArray = (jarray)env->GetObjectField(gvdata, gvdGlyphsFID); if (IS_NULL(glyphArray)) { --- ./jdk/src/share/native/sun/font/layout/TibetanReordering.h 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/TibetanReordering.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/TibetanReordering.h 2014-07-15 21:49:28.000000000 -0700 @@ -39,7 +39,7 @@ */ @@ -84282,7 +92449,7 @@ /** * \file --- ./jdk/src/share/native/sun/font/layout/ValueRecords.cpp 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ValueRecords.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ValueRecords.cpp 2014-07-15 21:49:28.000000000 -0700 @@ -59,8 +59,8 @@ return SWAPW(value); } @@ -84394,7 +92561,7 @@ yAdvanceAdjustment += fontInstance->yPixelsToUnits(yAdj); } --- ./jdk/src/share/native/sun/font/layout/ValueRecords.h 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/font/layout/ValueRecords.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/font/layout/ValueRecords.h 2014-07-15 21:49:28.000000000 -0700 @@ -53,10 +53,10 @@ le_int16 getFieldValue(ValueFormat valueFormat, ValueRecordField field) const; @@ -84411,7 +92578,7 @@ static le_int16 getSize(ValueFormat valueFormat); --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmscam02.c 2014-07-15 21:49:28.000000000 -0700 @@ -81,7 +81,7 @@ cmsUInt32Number surround; cmsFloat64Number n, Nbb, Ncb, z, FL, D; @@ -84438,7 +92605,7 @@ _cmsAssert(pIn != NULL); _cmsAssert(pOut != NULL); --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmscgats.c 2014-07-15 21:49:28.000000000 -0700 @@ -59,8 +59,8 @@ // IT8.7 / CGATS.17-200x handling ----------------------------------------------------------------------------- @@ -84655,7 +92822,7 @@ it8 ->DoubleFormatter[sizeof(it8 ->DoubleFormatter)-1] = 0; } --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmscnvrt.c 2014-07-15 21:49:28.000000000 -0700 @@ -270,7 +270,7 @@ // m2 holds CHAD from output white to D50 times abs. col. scaling @@ -84834,7 +93001,7 @@ } --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmserr.c 2014-07-15 21:49:28.000000000 -0700 @@ -302,8 +302,6 @@ return NULL; } @@ -84845,7 +93012,7 @@ chunk ->Used = 0; chunk ->next = NULL; --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsgamma.c 2014-07-15 21:49:28.000000000 -0700 @@ -30,7 +30,7 @@ //--------------------------------------------------------------------------------- // @@ -85001,7 +93168,7 @@ // Seems ok for (i=0; i < nItems; i++) { --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsgmt.c 2014-07-15 21:49:28.000000000 -0700 @@ -249,13 +249,10 @@ cmsFloat64Number dE1, dE2, ErrorRatio; @@ -85106,7 +93273,7 @@ } else --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsintrp.c 2014-07-15 21:49:28.000000000 -0700 @@ -83,7 +83,6 @@ @@ -85278,7 +93445,7 @@ rest = pk - (cmsFloat32Number) k0; --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsio0.c 2014-07-15 21:49:28.000000000 -0700 @@ -154,7 +154,6 @@ return iohandler; @@ -85718,7 +93885,7 @@ if (!_cmsNewTag(Icc, sig, &i)) return FALSE; --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c 2014-07-15 21:49:28.000000000 -0700 @@ -129,7 +129,6 @@ Tag = (cmsMAT3*) cmsReadTag(hProfile, cmsSigChromaticAdaptationTag); @@ -86188,7 +94355,7 @@ // --------------------------------------------------------------------------------------------------------------- --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmslut.c 2014-07-15 21:49:28.000000000 -0700 @@ -264,10 +264,10 @@ if (NewElem ->TheCurves != NULL) { for (i=0; i < NewElem ->nCurves; i++) { @@ -86422,7 +94589,7 @@ if (Hint == NULL) { --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsmd5.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsmd5.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsmd5.c 2014-07-15 21:49:28.000000000 -0700 @@ -338,7 +338,7 @@ Error: @@ -86433,7 +94600,7 @@ memmove(Icc, &Keep, sizeof(_cmsICCPROFILE)); return FALSE; --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsnamed.c 2014-07-15 21:49:28.000000000 -0700 @@ -359,9 +359,9 @@ if (Best == -1) Best = 0; @@ -86538,7 +94705,7 @@ entry = old_dict ->head; while (entry != NULL) { --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsopt.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsopt.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsopt.c 2014-07-15 21:49:28.000000000 -0700 @@ -27,6 +27,7 @@ // However, the following notice accompanied the original version of this // file: @@ -86866,7 +95033,7 @@ // Copy the parameters --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmspack.c 2014-07-15 21:49:28.000000000 -0700 @@ -317,6 +317,23 @@ } @@ -86920,7 +95087,7 @@ fl ->Factory = Plugin ->FormattersFactory; --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmspcs.c 2014-07-15 21:49:28.000000000 -0700 @@ -898,9 +898,11 @@ { switch (ColorSpace) { @@ -86947,7 +95114,7 @@ case cmsSigMCH5Data: --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsplugin.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsplugin.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsplugin.c 2014-07-15 21:49:28.000000000 -0700 @@ -125,10 +125,14 @@ pOut[0] = pIn[7]; @@ -87057,7 +95224,7 @@ if (PluginPool != NULL) _cmsSubAllocDestroy(PluginPool); --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsps2.c 2014-07-15 21:49:29.000000000 -0700 @@ -806,7 +806,6 @@ mpe = Pipeline ->Elements; @@ -87092,7 +95259,7 @@ break; --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmssamp.c 2014-07-15 21:49:29.000000000 -0700 @@ -56,6 +56,8 @@ #include "lcms2_internal.h" @@ -87466,7 +95633,7 @@ } --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmstypes.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmstypes.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmstypes.c 2014-07-15 21:49:29.000000000 -0700 @@ -91,7 +91,7 @@ // Register a new type handler. This routine is shared between normal types and MPE @@ -88135,7 +96302,7 @@ pt ->Signature = Plugin ->Signature; --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsvirt.c 2014-07-15 21:49:29.000000000 -0700 @@ -208,9 +208,26 @@ if (TransferFunction) { @@ -88481,7 +96648,7 @@ return hProfile; --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmswtpnt.c 2014-07-15 21:49:29.000000000 -0700 @@ -30,7 +30,7 @@ //--------------------------------------------------------------------------------- // @@ -88583,7 +96750,7 @@ if (ConeMatrix == NULL) ConeMatrix = &LamRigg; --- ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c 2014-07-15 21:49:29.000000000 -0700 @@ -396,7 +396,7 @@ static _cmsTransformCollection* TransformCollection = NULL; @@ -88656,7 +96823,7 @@ // Create a gamut check LUT if requested if (hGamutProfile != NULL && (dwFlags & cmsFLAGS_GAMUTCHECK)) --- ./jdk/src/share/native/sun/java2d/cmm/lcms/lcms2.h 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/lcms2.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/lcms2.h 2014-07-15 21:49:29.000000000 -0700 @@ -30,7 +30,7 @@ //--------------------------------------------------------------------------------- // @@ -88732,7 +96899,7 @@ CMSAPI void CMSEXPORT cmsSetHeaderModel(cmsHPROFILE hProfile, cmsUInt32Number model); CMSAPI void CMSEXPORT cmsSetHeaderAttributes(cmsHPROFILE hProfile, cmsUInt64Number Flags); --- ./jdk/src/share/native/sun/java2d/cmm/lcms/lcms2_internal.h 2013-09-06 11:29:02.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/cmm/lcms/lcms2_internal.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/cmm/lcms/lcms2_internal.h 2014-07-15 21:49:29.000000000 -0700 @@ -27,7 +27,7 @@ // However, the following notice accompanied the original version of this // file: @@ -88821,7 +96988,7 @@ cmsSEQ* Sequence; --- ./jdk/src/share/native/sun/java2d/opengl/OGLBlitLoops.c 2013-09-06 11:29:03.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/opengl/OGLBlitLoops.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/opengl/OGLBlitLoops.c 2014-07-15 21:49:29.000000000 -0700 @@ -661,7 +661,12 @@ (sy2-sy1) != (jint)(dy2-dy1) || oglc->extraAlpha != 1.0f; @@ -88837,7 +97004,7 @@ // just use the glDrawPixels() codepath viaTexture = JNI_FALSE; --- ./jdk/src/share/native/sun/java2d/opengl/OGLFuncs.h 2013-09-06 11:29:03.000000000 -0700 -+++ ./jdk/src/share/native/sun/java2d/opengl/OGLFuncs.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/java2d/opengl/OGLFuncs.h 2014-10-28 20:19:52.000000000 -0700 @@ -26,7 +26,7 @@ #ifndef OGLFuncs_h_Included #define OGLFuncs_h_Included @@ -88848,7 +97015,7 @@ #endif #include "jni.h" --- ./jdk/src/share/native/sun/management/Flag.c 2013-09-06 11:29:03.000000000 -0700 -+++ ./jdk/src/share/native/sun/management/Flag.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/management/Flag.c 2014-07-15 21:49:29.000000000 -0700 @@ -95,12 +95,12 @@ return 0; } @@ -88865,7 +97032,7 @@ if (globals == NULL) { JNU_ThrowOutOfMemoryError(env, 0); --- ./jdk/src/share/native/sun/management/GcInfoBuilder.c 2013-09-06 11:29:03.000000000 -0700 -+++ ./jdk/src/share/native/sun/management/GcInfoBuilder.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/management/GcInfoBuilder.c 2014-07-15 21:49:29.000000000 -0700 @@ -59,12 +59,12 @@ return; } @@ -88918,7 +97085,7 @@ if (gc_stat.gc_ext_attribute_values != NULL) { free(gc_stat.gc_ext_attribute_values); --- ./jdk/src/share/native/sun/management/HotSpotDiagnostic.c 2013-09-06 11:29:03.000000000 -0700 -+++ ./jdk/src/share/native/sun/management/HotSpotDiagnostic.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/management/HotSpotDiagnostic.c 2014-07-15 21:49:29.000000000 -0700 @@ -29,7 +29,7 @@ #include "sun_management_HotSpotDiagnostic.h" @@ -88929,7 +97096,7 @@ { jmm_interface->DumpHeap0(env, outputfile, live); --- ./jdk/src/share/native/sun/security/ec/ECC_JNI.cpp 2013-09-06 11:29:04.000000000 -0700 -+++ ./jdk/src/share/native/sun/security/ec/ECC_JNI.cpp 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/security/ec/ECC_JNI.cpp 2014-07-15 21:54:46.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. @@ -89121,7 +97288,7 @@ return jSignedDigest; --- ./jdk/src/share/native/sun/security/krb5/nativeccache.c 2013-09-06 11:29:04.000000000 -0700 -+++ ./jdk/src/share/native/sun/security/krb5/nativeccache.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/share/native/sun/security/krb5/nativeccache.c 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. @@ -89212,7 +97379,7 @@ return krbCreds; } --- ./jdk/src/solaris/back/linker_md.c 2013-09-06 11:29:05.000000000 -0700 -+++ ./jdk/src/solaris/back/linker_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/back/linker_md.c 2014-10-28 20:19:52.000000000 -0700 @@ -55,29 +55,27 @@ #endif @@ -89267,7 +97434,7 @@ const int pnamelen = pname ? strlen(pname) : 0; --- ./jdk/src/solaris/back/util_md.h 2013-09-06 11:29:05.000000000 -0700 -+++ ./jdk/src/solaris/back/util_md.h 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/back/util_md.h 2014-10-28 20:19:52.000000000 -0700 @@ -51,7 +51,7 @@ /* On little endian machines, convert java big endian numbers. */ @@ -89278,7 +97445,7 @@ #define HOST_TO_JAVA_CHAR(x) (((x & 0xff) << 8) | ((x >> 8) & (0xff))) #define HOST_TO_JAVA_SHORT(x) (((x & 0xff) << 8) | ((x >> 8) & (0xff))) --- ./jdk/src/solaris/bin/ergo.c 2013-09-06 11:29:05.000000000 -0700 -+++ ./jdk/src/solaris/bin/ergo.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/bin/ergo.c 2014-10-28 20:19:52.000000000 -0700 @@ -100,6 +100,27 @@ /* Compute physical memory by asking the OS */ uint64_t @@ -89314,7 +97481,7 @@ +#endif } --- ./jdk/src/solaris/bin/ergo.h 2013-09-06 11:29:05.000000000 -0700 -+++ ./jdk/src/solaris/bin/ergo.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/bin/ergo.h 2014-10-28 20:19:52.000000000 -0700 @@ -33,6 +33,10 @@ #include #include @@ -89327,7 +97494,7 @@ #include "java.h" --- ./jdk/src/solaris/bin/ergo_i586.c 2013-09-06 11:29:05.000000000 -0700 -+++ ./jdk/src/solaris/bin/ergo_i586.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/bin/ergo_i586.c 2014-10-28 20:19:52.000000000 -0700 @@ -106,7 +106,7 @@ #endif /* __solaris__ */ @@ -89387,7 +97554,7 @@ +#endif } --- ./jdk/src/solaris/bin/java_md_solinux.c 2013-09-06 11:29:05.000000000 -0700 -+++ ./jdk/src/solaris/bin/java_md_solinux.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/bin/java_md_solinux.c 2014-10-28 20:19:52.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. @@ -89482,7 +97649,7 @@ if (hSplashLib) { void* sym = dlsym(hSplashLib, name); --- ./jdk/src/solaris/bin/java_md_solinux.h 2013-09-06 11:29:05.000000000 -0700 -+++ ./jdk/src/solaris/bin/java_md_solinux.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/bin/java_md_solinux.h 2014-10-28 20:19:52.000000000 -0700 @@ -33,6 +33,10 @@ #include #define CounterGet() (gethrtime()/1000) @@ -89505,7 +97672,7 @@ static const char *system_dir = "/usr/jdk"; static const char *user_dir = "/jdk"; --- ./jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd 2014-10-28 20:19:52.000000000 -0700 @@ -63,11 +63,66 @@ private /* final */ InputStream stdout; private /* final */ InputStream stderr; @@ -89680,7 +97847,7 @@ } } --- ./jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux 2014-07-15 21:49:29.000000000 -0700 @@ -63,11 +63,61 @@ private /* final */ InputStream stdout; private /* final */ InputStream stderr; @@ -89850,7 +98017,7 @@ } } --- ./jdk/src/solaris/classes/java/lang/UNIXProcess.java.solaris 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/java/lang/UNIXProcess.java.solaris 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/java/lang/UNIXProcess.java.solaris 2014-07-15 21:49:29.000000000 -0700 @@ -26,6 +26,8 @@ package java.lang; @@ -89962,7 +98129,7 @@ } } --- ./jdk/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. @@ -90079,7 +98246,7 @@ } } finally { --- ./jdk/src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. @@ -90184,7 +98351,7 @@ XToolkit.awtUnlock(); } --- ./jdk/src/solaris/classes/sun/awt/X11/WindowPropertyGetter.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/WindowPropertyGetter.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/WindowPropertyGetter.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. @@ -90211,7 +98378,7 @@ return status; } finally { --- ./jdk/src/solaris/classes/sun/awt/X11/XClipboard.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XClipboard.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XClipboard.java 2014-07-15 21:49:29.000000000 -0700 @@ -84,7 +84,7 @@ protected synchronized void setContentsNative(Transferable contents) { @@ -90231,7 +98398,7 @@ } --- ./jdk/src/solaris/classes/sun/awt/X11/XConstants.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XConstants.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XConstants.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. @@ -90240,7 +98407,7 @@ * * This code is free software; you can redistribute it and/or modify it --- ./jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. @@ -90287,7 +98454,7 @@ throw new XException("Cannot write XdndActionList property"); } --- ./jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. @@ -90494,7 +98661,7 @@ logger.warning("Cannot set XdndTypeList on the proxy window"); } --- ./jdk/src/solaris/classes/sun/awt/X11/XDragSourceProtocol.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XDragSourceProtocol.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XDragSourceProtocol.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. @@ -90557,7 +98724,7 @@ public abstract boolean processProxyModeEvent(XClientMessageEvent xclient, --- ./jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. @@ -90642,7 +98809,7 @@ } } --- ./jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. @@ -90672,7 +98839,7 @@ } --- ./jdk/src/solaris/classes/sun/awt/X11/XErrorHandler.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XErrorHandler.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XErrorHandler.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. @@ -90690,7 +98857,7 @@ } --- ./jdk/src/solaris/classes/sun/awt/X11/XErrorHandlerUtil.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XErrorHandlerUtil.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XErrorHandlerUtil.java 2014-07-15 21:49:29.000000000 -0700 @@ -0,0 +1,168 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -90861,7 +99028,7 @@ + } +} --- ./jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XKeyboardFocusManagerPeer.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. @@ -90899,7 +99066,7 @@ } --- ./jdk/src/solaris/classes/sun/awt/X11/XQueryTree.java 2013-09-06 11:29:06.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XQueryTree.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XQueryTree.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. @@ -90926,7 +99093,7 @@ return status; } finally { --- ./jdk/src/solaris/classes/sun/awt/X11/XToolkit.java 2013-09-06 11:29:07.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XToolkit.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XToolkit.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. @@ -91080,7 +99247,7 @@ } } --- ./jdk/src/solaris/classes/sun/awt/X11/XTranslateCoordinates.java 2013-09-06 11:29:07.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XTranslateCoordinates.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XTranslateCoordinates.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. @@ -91107,7 +99274,7 @@ return status; } finally { --- ./jdk/src/solaris/classes/sun/awt/X11/XWM.java 2013-09-06 11:29:07.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XWM.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XWM.java 2014-07-15 21:49:29.000000000 -0700 @@ -283,12 +283,12 @@ winmgr_running = false; substruct.set_event_mask(XConstants.SubstructureRedirectMask); @@ -91144,7 +99311,7 @@ return false; } --- ./jdk/src/solaris/classes/sun/awt/X11/XlibUtil.java 2013-09-06 11:29:07.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/XlibUtil.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/XlibUtil.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved. @@ -91182,7 +99349,7 @@ return wattr.get_map_state(); } --- ./jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java 2013-09-06 11:29:07.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11/generator/WrapperGenerator.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. @@ -91209,7 +99376,7 @@ if (!ft.isVoid()) { pw.println("\t\t\treturn status;"); --- ./jdk/src/solaris/classes/sun/awt/X11FontManager.java 2013-09-06 11:29:07.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11FontManager.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11FontManager.java 2014-10-28 20:19:52.000000000 -0700 @@ -213,7 +213,7 @@ if (fontID != null) { fileName = (String)fontNameMap.get(fontID); @@ -91238,7 +99405,7 @@ !mFontConfig.fontFilesArePresent()) || (FontUtilities.isSolaris && !mFontConfig.fontFilesArePresent()))) { --- ./jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java 2013-09-06 11:29:07.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/awt/X11GraphicsDevice.java 2014-07-15 21:49:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. @@ -91290,7 +99457,7 @@ Runtime.getRuntime().addShutdownHook(t); return null; --- ./jdk/src/solaris/classes/sun/font/FcFontConfiguration.java 2013-09-06 11:29:07.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/font/FcFontConfiguration.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/font/FcFontConfiguration.java 2014-07-15 21:54:44.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. @@ -91348,7 +99515,7 @@ null, null); } --- ./jdk/src/solaris/classes/sun/net/PortConfig.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/src/solaris/classes/sun/net/PortConfig.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/net/PortConfig.java 2014-10-28 20:19:52.000000000 -0700 @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -91440,7 +99607,7 @@ + } +} --- ./jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java 2013-09-06 11:29:08.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/nio/ch/DefaultAsynchronousChannelProvider.java 2014-10-28 20:19:52.000000000 -0700 @@ -50,7 +50,7 @@ return new SolarisAsynchronousChannelProvider(); if (osname.equals("Linux")) @@ -91451,7 +99618,7 @@ throw new InternalError("platform not recognized"); } --- ./jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java 2013-09-06 11:29:08.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java 2014-07-15 21:49:29.000000000 -0700 @@ -26,9 +26,11 @@ package sun.nio.ch; @@ -91479,7 +99646,7 @@ // The pollfd array for results from devpoll driver private final AllocatedNativeObject pollArray; --- ./jdk/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java 2013-09-06 11:29:08.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java 2014-07-15 21:49:29.000000000 -0700 @@ -26,9 +26,11 @@ package sun.nio.ch; @@ -91530,7 +99697,7 @@ } } --- ./jdk/src/solaris/classes/sun/nio/ch/EventPortWrapper.java 2013-09-06 11:29:08.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/nio/ch/EventPortWrapper.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/nio/ch/EventPortWrapper.java 2014-07-15 21:49:29.000000000 -0700 @@ -25,9 +25,14 @@ package sun.nio.ch; @@ -91559,7 +99726,7 @@ // special update status to indicate that it should be ignored private static final byte IGNORE = -1; --- ./jdk/src/solaris/classes/sun/nio/ch/SctpChannelImpl.java 2013-09-06 11:29:08.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/nio/ch/SctpChannelImpl.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/nio/ch/SctpChannelImpl.java 2014-07-15 21:49:29.000000000 -0700 @@ -180,6 +180,10 @@ SctpNet.throwAlreadyBoundException(); InetSocketAddress isa = (local == null) ? @@ -91572,7 +99739,7 @@ InetSocketAddress boundIsa = Net.localAddress(fd); port = boundIsa.getPort(); --- ./jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java 2013-09-06 11:29:08.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/nio/fs/DefaultFileSystemProvider.java 2014-10-28 20:19:52.000000000 -0700 @@ -70,6 +70,8 @@ return createProvider("sun.nio.fs.LinuxFileSystemProvider"); if (osname.equals("Darwin") || osname.contains("OS X")) @@ -91582,8 +99749,70 @@ throw new AssertionError("Platform not recognized"); } } +--- ./jdk/src/solaris/classes/sun/print/CUPSPrinter.java 2013-09-06 11:29:08.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/print/CUPSPrinter.java 2014-10-28 20:19:46.000000000 -0700 +@@ -121,7 +121,7 @@ + /** + * Returns array of MediaSizeNames derived from PPD. + */ +- public MediaSizeName[] getMediaSizeNames() { ++ MediaSizeName[] getMediaSizeNames() { + initMedia(); + return cupsMediaSNames; + } +@@ -130,7 +130,7 @@ + /** + * Returns array of Custom MediaSizeNames derived from PPD. + */ +- public CustomMediaSizeName[] getCustomMediaSizeNames() { ++ CustomMediaSizeName[] getCustomMediaSizeNames() { + initMedia(); + return cupsCustomMediaSNames; + } +@@ -139,7 +139,7 @@ + /** + * Returns array of MediaPrintableArea derived from PPD. + */ +- public MediaPrintableArea[] getMediaPrintableArea() { ++ MediaPrintableArea[] getMediaPrintableArea() { + initMedia(); + return cupsMediaPrintables; + } +@@ -147,7 +147,7 @@ + /** + * Returns array of MediaTrays derived from PPD. + */ +- public MediaTray[] getMediaTrays() { ++ MediaTray[] getMediaTrays() { + initMedia(); + return cupsMediaTrays; + } +--- ./jdk/src/solaris/classes/sun/print/IPPPrintService.java 2013-09-06 11:29:08.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/print/IPPPrintService.java 2014-10-28 20:19:46.000000000 -0700 +@@ -991,7 +991,9 @@ + + public synchronized Class[] getSupportedAttributeCategories() { + if (supportedCats != null) { +- return supportedCats; ++ Class [] copyCats = new Class[supportedCats.length]; ++ System.arraycopy(supportedCats, 0, copyCats, 0, copyCats.length); ++ return copyCats; + } + + initAttributes(); +@@ -1048,7 +1050,9 @@ + } + supportedCats = new Class[catList.size()]; + catList.toArray(supportedCats); +- return supportedCats; ++ Class[] copyCats = new Class[supportedCats.length]; ++ System.arraycopy(supportedCats, 0, copyCats, 0, copyCats.length); ++ return copyCats; + } + + --- ./jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java 2013-09-06 11:29:08.000000000 -0700 -+++ ./jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/classes/sun/print/UnixPrintServiceLookup.java 2014-10-28 20:19:52.000000000 -0700 @@ -129,6 +129,7 @@ static boolean isBSD() { @@ -91593,7 +99822,7 @@ } --- ./jdk/src/solaris/demo/jni/Poller/Poller.c 2013-09-06 11:29:09.000000000 -0700 -+++ ./jdk/src/solaris/demo/jni/Poller/Poller.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/demo/jni/Poller/Poller.c 2014-07-15 21:49:29.000000000 -0700 @@ -318,7 +318,7 @@ ioevent_t *ioeh; @@ -91649,7 +99878,7 @@ ioeh = &IOE_handles[handle]; --- ./jdk/src/solaris/demo/jvmti/hprof/hprof_md.c 2013-09-06 11:29:09.000000000 -0700 -+++ ./jdk/src/solaris/demo/jvmti/hprof/hprof_md.c 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/demo/jvmti/hprof/hprof_md.c 2014-10-28 20:19:52.000000000 -0700 @@ -376,33 +376,32 @@ } @@ -91704,7 +99933,7 @@ int pnamelen; --- ./jdk/src/solaris/javavm/export/jvm_md.h 2013-09-06 11:29:09.000000000 -0700 -+++ ./jdk/src/solaris/javavm/export/jvm_md.h 2014-07-15 23:24:37.000000000 -0700 ++++ ./jdk/src/solaris/javavm/export/jvm_md.h 2014-10-28 20:19:52.000000000 -0700 @@ -75,7 +75,11 @@ #define JVM_O_O_APPEND O_APPEND #define JVM_O_EXCL O_EXCL @@ -91718,7 +99947,7 @@ /* Signals */ --- ./jdk/src/solaris/native/com/sun/management/UnixOperatingSystem_md.c 2013-09-06 11:29:09.000000000 -0700 -+++ ./jdk/src/solaris/native/com/sun/management/UnixOperatingSystem_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/com/sun/management/UnixOperatingSystem_md.c 2014-10-28 20:19:52.000000000 -0700 @@ -168,6 +168,9 @@ /* * XXXBSD: there's no way available to get swap info in @@ -91769,7 +99998,7 @@ // throw_internal_error(env, "Unimplemented in FreeBSD"); return (100); --- ./jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Utils.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Utils.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_SolarisOS_Utils.c 2014-07-15 21:49:29.000000000 -0700 @@ -76,7 +76,7 @@ adPath[*count].st_ino = statBuf.st_ino; adPath[*count].st_dev = statBuf.st_dev; @@ -91780,7 +100009,7 @@ TRACE1("Added audio device %s\n", path); } --- ./jdk/src/solaris/native/java/io/UnixFileSystem_md.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/io/UnixFileSystem_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/io/UnixFileSystem_md.c 2014-10-28 20:19:52.000000000 -0700 @@ -151,7 +151,6 @@ return rv; } @@ -91790,7 +100019,7 @@ Java_java_io_UnixFileSystem_setPermission(JNIEnv *env, jobject this, jobject file, --- ./jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c 2014-10-28 20:19:52.000000000 -0700 @@ -31,21 +31,24 @@ #ifdef __APPLE__ #include @@ -91845,7 +100074,7 @@ const char * valBeg = varEnd + 1; jsize varLength = varEnd - environ[i]; --- ./jdk/src/solaris/native/java/lang/UNIXProcess_md.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/lang/UNIXProcess_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/lang/UNIXProcess_md.c 2014-10-28 20:19:52.000000000 -0700 @@ -47,19 +47,15 @@ #endif #include @@ -92779,7 +101008,7 @@ } --- ./jdk/src/solaris/native/java/lang/childproc.c 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/src/solaris/native/java/lang/childproc.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/lang/childproc.c 2014-10-28 20:19:52.000000000 -0700 @@ -0,0 +1,387 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -93169,7 +101398,7 @@ + return 0; /* Suppress warning "no return value from function" */ +} --- ./jdk/src/solaris/native/java/lang/childproc.h 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/src/solaris/native/java/lang/childproc.h 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/lang/childproc.h 2014-07-15 21:49:29.000000000 -0700 @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -93317,7 +101546,7 @@ + +#endif --- ./jdk/src/solaris/native/java/lang/java_props_macosx.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/lang/java_props_macosx.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/lang/java_props_macosx.c 2014-07-15 21:49:29.000000000 -0700 @@ -31,6 +31,7 @@ #include #include @@ -93349,7 +101578,7 @@ void setProxyProperties(java_props_t *sProps) { if (sProps == NULL) return; --- ./jdk/src/solaris/native/java/lang/java_props_macosx.h 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/lang/java_props_macosx.h 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/lang/java_props_macosx.h 2014-07-15 21:49:29.000000000 -0700 @@ -27,6 +27,7 @@ char *setupMacOSXLocale(int cat); @@ -93359,7 +101588,7 @@ enum PreferredToolkit_enum { --- ./jdk/src/solaris/native/java/lang/java_props_md.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/lang/java_props_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/lang/java_props_md.c 2014-10-28 20:19:52.000000000 -0700 @@ -151,7 +151,7 @@ lc = setlocale(cat, NULL); #endif @@ -93432,7 +101661,7 @@ /* User TIMEZONE */ --- ./jdk/src/solaris/native/java/lang/jspawnhelper.c 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/src/solaris/native/java/lang/jspawnhelper.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/lang/jspawnhelper.c 2014-07-15 21:49:29.000000000 -0700 @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -93583,8 +101812,100 @@ + childProcess (&c); + return 0; /* NOT REACHED */ +} +--- ./jdk/src/solaris/native/java/net/AbstractPlainDatagramSocketImpl.c 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/solaris/native/java/net/AbstractPlainDatagramSocketImpl.c 2014-10-28 20:19:47.000000000 -0700 +@@ -0,0 +1,89 @@ ++/* ++ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++#include ++#include ++ ++#ifdef __solaris__ ++#include ++#include ++ ++#ifndef BSD_COMP ++#define BSD_COMP ++#endif ++ ++#endif ++ ++#include ++ ++#include "jvm.h" ++#include "jni_util.h" ++#include "net_util.h" ++ ++#include "java_net_AbstractPlainDatagramSocketImpl.h" ++ ++static jfieldID IO_fd_fdID; ++ ++static jfieldID apdsi_fdID; ++ ++ ++/* ++ * Class: java_net_AbstractPlainDatagramSocketImpl ++ * Method: init ++ * Signature: ()V ++ */ ++JNIEXPORT void JNICALL ++Java_java_net_AbstractPlainDatagramSocketImpl_init(JNIEnv *env, jclass cls) { ++ ++ apdsi_fdID = (*env)->GetFieldID(env, cls, "fd", ++ "Ljava/io/FileDescriptor;"); ++ CHECK_NULL(apdsi_fdID); ++ ++ IO_fd_fdID = NET_GetFileDescriptorID(env); ++} ++ ++/* ++ * Class: java_net_AbstractPlainDatagramSocketImpl ++ * Method: dataAvailable ++ * Signature: ()I ++ */ ++JNIEXPORT jint JNICALL Java_java_net_AbstractPlainDatagramSocketImpl_dataAvailable ++(JNIEnv *env, jobject this) { ++ int fd, retval; ++ ++ jobject fdObj = (*env)->GetObjectField(env, this, apdsi_fdID); ++ ++ if (IS_NULL(fdObj)) { ++ JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", ++ "Socket closed"); ++ return -1; ++ } ++ fd = (*env)->GetIntField(env, fdObj, IO_fd_fdID); ++ ++ if (ioctl(fd, FIONREAD, &retval) < 0) { ++ return -1; ++ } ++ return retval; ++} --- ./jdk/src/solaris/native/java/net/Inet6AddressImpl.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/net/Inet6AddressImpl.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/net/Inet6AddressImpl.c 2014-10-28 20:19:52.000000000 -0700 @@ -122,7 +122,6 @@ static jclass ni_ia6cls; static jmethodID ni_ia4ctrID; @@ -93647,7 +101968,7 @@ (*env)->SetObjectArrayElement(env, ret, inet6Index, iaObj); inet6Index++; --- ./jdk/src/solaris/native/java/net/NetworkInterface.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/net/NetworkInterface.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/net/NetworkInterface.c 2014-10-28 20:19:52.000000000 -0700 @@ -60,14 +60,19 @@ #include #include @@ -93771,7 +102092,7 @@ } --- ./jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c 2014-10-28 20:19:52.000000000 -0700 @@ -23,12 +23,12 @@ * questions. */ @@ -93873,7 +102194,7 @@ memcpy((void *)&(mname6.ipv6mr_multiaddr), caddr, sizeof(struct in6_addr)); --- ./jdk/src/solaris/native/java/net/PlainSocketImpl.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/net/PlainSocketImpl.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/net/PlainSocketImpl.c 2014-10-28 20:19:52.000000000 -0700 @@ -708,7 +708,6 @@ } else { ret = NET_Timeout(fd, timeout); @@ -93892,7 +102213,7 @@ NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", "Accept failed"); } --- ./jdk/src/solaris/native/java/net/SocketInputStream.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/net/SocketInputStream.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/net/SocketInputStream.c 2014-07-15 21:49:30.000000000 -0700 @@ -108,6 +108,8 @@ } else if (nread == JVM_IO_ERR) { if (errno == EBADF) { @@ -93903,7 +102224,7 @@ NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", "select/poll failed"); --- ./jdk/src/solaris/native/java/net/bsd_close.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/net/bsd_close.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/net/bsd_close.c 2014-10-28 20:19:52.000000000 -0700 @@ -25,6 +25,7 @@ #include @@ -94060,7 +102381,7 @@ +#endif } --- ./jdk/src/solaris/native/java/net/linux_close.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/net/linux_close.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/net/linux_close.c 2014-07-15 21:49:30.000000000 -0700 @@ -34,7 +34,6 @@ #include #include @@ -94105,7 +102426,7 @@ /* --- ./jdk/src/solaris/native/java/net/net_util_md.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/net/net_util_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/net/net_util_md.c 2014-10-28 20:19:52.000000000 -0700 @@ -45,6 +45,10 @@ #endif #endif @@ -94227,7 +102548,7 @@ return setsockopt(fd, level, opt, arg, len); } --- ./jdk/src/solaris/native/java/net/net_util_md.h 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/net/net_util_md.h 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/net/net_util_md.h 2014-10-28 20:19:52.000000000 -0700 @@ -37,7 +37,7 @@ #endif @@ -94247,8 +102568,67 @@ /* needed from libsocket on Solaris 8 */ +--- ./jdk/src/solaris/native/java/util/FileSystemPreferences.c 2013-09-06 11:29:10.000000000 -0700 ++++ ./jdk/src/solaris/native/java/util/FileSystemPreferences.c 2014-10-28 20:19:52.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2001, 2014, 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 +@@ -38,12 +38,14 @@ + JNIEXPORT jint JNICALL + Java_java_util_prefs_FileSystemPreferences_chmod(JNIEnv *env, + jclass thisclass, jstring java_fname, jint permission) { +- const char *fname = JNU_GetStringPlatformChars(env, java_fname, JNI_FALSE); +- int result; +- result = chmod(fname, permission); +- if (result != 0) +- result = errno; +- JNU_ReleaseStringPlatformChars(env, java_fname, fname); ++ const char *fname = JNU_GetStringPlatformChars(env, java_fname, NULL); ++ int result = -1; ++ if (fname) { ++ result = chmod(fname, permission); ++ if (result != 0) ++ result = errno; ++ JNU_ReleaseStringPlatformChars(env, java_fname, fname); ++ } + return (jint) result; + } + +@@ -61,13 +63,16 @@ + JNIEXPORT jintArray JNICALL + Java_java_util_prefs_FileSystemPreferences_lockFile0(JNIEnv *env, + jclass thisclass, jstring java_fname, jint permission, jboolean shared) { +- const char *fname = JNU_GetStringPlatformChars(env, java_fname, JNI_FALSE); ++ const char *fname = JNU_GetStringPlatformChars(env, java_fname, NULL); + int fd, rc; + int result[2]; +- jintArray javaResult; ++ jintArray javaResult = NULL; + int old_umask; + FLOCK fl; + ++ if (!fname) ++ return javaResult; ++ + fl.l_whence = SEEK_SET; + fl.l_len = 0; + fl.l_start = 0; +@@ -104,7 +109,8 @@ + } + JNU_ReleaseStringPlatformChars(env, java_fname, fname); + javaResult = (*env)->NewIntArray(env,2); +- (*env)->SetIntArrayRegion(env, javaResult, 0, 2, result); ++ if (javaResult) ++ (*env)->SetIntArrayRegion(env, javaResult, 0, 2, result); + return javaResult; + } + --- ./jdk/src/solaris/native/java/util/TimeZone_md.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/java/util/TimeZone_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/java/util/TimeZone_md.c 2014-10-28 20:19:52.000000000 -0700 @@ -123,7 +123,7 @@ return NULL; } @@ -94283,7 +102663,7 @@ -#endif /* MACOSX */ +#endif /* _ALLBSD_SOURCE */ --- ./jdk/src/solaris/native/sun/awt/awt_DrawingSurface.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_DrawingSurface.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_DrawingSurface.c 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. @@ -94316,7 +102696,7 @@ return target; --- ./jdk/src/solaris/native/sun/awt/awt_Font.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_Font.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_Font.c 2014-10-28 20:19:52.000000000 -0700 @@ -334,7 +334,7 @@ if (strcmp(style, "regular") == 0) { altstyle = "roman"; @@ -94327,7 +102707,7 @@ family = "lucida"; } --- ./jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.c 2014-10-28 20:19:52.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. @@ -94441,7 +102821,7 @@ return point; } --- ./jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.h 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.h 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_GraphicsEnv.h 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. @@ -94450,7 +102830,7 @@ * * This code is free software; you can redistribute it and/or modify it --- ./jdk/src/solaris/native/sun/awt/awt_InputMethod.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_InputMethod.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_InputMethod.c 2014-10-28 20:19:52.000000000 -0700 @@ -67,7 +67,7 @@ XIMPreeditDrawCallbackStruct *); static void PreeditCaretCallback(XIC, XPointer, @@ -94691,7 +103071,7 @@ adjustStatusWindow(window); AWT_UNLOCK(); --- ./jdk/src/solaris/native/sun/awt/awt_LoadLibrary.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_LoadLibrary.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_LoadLibrary.c 2014-10-28 20:19:52.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved. @@ -94709,7 +103089,7 @@ len = strlen(buf); p = strrchr(buf, '/'); --- ./jdk/src/solaris/native/sun/awt/awt_Robot.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_Robot.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_Robot.c 2014-10-28 20:19:52.000000000 -0700 @@ -46,7 +46,7 @@ #include "wsutils.h" #include "list.h" @@ -94720,7 +103100,7 @@ #endif --- ./jdk/src/solaris/native/sun/awt/awt_util.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_util.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_util.c 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2003, Oracle and/or its affiliates. All rights reserved. @@ -94749,7 +103129,7 @@ extern jint getModifiers(uint32_t state, jint button, jint keyCode); extern jint getButton(uint32_t button); --- ./jdk/src/solaris/native/sun/awt/awt_util.h 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_util.h 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_util.h 2014-10-28 20:19:52.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2004, Oracle and/or its affiliates. All rights reserved. @@ -94808,7 +103188,7 @@ Cardinal num_refs; /* Number of referencing widgets. */ Cardinal max_refs; /* Maximum length of refs array. */ --- ./jdk/src/solaris/native/sun/awt/awt_wm.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_wm.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_wm.c 2014-10-28 20:19:52.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2006, Oracle and/or its affiliates. All rights reserved. @@ -94981,7 +103361,7 @@ } else { --- ./jdk/src/solaris/native/sun/awt/awt_wm.h 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_wm.h 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_wm.h 2014-10-28 20:19:52.000000000 -0700 @@ -45,7 +45,10 @@ KDE2_WM, SAWFISH_WM, @@ -94995,7 +103375,7 @@ extern void awt_wm_init(void); --- ./jdk/src/solaris/native/sun/awt/awt_xembed_server.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/awt_xembed_server.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/awt_xembed_server.c 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved. @@ -95004,7 +103384,7 @@ * * This code is free software; you can redistribute it and/or modify it --- ./jdk/src/solaris/native/sun/awt/extutil.h 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/extutil.h 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/extutil.h 2014-10-28 20:19:52.000000000 -0700 @@ -58,7 +58,7 @@ */ /* $XFree86: xc/include/extensions/extutil.h,v 1.5 2001/01/17 17:53:20 dawes Exp $ */ @@ -95021,7 +103401,7 @@ -#endif /* __linux__ || MACOSX */ +#endif /* __linux__ || _ALLBSD_SOURCE */ --- ./jdk/src/solaris/native/sun/awt/fontpath.c 2013-09-06 11:29:10.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/fontpath.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/fontpath.c 2014-10-28 20:19:52.000000000 -0700 @@ -23,7 +23,7 @@ * questions. */ @@ -95100,7 +103480,7 @@ #endif #endif /* !HEADLESS */ --- ./jdk/src/solaris/native/sun/awt/robot_common.c 2013-09-06 11:29:11.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/robot_common.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/robot_common.c 2014-10-28 20:19:52.000000000 -0700 @@ -27,7 +27,7 @@ #error This file should not be included in headless library #endif @@ -95111,7 +103491,7 @@ #endif --- ./jdk/src/solaris/native/sun/awt/splashscreen/splashscreen_sys.c 2013-09-06 11:29:11.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/awt/splashscreen/splashscreen_sys.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/awt/splashscreen/splashscreen_sys.c 2014-07-15 21:49:30.000000000 -0700 @@ -577,8 +577,8 @@ SplashUnlock(splash); rc = poll(pfd, 2, timeout); @@ -95124,7 +103504,7 @@ SplashUpdateShape(splash); SplashRedrawWindow(splash); --- ./jdk/src/solaris/native/sun/java2d/j2d_md.h 2013-09-06 11:29:11.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/java2d/j2d_md.h 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/java2d/j2d_md.h 2014-10-28 20:19:52.000000000 -0700 @@ -28,9 +28,9 @@ #include @@ -95138,7 +103518,7 @@ #endif /* __linux__ || MACOSX */ --- ./jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c 2013-09-06 11:29:11.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/java2d/loops/vis_FuncArray.c 2014-10-28 20:19:52.000000000 -0700 @@ -804,7 +804,7 @@ static int initialized; static int usevis = JNI_TRUE; @@ -95149,7 +103529,7 @@ #else # define ULTRA_CHIP "sun4u" --- ./jdk/src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. @@ -95173,7 +103553,7 @@ JNIEXPORT jboolean JNICALL --- ./jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/java2d/x11/X11SurfaceData.c 2014-10-28 20:19:52.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. @@ -95200,7 +103580,7 @@ /* --- ./jdk/src/solaris/native/sun/net/portconfig.c 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/src/solaris/native/sun/net/portconfig.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/net/portconfig.c 2014-10-28 20:19:52.000000000 -0700 @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -95343,7 +103723,7 @@ +} +#endif --- ./jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c 2014-10-28 20:19:52.000000000 -0700 @@ -201,7 +201,7 @@ return IOS_THROWN; } @@ -95363,7 +103743,7 @@ if (numBytes > 0) --- ./jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c 2014-10-28 20:19:52.000000000 -0700 @@ -227,6 +227,21 @@ fl.l_start = (off64_t)pos; fl.l_type = F_UNLCK; @@ -95387,7 +103767,7 @@ JNU_ThrowIOExceptionWithLastError(env, "Release failed"); } --- ./jdk/src/solaris/native/sun/nio/ch/NativeThread.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/nio/ch/NativeThread.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/nio/ch/NativeThread.c 2014-10-28 20:19:52.000000000 -0700 @@ -33,12 +33,19 @@ #include "nio_util.h" @@ -95437,7 +103817,7 @@ JNU_ThrowIOExceptionWithLastError(env, "Thread signal failed"); #endif --- ./jdk/src/solaris/native/sun/nio/ch/Sctp.h 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/nio/ch/Sctp.h 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/nio/ch/Sctp.h 2014-10-28 20:19:52.000000000 -0700 @@ -320,8 +320,20 @@ typedef int sctp_peeloff_func(int sock, sctp_assoc_t id); @@ -95478,7 +103858,7 @@ #endif /* !SUN_NIO_CH_SCTP_H */ --- ./jdk/src/solaris/native/sun/nio/ch/SctpChannelImpl.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/nio/ch/SctpChannelImpl.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/nio/ch/SctpChannelImpl.c 2014-10-28 20:19:52.000000000 -0700 @@ -38,8 +38,7 @@ #include "sun_nio_ch_SctpResultContainer.h" #include "sun_nio_ch_SctpPeerAddrChange.h" @@ -95561,7 +103941,7 @@ iov->iov_base = addr; iov->iov_len = length; --- ./jdk/src/solaris/native/sun/nio/ch/SctpNet.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/nio/ch/SctpNet.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/nio/ch/SctpNet.c 2014-10-28 20:19:52.000000000 -0700 @@ -58,6 +58,7 @@ */ jboolean loadSocketExtensionFuncs @@ -95579,7 +103959,7 @@ funcsLoaded = JNI_TRUE; return JNI_TRUE; --- ./jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/security/pkcs11/j2secmod_md.c 2014-10-28 20:19:52.000000000 -0700 @@ -33,6 +33,11 @@ #include "j2secmod.h" @@ -95615,7 +103995,7 @@ dprintf2("-handle: %u (0X%X)\n", hModule, hModule); --- ./jdk/src/solaris/native/sun/xawt/XWindow.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/xawt/XWindow.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/xawt/XWindow.c 2014-10-28 20:19:52.000000000 -0700 @@ -867,7 +867,7 @@ { KeySym originalKeysym = *keysym; @@ -95626,7 +104006,7 @@ * not to echo on JTextField when the NumLock is on. The * keysyms will be 0, because the last parameter 2 is not defined. --- ./jdk/src/solaris/native/sun/xawt/XlibWrapper.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/solaris/native/sun/xawt/XlibWrapper.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/solaris/native/sun/xawt/XlibWrapper.c 2014-07-15 21:49:30.000000000 -0700 @@ -41,6 +41,7 @@ #include @@ -95654,7 +104034,7 @@ } return 0; --- ./jdk/src/windows/back/linker_md.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/windows/back/linker_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/back/linker_md.c 2014-07-15 21:49:30.000000000 -0700 @@ -39,33 +39,27 @@ #include "path_md.h" @@ -95714,7 +104094,7 @@ const int pnamelen = pname ? (int)strlen(pname) : 0; --- ./jdk/src/windows/bin/cmdtoargs.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/windows/bin/cmdtoargs.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/bin/cmdtoargs.c 2014-07-15 21:49:30.000000000 -0700 @@ -53,6 +53,16 @@ static StdArg *stdargs; static int stdargc; @@ -95873,7 +104253,7 @@ } *dest = 0; --- ./jdk/src/windows/bin/java_md.c 2013-09-06 11:29:12.000000000 -0700 -+++ ./jdk/src/windows/bin/java_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/bin/java_md.c 2014-07-15 21:54:46.000000000 -0700 @@ -1301,6 +1301,14 @@ /* save path length */ jrePathLen = JLI_StrLen(libraryPath); @@ -95890,7 +104270,7 @@ LoadMSVCRT(); --- ./jdk/src/windows/classes/java/lang/ProcessImpl.java 2013-09-06 11:29:13.000000000 -0700 -+++ ./jdk/src/windows/classes/java/lang/ProcessImpl.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/java/lang/ProcessImpl.java 2014-07-15 21:49:30.000000000 -0700 @@ -457,8 +457,10 @@ /** @@ -95913,7 +104293,7 @@ String dir, long[] stdHandles, --- ./jdk/src/windows/classes/java/net/DualStackPlainSocketImpl.java 2013-09-06 11:29:13.000000000 -0700 -+++ ./jdk/src/windows/classes/java/net/DualStackPlainSocketImpl.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/java/net/DualStackPlainSocketImpl.java 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved. @@ -95933,7 +104313,7 @@ void socketShutdown(int howto) throws IOException { --- ./jdk/src/windows/classes/java/net/PlainSocketImpl.java 2013-09-06 11:29:13.000000000 -0700 -+++ ./jdk/src/windows/classes/java/net/PlainSocketImpl.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/java/net/PlainSocketImpl.java 2014-07-15 21:49:30.000000000 -0700 @@ -191,14 +191,17 @@ } @@ -95961,7 +104341,7 @@ void setFileDescriptor(FileDescriptor fd) { --- ./jdk/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java 2013-09-06 11:29:13.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java 2014-07-15 21:54:46.000000000 -0700 @@ -583,11 +583,18 @@ // Needs to be accessible to Win32ShellFolderManager2 @@ -95983,7 +104363,7 @@ // NOTE: this method uses COM and must be called on the 'COM thread'. See ComInvoker for the details --- ./jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java 2013-09-06 11:29:13.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java 2014-07-15 21:54:46.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. @@ -96078,7 +104458,7 @@ return comThread; } --- ./jdk/src/windows/classes/sun/awt/windows/ThemeReader.java 2013-09-06 11:29:13.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/awt/windows/ThemeReader.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/awt/windows/ThemeReader.java 2014-07-15 21:54:46.000000000 -0700 @@ -56,18 +56,12 @@ new ReentrantReadWriteLock(); private static final Lock readLock = readWriteLock.readLock(); @@ -96128,7 +104508,7 @@ Long theme = widgetToTheme.get(widget); if (theme == null) { --- ./jdk/src/windows/classes/sun/awt/windows/WClipboard.java 2013-09-06 11:29:13.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/awt/windows/WClipboard.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/awt/windows/WClipboard.java 2014-07-15 21:49:30.000000000 -0700 @@ -63,7 +63,6 @@ } @@ -96147,7 +104527,7 @@ openClipboard(this); --- ./jdk/src/windows/classes/sun/awt/windows/WPrinterJob.java 2013-09-06 11:29:13.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/awt/windows/WPrinterJob.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/awt/windows/WPrinterJob.java 2014-07-15 21:49:30.000000000 -0700 @@ -179,6 +179,7 @@ private static final int SET_RES_LOW = 0x00000080; private static final int SET_COLOR = 0x00000200; @@ -96534,7 +104914,7 @@ class PrintToFileErrorDialog extends Dialog implements ActionListener{ public PrintToFileErrorDialog(Frame parent, String title, String message, --- ./jdk/src/windows/classes/sun/awt/windows/WToolkit.java 2013-09-06 11:29:13.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/awt/windows/WToolkit.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/awt/windows/WToolkit.java 2014-10-28 20:19:51.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. @@ -96636,7 +105016,7 @@ private synchronized void updateProperties() { --- ./jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2013-09-06 11:29:13.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java 2014-07-15 21:54:46.000000000 -0700 @@ -421,6 +421,7 @@ */ public static long[] getActiveWindowHandles() { @@ -96646,7 +105026,7 @@ List l = (List)appContext.get(ACTIVE_WINDOWS_KEY); if (l == null) { --- ./jdk/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java 2013-09-06 11:29:13.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/java2d/d3d/D3DScreenUpdateManager.java 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. @@ -96746,7 +105126,7 @@ } else { wakeUpUpdateThread(); --- ./jdk/src/windows/classes/sun/net/PortConfig.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/src/windows/classes/sun/net/PortConfig.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/net/PortConfig.java 2014-07-15 21:49:30.000000000 -0700 @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -96814,7 +105194,7 @@ + } +} --- ./jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java 2013-09-06 11:29:14.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousFileChannelImpl.java 2014-07-15 21:49:30.000000000 -0700 @@ -230,6 +230,7 @@ @Override public void run() { @@ -96845,7 +105225,7 @@ } --- ./jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java 2013-09-06 11:29:14.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/nio/ch/WindowsAsynchronousSocketChannelImpl.java 2014-07-15 21:49:30.000000000 -0700 @@ -31,6 +31,9 @@ import java.net.*; import java.util.concurrent.*; @@ -96891,7 +105271,7 @@ bindException = x; } --- ./jdk/src/windows/classes/sun/nio/fs/WindowsConstants.java 2013-09-06 11:29:14.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/nio/fs/WindowsConstants.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/nio/fs/WindowsConstants.java 2014-07-15 21:49:30.000000000 -0700 @@ -100,6 +100,7 @@ public static final int ERROR_INVALID_LEVEL = 124; public static final int ERROR_DIR_NOT_EMPTY = 145; @@ -96901,7 +105281,7 @@ public static final int ERROR_NOTIFY_ENUM_DIR = 1022; public static final int ERROR_NONE_MAPPED = 1332; --- ./jdk/src/windows/classes/sun/nio/fs/WindowsNativeDispatcher.java 2013-09-06 11:29:14.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/nio/fs/WindowsNativeDispatcher.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/nio/fs/WindowsNativeDispatcher.java 2014-07-15 21:49:30.000000000 -0700 @@ -973,19 +973,19 @@ * HANDLE CreateIoCompletionPort ( * HANDLE FileHandle, @@ -96956,7 +105336,7 @@ /** * ReadDirectoryChangesW( --- ./jdk/src/windows/classes/sun/nio/fs/WindowsWatchService.java 2013-09-06 11:29:14.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/nio/fs/WindowsWatchService.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/nio/fs/WindowsWatchService.java 2014-07-15 21:49:30.000000000 -0700 @@ -41,6 +41,7 @@ class WindowsWatchService extends AbstractWatchService @@ -97203,7 +105583,7 @@ key.signal(); } --- ./jdk/src/windows/classes/sun/print/Win32MediaTray.java 2013-09-06 11:29:14.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/print/Win32MediaTray.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/print/Win32MediaTray.java 2014-07-15 21:49:30.000000000 -0700 @@ -70,6 +70,10 @@ winEnumTable.add(this); } @@ -97216,7 +105596,7 @@ "Manual-Envelope", "Automatic-Feeder", --- ./jdk/src/windows/classes/sun/print/Win32PrintService.java 2013-09-06 11:29:14.000000000 -0700 -+++ ./jdk/src/windows/classes/sun/print/Win32PrintService.java 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/print/Win32PrintService.java 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. @@ -97605,8 +105985,143 @@ } } } +--- ./jdk/src/windows/classes/sun/security/mscapi/RSACipher.java 2013-09-06 11:29:14.000000000 -0700 ++++ ./jdk/src/windows/classes/sun/security/mscapi/RSACipher.java 2014-10-28 20:19:51.000000000 -0700 +@@ -35,6 +35,8 @@ + import javax.crypto.spec.*; + + import sun.security.rsa.RSAKeyFactory; ++import sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec; ++import sun.security.util.KeyUtil; + + /** + * RSA cipher implementation using the Microsoft Crypto API. +@@ -92,9 +94,16 @@ + + // the public key, if we were initialized using a public key + private sun.security.mscapi.Key publicKey; ++ + // the private key, if we were initialized using a private key + private sun.security.mscapi.Key privateKey; + ++ // cipher parameter for TLS RSA premaster secret ++ private AlgorithmParameterSpec spec = null; ++ ++ // the source of randomness ++ private SecureRandom random; ++ + public RSACipher() { + paddingType = PAD_PKCS1; + } +@@ -155,8 +164,12 @@ + throws InvalidKeyException, InvalidAlgorithmParameterException { + + if (params != null) { +- throw new InvalidAlgorithmParameterException +- ("Parameters not supported"); ++ if (!(params instanceof TlsRsaPremasterSecretParameterSpec)) { ++ throw new InvalidAlgorithmParameterException( ++ "Parameters not supported"); ++ } ++ spec = params; ++ this.random = random; // for TLS RSA premaster secret + } + init(opmode, key); + } +@@ -356,39 +369,47 @@ + } + + // see JCE spec +- protected java.security.Key engineUnwrap(byte[] wrappedKey, String algorithm, ++ protected java.security.Key engineUnwrap(byte[] wrappedKey, ++ String algorithm, + int type) throws InvalidKeyException, NoSuchAlgorithmException { + + if (wrappedKey.length > buffer.length) { + throw new InvalidKeyException("Key is too long for unwrapping"); + } +- update(wrappedKey, 0, wrappedKey.length); + +- try { +- byte[] encoding = doFinal(); +- +- switch (type) { +- case Cipher.PUBLIC_KEY: +- return constructPublicKey(encoding, algorithm); +- +- case Cipher.PRIVATE_KEY: +- return constructPrivateKey(encoding, algorithm); +- +- case Cipher.SECRET_KEY: +- return constructSecretKey(encoding, algorithm); +- +- default: +- throw new InvalidKeyException("Unknown key type " + type); +- } ++ boolean isTlsRsaPremasterSecret = ++ algorithm.equals("TlsRsaPremasterSecret"); ++ Exception failover = null; ++ byte[] encoded = null; + ++ update(wrappedKey, 0, wrappedKey.length); ++ try { ++ encoded = doFinal(); + } catch (BadPaddingException e) { +- // should not occur +- throw new InvalidKeyException("Unwrapping failed", e); +- ++ if (isTlsRsaPremasterSecret) { ++ failover = e; ++ } else { ++ throw new InvalidKeyException("Unwrapping failed", e); ++ } + } catch (IllegalBlockSizeException e) { + // should not occur, handled with length check above + throw new InvalidKeyException("Unwrapping failed", e); + } ++ ++ if (isTlsRsaPremasterSecret) { ++ if (!(spec instanceof TlsRsaPremasterSecretParameterSpec)) { ++ throw new IllegalStateException( ++ "No TlsRsaPremasterSecretParameterSpec specified"); ++ } ++ ++ // polish the TLS premaster secret ++ encoded = KeyUtil.checkTlsPreMasterSecretKey( ++ ((TlsRsaPremasterSecretParameterSpec)spec).getClientVersion(), ++ ((TlsRsaPremasterSecretParameterSpec)spec).getServerVersion(), ++ random, encoded, (failover != null)); ++ } ++ ++ return constructKey(encoded, algorithm, type); + } + + // see JCE spec +@@ -452,6 +473,22 @@ + return new SecretKeySpec(encodedKey, encodedKeyAlgorithm); + } + ++ private static Key constructKey(byte[] encodedKey, ++ String encodedKeyAlgorithm, ++ int keyType) throws InvalidKeyException, NoSuchAlgorithmException { ++ ++ switch (keyType) { ++ case Cipher.PUBLIC_KEY: ++ return constructPublicKey(encodedKey, encodedKeyAlgorithm); ++ case Cipher.PRIVATE_KEY: ++ return constructPrivateKey(encodedKey, encodedKeyAlgorithm); ++ case Cipher.SECRET_KEY: ++ return constructSecretKey(encodedKey, encodedKeyAlgorithm); ++ default: ++ throw new InvalidKeyException("Unknown key type " + keyType); ++ } ++ } ++ + /* + * Encrypt/decrypt a data buffer using Microsoft Crypto API with HCRYPTKEY. + * It expects and returns ciphertext data in big-endian form. --- ./jdk/src/windows/demo/jvmti/hprof/hprof_md.c 2013-09-06 11:29:14.000000000 -0700 -+++ ./jdk/src/windows/demo/jvmti/hprof/hprof_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/demo/jvmti/hprof/hprof_md.c 2014-07-15 21:49:30.000000000 -0700 @@ -368,37 +368,32 @@ } @@ -97662,7 +106177,7 @@ int pnamelen; --- ./jdk/src/windows/native/java/lang/ProcessImpl_md.c 2013-09-06 11:29:15.000000000 -0700 -+++ ./jdk/src/windows/native/java/lang/ProcessImpl_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/java/lang/ProcessImpl_md.c 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. @@ -98160,7 +106675,7 @@ JNIEXPORT jint JNICALL --- ./jdk/src/windows/native/java/lang/java_props_md.c 2013-09-06 11:29:15.000000000 -0700 -+++ ./jdk/src/windows/native/java/lang/java_props_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/java/lang/java_props_md.c 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. @@ -98184,8 +106699,122 @@ default: sprops.os_name = "Windows NT (unknown)"; } } +--- ./jdk/src/windows/native/java/net/AbstractPlainDatagramSocketImpl.c 1969-12-31 16:00:00.000000000 -0800 ++++ ./jdk/src/windows/native/java/net/AbstractPlainDatagramSocketImpl.c 2014-10-28 20:19:45.000000000 -0700 +@@ -0,0 +1,111 @@ ++/* ++ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. ++ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. ++ * ++ * This code is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License version 2 only, as ++ * published by the Free Software Foundation. Oracle designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Oracle in the LICENSE file that accompanied this code. ++ * ++ * This code is distributed in the hope that it will be useful, but WITHOUT ++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * version 2 for more details (a copy is included in the LICENSE file that ++ * accompanied this code). ++ * ++ * You should have received a copy of the GNU General Public License version ++ * 2 along with this work; if not, write to the Free Software Foundation, ++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA ++ * or visit www.oracle.com if you need additional information or have any ++ * questions. ++ */ ++ ++#include ++#include ++ ++#include "jvm.h" ++#include "jni_util.h" ++#include "net_util.h" ++ ++#include "java_net_AbstractPlainDatagramSocketImpl.h" ++ ++static jfieldID IO_fd_fdID = NULL; ++static jfieldID apdsi_fdID = NULL; ++ ++static jfieldID apdsi_fd1ID = NULL; ++static jclass two_stacks_clazz = NULL; ++ ++ ++/* ++ * Class: java_net_AbstractPlainDatagramSocketImpl ++ * Method: init ++ * Signature: ()V ++ */ ++JNIEXPORT void JNICALL ++Java_java_net_AbstractPlainDatagramSocketImpl_init(JNIEnv *env, jclass cls) { ++ ++ apdsi_fdID = (*env)->GetFieldID(env, cls, "fd", ++ "Ljava/io/FileDescriptor;"); ++ CHECK_NULL(apdsi_fdID); ++ IO_fd_fdID = NET_GetFileDescriptorID(env); ++ CHECK_NULL(IO_fd_fdID); ++ ++ two_stacks_clazz = (*env)->FindClass(env, "java/net/TwoStacksPlainDatagramSocketImpl"); ++ CHECK_NULL(two_stacks_clazz); ++ ++ /* Handle both TwoStacks and DualStack here */ ++ ++ if (JNU_Equals(env, cls, two_stacks_clazz)) { ++ /* fd1 present only in TwoStack.. */ ++ apdsi_fd1ID = (*env)->GetFieldID(env, cls, "fd1", ++ "Ljava/io/FileDescriptor;"); ++ CHECK_NULL(apdsi_fd1ID); ++ } ++} ++ ++/* ++ * Class: java_net_AbstractPlainDatagramSocketImpl ++ * Method: dataAvailable ++ * Signature: ()I ++ */ ++JNIEXPORT jint JNICALL Java_java_net_AbstractPlainDatagramSocketImpl_dataAvailable ++(JNIEnv *env, jobject this) { ++ SOCKET fd; ++ SOCKET fd1; ++ int rv = -1, rv1 = -1; ++ jobject fdObj = (*env)->GetObjectField(env, this, apdsi_fdID); ++ ++ if (!IS_NULL(fdObj)) { ++ int retval = 0; ++ fd = (SOCKET)(*env)->GetIntField(env, fdObj, IO_fd_fdID); ++ rv = ioctlsocket(fd, FIONREAD, &retval); ++ if (retval > 0) { ++ return retval; ++ } ++ } ++ ++ if (!IS_NULL(apdsi_fd1ID)) { ++ /* TwoStacks */ ++ jobject fd1Obj = (*env)->GetObjectField(env, this, apdsi_fd1ID); ++ if (!IS_NULL(fd1Obj)) { ++ int retval = 0; ++ fd1 = (SOCKET)(*env)->GetIntField(env, fd1Obj, IO_fd_fdID); ++ rv1 = ioctlsocket(fd1, FIONREAD, &retval); ++ if (retval > 0) { ++ return retval; ++ } ++ } ++ } ++ ++ if (rv < 0 && rv1 < 0) { ++ JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", ++ "Socket closed"); ++ return -1; ++ } ++ ++ return 0; ++} ++ --- ./jdk/src/windows/native/java/net/Inet6AddressImpl.c 2013-09-06 11:29:15.000000000 -0700 -+++ ./jdk/src/windows/native/java/net/Inet6AddressImpl.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/java/net/Inet6AddressImpl.c 2014-07-15 21:49:30.000000000 -0700 @@ -77,7 +77,6 @@ static jclass ni_ia6cls; static jmethodID ni_ia4ctrID; @@ -98235,7 +106864,7 @@ (*env)->SetObjectArrayElement(env, ret, inet6Index, iaObj); inet6Index ++; --- ./jdk/src/windows/native/java/net/NetworkInterface.c 2013-09-06 11:29:15.000000000 -0700 -+++ ./jdk/src/windows/native/java/net/NetworkInterface.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/java/net/NetworkInterface.c 2014-07-15 21:49:30.000000000 -0700 @@ -72,8 +72,6 @@ jclass ni_ia6cls; /* Inet6Address */ @@ -98279,8 +106908,57 @@ if (ibObj == NULL) { free_netaddr(netaddrP); --- ./jdk/src/windows/native/java/net/NetworkInterface_winXP.c 2013-09-06 11:29:15.000000000 -0700 -+++ ./jdk/src/windows/native/java/net/NetworkInterface_winXP.c 2014-07-15 23:24:38.000000000 -0700 -@@ -499,19 +499,15 @@ ++++ ./jdk/src/windows/native/java/net/NetworkInterface_winXP.c 2014-10-28 20:19:45.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -145,8 +145,12 @@ + ptr = adapterInfo; + ret = NULL; + while (ptr != NULL) { +- // IPv4 interface +- if (ptr->Ipv6IfIndex == index) { ++ // in theory the IPv4 index and the IPv6 index can be the same ++ // where an interface is enabled for v4 and v6 ++ // IfIndex == 0 IPv4 not available on this interface ++ // Ipv6IfIndex == 0 IPv6 not available on this interface ++ if (((ptr->IfIndex != 0)&&(ptr->IfIndex == index)) || ++ ((ptr->Ipv6IfIndex !=0) && (ptr->Ipv6IfIndex == index))) { + ret = (IP_ADAPTER_ADDRESSES *) malloc(sizeof(IP_ADAPTER_ADDRESSES)); + memcpy(ret, ptr, sizeof(IP_ADAPTER_ADDRESSES)); + } +@@ -241,7 +245,7 @@ + * set the index to the IPv6 index and add the + * IPv6 addresses + */ +- nif->index = ptr->Ipv6IfIndex; ++ nif->ipv6Index = ptr->Ipv6IfIndex; + c = getAddrsFromAdapter(ptr, &nif->addrs); + nif->naddrs += c; + break; +@@ -286,6 +290,9 @@ + strcpy (nif->name, newname); + wcscpy ((PWCHAR)nif->displayName, ptr->FriendlyName); + nif->dNameIsUnicode = TRUE; ++ ++ // the java.net.NetworkInterface abstraction only has index ++ // so the Ipv6IfIndex needs to map onto index + nif->index = ptr->Ipv6IfIndex; + nif->ipv6Index = ptr->Ipv6IfIndex; + nif->hasIpv6Address = TRUE; +@@ -442,7 +449,6 @@ + (*env)->SetObjectField(env, netifObj, ni_nameID, name); + (*env)->SetObjectField(env, netifObj, ni_displayNameID, displayName); + (*env)->SetIntField(env, netifObj, ni_indexID, ifs->index); +- + /* + * Get the IP addresses for this interface if necessary + * Note that 0 is a valid number of addresses. +@@ -499,19 +505,15 @@ int scope; iaObj = (*env)->NewObject(env, ni_ia6cls, ni_ia6ctrID); if (iaObj) { @@ -98305,7 +106983,7 @@ if (ibObj == NULL) { free_netaddr(netaddrP); --- ./jdk/src/windows/native/java/net/SocketInputStream.c 2013-09-06 11:29:15.000000000 -0700 -+++ ./jdk/src/windows/native/java/net/SocketInputStream.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/java/net/SocketInputStream.c 2014-07-15 21:49:30.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved. @@ -98374,7 +107052,7 @@ } } --- ./jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c 2013-09-06 11:29:15.000000000 -0700 -+++ ./jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/java/net/TwoStacksPlainSocketImpl.c 2014-07-15 21:49:30.000000000 -0700 @@ -728,7 +728,6 @@ setInetAddress_family(env, socketAddressObj, IPv4); (*env)->SetObjectField(env, socket, psi_addressID, socketAddressObj); @@ -98398,7 +107076,7 @@ /* fields common to AF_INET and AF_INET6 */ --- ./jdk/src/windows/native/java/net/net_util_md.c 2013-09-06 11:29:15.000000000 -0700 -+++ ./jdk/src/windows/native/java/net/net_util_md.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/java/net/net_util_md.c 2014-07-15 21:49:30.000000000 -0700 @@ -851,7 +851,6 @@ family = (iafam == IPv4)? AF_INET : AF_INET6; if (ipv6_available() && !(family == AF_INET && v4MappedAddress == JNI_FALSE)) { @@ -98420,8 +107098,42 @@ } memset((char *)him6, 0, sizeof(struct SOCKADDR_IN6)); +--- ./jdk/src/windows/native/sun/awt/splashscreen/splashscreen_sys.c 2013-09-06 11:29:15.000000000 -0700 ++++ ./jdk/src/windows/native/sun/awt/splashscreen/splashscreen_sys.c 2014-10-28 20:19:45.000000000 -0700 +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 2005, 2014, 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 +@@ -213,6 +213,14 @@ + void + SplashRedrawWindow(Splash * splash) + { ++ if (!SplashIsStillLooping(splash)) { ++ KillTimer(splash->hWnd, 0); ++ } ++ ++ if (splash->currentFrame < 0) { ++ return; ++ } ++ + SplashUpdateScreenData(splash); + if (splash->isLayered) { + BLENDFUNCTION bf; +@@ -303,9 +311,6 @@ + time = 0; + SetTimer(splash->hWnd, 0, time, NULL); + } +- else { +- KillTimer(splash->hWnd, 0); +- } + } + + void SplashReconfigureNow(Splash * splash) { --- ./jdk/src/windows/native/sun/font/fontpath.c 2013-09-06 11:29:15.000000000 -0700 -+++ ./jdk/src/windows/native/sun/font/fontpath.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/sun/font/fontpath.c 2014-07-15 21:49:30.000000000 -0700 @@ -185,6 +185,12 @@ return 0; } @@ -98516,7 +107228,7 @@ + screenDC = NULL; } --- ./jdk/src/windows/native/sun/net/portconfig.c 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/src/windows/native/sun/net/portconfig.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/sun/net/portconfig.c 2014-07-15 21:49:30.000000000 -0700 @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -98625,7 +107337,7 @@ +} +#endif --- ./jdk/src/windows/native/sun/nio/ch/SocketDispatcher.c 2013-09-06 11:29:15.000000000 -0700 -+++ ./jdk/src/windows/native/sun/nio/ch/SocketDispatcher.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/sun/nio/ch/SocketDispatcher.c 2014-07-15 21:49:30.000000000 -0700 @@ -192,45 +192,66 @@ jobject fdo, jlong address, jint len) { @@ -98725,7 +107437,7 @@ JNIEXPORT void JNICALL --- ./jdk/src/windows/native/sun/nio/fs/WindowsNativeDispatcher.c 2013-09-06 11:29:15.000000000 -0700 -+++ ./jdk/src/windows/native/sun/nio/fs/WindowsNativeDispatcher.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/sun/nio/fs/WindowsNativeDispatcher.c 2014-07-15 21:49:31.000000000 -0700 @@ -162,7 +162,7 @@ } completionStatus_error = (*env)->GetFieldID(env, clazz, "error", "I"); @@ -98796,7 +107508,7 @@ (LPVOID)jlong_to_ptr(bufferAddress), (DWORD)bufferLength, --- ./jdk/src/windows/native/sun/security/krb5/NativeCreds.c 2013-09-06 11:29:15.000000000 -0700 -+++ ./jdk/src/windows/native/sun/security/krb5/NativeCreds.c 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/sun/security/krb5/NativeCreds.c 2014-07-15 21:49:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. @@ -98955,7 +107667,7 @@ // clean up resources if (TktCacheResponse != NULL) { --- ./jdk/src/windows/native/sun/windows/awt_Component.cpp 2013-09-06 11:29:16.000000000 -0700 -+++ ./jdk/src/windows/native/sun/windows/awt_Component.cpp 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/sun/windows/awt_Component.cpp 2014-07-15 21:54:46.000000000 -0700 @@ -1719,9 +1719,11 @@ case WM_IME_SETCONTEXT: // lParam is passed as pointer and it can be modified. @@ -98978,7 +107690,7 @@ mr = mrConsume; } --- ./jdk/src/windows/native/sun/windows/awt_FileDialog.cpp 2013-09-06 11:29:16.000000000 -0700 -+++ ./jdk/src/windows/native/sun/windows/awt_FileDialog.cpp 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/sun/windows/awt_FileDialog.cpp 2014-07-15 21:49:31.000000000 -0700 @@ -372,7 +372,9 @@ // Report result to peer. @@ -98991,7 +107703,7 @@ env->SetCharArrayRegion(jnames, 0, length, (jchar*)ofn.lpstrFile); --- ./jdk/src/windows/native/sun/windows/awt_Frame.cpp 2013-09-06 11:29:16.000000000 -0700 -+++ ./jdk/src/windows/native/sun/windows/awt_Frame.cpp 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/sun/windows/awt_Frame.cpp 2014-07-15 21:54:46.000000000 -0700 @@ -319,6 +319,8 @@ case WM_IME_STARTCOMPOSITION: case WM_IME_ENDCOMPOSITION: @@ -99002,7 +107714,7 @@ case WM_IME_COMPOSITIONFULL: case WM_IME_SELECT: --- ./jdk/src/windows/native/sun/windows/awt_PrintControl.cpp 2013-09-06 11:29:16.000000000 -0700 -+++ ./jdk/src/windows/native/sun/windows/awt_PrintControl.cpp 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/sun/windows/awt_PrintControl.cpp 2014-07-15 21:49:31.000000000 -0700 @@ -81,6 +81,7 @@ jmethodID AwtPrintControl::setNativeAttID; jmethodID AwtPrintControl::setRangeCopiesID; @@ -99031,7 +107743,7 @@ CATCH_BAD_ALLOC; --- ./jdk/src/windows/native/sun/windows/awt_PrintControl.h 2013-09-06 11:29:16.000000000 -0700 -+++ ./jdk/src/windows/native/sun/windows/awt_PrintControl.h 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/sun/windows/awt_PrintControl.h 2014-07-15 21:49:31.000000000 -0700 @@ -47,7 +47,6 @@ static jmethodID setDevmodeID; static jmethodID getDevnamesID; @@ -99049,7 +107761,7 @@ static void initIDs(JNIEnv *env, jclass cls); static BOOL FindPrinter(jstring printerName, LPBYTE pPrinterEnum, --- ./jdk/src/windows/native/sun/windows/awt_PrintJob.cpp 2013-09-06 11:29:16.000000000 -0700 -+++ ./jdk/src/windows/native/sun/windows/awt_PrintJob.cpp 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/sun/windows/awt_PrintJob.cpp 2014-07-15 21:49:31.000000000 -0700 @@ -329,6 +329,156 @@ static int embolden(int currentWeight); static BOOL getPrintableArea(HDC pdc, HANDLE hDevMode, RectDouble *margin); @@ -99247,7 +107959,7 @@ CATCH_BAD_ALLOC; --- ./jdk/src/windows/native/sun/windows/awt_Toolkit.cpp 2013-09-06 11:29:17.000000000 -0700 -+++ ./jdk/src/windows/native/sun/windows/awt_Toolkit.cpp 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/native/sun/windows/awt_Toolkit.cpp 2014-07-15 21:49:31.000000000 -0700 @@ -365,6 +365,7 @@ HANDLE hCompleted; @@ -99296,7 +108008,7 @@ return result ? JNI_TRUE : JNI_FALSE; } --- ./jdk/src/windows/resource/java.manifest 2013-09-06 11:29:17.000000000 -0700 -+++ ./jdk/src/windows/resource/java.manifest 2014-07-15 23:24:38.000000000 -0700 ++++ ./jdk/src/windows/resource/java.manifest 2014-07-15 21:49:31.000000000 -0700 @@ -44,9 +44,15 @@ @@ -99316,7 +108028,7 @@ --- ./jdk/test/Makefile 2013-09-06 11:29:17.000000000 -0700 -+++ ./jdk/test/Makefile 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/Makefile 2014-10-28 20:19:52.000000000 -0700 @@ -79,6 +79,11 @@ endif OS_VERSION := $(shell $(UNAME) -r) @@ -99330,7 +108042,7 @@ OS_NAME = macosx OS_ARCH := $(shell $(UNAME) -m) --- ./jdk/test/ProblemList.txt 2013-09-06 11:29:17.000000000 -0700 -+++ ./jdk/test/ProblemList.txt 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/ProblemList.txt 2014-07-15 21:49:31.000000000 -0700 @@ -369,15 +369,6 @@ # 7147060 com/sun/org/apache/xml/internal/security/transforms/ClassLoaderTest.java generic-all @@ -99358,7 +108070,7 @@ --- ./jdk/test/com/apple/eawt/DefaultMenuBar/DefaultMenuBarTest.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/test/com/apple/eawt/DefaultMenuBar/DefaultMenuBarTest.java 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/apple/eawt/DefaultMenuBar/DefaultMenuBarTest.java 2014-07-15 21:49:31.000000000 -0700 @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -99469,7 +108181,7 @@ + } +} --- ./jdk/test/com/sun/corba/se/impl/orb/SetDefaultORBTest.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/test/com/sun/corba/se/impl/orb/SetDefaultORBTest.java 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/corba/se/impl/orb/SetDefaultORBTest.java 2014-07-15 21:49:31.000000000 -0700 @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -99533,7 +108245,7 @@ + } +} --- ./jdk/test/com/sun/corba/transport/KeepAliveSockets.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/test/com/sun/corba/transport/KeepAliveSockets.java 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/corba/transport/KeepAliveSockets.java 2014-07-15 21:49:31.000000000 -0700 @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -99604,7 +108316,7 @@ + +} --- ./jdk/test/com/sun/crypto/provider/TLS/TestLeadingZeroes.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/test/com/sun/crypto/provider/TLS/TestLeadingZeroes.java 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/crypto/provider/TLS/TestLeadingZeroes.java 2014-07-15 21:49:31.000000000 -0700 @@ -0,0 +1,420 @@ +/* + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -100026,8 +108738,85 @@ + }; +} + +--- ./jdk/test/com/sun/crypto/provider/TLS/TestPremaster.java 2013-09-06 11:29:18.000000000 -0700 ++++ ./jdk/test/com/sun/crypto/provider/TLS/TestPremaster.java 2014-10-28 20:19:45.000000000 -0700 +@@ -33,6 +33,7 @@ + + import javax.crypto.KeyGenerator; + import javax.crypto.SecretKey; ++import java.util.Formatter; + + import sun.security.internal.spec.TlsRsaPremasterSecretParameterSpec; + +@@ -52,27 +53,51 @@ + System.out.println("OK: " + e); + } + +- test(kg, 3, 0); +- test(kg, 3, 1); +- test(kg, 3, 2); +- test(kg, 4, 0); ++ int[] protocolVersions = {0x0300, 0x0301, 0x0302, 0x0400}; ++ for (int clientVersion : protocolVersions) { ++ for (int serverVersion : protocolVersions) { ++ test(kg, clientVersion, serverVersion); ++ if (serverVersion >= clientVersion) { ++ break; ++ } ++ } ++ } + + System.out.println("Done."); + } + +- private static void test(KeyGenerator kg, int major, int minor) +- throws Exception { ++ private static void test(KeyGenerator kg, ++ int clientVersion, int serverVersion) throws Exception { ++ ++ System.out.printf( ++ "Testing RSA pre-master secret key generation between " + ++ "client (0x%04X) and server(0x%04X)%n", ++ clientVersion, serverVersion); ++ kg.init(new TlsRsaPremasterSecretParameterSpec( ++ clientVersion, serverVersion)); + +- kg.init(new TlsRsaPremasterSecretParameterSpec(major, minor)); + SecretKey key = kg.generateKey(); + byte[] encoded = key.getEncoded(); +- if (encoded.length != 48) { +- throw new Exception("length: " + encoded.length); +- } +- if ((encoded[0] != major) || (encoded[1] != minor)) { +- throw new Exception("version mismatch: " + encoded[0] + +- "." + encoded[1]); +- } +- System.out.println("OK: " + major + "." + minor); ++ if (encoded != null) { // raw key material may be not extractable ++ if (encoded.length != 48) { ++ throw new Exception("length: " + encoded.length); ++ } ++ int v = versionOf(encoded[0], encoded[1]); ++ if (clientVersion != v) { ++ if (serverVersion != v || clientVersion >= 0x0302) { ++ throw new Exception(String.format( ++ "version mismatch: (0x%04X) rather than (0x%04X) " + ++ "is used in pre-master secret", v, clientVersion)); ++ } ++ System.out.printf("Use compatible version (0x%04X)%n", v); ++ } ++ System.out.println("Passed, version matches!"); ++ } else { ++ System.out.println("Raw key material is not extractable"); ++ } ++ } ++ ++ private static int versionOf(int major, int minor) { ++ return ((major & 0xFF) << 8) | (minor & 0xFF); + } + } --- ./jdk/test/com/sun/jdi/ImmutableResourceTest.sh 2013-09-06 11:29:18.000000000 -0700 -+++ ./jdk/test/com/sun/jdi/ImmutableResourceTest.sh 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/jdi/ImmutableResourceTest.sh 2014-10-28 20:19:52.000000000 -0700 @@ -56,7 +56,7 @@ OS=`uname -s` @@ -100038,7 +108827,7 @@ ;; --- ./jdk/test/com/sun/jdi/JITDebug.sh 2013-09-06 11:29:18.000000000 -0700 -+++ ./jdk/test/com/sun/jdi/JITDebug.sh 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/jdi/JITDebug.sh 2014-10-28 20:19:52.000000000 -0700 @@ -63,7 +63,7 @@ OS=`uname -s` export TRANSPORT_METHOD @@ -100049,7 +108838,7 @@ TRANSPORT_METHOD=dt_socket ;; --- ./jdk/test/com/sun/jdi/PrivateTransportTest.sh 2013-09-06 11:29:18.000000000 -0700 -+++ ./jdk/test/com/sun/jdi/PrivateTransportTest.sh 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/jdi/PrivateTransportTest.sh 2014-10-28 20:19:52.000000000 -0700 @@ -123,7 +123,7 @@ esac libloc=${jreloc}/lib/${libarch} @@ -100060,7 +108849,7 @@ libloc=`dirname ${xx}` ;; --- ./jdk/test/com/sun/jdi/ShellScaffold.sh 2013-09-06 11:29:19.000000000 -0700 -+++ ./jdk/test/com/sun/jdi/ShellScaffold.sh 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/jdi/ShellScaffold.sh 2014-10-28 20:19:52.000000000 -0700 @@ -293,7 +293,7 @@ psCmd=ps jstack=jstack.exe @@ -100071,7 +108860,7 @@ address= devnull=/dev/null --- ./jdk/test/com/sun/jdi/Solaris32AndSolaris64Test.sh 2013-09-06 11:29:19.000000000 -0700 -+++ ./jdk/test/com/sun/jdi/Solaris32AndSolaris64Test.sh 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/jdi/Solaris32AndSolaris64Test.sh 2014-10-28 20:19:52.000000000 -0700 @@ -112,7 +112,7 @@ fi ;; @@ -100082,7 +108871,7 @@ ;; --- ./jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh 2013-09-06 11:29:19.000000000 -0700 -+++ ./jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/jdi/connect/spi/JdiLoadedByCustomLoader.sh 2014-10-28 20:19:52.000000000 -0700 @@ -45,7 +45,7 @@ OS=`uname -s` @@ -100093,7 +108882,7 @@ ;; Windows* | CYGWIN*) --- ./jdk/test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh 2013-09-06 11:29:19.000000000 -0700 -+++ ./jdk/test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/management/OperatingSystemMXBean/TestTotalSwap.sh 2014-10-28 20:19:52.000000000 -0700 @@ -72,6 +72,16 @@ done } @@ -100122,7 +108911,7 @@ # $ sysctl -n vm.swapusage # total = 8192.00M used = 7471.11M free = 720.89M (encrypted) --- ./jdk/test/com/sun/management/UnixOperatingSystemMXBean/GetMaxFileDescriptorCount.sh 2013-09-06 11:29:19.000000000 -0700 -+++ ./jdk/test/com/sun/management/UnixOperatingSystemMXBean/GetMaxFileDescriptorCount.sh 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/management/UnixOperatingSystemMXBean/GetMaxFileDescriptorCount.sh 2014-10-28 20:19:52.000000000 -0700 @@ -48,7 +48,7 @@ # Test GetMaxFileDescriptorCount if we are running on Unix @@ -100133,7 +108922,7 @@ ;; * ) --- ./jdk/test/com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.sh 2013-09-06 11:29:19.000000000 -0700 -+++ ./jdk/test/com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.sh 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/management/UnixOperatingSystemMXBean/GetOpenFileDescriptorCount.sh 2014-10-28 20:19:52.000000000 -0700 @@ -48,7 +48,7 @@ # Test GetOpenFileDescriptorCount if we are running on Unix @@ -100144,7 +108933,7 @@ ;; * ) --- ./jdk/test/com/sun/nio/sctp/SctpChannel/ReceiveIntoDirect.java 1969-12-31 16:00:00.000000000 -0800 -+++ ./jdk/test/com/sun/nio/sctp/SctpChannel/ReceiveIntoDirect.java 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/nio/sctp/SctpChannel/ReceiveIntoDirect.java 2014-07-15 21:49:31.000000000 -0700 @@ -0,0 +1,276 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. @@ -100423,7 +109212,7 @@ + +} --- ./jdk/test/com/sun/tools/attach/CommonSetup.sh 2013-09-06 11:29:21.000000000 -0700 -+++ ./jdk/test/com/sun/tools/attach/CommonSetup.sh 2014-07-15 23:24:41.000000000 -0700 ++++ ./jdk/test/com/sun/tools/attach/CommonSetup.sh 2014-10-28 20:19:52.000000000 -0700 @@ -36,7 +36,7 @@ OS=`uname -s` @@ -100434,7 +109223,7 @@ FS="/" ;; --- ./jdk/test/java/awt/DataFlavor/MissedHtmlAndRtfBug/InterprocessMessages.java 2013-09-06 11:29:21.000000000 -0700 -+++ ./jdk/test/java/awt/DataFlavor/MissedHtmlAndRtfBug/InterprocessMessages.java 2014-07-15 23:24:39.000000000 -0700 ++++ ./jdk/test/java/awt/DataFlavor/MissedHtmlAndRtfBug/InterprocessMessages.java 2014-07-15 21:49:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. @@ -100450,7 +109239,7 @@ } --- ./jdk/test/java/awt/DataFlavor/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html 2013-09-06 11:29:21.000000000 -0700 -+++ ./jdk/test/java/awt/DataFlavor/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html 2014-07-15 23:24:39.000000000 -0700 ++++ ./jdk/test/java/awt/DataFlavor/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html 2014-07-15 21:49:31.000000000 -0700 @@ -1,18 +1,39 @@ -