Merge
authoramurillo
Wed, 14 Sep 2016 11:22:39 -0700
changeset 40970 2ea624c0ae04
parent 40969 482eb34be191 (current diff)
parent 40947 16ef1ab3108e (diff)
child 40971 82267ce6840f
Merge
jdk/src/java.base/share/classes/sun/text/resources/BreakIteratorRulesProvider.java
jdk/src/jdk.localedata/share/classes/sun/text/resources/thai_dict
jdk/test/ProblemList.txt
jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libnspr4.dll
jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libnspr4.lib
jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libplc4.dll
jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libplc4.lib
jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libplds4.dll
jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libplds4.lib
jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libnspr4.dll
jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libnspr4.lib
jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplc4.dll
jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplc4.lib
jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplds4.dll
jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplds4.lib
jdk/test/sun/security/pkcs11/nss/src/nss-3.16_nspr-4.10_src.tar.gz
jdk/test/sun/security/pkcs11/nss/src/nss-3.16_nspr-4.10_src.tar.gz.sha256
--- a/.hgtags	Sat Sep 10 12:18:34 2016 -0700
+++ b/.hgtags	Wed Sep 14 11:22:39 2016 -0700
@@ -377,3 +377,4 @@
 2e83d21d78cd9c1d52e6cd2599e9c8aa36ea1f52 jdk-9+132
 e17429a7e843c4a4ed3651458d0f950970edcbcc jdk-9+133
 a71210c0d9800eb6925b61ecd6198abd554f90ee jdk-9+134
+e384420383a5b79fa0012ebcb25d8f83cff7f777 jdk-9+135
--- a/.hgtags-top-repo	Sat Sep 10 12:18:34 2016 -0700
+++ b/.hgtags-top-repo	Wed Sep 14 11:22:39 2016 -0700
@@ -377,3 +377,4 @@
 a24702d4d5ab0015a5c553ed57f66fce7d85155e jdk-9+132
 be1218f792a450dfb5d4b1f82616b9d95a6a732e jdk-9+133
 065724348690eda41fc69112278d8da6dcde548c jdk-9+134
+82b94cb5f342319d2cda77f9fa59703ad7fde576 jdk-9+135
--- a/corba/.hgtags	Sat Sep 10 12:18:34 2016 -0700
+++ b/corba/.hgtags	Wed Sep 14 11:22:39 2016 -0700
@@ -377,3 +377,4 @@
 1ab4b9399c4cba584f66c1c088188f2f565fbf9c jdk-9+132
 2021bfedf1c478a4808a7711a6090682a12f4c0e jdk-9+133
 1a497f5ca0cfd88115cc7daa8af8a62b8741caf2 jdk-9+134
+094d0db606db976045f594dba47d4593b715cc81 jdk-9+135
--- a/hotspot/.hgtags	Sat Sep 10 12:18:34 2016 -0700
+++ b/hotspot/.hgtags	Wed Sep 14 11:22:39 2016 -0700
@@ -537,3 +537,4 @@
 713951c08aa26813375175c2ab6cc99ff2a56903 jdk-9+132
 a25e0fb6033245ab075136e744d362ce765464cd jdk-9+133
 b8b694c6b4d2ab0939aed7adaf0eec1ac321a085 jdk-9+134
+3b1c4562953db47e36b237a500f368d5c9746d47 jdk-9+135
--- a/jaxp/.hgtags	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/.hgtags	Wed Sep 14 11:22:39 2016 -0700
@@ -377,3 +377,4 @@
 907445d85e680ea410fe2c83c0ec64b5508e4f3e jdk-9+132
 9490ba2e5e41685c858a0ca2a6ec87611eb011c6 jdk-9+133
 1c6c21d87aa459d82425e1fddc9ce8647aebde34 jdk-9+134
+f695240370c77a25fed88225a392e7d530cb4d78 jdk-9+135
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,13 +1,14 @@
 /*
- * reserved comment block
- * DO NOT REMOVE OR ALTER!
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
  */
+
 /*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
@@ -17,9 +18,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/*
- * $Id: TransletOutput.java,v 1.2.4.1 2005/09/05 09:19:44 pvedula Exp $
- */
 
 package com.sun.org.apache.xalan.internal.xsltc.compiler;
 
@@ -35,6 +33,7 @@
 import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type;
 import com.sun.org.apache.xalan.internal.xsltc.compiler.util.TypeCheckError;
 import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Util;
+import jdk.xml.internal.JdkXmlFeatures;
 
 /**
  * @author Morten Jorgensen
@@ -103,8 +102,10 @@
         final InstructionList il = methodGen.getInstructionList();
         final boolean isSecureProcessing = classGen.getParser().getXSLTC()
                                            .isSecureProcessing();
+        final boolean isExtensionFunctionEnabled = classGen.getParser().getXSLTC()
+                .getFeature(JdkXmlFeatures.XmlFeature.ENABLE_EXTENSION_FUNCTION);
 
-        if (isSecureProcessing) {
+        if (isSecureProcessing && !isExtensionFunctionEnabled) {
             int index = cpg.addMethodref(BASIS_LIBRARY_CLASS,
                                          "unallowed_extension_elementF",
                                          "(Ljava/lang/String;)V");
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java	Wed Sep 14 11:22:39 2016 -0700
@@ -111,6 +111,9 @@
 
     private boolean _useServicesMechanism;
 
+    // The OutputStream for redirect function
+    private FileOutputStream output = null;
+
     /**
      * protocols allowed for external references set by the stylesheet processing instruction, Document() function, Import and Include element.
      */
@@ -567,9 +570,10 @@
                dir.mkdirs();
             }
 
+            output = new FileOutputStream(filename, append);
             factory.setEncoding(_encoding);
             factory.setOutputMethod(_method);
-            factory.setOutputStream(new BufferedOutputStream(new FileOutputStream(filename, append)));
+            factory.setOutputStream(new BufferedOutputStream(output));
             factory.setOutputType(TransletOutputHandlerFactory.STREAM);
 
             final SerializationHandler handler
@@ -594,6 +598,9 @@
         try {
             handler.endDocument();
             handler.close();
+            if (output != null) {
+                output.close();
+            }
         }
         catch (Exception e) {
             // what can you do?
--- a/jaxp/src/java.xml/share/classes/javax/xml/datatype/XMLGregorianCalendar.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/src/java.xml/share/classes/javax/xml/datatype/XMLGregorianCalendar.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1072,4 +1072,3 @@
     @Override
     public abstract Object clone();
 }
-
--- a/jaxp/src/java.xml/share/classes/module-info.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/src/java.xml/share/classes/module-info.java	Wed Sep 14 11:22:39 2016 -0700
@@ -92,4 +92,3 @@
     uses javax.xml.xpath.XPathFactory;
     uses org.xml.sax.XMLReader;
 }
-
--- a/jaxp/src/jdk.xml.dom/share/classes/module-info.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/src/jdk.xml.dom/share/classes/module-info.java	Wed Sep 14 11:22:39 2016 -0700
@@ -30,4 +30,3 @@
     exports org.w3c.dom.stylesheets;
     exports org.w3c.dom.xpath;
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/DurationTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/DurationTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -587,4 +587,3 @@
     private final BigInteger one = BigInteger.ONE;
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/FactoryNewInstanceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/FactoryNewInstanceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -77,4 +77,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/XMLGregorianCalendarTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/XMLGregorianCalendarTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -358,4 +358,3 @@
     private final int undef = DatatypeConstants.FIELD_UNDEFINED;
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DBFNamespaceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DBFNamespaceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -105,5 +105,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -531,5 +531,3 @@
         assertTrue(compareWithGold(goldFile, outputFile));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderImpl01.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderImpl01.java	Wed Sep 14 11:22:39 2016 -0700
@@ -157,5 +157,3 @@
             return null;
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -86,5 +86,3 @@
         DocumentBuilderFactory.newInstance();
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXFactoryNewInstanceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXFactoryNewInstanceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -78,5 +78,3 @@
     }
 
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -229,5 +229,3 @@
         assertFalse(spf.getFeature(EXTERNAL_P_ENTITIES));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -502,5 +502,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest02.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest02.java	Wed Sep 14 11:22:39 2016 -0700
@@ -269,5 +269,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest03.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest03.java	Wed Sep 14 11:22:39 2016 -0700
@@ -116,5 +116,3 @@
     }
 
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLEventFactoryNewInstanceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLEventFactoryNewInstanceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -82,4 +82,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLInputFactoryNewInstanceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLInputFactoryNewInstanceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -82,4 +82,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/Bug6384418Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/Bug6384418Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -67,5 +67,3 @@
     }
 
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/DOMResultTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/DOMResultTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -118,5 +118,3 @@
                 writeNodes(kids.item(i), bWriter);
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/ErrorListenerTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/ErrorListenerTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -104,5 +104,3 @@
         this.status = ListenerStatus.FATAL;
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXSourceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXSourceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -105,5 +105,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXTFactoryTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXTFactoryTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -431,5 +431,3 @@
         assertTrue(compareWithGold(goldFile, outputFile));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/StreamResultTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/StreamResultTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -106,5 +106,3 @@
         });
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TfClearParamTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TfClearParamTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -239,5 +239,3 @@
         assertNull(transformer.getParameter(LONG_PARAM_NAME));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -384,5 +384,3 @@
     private Document xmlDoc;
 
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerExcpTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerExcpTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -105,5 +105,3 @@
         assertNotNull(te.initCause(null));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -141,5 +141,3 @@
         assertTrue(compareWithGold(goldFile, outputFile));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -207,5 +207,3 @@
         System.out.println(" In fatal");
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest02.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest02.java	Wed Sep 14 11:22:39 2016 -0700
@@ -85,5 +85,3 @@
         assertTrue(compareWithGold(goldFile, outputFile));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest03.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest03.java	Wed Sep 14 11:22:39 2016 -0700
@@ -94,5 +94,3 @@
         assertTrue(compareWithGold(goldFile, outputFile));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/URIResolverTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/URIResolverTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -262,5 +262,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/othervm/TFCErrorTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/othervm/TFCErrorTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -54,5 +54,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -404,4 +404,3 @@
     private Document xsdDoc2;
     private byte[] xml;
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/TypeInfoProviderTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/TypeInfoProviderTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -95,4 +95,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorHandlerTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorHandlerTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -148,4 +148,3 @@
     private Schema schema;
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -209,4 +209,3 @@
     private Document xmlDoc;
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathExpressionTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathExpressionTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -491,5 +491,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -218,5 +218,3 @@
         assertNotNull(XPathFactory.newInstance(DOM_OBJECT_MODEL));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFunctionResolverTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFunctionResolverTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -82,5 +82,3 @@
         assertEquals(xpath.evaluate(null, "5"), "2");
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -757,5 +757,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/AttrTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/AttrTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -151,4 +151,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/CommentTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/CommentTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -48,4 +48,3 @@
         return document.createComment(text);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -175,4 +175,3 @@
         doc.createElement("!nc$%^*(!");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTypeTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTypeTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -92,4 +92,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DomImplementationTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DomImplementationTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -129,4 +129,3 @@
         assertEquals(documentType.getName(), name);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/ElementTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/ElementTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -255,4 +255,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/EntityChildTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/EntityChildTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -61,4 +61,3 @@
         assertEquals(nl.getLength(), 3);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NamedNodeMapTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NamedNodeMapTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -121,4 +121,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeListTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeListTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -64,4 +64,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -211,4 +211,3 @@
         transformer.transform(domSource, streamResult);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NotationTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NotationTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -74,4 +74,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/PITest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/PITest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -54,4 +54,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TextTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TextTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -74,4 +74,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TypeInfoTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TypeInfoTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -140,4 +140,3 @@
 
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttrImplTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttrImplTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -202,5 +202,3 @@
         attr.removeAttribute(1);
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesNSTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesNSTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -74,5 +74,3 @@
         assertTrue(compareWithGold(goldFile, outputFile));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -76,5 +76,3 @@
         assertTrue(compareWithGold(goldFile, outputFile));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ContentHandlerTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ContentHandlerTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -264,5 +264,3 @@
             bWriter.close();
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/DefaultHandlerTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/DefaultHandlerTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -272,5 +272,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/EHFatalTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/EHFatalTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -135,5 +135,3 @@
         bWriter.close();
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSSupportTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSSupportTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -131,5 +131,3 @@
         assertNull(support.getURI(DC_PREFIX));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSTableTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSTableTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -168,5 +168,3 @@
         assertFalse(spf.getFeature(NAMESPACE_PREFIXES));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ParserAdapterTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ParserAdapterTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -265,5 +265,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ResolverTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ResolverTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -143,5 +143,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/SAXParserNSTableTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/SAXParserNSTableTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -107,5 +107,3 @@
         assertTrue(compareWithGold(goldFile, outputFile));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterCBTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterCBTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -285,5 +285,3 @@
             bWriter.close();
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -246,5 +246,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderAdapterTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderAdapterTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -112,5 +112,3 @@
         }
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderFactoryTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderFactoryTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -76,5 +76,3 @@
         XMLReaderFactory.createXMLReader("org.apache.crimson.parser.ABCD");
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderNSTableTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderNSTableTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -131,5 +131,3 @@
         assertTrue(compareWithGold(goldFile, outputFile));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -671,5 +671,3 @@
     public void internalEntityDecl(String name, String value) {
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/AstroTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/AstroTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -145,4 +145,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -182,4 +182,3 @@
         return dbf.newDocumentBuilder();
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/NamespaceContextTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/NamespaceContextTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -89,4 +89,3 @@
         assertEquals(QName.valueOf(qname.toString()), qname);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/SAX201Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/SAX201Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -48,4 +48,3 @@
         reader.setDTDHandler(null); // SAX 2.0.1 allows
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/SchemaValidationTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/SchemaValidationTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -76,4 +76,3 @@
         return spf.newSAXParser();
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/XPathAPITest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/XPathAPITest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -171,4 +171,3 @@
         return new InputSource(filenameToURL(ASTROCAT));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionController.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionController.java	Wed Sep 14 11:22:39 2016 -0700
@@ -366,5 +366,3 @@
         assertTrue(roletypeInfo.getTypeNamespace().equals(PORTAL_ACCOUNT_NS));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionItemRepository.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionItemRepository.java	Wed Sep 14 11:22:39 2016 -0700
@@ -371,5 +371,3 @@
         assertTrue(compareDocumentWithGold(goldFile, resultFile));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/UserController.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/UserController.java	Wed Sep 14 11:22:39 2016 -0700
@@ -304,5 +304,3 @@
         assertTrue(compareDocumentWithGold(goldFile, resultFile));
     }
 }
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4511326.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4511326.java	Wed Sep 14 11:22:39 2016 -0700
@@ -64,4 +64,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4512806.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4512806.java	Wed Sep 14 11:22:39 2016 -0700
@@ -90,4 +90,3 @@
 
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515047.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515047.java	Wed Sep 14 11:22:39 2016 -0700
@@ -62,4 +62,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515660.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515660.java	Wed Sep 14 11:22:39 2016 -0700
@@ -128,4 +128,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4693341.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4693341.java	Wed Sep 14 11:22:39 2016 -0700
@@ -81,4 +81,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4848653.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4848653.java	Wed Sep 14 11:22:39 2016 -0700
@@ -81,4 +81,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4858685.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4858685.java	Wed Sep 14 11:22:39 2016 -0700
@@ -247,4 +247,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/test/module-info.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/test/module-info.java	Wed Sep 14 11:22:39 2016 -0700
@@ -24,4 +24,4 @@
 module test {
     requires java.xml;
     exports test;
-}
\ No newline at end of file
+}
--- a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider1/module-info.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider1/module-info.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,4 +31,4 @@
     provides javax.xml.transform.TransformerFactory with xp1.TransformerFactoryImpl;
     provides javax.xml.validation.SchemaFactory with xp1.SchemaFactoryImpl;
     provides javax.xml.xpath.XPathFactory with xp1.XPathFactoryImpl;
-}
\ No newline at end of file
+}
--- a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider2/module-info.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider2/module-info.java	Wed Sep 14 11:22:39 2016 -0700
@@ -27,4 +27,4 @@
     provides javax.xml.datatype.DatatypeFactory with xp2.DatatypeFactoryImpl;
     provides javax.xml.stream.XMLEventFactory with xp2.XMLEventFactoryImpl;
     provides org.xml.sax.XMLReader with xp2.XMLReaderImpl;
-}
\ No newline at end of file
+}
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Bug6350682.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Bug6350682.java	Wed Sep 14 11:22:39 2016 -0700
@@ -75,4 +75,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Bug6723276Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Bug6723276Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -68,4 +68,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Bug6941169Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Bug6941169Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -486,4 +486,3 @@
         return document;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Bug7143711Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Bug7143711Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -114,4 +114,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Sources.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Sources.java	Wed Sep 14 11:22:39 2016 -0700
@@ -213,4 +213,3 @@
         return r;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/common/TestSAXDriver.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/TestSAXDriver.java	Wed Sep 14 11:22:39 2016 -0700
@@ -56,4 +56,3 @@
 
     private static final String ENT_EXP_LIMIT_PROP = "http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit";
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/common/TransformationWarningsTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/TransformationWarningsTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -105,4 +105,3 @@
             + "</xsl:stylesheet>";
     private static final String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root></root>";
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/common/ValidationWarningsTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/ValidationWarningsTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -85,4 +85,3 @@
     private static final String xml = "<?xml version='1.0'?><test>Element</test>";
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6320118.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6320118.java	Wed Sep 14 11:22:39 2016 -0700
@@ -108,4 +108,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937951Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937951Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -57,4 +57,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937964Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937964Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -270,4 +270,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug7042647Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug7042647Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -60,4 +60,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/DatatypeFactoryTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/DatatypeFactoryTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -640,4 +640,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/DurationTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/DurationTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -484,4 +484,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/FactoryFindTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/FactoryFindTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -76,4 +76,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/JDK8068839Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/JDK8068839Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -51,4 +51,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/XMLGregorianCalendarTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/XMLGregorianCalendarTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -228,4 +228,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915524.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915524.java	Wed Sep 14 11:22:39 2016 -0700
@@ -81,4 +81,3 @@
         return docBuilder.parse(source);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915748.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915748.java	Wed Sep 14 11:22:39 2016 -0700
@@ -74,4 +74,3 @@
         Assert.assertTrue(hadError[0]);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966082.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966082.java	Wed Sep 14 11:22:39 2016 -0700
@@ -53,4 +53,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966138.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966138.java	Wed Sep 14 11:22:39 2016 -0700
@@ -69,4 +69,3 @@
         Assert.assertTrue(typeNs.length() != 0, "returned typeNamespace shouldn't be empty");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966142.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966142.java	Wed Sep 14 11:22:39 2016 -0700
@@ -61,4 +61,3 @@
         Assert.assertFalse(type.isDerivedFrom("testNS", "Test", TypeInfo.DERIVATION_UNION));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966143.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966143.java	Wed Sep 14 11:22:39 2016 -0700
@@ -66,4 +66,3 @@
         Assert.assertTrue(type.isDerivedFrom("testNS", "Test", 0));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6339023.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6339023.java	Wed Sep 14 11:22:39 2016 -0700
@@ -139,4 +139,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6355326.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6355326.java	Wed Sep 14 11:22:39 2016 -0700
@@ -118,4 +118,3 @@
         return p;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6367542.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6367542.java	Wed Sep 14 11:22:39 2016 -0700
@@ -52,4 +52,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6520131.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6520131.java	Wed Sep 14 11:22:39 2016 -0700
@@ -83,4 +83,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6521260.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6521260.java	Wed Sep 14 11:22:39 2016 -0700
@@ -77,4 +77,3 @@
         Assert.assertEquals(systemId, systemId2);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6582545Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6582545Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -123,4 +123,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6879614Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6879614Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -78,4 +78,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6333993Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6333993Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -88,4 +88,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517707Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517707Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -128,4 +128,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517717Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517717Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -86,4 +86,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6909336Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6909336Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -72,4 +72,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/DOMConfigurationTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/DOMConfigurationTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1628,4 +1628,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/DOMXPathTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/DOMXPathTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -54,4 +54,3 @@
         Assert.assertEquals(domImpl.getFeature("+XPath", "3.0"), null);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ElementTraversal.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ElementTraversal.java	Wed Sep 14 11:22:39 2016 -0700
@@ -135,4 +135,3 @@
         return doc;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/JdkXmlDomTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/JdkXmlDomTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -46,4 +46,3 @@
         Assert.assertTrue(runWithAllPerm(() -> cls.getClassLoader()) != null);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/TCKEncodingTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/TCKEncodingTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -102,4 +102,3 @@
         System.out.println("OK");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug4973153.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug4973153.java	Wed Sep 14 11:22:39 2016 -0700
@@ -204,4 +204,3 @@
         return true;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6290947.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6290947.java	Wed Sep 14 11:22:39 2016 -0700
@@ -147,4 +147,3 @@
         return src;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6354955.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6354955.java	Wed Sep 14 11:22:39 2016 -0700
@@ -142,4 +142,3 @@
         return documentBuilder.newDocument();
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6376823.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6376823.java	Wed Sep 14 11:22:39 2016 -0700
@@ -121,4 +121,3 @@
         return src;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6710741Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6710741Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -80,4 +80,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTCKTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTCKTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -584,4 +584,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -109,4 +109,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSSerializerTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSSerializerTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -319,4 +319,3 @@
         Assert.assertEquals(XML11_DOCUMENT_OUTPUT, defaultSerialization, "Invalid serialization of XML 1.1 document: ");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4674384_MAX_OCCURS_Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4674384_MAX_OCCURS_Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -70,4 +70,3 @@
         System.out.println("Success: File " + XML_FILE_NAME + " was parsed with a large value of maxOccurs.");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4934208.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4934208.java	Wed Sep 14 11:22:39 2016 -0700
@@ -74,4 +74,3 @@
         r.parse(is);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4967002.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4967002.java	Wed Sep 14 11:22:39 2016 -0700
@@ -101,4 +101,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4985486.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4985486.java	Wed Sep 14 11:22:39 2016 -0700
@@ -68,4 +68,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991020.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991020.java	Wed Sep 14 11:22:39 2016 -0700
@@ -56,4 +56,3 @@
         parser.parse(Bug4991020.class.getResource("Bug4991020.xml").toExternalForm(), new util.DraconianErrorHandler());
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991946.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991946.java	Wed Sep 14 11:22:39 2016 -0700
@@ -56,4 +56,3 @@
         parser.parse(Bug4991946.class.getResource("Bug4991946.xml").toExternalForm(), new util.DraconianErrorHandler());
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5010072.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5010072.java	Wed Sep 14 11:22:39 2016 -0700
@@ -77,4 +77,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5025825.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5025825.java	Wed Sep 14 11:22:39 2016 -0700
@@ -89,4 +89,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6309988.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6309988.java	Wed Sep 14 11:22:39 2016 -0700
@@ -370,4 +370,3 @@
         return System.getSecurityManager() != null;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java	Wed Sep 14 11:22:39 2016 -0700
@@ -83,4 +83,3 @@
         System.out.println("OK.");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6361283.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6361283.java	Wed Sep 14 11:22:39 2016 -0700
@@ -56,4 +56,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6506304Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6506304Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -71,4 +71,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6518733.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6518733.java	Wed Sep 14 11:22:39 2016 -0700
@@ -67,4 +67,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6564400.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6564400.java	Wed Sep 14 11:22:39 2016 -0700
@@ -180,4 +180,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786.java	Wed Sep 14 11:22:39 2016 -0700
@@ -73,4 +73,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786ErrorHandler.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786ErrorHandler.java	Wed Sep 14 11:22:39 2016 -0700
@@ -45,4 +45,3 @@
         System.out.println(e.getMessage());
     } // warning ()
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6594813.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6594813.java	Wed Sep 14 11:22:39 2016 -0700
@@ -175,4 +175,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6608841.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6608841.java	Wed Sep 14 11:22:39 2016 -0700
@@ -59,4 +59,3 @@
     public class MyHandler extends DefaultHandler {
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6690015.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6690015.java	Wed Sep 14 11:22:39 2016 -0700
@@ -87,4 +87,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6760982.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6760982.java	Wed Sep 14 11:22:39 2016 -0700
@@ -168,4 +168,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6849942Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6849942Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -81,4 +81,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7157608Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7157608Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -218,4 +218,3 @@
         boolean validating = false;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7166896Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7166896Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -80,4 +80,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -93,4 +93,3 @@
         }, new FilePermission(getSystemProperty("test.classes") + "/-", "read,write"));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147TestClass.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147TestClass.java	Wed Sep 14 11:22:39 2016 -0700
@@ -32,4 +32,3 @@
     public void doSomething(double d, ArrayList<Integer> list) {
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8073385.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8073385.java	Wed Sep 14 11:22:39 2016 -0700
@@ -100,4 +100,3 @@
         assertTrue(exceptionText.contains("Unicode: " + hexString));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/FactoryFindTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/FactoryFindTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -75,4 +75,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/MyDefaultHandler.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/MyDefaultHandler.java	Wed Sep 14 11:22:39 2016 -0700
@@ -45,4 +45,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/MyErrorHandler.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/MyErrorHandler.java	Wed Sep 14 11:22:39 2016 -0700
@@ -53,4 +53,3 @@
         errorOccured = true;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/ParseEmptyStream.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/ParseEmptyStream.java	Wed Sep 14 11:22:39 2016 -0700
@@ -92,4 +92,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/SupplementaryChars.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/SupplementaryChars.java	Wed Sep 14 11:22:39 2016 -0700
@@ -71,4 +71,3 @@
         return parser;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/xinclude/Bug6794483Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/xinclude/Bug6794483Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -107,4 +107,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Attributes2ImplTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Attributes2ImplTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -153,4 +153,3 @@
         Assert.assertTrue(impl1.getQName(2).equals(impl3.getQName(2)));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6889654Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6889654Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -87,4 +87,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6925410Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6925410Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -60,4 +60,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6949607Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6949607Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -81,4 +81,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6992561Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6992561Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -86,4 +86,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug7057778Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug7057778Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -199,4 +199,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/DefaultHandler2Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/DefaultHandler2Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -251,4 +251,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/IssueTracker56Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/IssueTracker56Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -142,4 +142,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/MyDefaultHandler2.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/MyDefaultHandler2.java	Wed Sep 14 11:22:39 2016 -0700
@@ -198,4 +198,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/NSSupportTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/NSSupportTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -232,4 +232,3 @@
         Assert.assertNull(nssupport.getURI(""));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/SAXExceptionExt.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/SAXExceptionExt.java	Wed Sep 14 11:22:39 2016 -0700
@@ -38,4 +38,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/XMLReaderTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/XMLReaderTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -70,4 +70,3 @@
         XMLReaderAdapter adapter = new XMLReaderAdapter();
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/AttributeLocalNameTest/AttributeLocalNameTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/AttributeLocalNameTest/AttributeLocalNameTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -66,4 +66,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6370703.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6370703.java	Wed Sep 14 11:22:39 2016 -0700
@@ -69,4 +69,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6378422.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6378422.java	Wed Sep 14 11:22:39 2016 -0700
@@ -51,4 +51,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6380870.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6380870.java	Wed Sep 14 11:22:39 2016 -0700
@@ -58,4 +58,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6489502.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6489502.java	Wed Sep 14 11:22:39 2016 -0700
@@ -83,4 +83,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6509774.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6509774.java	Wed Sep 14 11:22:39 2016 -0700
@@ -174,4 +174,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6688002Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6688002Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -113,4 +113,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6976938Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6976938Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -100,4 +100,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/CoalesceTest/CoalesceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/CoalesceTest/CoalesceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -110,4 +110,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EntitiesTest/EntityTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EntitiesTest/EntityTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -179,4 +179,3 @@
         return true;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventReaderDelegateTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventReaderDelegateTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -231,4 +231,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue41Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue41Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -178,4 +178,3 @@
         System.out.println(sw.toString());
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue48Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue48Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -115,4 +115,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue53Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue53Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -71,4 +71,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue58Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue58Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -84,4 +84,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/FactoryFindTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/FactoryFindTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -151,4 +151,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/IgnoreExternalDTDTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/IgnoreExternalDTDTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -77,4 +77,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/ProcessingInstructionTest/ProcessingInstructionTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/ProcessingInstructionTest/ProcessingInstructionTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -67,4 +67,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/StreamReaderDelegateTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/StreamReaderDelegateTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -383,4 +383,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventLocationTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventLocationTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -82,4 +82,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6489890.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6489890.java	Wed Sep 14 11:22:39 2016 -0700
@@ -77,4 +77,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6555001.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6555001.java	Wed Sep 14 11:22:39 2016 -0700
@@ -116,4 +116,3 @@
         }, new FilePermission("/tmp/this/does/not/exist/but/that/is/ok", "read"));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6586466Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6586466Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -66,4 +66,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6613059Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6613059Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -89,4 +89,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6668115Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6668115Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -100,4 +100,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6846133Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6846133Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -83,4 +83,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug8153781.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug8153781.java	Wed Sep 14 11:22:39 2016 -0700
@@ -94,4 +94,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Issue40Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Issue40Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -100,4 +100,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/ReaderToWriterTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/ReaderToWriterTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -214,4 +214,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/XMLEventWriterTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/XMLEventWriterTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -156,4 +156,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6756677Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6756677Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -113,4 +113,3 @@
         Assert.assertTrue(xif instanceof XMLInputFactory, "xif should be an instance of XMLInputFactory");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6909759Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6909759Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -66,4 +66,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/IssueTracker38.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/IssueTracker38.java	Wed Sep 14 11:22:39 2016 -0700
@@ -92,4 +92,3 @@
 
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/MyInputFactory.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/MyInputFactory.java	Wed Sep 14 11:22:39 2016 -0700
@@ -158,4 +158,3 @@
         throw new UnsupportedOperationException("Not supported yet.");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/Bug6846132Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/Bug6846132Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -89,4 +89,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/DuplicateNSDeclarationTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/DuplicateNSDeclarationTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -83,4 +83,3 @@
         Assert.assertEquals(EXPECTED_OUTPUT, buffer.toString());
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/StreamResultTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/StreamResultTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -162,4 +162,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLResolverTest/XMLResolverTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLResolverTest/XMLResolverTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -96,4 +96,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamExceptionTest/ExceptionTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamExceptionTest/ExceptionTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -53,4 +53,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481615.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481615.java	Wed Sep 14 11:22:39 2016 -0700
@@ -68,4 +68,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481678.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481678.java	Wed Sep 14 11:22:39 2016 -0700
@@ -225,4 +225,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -145,4 +145,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTypeFilter.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTypeFilter.java	Wed Sep 14 11:22:39 2016 -0700
@@ -47,4 +47,3 @@
         return types[r.getEventType()];
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BOMTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BOMTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -67,4 +67,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6388460.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6388460.java	Wed Sep 14 11:22:39 2016 -0700
@@ -76,4 +76,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6472982Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6472982Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -79,4 +79,3 @@
         return sbuffer.toString();
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6767322Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6767322Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -76,4 +76,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6847819Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6847819Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -69,4 +69,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BugTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BugTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -51,4 +51,3 @@
         Assert.assertEquals(XMLStreamConstants.START_DOCUMENT, r.getEventType());
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DefaultAttributeTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DefaultAttributeTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -108,4 +108,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DoubleXmlnsTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DoubleXmlnsTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -118,4 +118,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IsValidatingTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IsValidatingTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -165,4 +165,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue44Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue44Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -59,4 +59,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue47Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue47Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -89,4 +89,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker24.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker24.java	Wed Sep 14 11:22:39 2016 -0700
@@ -61,4 +61,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker35.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker35.java	Wed Sep 14 11:22:39 2016 -0700
@@ -59,4 +59,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker70.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker70.java	Wed Sep 14 11:22:39 2016 -0700
@@ -76,4 +76,3 @@
         Assert.assertNotNull(value, "should have attribute value");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req5Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req5Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -91,4 +91,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req8Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req8Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -69,4 +69,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/NamespaceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/NamespaceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -153,4 +153,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/StreamReaderTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/StreamReaderTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -62,4 +62,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/SupportDTDTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/SupportDTDTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -288,4 +288,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/VoiceXMLDTDTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/VoiceXMLDTDTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -58,4 +58,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/XML11Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/XML11Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -54,4 +54,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/AttributeEscapeTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/AttributeEscapeTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -103,4 +103,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6452107.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6452107.java	Wed Sep 14 11:22:39 2016 -0700
@@ -64,4 +64,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6600882Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6600882Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -59,4 +59,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6675332Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6675332Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -164,4 +164,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug7037352Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug7037352Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -65,4 +65,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DOMUtil.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DOMUtil.java	Wed Sep 14 11:22:39 2016 -0700
@@ -221,4 +221,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DomUtilTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DomUtilTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -124,4 +124,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EmptyElementTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EmptyElementTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -85,4 +85,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EncodingTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EncodingTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -110,4 +110,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NamespaceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NamespaceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1434,4 +1434,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NullUriDetectionTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NullUriDetectionTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -54,4 +54,3 @@
         w.writeCharacters("---");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SqeLinuxTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SqeLinuxTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -88,4 +88,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SurrogatesTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SurrogatesTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -175,4 +175,3 @@
         };
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/UnprefixedNameTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/UnprefixedNameTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -125,4 +125,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/WriterTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/WriterTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -784,4 +784,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/XMLStreamWriterTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/XMLStreamWriterTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -73,4 +73,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4693341Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4693341Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -94,4 +94,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4892774.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4892774.java	Wed Sep 14 11:22:39 2016 -0700
@@ -377,4 +377,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug5073477.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug5073477.java	Wed Sep 14 11:22:39 2016 -0700
@@ -55,4 +55,3 @@
         r.setNextSibling(r.getNode().getFirstChild());
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6175602.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6175602.java	Wed Sep 14 11:22:39 2016 -0700
@@ -54,4 +54,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6206491.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6206491.java	Wed Sep 14 11:22:39 2016 -0700
@@ -134,4 +134,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6216226Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6216226Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -69,4 +69,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6311448.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6311448.java	Wed Sep 14 11:22:39 2016 -0700
@@ -85,4 +85,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6384805.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6384805.java	Wed Sep 14 11:22:39 2016 -0700
@@ -94,4 +94,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6465722.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6465722.java	Wed Sep 14 11:22:39 2016 -0700
@@ -72,4 +72,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6467808.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6467808.java	Wed Sep 14 11:22:39 2016 -0700
@@ -76,4 +76,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490380.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490380.java	Wed Sep 14 11:22:39 2016 -0700
@@ -61,4 +61,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490921.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490921.java	Wed Sep 14 11:22:39 2016 -0700
@@ -145,4 +145,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6513892.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6513892.java	Wed Sep 14 11:22:39 2016 -0700
@@ -77,4 +77,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6537167.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6537167.java	Wed Sep 14 11:22:39 2016 -0700
@@ -85,4 +85,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6540545.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6540545.java	Wed Sep 14 11:22:39 2016 -0700
@@ -64,4 +64,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6551616.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6551616.java	Wed Sep 14 11:22:39 2016 -0700
@@ -68,4 +68,3 @@
         // if it doesn't blow up, it succeeded.
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6559595.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6559595.java	Wed Sep 14 11:22:39 2016 -0700
@@ -70,4 +70,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6565260.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6565260.java	Wed Sep 14 11:22:39 2016 -0700
@@ -64,4 +64,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6940416.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6940416.java	Wed Sep 14 11:22:39 2016 -0700
@@ -115,4 +115,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/BugDB12665704Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/BugDB12665704Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -157,4 +157,3 @@
         return sb.toString();
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CLITest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CLITest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -50,4 +50,3 @@
         }, new PropertyPermission("*", "read,write"));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6401137Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6401137Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -94,4 +94,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6551600Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6551600Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -94,4 +94,3 @@
                 : new FilePermission("///tmp/test.xml", "read,write,delete"));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6577667Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6577667Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -59,4 +59,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6652519Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6652519Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -79,4 +79,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6689809Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6689809Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -64,4 +64,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6905829Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6905829Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -65,4 +65,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6935697Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6935697Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -77,4 +77,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6941869Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6941869Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -76,4 +76,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6957215Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6957215Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -99,4 +99,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR7098746Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR7098746Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -90,4 +90,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/DOMResultTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/DOMResultTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -215,4 +215,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/DocumentExtFunc.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/DocumentExtFunc.java	Wed Sep 14 11:22:39 2016 -0700
@@ -33,4 +33,3 @@
         return "["+node.getNodeName() + ":" + node.getTextContent()+"]";
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/FactoryFindTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/FactoryFindTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -75,4 +75,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2204Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2204Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -67,4 +67,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2290Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2290Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -96,4 +96,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/OpenJDK100017Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/OpenJDK100017Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -66,4 +66,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/SAX2DOMTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/SAX2DOMTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -198,4 +198,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/SecureProcessingTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/SecureProcessingTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -135,4 +135,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/SourceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/SourceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -148,4 +148,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/StAXSourceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/StAXSourceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -129,4 +129,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/TemplatesTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/TemplatesTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -83,4 +83,3 @@
             + "      contains($validAffectsRelClasses, @Class)]/@OBID)\"/>"
             + "</xsl:stylesheet>";
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerFactoryTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerFactoryTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -153,4 +153,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -439,4 +439,3 @@
         Assert.assertNull(document.getElementsByTagName("test6").item(0).getNamespaceURI(), "unexpected namespace for test6");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerUtilFactory.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerUtilFactory.java	Wed Sep 14 11:22:39 2016 -0700
@@ -56,4 +56,3 @@
             return null;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/VersionDefaultHandler.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/VersionDefaultHandler.java	Wed Sep 14 11:22:39 2016 -0700
@@ -62,4 +62,3 @@
         return encoding;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/VersionEventWriter.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/VersionEventWriter.java	Wed Sep 14 11:22:39 2016 -0700
@@ -82,4 +82,3 @@
         return encoding;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -23,9 +23,12 @@
 
 package transform;
 
+import java.io.IOException;
 import java.io.StringReader;
 import java.io.StringWriter;
-
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import javax.xml.transform.Source;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerException;
@@ -54,8 +57,39 @@
  * @summary This class contains tests for XSLT functions.
  */
 
-@Listeners({jaxp.library.BasePolicy.class})
+@Listeners({jaxp.library.FilePolicy.class})
 public class XSLTFunctionsTest {
+    /**
+     * @bug 8165116
+     * Verifies that redirect works properly when extension function is enabled
+     *
+     * @param xml the XML source
+     * @param xsl the stylesheet that redirect output to a file
+     * @param output the output file
+     * @param redirect the redirect file
+     * @throws Exception if the test fails
+     **/
+    @Test(dataProvider = "redirect")
+    public void testRedirect(String xml, String xsl, String output, String redirect) throws Exception {
+
+        TransformerFactory tf = TransformerFactory.newInstance();
+        tf.setFeature(ORACLE_ENABLE_EXTENSION_FUNCTION, true);
+        Transformer t = tf.newTransformer(new StreamSource(new StringReader(xsl)));
+
+        //Transform the xml
+        t.transform(new StreamSource(new StringReader(xml)), new StreamResult(new StringWriter()));
+
+        // Verifies that the output is redirected successfully
+        String userDir = getSystemProperty("user.dir");
+        Path pathOutput = Paths.get(userDir, output);
+        Path pathRedirect = Paths.get(userDir, redirect);
+        Assert.assertTrue(Files.exists(pathOutput));
+        Assert.assertTrue(Files.exists(pathRedirect));
+        System.out.println("Output to " + pathOutput + " successful.");
+        System.out.println("Redirect to " + pathRedirect + " successful.");
+        Files.deleteIfExists(pathOutput);
+        Files.deleteIfExists(pathRedirect);
+    }
 
     /**
      * @bug 8161454
@@ -177,6 +211,13 @@
         };
     }
 
+    @DataProvider(name = "redirect")
+    public static Object[][] getData() {
+        return new Object[][] {
+            {documentTestXml, xslRedirect, "testoutput.xml", "testredirect.xml"},
+        };
+    }
+
     static final String documentTestXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Test>Doc</Test>";
 
     static final String documentTestExternalDoc = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Test>External Doc</Test>";
@@ -197,6 +238,23 @@
     static final String documentTesteExpectedResult = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
                                                     + "<root>[Test:Doc][Test:External Doc]</root>";
 
+    static String xslRedirect = " <xsl:stylesheet \n"
+            + "   xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"\n"
+            + "   xmlns:xsltc=\"http://xml.apache.org/xalan/xsltc\"\n"
+            + "   xmlns:redirect=\"http://xml.apache.org/xalan/redirect\"\n"
+            + "   extension-element-prefixes=\"xsltc redirect\"\n"
+            + "   version=\"1.0\">\n"
+            + "   <xsl:template match=\"/\">\n"
+            + "     <xsl:text>This goes to standard output</xsl:text>\n"
+            + "     <xsltc:output file=\"testoutput.xml\">\n"
+            + "       <xsl:text>This ends up in the file 'testoutput.xml'</xsl:text>\n"
+            + "     </xsltc:output>\n"
+            + "     <redirect:write file=\"testredirect.xml\">\n"
+            + "       <xsl:text>This ends up in the file 'testredirect.xml'</xsl:text>\n"
+            + "     </redirect:write>\n"
+            + "   </xsl:template>\n"
+            + "</xsl:stylesheet>";
+
     public static final String ORACLE_JAXP_PROPERTY_PREFIX =
         "http://www.oracle.com/xml/jaxp/properties/";
     /**
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/sax/Bug6451633.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/sax/Bug6451633.java	Wed Sep 14 11:22:39 2016 -0700
@@ -62,4 +62,3 @@
         Assert.assertEquals(0, ((Document) result.getNode()).getDocumentElement().getChildNodes().getLength());
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/util/DOMUtil.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/DOMUtil.java	Wed Sep 14 11:22:39 2016 -0700
@@ -68,4 +68,3 @@
         Assert.assertTrue(version.equals(resultVersion), "Expected XML Version is 1.1, but actual version " + resultVersion);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/util/SAXUtil.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/SAXUtil.java	Wed Sep 14 11:22:39 2016 -0700
@@ -70,4 +70,3 @@
         Assert.assertTrue(encoding.equals(resultEncoding), "Expected XML Version is " + encoding + " , but actual  encoding " + resultEncoding);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/util/StAXUtil.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/StAXUtil.java	Wed Sep 14 11:22:39 2016 -0700
@@ -92,4 +92,3 @@
         ((StreamUtil) TransformerUtilFactory.getUtil(TransformerUtilFactory.STREAM)).checkStream(new FileInputStream(TEMP_FILE), version);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/util/StreamUtil.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/StreamUtil.java	Wed Sep 14 11:22:39 2016 -0700
@@ -94,4 +94,3 @@
         Assert.assertTrue(dh.getEncoding().equals(encoding), "Expected version is " + encoding + " actual version " + dh.getEncoding());
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/util/BOMInputStream.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/util/BOMInputStream.java	Wed Sep 14 11:22:39 2016 -0700
@@ -78,4 +78,3 @@
         }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/util/BaseStAXUT.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/util/BaseStAXUT.java	Wed Sep 14 11:22:39 2016 -0700
@@ -557,4 +557,3 @@
         System.err.println("Skipping " + clsName + "#" + method + ": entity expansion does not seem to be functioning properly" + msg + ".");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/AnyElementTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/AnyElementTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -85,4 +85,3 @@
 
     private Validator validator;
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966232.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966232.java	Wed Sep 14 11:22:39 2016 -0700
@@ -75,4 +75,3 @@
         Assert.assertNotNull(s);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966254.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966254.java	Wed Sep 14 11:22:39 2016 -0700
@@ -78,4 +78,3 @@
         return s;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969042.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969042.java	Wed Sep 14 11:22:39 2016 -0700
@@ -111,4 +111,3 @@
         Assert.assertTrue(invoked[1], "Method characters() was not invoked.");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969089.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969089.java	Wed Sep 14 11:22:39 2016 -0700
@@ -76,4 +76,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969110.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969110.java	Wed Sep 14 11:22:39 2016 -0700
@@ -79,4 +79,3 @@
         validatorHandler.setProperty(name, "123");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969689.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969689.java	Wed Sep 14 11:22:39 2016 -0700
@@ -66,4 +66,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969692.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969692.java	Wed Sep 14 11:22:39 2016 -0700
@@ -67,4 +67,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969693.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969693.java	Wed Sep 14 11:22:39 2016 -0700
@@ -67,4 +67,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969695.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969695.java	Wed Sep 14 11:22:39 2016 -0700
@@ -65,4 +65,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969732.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969732.java	Wed Sep 14 11:22:39 2016 -0700
@@ -112,4 +112,3 @@
         parse(xmlReader, XML);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970380.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970380.java	Wed Sep 14 11:22:39 2016 -0700
@@ -62,4 +62,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970383.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970383.java	Wed Sep 14 11:22:39 2016 -0700
@@ -53,4 +53,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970400.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970400.java	Wed Sep 14 11:22:39 2016 -0700
@@ -48,4 +48,3 @@
         validatorHandler.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970402.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970402.java	Wed Sep 14 11:22:39 2016 -0700
@@ -123,4 +123,3 @@
         parse(xmlReader, XML);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970951.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970951.java	Wed Sep 14 11:22:39 2016 -0700
@@ -126,4 +126,3 @@
         parse(xmlReader, XML);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971605.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971605.java	Wed Sep 14 11:22:39 2016 -0700
@@ -66,4 +66,3 @@
         Assert.assertNotNull(schema, "Failed: newSchema returned null.");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971607.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971607.java	Wed Sep 14 11:22:39 2016 -0700
@@ -56,4 +56,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4972882.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4972882.java	Wed Sep 14 11:22:39 2016 -0700
@@ -67,4 +67,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4986844.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4986844.java	Wed Sep 14 11:22:39 2016 -0700
@@ -56,4 +56,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4987574.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4987574.java	Wed Sep 14 11:22:39 2016 -0700
@@ -60,4 +60,3 @@
         schemaFactory.newSchema(tmpFile);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988267.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988267.java	Wed Sep 14 11:22:39 2016 -0700
@@ -56,4 +56,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988268.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988268.java	Wed Sep 14 11:22:39 2016 -0700
@@ -46,4 +46,3 @@
         schemaFactory.newSchema(Bug4988268.class.getResource("Bug4988268.xsd"));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988387.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988387.java	Wed Sep 14 11:22:39 2016 -0700
@@ -53,4 +53,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4996446.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4996446.java	Wed Sep 14 11:22:39 2016 -0700
@@ -90,4 +90,3 @@
         errorCounter++;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4997818.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4997818.java	Wed Sep 14 11:22:39 2016 -0700
@@ -81,4 +81,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5011500.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5011500.java	Wed Sep 14 11:22:39 2016 -0700
@@ -108,4 +108,3 @@
         validator.validate(xmlSource);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5072946.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5072946.java	Wed Sep 14 11:22:39 2016 -0700
@@ -125,4 +125,3 @@
         Assert.assertSame(r.getNode(), n);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6378043.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6378043.java	Wed Sep 14 11:22:39 2016 -0700
@@ -53,4 +53,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6449797.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6449797.java	Wed Sep 14 11:22:39 2016 -0700
@@ -46,4 +46,3 @@
         SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(getClass().getResource("Bug6449797.xsd"));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6457662.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6457662.java	Wed Sep 14 11:22:39 2016 -0700
@@ -86,4 +86,3 @@
         return rtn;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6467424Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6467424Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -205,4 +205,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6483188.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6483188.java	Wed Sep 14 11:22:39 2016 -0700
@@ -88,4 +88,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6493687.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6493687.java	Wed Sep 14 11:22:39 2016 -0700
@@ -48,4 +48,3 @@
         System.out.println("Got here3");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6509668.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6509668.java	Wed Sep 14 11:22:39 2016 -0700
@@ -141,4 +141,3 @@
         parse(xmlReader, XML);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6526547.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6526547.java	Wed Sep 14 11:22:39 2016 -0700
@@ -82,4 +82,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6531160.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6531160.java	Wed Sep 14 11:22:39 2016 -0700
@@ -70,4 +70,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6695843Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6695843Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -82,4 +82,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6773084Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6773084Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -160,4 +160,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6859210.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6859210.java	Wed Sep 14 11:22:39 2016 -0700
@@ -100,4 +100,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6925531Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6925531Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -210,4 +210,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6946312Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6946312Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -128,4 +128,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6954738_Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6954738_Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -83,4 +83,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/CR6708840Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/CR6708840Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -140,4 +140,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/CR6740048.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/CR6740048.java	Wed Sep 14 11:22:39 2016 -0700
@@ -131,4 +131,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ErrorHandlerImpl.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ErrorHandlerImpl.java	Wed Sep 14 11:22:39 2016 -0700
@@ -45,4 +45,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Issue682Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Issue682Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -78,4 +78,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/IssueTracker30.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/IssueTracker30.java	Wed Sep 14 11:22:39 2016 -0700
@@ -132,4 +132,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue43Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue43Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -84,4 +84,3 @@
         return list.toArray(new Source[list.size()]);
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue49.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue49.java	Wed Sep 14 11:22:39 2016 -0700
@@ -94,4 +94,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/LargeMaxOccursTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/LargeMaxOccursTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -109,4 +109,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -147,4 +147,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursUnboundedTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursUnboundedTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -115,4 +115,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -147,4 +147,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursUnboundedTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursUnboundedTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -115,4 +115,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -147,4 +147,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardUnbounded.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardUnbounded.java	Wed Sep 14 11:22:39 2016 -0700
@@ -115,4 +115,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesId005Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesId005Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -99,4 +99,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesIg004Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesIg004Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -57,4 +57,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesQ013Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesQ013Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -98,4 +98,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/SchemaTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/SchemaTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -54,4 +54,3 @@
         factory.newSchema(new File(getClass().getResource("Bug8149915.xsd").getFile()));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/TCKGroupA008Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/TCKGroupA008Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -60,4 +60,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ValidatorTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ValidatorTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -208,4 +208,3 @@
         return xmlr;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/XMLDocBuilder.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/XMLDocBuilder.java	Wed Sep 14 11:22:39 2016 -0700
@@ -141,4 +141,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/XMLSchemaValidator.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/XMLSchemaValidator.java	Wed Sep 14 11:22:39 2016 -0700
@@ -59,4 +59,3 @@
         validator.validate(new DOMSource(node));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6943252Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6943252Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -69,4 +69,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963124Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963124Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -61,4 +61,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963468Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963468Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -148,4 +148,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6964720Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6964720Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -58,4 +58,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6967214Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6967214Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -70,4 +70,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6970890Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6970890Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -72,4 +72,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6971190Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6971190Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -102,4 +102,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6974551Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6974551Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -122,4 +122,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6975265Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6975265Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -71,4 +71,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6977201Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6977201Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -71,4 +71,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6989956Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6989956Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -148,4 +148,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug7014246Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug7014246Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -59,4 +59,3 @@
     }
 
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/ParticleTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/ParticleTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -63,4 +63,3 @@
         validator.validate(new StreamSource(ParticleTest.class.getResourceAsStream("upa01.xml")));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/RegexWord.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/RegexWord.java	Wed Sep 14 11:22:39 2016 -0700
@@ -63,4 +63,3 @@
         validator.validate(new StreamSource(RegexWord.class.getResourceAsStream("reZ003vExc23082309.xml")));
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991857.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991857.java	Wed Sep 14 11:22:39 2016 -0700
@@ -92,4 +92,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991939.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991939.java	Wed Sep 14 11:22:39 2016 -0700
@@ -61,4 +61,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992788.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992788.java	Wed Sep 14 11:22:39 2016 -0700
@@ -82,4 +82,3 @@
         return xpath;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992793.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992793.java	Wed Sep 14 11:22:39 2016 -0700
@@ -83,4 +83,3 @@
         return xpath;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992805.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992805.java	Wed Sep 14 11:22:39 2016 -0700
@@ -70,4 +70,3 @@
         return xpath;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/ClassLoaderTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/ClassLoaderTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -54,4 +54,3 @@
 
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/MyClassLoader.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/MyClassLoader.java	Wed Sep 14 11:22:39 2016 -0700
@@ -47,4 +47,3 @@
         return isCalled;
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/SecureProcessingTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/SecureProcessingTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -196,4 +196,3 @@
         }
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathAnyTypeTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathAnyTypeTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -200,4 +200,3 @@
         verifyResult(result, "Customer");
     }
 }
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathExpAnyTypeTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathExpAnyTypeTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -187,4 +187,3 @@
     }
 
 }
-
--- a/jaxws/.hgtags	Sat Sep 10 12:18:34 2016 -0700
+++ b/jaxws/.hgtags	Wed Sep 14 11:22:39 2016 -0700
@@ -380,3 +380,4 @@
 9fff2477a4cadf2a9618a76f1f4fe0f20bb5ff3b jdk-9+132
 05e99eefda2b58d1ed176e411302d9d6b35dca16 jdk-9+133
 ab1d78d395d4cb8be426ff181211da1a4085cf01 jdk-9+134
+22631824f55128a7ab6605493b3001a37af6a168 jdk-9+135
--- a/jdk/make/gendata/GendataBreakIterator.gmk	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/make/gendata/GendataBreakIterator.gmk	Wed Sep 14 11:22:39 2016 -0700
@@ -81,7 +81,7 @@
 
 # output
 BASE_DATA_PKG_DIR := $(JDK_OUTPUTDIR)/modules/java.base/sun/text/resources
-LD_DATA_PKG_DIR := $(JDK_OUTPUTDIR)/modules/jdk.localedata/sun/text/resources
+LD_DATA_PKG_DIR := $(JDK_OUTPUTDIR)/modules/jdk.localedata/sun/text/resources/ext
 BIFILES := $(BASE_DATA_PKG_DIR)/CharacterBreakIteratorData \
     $(BASE_DATA_PKG_DIR)/WordBreakIteratorData \
     $(BASE_DATA_PKG_DIR)/LineBreakIteratorData \
--- a/jdk/make/mapfiles/libattach/mapfile-linux	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/make/mapfiles/libattach/mapfile-linux	Wed Sep 14 11:22:39 2016 -0700
@@ -30,8 +30,6 @@
 	    Java_sun_tools_attach_VirtualMachineImpl_checkPermissions;
 	    Java_sun_tools_attach_VirtualMachineImpl_close;
 	    Java_sun_tools_attach_VirtualMachineImpl_connect;
-	    Java_sun_tools_attach_VirtualMachineImpl_getLinuxThreadsManager;
-	    Java_sun_tools_attach_VirtualMachineImpl_isLinuxThreads;
 	    Java_sun_tools_attach_VirtualMachineImpl_open;
 	    Java_sun_tools_attach_VirtualMachineImpl_sendQuitTo;
             Java_sun_tools_attach_VirtualMachineImpl_sendQuitToChildrenOf;
--- a/jdk/src/java.base/aix/native/libnet/aix_close.c	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/aix/native/libnet/aix_close.c	Wed Sep 14 11:22:39 2016 -0700
@@ -410,6 +410,10 @@
     BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) );
 }
 
+int NET_NonBlockingRead(int s, void* buf, size_t len) {
+    BLOCKING_IO_RETURN_INT(s, recv(s, buf, len, MSG_NONBLOCK));
+}
+
 int NET_ReadV(int s, const struct iovec * vector, int count) {
     BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) );
 }
@@ -503,8 +507,8 @@
  * Auto restarts with adjusted timeout if interrupted by
  * signal other than our wakeup signal.
  */
-int NET_Timeout(int s, long timeout) {
-    long prevtime = 0, newtime;
+int NET_Timeout0(int s, long timeout, long currentTime) {
+    long prevtime = currentTime, newtime;
     struct timeval t;
     fdEntry_t *fdEntry = getFdEntry(s);
 
@@ -516,14 +520,6 @@
         return -1;
     }
 
-    /*
-     * Pick up current time as may need to adjust timeout
-     */
-    if (timeout > 0) {
-        gettimeofday(&t, NULL);
-        prevtime = t.tv_sec * 1000  +  t.tv_usec / 1000;
-    }
-
     for(;;) {
         struct pollfd pfd;
         int rv;
--- a/jdk/src/java.base/linux/native/libnet/linux_close.c	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/linux/native/libnet/linux_close.c	Wed Sep 14 11:22:39 2016 -0700
@@ -367,6 +367,10 @@
     BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) );
 }
 
+int NET_NonBlockingRead(int s, void* buf, size_t len) {
+    BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, MSG_DONTWAIT) );
+}
+
 int NET_ReadV(int s, const struct iovec * vector, int count) {
     BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) );
 }
@@ -406,8 +410,8 @@
  * Auto restarts with adjusted timeout if interrupted by
  * signal other than our wakeup signal.
  */
-int NET_Timeout(int s, long timeout) {
-    long prevtime = 0, newtime;
+int NET_Timeout0(int s, long timeout, long currentTime) {
+    long prevtime = currentTime, newtime;
     struct timeval t;
     fdEntry_t *fdEntry = getFdEntry(s);
 
@@ -419,14 +423,6 @@
         return -1;
     }
 
-    /*
-     * Pick up current time as may need to adjust timeout
-     */
-    if (timeout > 0) {
-        gettimeofday(&t, NULL);
-        prevtime = t.tv_sec * 1000  +  t.tv_usec / 1000;
-    }
-
     for(;;) {
         struct pollfd pfd;
         int rv;
--- a/jdk/src/java.base/macosx/native/libnet/bsd_close.c	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/macosx/native/libnet/bsd_close.c	Wed Sep 14 11:22:39 2016 -0700
@@ -371,6 +371,10 @@
     BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, 0) );
 }
 
+int NET_NonBlockingRead(int s, void* buf, size_t len) {
+    BLOCKING_IO_RETURN_INT( s, recv(s, buf, len, MSG_DONTWAIT));
+}
+
 int NET_ReadV(int s, const struct iovec * vector, int count) {
     BLOCKING_IO_RETURN_INT( s, readv(s, vector, count) );
 }
@@ -410,8 +414,8 @@
  * Auto restarts with adjusted timeout if interrupted by
  * signal other than our wakeup signal.
  */
-int NET_Timeout(int s, long timeout) {
-    long prevtime = 0, newtime;
+int NET_Timeout0(int s, long timeout, long currentTime) {
+    long prevtime = currentTime, newtime;
     struct timeval t, *tp = &t;
     fd_set fds;
     fd_set* fdsp = NULL;
@@ -432,9 +436,6 @@
      */
     if (timeout > 0) {
         /* Timed */
-        struct timeval now;
-        gettimeofday(&now, NULL);
-        prevtime = now.tv_sec * 1000  +  now.tv_usec / 1000;
         t.tv_sec = timeout / 1000;
         t.tv_usec = (timeout % 1000) * 1000;
     } else if (timeout < 0) {
--- a/jdk/src/java.base/share/classes/java/lang/StringConcatHelper.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/lang/StringConcatHelper.java	Wed Sep 14 11:22:39 2016 -0700
@@ -334,11 +334,15 @@
     /**
      * Instantiates the String with given buffer and coder
      * @param buf     buffer to use
+     * @param index   remaining index
      * @param coder   coder to use
      * @return String resulting string
      */
-    static String newString(byte[] buf, byte coder) {
+    static String newString(byte[] buf, int index, byte coder) {
         // Use the private, non-copying constructor (unsafe!)
+        if (index != 0) {
+            throw new InternalError("Storage is not completely initialized, " + index + " bytes left");
+        }
         return new String(buf, coder);
     }
 
--- a/jdk/src/java.base/share/classes/java/lang/invoke/LambdaFormEditor.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/LambdaFormEditor.java	Wed Sep 14 11:22:39 2016 -0700
@@ -83,7 +83,9 @@
                 FOLD_ARGS = 11,
                 FOLD_ARGS_TO_VOID = 12,
                 PERMUTE_ARGS = 13,
-                LOCAL_TYPES = 14;
+                LOCAL_TYPES = 14,
+                FOLD_SELECT_ARGS = 15,
+                FOLD_SELECT_ARGS_TO_VOID = 16;
 
         private static final boolean STRESS_TEST = false; // turn on to disable most packing
         private static final int
@@ -695,6 +697,72 @@
         return buf.endEdit();
     }
 
+    private LambdaForm makeArgumentCombinationForm(int pos,
+                                                   MethodType combinerType,
+                                                   int[] argPositions,
+                                                   boolean keepArguments,
+                                                   boolean dropResult) {
+        LambdaFormBuffer buf = buffer();
+        buf.startEdit();
+        int combinerArity = combinerType.parameterCount();
+        assert(combinerArity == argPositions.length);
+
+        int resultArity = (dropResult ? 0 : 1);
+
+        assert(pos <= lambdaForm.arity);
+        assert(pos > 0);  // cannot filter the MH arg itself
+        assert(combinerType == combinerType.basicType());
+        assert(combinerType.returnType() != void.class || dropResult);
+
+        BoundMethodHandle.SpeciesData oldData = oldSpeciesData();
+        BoundMethodHandle.SpeciesData newData = newSpeciesData(L_TYPE);
+
+        // The newly created LF will run with a different BMH.
+        // Switch over any pre-existing BMH field references to the new BMH class.
+        Name oldBaseAddress = lambdaForm.parameter(0);  // BMH holding the values
+        buf.replaceFunctions(oldData.getterFunctions(), newData.getterFunctions(), oldBaseAddress);
+        Name newBaseAddress = oldBaseAddress.withConstraint(newData);
+        buf.renameParameter(0, newBaseAddress);
+
+        Name getCombiner = new Name(newData.getterFunction(oldData.fieldCount()), newBaseAddress);
+        Object[] combinerArgs = new Object[1 + combinerArity];
+        combinerArgs[0] = getCombiner;
+        Name[] newParams;
+        if (keepArguments) {
+            newParams = new Name[0];
+            for (int i = 0; i < combinerArity; i++) {
+                combinerArgs[i + 1] = lambdaForm.parameter(1 + argPositions[i]);
+                assert (basicType(combinerType.parameterType(i)) == lambdaForm.parameterType(1 + argPositions[i]));
+            }
+        } else {
+            newParams = new Name[combinerArity];
+            for (int i = 0; i < newParams.length; i++) {
+                newParams[i] = lambdaForm.parameter(1 + argPositions[i]);
+                assert (basicType(combinerType.parameterType(i)) == lambdaForm.parameterType(1 + argPositions[i]));
+            }
+            System.arraycopy(newParams, 0,
+                             combinerArgs, 1, combinerArity);
+        }
+        Name callCombiner = new Name(combinerType, combinerArgs);
+
+        // insert the two new expressions
+        int exprPos = lambdaForm.arity();
+        buf.insertExpression(exprPos+0, getCombiner);
+        buf.insertExpression(exprPos+1, callCombiner);
+
+        // insert new arguments, if needed
+        int argPos = pos + resultArity;  // skip result parameter
+        for (Name newParam : newParams) {
+            buf.insertParameter(argPos++, newParam);
+        }
+        assert(buf.lastIndexOf(callCombiner) == exprPos+1+newParams.length);
+        if (!dropResult) {
+            buf.replaceParameterByCopy(pos, exprPos+1+newParams.length);
+        }
+
+        return buf.endEdit();
+    }
+
     LambdaForm filterReturnForm(BasicType newType, boolean constantZero) {
         byte kind = (constantZero ? Transform.FILTER_RETURN_TO_ZERO : Transform.FILTER_RETURN);
         Transform key = Transform.of(kind, newType.ordinal());
@@ -759,6 +827,21 @@
         return putInCache(key, form);
     }
 
+    LambdaForm foldArgumentsForm(int foldPos, boolean dropResult, MethodType combinerType, int ... argPositions) {
+        byte kind = (dropResult ? Transform.FOLD_SELECT_ARGS_TO_VOID
+                                : Transform.FOLD_SELECT_ARGS);
+        int[] keyArgs = Arrays.copyOf(argPositions, argPositions.length + 1);
+        keyArgs[argPositions.length] = foldPos;
+        Transform key = Transform.of(kind, keyArgs);
+        LambdaForm form = getInCache(key);
+        if (form != null) {
+            assert(form.arity == lambdaForm.arity - (kind == Transform.FOLD_SELECT_ARGS ? 1 : 0));
+            return form;
+        }
+        form = makeArgumentCombinationForm(foldPos, combinerType, argPositions, true, dropResult);
+        return putInCache(key, form);
+    }
+
     LambdaForm permuteArgumentsForm(int skip, int[] reorder) {
         assert(skip == 1);  // skip only the leading MH argument, names[0]
         int length = lambdaForm.names.length;
--- a/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandles.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandles.java	Wed Sep 14 11:22:39 2016 -0700
@@ -3943,6 +3943,33 @@
         return rtype;
     }
 
+    private static Class<?> foldArgumentChecks(int foldPos, MethodType targetType, MethodType combinerType, int ... argPos) {
+        int foldArgs = combinerType.parameterCount();
+        if (argPos.length != foldArgs) {
+            throw newIllegalArgumentException("combiner and argument map must be equal size", combinerType, argPos.length);
+        }
+        Class<?> rtype = combinerType.returnType();
+        int foldVals = rtype == void.class ? 0 : 1;
+        boolean ok = true;
+        for (int i = 0; i < foldArgs; i++) {
+            int arg = argPos[i];
+            if (arg < 0 || arg > targetType.parameterCount()) {
+                throw newIllegalArgumentException("arg outside of target parameterRange", targetType, arg);
+            }
+            if (combinerType.parameterType(i) != targetType.parameterType(arg)) {
+                throw newIllegalArgumentException("target argument type at position " + arg
+                        + " must match combiner argument type at index " + i + ": " + targetType
+                        + " -> " + combinerType + ", map: " + Arrays.toString(argPos));
+            }
+        }
+        if (ok && foldVals != 0 && combinerType.returnType() != targetType.parameterType(foldPos)) {
+            ok = false;
+        }
+        if (!ok)
+            throw misMatchedTypes("target and combiner types", targetType, combinerType);
+        return rtype;
+    }
+
     /**
      * Makes a method handle which adapts a target method handle,
      * by guarding it with a test, a boolean-valued method handle.
@@ -4949,6 +4976,27 @@
         return result;
     }
 
+    /**
+     * As {@see foldArguments(MethodHandle, int, MethodHandle)}, but with the
+     * added capability of selecting the arguments from the targets parameters
+     * to call the combiner with. This allows us to avoid some simple cases of
+     * permutations and padding the combiner with dropArguments to select the
+     * right argument, which may ultimately produce fewer intermediaries.
+     */
+    static MethodHandle foldArguments(MethodHandle target, int pos, MethodHandle combiner, int ... argPositions) {
+        MethodType targetType = target.type();
+        MethodType combinerType = combiner.type();
+        Class<?> rtype = foldArgumentChecks(pos, targetType, combinerType, argPositions);
+        BoundMethodHandle result = target.rebind();
+        boolean dropResult = rtype == void.class;
+        LambdaForm lform = result.editor().foldArgumentsForm(1 + pos, dropResult, combinerType.basicType(), argPositions);
+        MethodType newType = targetType;
+        if (!dropResult) {
+            newType = newType.dropParameterTypes(pos, pos + 1);
+        }
+        result = result.copyWithExtendL(newType, lform, combiner);
+        return result;
+    }
 
     private static void checkLoop0(MethodHandle[][] clauses) {
         if (clauses == null || clauses.length == 0) {
--- a/jdk/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java	Wed Sep 14 11:22:39 2016 -0700
@@ -563,9 +563,8 @@
         }
 
         if ((lookup.lookupModes() & MethodHandles.Lookup.PRIVATE) == 0) {
-            throw new StringConcatException(String.format(
-                    "Invalid caller: %s",
-                    lookup.lookupClass().getName()));
+            throw new StringConcatException("Invalid caller: " +
+                    lookup.lookupClass().getName());
         }
 
         int cCount = 0;
@@ -1494,51 +1493,41 @@
             // Drop all remaining parameter types, leave only helper arguments:
             MethodHandle mh;
 
-            mh = MethodHandles.dropArguments(NEW_STRING, 2, ptypes);
-            mh = MethodHandles.dropArguments(mh, 0, int.class);
+            mh = MethodHandles.dropArguments(NEW_STRING, 3, ptypes);
 
-            // Safety: check that remaining index is zero -- that would mean the storage is completely
-            // overwritten, and no leakage of uninitialized data occurred.
-            mh = MethodHandles.filterArgument(mh, 0, CHECK_INDEX);
-
-            // Mix in prependers. This happens when (int, byte[], byte) = (index, storage, coder) is already
+            // Mix in prependers. This happens when (byte[], int, byte) = (storage, index, coder) is already
             // known from the combinators below. We are assembling the string backwards, so "index" is the
             // *ending* index.
             for (RecipeElement el : recipe.getElements()) {
-                MethodHandle prepender;
+                // Do the prepend, and put "new" index at index 1
+                mh = MethodHandles.dropArguments(mh, 2, int.class);
                 switch (el.getTag()) {
-                    case TAG_CONST:
+                    case TAG_CONST: {
                         Object cnst = el.getValue();
-                        prepender = MethodHandles.insertArguments(prepender(cnst.getClass()), 3, cnst);
+                        MethodHandle prepender = MethodHandles.insertArguments(prepender(cnst.getClass()), 3, cnst);
+                        mh = MethodHandles.foldArguments(mh, 1, prepender,
+                                2, 0, 3 // index, storage, coder
+                        );
                         break;
-                    case TAG_ARG:
+                    }
+                    case TAG_ARG: {
                         int pos = el.getArgPos();
-                        prepender = selectArgument(prepender(ptypes[pos]), 3, ptypes, pos);
+                        MethodHandle prepender = prepender(ptypes[pos]);
+                        mh = MethodHandles.foldArguments(mh, 1, prepender,
+                                2, 0, 3, // index, storage, coder
+                                4 + pos  // selected argument
+                        );
                         break;
+                    }
                     default:
                         throw new StringConcatException("Unhandled tag: " + el.getTag());
                 }
-
-                // Remove "old" index from arguments
-                mh = MethodHandles.dropArguments(mh, 1, int.class);
-
-                // Do the prepend, and put "new" index at index 0
-                mh = MethodHandles.foldArguments(mh, prepender);
             }
 
-            // Prepare the argument list for prepending. The tree below would instantiate
-            // the storage byte[] into argument 0, so we need to swap "storage" and "index".
-            // The index at this point equals to "size", and resides at argument 1.
-            {
-                MethodType nmt = mh.type()
-                        .changeParameterType(0, byte[].class)
-                        .changeParameterType(1, int.class);
-                mh = MethodHandles.permuteArguments(mh, nmt, swap10(nmt.parameterCount()));
-            }
-
-            // Fold in byte[] instantiation at argument 0.
-            MethodHandle combiner = MethodHandles.dropArguments(NEW_ARRAY, 2, ptypes);
-            mh = MethodHandles.foldArguments(mh, combiner);
+            // Fold in byte[] instantiation at argument 0
+            mh = MethodHandles.foldArguments(mh, 0, NEW_ARRAY,
+                    1, 2 // index, coder
+            );
 
             // Start combining length and coder mixers.
             //
@@ -1567,12 +1556,8 @@
                         int ac = el.getArgPos();
 
                         Class<?> argClass = ptypes[ac];
-                        MethodHandle lm = selectArgument(lengthMixer(argClass), 1, ptypes, ac);
-                        lm = MethodHandles.dropArguments(lm, 0, byte.class); // (*)
-                        lm = MethodHandles.dropArguments(lm, 2, byte.class);
-
-                        MethodHandle cm = selectArgument(coderMixer(argClass),  1, ptypes, ac);
-                        cm = MethodHandles.dropArguments(cm, 0, int.class);  // (**)
+                        MethodHandle lm = lengthMixer(argClass);
+                        MethodHandle cm = coderMixer(argClass);
 
                         // Read this bottom up:
 
@@ -1580,12 +1565,18 @@
                         mh = MethodHandles.dropArguments(mh, 2, int.class, byte.class);
 
                         // 3. Compute "new-index", producing ("new-index", "new-coder", "old-index", "old-coder", <args>)
-                        //    Length mixer ignores both "new-coder" and "old-coder" due to dropArguments above (*)
-                        mh = MethodHandles.foldArguments(mh, lm);
+                        //    Length mixer needs old index, plus the appropriate argument
+                        mh = MethodHandles.foldArguments(mh, 0, lm,
+                                2, // old-index
+                                4 + ac // selected argument
+                        );
 
                         // 2. Compute "new-coder", producing ("new-coder", "old-index", "old-coder", <args>)
-                        //    Coder mixer ignores the "old-index" arg due to dropArguments above (**)
-                        mh = MethodHandles.foldArguments(mh, cm);
+                        //    Coder mixer needs old coder, plus the appropriate argument.
+                        mh = MethodHandles.foldArguments(mh, 0, cm,
+                                2, // old-coder
+                                3 + ac // selected argument
+                        );
 
                         // 1. The mh shape here is ("old-index", "old-coder", <args>)
                         break;
@@ -1606,41 +1597,11 @@
             return mh;
         }
 
-        private static int[] swap10(int count) {
-            int[] perm = new int[count];
-            perm[0] = 1;
-            perm[1] = 0;
-            for (int i = 2; i < count; i++) {
-                perm[i] = i;
-            }
-            return perm;
-        }
-
-        // Adapts: (...prefix..., parameter[pos])R -> (...prefix..., ...parameters...)R
-        private static MethodHandle selectArgument(MethodHandle mh, int prefix, Class<?>[] ptypes, int pos) {
-            if (pos == 0) {
-                return MethodHandles.dropArguments(mh, prefix + 1, Arrays.copyOfRange(ptypes, 1, ptypes.length));
-            } else if (pos == ptypes.length - 1) {
-                return MethodHandles.dropArguments(mh, prefix, Arrays.copyOf(ptypes, ptypes.length - 1));
-            } else { // 0 < pos < ptypes.size() - 1
-                MethodHandle t = MethodHandles.dropArguments(mh, prefix, Arrays.copyOf(ptypes, pos));
-                return MethodHandles.dropArguments(t, prefix + 1 + pos, Arrays.copyOfRange(ptypes, pos + 1, ptypes.length));
-            }
-        }
-
         @ForceInline
         private static byte[] newArray(int length, byte coder) {
             return (byte[]) UNSAFE.allocateUninitializedArray(byte.class, length << coder);
         }
 
-        @ForceInline
-        private static int checkIndex(int index) {
-            if (index != 0) {
-                throw new IllegalStateException("Storage is not completely initialized, " + index + " bytes left");
-            }
-            return index;
-        }
-
         private static MethodHandle prepender(Class<?> cl) {
             return PREPENDERS.computeIfAbsent(cl, PREPEND);
         }
@@ -1678,7 +1639,6 @@
         };
 
         private static final MethodHandle NEW_STRING;
-        private static final MethodHandle CHECK_INDEX;
         private static final MethodHandle NEW_ARRAY;
         private static final ConcurrentMap<Class<?>, MethodHandle> PREPENDERS;
         private static final ConcurrentMap<Class<?>, MethodHandle> LENGTH_MIXERS;
@@ -1699,9 +1659,8 @@
             LENGTH_MIXERS = new ConcurrentHashMap<>();
             CODER_MIXERS = new ConcurrentHashMap<>();
 
-            NEW_STRING = lookupStatic(Lookup.IMPL_LOOKUP, STRING_HELPER, "newString", String.class, byte[].class, byte.class);
+            NEW_STRING = lookupStatic(Lookup.IMPL_LOOKUP, STRING_HELPER, "newString", String.class, byte[].class, int.class, byte.class);
             NEW_ARRAY  = lookupStatic(Lookup.IMPL_LOOKUP, MethodHandleInlineCopyStrategy.class, "newArray", byte[].class, int.class, byte.class);
-            CHECK_INDEX = lookupStatic(Lookup.IMPL_LOOKUP, MethodHandleInlineCopyStrategy.class, "checkIndex", int.class, int.class);
         }
     }
 
--- a/jdk/src/java.base/share/classes/java/util/ArrayDeque.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/ArrayDeque.java	Wed Sep 14 11:22:39 2016 -0700
@@ -81,8 +81,8 @@
  * Java Collections Framework</a>.
  *
  * @author  Josh Bloch and Doug Lea
+ * @param <E> the type of elements held in this deque
  * @since   1.6
- * @param <E> the type of elements held in this deque
  */
 public class ArrayDeque<E> extends AbstractCollection<E>
                            implements Deque<E>, Cloneable, Serializable
--- a/jdk/src/java.base/share/classes/java/util/PriorityQueue.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/PriorityQueue.java	Wed Sep 14 11:22:39 2016 -0700
@@ -749,11 +749,11 @@
     /**
      * Saves this queue to a stream (that is, serializes it).
      *
+     * @param s the stream
+     * @throws java.io.IOException if an I/O error occurs
      * @serialData The length of the array backing the instance is
      *             emitted (int), followed by all of its elements
      *             (each an {@code Object}) in the proper order.
-     * @param s the stream
-     * @throws java.io.IOException if an I/O error occurs
      */
     private void writeObject(java.io.ObjectOutputStream s)
         throws java.io.IOException {
--- a/jdk/src/java.base/share/classes/java/util/concurrent/CompletableFuture.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/CompletableFuture.java	Wed Sep 14 11:22:39 2016 -0700
@@ -136,9 +136,9 @@
  * }}</pre>
  *
  * @author Doug Lea
- * @since 1.8
  * @param <T> The result type returned by this future's {@code join}
  * and {@code get} methods
+ * @since 1.8
  */
 public class CompletableFuture<T> implements Future<T>, CompletionStage<T> {
 
--- a/jdk/src/java.base/share/classes/java/util/concurrent/CountedCompleter.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/CountedCompleter.java	Wed Sep 14 11:22:39 2016 -0700
@@ -120,102 +120,114 @@
  * to complete for some elements than others, either because of
  * intrinsic variation (for example I/O) or auxiliary effects such as
  * garbage collection.  Because CountedCompleters provide their own
- * continuations, other threads need not block waiting to perform
- * them.
+ * continuations, other tasks need not block waiting to perform them.
  *
- * <p>For example, here is an initial version of a class that uses
- * divide-by-two recursive decomposition to divide work into single
- * pieces (leaf tasks). Even when work is split into individual calls,
- * tree-based techniques are usually preferable to directly forking
- * leaf tasks, because they reduce inter-thread communication and
- * improve load balancing. In the recursive case, the second of each
- * pair of subtasks to finish triggers completion of its parent
+ * <p>For example, here is an initial version of a utility method that
+ * uses divide-by-two recursive decomposition to divide work into
+ * single pieces (leaf tasks). Even when work is split into individual
+ * calls, tree-based techniques are usually preferable to directly
+ * forking leaf tasks, because they reduce inter-thread communication
+ * and improve load balancing. In the recursive case, the second of
+ * each pair of subtasks to finish triggers completion of their parent
  * (because no result combination is performed, the default no-op
  * implementation of method {@code onCompletion} is not overridden).
- * A static utility method sets up the base task and invokes it
- * (here, implicitly using the {@link ForkJoinPool#commonPool()}).
+ * The utility method sets up the root task and invokes it (here,
+ * implicitly using the {@link ForkJoinPool#commonPool()}).  It is
+ * straightforward and reliable (but not optimal) to always set the
+ * pending count to the number of child tasks and call {@code
+ * tryComplete()} immediately before returning.
  *
  * <pre> {@code
- * class MyOperation<E> { void apply(E e) { ... }  }
- *
- * class ForEach<E> extends CountedCompleter<Void> {
+ * public static <E> void forEach(E[] array, Consumer<E> action) {
+ *   class Task extends CountedCompleter<Void> {
+ *     final int lo, hi;
+ *     Task(Task parent, int lo, int hi) {
+ *       super(parent); this.lo = lo; this.hi = hi;
+ *     }
  *
- *   public static <E> void forEach(E[] array, MyOperation<E> op) {
- *     new ForEach<E>(null, array, op, 0, array.length).invoke();
- *   }
- *
- *   final E[] array; final MyOperation<E> op; final int lo, hi;
- *   ForEach(CountedCompleter<?> p, E[] array, MyOperation<E> op, int lo, int hi) {
- *     super(p);
- *     this.array = array; this.op = op; this.lo = lo; this.hi = hi;
+ *     public void compute() {
+ *       if (hi - lo >= 2) {
+ *         int mid = (lo + hi) >>> 1;
+ *         // must set pending count before fork
+ *         setPendingCount(2);
+ *         new Task(this, mid, hi).fork(); // right child
+ *         new Task(this, lo, mid).fork(); // left child
+ *       }
+ *       else if (hi > lo)
+ *         action.accept(array[lo]);
+ *       tryComplete();
+ *     }
  *   }
- *
- *   public void compute() { // version 1
- *     if (hi - lo >= 2) {
- *       int mid = (lo + hi) >>> 1;
- *       setPendingCount(2); // must set pending count before fork
- *       new ForEach(this, array, op, mid, hi).fork(); // right child
- *       new ForEach(this, array, op, lo, mid).fork(); // left child
- *     }
- *     else if (hi > lo)
- *       op.apply(array[lo]);
- *     tryComplete();
- *   }
+ *   new Task(null, 0, array.length).invoke();
  * }}</pre>
  *
  * This design can be improved by noticing that in the recursive case,
  * the task has nothing to do after forking its right task, so can
  * directly invoke its left task before returning. (This is an analog
- * of tail recursion removal.)  Also, because the task returns upon
- * executing its left task (rather than falling through to invoke
- * {@code tryComplete}) the pending count is set to one:
+ * of tail recursion removal.)  Also, when the last action in a task
+ * is to fork or invoke a subtask (a "tail call"), the call to {@code
+ * tryComplete()} can be optimized away, at the cost of making the
+ * pending count look "off by one".
  *
  * <pre> {@code
- * class ForEach<E> ... {
- *   ...
- *   public void compute() { // version 2
- *     if (hi - lo >= 2) {
- *       int mid = (lo + hi) >>> 1;
- *       setPendingCount(1); // only one pending
- *       new ForEach(this, array, op, mid, hi).fork(); // right child
- *       new ForEach(this, array, op, lo, mid).compute(); // direct invoke
- *     }
- *     else {
- *       if (hi > lo)
- *         op.apply(array[lo]);
- *       tryComplete();
- *     }
- *   }
- * }}</pre>
+ *     public void compute() {
+ *       if (hi - lo >= 2) {
+ *         int mid = (lo + hi) >>> 1;
+ *         setPendingCount(1); // looks off by one, but correct!
+ *         new Task(this, mid, hi).fork(); // right child
+ *         new Task(this, lo, mid).compute(); // direct invoke
+ *       } else {
+ *         if (hi > lo)
+ *           action.accept(array[lo]);
+ *         tryComplete();
+ *       }
+ *     }}</pre>
  *
  * As a further optimization, notice that the left task need not even exist.
- * Instead of creating a new one, we can iterate using the original task,
+ * Instead of creating a new one, we can continue using the original task,
  * and add a pending count for each fork.  Additionally, because no task
  * in this tree implements an {@link #onCompletion(CountedCompleter)} method,
- * {@code tryComplete()} can be replaced with {@link #propagateCompletion}.
+ * {@code tryComplete} can be replaced with {@link #propagateCompletion}.
+ *
+ * <pre> {@code
+ *     public void compute() {
+ *       int n = hi - lo;
+ *       for (; n >= 2; n /= 2) {
+ *         addToPendingCount(1);
+ *         new Task(this, lo + n/2, lo + n).fork();
+ *       }
+ *       if (n > 0)
+ *         action.accept(array[lo]);
+ *       propagateCompletion();
+ *     }}</pre>
+ *
+ * When pending counts can be precomputed, they can be established in
+ * the constructor:
  *
  * <pre> {@code
- * class ForEach<E> ... {
- *   ...
- *   public void compute() { // version 3
- *     int l = lo, h = hi;
- *     while (h - l >= 2) {
- *       int mid = (l + h) >>> 1;
- *       addToPendingCount(1);
- *       new ForEach(this, array, op, mid, h).fork(); // right child
- *       h = mid;
+ * public static <E> void forEach(E[] array, Consumer<E> action) {
+ *   class Task extends CountedCompleter<Void> {
+ *     final int lo, hi;
+ *     Task(Task parent, int lo, int hi) {
+ *       super(parent, 31 - Integer.numberOfLeadingZeros(hi - lo));
+ *       this.lo = lo; this.hi = hi;
  *     }
- *     if (h > l)
- *       op.apply(array[l]);
- *     propagateCompletion();
+ *
+ *     public void compute() {
+ *       for (int n = hi - lo; n >= 2; n /= 2)
+ *         new Task(this, lo + n/2, lo + n).fork();
+ *       action.accept(array[lo]);
+ *       propagateCompletion();
+ *     }
  *   }
+ *   if (array.length > 0)
+ *     new Task(null, 0, array.length).invoke();
  * }}</pre>
  *
- * Additional optimizations of such classes might entail precomputing
- * pending counts so that they can be established in constructors,
- * specializing classes for leaf steps, subdividing by say, four,
- * instead of two per iteration, and using an adaptive threshold
- * instead of always subdividing down to single elements.
+ * Additional optimizations of such classes might entail specializing
+ * classes for leaf steps, subdividing by say, four, instead of two
+ * per iteration, and using an adaptive threshold instead of always
+ * subdividing down to single elements.
  *
  * <p><b>Searching.</b> A tree of CountedCompleters can search for a
  * value or property in different parts of a data structure, and
--- a/jdk/src/java.base/share/classes/java/util/concurrent/CyclicBarrier.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/CyclicBarrier.java	Wed Sep 14 11:22:39 2016 -0700
@@ -132,10 +132,10 @@
  * <i>happen-before</i> actions following a successful return from the
  * corresponding {@code await()} in other threads.
  *
- * @since 1.5
  * @see CountDownLatch
  *
  * @author Doug Lea
+ * @since 1.5
  */
 public class CyclicBarrier {
     /**
--- a/jdk/src/java.base/share/classes/java/util/concurrent/Flow.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/Flow.java	Wed Sep 14 11:22:39 2016 -0700
@@ -68,7 +68,7 @@
  *   private boolean subscribed; // true after first subscribe
  *   public synchronized void subscribe(Subscriber<? super Boolean> subscriber) {
  *     if (subscribed)
- *        subscriber.onError(new IllegalStateException()); // only one allowed
+ *       subscriber.onError(new IllegalStateException()); // only one allowed
  *     else {
  *       subscribed = true;
  *       subscriber.onSubscribe(new OneShotSubscription(subscriber, executor));
--- a/jdk/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java	Wed Sep 14 11:22:39 2016 -0700
@@ -130,7 +130,7 @@
  * </table>
  *
  * <p>The common pool is by default constructed with default
- * parameters, but these may be controlled by setting three
+ * parameters, but these may be controlled by setting the following
  * {@linkplain System#getProperty system properties}:
  * <ul>
  * <li>{@code java.util.concurrent.ForkJoinPool.common.parallelism}
@@ -3241,7 +3241,7 @@
          * An ACC to restrict permissions for the factory itself.
          * The constructed workers have no permissions set.
          */
-        private static final AccessControlContext innocuousAcc;
+        private static final AccessControlContext INNOCUOUS_ACC;
         static {
             Permissions innocuousPerms = new Permissions();
             innocuousPerms.add(modifyThreadPermission);
@@ -3249,7 +3249,7 @@
                                    "enableContextClassLoaderOverride"));
             innocuousPerms.add(new RuntimePermission(
                                    "modifyThreadGroup"));
-            innocuousAcc = new AccessControlContext(new ProtectionDomain[] {
+            INNOCUOUS_ACC = new AccessControlContext(new ProtectionDomain[] {
                     new ProtectionDomain(null, innocuousPerms)
                 });
         }
@@ -3260,7 +3260,7 @@
                     public ForkJoinWorkerThread run() {
                         return new ForkJoinWorkerThread.
                             InnocuousForkJoinWorkerThread(pool);
-                    }}, innocuousAcc);
+                    }}, INNOCUOUS_ACC);
         }
     }
 
--- a/jdk/src/java.base/share/classes/java/util/concurrent/Semaphore.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/Semaphore.java	Wed Sep 14 11:22:39 2016 -0700
@@ -72,8 +72,8 @@
  *   protected synchronized Object getNextAvailableItem() {
  *     for (int i = 0; i < MAX_AVAILABLE; ++i) {
  *       if (!used[i]) {
- *          used[i] = true;
- *          return items[i];
+ *         used[i] = true;
+ *         return items[i];
  *       }
  *     }
  *     return null; // not reached
@@ -82,11 +82,11 @@
  *   protected synchronized boolean markAsUnused(Object item) {
  *     for (int i = 0; i < MAX_AVAILABLE; ++i) {
  *       if (item == items[i]) {
- *          if (used[i]) {
- *            used[i] = false;
- *            return true;
- *          } else
- *            return false;
+ *         if (used[i]) {
+ *           used[i] = false;
+ *           return true;
+ *         } else
+ *           return false;
  *       }
  *     }
  *     return false;
--- a/jdk/src/java.base/share/classes/java/util/concurrent/SubmissionPublisher.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/SubmissionPublisher.java	Wed Sep 14 11:22:39 2016 -0700
@@ -554,8 +554,9 @@
                 while (r != null) {
                     BufferedSubscription<T> nextRetry = r.nextRetry;
                     r.nextRetry = null;
-                    int stat = (nanos > 0L) ? r.timedOffer(item, nanos) :
-                        r.offer(item);
+                    int stat = (nanos > 0L)
+                        ? r.timedOffer(item, nanos)
+                        : r.offer(item);
                     if (stat == 0 && onDrop != null &&
                         onDrop.test(r.subscriber, item))
                         stat = r.offer(item);
--- a/jdk/src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java	Wed Sep 14 11:22:39 2016 -0700
@@ -617,6 +617,9 @@
         /** Per-thread task counter */
         volatile long completedTasks;
 
+        // TODO: switch to AbstractQueuedLongSynchronizer and move
+        // completedTasks into the lock word.
+
         /**
          * Creates with given first task and thread from ThreadFactory.
          * @param firstTask the first task (null if none)
--- a/jdk/src/java.base/share/classes/java/util/concurrent/atomic/AtomicInteger.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/atomic/AtomicInteger.java	Wed Sep 14 11:22:39 2016 -0700
@@ -193,7 +193,7 @@
 
     /**
      * Atomically increments the current value,
-     * with memory effects as specified by {@link VarHandle#addAndGet}.
+     * with memory effects as specified by {@link VarHandle#getAndAdd}.
      *
      * <p>Equivalent to {@code addAndGet(1)}.
      *
@@ -205,7 +205,7 @@
 
     /**
      * Atomically decrements the current value,
-     * with memory effects as specified by {@link VarHandle#addAndGet}.
+     * with memory effects as specified by {@link VarHandle#getAndAdd}.
      *
      * <p>Equivalent to {@code addAndGet(-1)}.
      *
--- a/jdk/src/java.base/share/classes/java/util/concurrent/locks/StampedLock.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/locks/StampedLock.java	Wed Sep 14 11:22:39 2016 -0700
@@ -154,13 +154,13 @@
  *     long stamp = sl.tryOptimisticRead();
  *     double currentX = x, currentY = y;
  *     if (!sl.validate(stamp)) {
- *        stamp = sl.readLock();
- *        try {
- *          currentX = x;
- *          currentY = y;
- *        } finally {
- *           sl.unlockRead(stamp);
- *        }
+ *       stamp = sl.readLock();
+ *       try {
+ *         currentX = x;
+ *         currentY = y;
+ *       } finally {
+ *         sl.unlockRead(stamp);
+ *       }
  *     }
  *     return Math.sqrt(currentX * currentX + currentY * currentY);
  *   }
--- a/jdk/src/java.base/share/classes/java/util/jar/JarFile.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/java/util/jar/JarFile.java	Wed Sep 14 11:22:39 2016 -0700
@@ -536,19 +536,6 @@
      * @return an ordered {@code Stream} of entries in this jar file
      * @throws IllegalStateException if the jar file has been closed
      * @since 1.8
-     *
-     * @apiNote  A versioned view of the stream obtained from a {@code JarFile}
-     * configured to process a multi-release jar file can be created with code
-     * similar to the following:
-     * <pre>
-     * {@code
-     *     Stream<JarEntry> versionedStream(JarFile jf) {
-     *         return jf.stream().map(JarEntry::getName)
-     *                  .filter(name -> !name.startsWith("META-INF/versions/"))
-     *                  .map(jf::getJarEntry);
-     *     }
-     * }
-     * </pre>
      */
     public Stream<JarEntry> stream() {
         return StreamSupport.stream(Spliterators.spliterator(
@@ -571,7 +558,7 @@
 
     private ZipEntry getVersionedEntry(ZipEntry ze) {
         ZipEntry vze = null;
-        if (BASE_VERSION_MAJOR < versionMajor && !ze.isDirectory()) {
+        if (BASE_VERSION_MAJOR < versionMajor) {
             String name = ze.getName();
             if (!name.startsWith(META_INF)) {
                 vze = searchForVersionedEntry(versionMajor, name);
@@ -836,18 +823,25 @@
     private static final byte[] CLASSPATH_CHARS =
             {'C','L','A','S','S','-','P','A','T','H', ':', ' '};
 
-    // The bad character shift for "class-path:"
+    // The bad character shift for "class-path: "
     private static final byte[] CLASSPATH_LASTOCC;
 
+    // The good suffix shift for "class-path: "
+    private static final byte[] CLASSPATH_OPTOSFT;
+
     private static final byte[] MULTIRELEASE_CHARS =
             {'M','U','L','T','I','-','R','E','L','E', 'A', 'S', 'E', ':',
                     ' ', 'T', 'R', 'U', 'E'};
 
-    // The bad character shift for "multi-release: "
+    // The bad character shift for "multi-release: true"
     private static final byte[] MULTIRELEASE_LASTOCC;
 
+    // The good suffix shift for "multi-release: true"
+    private static final byte[] MULTIRELEASE_OPTOSFT;
+
     static {
         CLASSPATH_LASTOCC = new byte[64];
+        CLASSPATH_OPTOSFT = new byte[12];
         CLASSPATH_LASTOCC[(int)'C' - 32] = 1;
         CLASSPATH_LASTOCC[(int)'L' - 32] = 2;
         CLASSPATH_LASTOCC[(int)'S' - 32] = 5;
@@ -858,8 +852,13 @@
         CLASSPATH_LASTOCC[(int)'H' - 32] = 10;
         CLASSPATH_LASTOCC[(int)':' - 32] = 11;
         CLASSPATH_LASTOCC[(int)' ' - 32] = 12;
+        for (int i = 0; i < 11; i++) {
+            CLASSPATH_OPTOSFT[i] = 12;
+        }
+        CLASSPATH_OPTOSFT[11] = 1;
 
         MULTIRELEASE_LASTOCC = new byte[64];
+        MULTIRELEASE_OPTOSFT = new byte[19];
         MULTIRELEASE_LASTOCC[(int)'M' - 32] = 1;
         MULTIRELEASE_LASTOCC[(int)'I' - 32] = 5;
         MULTIRELEASE_LASTOCC[(int)'-' - 32] = 6;
@@ -872,6 +871,11 @@
         MULTIRELEASE_LASTOCC[(int)'R' - 32] = 17;
         MULTIRELEASE_LASTOCC[(int)'U' - 32] = 18;
         MULTIRELEASE_LASTOCC[(int)'E' - 32] = 19;
+        for (int i = 0; i < 17; i++) {
+            MULTIRELEASE_OPTOSFT[i] = 19;
+        }
+        MULTIRELEASE_OPTOSFT[17] = 6;
+        MULTIRELEASE_OPTOSFT[18] = 1;
     }
 
     private JarEntry getManEntry() {
@@ -913,7 +917,7 @@
      * Since there are no repeated substring in our search strings,
      * the good suffix shifts can be replaced with a comparison.
      */
-    private int match(byte[] src, byte[] b, byte[] lastOcc) {
+    private int match(byte[] src, byte[] b, byte[] lastOcc, byte[] optoSft) {
         int len = src.length;
         int last = b.length - len;
         int i = 0;
@@ -926,9 +930,8 @@
 
                     if (c != src[j]) {
                         // no match
-                        int goodShift = (j < len - 1) ? len : 1;
                         int badShift = lastOcc[c - 32];
-                        i += Math.max(j + 1 - badShift, goodShift);
+                        i += Math.max(j + 1 - badShift, optoSft[j]);
                         continue next;
                     }
                 } else {
@@ -958,10 +961,11 @@
             if (manEntry != null) {
                 byte[] b = getBytes(manEntry);
                 hasClassPathAttribute = match(CLASSPATH_CHARS, b,
-                        CLASSPATH_LASTOCC) != -1;
+                        CLASSPATH_LASTOCC, CLASSPATH_OPTOSFT) != -1;
                 // is this a multi-release jar file
                 if (MULTI_RELEASE_ENABLED) {
-                    int i = match(MULTIRELEASE_CHARS, b, MULTIRELEASE_LASTOCC);
+                    int i = match(MULTIRELEASE_CHARS, b, MULTIRELEASE_LASTOCC,
+                            MULTIRELEASE_OPTOSFT);
                     if (i != -1) {
                         i += MULTIRELEASE_CHARS.length;
                         if (i < b.length) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/classes/jdk/internal/util/jar/VersionedStream.java	Wed Sep 14 11:22:39 2016 -0700
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2016, 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 jdk.internal.util.jar;
+
+import java.util.Objects;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.stream.Stream;
+
+public class VersionedStream {
+    private static final String META_INF_VERSIONS = "META-INF/versions/";
+
+    /**
+     * Returns a stream of versioned entries, derived from the base names of
+     * all entries in a multi-release {@code JarFile} that are present either in
+     * the base directory or in any versioned directory with a version number
+     * less than or equal to the {@code Runtime.Version::major} that the
+     * {@code JarFile} was opened with.  These versioned entries are aliases
+     * for the real entries -- i.e. the names are base names and the content
+     * may come from a versioned directory entry.  If the {@code jarFile} is not
+     * a multi-release jar, a stream of all entries is returned.
+     *
+     * @param jf the input JarFile
+     * @return stream of entries
+     * @since 9
+     */
+    public static Stream<JarEntry> stream(JarFile jf) {
+        if (jf.isMultiRelease()) {
+            int version = jf.getVersion().major();
+            return jf.stream()
+                    .map(je -> getBaseSuffix(je, version))
+                    .filter(Objects::nonNull)
+                    .distinct()
+                    .map(jf::getJarEntry);
+        }
+        return jf.stream();
+    }
+
+    private static String getBaseSuffix(JarEntry je, int version) {
+        String name = je.getName();
+        if (name.startsWith(META_INF_VERSIONS)) {
+            int len = META_INF_VERSIONS.length();
+            int index = name.indexOf('/', len);
+            if (index == -1 || index == (name.length() - 1)) {
+                // filter out META-INF/versions/* and META-INF/versions/*/
+                return null;
+            }
+            try {
+                if (Integer.parseInt(name, len, index, 10) > version) {
+                    // not an integer
+                    return null;
+                }
+            } catch (NumberFormatException x) {
+                // silently remove malformed entries
+                return null;
+            }
+            // We know name looks like META-INF/versions/*/*
+            return name.substring(index + 1);
+        }
+        return name;
+    }
+}
--- a/jdk/src/java.base/share/classes/module-info.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/module-info.java	Wed Sep 14 11:22:39 2016 -0700
@@ -143,7 +143,8 @@
     exports jdk.internal.org.objectweb.asm.signature to
         jdk.scripting.nashorn;
     exports jdk.internal.loader to
-        java.instrument;
+        java.instrument,
+        java.logging;
     exports jdk.internal.math to
         java.desktop;
     exports jdk.internal.module to
--- a/jdk/src/java.base/share/classes/sun/net/www/protocol/jar/JarURLConnection.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/jar/JarURLConnection.java	Wed Sep 14 11:22:39 2016 -0700
@@ -125,7 +125,9 @@
              * to get the jarFile, and set it as our permission.
              */
             if (getUseCaches()) {
+                boolean oldUseCaches = jarFileURLConnection.getUseCaches();
                 jarFileURLConnection = factory.getConnection(jarFile);
+                jarFileURLConnection.setUseCaches(oldUseCaches);
             }
 
             if ((entryName != null)) {
--- a/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSP.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSP.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2016, 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
@@ -125,7 +125,7 @@
                 ("Exception while encoding OCSPRequest", e);
         }
         OCSPResponse ocspResponse = check(Collections.singletonList(certId),
-            responderURI, issuerCert, null, null,
+            responderURI, new OCSPResponse.IssuerInfo(issuerCert), null, null,
             Collections.<Extension>emptyList());
         return (RevocationStatus)ocspResponse.getSingleResponse(certId);
     }
@@ -173,7 +173,8 @@
                 ("Exception while encoding OCSPRequest", e);
         }
         OCSPResponse ocspResponse = check(Collections.singletonList(certId),
-            responderURI, issuerCert, responderCert, date, extensions);
+            responderURI, new OCSPResponse.IssuerInfo(issuerCert),
+            responderCert, date, extensions);
         return (RevocationStatus) ocspResponse.getSingleResponse(certId);
     }
 
@@ -182,7 +183,7 @@
      *
      * @param certIds the CertIds to be checked
      * @param responderURI the URI of the OCSP responder
-     * @param issuerCert the issuer's certificate
+     * @param issuerInfo the issuer's certificate and/or subject and public key
      * @param responderCert the OCSP responder's certificate
      * @param date the time the validity of the OCSP responder's certificate
      *    should be checked against. If null, the current time is used.
@@ -195,8 +196,8 @@
      * @throws CertPathValidatorException if an exception occurs while
      *    encoding the OCSP Request or validating the OCSP Response
      */
-    static OCSPResponse check(List<CertId> certIds, URI responderURI,
-                              X509Certificate issuerCert,
+        static OCSPResponse check(List<CertId> certIds, URI responderURI,
+                              OCSPResponse.IssuerInfo issuerInfo,
                               X509Certificate responderCert, Date date,
                               List<Extension> extensions)
         throws IOException, CertPathValidatorException
@@ -214,7 +215,7 @@
             ocspResponse = new OCSPResponse(response);
 
             // verify the response
-            ocspResponse.verify(certIds, issuerCert, responderCert, date,
+            ocspResponse.verify(certIds, issuerInfo, responderCert, date,
                     nonce);
         } catch (IOException ioe) {
             throw new CertPathValidatorException(
--- a/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSPResponse.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSPResponse.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2016, 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
@@ -41,6 +41,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import javax.security.auth.x500.X500Principal;
 
@@ -373,8 +374,8 @@
         }
     }
 
-    void verify(List<CertId> certIds, X509Certificate issuerCert,
-                X509Certificate responderCert, Date date, byte[] nonce)
+    void verify(List<CertId> certIds, IssuerInfo issuerInfo,
+            X509Certificate responderCert, Date date, byte[] nonce)
         throws CertPathValidatorException
     {
         switch (responseStatus) {
@@ -414,7 +415,9 @@
             // Add the Issuing CA cert and/or Trusted Responder cert to the list
             // of certs from the OCSP response
             try {
-                certs.add(X509CertImpl.toImpl(issuerCert));
+                if (issuerInfo.getCertificate() != null) {
+                    certs.add(X509CertImpl.toImpl(issuerInfo.getCertificate()));
+                }
                 if (responderCert != null) {
                     certs.add(X509CertImpl.toImpl(responderCert));
                 }
@@ -464,7 +467,10 @@
         // Check whether the signer cert returned by the responder is trusted
         if (signerCert != null) {
             // Check if the response is signed by the issuing CA
-            if (signerCert.equals(issuerCert)) {
+            if (signerCert.getSubjectX500Principal().equals(
+                    issuerInfo.getName()) &&
+                    signerCert.getPublicKey().equals(
+                            issuerInfo.getPublicKey())) {
                 if (debug != null) {
                     debug.println("OCSP response is signed by the target's " +
                         "Issuing CA");
@@ -481,7 +487,7 @@
 
             // Check if the response is signed by an authorized responder
             } else if (signerCert.getIssuerX500Principal().equals(
-                       issuerCert.getSubjectX500Principal())) {
+                    issuerInfo.getName())) {
 
                 // Check for the OCSPSigning key purpose
                 try {
@@ -502,7 +508,8 @@
                 // Check algorithm constraints specified in security property
                 // "jdk.certpath.disabledAlgorithms".
                 AlgorithmChecker algChecker = new AlgorithmChecker(
-                                    new TrustAnchor(issuerCert, null));
+                        new TrustAnchor(issuerInfo.getName(),
+                                issuerInfo.getPublicKey(), null));
                 algChecker.init(false);
                 algChecker.check(signerCert, Collections.<String>emptySet());
 
@@ -540,7 +547,7 @@
 
                 // verify the signature
                 try {
-                    signerCert.verify(issuerCert.getPublicKey());
+                    signerCert.verify(issuerInfo.getPublicKey());
                     if (debug != null) {
                         debug.println("OCSP response is signed by an " +
                             "Authorized Responder");
@@ -971,4 +978,86 @@
             return sb.toString();
         }
     }
+
+    /**
+     * Helper class that allows consumers to pass in issuer information.  This
+     * will always consist of the issuer's name and public key, but may also
+     * contain a certificate if the originating data is in that form.
+     */
+    static final class IssuerInfo {
+        private final X509Certificate certificate;
+        private final X500Principal name;
+        private final PublicKey pubKey;
+
+        IssuerInfo(X509Certificate issuerCert) {
+            certificate = Objects.requireNonNull(issuerCert,
+                    "Constructor requires non-null certificate");
+            name = certificate.getSubjectX500Principal();
+            pubKey = certificate.getPublicKey();
+        }
+
+        IssuerInfo(X500Principal subjectName, PublicKey key) {
+            certificate = null;
+            name = Objects.requireNonNull(subjectName,
+                    "Constructor requires non-null subject");
+            pubKey = Objects.requireNonNull(key,
+                    "Constructor requires non-null public key");
+        }
+
+        IssuerInfo(TrustAnchor anchor) {
+            certificate = anchor.getTrustedCert();
+            if (certificate != null) {
+                name = certificate.getSubjectX500Principal();
+                pubKey = certificate.getPublicKey();
+            } else {
+                name = anchor.getCA();
+                pubKey = anchor.getCAPublicKey();
+            }
+        }
+
+        /**
+         * Get the certificate in this IssuerInfo if present.
+         *
+         * @return the {@code X509Certificate} used to create this IssuerInfo
+         * object, or {@code null} if a certificate was not used in its
+         * creation.
+         */
+        X509Certificate getCertificate() {
+            return certificate;
+        }
+
+        /**
+         * Get the name of this issuer.
+         *
+         * @return an {@code X500Principal} corresponding to this issuer's
+         * name.  If derived from an issuer's {@code X509Certificate} this
+         * would be equivalent to the certificate subject name.
+         */
+        X500Principal getName() {
+            return name;
+        }
+
+        /**
+         * Get the public key for this issuer.
+         *
+         * @return a {@code PublicKey} for this issuer.
+         */
+        PublicKey getPublicKey() {
+            return pubKey;
+        }
+
+        /**
+         * Create a string representation of this IssuerInfo.
+         *
+         * @return a {@code String} form of this IssuerInfo object.
+         */
+        @Override
+        public String toString() {
+            StringBuilder sb = new StringBuilder();
+            sb.append("Issuer Info:\n");
+            sb.append("Name: ").append(name.toString()).append("\n");
+            sb.append("Public Key:\n").append(pubKey.toString()).append("\n");
+            return sb.toString();
+        }
+    }
 }
--- a/jdk/src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2016, 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,12 +61,12 @@
     private List<CertStore> certStores;
     private Map<X509Certificate, byte[]> ocspResponses;
     private List<Extension> ocspExtensions;
-    private boolean legacy;
+    private final boolean legacy;
     private LinkedList<CertPathValidatorException> softFailExceptions =
         new LinkedList<>();
 
     // state variables
-    private X509Certificate issuerCert;
+    private OCSPResponse.IssuerInfo issuerInfo;
     private PublicKey prevPubKey;
     private boolean crlSignFlag;
     private int certIndex;
@@ -301,9 +301,9 @@
                 CertPathValidatorException("forward checking not supported");
         }
         if (anchor != null) {
-            issuerCert = anchor.getTrustedCert();
-            prevPubKey = (issuerCert != null) ? issuerCert.getPublicKey()
-                                              : anchor.getCAPublicKey();
+            issuerInfo = new OCSPResponse.IssuerInfo(anchor);
+            prevPubKey = issuerInfo.getPublicKey();
+
         }
         crlSignFlag = true;
         if (params != null && params.certPath() != null) {
@@ -437,7 +437,7 @@
     private void updateState(X509Certificate cert)
         throws CertPathValidatorException
     {
-        issuerCert = cert;
+        issuerInfo = new OCSPResponse.IssuerInfo(cert);
 
         // Make new public key if parameters are missing
         PublicKey pubKey = cert.getPublicKey();
@@ -708,14 +708,8 @@
         OCSPResponse response = null;
         CertId certId = null;
         try {
-            if (issuerCert != null) {
-                certId = new CertId(issuerCert,
-                                    currCert.getSerialNumberObject());
-            } else {
-                // must be an anchor name and key
-                certId = new CertId(anchor.getCA(), anchor.getCAPublicKey(),
-                                    currCert.getSerialNumberObject());
-            }
+            certId = new CertId(issuerInfo.getName(), issuerInfo.getPublicKey(),
+                    currCert.getSerialNumberObject());
 
             // check if there is a cached OCSP response available
             byte[] responseBytes = ocspResponses.get(cert);
@@ -732,8 +726,8 @@
                         nonce = ext.getValue();
                     }
                 }
-                response.verify(Collections.singletonList(certId), issuerCert,
-                                responderCert, params.date(), nonce);
+                response.verify(Collections.singletonList(certId), issuerInfo,
+                        responderCert, params.date(), nonce);
 
             } else {
                 URI responderURI = (this.responderURI != null)
@@ -746,8 +740,8 @@
                 }
 
                 response = OCSP.check(Collections.singletonList(certId),
-                                      responderURI, issuerCert, responderCert,
-                                      null, ocspExtensions);
+                                      responderURI, issuerInfo,
+                                      responderCert, null, ocspExtensions);
             }
         } catch (IOException e) {
             throw new CertPathValidatorException(
--- a/jdk/src/java.base/share/classes/sun/text/resources/BreakIteratorRulesProvider.java	Sat Sep 10 12:18:34 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * 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.text.resources;
-
-import java.util.spi.ResourceBundleProvider;
-
-/**
- * An interface for the internal locale data provider for which {@code ResourceBundle}
- * searches.
- */
-public interface BreakIteratorRulesProvider extends ResourceBundleProvider {
-}
--- a/jdk/src/java.base/share/classes/sun/util/locale/provider/BreakDictionary.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/sun/util/locale/provider/BreakDictionary.java	Wed Sep 14 11:22:39 2016 -0700
@@ -149,7 +149,10 @@
         BufferedInputStream in;
         try {
             PrivilegedExceptionAction<BufferedInputStream> pa = () -> {
-                InputStream is = module.getResourceAsStream("sun/text/resources/" + dictionaryName);
+                String pathName = "jdk.localedata".equals(module.getName()) ?
+                     "sun/text/resources/ext/" :
+                     "sun/text/resources/";
+                InputStream is = module.getResourceAsStream(pathName + dictionaryName);
                 if (is == null) {
                     // Try to load the file with "java.base" module instance. Assumption
                     // here is that the fall back data files to be read should reside in
--- a/jdk/src/java.base/share/classes/sun/util/locale/provider/RuleBasedBreakIterator.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/classes/sun/util/locale/provider/RuleBasedBreakIterator.java	Wed Sep 14 11:22:39 2016 -0700
@@ -444,7 +444,10 @@
         BufferedInputStream is;
         try {
             PrivilegedExceptionAction<BufferedInputStream> pa = () -> {
-                InputStream in = module.getResourceAsStream("sun/text/resources/" + datafile);
+                String pathName = "jdk.localedata".equals(module.getName()) ?
+                     "sun/text/resources/ext/" :
+                     "sun/text/resources/";
+                InputStream in = module.getResourceAsStream(pathName + datafile);
                 if (in == null) {
                     // Try to load the file with "java.base" module instance. Assumption
                     // here is that the fall back data files to be read should reside in
--- a/jdk/src/java.base/share/native/libjli/java.h	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/share/native/libjli/java.h	Wed Sep 14 11:22:39 2016 -0700
@@ -112,6 +112,9 @@
 jboolean
 GetApplicationHome(char *buf, jint bufsize);
 
+jboolean
+GetApplicationHomeFromDll(char *buf, jint bufsize);
+
 #define GetArch() GetArchPath(CURRENT_DATA_MODEL)
 
 /*
--- a/jdk/src/java.base/solaris/native/libnet/solaris_close.c	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/solaris/native/libnet/solaris_close.c	Wed Sep 14 11:22:39 2016 -0700
@@ -35,7 +35,7 @@
     if (1) {                                          \
         do {                                          \
             _result = _cmd;                           \
-        } while((_result == -1) && (errno == EINTR)); \
+        } while((_result == -1) && (errno == EINTR));      \
         return _result;                               \
     }                                                 \
 } while(0)
@@ -44,6 +44,10 @@
     RESTARTABLE_RETURN_INT(recv(s, buf, len, 0));
 }
 
+int NET_NonBlockingRead(int s, void* buf, size_t len) {
+    RESTARTABLE_RETURN_INT(recv(s, buf, len, MSG_DONTWAIT));
+}
+
 int NET_RecvFrom(int s, void *buf, int len, unsigned int flags,
                  struct sockaddr *from, socklen_t *fromlen) {
     RESTARTABLE_RETURN_INT(recvfrom(s, buf, len, flags, from, fromlen));
@@ -86,19 +90,14 @@
     RESTARTABLE_RETURN_INT(poll(ufds, nfds, timeout));
 }
 
-int NET_Timeout(int s, long timeout) {
+int NET_Timeout0(int s, long timeout, long currentTime) {
     int result;
     struct timeval t;
-    long prevtime, newtime;
+    long prevtime = currentTime, newtime;
     struct pollfd pfd;
     pfd.fd = s;
     pfd.events = POLLIN;
 
-    if (timeout > 0) {
-        gettimeofday(&t, NULL);
-        prevtime = (t.tv_sec * 1000)  +  t.tv_usec / 1000;
-    }
-
     for(;;) {
         result = poll(&pfd, 1, timeout);
         if (result < 0 && errno == EINTR) {
--- a/jdk/src/java.base/unix/native/libjli/java_md_common.c	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/unix/native/libjli/java_md_common.c	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2016, 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,8 +25,49 @@
 #include "java.h"
 
 /*
- * If app is "/foo/bin/javac", or "/foo/bin/sparcv9/javac" then put
- * "/foo" into buf.
+ * Find the last occurrence of a string
+ */
+char* findLastPathComponent(char *buffer, const char *comp) {
+    char* t = buffer;
+    char* p = NULL;
+    size_t l = JLI_StrLen(comp);
+    t = JLI_StrStr(t, comp);
+
+    while (t != NULL) {
+        p = t;
+        t += l;
+        t = JLI_StrStr(t, comp);
+    }
+    return p;
+}
+
+/*
+ * Removes the trailing file name and any intermediate platform
+ * directories, if any, and its enclosing directory.
+ * Ex: if a buffer contains "/foo/bin/javac" or "/foo/bin/x64/javac", the
+ * truncated resulting buffer will contain "/foo".
+ */
+jboolean
+TruncatePath(char *buf)
+{
+    // try bin directory, maybe an executable
+    char *p = findLastPathComponent(buf, "/bin/");
+    if (p != NULL) {
+        *p = '\0';
+        return JNI_TRUE;
+    }
+    // try lib directory, maybe a library
+    p = findLastPathComponent(buf, "/lib/");
+    if (p != NULL) {
+        *p = '\0';
+        return JNI_TRUE;
+    }
+    return JNI_FALSE;
+}
+
+/*
+ * Retrieves the path to the JRE home by locating the executable file
+ * of the current process and then truncating the path to the executable
  */
 jboolean
 GetApplicationHome(char *buf, jint bufsize)
@@ -38,26 +79,27 @@
     } else {
         return JNI_FALSE;
     }
+    return TruncatePath(buf);
+}
 
-    if (JLI_StrRChr(buf, '/') == 0) {
-        buf[0] = '\0';
-        return JNI_FALSE;
-    }
-    *(JLI_StrRChr(buf, '/')) = '\0';    /* executable file      */
-    if (JLI_StrLen(buf) < 4 || JLI_StrRChr(buf, '/') == 0) {
-        buf[0] = '\0';
-        return JNI_FALSE;
+/*
+ * Retrieves the path to the JRE home by locating the
+ * shared library and then truncating the path to it.
+ */
+jboolean
+GetApplicationHomeFromDll(char *buf, jint bufsize)
+{
+    /* try to find ourselves instead */
+    Dl_info info;
+    if (dladdr((void*)&GetApplicationHomeFromDll, &info) != 0) {
+        char *path = realpath(info.dli_fname, buf);
+        if (path == buf) {
+            return TruncatePath(buf);
+        }
     }
-    if (JLI_StrCmp("/bin", buf + JLI_StrLen(buf) - 4) != 0)
-        *(JLI_StrRChr(buf, '/')) = '\0';        /* sparcv9 or amd64     */
-    if (JLI_StrLen(buf) < 4 || JLI_StrCmp("/bin", buf + JLI_StrLen(buf) - 4) != 0) {
-        buf[0] = '\0';
-        return JNI_FALSE;
-    }
-    *(JLI_StrRChr(buf, '/')) = '\0';    /* bin                  */
+    return JNI_FALSE;
+}
 
-    return JNI_TRUE;
-}
 /*
  * Return true if the named program exists
  */
--- a/jdk/src/java.base/unix/native/libjli/java_md_solinux.c	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/unix/native/libjli/java_md_solinux.c	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2016, 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
@@ -666,6 +666,7 @@
 GetJREPath(char *path, jint pathsize, const char * arch, jboolean speculative)
 {
     char libjava[MAXPATHLEN];
+    struct stat s;
 
     if (GetApplicationHome(path, pathsize)) {
         /* Is JRE co-located with the application? */
@@ -688,6 +689,14 @@
         }
     }
 
+    if (GetApplicationHomeFromDll(path, pathsize)) {
+        JLI_Snprintf(libjava, sizeof(libjava), "%s/lib/%s/" JAVA_DLL, path, arch);
+        if (stat(libjava, &s) == 0) {
+            JLI_TraceLauncher("JRE path is %s\n", path);
+            return JNI_TRUE;
+        }
+    }
+
     if (!speculative)
       JLI_ReportErrorMessage(JRE_ERROR8 JAVA_DLL);
     return JNI_FALSE;
--- a/jdk/src/java.base/unix/native/libnet/SocketInputStream.c	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/unix/native/libnet/SocketInputStream.c	Wed Sep 14 11:22:39 2016 -0700
@@ -35,7 +35,6 @@
 
 #include "java_net_SocketInputStream.h"
 
-
 /************************************************************************
  * SocketInputStream
  */
@@ -52,6 +51,40 @@
     IO_fd_fdID = NET_GetFileDescriptorID(env);
 }
 
+static int NET_ReadWithTimeout(JNIEnv *env, int fd, char *bufP, int len, long timeout) {
+    int result = 0;
+    long prevtime = NET_GetCurrentTime(), newtime;
+    while (timeout > 0) {
+        result = NET_TimeoutWithCurrentTime(fd, timeout, prevtime);
+        if (result <= 0) {
+            if (result == 0) {
+                JNU_ThrowByName(env, JNU_JAVANETPKG "SocketTimeoutException", "Read timed out");
+            } else if (result == -1) {
+                if (errno == EBADF) {
+                    JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed");
+                } else if (errno == ENOMEM) {
+                    JNU_ThrowOutOfMemoryError(env, "NET_Timeout native heap allocation failed");
+                } else {
+                    JNU_ThrowByNameWithMessageAndLastError
+                            (env, JNU_JAVANETPKG "SocketException", "select/poll failed");
+                }
+            }
+            return -1;
+        }
+        result = NET_NonBlockingRead(fd, bufP, len);
+        if (result == -1 && ((errno == EAGAIN) || (errno == EWOULDBLOCK))) {
+            newtime = NET_GetCurrentTime();
+            timeout -= newtime - prevtime;
+            if (timeout > 0) {
+                prevtime = newtime;
+            }
+        } else {
+            break;
+        }
+    }
+    return result;
+}
+
 /*
  * Class:     java_net_SocketInputStream
  * Method:    socketRead0
@@ -98,32 +131,18 @@
     } else {
         bufP = BUF;
     }
-
     if (timeout) {
-        nread = NET_Timeout(fd, timeout);
-        if (nread <= 0) {
-            if (nread == 0) {
-                JNU_ThrowByName(env, JNU_JAVANETPKG "SocketTimeoutException",
-                            "Read timed out");
-            } else if (nread == -1) {
-                if (errno == EBADF) {
-                     JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed");
-                } else if (errno == ENOMEM) {
-                    JNU_ThrowOutOfMemoryError(env, "NET_Timeout native heap allocation failed");
-                } else {
-                    JNU_ThrowByNameWithMessageAndLastError
-                        (env, JNU_JAVANETPKG "SocketException", "select/poll failed");
-                }
-            }
+        nread = NET_ReadWithTimeout(env, fd, bufP, len, timeout);
+        if ((*env)->ExceptionCheck(env)) {
             if (bufP != BUF) {
                 free(bufP);
             }
-            return -1;
+            return nread;
         }
+    } else {
+        nread = NET_Read(fd, bufP, len);
     }
 
-    nread = NET_Read(fd, bufP, len);
-
     if (nread <= 0) {
         if (nread < 0) {
 
@@ -143,7 +162,6 @@
                      JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException",
                            "Operation interrupted");
                      break;
-
                 default:
                     JNU_ThrowByNameWithMessageAndLastError
                         (env, JNU_JAVANETPKG "SocketException", "Read failed");
--- a/jdk/src/java.base/unix/native/libnet/net_util_md.c	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/unix/native/libnet/net_util_md.c	Wed Sep 14 11:22:39 2016 -0700
@@ -33,6 +33,7 @@
 #include <netdb.h>
 #include <stdlib.h>
 #include <dlfcn.h>
+#include <sys/time.h>
 
 #ifndef _ALLBSD_SOURCE
 #include <values.h>
@@ -1669,3 +1670,18 @@
 
     return timeout;
 }
+
+long NET_GetCurrentTime() {
+    struct timeval time;
+    gettimeofday(&time, NULL);
+    return (time.tv_sec * 1000 + time.tv_usec / 1000);
+}
+
+int NET_TimeoutWithCurrentTime(int s, long timeout, long currentTime) {
+    return NET_Timeout0(s, timeout, currentTime);
+}
+
+int NET_Timeout(int s, long timeout) {
+    long currentTime = (timeout > 0) ? NET_GetCurrentTime() : 0;
+    return NET_Timeout0(s, timeout, currentTime);
+}
--- a/jdk/src/java.base/unix/native/libnet/net_util_md.h	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/unix/native/libnet/net_util_md.h	Wed Sep 14 11:22:39 2016 -0700
@@ -35,7 +35,11 @@
 #include <sys/poll.h>
 
 int NET_Timeout(int s, long timeout);
+int NET_Timeout0(int s, long timeout, long currentTime);
 int NET_Read(int s, void* buf, size_t len);
+int NET_NonBlockingRead(int s, void* buf, size_t len);
+int NET_TimeoutWithCurrentTime(int s, long timeout, long currentTime);
+long NET_GetCurrentTime();
 int NET_RecvFrom(int s, void *buf, int len, unsigned int flags,
                  struct sockaddr *from, socklen_t *fromlen);
 int NET_ReadV(int s, const struct iovec * vector, int count);
--- a/jdk/src/java.base/windows/native/libjli/java_md.c	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/windows/native/libjli/java_md.c	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, 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,7 +348,6 @@
 
     JLI_ReportErrorMessage(JRE_ERROR8 JAVA_DLL);
     return JNI_FALSE;
-
 }
 
 /*
@@ -423,11 +422,11 @@
     *JLI_StrRChr(buf, '\\') = '\0'; /* remove .exe file name */
     if ((cp = JLI_StrRChr(buf, '\\')) == 0) {
         /* This happens if the application is in a drive root, and
-        * there is no bin directory. */
+         * there is no bin directory. */
         buf[0] = '\0';
         return JNI_FALSE;
     }
-    *cp = '\0';  /* remove the bin\ part */
+    *cp = '\0'; /* remove the bin\ part */
     return JNI_TRUE;
 }
 
@@ -449,16 +448,16 @@
 jboolean
 GetApplicationHomeFromDll(char *buf, jint bufsize)
 {
-    HMODULE hModule;
-    DWORD dwFlags =
-        GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
-        GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT;
+    HMODULE module;
+    DWORD flags = GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
+                  GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT;
 
-    if (GetModuleHandleEx(dwFlags, (LPCSTR)&GetJREPath, &hModule) == 0) {
-        return JNI_FALSE;
-    };
-    GetModuleFileName(hModule, buf, bufsize);
-    return TruncatePath(buf);
+    if (GetModuleHandleEx(flags, (LPCSTR)&GetJREPath, &module) != 0) {
+        if (GetModuleFileName(module, buf, bufsize) != 0) {
+            return TruncatePath(buf);
+        }
+    }
+    return JNI_FALSE;
 }
 
 /*
--- a/jdk/src/java.base/windows/native/libjli/java_md.h	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.base/windows/native/libjli/java_md.h	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2016, 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
@@ -54,7 +54,4 @@
 
 int UnsetEnv(char *name);
 
-jboolean
-GetApplicationHomeFromDll(char *buf, jint bufsize);
-
 #endif /* JAVA_MD_H */
--- a/jdk/src/java.instrument/share/classes/java/lang/instrument/package.html	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.instrument/share/classes/java/lang/instrument/package.html	Wed Sep 14 11:22:39 2016 -0700
@@ -105,6 +105,10 @@
 The agent class will be loaded by the system class loader
 (see {@link java.lang.ClassLoader#getSystemClassLoader ClassLoader.getSystemClassLoader}). This is
 the class loader which typically loads the class containing the application <code>main</code> method.
+The system class loader must support a mechanism to add an agent JAR file to the system class path.
+If it is a custom system class loader then it must define the
+<code>appendToClassPathForInstrumentation</code> method as specified in
+{@link Instrumentation#appendToSystemClassLoaderSearch appendToSystemClassLoaderSearch}.
 The <code>premain</code> methods will be run under the same security and classloader 
 rules as the application <code>main</code> method.
 There are no modeling restrictions on what the agent <code>premain</code> method may do.
@@ -140,7 +144,10 @@
 
   <li><p>The system class loader (
       {@link java.lang.ClassLoader#getSystemClassLoader ClassLoader.getSystemClassLoader}) must
-      support a mechanism to add an agent JAR file to the system class path.</li>
+      support a mechanism to add an agent JAR file to the system class path.
+      If it is a custom system class loader then it must define the
+      <code>appendToClassPathForInstrumentation</code> method as specified in
+      {@link Instrumentation#appendToSystemClassLoaderSearch appendToSystemClassLoaderSearch}.</li>
 </ol>  
 
 <P>
--- a/jdk/src/java.instrument/share/native/libinstrument/InvocationAdapter.c	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.instrument/share/native/libinstrument/InvocationAdapter.c	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2016, 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
@@ -190,10 +190,8 @@
             return JNI_ERR;
         }
 
-        /*
-         * Add to the jarfile
-         */
-        appendClassPath(agent, jarfile);
+        /* Save the jarfile name */
+        agent->mJarfile = jarfile;
 
         /*
          * The value of the Premain-Class attribute becomes the agent
@@ -241,7 +239,6 @@
         /*
          * Clean-up
          */
-        free(jarfile);
         if (options != NULL) free(options);
         freeAttributes(attributes);
         free(premainClass);
@@ -459,7 +456,23 @@
 
     /* process the premain calls on the all the JPL agents */
     if ( environment != NULL ) {
-        jthrowable outstandingException = preserveThrowable(jnienv);
+        jthrowable outstandingException = NULL;
+        /*
+         * Add the jarfile to the system class path
+         */
+        JPLISAgent * agent = environment->mAgent;
+        if (appendClassPath(agent, agent->mJarfile)) {
+            fprintf(stderr, "Unable to add %s to system class path - "
+                    "the system class loader does not define the "
+                    "appendToClassPathForInstrumentation method or the method failed\n",
+                    agent->mJarfile);
+            free((void *)agent->mJarfile);
+            abortJVM(jnienv, JPLIS_ERRORMESSAGE_CANNOTSTART);
+        }
+        free((void *)agent->mJarfile);
+        agent->mJarfile = NULL;
+
+        outstandingException = preserveThrowable(jnienv);
         success = processJavaStart( environment->mAgent,
                                     jnienv);
         restoreThrowable(jnienv, outstandingException);
@@ -631,32 +644,19 @@
     jvmtierr = (*jvmtienv)->AddToSystemClassLoaderSearch(jvmtienv, jarfile);
     check_phase_ret_1(jvmtierr);
 
-    if (jvmtierr == JVMTI_ERROR_NONE) {
-        return 0;
-    } else {
-        jvmtiPhase phase;
-        jvmtiError err;
-
-        err = (*jvmtienv)->GetPhase(jvmtienv, &phase);
-        /* can be called from any phase */
-        jplis_assert(err == JVMTI_ERROR_NONE);
-
-        if (phase == JVMTI_PHASE_LIVE) {
-            switch (jvmtierr) {
-                case JVMTI_ERROR_CLASS_LOADER_UNSUPPORTED :
-                    fprintf(stderr, "System class loader does not support adding "
-                        "JAR file to system class path during the live phase!\n");
-                        break;
-                default:
-                    fprintf(stderr, "Unexpected error (%d) returned by "
-                        "AddToSystemClassLoaderSearch\n", jvmtierr);
-                    break;
-            }
-            return -1;
-        }
-        jplis_assert(0);
+    switch (jvmtierr) {
+        case JVMTI_ERROR_NONE :
+            return 0;
+        case JVMTI_ERROR_CLASS_LOADER_UNSUPPORTED :
+            fprintf(stderr, "System class loader does not define "
+                "the appendToClassPathForInstrumentation method\n");
+            break;
+        default:
+            fprintf(stderr, "Unexpected error (%d) returned by "
+                "AddToSystemClassLoaderSearch\n", jvmtierr);
+            break;
     }
-    return -2;
+    return -1;
 }
 
 
--- a/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.c	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.c	Wed Sep 14 11:22:39 2016 -0700
@@ -272,6 +272,7 @@
     agent->mNativeMethodPrefixAdded                  = JNI_FALSE;
     agent->mAgentClassName                           = NULL;
     agent->mOptionsString                            = NULL;
+    agent->mJarfile                                  = NULL;
 
     /* make sure we can recover either handle in either direction.
      * the agent has a ref to the jvmti; make it mutual
--- a/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.h	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.h	Wed Sep 14 11:22:39 2016 -0700
@@ -107,6 +107,7 @@
     jboolean                mNativeMethodPrefixAdded;     /* indicates if can_set_native_method_prefix capability has been added */
     char const *            mAgentClassName;        /* agent class name */
     char const *            mOptionsString;         /* -javaagent options string */
+    const char *            mJarfile;               /* agent jar file name */
 };
 
 /*
--- a/jdk/src/java.logging/share/classes/java/util/logging/Level.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/java.logging/share/classes/java/util/logging/Level.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2016, 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
@@ -24,13 +24,22 @@
  */
 
 package java.util.logging;
+import java.lang.ref.Reference;
+import java.lang.ref.ReferenceQueue;
+import java.lang.ref.WeakReference;
 import java.lang.reflect.Module;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Optional;
 import java.util.ResourceBundle;
+import java.util.function.Function;
+import jdk.internal.loader.ClassLoaderValue;
 
 /**
  * The Level class defines a set of standard logging levels that
@@ -177,6 +186,10 @@
      */
     public static final Level ALL = new Level("ALL", Integer.MIN_VALUE, defaultBundle);
 
+    private static final Level[] standardLevels = {
+        OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL
+    };
+
     /**
      * Create a named Level with a given integer value.
      * <p>
@@ -267,7 +280,8 @@
         // or its defining class loader, if it's unnamed module,
         // of this Level instance that can be a custom Level subclass;
         Module module = this.getClass().getModule();
-        ResourceBundle rb = ResourceBundle.getBundle(resourceBundleName, newLocale, module);
+        ResourceBundle rb = ResourceBundle.getBundle(resourceBundleName,
+                newLocale, module);
 
         final String localizedName = rb.getString(name);
         final boolean isDefaultBundle = defaultBundle.equals(resourceBundleName);
@@ -350,12 +364,12 @@
             throw new NullPointerException();
         }
 
-        KnownLevel level;
+        Optional<Level> level;
 
         // Look for a known Level with the given non-localized name.
-        level = KnownLevel.findByName(name);
-        if (level != null) {
-            return level.mirroredLevel;
+        level = KnownLevel.findByName(name, KnownLevel::mirrored);
+        if (level.isPresent()) {
+            return level.get();
         }
 
         // Now, check if the given name is an integer.  If so,
@@ -363,21 +377,24 @@
         // if necessary create one.
         try {
             int x = Integer.parseInt(name);
-            level = KnownLevel.findByValue(x);
-            if (level == null) {
+            level = KnownLevel.findByValue(x, KnownLevel::mirrored);
+            if (!level.isPresent()) {
                 // add new Level
                 Level levelObject = new Level(name, x);
-                level = KnownLevel.findByValue(x);
+                // There's no need to use a reachability fence here because
+                // KnownLevel keeps a strong reference on the level when
+                // level.getClass() == Level.class.
+                return KnownLevel.findByValue(x, KnownLevel::mirrored).get();
             }
-            return level.mirroredLevel;
         } catch (NumberFormatException ex) {
             // Not an integer.
             // Drop through.
         }
 
-        level = KnownLevel.findByLocalizedLevelName(name);
-        if (level != null) {
-            return level.mirroredLevel;
+        level = KnownLevel.findByLocalizedLevelName(name,
+                KnownLevel::mirrored);
+        if (level.isPresent()) {
+            return level.get();
         }
 
         return null;
@@ -408,15 +425,13 @@
     // Serialization magic to prevent "doppelgangers".
     // This is a performance optimization.
     private Object readResolve() {
-        KnownLevel o = KnownLevel.matches(this);
-        if (o != null) {
-            return o.levelObject;
+        Optional<Level> level = KnownLevel.matches(this);
+        if (level.isPresent()) {
+            return level.get();
         }
-
         // Woops.  Whoever sent us this object knows
         // about a new log level.  Add it to our list.
-        Level level = new Level(this.name, this.value, this.resourceBundleName);
-        return level;
+        return new Level(this.name, this.value, this.resourceBundleName);
     }
 
     /**
@@ -450,12 +465,12 @@
         // Check that name is not null.
         name.length();
 
-        KnownLevel level;
+        Optional<Level> level;
 
         // Look for a known Level with the given non-localized name.
-        level = KnownLevel.findByName(name);
-        if (level != null) {
-            return level.levelObject;
+        level = KnownLevel.findByName(name, KnownLevel::referent);
+        if (level.isPresent()) {
+            return level.get();
         }
 
         // Now, check if the given name is an integer.  If so,
@@ -463,13 +478,16 @@
         // if necessary create one.
         try {
             int x = Integer.parseInt(name);
-            level = KnownLevel.findByValue(x);
-            if (level == null) {
-                // add new Level
-                Level levelObject = new Level(name, x);
-                level = KnownLevel.findByValue(x);
+            level = KnownLevel.findByValue(x, KnownLevel::referent);
+            if (level.isPresent()) {
+                return level.get();
             }
-            return level.levelObject;
+            // add new Level.
+            Level levelObject = new Level(name, x);
+            // There's no need to use a reachability fence here because
+            // KnownLevel keeps a strong reference on the level when
+            // level.getClass() == Level.class.
+            return KnownLevel.findByValue(x, KnownLevel::referent).get();
         } catch (NumberFormatException ex) {
             // Not an integer.
             // Drop through.
@@ -478,9 +496,9 @@
         // Finally, look for a known level with the given localized name,
         // in the current default locale.
         // This is relatively expensive, but not excessively so.
-        level = KnownLevel.findByLocalizedLevelName(name);
-        if (level != null) {
-            return level.levelObject;
+        level = KnownLevel.findByLocalizedLevelName(name, KnownLevel::referent);
+        if (level .isPresent()) {
+            return level.get();
         }
 
         // OK, we've tried everything and failed
@@ -530,22 +548,67 @@
     // If Level.getName, Level.getLocalizedName, Level.getResourceBundleName methods
     // were final, the following KnownLevel implementation can be removed.
     // Future API change should take this into consideration.
-    static final class KnownLevel {
+    static final class KnownLevel extends WeakReference<Level> {
         private static Map<String, List<KnownLevel>> nameToLevels = new HashMap<>();
         private static Map<Integer, List<KnownLevel>> intToLevels = new HashMap<>();
-        final Level levelObject;     // instance of Level class or Level subclass
+        private static final ReferenceQueue<Level> QUEUE = new ReferenceQueue<>();
+
+        // CUSTOM_LEVEL_CLV is used to register custom level instances with
+        // their defining class loader, so that they are garbage collected
+        // if and only if their class loader is no longer strongly
+        // referenced.
+        private static final ClassLoaderValue<List<Level>> CUSTOM_LEVEL_CLV =
+                    new ClassLoaderValue<>();
+
         final Level mirroredLevel;   // mirror of the custom Level
         KnownLevel(Level l) {
-            this.levelObject = l;
+            super(l, QUEUE);
             if (l.getClass() == Level.class) {
                 this.mirroredLevel = l;
             } else {
                 // this mirrored level object is hidden
-                this.mirroredLevel = new Level(l.name, l.value, l.resourceBundleName, false);
+                this.mirroredLevel = new Level(l.name, l.value,
+                        l.resourceBundleName, false);
             }
         }
 
+        Optional<Level> mirrored() {
+            return Optional.of(mirroredLevel);
+        }
+
+        Optional<Level> referent() {
+            return Optional.ofNullable(get());
+        }
+
+        private void remove() {
+            Optional.ofNullable(nameToLevels.get(mirroredLevel.name))
+                    .ifPresent((x) -> x.remove(this));
+            Optional.ofNullable(intToLevels.get(mirroredLevel.value))
+                    .ifPresent((x) -> x.remove(this));
+        }
+
+        // Remove all stale KnownLevel instances
+        static synchronized void purge() {
+            Reference<? extends Level> ref;
+            while ((ref = QUEUE.poll()) != null) {
+                if (ref instanceof KnownLevel) {
+                    ((KnownLevel)ref).remove();
+                }
+            }
+        }
+
+        private static void registerWithClassLoader(Level customLevel) {
+            PrivilegedAction<ClassLoader> pa =
+                  () -> customLevel.getClass().getClassLoader();
+            PrivilegedAction<String> pn =  customLevel.getClass()::getName;
+            final String name = AccessController.doPrivileged(pn);
+            final ClassLoader cl = AccessController.doPrivileged(pa);
+            CUSTOM_LEVEL_CLV.computeIfAbsent(cl, (c, v) -> new ArrayList<>())
+                .add(customLevel);
+        }
+
         static synchronized void add(Level l) {
+            purge();
             // the mirroredLevel object is always added to the list
             // before the custom Level instance
             KnownLevel o = new KnownLevel(l);
@@ -562,24 +625,36 @@
                 intToLevels.put(l.value, list);
             }
             list.add(o);
+
+            // keep the custom level reachable from its class loader
+            // This will ensure that custom level values are not GC'ed
+            // until there class loader is GC'ed.
+            if (o.mirroredLevel != l) {
+                registerWithClassLoader(l);
+            }
+
         }
 
         // Returns a KnownLevel with the given non-localized name.
-        static synchronized KnownLevel findByName(String name) {
-            List<KnownLevel> list = nameToLevels.get(name);
-            if (list != null) {
-                return list.get(0);
-            }
-            return null;
+        static synchronized Optional<Level> findByName(String name,
+                Function<KnownLevel, Optional<Level>> selector) {
+            purge();
+            return nameToLevels.getOrDefault(name, Collections.emptyList())
+                        .stream()
+                        .map(selector)
+                        .flatMap(Optional::stream)
+                        .findFirst();
         }
 
         // Returns a KnownLevel with the given value.
-        static synchronized KnownLevel findByValue(int value) {
-            List<KnownLevel> list = intToLevels.get(value);
-            if (list != null) {
-                return list.get(0);
-            }
-            return null;
+        static synchronized Optional<Level> findByValue(int value,
+                Function<KnownLevel, Optional<Level>> selector) {
+            purge();
+            return intToLevels.getOrDefault(value, Collections.emptyList())
+                        .stream()
+                        .map(selector)
+                        .flatMap(Optional::stream)
+                        .findFirst();
         }
 
         // Returns a KnownLevel with the given localized name matching
@@ -587,32 +662,34 @@
         // from the resourceBundle associated with the Level object).
         // This method does not call Level.getLocalizedName() that may
         // be overridden in a subclass implementation
-        static synchronized KnownLevel findByLocalizedLevelName(String name) {
-            for (List<KnownLevel> levels : nameToLevels.values()) {
-                for (KnownLevel l : levels) {
-                    String lname = l.levelObject.getLocalizedLevelName();
-                    if (name.equals(lname)) {
-                        return l;
-                    }
-                }
-            }
-            return null;
+        static synchronized Optional<Level> findByLocalizedLevelName(String name,
+                Function<KnownLevel, Optional<Level>> selector) {
+            purge();
+            return nameToLevels.values().stream()
+                         .flatMap(List::stream)
+                         .map(selector)
+                         .flatMap(Optional::stream)
+                         .filter(l -> name.equals(l.getLocalizedLevelName()))
+                         .findFirst();
         }
 
-        static synchronized KnownLevel matches(Level l) {
+        static synchronized Optional<Level> matches(Level l) {
+            purge();
             List<KnownLevel> list = nameToLevels.get(l.name);
             if (list != null) {
-                for (KnownLevel level : list) {
-                    Level other = level.mirroredLevel;
+                for (KnownLevel ref : list) {
+                    Level levelObject = ref.get();
+                    if (levelObject == null) continue;
+                    Level other = ref.mirroredLevel;
                     if (l.value == other.value &&
                            (l.resourceBundleName == other.resourceBundleName ||
                                (l.resourceBundleName != null &&
                                 l.resourceBundleName.equals(other.resourceBundleName)))) {
-                        return level;
+                        return Optional.of(levelObject);
                     }
                 }
             }
-            return null;
+            return Optional.empty();
         }
     }
 
--- a/jdk/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java	Wed Sep 14 11:22:39 2016 -0700
@@ -308,10 +308,6 @@
 
     //-- native methods
 
-    static native boolean isLinuxThreads();
-
-    static native int getLinuxThreadsManager(int pid) throws IOException;
-
     static native void sendQuitToChildrenOf(int pid) throws IOException;
 
     static native void sendQuitTo(int pid) throws IOException;
--- a/jdk/src/jdk.attach/linux/native/libattach/VirtualMachineImpl.c	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/jdk.attach/linux/native/libattach/VirtualMachineImpl.c	Wed Sep 14 11:22:39 2016 -0700
@@ -195,113 +195,6 @@
 }
 
 /*
- * Class:     sun_tools_attach_VirtualMachineImpl
- * Method:    isLinuxThreads
- * Signature: ()V
- */
-JNIEXPORT jboolean JNICALL Java_sun_tools_attach_VirtualMachineImpl_isLinuxThreads
-  (JNIEnv *env, jclass cls)
-{
-# ifndef _CS_GNU_LIBPTHREAD_VERSION
-# define _CS_GNU_LIBPTHREAD_VERSION 3
-# endif
-    size_t n;
-    char* s;
-    jboolean res;
-
-    n = confstr(_CS_GNU_LIBPTHREAD_VERSION, NULL, 0);
-    if (n <= 0) {
-       /* glibc before 2.3.2 only has LinuxThreads */
-       return JNI_TRUE;
-    }
-
-    s = (char *)malloc(n);
-    if (s == NULL) {
-        JNU_ThrowOutOfMemoryError(env, "malloc failed");
-        return JNI_TRUE;
-    }
-    confstr(_CS_GNU_LIBPTHREAD_VERSION, s, n);
-
-    /*
-     * If the LIBPTHREAD version include "NPTL" then we know we
-     * have the new threads library and not LinuxThreads
-     */
-    res = (jboolean)(strstr(s, "NPTL") == NULL);
-    free(s);
-    return res;
-}
-
-/*
- * Structure and callback function used to count the children of
- * a given process, and record the pid of the "manager thread".
- */
-typedef struct {
-    pid_t ppid;
-    int count;
-    pid_t mpid;
-} ChildCountContext;
-
-static void ChildCountCallback(const pid_t pid, void* user_data) {
-    ChildCountContext* context = (ChildCountContext*)user_data;
-    if (getParent(pid) == context->ppid) {
-        context->count++;
-        /*
-         * Remember the pid of the first child. If the final count is
-         * one then this is the pid of the LinuxThreads manager.
-         */
-        if (context->count == 1) {
-            context->mpid = pid;
-        }
-    }
-}
-
-/*
- * Class:     sun_tools_attach_VirtualMachineImpl
- * Method:    getLinuxThreadsManager
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_sun_tools_attach_VirtualMachineImpl_getLinuxThreadsManager
-  (JNIEnv *env, jclass cls, jint pid)
-{
-    ChildCountContext context;
-
-    /*
-     * Iterate over all processes to find how many children 'pid' has
-     */
-    context.ppid = pid;
-    context.count = 0;
-    context.mpid = (pid_t)0;
-    forEachProcess(ChildCountCallback, (void*)&context);
-
-    /*
-     * If there's no children then this is likely the pid of the primordial
-     * created by the launcher - in that case the LinuxThreads manager is the
-     * parent of this process.
-     */
-    if (context.count == 0) {
-        pid_t parent = getParent(pid);
-        if ((int)parent > 0) {
-            return (jint)parent;
-        }
-    }
-
-    /*
-     * There's one child so this is likely the embedded VM case where the
-     * the primordial thread == LinuxThreads initial thread. The LinuxThreads
-     * manager in that case is the child.
-     */
-    if (context.count == 1) {
-        return (jint)context.mpid;
-    }
-
-    /*
-     * If we get here it's most likely we were given the wrong pid
-     */
-    JNU_ThrowIOException(env, "Unable to get pid of LinuxThreads manager thread");
-    return -1;
-}
-
-/*
  * Structure and callback function used to send a QUIT signal to all
  * children of a given process
  */
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/builder/DefaultImageBuilder.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/builder/DefaultImageBuilder.java	Wed Sep 14 11:22:39 2016 -0700
@@ -55,6 +55,7 @@
 import java.util.Optional;
 import java.util.Properties;
 import java.util.Set;
+import java.util.stream.Collectors;
 import jdk.tools.jlink.internal.BasicImageWriter;
 import jdk.tools.jlink.internal.plugins.FileCopierPlugin.SymImageFile;
 import jdk.tools.jlink.internal.ExecutableImage;
@@ -159,7 +160,7 @@
             }
             i++;
         }
-        props.setProperty("MODULES", builder.toString());
+        props.setProperty("MODULES", quote(builder.toString()));
     }
 
     @Override
@@ -217,19 +218,38 @@
         }
     }
 
+    // Parse version string and return a string that includes only version part
+    // leaving "pre", "build" information. See also: java.lang.Runtime.Version.
+    private static String parseVersion(String str) {
+        return Runtime.Version.parse(str).
+            version().
+            stream().
+            map(Object::toString).
+            collect(Collectors.joining("."));
+    }
+
+    private static String quote(String str) {
+        return "\"" + str + "\"";
+    }
+
     private Properties releaseProperties(ResourcePool pool) throws IOException {
         Properties props = new Properties();
         Optional<ResourcePoolModule> javaBase = pool.moduleView().findModule("java.base");
         javaBase.ifPresent(mod -> {
             // fill release information available from transformed "java.base" module!
             ModuleDescriptor desc = mod.descriptor();
-            desc.osName().ifPresent(s -> props.setProperty("OS_NAME", s));
-            desc.osVersion().ifPresent(s -> props.setProperty("OS_VERSION", s));
-            desc.osArch().ifPresent(s -> props.setProperty("OS_ARCH", s));
-            props.setProperty("JAVA_VERSION", System.getProperty("java.version"));
+            desc.osName().ifPresent(s -> {
+                props.setProperty("OS_NAME", quote(s));
+                this.targetOsName = s;
+            });
+            desc.osVersion().ifPresent(s -> props.setProperty("OS_VERSION", quote(s)));
+            desc.osArch().ifPresent(s -> props.setProperty("OS_ARCH", quote(s)));
+            desc.version().ifPresent(s -> props.setProperty("JAVA_VERSION",
+                    quote(parseVersion(s.toString()))));
+            desc.version().ifPresent(s -> props.setProperty("JAVA_FULL_VERSION",
+                    quote(s.toString())));
         });
 
-        this.targetOsName = props.getProperty("OS_NAME");
         if (this.targetOsName == null) {
             throw new PluginException("TargetPlatform attribute is missing for java.base module");
         }
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java	Wed Sep 14 11:22:39 2016 -0700
@@ -264,8 +264,8 @@
 
         // Add Thai BreakIterator related data files
         if (tag.equals("th")) {
-            files.add(".+sun/text/resources/thai_dict");
-            files.add(".+sun/text/resources/[^_]+BreakIteratorData_th");
+            files.add(".+sun/text/resources/ext/thai_dict");
+            files.add(".+sun/text/resources/ext/[^_]+BreakIteratorData_th");
         }
 
         // Add Taiwan resource bundles for Hong Kong
Binary file jdk/src/jdk.localedata/share/classes/sun/text/resources/ext/thai_dict has changed
Binary file jdk/src/jdk.localedata/share/classes/sun/text/resources/thai_dict has changed
--- a/jdk/test/ProblemList.txt	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/ProblemList.txt	Wed Sep 14 11:22:39 2016 -0700
@@ -159,7 +159,6 @@
 
 # jdk_net
 
-
 java/net/MulticastSocket/NoLoopbackPackets.java                 7122846 macosx-all
 java/net/MulticastSocket/SetLoopbackMode.java                   7122846 macosx-all
 
@@ -173,6 +172,8 @@
 java/net/httpclient/http2/ErrorTest.java                        8158127 solaris-all,windows-all
 java/net/httpclient/http2/TLSConnection.java                    8157482 macosx-all
 
+sun/net/www/protocol/jar/JarURLConnectionUseCaches.java         8165988 windows-all
+
 ############################################################################
 
 # jdk_nio
@@ -217,66 +218,6 @@
 
 sun/security/tools/jarsigner/warnings/BadKeyUsageTest.java      8026393 generic-all
 
-sun/security/pkcs11/Cipher/ReinitCipher.java                    8077138,8023434 windows-all
-sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java           8077138,8023434 windows-all
-sun/security/pkcs11/Cipher/TestRSACipher.java                   8077138,8023434 windows-all
-sun/security/pkcs11/Cipher/TestRSACipherWrap.java               8077138,8023434 windows-all
-sun/security/pkcs11/Cipher/TestRawRSACipher.java                8077138,8023434 windows-all
-sun/security/pkcs11/Cipher/TestSymmCiphers.java                 8077138,8023434 windows-all
-sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java            8077138,8023434 windows-all
-sun/security/pkcs11/KeyAgreement/TestDH.java                    8077138,8023434 windows-all
-sun/security/pkcs11/KeyAgreement/TestInterop.java               8077138,8023434 windows-all
-sun/security/pkcs11/KeyAgreement/TestShort.java                 8077138,8023434 windows-all
-sun/security/pkcs11/KeyAgreement/SupportedDHKeys.java           8077138 windows-all
-sun/security/pkcs11/KeyAgreement/UnsupportedDHKeys.java         8077138 windows-all
-sun/security/pkcs11/KeyGenerator/DESParity.java                 8077138,8023434 windows-all
-sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java          8077138,8023434 windows-all
-sun/security/pkcs11/KeyPairGenerator/TestDH2048.java            8077138,8023434 windows-all
-sun/security/pkcs11/KeyStore/SecretKeysBasic.sh                 8077138,8023434 windows-all
-sun/security/pkcs11/Mac/MacKAT.java                             8077138,8023434 windows-all
-sun/security/pkcs11/Mac/MacSameTest.java                        8077138,8023434 windows-all
-sun/security/pkcs11/Mac/ReinitMac.java                          8077138,8023434 windows-all
-sun/security/pkcs11/MessageDigest/ByteBuffers.java              8077138,8023434 windows-all
-sun/security/pkcs11/MessageDigest/DigestKAT.java                8077138,8023434 windows-all
-sun/security/pkcs11/MessageDigest/ReinitDigest.java             8077138,8023434 windows-all
-sun/security/pkcs11/MessageDigest/TestCloning.java              8077138,8023434 windows-all
-sun/security/pkcs11/Provider/ConfigQuotedString.sh              8077138,8023434 windows-all
-sun/security/pkcs11/Provider/Login.sh                           8077138,8023434 windows-all
-sun/security/pkcs11/SampleTest.java                             8077138,8023434 windows-all
-sun/security/pkcs11/Secmod/AddPrivateKey.java                   8077138,8023434 windows-all
-sun/security/pkcs11/Secmod/AddTrustedCert.java                  8077138,8023434 windows-all
-sun/security/pkcs11/Secmod/Crypto.java                          8077138,8023434 windows-all
-sun/security/pkcs11/Secmod/GetPrivateKey.java                   8077138,8023434 windows-all
-sun/security/pkcs11/Secmod/JksSetPrivateKey.java                8077138,8023434 windows-all
-sun/security/pkcs11/Secmod/LoadKeystore.java                    8077138,8023434 windows-all
-sun/security/pkcs11/SecureRandom/Basic.java                     8077138,8023434 windows-all
-sun/security/pkcs11/SecureRandom/TestDeserialization.java       8077138,8023434 windows-all
-sun/security/pkcs11/Serialize/SerializeProvider.java            8077138,8023434 windows-all
-sun/security/pkcs11/Signature/ByteBuffers.java                  8077138,8023434 windows-all
-sun/security/pkcs11/Signature/ReinitSignature.java              8077138,8023434 windows-all
-sun/security/pkcs11/Signature/TestDSA.java                      8077138,8023434 windows-all
-sun/security/pkcs11/Signature/TestDSAKeyLength.java             8077138,8023434 windows-all
-sun/security/pkcs11/Signature/TestRSAKeyLength.java             8077138,8023434 windows-all
-sun/security/pkcs11/ec/ReadCertificates.java                    8077138,8023434 windows-all
-sun/security/pkcs11/ec/ReadPKCS12.java                          8077138,8023434 windows-all
-sun/security/pkcs11/ec/TestCurves.java                          8077138,8023434 windows-all
-sun/security/pkcs11/ec/TestECDH.java                            8077138,8023434 windows-all
-sun/security/pkcs11/ec/TestECDH2.java                           8077138,8023434 windows-all
-sun/security/pkcs11/ec/TestECDSA.java                           8077138,8023434 windows-all
-sun/security/pkcs11/ec/TestECDSA2.java                          8077138,8023434 windows-all
-sun/security/pkcs11/ec/TestECGenSpec.java                       8077138,8023434 windows-all
-sun/security/pkcs11/rsa/KeyWrap.java                            8077138,8023434 windows-all
-sun/security/pkcs11/rsa/TestCACerts.java                        8077138,8023434 windows-all
-sun/security/pkcs11/rsa/TestKeyFactory.java                     8077138,8023434 windows-all
-sun/security/pkcs11/rsa/TestKeyPairGenerator.java               8077138,8023434 windows-all
-sun/security/pkcs11/rsa/TestSignatures.java                     8077138,8023434 windows-all
-sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java            8077138,8023434 windows-all
-sun/security/pkcs11/tls/TestKeyMaterial.java                    8077138,8023434 windows-all
-sun/security/pkcs11/tls/TestLeadingZeroesP11.java               8077138,8023434 windows-all
-sun/security/pkcs11/tls/TestMasterSecret.java                   8077138,8023434 windows-all
-sun/security/pkcs11/tls/TestPRF.java                            8077138,8023434 windows-all
-sun/security/pkcs11/tls/TestPremaster.java                      8077138,8023434 windows-all
-
 sun/security/krb5/auto/HttpNegotiateServer.java                 8038079 generic-all
 
 sun/security/ssl/SSLSocketImpl/AsyncSSLSocketClose.java         8161232 macosx-all
@@ -312,8 +253,6 @@
 
 tools/launcher/FXLauncherTest.java                              8068049 linux-all,macosx-all
 
-tools/pack200/Pack200Props.java                                 8155857 generic-all
-
 ############################################################################
 
 # jdk_jdi
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/instrument/CustomSystemLoader/Agent.java	Wed Sep 14 11:22:39 2016 -0700
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2016, 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.
+ */
+
+import java.io.PrintStream;
+import java.lang.instrument.*;
+import java.lang.reflect.Field;
+
+/**
+  * @test
+  * @bug 8160950
+  * @summary test for custom system class loader
+  *
+  * @run build App Agent CustomLoader
+  * @run shell ../MakeJAR3.sh Agent 'Can-Retransform-Classes: true'
+  * @run main/othervm -javaagent:Agent.jar -Djava.system.class.loader=CustomLoader App
+  */
+
+public class Agent {
+    private static PrintStream err = System.err;
+    private static PrintStream out = System.out;
+    public  static boolean failed = false;
+
+    public static void premain(String agentArgs, Instrumentation instrumentation) {
+        ClassLoader myClassLoader = Agent.class.getClassLoader();
+        out.println("Agent: started; myClassLoader: " + myClassLoader);
+        try {
+            Field fld = myClassLoader.getClass().getField("agentClassLoader");
+            fld.set(myClassLoader.getClass(), myClassLoader);
+        } catch (Exception ex) {
+            failed = true;
+            ex.printStackTrace();
+        }
+        out.println("Agent: finished");
+   }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/instrument/CustomSystemLoader/App.java	Wed Sep 14 11:22:39 2016 -0700
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2016, 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.
+ */
+
+import java.io.PrintStream;
+
+public class App {
+
+    public static void main(String args[]) throws Exception {
+        (new App()).run(args, System.out);
+    }
+
+    public void run(String args[], PrintStream out) throws Exception {
+        out.println("App: Test started");
+        if (CustomLoader.agentClassLoader != CustomLoader.myself) {
+            System.out.println("App: agentClassLoader:    " + CustomLoader.agentClassLoader);
+            System.out.println("App: CustomLoader.myself: " + CustomLoader.myself);
+            System.out.println("App: myClassLoader:       " + App.class.getClassLoader());
+            throw new Exception("App: Agent's system class loader is not CustomLoader");
+        } else if (Agent.failed) {
+            throw new Exception("App: Agent failed");
+        } else if (CustomLoader.failed) {
+            throw new Exception("App: CustomLoader failed");
+        }
+        out.println("App: Test passed");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/lang/instrument/CustomSystemLoader/CustomLoader.java	Wed Sep 14 11:22:39 2016 -0700
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2016, 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.
+ */
+
+import java.io.DataInputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.jar.JarFile;
+import java.util.zip.ZipEntry;
+
+public class CustomLoader extends ClassLoader {
+    private static PrintStream out = System.out;
+    public  static ClassLoader myself;
+    public  static ClassLoader agentClassLoader;
+    public  static boolean failed = true;
+
+    public CustomLoader(ClassLoader classLoader) {
+        super(classLoader);
+        myself = this;
+    }
+
+    @Override
+    public Class<?> loadClass(String name) throws ClassNotFoundException {
+        out.println("CustomLoader: loading class: " + name);
+        if (name.equals("Agent")) {
+            Class c = null;
+            try {
+                byte[] buf = locateBytes();
+                c = defineClass(name, buf, 0, buf.length);
+            } catch (IOException ex) {
+                throw new ClassNotFoundException(ex.getMessage());
+            }
+            resolveClass(c);
+            out.println("CustomLoader.loadClass after resolveClass: " + name +
+                        "; Class: " + c + "; ClassLoader: " + c.getClassLoader());
+            return c;
+        }
+        return super.loadClass(name);
+    }
+
+    private byte[] locateBytes() throws IOException {
+        try {
+            JarFile jar = new JarFile("Agent.jar");
+            InputStream is = jar.getInputStream(jar.getEntry("Agent.class"));
+            int len = is.available();
+            byte[] buf = new byte[len];
+            DataInputStream in = new DataInputStream(is);
+            in.readFully(buf);
+            return buf;
+        } catch (IOException ioe) {
+            ioe.printStackTrace();
+            throw new IOException("Test failed due to IOException!");
+        }
+    }
+
+    void appendToClassPathForInstrumentation(String path) {
+        out.println("CustomLoader.appendToClassPathForInstrumentation: " +
+                    this + ", jar: " + path);
+        failed = false;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/security/cert/CertPathValidator/trustAnchor/ValWithAnchorByName.java	Wed Sep 14 11:22:39 2016 -0700
@@ -0,0 +1,292 @@
+/*
+ * Copyright (c) 2004, 2016, 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 8132926
+ * @summary PKIXParameters built with public key form of TrustAnchor causes
+ *          NPE during cert path building/validation
+ * @run main ValWithAnchorByName
+ */
+
+import java.io.ByteArrayInputStream;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.CertPath;
+import java.security.cert.CertPathValidator;
+import java.security.cert.PKIXParameters;
+import java.security.cert.PKIXRevocationChecker;
+import java.security.cert.TrustAnchor;
+import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.Base64;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+
+// To get certpath debugging, add -Djava.security.debug=certpath
+
+public class ValWithAnchorByName {
+
+    // The following certificates and OCSP responses were captured from
+    // a test run that used certificates and responses generated by
+    // sun.security.testlibrary.CertificateBuilder and
+    // sun.security.testlibrary.SimpleOCSPServer.
+
+    // Subject: CN=SSLCertificate, O=SomeCompany
+    // Issuer: CN=Intermediate CA Cert, O=SomeCompany
+    // Validity: Tue Aug 30 14:37:19 PDT 2016 to Wed Aug 30 14:37:19 PDT 2017
+    private static final String EE_CERT =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIIDnTCCAoWgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwNTEUMBIGA1UEChMLU29t\n" +
+        "ZUNvbXBhbnkxHTAbBgNVBAMTFEludGVybWVkaWF0ZSBDQSBDZXJ0MB4XDTE2MDgz\n" +
+        "MDIxMzcxOVoXDTE3MDgzMDIxMzcxOVowLzEUMBIGA1UEChMLU29tZUNvbXBhbnkx\n" +
+        "FzAVBgNVBAMTDlNTTENlcnRpZmljYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A\n" +
+        "MIIBCgKCAQEAjgv8KKE4CO0rbCjRLA1hXjRiSq30jeusCJ8frbRG+QOBgQ3j6jgc\n" +
+        "vk5wG1aTu7R4AFn0/HRDMzP9ZbRlZVIbJUTd8YiaNyZeyWapPnxHWrPCd5e1xopk\n" +
+        "ElieDdEH5FiLGtIrWy56CGA1hfQb1vUVYegyeY+TTtMFVHt0PrmMk4ZRgj/GtVNp\n" +
+        "BQQYIzaYAcrcWMeCn30ZrhaGAL1hsdgmEVV1wsTD4JeNMSwLwMYem7fg8ondGZIR\n" +
+        "kZuGtuSdOHu4Xz+mgDNXTeX/Bp/dQFucxCG+FOOM9Hoz72RY2W8YqgL38RlnwYWp\n" +
+        "nUNxhXWFH6vyINRQVEu3IgahR6HXjxM7LwIDAQABo4G8MIG5MBQGA1UdEQQNMAuC\n" +
+        "CWxvY2FsaG9zdDAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9s\n" +
+        "b2NhbGhvc3Q6NDIzMzMwHwYDVR0jBBgwFoAUYT525lwHCI4CmuWs8a7poaeKRJ4w\n" +
+        "HQYDVR0OBBYEFCaQnOX4L1ovqyfeKuoay+kI+lXgMA4GA1UdDwEB/wQEAwIFoDAd\n" +
+        "BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEB\n" +
+        "AD8dqQIqFasJcL8lm4mPTsBl0JgNiN8tQcXM7VCvcH+yDvEyh9vudDjuhpSORqPq\n" +
+        "f1o/EvJ+gfs269mBnYQujYRvmSd6EAcBntv5zn6amOh03o6PqTY9KaUC/mL9hB84\n" +
+        "Y5/LYioP16sME7egKnlrGUgKh0ZvGzm7c3SYx3Z5YoeFBOkZajc7Jm+cBw/uBQkF\n" +
+        "a9mLEczIvOgkq1wto8vr2ptH1gEuvFRcorN3muvq34bk40G08+AHlP3fCLFpI3FA\n" +
+        "IStJLJZRcO+Ib4sOcKuaBGnuMo/QVOCEMDUs6RgiWtSd93OZKFIUOASVp6YIkcSs\n" +
+        "5/rmc06sICqBjLfPEB68Jjw=\n" +
+        "-----END CERTIFICATE-----";
+
+    // Subject: CN=Intermediate CA Cert, O=SomeCompany
+    // Issuer: CN=Root CA Cert, O=SomeCompany
+    // Validity: Sun Aug 07 14:37:19 PDT 2016 to Tue Aug 07 14:37:19 PDT 2018
+    private static final String INT_CA_CERT =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIIDdjCCAl6gAwIBAgIBZDANBgkqhkiG9w0BAQsFADAtMRQwEgYDVQQKEwtTb21l\n" +
+        "Q29tcGFueTEVMBMGA1UEAxMMUm9vdCBDQSBDZXJ0MB4XDTE2MDgwNzIxMzcxOVoX\n" +
+        "DTE4MDgwNzIxMzcxOVowNTEUMBIGA1UEChMLU29tZUNvbXBhbnkxHTAbBgNVBAMT\n" +
+        "FEludGVybWVkaWF0ZSBDQSBDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\n" +
+        "CgKCAQEAnJR5CnE7GKlQjigExSJ6hHu302mc0PcA6TDgsIitPYD/r8RBbBuE51OQ\n" +
+        "7IP7AXmfPUV3/+pO/uxx6mgY5O6XeUl7KadhVPtPcL0BVVevCSOdTMVa3iV4zRpa\n" +
+        "C6Uy2ouUFnafKnDtlbieggyETUoNgVNJYA9L0XNhtSnENoLHC4Pq0v8OsNtsOWFR\n" +
+        "NiMTOA49NNDBw85WgPyFAxjqO4z0J0zxdWq3W4rSMB8xrkulv2Rvj3GcfYJK/ab8\n" +
+        "V1IJ6PMWCpujASY3BzvYPnN7BKuBjbWJPgZdPYfX1cxeG80u0tOuMfWWiNONSMSA\n" +
+        "7m9y304QA0gKqlrFFn9U4hU89kv1IwIDAQABo4GYMIGVMA8GA1UdEwEB/wQFMAMB\n" +
+        "Af8wMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzABhhZodHRwOi8vbG9jYWxob3N0\n" +
+        "OjM5MTM0MB8GA1UdIwQYMBaAFJNMsejEyJUB9tiWycVczvpiMVQZMB0GA1UdDgQW\n" +
+        "BBRhPnbmXAcIjgKa5azxrumhp4pEnjAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcN\n" +
+        "AQELBQADggEBAE4nOFdW9OirPnRvxihQXYL9CXLuGQz5tr0XgN8wSY6Un9b6CRiK\n" +
+        "7obgIGimVdhvUC1qdRcwJqgOfJ2/jR5/5Qo0TVp+ww4dHNdUoj73tagJ7jTu0ZMz\n" +
+        "5Zdp0uwd4RD/syvTeVcbPc3m4awtgEvRgzpDMcSeKPZWInlo7fbnowKSAUAfO8de\n" +
+        "0cDkxEBkzPIzGNu256cdLZOqOK9wLJ9mQ0zKgi/2NsldNc2pl/6jkGpA6uL5lJsm\n" +
+        "fo9sDusWNHV1YggqjDQ19hrf40VuuC9GFl/qAW3marMuEzY/NiKVUxty1q1s48SO\n" +
+        "g5LoEPDDkbygOt7ICL3HYG1VufhC1Q2YY9c=\n" +
+        "-----END CERTIFICATE-----";
+
+    // Subject: CN=Root CA Cert, O=SomeCompany
+    // Issuer: CN=Root CA Cert, O=SomeCompany
+    // Validity: Fri Jul 08 14:37:18 PDT 2016 to Fri Jun 28 14:37:18 PDT 2019
+    private static final String ROOT_CA_CERT =
+        "-----BEGIN CERTIFICATE-----\n" +
+        "MIIDODCCAiCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAtMRQwEgYDVQQKEwtTb21l\n" +
+        "Q29tcGFueTEVMBMGA1UEAxMMUm9vdCBDQSBDZXJ0MB4XDTE2MDcwODIxMzcxOFoX\n" +
+        "DTE5MDYyODIxMzcxOFowLTEUMBIGA1UEChMLU29tZUNvbXBhbnkxFTATBgNVBAMT\n" +
+        "DFJvb3QgQ0EgQ2VydDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIlN\n" +
+        "M3WYEqkU2elXEZrV9QSDbDKwyaLEHafLFciH8Edoag3q/7jEzFJxI7JZ831tdbWQ\n" +
+        "Bm6Hgo+8pvetOFW1BckL8eIjyOONP2CKfFaeMaozsWi1cgxa+rjpU/Rekc+zBqvv\n" +
+        "y4Sr97TwT6nQiLlgjC1nCfR1SVpO51qoDChS7n785rsKEZxw/p+kkVWSZffU7zN9\n" +
+        "c645cPg//L/kjiyeKMkaquGQOYS68gQgy8YZXQv1E3l/8e8Ci1s1DYA5wpCbaBqg\n" +
+        "Tw84Rr4zlUEQBgXzQlRt+mPzeaDpdG1EeGkXrcdkZ+0EMELoOVXOEn6VNsz6vT3I\n" +
+        "KrnvQBSnN06xq/iWwC0CAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME\n" +
+        "GDAWgBSTTLHoxMiVAfbYlsnFXM76YjFUGTAdBgNVHQ4EFgQUk0yx6MTIlQH22JbJ\n" +
+        "xVzO+mIxVBkwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4IBAQAAi+Nl\n" +
+        "sxP9t2IhiZIHRJGSBZuQlXIjwYIwbq3ZWc/ApZ+0oxtl7DYQi5uRNt8/opcGNCHc\n" +
+        "IY0fG93SbkDubXbxPYBW6D/RUjbz59ZryaP5ym55p1MjHTOqy+AM8g41xNTJikc3\n" +
+        "UUFXXnckeFbawijCsb7vf71owzKuxgBXi9n1rmXXtncKoA/LrUVXoUlKefdgDnsU\n" +
+        "sl3Q29eibE3HSqziMMoAOLm0jjekFGWIgLeTtyRYR1d0dNaUwsHTrQpPjxxUTn1x\n" +
+        "sAPpXKfzPnsYAZeeiaaE75GwbWlHzrNinvxdZQd0zctpfBJfVqD/+lWANlw+rOaK\n" +
+        "J2GyCaJINsyaI/I2\n" +
+        "-----END CERTIFICATE-----";
+
+    // OCSP Response Status: successful (0x0)
+    // Response Type: Basic OCSP Response
+    // Version: 1 (0x0)
+    // Responder Id: CN=Intermediate CA Cert, O=SomeCompany
+    // Produced At: Sep  6 21:37:20 2016 GMT
+    // Responses:
+    // Certificate ID:
+    //    Hash Algorithm: sha1
+    //    Issuer Name Hash: 7ED23D4396152EAB7D0C4AD8C1CA1418AA05DD54
+    //    Issuer Key Hash: 613E76E65C07088E029AE5ACF1AEE9A1A78A449E
+    //    Serial Number: 1000
+    // Cert Status: good
+    // This Update: Sep  6 21:37:20 2016 GMT
+    // Next Update: Sep  6 22:37:19 2016 GMT
+    private static final String EE_OCSP_RESP =
+        "MIIFbAoBAKCCBWUwggVhBgkrBgEFBQcwAQEEggVSMIIFTjCBtaE3MDUxFDASBgNV\n" +
+        "BAoTC1NvbWVDb21wYW55MR0wGwYDVQQDExRJbnRlcm1lZGlhdGUgQ0EgQ2VydBgP\n" +
+        "MjAxNjA5MDYyMTM3MjBaMGUwYzA7MAkGBSsOAwIaBQAEFH7SPUOWFS6rfQxK2MHK\n" +
+        "FBiqBd1UBBRhPnbmXAcIjgKa5azxrumhp4pEngICEACAABgPMjAxNjA5MDYyMTM3\n" +
+        "MjBaoBEYDzIwMTYwOTA2MjIzNzE5WqECMAAwDQYJKoZIhvcNAQELBQADggEBAF13\n" +
+        "cLwxDG8UYPIbzID86vZGOWUuv5c35VnvebMk/ajAUdpItDYshIQVi90Z8BB2TEi/\n" +
+        "wtx1aNkIv7db0uQ0NnRfvME8vG2PWbty36CNAYr/M5UVzUmELH2sGTyf2fKfNIUK\n" +
+        "Iya/NRxCqxLAc34NYH0YyGJ9VcDjbEMNSBAHIqDdBNqKUPnjn454yoivU2oEs294\n" +
+        "cGePMx3QLyPepMwUss8nW74yIF7vxfJ+KFDBGWNuZDRfXScsGIoeM0Vt9B+4fmnV\n" +
+        "nP4Dw6l3IwmQH4ppjg08qTKvyrXcF2dPDWa98Xw6bA5G085Z/b/6/6GpkvKx/q6i\n" +
+        "UqKwF7q5hkDcB+N4/5SgggN+MIIDejCCA3YwggJeoAMCAQICAWQwDQYJKoZIhvcN\n" +
+        "AQELBQAwLTEUMBIGA1UEChMLU29tZUNvbXBhbnkxFTATBgNVBAMTDFJvb3QgQ0Eg\n" +
+        "Q2VydDAeFw0xNjA4MDcyMTM3MTlaFw0xODA4MDcyMTM3MTlaMDUxFDASBgNVBAoT\n" +
+        "C1NvbWVDb21wYW55MR0wGwYDVQQDExRJbnRlcm1lZGlhdGUgQ0EgQ2VydDCCASIw\n" +
+        "DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJyUeQpxOxipUI4oBMUieoR7t9Np\n" +
+        "nND3AOkw4LCIrT2A/6/EQWwbhOdTkOyD+wF5nz1Fd//qTv7scepoGOTul3lJeymn\n" +
+        "YVT7T3C9AVVXrwkjnUzFWt4leM0aWgulMtqLlBZ2nypw7ZW4noIMhE1KDYFTSWAP\n" +
+        "S9FzYbUpxDaCxwuD6tL/DrDbbDlhUTYjEzgOPTTQwcPOVoD8hQMY6juM9CdM8XVq\n" +
+        "t1uK0jAfMa5Lpb9kb49xnH2CSv2m/FdSCejzFgqbowEmNwc72D5zewSrgY21iT4G\n" +
+        "XT2H19XMXhvNLtLTrjH1lojTjUjEgO5vct9OEANICqpaxRZ/VOIVPPZL9SMCAwEA\n" +
+        "AaOBmDCBlTAPBgNVHRMBAf8EBTADAQH/MDIGCCsGAQUFBwEBBCYwJDAiBggrBgEF\n" +
+        "BQcwAYYWaHR0cDovL2xvY2FsaG9zdDozOTEzNDAfBgNVHSMEGDAWgBSTTLHoxMiV\n" +
+        "AfbYlsnFXM76YjFUGTAdBgNVHQ4EFgQUYT525lwHCI4CmuWs8a7poaeKRJ4wDgYD\n" +
+        "VR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4IBAQBOJzhXVvToqz50b8YoUF2C\n" +
+        "/Qly7hkM+ba9F4DfMEmOlJ/W+gkYiu6G4CBoplXYb1AtanUXMCaoDnydv40ef+UK\n" +
+        "NE1afsMOHRzXVKI+97WoCe407tGTM+WXadLsHeEQ/7Mr03lXGz3N5uGsLYBL0YM6\n" +
+        "QzHEnij2ViJ5aO3256MCkgFAHzvHXtHA5MRAZMzyMxjbtuenHS2TqjivcCyfZkNM\n" +
+        "yoIv9jbJXTXNqZf+o5BqQOri+ZSbJn6PbA7rFjR1dWIIKow0NfYa3+NFbrgvRhZf\n" +
+        "6gFt5mqzLhM2PzYilVMbctatbOPEjoOS6BDww5G8oDreyAi9x2BtVbn4QtUNmGPX";
+
+    // OCSP Response Status: successful (0x0)
+    // Response Type: Basic OCSP Response
+    // Version: 1 (0x0)
+    // Responder Id: O = SomeCompany, CN = Root CA Cert
+    // Produced At: Sep  6 21:37:20 2016 GMT
+    // Responses:
+    // Certificate ID:
+    //   Hash Algorithm: sha1
+    //   Issuer Name Hash: C8ED9F4E9AC0052A978257C569E6A7C9C45F5CB5
+    //   Issuer Key Hash: 934CB1E8C4C89501F6D896C9C55CCEFA62315419
+    //   Serial Number: 64
+    // Cert Status: good
+    // This Update: Sep  6 21:37:20 2016 GMT
+    // Next Update: Sep  6 22:37:19 2016 GMT
+    private static final String INT_CA_OCSP_RESP =
+        "MIIFJQoBAKCCBR4wggUaBgkrBgEFBQcwAQEEggULMIIFBzCBrKEvMC0xFDASBgNV\n" +
+        "BAoTC1NvbWVDb21wYW55MRUwEwYDVQQDEwxSb290IENBIENlcnQYDzIwMTYwOTA2\n" +
+        "MjEzNzIwWjBkMGIwOjAJBgUrDgMCGgUABBTI7Z9OmsAFKpeCV8Vp5qfJxF9ctQQU\n" +
+        "k0yx6MTIlQH22JbJxVzO+mIxVBkCAWSAABgPMjAxNjA5MDYyMTM3MjBaoBEYDzIw\n" +
+        "MTYwOTA2MjIzNzE5WqECMAAwDQYJKoZIhvcNAQELBQADggEBAAgs8jpuEejPD8qO\n" +
+        "+xckvqMz/5pItOHaSB0xyPNpIapqjcDkLktJdBVq5XJWernO9DU+P7yr7TDbvo6h\n" +
+        "P5jBZklLz16Z1aRlEyow2jhelVjNl6nxoiij/6LOGK4tLHa8fK7hTB4Ykw22Bxzt\n" +
+        "LcbrU5jgUDhdZkTrs+rWM8nw7mVWIQYQfwzCMDZ5a02MxzhdwggJGRzqMrbhY/Q7\n" +
+        "RRUK3ohSgzHmLjVkvA0KeM/Px7EefzbEbww08fSsLybmBoIEbcckWSHkkXx4cuIR\n" +
+        "T9FiTz4Ms4r8qzPCo61qeklE2I5lfnfieROADV6sfwbul/0U1HqKhHVaxJ8yYw+T\n" +
+        "/FMxrUKgggNAMIIDPDCCAzgwggIgoAMCAQICAQEwDQYJKoZIhvcNAQELBQAwLTEU\n" +
+        "MBIGA1UEChMLU29tZUNvbXBhbnkxFTATBgNVBAMTDFJvb3QgQ0EgQ2VydDAeFw0x\n" +
+        "NjA3MDgyMTM3MThaFw0xOTA2MjgyMTM3MThaMC0xFDASBgNVBAoTC1NvbWVDb21w\n" +
+        "YW55MRUwEwYDVQQDEwxSb290IENBIENlcnQwggEiMA0GCSqGSIb3DQEBAQUAA4IB\n" +
+        "DwAwggEKAoIBAQCJTTN1mBKpFNnpVxGa1fUEg2wysMmixB2nyxXIh/BHaGoN6v+4\n" +
+        "xMxScSOyWfN9bXW1kAZuh4KPvKb3rThVtQXJC/HiI8jjjT9ginxWnjGqM7FotXIM\n" +
+        "Wvq46VP0XpHPswar78uEq/e08E+p0Ii5YIwtZwn0dUlaTudaqAwoUu5+/Oa7ChGc\n" +
+        "cP6fpJFVkmX31O8zfXOuOXD4P/y/5I4snijJGqrhkDmEuvIEIMvGGV0L9RN5f/Hv\n" +
+        "AotbNQ2AOcKQm2gaoE8POEa+M5VBEAYF80JUbfpj83mg6XRtRHhpF63HZGftBDBC\n" +
+        "6DlVzhJ+lTbM+r09yCq570AUpzdOsav4lsAtAgMBAAGjYzBhMA8GA1UdEwEB/wQF\n" +
+        "MAMBAf8wHwYDVR0jBBgwFoAUk0yx6MTIlQH22JbJxVzO+mIxVBkwHQYDVR0OBBYE\n" +
+        "FJNMsejEyJUB9tiWycVczvpiMVQZMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0B\n" +
+        "AQsFAAOCAQEAAIvjZbMT/bdiIYmSB0SRkgWbkJVyI8GCMG6t2VnPwKWftKMbZew2\n" +
+        "EIubkTbfP6KXBjQh3CGNHxvd0m5A7m128T2AVug/0VI28+fWa8mj+cpueadTIx0z\n" +
+        "qsvgDPIONcTUyYpHN1FBV153JHhW2sIowrG+73+9aMMyrsYAV4vZ9a5l17Z3CqAP\n" +
+        "y61FV6FJSnn3YA57FLJd0NvXomxNx0qs4jDKADi5tI43pBRliIC3k7ckWEdXdHTW\n" +
+        "lMLB060KT48cVE59cbAD6Vyn8z57GAGXnommhO+RsG1pR86zYp78XWUHdM3LaXwS\n" +
+        "X1ag//pVgDZcPqzmiidhsgmiSDbMmiPyNg==";
+
+    // Do path validation as if it is always Tue, 06 Sep 2016 22:12:21 GMT
+    // This value is within the lifetimes of all certificates and both OCSP
+    // responses.
+    private static final Date EVAL_DATE = new Date(1473199941000L);
+
+    private static final Base64.Decoder DECODER = Base64.getMimeDecoder();
+
+    public static void main(String[] args) throws Exception {
+        TrustAnchor anchor;
+        CertificateFactory cf = CertificateFactory.getInstance("X.509");
+        X509Certificate rootCert = generateCertificate(cf, ROOT_CA_CERT);
+        X509Certificate eeCert = generateCertificate(cf, EE_CERT);
+        X509Certificate intCaCert = generateCertificate(cf, INT_CA_CERT);
+        List<X509Certificate> certList = new ArrayList<X509Certificate>() {{
+            add(eeCert);
+            add(intCaCert);
+        }};
+
+        System.out.println("==== Certificate Path =====");
+        for (X509Certificate c : certList) {
+            System.out.println(c + "\n");
+        }
+        System.out.println("===========================");
+
+        System.out.println("===== Test 1: TA(X509Certificate) =====");
+        anchor = new TrustAnchor(rootCert, null);
+        runTest(cf, certList, anchor);
+
+        System.out.println("===== Test 2: TA(X500Principal, PublicKey =====");
+        anchor = new TrustAnchor(rootCert.getSubjectX500Principal(),
+                rootCert.getPublicKey(), null);
+        runTest(cf, certList, anchor);
+
+        System.out.println("===== Test 3: TA(String, PublicKey =====");
+        anchor = new TrustAnchor(rootCert.getSubjectX500Principal().getName(),
+                rootCert.getPublicKey(), null);
+        runTest(cf, certList, anchor);
+    }
+
+    private static void runTest(CertificateFactory cf,
+            List<X509Certificate> certList, TrustAnchor anchor)
+            throws Exception {
+        CertPath path = cf.generateCertPath(certList);
+        CertPathValidator validator = CertPathValidator.getInstance("PKIX");
+
+        System.out.println(anchor);
+
+        // Attach the OCSP responses to a PKIXParameters object
+        PKIXRevocationChecker pkrev =
+                (PKIXRevocationChecker)validator.getRevocationChecker();
+        Map<X509Certificate, byte[]> responseMap = new HashMap<>();
+        responseMap.put(certList.get(0), DECODER.decode(EE_OCSP_RESP));
+        responseMap.put(certList.get(1), DECODER.decode(INT_CA_OCSP_RESP));
+        pkrev.setOcspResponses(responseMap);
+        PKIXParameters params =
+                new PKIXParameters(Collections.singleton(anchor));
+        params.addCertPathChecker(pkrev);
+        params.setDate(EVAL_DATE);
+
+        validator.validate(path, params);
+    }
+
+    private static X509Certificate generateCertificate(CertificateFactory cf,
+            String encoded) throws CertificateException {
+        ByteArrayInputStream is = new ByteArrayInputStream(encoded.getBytes());
+        return (X509Certificate)cf.generateCertificate(is);
+    }
+}
--- a/jdk/test/java/util/PriorityQueue/NoNulls.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/PriorityQueue/NoNulls.java	Wed Sep 14 11:22:39 2016 -0700
@@ -38,10 +38,8 @@
  */
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Comparator;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.PriorityQueue;
 import java.util.SortedSet;
 import java.util.TreeSet;
--- a/jdk/test/java/util/concurrent/BlockingQueue/LoopHelpers.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/BlockingQueue/LoopHelpers.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,8 +31,6 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-import java.util.concurrent.atomic.AtomicLong;
-
 /**
  * Misc utilities in JSR166 performance tests
  */
--- a/jdk/test/java/util/concurrent/BlockingQueue/OfferDrainToLoops.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/BlockingQueue/OfferDrainToLoops.java	Wed Sep 14 11:22:39 2016 -0700
@@ -43,7 +43,6 @@
 import java.util.SplittableRandom;
 import java.util.concurrent.ArrayBlockingQueue;
 import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.CyclicBarrier;
 import java.util.concurrent.LinkedBlockingDeque;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.LinkedTransferQueue;
--- a/jdk/test/java/util/concurrent/ConcurrentHashMap/LoopHelpers.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/ConcurrentHashMap/LoopHelpers.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,8 +31,6 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-import java.util.concurrent.atomic.AtomicLong;
-
 /**
  * Misc utilities in JSR166 performance tests
  */
--- a/jdk/test/java/util/concurrent/ConcurrentQueues/LoopHelpers.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/ConcurrentQueues/LoopHelpers.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,8 +31,6 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-import java.util.concurrent.atomic.AtomicLong;
-
 /**
  * Misc utilities in JSR166 performance tests
  */
--- a/jdk/test/java/util/concurrent/ConcurrentQueues/OfferRemoveLoops.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/ConcurrentQueues/OfferRemoveLoops.java	Wed Sep 14 11:22:39 2016 -0700
@@ -43,7 +43,6 @@
 import java.util.concurrent.LinkedTransferQueue;
 import java.util.concurrent.PriorityBlockingQueue;
 import java.util.concurrent.Semaphore;
-import java.util.concurrent.ThreadLocalRandom;
 
 @SuppressWarnings({"unchecked", "rawtypes", "deprecation"})
 public class OfferRemoveLoops {
--- a/jdk/test/java/util/concurrent/DelayQueue/Stress.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/DelayQueue/Stress.java	Wed Sep 14 11:22:39 2016 -0700
@@ -22,7 +22,6 @@
  */
 
 import static java.util.concurrent.TimeUnit.NANOSECONDS;
-import static java.util.concurrent.TimeUnit.SECONDS;
 
 import java.util.concurrent.DelayQueue;
 import java.util.concurrent.Delayed;
--- a/jdk/test/java/util/concurrent/Exchanger/LoopHelpers.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/Exchanger/LoopHelpers.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,8 +31,6 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-import java.util.concurrent.atomic.AtomicLong;
-
 /**
  * Misc utilities in JSR166 performance tests
  */
--- a/jdk/test/java/util/concurrent/ExecutorCompletionService/LoopHelpers.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/ExecutorCompletionService/LoopHelpers.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,8 +31,6 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-import java.util.concurrent.atomic.AtomicLong;
-
 /**
  * Misc utilities in JSR166 performance tests
  */
--- a/jdk/test/java/util/concurrent/FutureTask/LoopHelpers.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/FutureTask/LoopHelpers.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,8 +31,6 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-import java.util.concurrent.atomic.AtomicLong;
-
 /**
  * Misc utilities in JSR166 performance tests
  */
--- a/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java	Wed Sep 14 11:22:39 2016 -0700
@@ -33,7 +33,6 @@
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 
 import java.util.concurrent.ScheduledThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
 import jdk.testlibrary.Utils;
 
 /**
--- a/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCoreThreads.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCoreThreads.java	Wed Sep 14 11:22:39 2016 -0700
@@ -40,7 +40,6 @@
 
 import static java.util.concurrent.TimeUnit.HOURS;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static java.util.concurrent.TimeUnit.SECONDS;
 
 import java.lang.reflect.Field;
 import java.util.concurrent.BlockingQueue;
--- a/jdk/test/java/util/concurrent/ThreadPoolExecutor/ConfigChanges.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/ThreadPoolExecutor/ConfigChanges.java	Wed Sep 14 11:22:39 2016 -0700
@@ -28,13 +28,13 @@
  * @library /lib/testlibrary/
  * @build jdk.testlibrary.RandomFactory
  * @run main/othervm ConfigChanges
- * @key randomness intermittent
+ * @key randomness
  * @author Martin Buchholz
  */
 
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static java.util.concurrent.TimeUnit.MINUTES;
-import static java.util.concurrent.TimeUnit.SECONDS;
+import static java.util.concurrent.TimeUnit.NANOSECONDS;
 
 import java.security.Permission;
 import java.util.Random;
@@ -44,7 +44,6 @@
 import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.atomic.AtomicInteger;
 import jdk.testlibrary.RandomFactory;
 
 public class ConfigChanges {
@@ -95,10 +94,10 @@
             check(tpe.getQueue().isEmpty());
             check(tpe.isTerminated());
             check(! tpe.isTerminating());
-            equal(tpe.getActiveCount(), 0);
-            equal(tpe.getPoolSize(), 0);
+            equal(0, tpe.getActiveCount());
+            equal(0, tpe.getPoolSize());
             equal(tpe.getTaskCount(), tpe.getCompletedTaskCount());
-            check(tpe.awaitTermination(0L, SECONDS));
+            check(tpe.awaitTermination(0L, MINUTES));
         } catch (Throwable t) { unexpected(t); }
     }
 
@@ -110,6 +109,21 @@
 
     static volatile Runnable runnableDuJour;
 
+    static void awaitIdleness(ThreadPoolExecutor tpe, long taskCount) {
+        restart: for (;;) {
+            // check twice to make chance of race vanishingly small
+            for (int i = 0; i < 2; i++) {
+                if (tpe.getQueue().size() != 0 ||
+                    tpe.getActiveCount() != 0 ||
+                    tpe.getCompletedTaskCount() != taskCount) {
+                    Thread.yield();
+                    continue restart;
+                }
+            }
+            return;
+        }
+    }
+
     private static void realMain(String[] args) throws Throwable {
         if (rnd.nextBoolean())
             System.setSecurityManager(new PermissiveSecurityManger());
@@ -137,8 +151,9 @@
 
         if (prestart) {
             tpe.prestartAllCoreThreads();
-            equal(tg.activeCount(), n);
-            equal(tg.activeCount(), tpe.getCorePoolSize());
+            equal(n, tg.activeCount());
+            equal(n, tpe.getCorePoolSize());
+            equal(n, tpe.getLargestPoolSize());
         }
 
         final Runnable runRunnableDuJour =
@@ -153,7 +168,7 @@
                 tpe.execute(runRunnableDuJour);
             // Wait for prestarted threads to dequeue their initial tasks.
             while (! tpe.getQueue().isEmpty())
-                Thread.sleep(10);
+                Thread.sleep(1);
             for (int i = 0; i < 5*n; i++)
                 tpe.execute(runRunnableDuJour);
         } else {
@@ -163,73 +178,76 @@
 
         //report("submitted", tpe);
         pumpedUp.await();
-        equal(tg.activeCount(), 3*n);
-        equal(tg.activeCount(), tpe.getMaximumPoolSize());
-        equal(tpe.getCorePoolSize(), n);
+        equal(3*n, tg.activeCount());
+        equal(3*n, tpe.getMaximumPoolSize());
+        equal(3*n, tpe.getLargestPoolSize());
+        equal(n, tpe.getCorePoolSize());
+        equal(3*n, tpe.getActiveCount());
+        equal(6L*n, tpe.getTaskCount());
+        equal(0L, tpe.getCompletedTaskCount());
+
         //report("pumped up", tpe);
-        equal(tpe.getMaximumPoolSize(), 3*n);
         tpe.setMaximumPoolSize(4*n);
-        equal(tpe.getMaximumPoolSize(), 4*n);
+        equal(4*n, tpe.getMaximumPoolSize());
         //report("pumped up2", tpe);
         final CyclicBarrier pumpedUp2 = new CyclicBarrier(n + 1);
         runnableDuJour = waiter(pumpedUp2);
         for (int i = 0; i < 1*n; i++)
             tpe.execute(runRunnableDuJour);
         pumpedUp2.await();
-        equal(tg.activeCount(), 4*n);
-        equal(tg.activeCount(), tpe.getMaximumPoolSize());
-        equal(tpe.getCompletedTaskCount(), 0L);
+        equal(4*n, tg.activeCount());
+        equal(4*n, tpe.getMaximumPoolSize());
+        equal(4*n, tpe.getLargestPoolSize());
+        equal(4*n, tpe.getActiveCount());
+        equal(7L*n, tpe.getTaskCount());
+        equal(0L, tpe.getCompletedTaskCount());
         //report("pumped up2", tpe);
         runnableDuJour = new Runnable() { public void run() {}};
 
         tpe.setMaximumPoolSize(2*n);
-        //report("after set", tpe);
+        //report("after setMaximumPoolSize", tpe);
 
         pumpedUp2.await();
         pumpedUp.await();
 
-//      while (tg.activeCount() != n &&
-//             tg.activeCount() != n)
-//          Thread.sleep(10);
-//      equal(tg.activeCount(), n);
-//      equal(tg.activeCount(), tpe.getCorePoolSize());
-
         while (tg.activeCount() != 2*n &&
                tg.activeCount() != 2*n)
-            Thread.sleep(10);
-        equal(tg.activeCount(), 2*n);
-        equal(tg.activeCount(), tpe.getMaximumPoolSize());
-
+            Thread.yield();
+        equal(2*n, tg.activeCount());
+        equal(2*n, tpe.getMaximumPoolSize());
+        equal(4*n, tpe.getLargestPoolSize());
 
-//report("draining", tpe);
-        while (tpe.getCompletedTaskCount() < 7*n &&
-               tpe.getCompletedTaskCount() < 7*n)
-            Thread.sleep(10);
+        //report("draining", tpe);
+        awaitIdleness(tpe, 7L*n);
 
-        //equal(tg.activeCount(), n);
-        //equal(tg.activeCount(), tpe.getCorePoolSize());
-        equal(tg.activeCount(), 2*n);
-        equal(tg.activeCount(), tpe.getMaximumPoolSize());
+        equal(2*n, tg.activeCount());
+        equal(2*n, tpe.getMaximumPoolSize());
+        equal(4*n, tpe.getLargestPoolSize());
 
-        equal(tpe.getTaskCount(), 7L*n);
-        equal(tpe.getCompletedTaskCount(), 7L*n);
+        equal(7L*n, tpe.getTaskCount());
+        equal(7L*n, tpe.getCompletedTaskCount());
+        equal(0, tpe.getActiveCount());
 
-        equal(tpe.getKeepAliveTime(MINUTES), 3L);
+        equal(3L, tpe.getKeepAliveTime(MINUTES));
+        long t0 = System.nanoTime();
         tpe.setKeepAliveTime(7L, MILLISECONDS);
-        equal(tpe.getKeepAliveTime(MILLISECONDS), 7L);
+        equal(7L, tpe.getKeepAliveTime(MILLISECONDS));
         while (tg.activeCount() > n &&
                tg.activeCount() > n)
-            Thread.sleep(10);
-        equal(tg.activeCount(), n);
+            Thread.sleep(4);
+        equal(n, tg.activeCount());
+        check(System.nanoTime() - t0 >= tpe.getKeepAliveTime(NANOSECONDS));
 
         //report("idle", tpe);
         check(! tpe.allowsCoreThreadTimeOut());
+        t0 = System.nanoTime();
         tpe.allowCoreThreadTimeOut(true);
         check(tpe.allowsCoreThreadTimeOut());
         while (tg.activeCount() > 0 &&
                tg.activeCount() > 0)
-            Thread.sleep(10);
+            Thread.sleep(4);
         equal(tg.activeCount(), 0);
+        check(System.nanoTime() - t0 >= tpe.getKeepAliveTime(NANOSECONDS));
 
         //report("idle", tpe);
 
--- a/jdk/test/java/util/concurrent/ThreadPoolExecutor/ThreadRestarts.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/ThreadPoolExecutor/ThreadRestarts.java	Wed Sep 14 11:22:39 2016 -0700
@@ -40,7 +40,6 @@
  */
 
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static java.util.concurrent.TimeUnit.SECONDS;
 
 import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.ThreadFactory;
--- a/jdk/test/java/util/concurrent/ThreadPoolExecutor/TimeOutShrink.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/ThreadPoolExecutor/TimeOutShrink.java	Wed Sep 14 11:22:39 2016 -0700
@@ -34,7 +34,6 @@
 import java.util.concurrent.CyclicBarrier;
 import java.util.concurrent.SynchronousQueue;
 import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
 import jdk.testlibrary.Utils;
 
 public class TimeOutShrink {
--- a/jdk/test/java/util/concurrent/atomic/AtomicReferenceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/atomic/AtomicReferenceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -22,7 +22,6 @@
  */
 
 import java.util.concurrent.atomic.AtomicReference;
-import java.util.function.UnaryOperator;
 import org.testng.annotations.Test;
 import static org.testng.Assert.*;
 
--- a/jdk/test/java/util/concurrent/forkjoin/SubmissionTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/forkjoin/SubmissionTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -22,27 +22,35 @@
  */
 
 import java.util.concurrent.ForkJoinPool;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
+import jdk.testlibrary.Utils;
 
 /*
  * @test
  * @bug 8078490
  * @summary Test submission and execution of task without joining
+ * @library /lib/testlibrary/
  */
 public class SubmissionTest {
+    static final long LONG_DELAY_MS = Utils.adjustTimeout(10_000);
+
+    static long millisElapsedSince(long startTime) {
+        return (System.nanoTime() - startTime) / (1000L * 1000L);
+    }
+
     public static void main(String[] args) throws Throwable {
         final ForkJoinPool e = new ForkJoinPool(1);
         final AtomicBoolean b = new AtomicBoolean();
         final Runnable setFalse = () -> b.set(false);
-        for (int i = 0; i < 100000; i++) {
+        for (int i = 0; i < 30_000; i++) {
             b.set(true);
             e.execute(setFalse);
-            long st = System.nanoTime();
+            long startTime = System.nanoTime();
             while (b.get()) {
-                if (System.nanoTime() - st >= TimeUnit.SECONDS.toNanos(10)) {
+                if (millisElapsedSince(startTime) >= LONG_DELAY_MS) {
                     throw new RuntimeException("Submitted task failed to execute");
                 }
+                Thread.yield();
             }
         }
     }
--- a/jdk/test/java/util/concurrent/locks/Lock/LoopHelpers.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/locks/Lock/LoopHelpers.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,8 +31,6 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-import java.util.concurrent.atomic.AtomicLong;
-
 /**
  * Misc utilities in JSR166 performance tests
  */
--- a/jdk/test/java/util/concurrent/locks/Lock/Mutex.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/locks/Lock/Mutex.java	Wed Sep 14 11:22:39 2016 -0700
@@ -35,7 +35,6 @@
 import java.util.concurrent.locks.AbstractQueuedSynchronizer;
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.Lock;
-import java.util.concurrent.atomic.AtomicInteger;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 
--- a/jdk/test/java/util/concurrent/locks/LockSupport/ParkLoops.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/locks/LockSupport/ParkLoops.java	Wed Sep 14 11:22:39 2016 -0700
@@ -43,7 +43,6 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.atomic.AtomicReferenceArray;
 import java.util.concurrent.locks.LockSupport;
 
--- a/jdk/test/java/util/concurrent/locks/ReentrantLock/LoopHelpers.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/locks/ReentrantLock/LoopHelpers.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,8 +31,6 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-import java.util.concurrent.atomic.AtomicLong;
-
 /**
  * Misc utilities in JSR166 performance tests
  */
--- a/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/LoopHelpers.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/LoopHelpers.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,8 +31,6 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-import java.util.concurrent.atomic.AtomicLong;
-
 /**
  * Misc utilities in JSR166 performance tests
  */
--- a/jdk/test/java/util/concurrent/locks/StampedLock/ReadersUnlockAfterWriteUnlock.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/locks/StampedLock/ReadersUnlockAfterWriteUnlock.java	Wed Sep 14 11:22:39 2016 -0700
@@ -22,7 +22,6 @@
 
 /*
  * @test
- * @run main/othervm/timeout=60 ReadersUnlockAfterWriteUnlock
  * @bug 8023234
  * @summary StampedLock serializes readers on writer unlock
  * @author Dmitry Chyuko
@@ -30,26 +29,23 @@
  */
 
 import java.util.concurrent.CyclicBarrier;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.concurrent.locks.StampedLock;
 
 public class ReadersUnlockAfterWriteUnlock {
-    static final int RNUM = 2;
-    static final StampedLock sl = new StampedLock();
-    static volatile boolean isDone;
-
-    static CyclicBarrier iterationStart = new CyclicBarrier(RNUM + 1);
-    static CyclicBarrier readersHaveLocks = new CyclicBarrier(RNUM);
-    static CyclicBarrier writerHasLock = new CyclicBarrier(RNUM + 1);
+    public static void main(String[] args) throws InterruptedException {
+        final int RNUM = 2;
+        final int REPS = 128;
+        final StampedLock sl = new StampedLock();
+        final AtomicReference<Throwable> bad = new AtomicReference<>();
 
-    static class Reader extends Thread {
-        final String name;
-        Reader(String name) {
-            super();
-            this.name = name;
-        }
-        public void run() {
-            while (!isDone && !isInterrupted()) {
-                try {
+        final CyclicBarrier iterationStart = new CyclicBarrier(RNUM + 1);
+        final CyclicBarrier readersHaveLocks = new CyclicBarrier(RNUM);
+        final CyclicBarrier writerHasLock = new CyclicBarrier(RNUM + 1);
+
+        Runnable reader = () -> {
+            try {
+                for (int i = 0; i < REPS; i++) {
                     iterationStart.await();
                     writerHasLock.await();
                     long rs = sl.readLock();
@@ -59,30 +55,45 @@
                     readersHaveLocks.await();
 
                     sl.unlockRead(rs);
-                } catch (Exception e) {
-                    throw new IllegalStateException(e);
                 }
+            } catch (Throwable ex) {
+                ex.printStackTrace();
+                bad.set(ex);
             }
-        }
-    }
+        };
 
-    public static void main(String[] args) throws InterruptedException {
-        for (int r = 0 ; r < RNUM; ++r) {
-            new Reader("r" + r).start();
+        Thread[] threads = new Thread[RNUM];
+        for (int i = 0 ; i < RNUM; i++) {
+            Thread thread = new Thread(reader, "Reader");
+            threads[i] = thread;
+            thread.start();
         }
-        int i;
-        for (i = 0; i < 1024; ++i) {
+        for (int i = 0; i < REPS; i++) {
             try {
                 iterationStart.await();
                 long ws = sl.writeLock();
                 writerHasLock.await();
-                Thread.sleep(10);
+                awaitWaitState(threads);
                 sl.unlockWrite(ws);
             } catch (Exception e) {
                 throw new IllegalStateException(e);
             }
         }
-        isDone = true;
+        for (Thread thread : threads)
+            thread.join();
+        if (bad.get() != null)
+            throw new AssertionError(bad.get());
     }
 
+    static void awaitWaitState(Thread[] threads) {
+        restart: for (;;) {
+            for (Thread thread : threads) {
+                if (thread.getState() != Thread.State.WAITING) {
+                    Thread.yield();
+                    continue restart;
+                }
+            }
+            break;
+        }
+    }
 }
--- a/jdk/test/java/util/concurrent/tck/AtomicIntegerArray9Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/AtomicIntegerArray9Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,7 +31,6 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-import java.util.Arrays;
 import java.util.concurrent.atomic.AtomicIntegerArray;
 
 import junit.framework.Test;
--- a/jdk/test/java/util/concurrent/tck/AtomicLongArray9Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/AtomicLongArray9Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,7 +31,6 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-import java.util.Arrays;
 import java.util.concurrent.atomic.AtomicLongArray;
 
 import junit.framework.Test;
--- a/jdk/test/java/util/concurrent/tck/AtomicReferenceArray9Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/AtomicReferenceArray9Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -31,7 +31,6 @@
  * http://creativecommons.org/publicdomain/zero/1.0/
  */
 
-import java.util.Arrays;
 import java.util.concurrent.atomic.AtomicReferenceArray;
 
 import junit.framework.Test;
--- a/jdk/test/java/util/concurrent/tck/CompletableFutureTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/CompletableFutureTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -59,7 +59,6 @@
 import java.util.concurrent.ForkJoinTask;
 import java.util.concurrent.RejectedExecutionException;
 import java.util.concurrent.TimeoutException;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.function.BiConsumer;
--- a/jdk/test/java/util/concurrent/tck/ConcurrentHashMap8Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/ConcurrentHashMap8Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -38,7 +38,6 @@
 import java.util.AbstractMap;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.Map;
 import java.util.NoSuchElementException;
--- a/jdk/test/java/util/concurrent/tck/CopyOnWriteArrayListTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/CopyOnWriteArrayListTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -36,7 +36,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
--- a/jdk/test/java/util/concurrent/tck/CopyOnWriteArraySetTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/CopyOnWriteArraySetTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -36,7 +36,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.NoSuchElementException;
 import java.util.Set;
--- a/jdk/test/java/util/concurrent/tck/CountedCompleterTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/CountedCompleterTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -40,9 +40,12 @@
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.ForkJoinTask;
+import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.BiConsumer;
+import java.util.function.Consumer;
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
@@ -1869,4 +1872,115 @@
         testInvokeOnPool(singletonPool(), a);
     }
 
+    /** CountedCompleter class javadoc code sample, version 1. */
+    public static <E> void forEach1(E[] array, Consumer<E> action) {
+        class Task extends CountedCompleter<Void> {
+            final int lo, hi;
+            Task(Task parent, int lo, int hi) {
+                super(parent); this.lo = lo; this.hi = hi;
+            }
+
+            public void compute() {
+                if (hi - lo >= 2) {
+                    int mid = (lo + hi) >>> 1;
+                    // must set pending count before fork
+                    setPendingCount(2);
+                    new Task(this, mid, hi).fork(); // right child
+                    new Task(this, lo, mid).fork(); // left child
+                }
+                else if (hi > lo)
+                    action.accept(array[lo]);
+                tryComplete();
+            }
+        }
+        new Task(null, 0, array.length).invoke();
+    }
+
+    /** CountedCompleter class javadoc code sample, version 2. */
+    public static <E> void forEach2(E[] array, Consumer<E> action) {
+        class Task extends CountedCompleter<Void> {
+            final int lo, hi;
+            Task(Task parent, int lo, int hi) {
+                super(parent); this.lo = lo; this.hi = hi;
+            }
+
+            public void compute() {
+                if (hi - lo >= 2) {
+                    int mid = (lo + hi) >>> 1;
+                    setPendingCount(1); // looks off by one, but correct!
+                    new Task(this, mid, hi).fork(); // right child
+                    new Task(this, lo, mid).compute(); // direct invoke
+                } else {
+                    if (hi > lo)
+                        action.accept(array[lo]);
+                    tryComplete();
+                }
+            }
+        }
+        new Task(null, 0, array.length).invoke();
+    }
+
+    /** CountedCompleter class javadoc code sample, version 3. */
+    public static <E> void forEach3(E[] array, Consumer<E> action) {
+        class Task extends CountedCompleter<Void> {
+            final int lo, hi;
+            Task(Task parent, int lo, int hi) {
+                super(parent); this.lo = lo; this.hi = hi;
+            }
+
+            public void compute() {
+                int n = hi - lo;
+                for (; n >= 2; n /= 2) {
+                    addToPendingCount(1);
+                    new Task(this, lo + n/2, lo + n).fork();
+                }
+                if (n > 0)
+                    action.accept(array[lo]);
+                propagateCompletion();
+            }
+        }
+        new Task(null, 0, array.length).invoke();
+    }
+
+    /** CountedCompleter class javadoc code sample, version 4. */
+    public static <E> void forEach4(E[] array, Consumer<E> action) {
+        class Task extends CountedCompleter<Void> {
+            final int lo, hi;
+            Task(Task parent, int lo, int hi) {
+                super(parent, 31 - Integer.numberOfLeadingZeros(hi - lo));
+                this.lo = lo; this.hi = hi;
+            }
+
+            public void compute() {
+                for (int n = hi - lo; n >= 2; n /= 2)
+                    new Task(this, lo + n/2, lo + n).fork();
+                action.accept(array[lo]);
+                propagateCompletion();
+            }
+        }
+        if (array.length > 0)
+            new Task(null, 0, array.length).invoke();
+    }
+
+    void testRecursiveDecomposition(
+        BiConsumer<Integer[], Consumer<Integer>> action) {
+        int n = ThreadLocalRandom.current().nextInt(8);
+        Integer[] a = new Integer[n];
+        for (int i = 0; i < n; i++) a[i] = i + 1;
+        AtomicInteger ai = new AtomicInteger(0);
+        action.accept(a, (x) -> ai.addAndGet(x));
+        assertEquals(n * (n + 1) / 2, ai.get());
+    }
+
+    /**
+     * Variants of divide-by-two recursive decomposition into leaf tasks,
+     * as described in the CountedCompleter class javadoc code samples
+     */
+    public void testRecursiveDecomposition() {
+        testRecursiveDecomposition(CountedCompleterTest::forEach1);
+        testRecursiveDecomposition(CountedCompleterTest::forEach2);
+        testRecursiveDecomposition(CountedCompleterTest::forEach3);
+        testRecursiveDecomposition(CountedCompleterTest::forEach4);
+    }
+
 }
--- a/jdk/test/java/util/concurrent/tck/ExecutorCompletionService9Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/ExecutorCompletionService9Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -42,7 +42,6 @@
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorCompletionService;
-import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 
 import junit.framework.Test;
--- a/jdk/test/java/util/concurrent/tck/ExecutorCompletionServiceTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/ExecutorCompletionServiceTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -40,7 +40,6 @@
 import java.util.concurrent.CompletionService;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorCompletionService;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
--- a/jdk/test/java/util/concurrent/tck/ForkJoinPool8Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/ForkJoinPool8Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -296,12 +296,11 @@
         RecursiveAction a = new CheckedRecursiveAction() {
             protected void realCompute() {
                 FibAction f = new FibAction(8);
-                final Thread myself = Thread.currentThread();
+                final Thread currentThread = Thread.currentThread();
 
                 // test join()
                 assertSame(f, f.fork());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 assertNull(f.join());
                 Thread.interrupted();
                 assertEquals(21, f.result);
@@ -310,8 +309,7 @@
                 f = new FibAction(8);
                 f.cancel(true);
                 assertSame(f, f.fork());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 try {
                     f.join();
                     shouldThrow();
@@ -323,8 +321,7 @@
                 f = new FibAction(8);
                 f.completeExceptionally(new FJException());
                 assertSame(f, f.fork());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 try {
                     f.join();
                     shouldThrow();
@@ -336,8 +333,7 @@
                 // test quietlyJoin()
                 f = new FibAction(8);
                 assertSame(f, f.fork());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 f.quietlyJoin();
                 Thread.interrupted();
                 assertEquals(21, f.result);
@@ -346,8 +342,7 @@
                 f = new FibAction(8);
                 f.cancel(true);
                 assertSame(f, f.fork());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 f.quietlyJoin();
                 Thread.interrupted();
                 checkCancelled(f);
@@ -355,8 +350,7 @@
                 f = new FibAction(8);
                 f.completeExceptionally(new FJException());
                 assertSame(f, f.fork());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 f.quietlyJoin();
                 Thread.interrupted();
                 checkCompletedAbnormally(f, f.getException());
--- a/jdk/test/java/util/concurrent/tck/ForkJoinTask8Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/ForkJoinTask8Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -35,7 +35,6 @@
 import static java.util.concurrent.TimeUnit.SECONDS;
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ForkJoinPool;
--- a/jdk/test/java/util/concurrent/tck/ForkJoinTaskTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/ForkJoinTaskTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -35,9 +35,7 @@
 import static java.util.concurrent.TimeUnit.SECONDS;
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.HashSet;
-import java.util.List;
 import java.util.concurrent.CancellationException;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ForkJoinPool;
--- a/jdk/test/java/util/concurrent/tck/JSR166TestCase.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/JSR166TestCase.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1264,7 +1264,7 @@
      * Sleeps until the given time has elapsed.
      * Throws AssertionFailedError if interrupted.
      */
-    void sleep(long millis) {
+    static void sleep(long millis) {
         try {
             delay(millis);
         } catch (InterruptedException fail) {
--- a/jdk/test/java/util/concurrent/tck/RecursiveActionTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/RecursiveActionTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -285,12 +285,11 @@
         RecursiveAction a = new CheckedRecursiveAction() {
             protected void realCompute() {
                 FibAction f = new FibAction(8);
-                final Thread myself = Thread.currentThread();
+                final Thread currentThread = Thread.currentThread();
 
                 // test join()
                 assertSame(f, f.fork());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 assertNull(f.join());
                 Thread.interrupted();
                 assertEquals(21, f.result);
@@ -299,8 +298,7 @@
                 f = new FibAction(8);
                 f.cancel(true);
                 assertSame(f, f.fork());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 try {
                     f.join();
                     shouldThrow();
@@ -312,8 +310,7 @@
                 f = new FibAction(8);
                 f.completeExceptionally(new FJException());
                 assertSame(f, f.fork());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 try {
                     f.join();
                     shouldThrow();
@@ -325,8 +322,7 @@
                 // test quietlyJoin()
                 f = new FibAction(8);
                 assertSame(f, f.fork());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 f.quietlyJoin();
                 Thread.interrupted();
                 assertEquals(21, f.result);
@@ -335,8 +331,7 @@
                 f = new FibAction(8);
                 f.cancel(true);
                 assertSame(f, f.fork());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 f.quietlyJoin();
                 Thread.interrupted();
                 checkCancelled(f);
@@ -344,8 +339,7 @@
                 f = new FibAction(8);
                 f.completeExceptionally(new FJException());
                 assertSame(f, f.fork());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 f.quietlyJoin();
                 Thread.interrupted();
                 checkCompletedAbnormally(f, f.getException());
@@ -385,22 +379,20 @@
             public void realRun() throws InterruptedException {
                 FibAction[] fibActions = sq.take();
                 FibAction f;
-                final Thread myself = Thread.currentThread();
+                final Thread currentThread = Thread.currentThread();
 
                 // test join() ------------
 
                 f = fibActions[0];
                 assertFalse(ForkJoinTask.inForkJoinPool());
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 assertNull(f.join());
                 assertTrue(Thread.interrupted());
                 assertEquals(21, f.result);
                 checkCompletedNormally(f);
 
                 f = fibActions[1];
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 try {
                     f.join();
                     shouldThrow();
@@ -410,8 +402,7 @@
                 }
 
                 f = fibActions[2];
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 try {
                     f.join();
                     shouldThrow();
@@ -423,23 +414,20 @@
                 // test quietlyJoin() ---------
 
                 f = fibActions[3];
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 f.quietlyJoin();
                 assertTrue(Thread.interrupted());
                 assertEquals(21, f.result);
                 checkCompletedNormally(f);
 
                 f = fibActions[4];
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 f.quietlyJoin();
                 assertTrue(Thread.interrupted());
                 checkCancelled(f);
 
                 f = fibActions[5];
-                myself.interrupt();
-                assertTrue(myself.isInterrupted());
+                currentThread.interrupt();
                 f.quietlyJoin();
                 assertTrue(Thread.interrupted());
                 assertTrue(f.getException() instanceof FJException);
--- a/jdk/test/java/util/concurrent/tck/ScheduledExecutorSubclassTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/ScheduledExecutorSubclassTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -44,7 +44,6 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Delayed;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executors;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import java.util.concurrent.RejectedExecutionException;
--- a/jdk/test/java/util/concurrent/tck/ScheduledExecutorTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/ScheduledExecutorTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -45,7 +45,6 @@
 import java.util.concurrent.CancellationException;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executors;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import java.util.concurrent.RejectedExecutionException;
--- a/jdk/test/java/util/concurrent/tck/StampedLockTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/StampedLockTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -44,7 +44,6 @@
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.StampedLock;
 import java.util.function.BiConsumer;
-import java.util.function.Consumer;
 import java.util.function.Function;
 
 import junit.framework.Test;
--- a/jdk/test/java/util/concurrent/tck/SubmissionPublisherTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/SubmissionPublisherTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -37,24 +37,14 @@
 import java.util.concurrent.Executors;
 import java.util.concurrent.Flow;
 import java.util.concurrent.ForkJoinPool;
-import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.SubmissionPublisher;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
-import java.util.function.BiConsumer;
-import java.util.function.BiFunction;
-import java.util.function.BiPredicate;
-import java.util.stream.Stream;
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import static java.util.concurrent.Flow.Publisher;
 import static java.util.concurrent.Flow.Subscriber;
 import static java.util.concurrent.Flow.Subscription;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
-import static java.util.concurrent.TimeUnit.SECONDS;
 
 public class SubmissionPublisherTest extends JSR166TestCase {
 
--- a/jdk/test/java/util/concurrent/tck/ThreadPoolExecutorSubclassTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/ThreadPoolExecutorSubclassTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -44,7 +44,6 @@
 import java.util.concurrent.CancellationException;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executors;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import java.util.concurrent.FutureTask;
--- a/jdk/test/java/util/concurrent/tck/ThreadPoolExecutorTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/concurrent/tck/ThreadPoolExecutorTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -55,7 +55,6 @@
 import java.util.concurrent.SynchronousQueue;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import junit.framework.Test;
--- a/jdk/test/java/util/jar/JarFile/mrjar/MultiReleaseJarAPI.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/jar/JarFile/mrjar/MultiReleaseJarAPI.java	Wed Sep 14 11:22:39 2016 -0700
@@ -23,23 +23,29 @@
 
 /*
  * @test
- * @bug 8132734 8144062
+ * @bug 8132734 8144062 8165723
  * @summary Test the extended API and the aliasing additions in JarFile that
  *          support multi-release jar files
- * @library /lib/testlibrary/java/util/jar
+ * @library /lib/testlibrary/java/util/jar /lib/testlibrary/
  * @build Compiler JarBuilder CreateMultiReleaseTestJars
+ * @build jdk.testlibrary.RandomFactory
  * @run testng MultiReleaseJarAPI
  */
 
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.util.Arrays;
+import java.util.Map;
+import java.util.Random;
 import java.util.jar.JarFile;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
+import jdk.testlibrary.RandomFactory;
+
 import org.testng.Assert;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
@@ -48,12 +54,15 @@
 
 public class MultiReleaseJarAPI {
 
+    private static final Random RANDOM = RandomFactory.getRandom();
+
     String userdir = System.getProperty("user.dir",".");
     CreateMultiReleaseTestJars creator =  new CreateMultiReleaseTestJars();
     File unversioned = new File(userdir, "unversioned.jar");
     File multirelease = new File(userdir, "multi-release.jar");
     File signedmultirelease = new File(userdir, "signed-multi-release.jar");
 
+
     @BeforeClass
     public void initialize() throws Exception {
         creator.compileEntries();
@@ -99,10 +108,35 @@
         testCustomMultiReleaseValue("true\r ", false);
         testCustomMultiReleaseValue("true\n true", false);
         testCustomMultiReleaseValue("true\r\n true", false);
+
+        // generate "random" Strings to use as extra attributes, and
+        // verify that Multi-Release: true is always properly matched
+        for (int i = 0; i < 100; i++) {
+            byte[] keyBytes = new byte[RANDOM.nextInt(70) + 1];
+            Arrays.fill(keyBytes, (byte)('a' + RANDOM.nextInt(24)));
+            byte[] valueBytes = new byte[RANDOM.nextInt(70) + 1];
+            Arrays.fill(valueBytes, (byte)('a' + RANDOM.nextInt(24)));
+
+            String key = new String(keyBytes, StandardCharsets.UTF_8);
+            String value = new String(valueBytes, StandardCharsets.UTF_8);
+            // test that Multi-Release: true anywhere in the manifest always
+            // return true
+            testCustomMultiReleaseValue("true", Map.of(key, value), true);
+
+            // test that we don't get any false positives
+            testCustomMultiReleaseValue("false", Map.of(key, value), false);
+        }
     }
 
-    private void testCustomMultiReleaseValue(String value, boolean expected) throws Exception {
-        creator.buildCustomMultiReleaseJar("custom-mr.jar", value);
+    private void testCustomMultiReleaseValue(String value, boolean expected)
+            throws Exception {
+        testCustomMultiReleaseValue(value, Map.of(), expected);
+    }
+
+    private void testCustomMultiReleaseValue(String value,
+            Map<String, String> extraAttributes, boolean expected)
+            throws Exception {
+        creator.buildCustomMultiReleaseJar("custom-mr.jar", value, extraAttributes);
         File custom = new File(userdir, "custom-mr.jar");
         try (JarFile jf = new JarFile(custom, true, ZipFile.OPEN_READ, Runtime.version())) {
             Assert.assertEquals(jf.isMultiRelease(), expected);
--- a/jdk/test/java/util/logging/Level/CustomLevel.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/java/util/logging/Level/CustomLevel.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, 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
@@ -22,12 +22,20 @@
  */
 
 import java.io.*;
+import java.lang.ref.Reference;
+import java.lang.ref.ReferenceQueue;
+import java.lang.ref.WeakReference;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
 import java.util.*;
 import java.util.logging.*;
 
 /*
  * @test
- * @bug 8026027
+ * @bug 8026027 6543126
  * @summary Test Level.parse to look up custom levels by name and its
  *          localized name
  *
@@ -41,23 +49,168 @@
 
     private static final List<Level> levels = new ArrayList<>();
     private static final String RB_NAME = "myresource";
+    private static final String OTHERRB_NAME = "myresource2";
+
+    private static class CustomLevelReference extends WeakReference<Level> {
+        final String name;
+        final int value;
+        final String resourceBundleName;
+        public CustomLevelReference(Level level, ReferenceQueue<Level> queue) {
+            super(level, queue);
+            name = level.getName();
+            value = level.intValue();
+            resourceBundleName = level.getResourceBundleName();
+        }
+
+        @Override
+        public String toString() {
+            return "CustomLevelReference(\"" + name + "\", " + value + ", \""
+                    + resourceBundleName + "\")";
+        }
+
+    }
+
     public static void main(String[] args) throws Exception {
         setupCustomLevels();
+        setUpCustomLevelsOtherLoader();
 
         // Level.parse will return the custom Level instance
-        ResourceBundle rb = ResourceBundle.getBundle(RB_NAME);
         for (Level level : levels) {
+            final ResourceBundle rb = getResourceBundle(level);
             String name = level.getName();
-            if (!name.equals("WARNING") && !name.equals("INFO")) {
+            Level l = Level.parse(name);
+            if (!name.equals("WARNING") && !name.equals("INFO")
+                 && !name.equals("SEVERE")) {
                 // custom level whose name doesn't conflict with any standard one
-                checkCustomLevel(Level.parse(name), level);
+                checkCustomLevel(l, level);
+            } else if (l != Level.WARNING && l != Level.INFO && l != Level.SEVERE
+                    || !name.equals(l.getName())) {
+                throw new RuntimeException("Unexpected level " + formatLevel(l));
             }
+            System.out.println("Level.parse found expected level: "
+                            + formatLevel(l));
             String localizedName = rb.getString(level.getName());
-            Level l = Level.parse(localizedName);
+            l = Level.parse(localizedName);
             if (l != level) {
-                throw new RuntimeException("Unexpected level " + l + " " + l.getClass());
+                throw new RuntimeException("Unexpected level " + l + " "
+                    + l.getClass() + " for " + localizedName
+                    + " in " + rb.getBaseBundleName());
+            }
+        }
+
+        final long otherLevelCount = levels.stream()
+            .filter(CustomLevel::isCustomLoader)
+            .count();
+
+        // Now verify that custom level instances are correctly
+        // garbage collected when no longer referenced
+        ReferenceQueue<Level> queue = new ReferenceQueue<>();
+        List<CustomLevelReference> refs = new ArrayList<>();
+        List<CustomLevelReference> customRefs = new ArrayList<>();
+        int otherLevels = 0;
+        while (!levels.isEmpty()) {
+            Level l = levels.stream().findAny().get();
+            boolean isCustomLoader = isCustomLoader(l);
+            if (isCustomLoader) otherLevels++;
+
+            CustomLevelReference ref = new CustomLevelReference(l, queue);
+            if (isCustomLoader) {
+                customRefs.add(ref);
+            } else {
+                refs.add(ref);
+            }
+
+            // remove strong references to l
+            levels.remove(l);
+            l = null;
+
+            // Run gc and wait for garbage collection
+            if (otherLevels == otherLevelCount) {
+                if (customRefs.size() != otherLevelCount) {
+                    throw new RuntimeException("Test bug: customRefs.size() != "
+                             + otherLevelCount);
+                }
+                waitForGC(customRefs, queue);
             }
         }
+        if (otherLevelCount != otherLevels || otherLevelCount == 0) {
+            throw new RuntimeException("Test bug: "
+                + "no or wrong count of levels loaded from custom loader");
+        }
+        if (!customRefs.isEmpty()) {
+            throw new RuntimeException(
+                "Test bug: customRefs.size() should be empty!");
+        }
+        while (!refs.isEmpty()) {
+            final Reference<?> ref = refs.remove(0);
+            if (ref.get() == null) {
+                throw new RuntimeException("Unexpected garbage collection for "
+                           + ref);
+            }
+        }
+    }
+
+    private static void waitForGC(List<CustomLevelReference> customRefs,
+                                  ReferenceQueue<Level> queue)
+         throws InterruptedException
+    {
+        while (!customRefs.isEmpty()) {
+            Reference<? extends Level> ref2;
+            do {
+                System.gc();
+                Thread.sleep(100);
+            } while ((ref2 = queue.poll()) == null);
+
+            // Check garbage collected reference
+            if (!customRefs.contains(ref2)) {
+               throw new RuntimeException("Unexpected reference: " + ref2);
+            }
+            CustomLevelReference ref = customRefs.remove(customRefs.indexOf(ref2));
+            System.out.println(ref2 + " garbage collected");
+            final String name = ref.name;
+            Level l;
+            try {
+                l = Level.parse(name);
+                if (!name.equals("SEVERE")
+                    && !name.equals("INFO")
+                    || !name.equals(l.getName())) {
+                    throw new RuntimeException("Unexpected level "
+                            + formatLevel(l));
+                } else {
+                    if (l == Level.WARNING || l == Level.INFO
+                            || l == Level.SEVERE) {
+                        System.out.println("Level.parse found expected level: "
+                                + formatLevel(l));
+                    } else {
+                        throw new RuntimeException("Unexpected level "
+                            + formatLevel(l));
+                    }
+                }
+            } catch (IllegalArgumentException iae) {
+                if (!name.equals("WARNING")
+                    && !name.equals("INFO")
+                    && !name.equals("SEVERE")) {
+                    System.out.println("Level.parse fired expected exception: "
+                        + iae);
+                } else {
+                    throw iae;
+                }
+            }
+        }
+    }
+
+    private static boolean isCustomLoader(Level level) {
+        final ClassLoader cl = level.getClass().getClassLoader();
+        return cl != null
+             && cl != ClassLoader.getPlatformClassLoader()
+             && cl != ClassLoader.getSystemClassLoader();
+    }
+
+    static ResourceBundle getResourceBundle(Level level) {
+        return isCustomLoader(level)
+            ? ResourceBundle.getBundle(OTHERRB_NAME, Locale.getDefault(),
+                                       level.getClass().getClassLoader())
+            : ResourceBundle.getBundle(RB_NAME);
     }
 
     private static void setupCustomLevels() throws IOException {
@@ -67,22 +220,53 @@
         levels.add(new CustomLevel("WARNING", 1010, RB_NAME));
         levels.add(new CustomLevel("INFO", 1000, RB_NAME));
     }
+
+    static void setUpCustomLevelsOtherLoader()
+         throws MalformedURLException,
+               ClassNotFoundException, NoSuchMethodException,
+               IllegalAccessException, InvocationTargetException
+    {
+        final String classes = System.getProperty("test.classes",
+                                                  "build/classes");
+        final String sources = System.getProperty("test.src",
+                                                  "src");
+        final URL curl = new File(classes).toURI().toURL();
+        final URL surl = new File(sources).toURI().toURL();
+        URLClassLoader loader = new URLClassLoader(new URL[] {curl, surl},
+                                     ClassLoader.getPlatformClassLoader());
+        Class<?> customLevelClass = Class.forName("CustomLevel", false, loader);
+        Method m = customLevelClass.getMethod("setUpCustomLevelsOtherLoader",
+                                              List.class);
+        m.invoke(null, levels);
+    }
+
+    public static void setUpCustomLevelsOtherLoader(List<Level> levels) {
+        levels.add(new CustomLevel("OTHEREMERGENCY", 1091, OTHERRB_NAME));
+        levels.add(new CustomLevel("OTHERALERT", 1061, OTHERRB_NAME));
+        levels.add(new CustomLevel("OTHERCRITICAL", 1031, OTHERRB_NAME));
+        levels.add(new CustomLevel("SEVERE", 1011, OTHERRB_NAME));
+        levels.add(new CustomLevel("INFO", 1000, OTHERRB_NAME));
+    }
+
     static void checkCustomLevel(Level level, Level expected) {
         // Level value must be the same
         if (!level.equals(expected)) {
-            throw new RuntimeException(formatLevel(level) + " != " + formatLevel(expected));
+            throw new RuntimeException(formatLevel(level) + " != "
+                 + formatLevel(expected));
         }
 
         if (!level.getName().equals(expected.getName())) {
-            throw new RuntimeException(formatLevel(level) + " != " + formatLevel(expected));
+            throw new RuntimeException(formatLevel(level) + " != "
+                 + formatLevel(expected));
         }
 
         // Level.parse is expected to return the custom Level
         if (level != expected) {
-            throw new RuntimeException(formatLevel(level) + " != " + formatLevel(expected));
+            throw new RuntimeException(formatLevel(level) + " != "
+                 + formatLevel(expected));
         }
 
-        ResourceBundle rb = ResourceBundle.getBundle(RB_NAME);
+        final ResourceBundle rb = getResourceBundle(level);
         String name = rb.getString(level.getName());
         if (!level.getLocalizedName().equals(name)) {
             // must have the same localized name
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/logging/Level/myresource2.properties	Wed Sep 14 11:22:39 2016 -0700
@@ -0,0 +1,5 @@
+OTHEREMERGENCY=localized.otheremergency
+OTHERALERT=localized.otheralert
+OTHERCRITICAL=localized.othercritical
+SEVERE=localized.severe
+INFO=localized.info.2
--- a/jdk/test/javax/script/ExceptionTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/javax/script/ExceptionTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2016, 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
@@ -26,10 +26,14 @@
  * @bug 6474943 6705893
  * @summary Test that script engine exception messages are
  * available from ScriptException.
+ * @modules jdk.scripting.nashorn
  */
 
-import java.io.*;
-import javax.script.*;
+import javax.script.Compilable;
+import javax.script.CompiledScript;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
+import javax.script.ScriptException;
 
 public class ExceptionTest {
     private static final String ERROR_MSG = "error from JavaScript";
--- a/jdk/test/javax/script/JavaScriptScopeTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/javax/script/JavaScriptScopeTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, 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
@@ -28,9 +28,13 @@
  * get affected by default scope assignments. Also, verify
  * that script globals can be created and accessed from Java
  * as well as JavaScript.
+ * @modules jdk.scripting.nashorn
  */
 
-import javax.script.*;
+import javax.script.Bindings;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
+
 
 public class JavaScriptScopeTest {
 
--- a/jdk/test/javax/script/NullUndefinedVarTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/javax/script/NullUndefinedVarTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, 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
@@ -26,9 +26,11 @@
  * @bug 6346732 6705893
  * @summary should be able to assign null and undefined
  * value to JavaScript global variables.
+ * @modules jdk.scripting.nashorn
  */
 
-import javax.script.*;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
 
 public class NullUndefinedVarTest {
 
--- a/jdk/test/javax/script/PluggableContextTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/javax/script/PluggableContextTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2016, 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
@@ -26,9 +26,12 @@
  * @bug 6398614 6705893
  * @summary Create a user defined ScriptContext and check
  * that script can access variables from non-standard scopes
+ * @modules jdk.scripting.nashorn
  */
 
-import javax.script.*;
+import javax.script.ScriptContext;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
 
 public class PluggableContextTest {
     public static void main(String[] args) throws Exception {
--- a/jdk/test/javax/script/Test1.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/javax/script/Test1.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, 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
@@ -26,10 +26,13 @@
  * @bug 6249843 6705893
  * @summary Create JavaScript engine and execute a simple script.
  * Tests script engine discovery mechanism.
+ * @modules jdk.scripting.nashorn
  */
 
-import javax.script.*;
-import java.io.*;
+import java.io.File;
+import java.io.FileReader;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
 
 public class Test1  {
         public static void main(String[] args) throws Exception {
--- a/jdk/test/javax/script/Test2.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/javax/script/Test2.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, 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,10 +25,13 @@
  * @test
  * @bug 6249843
  * @summary Test exposing a Java object to script
+ * @modules jdk.scripting.nashorn
  */
 
-import javax.script.*;
-import java.io.*;
+import java.io.File;
+import java.io.FileReader;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
 
 public class Test2 {
         public static class Testobj {
--- a/jdk/test/javax/script/Test3.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/javax/script/Test3.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, 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,11 +25,17 @@
  * @test
  * @bug 6249843 6705893
  * @summary Test engine and global scopes
+ * @modules jdk.scripting.nashorn
  */
 
-import javax.script.*;
-import java.io.*;
-import java.util.*;
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import javax.script.Bindings;
+import javax.script.ScriptContext;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
+import javax.script.SimpleBindings;
 
 public class Test3 {
         public static void main(String[] args) throws Exception {
--- a/jdk/test/javax/script/Test4.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/javax/script/Test4.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, 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,10 +25,14 @@
  * @test
  * @bug 6249843 6705893
  * @summary Test script functions implementing Java interface
+ * @modules jdk.scripting.nashorn
  */
 
-import javax.script.*;
-import java.io.*;
+import java.io.File;
+import java.io.FileReader;
+import javax.script.Invocable;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
 
 public class Test4 {
         public static void main(String[] args) throws Exception {
--- a/jdk/test/javax/script/Test5.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/javax/script/Test5.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, 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,10 +25,18 @@
  * @test
  * @bug 6249843 6705893
  * @summary Tests engine, global scopes and scope hiding.
+ * @modules jdk.scripting.nashorn
  */
 
-import java.io.*;
-import javax.script.*;
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import javax.script.Bindings;
+import javax.script.ScriptContext;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
+import javax.script.SimpleBindings;
+import javax.script.SimpleScriptContext;
 
 public class Test5 {
         public static void main(String[] args) throws Exception {
--- a/jdk/test/javax/script/Test6.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/javax/script/Test6.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, 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
@@ -26,10 +26,16 @@
  * @bug 6249843 6705893
  * @summary Test basic script compilation. Value eval'ed from
  * compiled and interpreted scripts should be same.
+ * @modules jdk.scripting.nashorn
  */
 
-import java.io.*;
-import javax.script.*;
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import javax.script.Compilable;
+import javax.script.CompiledScript;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
 
 public class Test6 {
         public static void main(String[] args) throws Exception {
--- a/jdk/test/javax/script/Test7.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/javax/script/Test7.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, 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,10 +25,14 @@
  * @test
  * @bug 6249843 6705893
  * @summary Tests importPackage and java access in script
+ * @modules jdk.scripting.nashorn
  */
 
-import java.io.*;
-import javax.script.*;
+import java.io.File;
+import java.io.FileReader;
+import java.io.Reader;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
 
 public class Test7 {
         public static void main(String[] args) throws Exception {
--- a/jdk/test/javax/script/Test8.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/javax/script/Test8.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2016, 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,10 +25,14 @@
  * @test
  * @bug 6249843 6705893
  * @summary Test invoking script function or method from Java
+ * @modules jdk.scripting.nashorn
  */
 
-import javax.script.*;
-import java.io.*;
+import java.io.File;
+import java.io.FileReader;
+import javax.script.Invocable;
+import javax.script.ScriptEngine;
+import javax.script.ScriptEngineManager;
 
 public class Test8 {
         public static void main(String[] args) throws Exception {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/jdk/internal/util/jar/TestVersionedStream.java	Wed Sep 14 11:22:39 2016 -0700
@@ -0,0 +1,214 @@
+/*
+ * Copyright (c) 2016, 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 8163798
+ * @summary basic tests for multi-release jar versioned streams
+ * @modules jdk.jartool/sun.tools.jar java.base/jdk.internal.util.jar
+ * @run testng TestVersionedStream
+ */
+
+import org.testng.Assert;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UncheckedIOException;
+import java.net.URI;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import java.util.zip.ZipFile;
+
+public class TestVersionedStream {
+    private String userdir;
+
+    @BeforeClass
+    public void initialize() {
+        userdir = System.getProperty("user.dir", ".");
+
+        // These are not real class files even though they end with .class.
+        // They are resource files so jar tool validation won't reject them.
+        // But they are what we want to test, especially q/Bar.class that
+        // could be in a concealed package if this was a modular multi-release
+        // jar.
+        createFiles(
+                "base/p/Foo.class",
+                "base/p/Main.class",
+                "v9/p/Foo.class",
+                "v10/p/Foo.class",
+                "v10/q/Bar.class",
+                "v11/p/Foo.class"
+        );
+
+        jar("cf mmr.jar -C base . --release 9 -C v9 . --release 10 -C v10 . --release 11 -C v11 .");
+
+        System.out.println("Contents of mmr.jar\n=======");
+        jar("tf mmr.jar");
+        System.out.println("=======");
+    }
+
+    @AfterClass
+    public void close() throws IOException {
+        Path root = Paths.get(userdir);
+        Files.walkFileTree(root, new SimpleFileVisitor<>() {
+            @Override
+            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
+                Files.delete(file);
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
+                if (!dir.equals(root)) {
+                    Files.delete(dir);
+                }
+                return FileVisitResult.CONTINUE;
+            }
+        });
+    }
+
+    @DataProvider
+    public Object[][] data() {
+        List<String> p = List.of(
+                "META-INF/",
+                "META-INF/MANIFEST.MF",
+                "p/",
+                "p/Foo.class",
+                "p/Main.class"
+        );
+        List<String> q = List.of(
+                "META-INF/",
+                "META-INF/MANIFEST.MF",
+                "p/",
+                "p/Foo.class",
+                "p/Main.class",
+                "q/",
+                "q/Bar.class"
+        );
+        Runtime.Version rt = JarFile.runtimeVersion();
+        return new Object[][] {
+                {Runtime.Version.parse("8"), p},
+                {Runtime.Version.parse("9"), p},
+                {Runtime.Version.parse("10"), q},
+                {Runtime.Version.parse("11"), q},
+                {JarFile.baseVersion(), p},
+                {rt, rt.major() > 9 ? q : p}
+        };
+    }
+
+    @Test(dataProvider="data")
+    public void test(Runtime.Version version, List<String> names) throws Exception {
+        try (JarFile jf = new JarFile(new File("mmr.jar"), false, ZipFile.OPEN_READ, version);
+            Stream<JarEntry> jes = jdk.internal.util.jar.VersionedStream.stream(jf))
+        {
+            Assert.assertNotNull(jes);
+
+            List<JarEntry> entries = jes.collect(Collectors.toList());
+
+            // verify the correct order
+            List<String> enames = entries.stream()
+                    .map(je -> je.getName())
+                    .collect(Collectors.toList());
+            Assert.assertEquals(enames, names);
+
+            // verify the contents
+            Map<String,String> contents = new HashMap<>();
+            contents.put("p/Main.class", "base/p/Main.class\n");
+            if (version.major() > 9) {
+                contents.put("q/Bar.class", "v10/q/Bar.class\n");
+            }
+            switch (version.major()) {
+                case 8:
+                    contents.put("p/Foo.class", "base/p/Foo.class\n");
+                    break;
+                case 9:
+                    contents.put("p/Foo.class", "v9/p/Foo.class\n");
+                    break;
+                case 10:
+                    contents.put("p/Foo.class", "v10/p/Foo.class\n");
+                    break;
+                case 11:
+                    contents.put("p/Foo.class", "v11/p/Foo.class\n");
+                    break;
+                default:
+                    Assert.fail("Test out of date, please add more cases");
+            }
+
+            contents.entrySet().stream().forEach(e -> {
+                String name = e.getKey();
+                int i = enames.indexOf(name);
+                Assert.assertTrue(i != -1, name + " not in enames");
+                JarEntry je = entries.get(i);
+                try (InputStream is = jf.getInputStream(je)) {
+                    String s = new String(is.readAllBytes());
+                    Assert.assertTrue(s.endsWith(e.getValue()), s);
+                } catch (IOException x) {
+                    throw new UncheckedIOException(x);
+                }
+            });
+        }
+    }
+
+    private void createFiles(String... files) {
+        ArrayList<String> list = new ArrayList();
+        Arrays.stream(files)
+                .map(f -> "file:///" + userdir + "/" + f)
+                .map(f -> URI.create(f))
+                .filter(u -> u != null)
+                .map(u -> Paths.get(u))
+                .forEach(p -> {
+                    try {
+                        Files.createDirectories(p.getParent());
+                        Files.createFile(p);
+                        list.clear();
+                        list.add(p.toString());
+                        Files.write(p, list);
+                    } catch (IOException x) {
+                        throw new UncheckedIOException(x);
+                    }});
+    }
+
+    private void jar(String args) {
+        new sun.tools.jar.Main(System.out, System.err, "jar")
+                .run(args.split(" +"));
+    }
+
+}
--- a/jdk/test/lib/testlibrary/java/util/jar/CreateMultiReleaseTestJars.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/lib/testlibrary/java/util/jar/CreateMultiReleaseTestJars.java	Wed Sep 14 11:22:39 2016 -0700
@@ -88,12 +88,35 @@
     }
 
     public void buildMultiReleaseJar() throws IOException {
-        buildCustomMultiReleaseJar("multi-release.jar", "true");
+        JarBuilder jb = customMultiReleaseJar("multi-release.jar", "true");
+        addEntries(jb);
+        jb.addEntry("META-INF/versions/9/version/Version.class", version9Classes.get("version.Version"));
+        jb.build();
+    }
+
+    public void buildShortMultiReleaseJar() throws IOException {
+        JarBuilder jb = customMultiReleaseJar("short-multi-release.jar", "true");
+        addEntries(jb);
+        jb.build();
     }
 
-    public void buildCustomMultiReleaseJar(String filename, String multiReleaseValue) throws IOException {
+    private JarBuilder customMultiReleaseJar(String filename, String multiReleaseValue)
+            throws IOException {
         JarBuilder jb = new JarBuilder(filename);
         jb.addAttribute("Multi-Release", multiReleaseValue);
+        return jb;
+    }
+
+    public void buildCustomMultiReleaseJar(String filename, String multiReleaseValue,
+            Map<String, String> extraAttributes) throws IOException {
+        JarBuilder jb = new JarBuilder(filename);
+        extraAttributes.entrySet()
+                .forEach(entry -> jb.addAttribute(entry.getKey(), entry.getValue()));
+        jb.addAttribute("Multi-Release", multiReleaseValue);
+        jb.build();
+    }
+
+    private void addEntries(JarBuilder jb) {
         jb.addEntry("README", readme8.getBytes());
         jb.addEntry("version/Main.java", main.getBytes());
         jb.addEntry("version/Main.class", rootClasses.get("version.Main"));
@@ -102,31 +125,10 @@
         jb.addEntry("META-INF/versions/9/README", readme9.getBytes());
         jb.addEntry("META-INF/versions/9/version/Version.java", java9.getBytes());
         jb.addEntry("META-INF/versions/9/version/PackagePrivate.java", ppjava9.getBytes());
-        jb.addEntry("META-INF/versions/9/version/Version.class", version9Classes.get("version.Version"));
         jb.addEntry("META-INF/versions/9/version/PackagePrivate.class", version9Classes.get("version.PackagePrivate"));
         jb.addEntry("META-INF/versions/10/README", readme10.getBytes());
         jb.addEntry("META-INF/versions/10/version/Version.java", java10.getBytes());
         jb.addEntry("META-INF/versions/10/version/Version.class", version10Classes.get("version.Version"));
-        jb.build();
-    }
-
-    public void buildShortMultiReleaseJar() throws IOException {
-        JarBuilder jb = new JarBuilder("short-multi-release.jar");
-        jb.addAttribute("Multi-Release", "true");
-        jb.addEntry("README", readme8.getBytes());
-        jb.addEntry("version/Main.java", main.getBytes());
-        jb.addEntry("version/Main.class", rootClasses.get("version.Main"));
-        jb.addEntry("version/Version.java", java8.getBytes());
-        jb.addEntry("version/Version.class", rootClasses.get("version.Version"));
-        jb.addEntry("META-INF/versions/9/README", readme9.getBytes());
-        jb.addEntry("META-INF/versions/9/version/Version.java", java9.getBytes());
-        jb.addEntry("META-INF/versions/9/version/PackagePrivate.java", ppjava9.getBytes());
-        // no entry for META-INF/versions/9/version/Version.class
-        jb.addEntry("META-INF/versions/9/version/PackagePrivate.class", version9Classes.get("version.PackagePrivate"));
-        jb.addEntry("META-INF/versions/10/README", readme10.getBytes());
-        jb.addEntry("META-INF/versions/10/version/Version.java", java10.getBytes());
-        jb.addEntry("META-INF/versions/10/version/Version.class", version10Classes.get("version.Version"));
-        jb.build();
     }
 
     public void buildSignedMultiReleaseJar() throws Exception {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/net/www/protocol/jar/JarURLConnectionUseCaches.java	Wed Sep 14 11:22:39 2016 -0700
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2016, 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 6947916
+ * @summary  JarURLConnection does not handle useCaches correctly
+ * @run main JarURLConnectionUseCaches
+ */
+
+import java.io.*;
+import java.net.JarURLConnection;
+import java.net.URL;
+import java.util.jar.*;
+
+public class JarURLConnectionUseCaches {
+    public static void main( String[] args ) throws IOException {
+        JarOutputStream out = new JarOutputStream(
+                new FileOutputStream("usecache.jar"));
+        out.putNextEntry(new JarEntry("test.txt"));
+        out.write("Test txt file".getBytes());
+        out.closeEntry();
+        out.close();
+
+        URL url = new URL("jar:"
+            + new File(".").toURI().toString()
+            + "/usecache.jar!/test.txt");
+
+        JarURLConnection c1 = (JarURLConnection)url.openConnection();
+        c1.setDefaultUseCaches( false );
+        c1.setUseCaches( true );
+        c1.connect();
+
+        JarURLConnection c2 = (JarURLConnection)url.openConnection();
+        c2.setDefaultUseCaches( false );
+        c2.setUseCaches( true );
+        c2.connect();
+
+        c1.getInputStream().close();
+        c2.getInputStream().read();
+        c2.getInputStream().close();
+    }
+}
--- a/jdk/test/sun/security/pkcs11/PKCS11Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/sun/security/pkcs11/PKCS11Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -82,8 +82,6 @@
         System.setProperty("closed.base", CLOSED_BASE);
     }
 
-    static String NSPR_PREFIX = "";
-
     // NSS version info
     public static enum ECCState { None, Basic, Extended };
     static double nss_version = -1;
@@ -294,7 +292,6 @@
         String osName = props.getProperty("os.name");
         if (osName.startsWith("Win")) {
             osName = "Windows";
-            NSPR_PREFIX = "lib";
         } else if (osName.equals("Mac OS X")) {
             osName = "MacOSX";
         }
@@ -342,9 +339,9 @@
 
     static boolean loadNSPR(String libdir) throws Exception {
         // load NSS softoken dependencies in advance to avoid resolver issues
-        safeReload(libdir + System.mapLibraryName(NSPR_PREFIX + "nspr4"));
-        safeReload(libdir + System.mapLibraryName(NSPR_PREFIX + "plc4"));
-        safeReload(libdir + System.mapLibraryName(NSPR_PREFIX + "plds4"));
+        safeReload(libdir + System.mapLibraryName("nspr4"));
+        safeReload(libdir + System.mapLibraryName("plc4"));
+        safeReload(libdir + System.mapLibraryName("plds4"));
         safeReload(libdir + System.mapLibraryName("sqlite3"));
         safeReload(libdir + System.mapLibraryName("nssutil3"));
         return true;
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/freebl3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/freebl3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libnspr4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libnspr4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libplc4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libplc4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libplds4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/libplds4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nspr4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nspr4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nss3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nss3.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nssckbi.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nssdbm3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nssdbm3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nssutil3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/nssutil3.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/plc4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/plc4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/plds4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/plds4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/softokn3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/softokn3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/sqlite3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/ssl3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-amd64/ssl3.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/freebl3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/freebl3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libnspr4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libnspr4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplc4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplc4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplds4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/libplds4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nspr4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nspr4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nss3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nss3.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nssckbi.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nssdbm3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nssdbm3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nssutil3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/nssutil3.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/plc4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/plc4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/plds4.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/plds4.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/softokn3.chk has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/softokn3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/sqlite3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/ssl3.dll has changed
Binary file jdk/test/sun/security/pkcs11/nss/lib/windows-i586/ssl3.lib has changed
Binary file jdk/test/sun/security/pkcs11/nss/src/nss-3.16-with-nspr-4.10.4.tar.gz has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/pkcs11/nss/src/nss-3.16-with-nspr-4.10.4.tar.gz.sha256	Wed Sep 14 11:22:39 2016 -0700
@@ -0,0 +1,1 @@
+9d23633683ab3cea14519a22a997bc7f5d8d9664b6342df492c194966184ce0d  nss-3.16-with-nspr-4.10.4.tar.gz
Binary file jdk/test/sun/security/pkcs11/nss/src/nss-3.16_nspr-4.10_src.tar.gz has changed
--- a/jdk/test/sun/security/pkcs11/nss/src/nss-3.16_nspr-4.10_src.tar.gz.sha256	Sat Sep 10 12:18:34 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-d2374795528f9cf36de07bf7c77d8c8414bb5b4da12ee7c78a57ec90d68e3706  nss-3.16_nspr-4.10_src.tar.gz
--- a/jdk/test/tools/jlink/IntegrationTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/tools/jlink/IntegrationTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -210,25 +210,29 @@
             props.load(reader);
         }
 
-        if (props.getProperty("JAVA_VERSION") == null) {
-            throw new AssertionError("release file does not contain JAVA_VERSION");
-        }
-
-        if (props.getProperty("OS_NAME") == null) {
-            throw new AssertionError("release file does not contain OS_NAME");
-        }
-
-        if (props.getProperty("OS_ARCH") == null) {
-            throw new AssertionError("release file does not contain OS_ARCH");
-        }
-
-        if (props.getProperty("OS_VERSION") == null) {
-            throw new AssertionError("release file does not contain OS_VERSION");
-        }
+        checkReleaseProperty(props, "JAVA_VERSION");
+        checkReleaseProperty(props, "JAVA_FULL_VERSION");
+        checkReleaseProperty(props, "OS_NAME");
+        checkReleaseProperty(props, "OS_ARCH");
+        checkReleaseProperty(props, "OS_VERSION");
 
         if (!Files.exists(output.resolve("toto.txt"))) {
             throw new AssertionError("Post processing not called");
         }
 
     }
+
+    static void checkReleaseProperty(Properties props, String name) {
+        if (! props.containsKey(name)) {
+            throw new AssertionError("release file does not contain property : " + name);
+        }
+
+        // property value is of min. length 3 and double quoted at the ends.
+        String value = props.getProperty(name);
+        if (value.length() < 3 ||
+            value.charAt(0) != '"' ||
+            value.charAt(value.length() - 1) != '"') {
+            throw new AssertionError("release property " + name + " is not quoted property");
+        }
+    }
 }
--- a/jdk/test/tools/jlink/plugins/IncludeLocalesPluginTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/jdk/test/tools/jlink/plugins/IncludeLocalesPluginTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -126,11 +126,10 @@
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_es_419.class",
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_es_AR.class"),
             List.of(
-                "/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
-                "/jdk.localedata/sun/text/resources/thai_dict",
-                "/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/thai_dict",
+                "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
                 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
-                "/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class",
@@ -165,11 +164,10 @@
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_001.class",
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ja.class"),
             List.of(
-                "/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
-                "/jdk.localedata/sun/text/resources/thai_dict",
-                "/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/thai_dict",
+                "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
                 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
-                "/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_zh.class",
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_th.class",
@@ -206,11 +204,10 @@
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_150.class",
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_en_AT.class"),
             List.of(
-                "/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
-                "/jdk.localedata/sun/text/resources/thai_dict",
-                "/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/thai_dict",
+                "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
                 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
-                "/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
@@ -235,11 +232,10 @@
                 "/jdk.localedata/sun/util/resources/cldr/ext/CalendarData_kok_IN.class",
                 "/jdk.localedata/sun/util/resources/cldr/ext/CalendarData_pa_Guru_IN.class"),
             List.of(
-                "/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
-                "/jdk.localedata/sun/text/resources/thai_dict",
-                "/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/thai_dict",
+                "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
                 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
-                "/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
@@ -261,11 +257,10 @@
             "--include-locales=th",
             "jdk.localedata",
             List.of(
-                "/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
-                "/jdk.localedata/sun/text/resources/thai_dict",
-                "/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/thai_dict",
+                "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
                 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
-                "/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class"),
             List.of(
                 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
@@ -290,11 +285,10 @@
                 "/jdk.localedata/sun/text/resources/ext/FormatData_zh_TW.class",
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_zh.class"),
             List.of(
-                "/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
-                "/jdk.localedata/sun/text/resources/thai_dict",
-                "/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/thai_dict",
+                "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
                 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
-                "/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
@@ -318,11 +312,10 @@
                 "/jdk.localedata/sun/text/resources/ext/FormatData_zh_SG.class",
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_zh.class"),
             List.of(
-                "/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
-                "/jdk.localedata/sun/text/resources/thai_dict",
-                "/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/thai_dict",
+                "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
                 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
-                "/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
@@ -346,11 +339,10 @@
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_nb.class",
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_nn.class"),
             List.of(
-                "/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
-                "/jdk.localedata/sun/text/resources/thai_dict",
-                "/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/thai_dict",
+                "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
                 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
-                "/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
@@ -376,11 +368,10 @@
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_iw.class",
                 "/jdk.localedata/sun/text/resources/cldr/ext/FormatData_ji.class"),
             List.of(
-                "/jdk.localedata/sun/text/resources/LineBreakIteratorData_th",
-                "/jdk.localedata/sun/text/resources/thai_dict",
-                "/jdk.localedata/sun/text/resources/WordBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/LineBreakIteratorData_th",
+                "/jdk.localedata/sun/text/resources/ext/thai_dict",
+                "/jdk.localedata/sun/text/resources/ext/WordBreakIteratorData_th",
                 "/jdk.localedata/sun/text/resources/ext/BreakIteratorInfo_th.class",
-                "/jdk.localedata/sun/text/resources/ext/BreakIteratorRules_th.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_en_GB.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_ja.class",
                 "/jdk.localedata/sun/text/resources/ext/FormatData_th.class",
--- a/langtools/.hgtags	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/.hgtags	Wed Sep 14 11:22:39 2016 -0700
@@ -377,3 +377,4 @@
 2c17b65a37a8d7afdb9f96d5f11b28a3f21c78f2 jdk-9+132
 7efa4b3477b2b93edbdb4abf827b74c6391f056e jdk-9+133
 f08683786207a48b652266b3b7b908e6c863c3fc jdk-9+134
+af5eb8f3ffd21288305a54ea177ffad75021a741 jdk-9+135
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Wed Sep 14 11:22:39 2016 -0700
@@ -426,8 +426,8 @@
 
         verboseCompilePolicy = options.isSet("verboseCompilePolicy");
 
-        if (options.isSet("shouldstop.at") &&
-            CompileState.valueOf(options.get("shouldstop.at")) == CompileState.ATTR)
+        if (options.isSet("should-stop.at") &&
+            CompileState.valueOf(options.get("should-stop.at")) == CompileState.ATTR)
             compilePolicy = CompilePolicy.ATTR_ONLY;
         else
             compilePolicy = CompilePolicy.decode(options.get("compilePolicy"));
@@ -440,14 +440,14 @@
             : null;
 
         shouldStopPolicyIfError =
-            options.isSet("shouldstop.at") // backwards compatible
-            ? CompileState.valueOf(options.get("shouldstop.at"))
-            : options.isSet("shouldstop.ifError")
-            ? CompileState.valueOf(options.get("shouldstop.ifError"))
+            options.isSet("should-stop.at") // backwards compatible
+            ? CompileState.valueOf(options.get("should-stop.at"))
+            : options.isSet("should-stop.ifError")
+            ? CompileState.valueOf(options.get("should-stop.ifError"))
             : CompileState.INIT;
         shouldStopPolicyIfNoError =
-            options.isSet("shouldstop.ifNoError")
-            ? CompileState.valueOf(options.get("shouldstop.ifNoError"))
+            options.isSet("should-stop.ifNoError")
+            ? CompileState.valueOf(options.get("should-stop.ifNoError"))
             : CompileState.GENERATE;
 
         if (options.isUnset("diags.legacy"))
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java	Wed Sep 14 11:22:39 2016 -0700
@@ -509,33 +509,21 @@
 
     XDIAGS("-Xdiags:", "opt.diags", EXTENDED, BASIC, ONEOF, "compact", "verbose"),
 
-    XDEBUG("-Xdebug:", null, HIDDEN, BASIC) {
+    DEBUG("--debug:", null, HIDDEN, BASIC) {
         @Override
         public boolean process(OptionHelper helper, String option) {
-            String p = option.substring(option.indexOf(':') + 1).trim();
-            String[] subOptions = p.split(";");
-            for (String subOption : subOptions) {
-                subOption = "debug." + subOption.trim();
-                XD.process(helper, subOption, subOption);
-            }
-            return false;
+            return HiddenGroup.DEBUG.process(helper, option);
         }
     },
 
-    XSHOULDSTOP("-Xshouldstop:", null, HIDDEN, BASIC) {
+    SHOULDSTOP("--should-stop:", null, HIDDEN, BASIC) {
         @Override
         public boolean process(OptionHelper helper, String option) {
-            String p = option.substring(option.indexOf(':') + 1).trim();
-            String[] subOptions = p.split(";");
-            for (String subOption : subOptions) {
-                subOption = "shouldstop." + subOption.trim();
-                XD.process(helper, subOption, subOption);
-            }
-            return false;
+            return HiddenGroup.SHOULDSTOP.process(helper, option);
         }
     },
 
-    DIAGS("-diags:", null, HIDDEN, BASIC) {
+    DIAGS("--diags:", null, HIDDEN, BASIC) {
         @Override
         public boolean process(OptionHelper helper, String option) {
             return HiddenGroup.DIAGS.process(helper, option);
@@ -754,7 +742,12 @@
     }
 
     enum HiddenGroup {
-        DIAGS("diags");
+        DIAGS("diags"),
+        DEBUG("debug"),
+        SHOULDSTOP("should-stop");
+
+        static final Set<String> skipSet = new java.util.HashSet<>(
+                Arrays.asList("--diags:", "--debug:", "--should-stop:"));
 
         final String text;
 
@@ -771,6 +764,10 @@
             }
             return false;
         }
+
+        static boolean skip(String name) {
+            return skipSet.contains(name);
+        }
     }
 
     /**
@@ -930,7 +927,7 @@
     }
 
     private boolean matches(String option, String name) {
-        if (name.startsWith("--")) {
+        if (name.startsWith("--") && !HiddenGroup.skip(name)) {
             return option.equals(name)
                     || hasArg() && option.startsWith(name + "=");
         }
--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/options/Options.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/options/Options.java	Wed Sep 14 11:22:39 2016 -0700
@@ -313,7 +313,7 @@
         }
 
         // Enable dependency generation
-        args.add("-Xdebug:completionDeps=source,class");
+        args.add("--debug:completionDeps=source,class");
 
         // This can't be anything but 'none'. Enforced by sjavac main method.
         args.add("-implicit:" + implicitPolicy);
--- a/langtools/src/jdk.jshell/share/classes/jdk/jshell/ReplParser.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/src/jdk.jshell/share/classes/jdk/jshell/ReplParser.java	Wed Sep 14 11:22:39 2016 -0700
@@ -95,24 +95,6 @@
             mods = modifiersOpt();
         }
 
-        if (token.kind == PACKAGE) {
-            int packagePos = token.pos;
-            List<JCAnnotation> annotations = List.nil();
-            seenPackage = true;
-            if (mods != null) {
-                checkNoMods(mods.flags);
-                annotations = mods.annotations;
-                mods = null;
-            }
-            nextToken();
-            JCExpression pid = qualident(false);
-            accept(SEMI);
-            JCPackageDecl pd = F.at(packagePos).PackageDecl(annotations, pid);
-            attach(pd, firstToken.comment(CommentStyle.JAVADOC));
-            storeEnd(pd, token.pos);
-            defs.append(pd);
-        }
-
         boolean firstTypeDecl = true;
         while (token.kind != EOF) {
             if (token.pos > 0 && token.pos <= endPosTable.errorEndPos) {
--- a/langtools/src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysisImpl.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysisImpl.java	Wed Sep 14 11:22:39 2016 -0700
@@ -838,8 +838,31 @@
     }
 
     private Stream<Element> localElements(Scope scope) {
-        @SuppressWarnings("unchecked")
-        Stream<Element> elements = Util.stream((Iterable<Element>)scope.getLocalElements());
+        //workaround for: JDK-8024687
+        Iterable<Element> elementsIt = () -> new Iterator<Element>() {
+            Iterator<? extends Element> it = scope.getLocalElements().iterator();
+            @Override
+            public boolean hasNext() {
+                while (true) {
+                    try {
+                        return it.hasNext();
+                    } catch (CompletionFailure cf) {
+                        //ignore...
+                    }
+                }
+            }
+            @Override
+            public Element next() {
+                while (true) {
+                    try {
+                        return it.next();
+                    } catch (CompletionFailure cf) {
+                        //ignore...
+                    }
+                }
+            }
+        };
+        Stream<Element> elements = Util.stream(elementsIt);
 
         if (scope.getEnclosingScope() != null &&
             scope.getEnclosingClass() != scope.getEnclosingScope().getEnclosingClass()) {
--- a/langtools/src/jdk.jshell/share/classes/jdk/jshell/TaskFactory.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/src/jdk.jshell/share/classes/jdk/jshell/TaskFactory.java	Wed Sep 14 11:22:39 2016 -0700
@@ -222,7 +222,7 @@
             this(wraps.stream(),
                     new WrapSourceHandler(),
                     Util.join(new String[] {
-                        "-Xshouldstop:at=FLOW", "-Xlint:unchecked",
+                        "--should-stop:at=FLOW", "-Xlint:unchecked",
                         "-proc:none"
                     }, extraArgs));
         }
--- a/langtools/test/jdk/jshell/CompletionSuggestionTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/jdk/jshell/CompletionSuggestionTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8141092 8153761
+ * @bug 8131025 8141092 8153761
  * @summary Test Completion
  * @modules jdk.compiler/com.sun.tools.javac.api
  *          jdk.compiler/com.sun.tools.javac.main
@@ -610,4 +610,26 @@
         keepParameterNames.setAccessible(true);
         keepParameterNames.set(getAnalysis(), new String[0]);
     }
+
+    public void testBrokenClassFile2() throws IOException {
+        Path broken = outDir.resolve("broken");
+        compiler.compile(broken,
+                "package p;\n" +
+                "public class BrokenA {\n" +
+                "}",
+                "package p.q;\n" +
+                "public class BrokenB {\n" +
+                "}",
+                "package p;\n" +
+                "public class BrokenC {\n" +
+                "}");
+        Path cp = compiler.getPath(broken);
+        Path target = cp.resolve("p").resolve("BrokenB.class");
+        Files.deleteIfExists(target);
+        Files.move(cp.resolve("p").resolve("q").resolve("BrokenB.class"), target);
+        addToClasspath(cp);
+
+        assertEval("import p.*;");
+        assertCompletion("Broke|", "BrokenA", "BrokenC");
+    }
 }
--- a/langtools/test/jdk/jshell/RejectedFailedTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/jdk/jshell/RejectedFailedTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -22,7 +22,7 @@
  */
 
 /*
- * @test
+ * @test 8080352
  * @summary Tests for hard errors, like syntax errors
  * @build KullaTesting
  * @run testng RejectedFailedTest
@@ -81,6 +81,7 @@
                 " a b c",
                 ")",
                 "class interface A",
+                "package foo;"
         };
         checkByKind(inputsErroneous, Kind.ERRONEOUS);
     }
--- a/langtools/test/tools/javac/ClassFileModifiers/ClassModifiers.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/ClassFileModifiers/ClassModifiers.java	Wed Sep 14 11:22:39 2016 -0700
@@ -28,7 +28,7 @@
  * file are correct, including those within InnerClasses attributes.
  * @author John Rose (jrose). Entered as a regression test by Bill Maddox (maddox).
  *
- * @compile/ref=ClassModifiers.out  -Xdebug:dumpmodifiers=ci ClassModifiers.java
+ * @compile/ref=ClassModifiers.out --debug:dumpmodifiers=ci ClassModifiers.java
  *
  */
 
--- a/langtools/test/tools/javac/ClassFileModifiers/MemberModifiers.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/ClassFileModifiers/MemberModifiers.java	Wed Sep 14 11:22:39 2016 -0700
@@ -26,7 +26,7 @@
  * @bug 4249112 4785453
  * @summary Verify that implicit member modifiers are set correctly.
  *
- * @compile/ref=MemberModifiers.out -Xdebug:dumpmodifiers=cfm MemberModifiers.java
+ * @compile/ref=MemberModifiers.out --debug:dumpmodifiers=cfm MemberModifiers.java
  */
 
 // Currently, we check only that members of final classes are not final.
--- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234a.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234a.java	Wed Sep 14 11:22:39 2016 -0700
@@ -3,8 +3,8 @@
  * @bug     6722234
  * @summary javac diagnostics need better integration with the type-system
  * @author  mcimadamore
- * @compile/fail/ref=T6722234a_1.out -XDrawDiagnostics -diags:formatterOptions=disambiguateTvars T6722234a.java
- * @compile/fail/ref=T6722234a_2.out -XDrawDiagnostics -diags:formatterOptions=disambiguateTvars,where T6722234a.java
+ * @compile/fail/ref=T6722234a_1.out -XDrawDiagnostics --diags:formatterOptions=disambiguateTvars T6722234a.java
+ * @compile/fail/ref=T6722234a_2.out -XDrawDiagnostics --diags:formatterOptions=disambiguateTvars,where T6722234a.java
  */
 
 class T6722234a<T extends String> {
--- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234b.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234b.java	Wed Sep 14 11:22:39 2016 -0700
@@ -3,8 +3,8 @@
  * @bug     6722234 8078024
  * @summary javac diagnostics need better integration with the type-system
  * @author  mcimadamore
- * @compile/fail/ref=T6722234b_1.out -XDrawDiagnostics -diags:formatterOptions=simpleNames T6722234b.java
- * @compile/fail/ref=T6722234b_2.out -XDrawDiagnostics -diags:formatterOptions=simpleNames,where T6722234b.java
+ * @compile/fail/ref=T6722234b_1.out -XDrawDiagnostics --diags:formatterOptions=simpleNames T6722234b.java
+ * @compile/fail/ref=T6722234b_2.out -XDrawDiagnostics --diags:formatterOptions=simpleNames,where T6722234b.java
  */
 
 import java.util.*;
--- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234c.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234c.java	Wed Sep 14 11:22:39 2016 -0700
@@ -3,7 +3,7 @@
  * @bug     6722234
  * @summary javac diagnostics need better integration with the type-system
  * @author  mcimadamore
- * @compile/fail/ref=T6722234c.out -XDrawDiagnostics -diags:formatterOptions=simpleNames T6722234c.java
+ * @compile/fail/ref=T6722234c.out -XDrawDiagnostics --diags:formatterOptions=simpleNames T6722234c.java
  */
 
 class T6722234c {
--- a/langtools/test/tools/javac/Diagnostics/6722234/T6722234d.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234d.java	Wed Sep 14 11:22:39 2016 -0700
@@ -3,8 +3,8 @@
  * @bug     6722234 8078024
  * @summary javac diagnostics need better integration with the type-system
  * @author  mcimadamore
- * @compile/fail/ref=T6722234d_1.out -XDrawDiagnostics -diags:formatterOptions=where T6722234d.java
- * @compile/fail/ref=T6722234d_2.out -XDrawDiagnostics -diags:formatterOptions=where,simpleNames T6722234d.java
+ * @compile/fail/ref=T6722234d_1.out -XDrawDiagnostics --diags:formatterOptions=where T6722234d.java
+ * @compile/fail/ref=T6722234d_2.out -XDrawDiagnostics --diags:formatterOptions=where,simpleNames T6722234d.java
  */
 
 class T6722234d {
--- a/langtools/test/tools/javac/Diagnostics/6862608/T6862608a.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/Diagnostics/6862608/T6862608a.java	Wed Sep 14 11:22:39 2016 -0700
@@ -3,7 +3,7 @@
  * @bug     6862608
  * @summary rich diagnostic sometimes contain wrong type variable numbering
  * @author  mcimadamore
- * @compile/fail/ref=T6862608a.out -XDrawDiagnostics -diags:formatterOptions=disambiguateTvars,where T6862608a.java
+ * @compile/fail/ref=T6862608a.out -XDrawDiagnostics --diags:formatterOptions=disambiguateTvars,where T6862608a.java
  */
 
 
--- a/langtools/test/tools/javac/Diagnostics/6862608/T6862608b.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/Diagnostics/6862608/T6862608b.java	Wed Sep 14 11:22:39 2016 -0700
@@ -3,7 +3,7 @@
  * @bug     6862608
  * @summary rich diagnostic sometimes contain wrong type variable numbering
  * @author  mcimadamore
- * @compile/fail/ref=T6862608b.out -XDrawDiagnostics -diags:formatterOptions=disambiguateTvars,where T6862608b.java
+ * @compile/fail/ref=T6862608b.out -XDrawDiagnostics --diags:formatterOptions=disambiguateTvars,where T6862608b.java
  */
 
 class T66862608b<T extends String, S> {
--- a/langtools/test/tools/javac/Diagnostics/7010608/Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/Diagnostics/7010608/Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -46,9 +46,9 @@
         try {
             test(Arrays.<String>asList(),
                     "myfo://test:1: error: cannot find symbol");
-            test(Arrays.asList("-diags:layout=OLD"),
+            test(Arrays.asList("--diags:layout=OLD"),
                     "myfo://test:1: cannot find symbol");
-            test(Arrays.asList("-diags:legacy"),
+            test(Arrays.asList("--diags:legacy"),
                     "myfo://test:1: cannot find symbol");
         } finally {
             Locale.setDefault(prev);
--- a/langtools/test/tools/javac/Diagnostics/8010387/T8010387.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/Diagnostics/8010387/T8010387.java	Wed Sep 14 11:22:39 2016 -0700
@@ -2,7 +2,7 @@
  * @test /nodynamiccopyright/
  * @bug     8010387
  * @summary rich diagnostic sometimes contain wrong type variable numbering
- * @compile/fail/ref=T8010387.out -XDrawDiagnostics -diags:formatterOptions=disambiguateTvars,where T8010387.java
+ * @compile/fail/ref=T8010387.out -XDrawDiagnostics --diags:formatterOptions=disambiguateTvars,where T8010387.java
  */
 abstract class T8010387<X> {
 
--- a/langtools/test/tools/javac/InterfaceMemberClassModifiers.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/InterfaceMemberClassModifiers.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Verify that invalid access modifiers on interface members don't cause crash.
  * @author maddox
  *
- * @compile/fail/ref=InterfaceMemberClassModifiers.out -diags:layout=%b:%l:%_%m InterfaceMemberClassModifiers.java
+ * @compile/fail/ref=InterfaceMemberClassModifiers.out --diags:layout=%b:%l:%_%m InterfaceMemberClassModifiers.java
  */
 
 public interface InterfaceMemberClassModifiers {
--- a/langtools/test/tools/javac/T5003235/T5003235a.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/T5003235/T5003235a.java	Wed Sep 14 11:22:39 2016 -0700
@@ -3,7 +3,7 @@
  * @bug     5003235
  * @summary Private inner class accessible from subclasses
  * @author  Peter von der Ah\u00e9
- * @compile/fail/ref=T5003235a.out -diags:layout=%b:%l:%_%m T5003235a.java
+ * @compile/fail/ref=T5003235a.out --diags:layout=%b:%l:%_%m T5003235a.java
  */
 
 class Super {
--- a/langtools/test/tools/javac/T5003235/T5003235b.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/T5003235/T5003235b.java	Wed Sep 14 11:22:39 2016 -0700
@@ -3,7 +3,7 @@
  * @bug     5003235
  * @summary Accessibility of private inner class
  * @author  Peter von der Ah\u00e9
- * @compile/fail/ref=T5003235b.out -diags:layout=%b:%l:%_%m T5003235b.java
+ * @compile/fail/ref=T5003235b.out --diags:layout=%b:%l:%_%m T5003235b.java
  */
 
 class Outer {
--- a/langtools/test/tools/javac/T6214885.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/T6214885.java	Wed Sep 14 11:22:39 2016 -0700
@@ -2,8 +2,8 @@
  * @test  /nodynamiccopyright/
  * @bug 6214885
  * @summary This test exercises features provided by the new internal Diagnostics API
- * @compile/fail/ref=T6214885a.out -diags:layout=%b:%l%_%t%m|%p%m T6214885.java
- * @compile/fail/ref=T6214885b.out -diags:layout=%b:%l:%c%_%t%m|%p%m T6214885.java
+ * @compile/fail/ref=T6214885a.out --diags:layout=%b:%l%_%t%m|%p%m T6214885.java
+ * @compile/fail/ref=T6214885b.out --diags:layout=%b:%l:%c%_%t%m|%p%m T6214885.java
  */
 class T6214885
 {
--- a/langtools/test/tools/javac/T8026963/TypeAnnotationsCrashWithErroneousTreeTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/T8026963/TypeAnnotationsCrashWithErroneousTreeTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -2,7 +2,7 @@
  * @test /nodynamiccopyright/
  * @bug 8026963
  * @summary type annotations code crashes for lambdas with void argument
- * @compile/fail/ref=TypeAnnotationsCrashWithErroneousTreeTest.out -XDrawDiagnostics -Xshouldstop:at=FLOW TypeAnnotationsCrashWithErroneousTreeTest.java
+ * @compile/fail/ref=TypeAnnotationsCrashWithErroneousTreeTest.out -XDrawDiagnostics --should-stop:at=FLOW TypeAnnotationsCrashWithErroneousTreeTest.java
  */
 
 public class TypeAnnotationsCrashWithErroneousTreeTest {
--- a/langtools/test/tools/javac/annotations/neg/8022765/VerifyErroneousAnnotationsAttributed.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/annotations/neg/8022765/VerifyErroneousAnnotationsAttributed.java	Wed Sep 14 11:22:39 2016 -0700
@@ -237,7 +237,7 @@
         JavacTask task = tool.getTask(null,
                                       fm,
                                       devNull,
-                                      Arrays.asList("-Xshouldstop:at=FLOW"),
+                                      Arrays.asList("--should-stop:at=FLOW"),
                                       null,
                                       Arrays.asList(new MyFileObject(code)));
 
--- a/langtools/test/tools/javac/annotations/typeAnnotations/newlocations/AfterMethodTypeParams.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/newlocations/AfterMethodTypeParams.java	Wed Sep 14 11:22:39 2016 -0700
@@ -54,7 +54,7 @@
             String test = TEMPLATE.replace("CONTENT", tc.snippet);
             List<JavaFileObject> files = Arrays.asList(new MyFileObject(test));
             StringWriter out = new StringWriter();
-            List<String> options = Arrays.asList("-XDrawDiagnostics", "-Xshouldstop:at=FLOW");
+            List<String> options = Arrays.asList("-XDrawDiagnostics", "--should-stop:at=FLOW");
             JavacTask task = (JavacTask) compiler.getTask(out, null, null, options, null, files);
 
             new TreePathScanner<Void, Void>() {
--- a/langtools/test/tools/javac/api/6731573/T6731573.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/api/6731573/T6731573.java	Wed Sep 14 11:22:39 2016 -0700
@@ -62,8 +62,8 @@
 
     enum SourceLine {
         STANDARD(null),
-        ENABLED("-diags:showSource=true"),
-        DISABLED("-diags:showSource=false");
+        ENABLED("--diags:showSource=true"),
+        DISABLED("--diags:showSource=false");
 
         String optValue;
 
--- a/langtools/test/tools/javac/api/taskListeners/EventsBalancedTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/api/taskListeners/EventsBalancedTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -63,11 +63,11 @@
         test(null, Arrays.asList(b, a));
 
         for (CompileState stop : CompileState.values()) {
-            test(Arrays.asList("-Xshouldstop:ifNoError=" + stop,
-                               "-Xshouldstop:ifError=" + stop),
+            test(Arrays.asList("--should-stop:ifNoError=" + stop,
+                               "--should-stop:ifError=" + stop),
                  Arrays.asList(a, b));
-            test(Arrays.asList("-Xshouldstop:ifNoError=" + stop,
-                               "-Xshouldstop:ifError=" + stop),
+            test(Arrays.asList("--should-stop:ifNoError=" + stop,
+                               "--should-stop:ifError=" + stop),
                  Arrays.asList(b, a));
         }
     }
--- a/langtools/test/tools/javac/completionDeps/DepsAndAnno.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/completionDeps/DepsAndAnno.java	Wed Sep 14 11:22:39 2016 -0700
@@ -47,7 +47,7 @@
     public static void main(String[] args) {
         ToolBox toolBox = new ToolBox();
         new JavacTask(toolBox, Task.Mode.CMDLINE)
-               .options("-Xdebug:completionDeps")
+               .options("--debug:completionDeps")
                .outdir(".")
                .files(ToolBox.testSrc + "/DepsAndAnno.java")
                .run();
--- a/langtools/test/tools/javac/completionDeps/DepsAndDocLint.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/completionDeps/DepsAndDocLint.java	Wed Sep 14 11:22:39 2016 -0700
@@ -25,7 +25,7 @@
  * @test
  * @bug 8078389
  * @summary Make sure there is no interference between completionDeps and doclint
- * @compile -Xdebug:completionDeps -Xdoclint DepsAndDocLint.java
+ * @compile --debug:completionDeps -Xdoclint DepsAndDocLint.java
  */
 
 public class DepsAndDocLint {
--- a/langtools/test/tools/javac/diags/CheckResourceKeys.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/CheckResourceKeys.java	Wed Sep 14 11:22:39 2016 -0700
@@ -260,8 +260,8 @@
                 // ignore debug flag names
                 if (cs.startsWith("debug."))
                     continue;
-                // ignore shouldstop flag names
-                if (cs.startsWith("shouldstop."))
+                // ignore should-stop flag names
+                if (cs.startsWith("should-stop."))
                     continue;
                 // ignore diagsformat flag names
                 if (cs.startsWith("diags."))
--- a/langtools/test/tools/javac/diags/examples/ApplicableMethodFound.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/ApplicableMethodFound.java	Wed Sep 14 11:22:39 2016 -0700
@@ -23,7 +23,7 @@
 
 // key: compiler.misc.applicable.method.found
 // key: compiler.note.verbose.resolve.multi
-// options: -Xdebug:verboseResolution=applicable,success
+// options: --debug:verboseResolution=applicable,success
 
 class ApplicableMethodFound {
 
--- a/langtools/test/tools/javac/diags/examples/ApplicableMethodFound1.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/ApplicableMethodFound1.java	Wed Sep 14 11:22:39 2016 -0700
@@ -24,7 +24,7 @@
 // key: compiler.misc.applicable.method.found.1
 // key: compiler.note.verbose.resolve.multi
 // key: compiler.misc.partial.inst.sig
-// options: -Xdebug:verboseResolution=applicable,success
+// options: --debug:verboseResolution=applicable,success
 
 class ApplicableMethodFound1 {
 
--- a/langtools/test/tools/javac/diags/examples/DeferredMethodInst.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/DeferredMethodInst.java	Wed Sep 14 11:22:39 2016 -0700
@@ -25,7 +25,7 @@
 // key: compiler.note.verbose.resolve.multi
 // key: compiler.note.deferred.method.inst
 // key: compiler.misc.partial.inst.sig
-// options: -Xdebug:verboseResolution=applicable,success,deferred-inference
+// options: --debug:verboseResolution=applicable,success,deferred-inference
 
 class DeferredMethodInst {
 
--- a/langtools/test/tools/javac/diags/examples/LambdaStat.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/LambdaStat.java	Wed Sep 14 11:22:39 2016 -0700
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.note.lambda.stat
-// options: -Xdebug:dumpLambdaToMethodStats
+// options: --debug:dumpLambdaToMethodStats
 
 class LambdaStat {
     Runnable r = ()->{};
--- a/langtools/test/tools/javac/diags/examples/MrefStat.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/MrefStat.java	Wed Sep 14 11:22:39 2016 -0700
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.note.mref.stat
-// options: -Xdebug:dumpLambdaToMethodStats
+// options: --debug:dumpLambdaToMethodStats
 
 class MrefStat {
     Runnable r = MrefStat::m;
--- a/langtools/test/tools/javac/diags/examples/MrefStat1.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/MrefStat1.java	Wed Sep 14 11:22:39 2016 -0700
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.note.mref.stat.1
-// options: -Xdebug:dumpLambdaToMethodStats
+// options: --debug:dumpLambdaToMethodStats
 
 class MrefStat1 {
 
--- a/langtools/test/tools/javac/diags/examples/NotApplicableMethodFound.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/NotApplicableMethodFound.java	Wed Sep 14 11:22:39 2016 -0700
@@ -26,7 +26,7 @@
 // key: compiler.err.cant.apply.symbol
 // key: compiler.misc.no.conforming.assignment.exists
 // key: compiler.misc.inconvertible.types
-// options: -Xdebug:verboseResolution=inapplicable,failure
+// options: --debug:verboseResolution=inapplicable,failure
 
 class NotApplicableMethodFound {
 
--- a/langtools/test/tools/javac/diags/examples/PartialInstSig.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/PartialInstSig.java	Wed Sep 14 11:22:39 2016 -0700
@@ -24,7 +24,7 @@
 // key: compiler.misc.applicable.method.found.1
 // key: compiler.note.verbose.resolve.multi
 // key: compiler.misc.partial.inst.sig
-// options: -Xdebug:verboseResolution=applicable,success
+// options: --debug:verboseResolution=applicable,success
 
 class PartialInstSig {
 
--- a/langtools/test/tools/javac/diags/examples/VerboseResolveMulti.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/VerboseResolveMulti.java	Wed Sep 14 11:22:39 2016 -0700
@@ -23,7 +23,7 @@
 
 // key: compiler.misc.applicable.method.found
 // key: compiler.note.verbose.resolve.multi
-// options: -Xdebug:verboseResolution=applicable,success
+// options: --debug:verboseResolution=applicable,success
 
 class VerboseResolveMulti {
 
--- a/langtools/test/tools/javac/diags/examples/VerboseResolveMulti1.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/VerboseResolveMulti1.java	Wed Sep 14 11:22:39 2016 -0700
@@ -26,7 +26,7 @@
 // key: compiler.err.cant.apply.symbol
 // key: compiler.misc.no.conforming.assignment.exists
 // key: compiler.misc.inconvertible.types
-// options: -Xdebug:verboseResolution=inapplicable,failure
+// options: --debug:verboseResolution=inapplicable,failure
 
 class VerboseResolveMulti1 {
 
--- a/langtools/test/tools/javac/diags/examples/WhereCaptured.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/WhereCaptured.java	Wed Sep 14 11:22:39 2016 -0700
@@ -28,7 +28,7 @@
 // key: compiler.err.cant.apply.symbol
 // key: compiler.misc.incompatible.eq.bounds
 // key: compiler.misc.captured.type
-// options: -diags:formatterOptions=where,simpleNames
+// options: --diags:formatterOptions=where,simpleNames
 // run: simple
 
 import java.util.*;
--- a/langtools/test/tools/javac/diags/examples/WhereCaptured1.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/WhereCaptured1.java	Wed Sep 14 11:22:39 2016 -0700
@@ -29,7 +29,7 @@
 // key: compiler.misc.incompatible.eq.bounds
 // key: compiler.misc.captured.type
 // key: compiler.misc.type.null
-// options: -diags:formatterOptions=where,simpleNames
+// options: --diags:formatterOptions=where,simpleNames
 // run: simple
 
 import java.util.*;
--- a/langtools/test/tools/javac/diags/examples/WhereFreshTvar.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/WhereFreshTvar.java	Wed Sep 14 11:22:39 2016 -0700
@@ -25,7 +25,7 @@
 // key: compiler.misc.where.description.typevar
 // key: compiler.err.prob.found.req
 // key: compiler.misc.inconvertible.types
-// options: -diags:formatterOptions=where,simpleNames
+// options: --diags:formatterOptions=where,simpleNames
 // run: simple
 
 import java.util.*;
--- a/langtools/test/tools/javac/diags/examples/WhereIntersection.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/WhereIntersection.java	Wed Sep 14 11:22:39 2016 -0700
@@ -26,7 +26,7 @@
 // key: compiler.misc.where.description.intersection.1
 // key: compiler.misc.where.intersection
 // key: compiler.err.prob.found.req
-// options: -diags:formatterOptions=where
+// options: --diags:formatterOptions=where
 // run: simple
 
 class WhereIntersection {
--- a/langtools/test/tools/javac/diags/examples/WhereIntersection2.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/WhereIntersection2.java	Wed Sep 14 11:22:39 2016 -0700
@@ -29,7 +29,7 @@
 // key: compiler.misc.where.description.intersection
 // key: compiler.misc.where.intersection
 // key: compiler.err.prob.found.req
-// options: -diags:formatterOptions=where
+// options: --diags:formatterOptions=where
 // run: simple
 
 class WhereIntersection2 {
--- a/langtools/test/tools/javac/diags/examples/WhereTypeVar.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/WhereTypeVar.java	Wed Sep 14 11:22:39 2016 -0700
@@ -27,7 +27,7 @@
 // key: compiler.err.cant.apply.symbol
 // key: compiler.misc.no.conforming.assignment.exists
 // key: compiler.misc.inconvertible.types
-// options: -diags:formatterOptions=where,disambiguateTvars
+// options: --diags:formatterOptions=where,disambiguateTvars
 // run: simple
 
 class WhereTypeVar<T extends String> {
--- a/langtools/test/tools/javac/diags/examples/WhereTypeVar2.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/diags/examples/WhereTypeVar2.java	Wed Sep 14 11:22:39 2016 -0700
@@ -25,7 +25,7 @@
 // key: compiler.misc.where.description.typevar
 // key: compiler.misc.where.typevar
 // key: compiler.err.prob.found.req
-// options: -diags:formatterOptions=where
+// options: --diags:formatterOptions=where
 // run: simple
 
 class WhereTypeVar2 {
--- a/langtools/test/tools/javac/failover/CheckAttributedTree.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/CheckAttributedTree.java	Wed Sep 14 11:22:39 2016 -0700
@@ -311,7 +311,7 @@
                 final List<CompilationUnitTree> trees = new ArrayList<>();
                 Iterable<? extends Element> elems = newCompilationTask()
                     .withWriter(pw)
-                        .withOption("-Xshouldstop:at=ATTR")
+                        .withOption("--should-stop:at=ATTR")
                         .withOption("-XDverboseCompilePolicy")
                         .withSource(files.iterator().next())
                         .withListener(new TaskListener() {
--- a/langtools/test/tools/javac/failover/FailOver01.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver01.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver01.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver01.java
+ * @compile/fail/ref=FailOver01.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver01.java
  */
 
 class Test { { x = "" } }
--- a/langtools/test/tools/javac/failover/FailOver02.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver02.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver02.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver02.java
+ * @compile/fail/ref=FailOver02.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver02.java
  */
 
 class Test implements AutoCloseable {
--- a/langtools/test/tools/javac/failover/FailOver03.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver03.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver03.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver03.java
+ * @compile/fail/ref=FailOver03.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver03.java
  */
 
 class Test extends Test {
--- a/langtools/test/tools/javac/failover/FailOver04.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver04.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver04.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver04.java
+ * @compile/fail/ref=FailOver04.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver04.java
  */
 
 class Test {
--- a/langtools/test/tools/javac/failover/FailOver05.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver05.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver05.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver05.java
+ * @compile/fail/ref=FailOver05.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver05.java
  */
 
 class Test extends Test {
--- a/langtools/test/tools/javac/failover/FailOver06.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver06.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver06.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver06.java
+ * @compile/fail/ref=FailOver06.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver06.java
  */
 
 class Test extends Test {
--- a/langtools/test/tools/javac/failover/FailOver07.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver07.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver07.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver07.java
+ * @compile/fail/ref=FailOver07.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver07.java
  */
 
 class Test extends Test {
--- a/langtools/test/tools/javac/failover/FailOver08.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver08.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver08.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver08.java
+ * @compile/fail/ref=FailOver08.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver08.java
  */
 
 class Test extends Test {
--- a/langtools/test/tools/javac/failover/FailOver09.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver09.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver09.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver09.java
+ * @compile/fail/ref=FailOver09.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver09.java
  */
 
 class Test extends Test {
--- a/langtools/test/tools/javac/failover/FailOver10.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver10.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver10.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver10.java
+ * @compile/fail/ref=FailOver10.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver10.java
  */
 
 class Test extends Test {
--- a/langtools/test/tools/javac/failover/FailOver11.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver11.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver11.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver11.java
+ * @compile/fail/ref=FailOver11.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver11.java
  */
 
 class Test extends Test {
--- a/langtools/test/tools/javac/failover/FailOver12.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver12.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver12.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver12.java
+ * @compile/fail/ref=FailOver12.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver12.java
  */
 
 class Test extends Test {
--- a/langtools/test/tools/javac/failover/FailOver13.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver13.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver13.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver13.java
+ * @compile/fail/ref=FailOver13.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver13.java
  */
 
 class Test extends Test {
--- a/langtools/test/tools/javac/failover/FailOver14.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver14.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Flow.java should be more error-friendly
  * @author mcimadamore
  *
- * @compile/fail/ref=FailOver14.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver14.java
+ * @compile/fail/ref=FailOver14.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver14.java
  */
 
 class Test extends Test  {
--- a/langtools/test/tools/javac/failover/FailOver15.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/failover/FailOver15.java	Wed Sep 14 11:22:39 2016 -0700
@@ -3,7 +3,7 @@
  * @bug 6970584 7060926
  * @summary Attr.PostAttrAnalyzer misses a case
  *
- * @compile/fail/ref=FailOver15.out -XDrawDiagnostics -Xshouldstop:at=FLOW -XDdev FailOver15.java
+ * @compile/fail/ref=FailOver15.out -XDrawDiagnostics --should-stop:at=FLOW -XDdev FailOver15.java
  */
 
 class Test {
--- a/langtools/test/tools/javac/generics/inference/8158355/T8158355.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/generics/inference/8158355/T8158355.java	Wed Sep 14 11:22:39 2016 -0700
@@ -27,7 +27,7 @@
  * @test
  * @bug 8158355
  * @summary Inference graph dot support broken
- * @compile -Xdebug:dumpInferenceGraphsTo=. T8158355.java
+ * @compile --debug:dumpInferenceGraphsTo=. T8158355.java
  */
 import java.util.List;
 
--- a/langtools/test/tools/javac/lambda/MostSpecific09.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/lambda/MostSpecific09.java	Wed Sep 14 11:22:39 2016 -0700
@@ -2,7 +2,7 @@
  * @test /nodynamiccopyright/
  * @bug 8029718
  * @summary Should always use lambda body structure to disambiguate overload resolution
- * @compile/fail/ref=MostSpecific09.out -XDrawDiagnostics -Xshouldstop:at=ATTR -Xdebug:verboseResolution=applicable,success MostSpecific09.java
+ * @compile/fail/ref=MostSpecific09.out -XDrawDiagnostics --should-stop:at=ATTR --debug:verboseResolution=applicable,success MostSpecific09.java
  */
 
 class MostSpecific09 {
--- a/langtools/test/tools/javac/lambda/MostSpecific09.out	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/lambda/MostSpecific09.out	Wed Sep 14 11:22:39 2016 -0700
@@ -3,7 +3,7 @@
 MostSpecific09.java:27:9: compiler.note.verbose.resolve.multi: foo, MostSpecific09, 0, BASIC, compiler.misc.type.none, compiler.misc.no.args,{(compiler.misc.applicable.method.found: 0, foo(MostSpecific09.J), null)}
 MostSpecific09.java:27:32: compiler.note.verbose.resolve.multi: println, java.io.PrintStream, 1, BASIC, java.lang.String, compiler.misc.no.args,{(compiler.misc.applicable.method.found: 0, println(java.lang.Object), null),(compiler.misc.applicable.method.found: 1, println(java.lang.String), null)}
 MostSpecific09.java:28:13: compiler.err.lambda.body.neither.value.nor.void.compatible
-MostSpecific09.java:28:9: compiler.err.cant.apply.symbols: kindname.method, foo, @681,{(compiler.misc.inapplicable.method: kindname.method, MostSpecific09, foo(MostSpecific09.I), (compiler.misc.no.conforming.assignment.exists: (compiler.misc.incompatible.ret.type.in.lambda: (compiler.misc.missing.ret.val: java.lang.String)))),(compiler.misc.inapplicable.method: kindname.method, MostSpecific09, foo(MostSpecific09.J), (compiler.misc.no.conforming.assignment.exists: (compiler.misc.unexpected.ret.val)))}
+MostSpecific09.java:28:9: compiler.err.cant.apply.symbols: kindname.method, foo, @682,{(compiler.misc.inapplicable.method: kindname.method, MostSpecific09, foo(MostSpecific09.I), (compiler.misc.no.conforming.assignment.exists: (compiler.misc.incompatible.ret.type.in.lambda: (compiler.misc.missing.ret.val: java.lang.String)))),(compiler.misc.inapplicable.method: kindname.method, MostSpecific09, foo(MostSpecific09.J), (compiler.misc.no.conforming.assignment.exists: (compiler.misc.unexpected.ret.val)))}
 MostSpecific09.java:28:43: compiler.note.verbose.resolve.multi: println, java.io.PrintStream, 1, BASIC, java.lang.String, compiler.misc.no.args,{(compiler.misc.applicable.method.found: 0, println(java.lang.Object), null),(compiler.misc.applicable.method.found: 1, println(java.lang.String), null)}
 MostSpecific09.java:29:9: compiler.err.ref.ambiguous: foo, kindname.method, foo(MostSpecific09.I), MostSpecific09, kindname.method, foo(MostSpecific09.J), MostSpecific09
 MostSpecific09.java:29:28: compiler.note.verbose.resolve.multi: <init>, java.lang.RuntimeException, 0, BASIC, compiler.misc.no.args, compiler.misc.no.args,{(compiler.misc.applicable.method.found: 0, java.lang.RuntimeException(), null)}
@@ -11,7 +11,7 @@
 MostSpecific09.java:32:9: compiler.err.ref.ambiguous: foo, kindname.method, foo(MostSpecific09.I), MostSpecific09, kindname.method, foo(MostSpecific09.J), MostSpecific09
 MostSpecific09.java:33:9: compiler.note.verbose.resolve.multi: foo, MostSpecific09, 0, BASIC, compiler.misc.type.none, compiler.misc.no.args,{(compiler.misc.applicable.method.found: 0, foo(MostSpecific09.I), null)}
 MostSpecific09.java:42:13: compiler.err.lambda.body.neither.value.nor.void.compatible
-MostSpecific09.java:42:9: compiler.err.cant.apply.symbols: kindname.method, foo, @1130,{(compiler.misc.inapplicable.method: kindname.method, MostSpecific09, foo(MostSpecific09.I), (compiler.misc.no.conforming.assignment.exists: (compiler.misc.incompatible.ret.type.in.lambda: (compiler.misc.missing.ret.val: java.lang.String)))),(compiler.misc.inapplicable.method: kindname.method, MostSpecific09, foo(MostSpecific09.J), (compiler.misc.no.conforming.assignment.exists: (compiler.misc.unexpected.ret.val)))}
+MostSpecific09.java:42:9: compiler.err.cant.apply.symbols: kindname.method, foo, @1131,{(compiler.misc.inapplicable.method: kindname.method, MostSpecific09, foo(MostSpecific09.I), (compiler.misc.no.conforming.assignment.exists: (compiler.misc.incompatible.ret.type.in.lambda: (compiler.misc.missing.ret.val: java.lang.String)))),(compiler.misc.inapplicable.method: kindname.method, MostSpecific09, foo(MostSpecific09.J), (compiler.misc.no.conforming.assignment.exists: (compiler.misc.unexpected.ret.val)))}
 MostSpecific09.java:46:23: compiler.note.verbose.resolve.multi: println, java.io.PrintStream, 1, BASIC, java.lang.String, compiler.misc.no.args,{(compiler.misc.applicable.method.found: 0, println(java.lang.Object), null),(compiler.misc.applicable.method.found: 1, println(java.lang.String), null)}
 MostSpecific09.java:49:9: compiler.note.verbose.resolve.multi: foo, MostSpecific09, 0, BASIC, compiler.misc.type.none, compiler.misc.no.args,{(compiler.misc.applicable.method.found: 0, foo(MostSpecific09.J), null)}
 MostSpecific09.java:56:25: compiler.note.verbose.resolve.multi: <init>, Bar, 0, BASIC, compiler.misc.no.args, compiler.misc.no.args,{(compiler.misc.applicable.method.found: 0, Bar(), null)}
--- a/langtools/test/tools/javac/lambda/TestLambdaToMethodStats.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/lambda/TestLambdaToMethodStats.java	Wed Sep 14 11:22:39 2016 -0700
@@ -122,7 +122,7 @@
     @Override
     public void doWork() throws IOException {
         check(newCompilationTask()
-                .withOption("-Xdebug:dumpLambdaToMethodStats")
+                .withOption("--debug:dumpLambdaToMethodStats")
                 .withSourceFromTemplate(template)
                 .generate());
     }
--- a/langtools/test/tools/javac/lambda/XDdumpLambdaToMethodStats.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/lambda/XDdumpLambdaToMethodStats.java	Wed Sep 14 11:22:39 2016 -0700
@@ -25,7 +25,7 @@
  * @test
  * @bug 8143217
  * @summary javac throws NPE when printing diagnostics for Lambda expressions
- * @compile XDdumpLambdaToMethodStats.java -Xdebug:dumpLambdaToMethodStats
+ * @compile XDdumpLambdaToMethodStats.java --debug:dumpLambdaToMethodStats
  *
  */
 
--- a/langtools/test/tools/javac/lambda/bridge/TestMetafactoryBridges.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/lambda/bridge/TestMetafactoryBridges.java	Wed Sep 14 11:22:39 2016 -0700
@@ -274,7 +274,7 @@
             sourcefiles.add(new JavaSource(ck));
         }
         JavacTask ct = (JavacTask)tool.getTask(debugWriter, null, diagChecker,
-                    Arrays.asList("-Xdebug:dumpLambdaToMethodStats", "-d", outDir.getAbsolutePath(),
+                    Arrays.asList("--debug:dumpLambdaToMethodStats", "-d", outDir.getAbsolutePath(),
                                   "-sourcepath", srcDir.getAbsolutePath(),
                                   "-classpath", classesDir.getAbsolutePath(),
                                   pp.preferOpt), null, sourcefiles);
--- a/langtools/test/tools/javac/lambda/mostSpecific/StructuralMostSpecificTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/lambda/mostSpecific/StructuralMostSpecificTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -210,7 +210,7 @@
     public void doWork() throws Throwable {
         check(newCompilationTask()
                 .withSourceFromTemplate(sourceTemplate)
-                .withOption("-Xdebug:verboseResolution=all,-predef,-internal,-object-init")
+                .withOption("--debug:verboseResolution=all,-predef,-internal,-object-init")
                 .analyze());
     }
 
--- a/langtools/test/tools/javac/missingSuperRecovery/MissingSuperRecovery.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/missingSuperRecovery/MissingSuperRecovery.java	Wed Sep 14 11:22:39 2016 -0700
@@ -5,7 +5,7 @@
  * class is no longer available during a subsequent compilation.
  * @author maddox
  * @build impl
- * @compile/fail/ref=MissingSuperRecovery.out -diags:layout=%b:%l:%_%m MissingSuperRecovery.java
+ * @compile/fail/ref=MissingSuperRecovery.out --diags:layout=%b:%l:%_%m MissingSuperRecovery.java
  */
 
 // Requires "golden" class file 'impl.class', which contains
--- a/langtools/test/tools/javac/modules/AddLimitMods.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/modules/AddLimitMods.java	Wed Sep 14 11:22:39 2016 -0700
@@ -119,7 +119,7 @@
         //real test
         new JavacTask(tb)
                 .options("--module-path", modulePath.toString(),
-                         "-Xshouldstop:ifNoError=FLOW",
+                         "--should-stop:ifNoError=FLOW",
                          "--limit-modules", "java.base")
                 .outdir(modulePath)
                 .files(findJavaFiles(m1))
@@ -128,7 +128,7 @@
 
         new JavacTask(tb)
                 .options("--module-path", modulePath.toString(),
-                         "-Xshouldstop:ifNoError=FLOW",
+                         "--should-stop:ifNoError=FLOW",
                          "--limit-modules", "java.base",
                          "--add-modules", "m2")
                 .outdir(modulePath)
@@ -138,7 +138,7 @@
 
         new JavacTask(tb)
                 .options("--module-path", modulePath.toString(),
-                         "-Xshouldstop:ifNoError=FLOW",
+                         "--should-stop:ifNoError=FLOW",
                          "--limit-modules", "java.base",
                          "--add-modules", "m2,m3")
                 .outdir(modulePath)
@@ -148,7 +148,7 @@
 
         new JavacTask(tb)
                 .options("--module-path", modulePath.toString(),
-                         "-Xshouldstop:ifNoError=FLOW",
+                         "--should-stop:ifNoError=FLOW",
                          "--limit-modules", "m2")
                 .outdir(modulePath)
                 .files(findJavaFiles(m1))
@@ -157,7 +157,7 @@
 
         new JavacTask(tb)
                 .options("--module-path", modulePath.toString(),
-                         "-Xshouldstop:ifNoError=FLOW",
+                         "--should-stop:ifNoError=FLOW",
                          "--limit-modules", "m3")
                 .outdir(modulePath)
                 .files(findJavaFiles(m1))
@@ -166,7 +166,7 @@
 
         new JavacTask(tb)
                 .options("--module-path", modulePath.toString(),
-                         "-Xshouldstop:ifNoError=FLOW",
+                         "--should-stop:ifNoError=FLOW",
                          "--limit-modules", "m3",
                          "--add-modules", "m2")
                 .outdir(modulePath)
@@ -473,7 +473,7 @@
                                            auxOptions,
                                            "--module-path", modulePath.toString(),
                                            "--class-path", classpathOut.toString(),
-                                           "-Xshouldstop:ifNoError=FLOW"))
+                                           "--should-stop:ifNoError=FLOW"))
                    .outdir(modulePath)
                    .files(findJavaFiles(m2))
                    .run(success ? Task.Expect.SUCCESS : Task.Expect.FAIL)
--- a/langtools/test/tools/javac/policy/test3/Test.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/policy/test3/Test.java	Wed Sep 14 11:22:39 2016 -0700
@@ -30,7 +30,7 @@
 import java.io.*;
 import java.util.*;
 
-// Simple test of -Xshouldstop:at.
+// Simple test of --should-stop:at.
 // For each of the permissable values, we compile a file with an error in it,
 // then using -XDverboseCompilePolicy we check that the compilation gets as
 // far as expected, but no further.
@@ -83,7 +83,7 @@
         args.add("-d");
         args.add(".");
         if (ssp.needOption)
-            args.add("-Xshouldstop:at=" + ssp);
+            args.add("--should-stop:at=" + ssp);
         args.add(new File(System.getProperty("test.src", "."), "A.java").getPath());
 
         StringWriter sw = new StringWriter();
--- a/langtools/test/tools/javac/positions/TreeEndPosTest.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/positions/TreeEndPosTest.java	Wed Sep 14 11:22:39 2016 -0700
@@ -145,7 +145,7 @@
             options.add(tempDir.getPath());
             options.add("-d");
             options.add(tempDir.getPath());
-            options.add("-Xshouldstop:at=GENERATE");
+            options.add("--should-stop:at=GENERATE");
 
             List<JavaFileObject> sources = new ArrayList<>();
             sources.add(src);
--- a/langtools/test/tools/javac/protectedAccess/ProtectedMemberAccess2.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/protectedAccess/ProtectedMemberAccess2.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Verify correct implementation of JLS2e 6.6.2.1
  * @author maddox
  *
- * @compile/fail/ref=ProtectedMemberAccess2.out -diags:formatterOptions=-simpleNames;layout=%b:%l:%_%m ProtectedMemberAccess2.java
+ * @compile/fail/ref=ProtectedMemberAccess2.out --diags:formatterOptions=-simpleNames;layout=%b:%l:%_%m ProtectedMemberAccess2.java
  */
 
 // 71 errors expected.
--- a/langtools/test/tools/javac/protectedAccess/ProtectedMemberAccess3.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/protectedAccess/ProtectedMemberAccess3.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Verify correct implementation of JLS2e 6.6.2.1
  * @author maddox
  *
- * @compile/fail/ref=ProtectedMemberAccess3.out -diags:formatterOptions=-simpleNames;layout=%b:%l:%_%m ProtectedMemberAccess3.java
+ * @compile/fail/ref=ProtectedMemberAccess3.out --diags:formatterOptions=-simpleNames;layout=%b:%l:%_%m ProtectedMemberAccess3.java
  */
 
 // 46 errors expected.
--- a/langtools/test/tools/javac/protectedAccess/ProtectedMemberAccess4.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/protectedAccess/ProtectedMemberAccess4.java	Wed Sep 14 11:22:39 2016 -0700
@@ -4,7 +4,7 @@
  * @summary Verify correct implementation of JLS2e 6.6.2.1
  * @author maddox
  *
- * @compile/fail/ref=ProtectedMemberAccess4.out -diags:formatterOptions=-simpleNames;layout=%b:%l:%_%m ProtectedMemberAccess4.java
+ * @compile/fail/ref=ProtectedMemberAccess4.out --diags:formatterOptions=-simpleNames;layout=%b:%l:%_%m ProtectedMemberAccess4.java
  */
 
 // 33 errors expected.
--- a/langtools/test/tools/javac/resolve/ResolveHarness.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/resolve/ResolveHarness.java	Wed Sep 14 11:22:39 2016 -0700
@@ -132,8 +132,8 @@
 
     protected void check() throws Exception {
         String[] options = {
-            "-Xshouldstop:at=ATTR",
-            "-Xdebug:verboseResolution=success,failure,applicable,inapplicable,deferred-inference,predef"
+            "--should-stop:at=ATTR",
+            "--debug:verboseResolution=success,failure,applicable,inapplicable,deferred-inference,predef"
         };
 
         AbstractProcessor[] processors = { new ResolveCandidateFinder(), null };
--- a/langtools/test/tools/javac/unicode/UnicodeNewline.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/javac/unicode/UnicodeNewline.java	Wed Sep 14 11:22:39 2016 -0700
@@ -3,7 +3,7 @@
  * @bug 4739428 4785453
  * @summary when \u000a is used, diagnostics are reported on the wrong line.
  *
- * @compile/fail/ref=UnicodeNewline.out -diags:layout=%b:%l:%_%m UnicodeNewline.java
+ * @compile/fail/ref=UnicodeNewline.out --diags:layout=%b:%l:%_%m UnicodeNewline.java
  */
 
 class UnicodeNewline {
--- a/langtools/test/tools/sjavac/JavacOptionPrep.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/langtools/test/tools/sjavac/JavacOptionPrep.java	Wed Sep 14 11:22:39 2016 -0700
@@ -96,7 +96,7 @@
 
             // Ignore this option for now. When the file=... requirement goes
             // away, this will be easier to handle.
-            if (option.startsWith("-Xdebug:completionDeps"))
+            if (option.startsWith("--debug:completionDeps"))
                 continue;
 
             switch (option) {
--- a/make/CompileJavaModules.gmk	Sat Sep 10 12:18:34 2016 -0700
+++ b/make/CompileJavaModules.gmk	Wed Sep 14 11:22:39 2016 -0700
@@ -458,7 +458,7 @@
 jdk.localedata_COPY := _dict _th
 # Exclude BreakIterator classes that are just used in compile process to generate
 # data files and shouldn't go in the product
-jdk.localedata_EXCLUDE_FILES += sun/text/resources/th/BreakIteratorRules_th.java
+jdk.localedata_EXCLUDE_FILES += sun/text/resources/ext/BreakIteratorRules_th.java
 
 ################################################################################
 # Setup the compilation for the module
--- a/nashorn/.hgtags	Sat Sep 10 12:18:34 2016 -0700
+++ b/nashorn/.hgtags	Wed Sep 14 11:22:39 2016 -0700
@@ -368,3 +368,4 @@
 55a75af751dfe44039baef2b762ee7347021025b jdk-9+132
 3a924b820d02b108cf57b51e145b5150d1eedcca jdk-9+133
 e05400ba935753c77697af936db24657eb811022 jdk-9+134
+cb00d5ef023a18a66fcb4311ed4474d4145c66e9 jdk-9+135
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptFunction.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptFunction.java	Wed Sep 14 11:22:39 2016 -0700
@@ -1273,7 +1273,11 @@
         // a new zeroth element that is set to bindName value.
         final MethodType methodType = methodHandle.type();
         final int parameterCount = methodType.parameterCount();
-        final boolean isVarArg = parameterCount > 0 && methodType.parameterType(parameterCount - 1).isArray();
+
+        if (parameterCount < 2) {
+            return methodHandle; // method does not have enough parameters
+        }
+        final boolean isVarArg = methodType.parameterType(parameterCount - 1).isArray();
 
         if (isVarArg) {
             return MH.filterArguments(methodHandle, 1, MH.insertArguments(ADD_ZEROTH_ELEMENT, 1, bindName));
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java	Wed Sep 14 11:22:39 2016 -0700
@@ -2172,6 +2172,21 @@
         return switchPoints.toArray(new SwitchPoint[0]);
     }
 
+    // Similar to getProtoSwitchPoints method above, but used for additional prototype switchpoints of
+    // properties that are known not to exist, e.g. the original property name in a __noSuchProperty__ invocation.
+    private SwitchPoint getProtoSwitchPoint(final String name) {
+        if (getProto() == null) {
+            return null;
+        }
+
+        for (ScriptObject obj = this; obj.getProto() != null; obj = obj.getProto()) {
+            final ScriptObject parent = obj.getProto();
+            parent.getMap().addListener(name, obj.getMap());
+        }
+
+        return getMap().getSwitchPoint(name);
+    }
+
     private void checkSharedProtoMap() {
         // Check if our map has an expected shared prototype property map. If it has, make sure that
         // the prototype map has not been invalidated, and that it does match the actual map of the prototype.
@@ -2343,7 +2358,9 @@
         final boolean      scopeCall = isScope() && NashornCallSiteDescriptor.isScope(desc);
 
         if (find == null) {
-            return noSuchProperty(desc, request);
+            return noSuchProperty(desc, request)
+                    // Add proto switchpoint to switch from no-such-property to no-such-method if it is ever defined.
+                    .addSwitchPoint(getProtoSwitchPoint(NO_SUCH_METHOD_NAME));
         }
 
         final boolean explicitInstanceOfCheck = explicitInstanceOfCheck(desc, request);
@@ -2366,7 +2383,9 @@
                         Object.class),
                 NashornGuards.combineGuards(
                         NashornGuards.getIdentityGuard(this),
-                        NashornGuards.getMapGuard(getMap(), true)));
+                        NashornGuards.getMapGuard(getMap(), true)))
+                // Add a protoype switchpoint for the original name so this gets invalidated if it is ever defined.
+                .addSwitchPoint(getProtoSwitchPoint(name));
     }
 
     /**
@@ -2412,7 +2431,9 @@
                                 func),
                         getProtoSwitchPoints(NO_SUCH_PROPERTY_NAME, find.getOwner()),
                         //TODO this doesn't need a ClassCastException as guard always checks script object
-                        null);
+                        null)
+                        // Add a protoype switchpoint for the original name so this gets invalidated if it is ever defined.
+                        .addSwitchPoint(getProtoSwitchPoint(name));
             }
         }
 
--- a/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/SharedPropertyMap.java	Sat Sep 10 12:18:34 2016 -0700
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/SharedPropertyMap.java	Wed Sep 14 11:22:39 2016 -0700
@@ -29,7 +29,7 @@
 
 /**
  * This class represents a property map that can be shared among multiple prototype objects, allowing all inheriting
- * top-level objects to also share one property map. This is class is only used for prototype objects, the
+ * top-level objects to also share one property map. This class is only used for prototype objects, the
  * top-level objects use ordinary {@link PropertyMap}s with the {@link PropertyMap#sharedProtoMap} field
  * set to the expected shared prototype map.
  *
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/test/script/basic/JDK-8077149.js	Wed Sep 14 11:22:39 2016 -0700
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2016, 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.
+ */
+
+/**
+ * JDK-8077149: __noSuchProperty__ and __noSuchMethod__ invocations are not properly guarded
+ *
+ * @test
+ * @run
+ */
+
+var o = {};
+
+function invoke() {
+    return o._();
+}
+
+Object.prototype.__noSuchProperty__ = function() {
+    return function() { return "no such property" };
+};
+
+Assert.assertEquals(invoke(), "no such property");
+
+Object.prototype.__noSuchMethod__ = function() {
+    return "no such method";
+};
+
+Assert.assertEquals(invoke(), "no such method");
+
+Object.prototype._ = function() {
+    return "underscore method";
+};
+
+Assert.assertEquals(invoke(), "underscore method");