--- a/.hgtags Thu Sep 15 16:56:11 2016 -0400
+++ b/.hgtags Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/.hgtags-top-repo Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/corba/.hgtags Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/hotspot/.hgtags Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/.hgtags Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/src/java.xml/share/classes/javax/xml/datatype/XMLGregorianCalendar.java Fri Sep 16 13:15:02 2016 -0700
@@ -1072,4 +1072,3 @@
@Override
public abstract Object clone();
}
-
--- a/jaxp/src/java.xml/share/classes/module-info.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/src/java.xml/share/classes/module-info.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/src/jdk.xml.dom/share/classes/module-info.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/DurationTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/FactoryNewInstanceTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -77,4 +77,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/XMLGregorianCalendarTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/XMLGregorianCalendarTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DBFNamespaceTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -105,5 +105,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -531,5 +531,3 @@
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderImpl01.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderImpl01.java Fri Sep 16 13:15:02 2016 -0700
@@ -157,5 +157,3 @@
return null;
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -86,5 +86,3 @@
DocumentBuilderFactory.newInstance();
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXFactoryNewInstanceTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXFactoryNewInstanceTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -78,5 +78,3 @@
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -502,5 +502,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest02.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest02.java Fri Sep 16 13:15:02 2016 -0700
@@ -269,5 +269,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest03.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest03.java Fri Sep 16 13:15:02 2016 -0700
@@ -116,5 +116,3 @@
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLEventFactoryNewInstanceTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLEventFactoryNewInstanceTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -82,4 +82,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLInputFactoryNewInstanceTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLInputFactoryNewInstanceTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -82,4 +82,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/Bug6384418Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/Bug6384418Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -67,5 +67,3 @@
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/DOMResultTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/DOMResultTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -118,5 +118,3 @@
writeNodes(kids.item(i), bWriter);
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/ErrorListenerTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/ErrorListenerTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -104,5 +104,3 @@
this.status = ListenerStatus.FATAL;
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXSourceTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXSourceTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -105,5 +105,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXTFactoryTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXTFactoryTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -431,5 +431,3 @@
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/StreamResultTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/StreamResultTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -106,5 +106,3 @@
});
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TfClearParamTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TfClearParamTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -384,5 +384,3 @@
private Document xmlDoc;
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerExcpTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerExcpTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -105,5 +105,3 @@
assertNotNull(te.initCause(null));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -141,5 +141,3 @@
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -207,5 +207,3 @@
System.out.println(" In fatal");
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest02.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest02.java Fri Sep 16 13:15:02 2016 -0700
@@ -85,5 +85,3 @@
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest03.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest03.java Fri Sep 16 13:15:02 2016 -0700
@@ -94,5 +94,3 @@
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/URIResolverTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/URIResolverTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -262,5 +262,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/othervm/TFCErrorTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/othervm/TFCErrorTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -54,5 +54,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/TypeInfoProviderTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -95,4 +95,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorHandlerTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorHandlerTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -148,4 +148,3 @@
private Schema schema;
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -209,4 +209,3 @@
private Document xmlDoc;
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathExpressionTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathExpressionTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -491,5 +491,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFunctionResolverTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -757,5 +757,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/AttrTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/AttrTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -151,4 +151,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/CommentTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/CommentTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -48,4 +48,3 @@
return document.createComment(text);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -175,4 +175,3 @@
doc.createElement("!nc$%^*(!");
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTypeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTypeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -92,4 +92,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DomImplementationTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DomImplementationTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -129,4 +129,3 @@
assertEquals(documentType.getName(), name);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/ElementTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/ElementTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -255,4 +255,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/EntityChildTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/EntityChildTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -61,4 +61,3 @@
assertEquals(nl.getLength(), 3);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NamedNodeMapTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NamedNodeMapTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -121,4 +121,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeListTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeListTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -64,4 +64,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -211,4 +211,3 @@
transformer.transform(domSource, streamResult);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NotationTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NotationTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -74,4 +74,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/PITest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/PITest.java Fri Sep 16 13:15:02 2016 -0700
@@ -54,4 +54,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TextTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TextTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -74,4 +74,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TypeInfoTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TypeInfoTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -140,4 +140,3 @@
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttrImplTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttrImplTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -202,5 +202,3 @@
attr.removeAttribute(1);
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesNSTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesNSTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -74,5 +74,3 @@
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -76,5 +76,3 @@
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ContentHandlerTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ContentHandlerTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -264,5 +264,3 @@
bWriter.close();
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/DefaultHandlerTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/DefaultHandlerTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -272,5 +272,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/EHFatalTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/EHFatalTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -135,5 +135,3 @@
bWriter.close();
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSSupportTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSSupportTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -131,5 +131,3 @@
assertNull(support.getURI(DC_PREFIX));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSTableTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSTableTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -168,5 +168,3 @@
assertFalse(spf.getFeature(NAMESPACE_PREFIXES));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ParserAdapterTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ParserAdapterTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -265,5 +265,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ResolverTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ResolverTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -143,5 +143,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/SAXParserNSTableTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/SAXParserNSTableTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -107,5 +107,3 @@
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterCBTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterCBTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -285,5 +285,3 @@
bWriter.close();
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -246,5 +246,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderAdapterTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderAdapterTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -112,5 +112,3 @@
}
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderFactoryTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderFactoryTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderNSTableTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -131,5 +131,3 @@
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -671,5 +671,3 @@
public void internalEntityDecl(String name, String value) {
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/AstroTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/AstroTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -145,4 +145,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -182,4 +182,3 @@
return dbf.newDocumentBuilder();
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/NamespaceContextTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/NamespaceContextTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -89,4 +89,3 @@
assertEquals(QName.valueOf(qname.toString()), qname);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/SAX201Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/SAX201Test.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/SchemaValidationTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -76,4 +76,3 @@
return spf.newSAXParser();
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/XPathAPITest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/XPathAPITest.java Fri Sep 16 13:15:02 2016 -0700
@@ -171,4 +171,3 @@
return new InputSource(filenameToURL(ASTROCAT));
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionController.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionController.java Fri Sep 16 13:15:02 2016 -0700
@@ -366,5 +366,3 @@
assertTrue(roletypeInfo.getTypeNamespace().equals(PORTAL_ACCOUNT_NS));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionItemRepository.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionItemRepository.java Fri Sep 16 13:15:02 2016 -0700
@@ -371,5 +371,3 @@
assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/UserController.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/UserController.java Fri Sep 16 13:15:02 2016 -0700
@@ -304,5 +304,3 @@
assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
}
-
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4511326.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4511326.java Fri Sep 16 13:15:02 2016 -0700
@@ -64,4 +64,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4512806.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4512806.java Fri Sep 16 13:15:02 2016 -0700
@@ -90,4 +90,3 @@
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515047.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515047.java Fri Sep 16 13:15:02 2016 -0700
@@ -62,4 +62,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515660.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515660.java Fri Sep 16 13:15:02 2016 -0700
@@ -128,4 +128,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4693341.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4693341.java Fri Sep 16 13:15:02 2016 -0700
@@ -81,4 +81,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4848653.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4848653.java Fri Sep 16 13:15:02 2016 -0700
@@ -81,4 +81,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4858685.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4858685.java Fri Sep 16 13:15:02 2016 -0700
@@ -247,4 +247,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/test/module-info.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/test/module-info.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider1/module-info.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider2/module-info.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Bug6350682.java Fri Sep 16 13:15:02 2016 -0700
@@ -75,4 +75,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Bug6723276Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Bug6723276Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -68,4 +68,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Bug6941169Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Bug6941169Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -486,4 +486,3 @@
return document;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Bug7143711Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Bug7143711Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -114,4 +114,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Sources.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Sources.java Fri Sep 16 13:15:02 2016 -0700
@@ -213,4 +213,3 @@
return r;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/common/TestSAXDriver.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/TestSAXDriver.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/TransformationWarningsTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/ValidationWarningsTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6320118.java Fri Sep 16 13:15:02 2016 -0700
@@ -108,4 +108,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937951Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937951Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -57,4 +57,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937964Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937964Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -270,4 +270,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug7042647Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug7042647Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -60,4 +60,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/DatatypeFactoryTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/DatatypeFactoryTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -640,4 +640,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/DurationTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/DurationTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -484,4 +484,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/FactoryFindTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/FactoryFindTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -76,4 +76,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/JDK8068839Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/JDK8068839Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -51,4 +51,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/XMLGregorianCalendarTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/XMLGregorianCalendarTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -228,4 +228,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915524.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915524.java Fri Sep 16 13:15:02 2016 -0700
@@ -81,4 +81,3 @@
return docBuilder.parse(source);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915748.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915748.java Fri Sep 16 13:15:02 2016 -0700
@@ -74,4 +74,3 @@
Assert.assertTrue(hadError[0]);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966082.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966082.java Fri Sep 16 13:15:02 2016 -0700
@@ -53,4 +53,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966138.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966138.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966142.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966143.java Fri Sep 16 13:15:02 2016 -0700
@@ -66,4 +66,3 @@
Assert.assertTrue(type.isDerivedFrom("testNS", "Test", 0));
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6339023.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6339023.java Fri Sep 16 13:15:02 2016 -0700
@@ -139,4 +139,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6355326.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6355326.java Fri Sep 16 13:15:02 2016 -0700
@@ -118,4 +118,3 @@
return p;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6367542.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6367542.java Fri Sep 16 13:15:02 2016 -0700
@@ -52,4 +52,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6520131.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6520131.java Fri Sep 16 13:15:02 2016 -0700
@@ -83,4 +83,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6521260.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6521260.java Fri Sep 16 13:15:02 2016 -0700
@@ -77,4 +77,3 @@
Assert.assertEquals(systemId, systemId2);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6582545Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6582545Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -123,4 +123,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6879614Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6879614Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -78,4 +78,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6333993Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6333993Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -88,4 +88,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517707Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517707Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -128,4 +128,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517717Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517717Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -86,4 +86,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6909336Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6909336Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -72,4 +72,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/DOMConfigurationTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/DOMConfigurationTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1628,4 +1628,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/DOMXPathTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/DOMXPathTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -54,4 +54,3 @@
Assert.assertEquals(domImpl.getFeature("+XPath", "3.0"), null);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ElementTraversal.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ElementTraversal.java Fri Sep 16 13:15:02 2016 -0700
@@ -135,4 +135,3 @@
return doc;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/JdkXmlDomTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/JdkXmlDomTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -46,4 +46,3 @@
Assert.assertTrue(runWithAllPerm(() -> cls.getClassLoader()) != null);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/TCKEncodingTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/TCKEncodingTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -102,4 +102,3 @@
System.out.println("OK");
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug4973153.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug4973153.java Fri Sep 16 13:15:02 2016 -0700
@@ -204,4 +204,3 @@
return true;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6290947.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6290947.java Fri Sep 16 13:15:02 2016 -0700
@@ -147,4 +147,3 @@
return src;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6354955.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6354955.java Fri Sep 16 13:15:02 2016 -0700
@@ -142,4 +142,3 @@
return documentBuilder.newDocument();
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6376823.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6376823.java Fri Sep 16 13:15:02 2016 -0700
@@ -121,4 +121,3 @@
return src;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6710741Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6710741Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -80,4 +80,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTCKTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTCKTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -584,4 +584,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -109,4 +109,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSSerializerTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSSerializerTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4674384_MAX_OCCURS_Test.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4934208.java Fri Sep 16 13:15:02 2016 -0700
@@ -74,4 +74,3 @@
r.parse(is);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4967002.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4967002.java Fri Sep 16 13:15:02 2016 -0700
@@ -101,4 +101,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4985486.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4985486.java Fri Sep 16 13:15:02 2016 -0700
@@ -68,4 +68,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991020.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991020.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991946.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5010072.java Fri Sep 16 13:15:02 2016 -0700
@@ -77,4 +77,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5025825.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5025825.java Fri Sep 16 13:15:02 2016 -0700
@@ -89,4 +89,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6309988.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6309988.java Fri Sep 16 13:15:02 2016 -0700
@@ -370,4 +370,3 @@
return System.getSecurityManager() != null;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java Fri Sep 16 13:15:02 2016 -0700
@@ -83,4 +83,3 @@
System.out.println("OK.");
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6361283.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6361283.java Fri Sep 16 13:15:02 2016 -0700
@@ -56,4 +56,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6506304Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6506304Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -71,4 +71,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6518733.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6518733.java Fri Sep 16 13:15:02 2016 -0700
@@ -67,4 +67,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6564400.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6564400.java Fri Sep 16 13:15:02 2016 -0700
@@ -180,4 +180,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786.java Fri Sep 16 13:15:02 2016 -0700
@@ -73,4 +73,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786ErrorHandler.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786ErrorHandler.java Fri Sep 16 13:15:02 2016 -0700
@@ -45,4 +45,3 @@
System.out.println(e.getMessage());
} // warning ()
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6594813.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6594813.java Fri Sep 16 13:15:02 2016 -0700
@@ -175,4 +175,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6608841.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6608841.java Fri Sep 16 13:15:02 2016 -0700
@@ -59,4 +59,3 @@
public class MyHandler extends DefaultHandler {
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6690015.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6690015.java Fri Sep 16 13:15:02 2016 -0700
@@ -87,4 +87,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6760982.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6760982.java Fri Sep 16 13:15:02 2016 -0700
@@ -168,4 +168,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6849942Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6849942Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -81,4 +81,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7157608Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7157608Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -218,4 +218,3 @@
boolean validating = false;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7166896Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7166896Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -80,4 +80,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -93,4 +93,3 @@
}, new FilePermission(getSystemProperty("test.classes") + "/-", "read,write"));
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147TestClass.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147TestClass.java Fri Sep 16 13:15:02 2016 -0700
@@ -32,4 +32,3 @@
public void doSomething(double d, ArrayList<Integer> list) {
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8073385.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8073385.java Fri Sep 16 13:15:02 2016 -0700
@@ -100,4 +100,3 @@
assertTrue(exceptionText.contains("Unicode: " + hexString));
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/FactoryFindTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/FactoryFindTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -75,4 +75,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/MyDefaultHandler.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/MyDefaultHandler.java Fri Sep 16 13:15:02 2016 -0700
@@ -45,4 +45,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/MyErrorHandler.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/MyErrorHandler.java Fri Sep 16 13:15:02 2016 -0700
@@ -53,4 +53,3 @@
errorOccured = true;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/ParseEmptyStream.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/ParseEmptyStream.java Fri Sep 16 13:15:02 2016 -0700
@@ -92,4 +92,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/SupplementaryChars.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/SupplementaryChars.java Fri Sep 16 13:15:02 2016 -0700
@@ -71,4 +71,3 @@
return parser;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/xinclude/Bug6794483Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/xinclude/Bug6794483Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -107,4 +107,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Attributes2ImplTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Attributes2ImplTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6889654Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -87,4 +87,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6925410Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6925410Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -60,4 +60,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6949607Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6949607Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -81,4 +81,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6992561Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6992561Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -86,4 +86,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug7057778Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug7057778Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -199,4 +199,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/DefaultHandler2Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/DefaultHandler2Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -251,4 +251,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/IssueTracker56Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/IssueTracker56Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -142,4 +142,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/MyDefaultHandler2.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/MyDefaultHandler2.java Fri Sep 16 13:15:02 2016 -0700
@@ -198,4 +198,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/NSSupportTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/NSSupportTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -232,4 +232,3 @@
Assert.assertNull(nssupport.getURI(""));
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/SAXExceptionExt.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/SAXExceptionExt.java Fri Sep 16 13:15:02 2016 -0700
@@ -38,4 +38,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/XMLReaderTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/XMLReaderTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -70,4 +70,3 @@
XMLReaderAdapter adapter = new XMLReaderAdapter();
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/AttributeLocalNameTest/AttributeLocalNameTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/AttributeLocalNameTest/AttributeLocalNameTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -66,4 +66,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6370703.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6370703.java Fri Sep 16 13:15:02 2016 -0700
@@ -69,4 +69,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6378422.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6378422.java Fri Sep 16 13:15:02 2016 -0700
@@ -51,4 +51,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6380870.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6380870.java Fri Sep 16 13:15:02 2016 -0700
@@ -58,4 +58,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6489502.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6489502.java Fri Sep 16 13:15:02 2016 -0700
@@ -83,4 +83,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6509774.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6509774.java Fri Sep 16 13:15:02 2016 -0700
@@ -174,4 +174,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6688002Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6688002Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -113,4 +113,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6976938Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6976938Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -100,4 +100,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/CoalesceTest/CoalesceTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/CoalesceTest/CoalesceTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -110,4 +110,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EntitiesTest/EntityTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EntitiesTest/EntityTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -179,4 +179,3 @@
return true;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventReaderDelegateTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventReaderDelegateTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -231,4 +231,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue41Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue41Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -178,4 +178,3 @@
System.out.println(sw.toString());
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue48Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue48Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -115,4 +115,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue53Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue53Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -71,4 +71,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue58Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue58Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -84,4 +84,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/FactoryFindTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/FactoryFindTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -151,4 +151,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/IgnoreExternalDTDTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/IgnoreExternalDTDTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -77,4 +77,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/ProcessingInstructionTest/ProcessingInstructionTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/ProcessingInstructionTest/ProcessingInstructionTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -67,4 +67,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/StreamReaderDelegateTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/StreamReaderDelegateTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -383,4 +383,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventLocationTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventLocationTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -82,4 +82,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6489890.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6489890.java Fri Sep 16 13:15:02 2016 -0700
@@ -77,4 +77,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6555001.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6555001.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6586466Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -66,4 +66,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6613059Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6613059Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -89,4 +89,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6668115Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6668115Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -100,4 +100,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6846133Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6846133Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -83,4 +83,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug8153781.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug8153781.java Fri Sep 16 13:15:02 2016 -0700
@@ -94,4 +94,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Issue40Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Issue40Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -100,4 +100,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/ReaderToWriterTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/ReaderToWriterTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -214,4 +214,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/XMLEventWriterTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/XMLEventWriterTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -156,4 +156,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6756677Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6756677Test.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6909759Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -66,4 +66,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/IssueTracker38.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/IssueTracker38.java Fri Sep 16 13:15:02 2016 -0700
@@ -92,4 +92,3 @@
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/MyInputFactory.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/MyInputFactory.java Fri Sep 16 13:15:02 2016 -0700
@@ -158,4 +158,3 @@
throw new UnsupportedOperationException("Not supported yet.");
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/Bug6846132Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/Bug6846132Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -89,4 +89,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/DuplicateNSDeclarationTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/DuplicateNSDeclarationTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -83,4 +83,3 @@
Assert.assertEquals(EXPECTED_OUTPUT, buffer.toString());
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/StreamResultTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/StreamResultTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -162,4 +162,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLResolverTest/XMLResolverTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLResolverTest/XMLResolverTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -96,4 +96,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamExceptionTest/ExceptionTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamExceptionTest/ExceptionTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -53,4 +53,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481615.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481615.java Fri Sep 16 13:15:02 2016 -0700
@@ -68,4 +68,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481678.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481678.java Fri Sep 16 13:15:02 2016 -0700
@@ -225,4 +225,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -145,4 +145,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTypeFilter.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTypeFilter.java Fri Sep 16 13:15:02 2016 -0700
@@ -47,4 +47,3 @@
return types[r.getEventType()];
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BOMTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BOMTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -67,4 +67,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6388460.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6388460.java Fri Sep 16 13:15:02 2016 -0700
@@ -76,4 +76,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6472982Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6472982Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -79,4 +79,3 @@
return sbuffer.toString();
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6767322Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6767322Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -76,4 +76,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6847819Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6847819Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -69,4 +69,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BugTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BugTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -51,4 +51,3 @@
Assert.assertEquals(XMLStreamConstants.START_DOCUMENT, r.getEventType());
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DefaultAttributeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DefaultAttributeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -108,4 +108,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DoubleXmlnsTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DoubleXmlnsTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -118,4 +118,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IsValidatingTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IsValidatingTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -165,4 +165,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue44Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue44Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -59,4 +59,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue47Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue47Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -89,4 +89,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker24.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker24.java Fri Sep 16 13:15:02 2016 -0700
@@ -61,4 +61,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker35.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker35.java Fri Sep 16 13:15:02 2016 -0700
@@ -59,4 +59,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker70.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker70.java Fri Sep 16 13:15:02 2016 -0700
@@ -76,4 +76,3 @@
Assert.assertNotNull(value, "should have attribute value");
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req5Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req5Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -91,4 +91,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req8Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req8Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -69,4 +69,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/NamespaceTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/NamespaceTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -153,4 +153,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/StreamReaderTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/StreamReaderTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -62,4 +62,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/SupportDTDTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/SupportDTDTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -288,4 +288,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/VoiceXMLDTDTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/VoiceXMLDTDTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -58,4 +58,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/XML11Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/XML11Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -54,4 +54,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/AttributeEscapeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/AttributeEscapeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -103,4 +103,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6452107.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6452107.java Fri Sep 16 13:15:02 2016 -0700
@@ -64,4 +64,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6600882Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6600882Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -59,4 +59,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6675332Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6675332Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -164,4 +164,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug7037352Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug7037352Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -65,4 +65,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DOMUtil.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DOMUtil.java Fri Sep 16 13:15:02 2016 -0700
@@ -221,4 +221,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DomUtilTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DomUtilTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -124,4 +124,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EmptyElementTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EmptyElementTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -85,4 +85,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EncodingTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EncodingTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -110,4 +110,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NamespaceTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NamespaceTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1434,4 +1434,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NullUriDetectionTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NullUriDetectionTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -54,4 +54,3 @@
w.writeCharacters("---");
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SqeLinuxTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SqeLinuxTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -88,4 +88,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SurrogatesTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SurrogatesTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -175,4 +175,3 @@
};
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/UnprefixedNameTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/UnprefixedNameTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -125,4 +125,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/WriterTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/WriterTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -784,4 +784,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/XMLStreamWriterTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/XMLStreamWriterTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -73,4 +73,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4693341Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4693341Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -94,4 +94,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4892774.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4892774.java Fri Sep 16 13:15:02 2016 -0700
@@ -377,4 +377,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug5073477.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug5073477.java Fri Sep 16 13:15:02 2016 -0700
@@ -55,4 +55,3 @@
r.setNextSibling(r.getNode().getFirstChild());
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6175602.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6175602.java Fri Sep 16 13:15:02 2016 -0700
@@ -54,4 +54,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6206491.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6206491.java Fri Sep 16 13:15:02 2016 -0700
@@ -134,4 +134,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6216226Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6216226Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -69,4 +69,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6311448.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6311448.java Fri Sep 16 13:15:02 2016 -0700
@@ -85,4 +85,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6384805.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6384805.java Fri Sep 16 13:15:02 2016 -0700
@@ -94,4 +94,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6465722.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6465722.java Fri Sep 16 13:15:02 2016 -0700
@@ -72,4 +72,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6467808.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6467808.java Fri Sep 16 13:15:02 2016 -0700
@@ -76,4 +76,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490380.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490380.java Fri Sep 16 13:15:02 2016 -0700
@@ -61,4 +61,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490921.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490921.java Fri Sep 16 13:15:02 2016 -0700
@@ -145,4 +145,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6513892.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6513892.java Fri Sep 16 13:15:02 2016 -0700
@@ -77,4 +77,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6537167.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6537167.java Fri Sep 16 13:15:02 2016 -0700
@@ -85,4 +85,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6540545.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6540545.java Fri Sep 16 13:15:02 2016 -0700
@@ -64,4 +64,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6551616.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6551616.java Fri Sep 16 13:15:02 2016 -0700
@@ -68,4 +68,3 @@
// if it doesn't blow up, it succeeded.
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6559595.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6559595.java Fri Sep 16 13:15:02 2016 -0700
@@ -70,4 +70,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6565260.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6565260.java Fri Sep 16 13:15:02 2016 -0700
@@ -64,4 +64,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6940416.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6940416.java Fri Sep 16 13:15:02 2016 -0700
@@ -115,4 +115,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/BugDB12665704Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/BugDB12665704Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -157,4 +157,3 @@
return sb.toString();
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CLITest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CLITest.java Fri Sep 16 13:15:02 2016 -0700
@@ -50,4 +50,3 @@
}, new PropertyPermission("*", "read,write"));
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6401137Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6401137Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -94,4 +94,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6551600Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6551600Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -94,4 +94,3 @@
: new FilePermission("///tmp/test.xml", "read,write,delete"));
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6577667Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6577667Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -59,4 +59,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6652519Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6652519Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -79,4 +79,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6689809Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6689809Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -64,4 +64,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6905829Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6905829Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -65,4 +65,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6935697Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6935697Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -77,4 +77,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6941869Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6941869Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -76,4 +76,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6957215Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6957215Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -99,4 +99,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR7098746Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR7098746Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -90,4 +90,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/DOMResultTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/DOMResultTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -215,4 +215,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/DocumentExtFunc.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/DocumentExtFunc.java Fri Sep 16 13:15:02 2016 -0700
@@ -33,4 +33,3 @@
return "["+node.getNodeName() + ":" + node.getTextContent()+"]";
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/FactoryFindTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/FactoryFindTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -75,4 +75,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2204Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2204Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -67,4 +67,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2290Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2290Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -96,4 +96,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/OpenJDK100017Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/OpenJDK100017Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -66,4 +66,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/SAX2DOMTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/SAX2DOMTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -198,4 +198,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/SecureProcessingTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/SecureProcessingTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -135,4 +135,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/SourceTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/SourceTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -148,4 +148,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/StAXSourceTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/StAXSourceTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -129,4 +129,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/TemplatesTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/TemplatesTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -83,4 +83,3 @@
+ " contains($validAffectsRelClasses, @Class)]/@OBID)\"/>"
+ "</xsl:stylesheet>";
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerFactoryTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerFactoryTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -153,4 +153,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerUtilFactory.java Fri Sep 16 13:15:02 2016 -0700
@@ -56,4 +56,3 @@
return null;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/VersionDefaultHandler.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/VersionDefaultHandler.java Fri Sep 16 13:15:02 2016 -0700
@@ -62,4 +62,3 @@
return encoding;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/VersionEventWriter.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/VersionEventWriter.java Fri Sep 16 13:15:02 2016 -0700
@@ -82,4 +82,3 @@
return encoding;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/sax/Bug6451633.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/DOMUtil.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/SAXUtil.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/StAXUtil.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/StreamUtil.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/util/BOMInputStream.java Fri Sep 16 13:15:02 2016 -0700
@@ -78,4 +78,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/util/BaseStAXUT.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/util/BaseStAXUT.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/AnyElementTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -85,4 +85,3 @@
private Validator validator;
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966232.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966232.java Fri Sep 16 13:15:02 2016 -0700
@@ -75,4 +75,3 @@
Assert.assertNotNull(s);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966254.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966254.java Fri Sep 16 13:15:02 2016 -0700
@@ -78,4 +78,3 @@
return s;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969042.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969042.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969089.java Fri Sep 16 13:15:02 2016 -0700
@@ -76,4 +76,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969110.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969110.java Fri Sep 16 13:15:02 2016 -0700
@@ -79,4 +79,3 @@
validatorHandler.setProperty(name, "123");
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969689.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969689.java Fri Sep 16 13:15:02 2016 -0700
@@ -66,4 +66,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969692.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969692.java Fri Sep 16 13:15:02 2016 -0700
@@ -67,4 +67,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969693.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969693.java Fri Sep 16 13:15:02 2016 -0700
@@ -67,4 +67,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969695.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969695.java Fri Sep 16 13:15:02 2016 -0700
@@ -65,4 +65,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969732.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969732.java Fri Sep 16 13:15:02 2016 -0700
@@ -112,4 +112,3 @@
parse(xmlReader, XML);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970380.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970380.java Fri Sep 16 13:15:02 2016 -0700
@@ -62,4 +62,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970383.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970383.java Fri Sep 16 13:15:02 2016 -0700
@@ -53,4 +53,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970400.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970400.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970402.java Fri Sep 16 13:15:02 2016 -0700
@@ -123,4 +123,3 @@
parse(xmlReader, XML);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970951.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970951.java Fri Sep 16 13:15:02 2016 -0700
@@ -126,4 +126,3 @@
parse(xmlReader, XML);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971605.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971605.java Fri Sep 16 13:15:02 2016 -0700
@@ -66,4 +66,3 @@
Assert.assertNotNull(schema, "Failed: newSchema returned null.");
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971607.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971607.java Fri Sep 16 13:15:02 2016 -0700
@@ -56,4 +56,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4972882.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4972882.java Fri Sep 16 13:15:02 2016 -0700
@@ -67,4 +67,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4986844.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4986844.java Fri Sep 16 13:15:02 2016 -0700
@@ -56,4 +56,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4987574.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4987574.java Fri Sep 16 13:15:02 2016 -0700
@@ -60,4 +60,3 @@
schemaFactory.newSchema(tmpFile);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988267.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988267.java Fri Sep 16 13:15:02 2016 -0700
@@ -56,4 +56,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988268.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988268.java Fri Sep 16 13:15:02 2016 -0700
@@ -46,4 +46,3 @@
schemaFactory.newSchema(Bug4988268.class.getResource("Bug4988268.xsd"));
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988387.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988387.java Fri Sep 16 13:15:02 2016 -0700
@@ -53,4 +53,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4996446.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4996446.java Fri Sep 16 13:15:02 2016 -0700
@@ -90,4 +90,3 @@
errorCounter++;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4997818.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4997818.java Fri Sep 16 13:15:02 2016 -0700
@@ -81,4 +81,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5011500.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5011500.java Fri Sep 16 13:15:02 2016 -0700
@@ -108,4 +108,3 @@
validator.validate(xmlSource);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5072946.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5072946.java Fri Sep 16 13:15:02 2016 -0700
@@ -125,4 +125,3 @@
Assert.assertSame(r.getNode(), n);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6378043.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6378043.java Fri Sep 16 13:15:02 2016 -0700
@@ -53,4 +53,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6449797.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6449797.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6457662.java Fri Sep 16 13:15:02 2016 -0700
@@ -86,4 +86,3 @@
return rtn;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6467424Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6467424Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -205,4 +205,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6483188.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6483188.java Fri Sep 16 13:15:02 2016 -0700
@@ -88,4 +88,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6493687.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6493687.java Fri Sep 16 13:15:02 2016 -0700
@@ -48,4 +48,3 @@
System.out.println("Got here3");
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6509668.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6509668.java Fri Sep 16 13:15:02 2016 -0700
@@ -141,4 +141,3 @@
parse(xmlReader, XML);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6526547.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6526547.java Fri Sep 16 13:15:02 2016 -0700
@@ -82,4 +82,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6531160.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6531160.java Fri Sep 16 13:15:02 2016 -0700
@@ -70,4 +70,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6695843Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6695843Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -82,4 +82,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6773084Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6773084Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -160,4 +160,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6859210.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6859210.java Fri Sep 16 13:15:02 2016 -0700
@@ -100,4 +100,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6925531Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6925531Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -210,4 +210,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6946312Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6946312Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -128,4 +128,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6954738_Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6954738_Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -83,4 +83,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/CR6708840Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/CR6708840Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -140,4 +140,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/CR6740048.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/CR6740048.java Fri Sep 16 13:15:02 2016 -0700
@@ -131,4 +131,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ErrorHandlerImpl.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ErrorHandlerImpl.java Fri Sep 16 13:15:02 2016 -0700
@@ -45,4 +45,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Issue682Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Issue682Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -78,4 +78,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/IssueTracker30.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/IssueTracker30.java Fri Sep 16 13:15:02 2016 -0700
@@ -132,4 +132,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue43Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue43Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -84,4 +84,3 @@
return list.toArray(new Source[list.size()]);
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue49.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue49.java Fri Sep 16 13:15:02 2016 -0700
@@ -94,4 +94,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/LargeMaxOccursTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/LargeMaxOccursTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -109,4 +109,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -147,4 +147,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursUnboundedTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursUnboundedTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -115,4 +115,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -147,4 +147,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursUnboundedTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursUnboundedTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -115,4 +115,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -147,4 +147,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardUnbounded.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardUnbounded.java Fri Sep 16 13:15:02 2016 -0700
@@ -115,4 +115,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesId005Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesId005Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -99,4 +99,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesIg004Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesIg004Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -57,4 +57,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesQ013Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesQ013Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -98,4 +98,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/SchemaTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/SchemaTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/TCKGroupA008Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -60,4 +60,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ValidatorTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ValidatorTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -208,4 +208,3 @@
return xmlr;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/XMLDocBuilder.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/XMLDocBuilder.java Fri Sep 16 13:15:02 2016 -0700
@@ -141,4 +141,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/XMLSchemaValidator.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/XMLSchemaValidator.java Fri Sep 16 13:15:02 2016 -0700
@@ -59,4 +59,3 @@
validator.validate(new DOMSource(node));
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6943252Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6943252Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -69,4 +69,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963124Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963124Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -61,4 +61,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963468Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963468Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -148,4 +148,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6964720Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6964720Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -58,4 +58,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6967214Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6967214Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -70,4 +70,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6970890Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6970890Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -72,4 +72,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6971190Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6971190Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -102,4 +102,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6974551Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6974551Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -122,4 +122,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6975265Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6975265Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -71,4 +71,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6977201Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6977201Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -71,4 +71,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6989956Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6989956Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -148,4 +148,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug7014246Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug7014246Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -59,4 +59,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/ParticleTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/ParticleTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/RegexWord.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991857.java Fri Sep 16 13:15:02 2016 -0700
@@ -92,4 +92,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991939.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991939.java Fri Sep 16 13:15:02 2016 -0700
@@ -61,4 +61,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992788.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992788.java Fri Sep 16 13:15:02 2016 -0700
@@ -82,4 +82,3 @@
return xpath;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992793.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992793.java Fri Sep 16 13:15:02 2016 -0700
@@ -83,4 +83,3 @@
return xpath;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992805.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992805.java Fri Sep 16 13:15:02 2016 -0700
@@ -70,4 +70,3 @@
return xpath;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/ClassLoaderTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/ClassLoaderTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -54,4 +54,3 @@
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/MyClassLoader.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/MyClassLoader.java Fri Sep 16 13:15:02 2016 -0700
@@ -47,4 +47,3 @@
return isCalled;
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/SecureProcessingTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/SecureProcessingTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -196,4 +196,3 @@
}
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathAnyTypeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathAnyTypeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -200,4 +200,3 @@
verifyResult(result, "Customer");
}
}
-
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathExpAnyTypeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathExpAnyTypeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -187,4 +187,3 @@
}
}
-
--- a/jaxws/.hgtags Thu Sep 15 16:56:11 2016 -0400
+++ b/jaxws/.hgtags Fri Sep 16 13:15:02 2016 -0700
@@ -380,3 +380,4 @@
9fff2477a4cadf2a9618a76f1f4fe0f20bb5ff3b jdk-9+132
05e99eefda2b58d1ed176e411302d9d6b35dca16 jdk-9+133
ab1d78d395d4cb8be426ff181211da1a4085cf01 jdk-9+134
+22631824f55128a7ab6605493b3001a37af6a168 jdk-9+135
--- a/jdk/.hgtags Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/.hgtags Fri Sep 16 13:15:02 2016 -0700
@@ -378,3 +378,4 @@
3cdae27c90b5e41afe75eab904fda19fac076330 jdk-9+133
803adcd526d74ae0b64948d1f8260c2dbe514779 jdk-9+134
021369229cfd0b5feb76834b2ea498f47f43c0f3 jdk-9+135
+54c5931849a33a363e03fdffa141503f5cc4779d jdk-9+136
--- a/jdk/make/gendata/GendataBreakIterator.gmk Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/make/gendata/GendataBreakIterator.gmk Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/make/mapfiles/libattach/mapfile-linux Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/aix/native/libnet/aix_close.c Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/linux/native/libnet/linux_close.c Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/macosx/native/libnet/bsd_close.c Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/lang/StringConcatHelper.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/LambdaFormEditor.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandles.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/ArrayDeque.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/PriorityQueue.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/CompletableFuture.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/CountedCompleter.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/CyclicBarrier.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/Flow.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/Semaphore.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/SubmissionPublisher.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/atomic/AtomicInteger.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/locks/StampedLock.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/java/util/jar/JarFile.java Fri Sep 16 13:15:02 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 Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/module-info.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/jar/JarURLConnection.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSP.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSPResponse.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ /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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/sun/util/locale/provider/BreakDictionary.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/classes/sun/util/locale/provider/RuleBasedBreakIterator.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/share/native/libjli/java.h Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/solaris/native/libnet/solaris_close.c Fri Sep 16 13:15:02 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/libjava/TimeZone_md.c Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/unix/native/libjava/TimeZone_md.c Fri Sep 16 13:15:02 2016 -0700
@@ -128,13 +128,20 @@
char *dbuf = NULL;
char *tz = NULL;
int res;
+ long name_max = 0;
dirp = opendir(dir);
if (dirp == NULL) {
return NULL;
}
- entry = (struct dirent64 *) malloc((size_t) pathconf(dir, _PC_NAME_MAX));
+ name_max = pathconf(dir, _PC_NAME_MAX);
+ // If pathconf did not work, fall back to a mimimum buffer size.
+ if (name_max < 1024) {
+ name_max = 1024;
+ }
+
+ entry = (struct dirent64 *)malloc(offsetof(struct dirent64, d_name) + name_max + 1);
if (entry == NULL) {
(void) closedir(dirp);
return NULL;
--- a/jdk/src/java.base/unix/native/libjli/java_md_common.c Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/unix/native/libjli/java_md_common.c Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/unix/native/libjli/java_md_solinux.c Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/unix/native/libnet/SocketInputStream.c Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/unix/native/libnet/net_util_md.c Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/unix/native/libnet/net_util_md.h Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/windows/native/libjli/java_md.c Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.base/windows/native/libjli/java_md.h Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.instrument/share/classes/java/lang/instrument/package.html Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.instrument/share/native/libinstrument/InvocationAdapter.c Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.c Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.h Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/java.logging/share/classes/java/util/logging/Level.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/jdk.attach/linux/native/libattach/VirtualMachineImpl.c Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/builder/DefaultImageBuilder.java Fri Sep 16 13:15:02 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
@@ -188,7 +189,8 @@
storeFiles(modules, release);
- if (Files.getFileStore(root).supportsFileAttributeView(PosixFileAttributeView.class)) {
+ if (root.getFileSystem().supportedFileAttributeViews()
+ .contains("posix")) {
// launchers in the bin directory need execute permission.
// On Windows, "bin" also subdirectories containing jvm.dll.
if (Files.isDirectory(bin)) {
@@ -217,19 +219,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");
}
@@ -282,8 +303,8 @@
StandardOpenOption.CREATE_NEW)) {
writer.write(sb.toString());
}
- if (Files.getFileStore(root.resolve("bin"))
- .supportsFileAttributeView(PosixFileAttributeView.class)) {
+ if (root.resolve("bin").getFileSystem()
+ .supportedFileAttributeViews().contains("posix")) {
setExecutable(cmd);
}
// generate .bat file for Windows
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/ProblemList.txt Fri Sep 16 13:15:02 2016 -0700
@@ -159,7 +159,6 @@
# jdk_net
-
java/net/MulticastSocket/NoLoopbackPackets.java 7122846 macosx-all
java/net/MulticastSocket/SetLoopbackMode.java 7122846 macosx-all
@@ -217,66 +216,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 +251,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 Fri Sep 16 13:15:02 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 Fri Sep 16 13:15:02 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 Fri Sep 16 13:15:02 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 Fri Sep 16 13:15:02 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/sql/testng/TEST.properties Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/sql/testng/TEST.properties Fri Sep 16 13:15:02 2016 -0700
@@ -1,3 +1,4 @@
# JDBC unit tests uses TestNG
TestNG.dirs = .
+othervm.dirs = test/sql/othervm
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/sql/testng/test/sql/othervm/DriverManagerInitTests.java Fri Sep 16 13:15:02 2016 -0700
@@ -0,0 +1,84 @@
+/*
+ * 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.
+ */
+package test.sql.othervm;
+
+import java.io.BufferedReader;
+import java.io.CharArrayReader;
+import java.io.CharArrayWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.sql.Driver;
+import java.sql.DriverManager;
+import java.util.Enumeration;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import static org.testng.Assert.*;
+import org.testng.annotations.Test;
+
+public class DriverManagerInitTests {
+
+ /**
+ * Validate that when DriverManager loads the initial JDBC drivers, that the
+ * output from DriverManager.println is available by verifying that the
+ * String "JDBC DriverManager initialized" is found
+ */
+ @Test
+ public void test() {
+
+ CharArrayWriter cw = new CharArrayWriter();
+ PrintWriter pw = new PrintWriter(cw);
+ DriverManager.setLogWriter(pw);
+ Enumeration<Driver> drivers = DriverManager.getDrivers();
+
+ try (BufferedReader reader = new BufferedReader(new CharArrayReader(cw.toCharArray()))) {
+ boolean result
+ = reader.lines().anyMatch(
+ line -> line.matches(".*JDBC DriverManager initialized.*"));
+ assertTrue(result);
+
+ } catch (IOException ex) {
+ Logger.getLogger(DriverManagerInitTests.class.getName()).log(Level.SEVERE, null, ex);
+ fail();
+ }
+
+ // Check to verify that we are not initializing a 2nd time
+ cw = new CharArrayWriter();
+ pw = new PrintWriter(cw);
+ DriverManager.setLogWriter(pw);
+ drivers = DriverManager.getDrivers();
+
+ try (BufferedReader reader = new BufferedReader(new CharArrayReader(cw.toCharArray()))) {
+ boolean result
+ = reader.lines().noneMatch(
+ line -> line.matches(".*JDBC DriverManager initialized.*"));
+ assertTrue(result);
+
+ } catch (IOException ex) {
+ Logger.getLogger(DriverManagerInitTests.class.getName()).log(Level.SEVERE, null, ex);
+ fail();
+ }
+
+ }
+
+}
--- a/jdk/test/java/text/Format/DateFormat/Bug4322313.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/DateFormat/Bug4322313.java Fri Sep 16 13:15:02 2016 -0700
@@ -50,110 +50,110 @@
Object[][] valids = {
/* given ID offset format('z'), ('Z') index */
- {"GMT+03:04", new Long(-184 * mpm), "GMT+03:04", "+0304", new Integer(9)},
- {"GMT+13:42", new Long(-822 * mpm), "GMT+13:42", "+1342", new Integer(9)},
- {"GMT+00:00", new Long(0), "GMT+00:00", "+0000", new Integer(9)},
- {"GMT+1:11", new Long(-71 * mpm), "GMT+01:11", "+0111", new Integer(8)},
- {"GMT +13:42", new Long(0), "GMT", "+0000", new Integer(3)},
- {" GMT", new Long(0), "GMT", "+0000", new Integer(4)},
- {"+0304", new Long(-184 * mpm), "GMT+03:04", "+0304", new Integer(5)},
- {"+1342", new Long(-822 * mpm), "GMT+13:42", "+1342", new Integer(5)},
- {"+0000", new Long(0), "GMT+00:00", "+0000", new Integer(5)},
- {" +1342", new Long(-822 * mpm), "GMT+13:42", "+1342", new Integer(6)},
+ {"GMT+03:04", -184L * mpm, "GMT+03:04", "+0304", 9},
+ {"GMT+13:42", -822L * mpm, "GMT+13:42", "+1342", 9},
+ {"GMT+00:00", 0L, "GMT+00:00", "+0000", 9},
+ {"GMT+1:11", -71L * mpm, "GMT+01:11", "+0111", 8},
+ {"GMT +13:42", 0L, "GMT", "+0000", 3},
+ {" GMT", 0L, "GMT", "+0000", 4},
+ {"+0304", -184L * mpm, "GMT+03:04", "+0304", 5},
+ {"+1342", -822L * mpm, "GMT+13:42", "+1342", 5},
+ {"+0000", 0L, "GMT+00:00", "+0000", 5},
+ {" +1342", -822L * mpm, "GMT+13:42", "+1342", 6},
/* ISO-LATIN-1 digits */
- {"GMT+\u0030\u0031:\u0032\u0033", new Long(-83 * mpm), "GMT+01:23", "+0123", new Integer(9)},
+ {"GMT+\u0030\u0031:\u0032\u0033", -83L * mpm, "GMT+01:23", "+0123", 9},
/* In fact, this test case is skipped because TimeZone class can't
* recognize TimeZone IDs like "+00234" or "-00234".
*/
- {"+00234", new Long(-23 * mpm), "GMT+00:23", "+0023", new Integer(5)},
+ {"+00234", -23L * mpm, "GMT+00:23", "+0023", 5},
- {"GMT-03:04", new Long(184 * mpm), "GMT-03:04", "-0304", new Integer(9)},
- {"GMT-13:42", new Long(822 * mpm), "GMT-13:42", "-1342", new Integer(9)},
- {"GMT-00:00", new Long(0), "GMT+00:00", "+0000", new Integer(9)},
- {"GMT-1:11", new Long(71 * mpm), "GMT-01:11", "-0111", new Integer(8)},
- {"GMT -13:42", new Long(0), "GMT", "+0000", new Integer(3)},
- {"-0304", new Long(184 * mpm), "GMT-03:04", "-0304", new Integer(5)},
- {"-1342", new Long(822 * mpm), "GMT-13:42", "-1342", new Integer(5)},
- {" -1342", new Long(822 * mpm), "GMT-13:42", "-1342", new Integer(6)},
+ {"GMT-03:04", 184L * mpm, "GMT-03:04", "-0304", 9},
+ {"GMT-13:42", 822L * mpm, "GMT-13:42", "-1342", 9},
+ {"GMT-00:00", 0L, "GMT+00:00", "+0000", 9},
+ {"GMT-1:11", 71L * mpm, "GMT-01:11", "-0111", 8},
+ {"GMT -13:42", 0L, "GMT", "+0000", 3},
+ {"-0304", 184L * mpm, "GMT-03:04", "-0304", 5},
+ {"-1342", 822L * mpm, "GMT-13:42", "-1342", 5},
+ {" -1342", 822L * mpm, "GMT-13:42", "-1342", 6},
/* ISO-LATIN-1 digits */
- {"GMT-\u0030\u0031:\u0032\u0033", new Long(83 * mpm), "GMT-01:23", "-0123", new Integer(9)},
+ {"GMT-\u0030\u0031:\u0032\u0033", 83L * mpm, "GMT-01:23", "-0123", 9},
/* In fact, this test case is skipped because TimeZone class can't
* recognize TimeZone IDs like "+00234" or "-00234".
*/
- {"-00234", new Long(23 * mpm), "GMT+00:23", "-0023", new Integer(5)},
+ {"-00234", 23L * mpm, "GMT+00:23", "-0023", 5},
};
Object[][] invalids = {
/* given ID error index */
- {"GMT+8", new Integer(5)},
- {"GMT+18", new Integer(6)},
- {"GMT+208", new Integer(6)},
- {"GMT+0304", new Integer(6)},
- {"GMT+42195", new Integer(5)},
- {"GMT+5:8", new Integer(7)},
- {"GMT+23:60", new Integer(8)},
- {"GMT+11:1", new Integer(8)},
- {"GMT+24:13", new Integer(5)},
- {"GMT+421:950", new Integer(5)},
- {"GMT+0a:0A", new Integer(5)},
- {"GMT+ 13:42", new Integer(4)},
- {"GMT+13 :42", new Integer(6)},
- {"GMT+13: 42", new Integer(7)},
- {"GMT+-13:42", new Integer(4)},
- {"G M T", new Integer(0)},
- {"+8", new Integer(2)},
- {"+18", new Integer(3)},
- {"+208", new Integer(4)},
- {"+2360", new Integer(4)},
- {"+2413", new Integer(2)},
- {"+42195", new Integer(2)},
- {"+0AbC", new Integer(2)},
- {"+ 1342", new Integer(1)},
- {"+-1342", new Integer(1)},
- {"1342", new Integer(0)},
+ {"GMT+8", 5},
+ {"GMT+18", 6},
+ {"GMT+208", 6},
+ {"GMT+0304", 6},
+ {"GMT+42195", 5},
+ {"GMT+5:8", 7},
+ {"GMT+23:60", 8},
+ {"GMT+11:1", 8},
+ {"GMT+24:13", 5},
+ {"GMT+421:950", 5},
+ {"GMT+0a:0A", 5},
+ {"GMT+ 13:42", 4},
+ {"GMT+13 :42", 6},
+ {"GMT+13: 42", 7},
+ {"GMT+-13:42", 4},
+ {"G M T", 0},
+ {"+8", 2},
+ {"+18", 3},
+ {"+208", 4},
+ {"+2360", 4},
+ {"+2413", 2},
+ {"+42195", 2},
+ {"+0AbC", 2},
+ {"+ 1342", 1},
+ {"+-1342", 1},
+ {"1342", 0},
/* Arabic-Indic digits */
- {"GMT+\u0660\u0661:\u0662\u0663", new Integer(4)},
+ {"GMT+\u0660\u0661:\u0662\u0663", 4},
/* Extended Arabic-Indic digits */
- {"GMT+\u06f0\u06f1:\u06f2\u06f3", new Integer(4)},
+ {"GMT+\u06f0\u06f1:\u06f2\u06f3", 4},
/* Devanagari digits */
- {"GMT+\u0966\u0967:\u0968\u0969", new Integer(4)},
+ {"GMT+\u0966\u0967:\u0968\u0969", 4},
/* Fullwidth digits */
- {"GMT+\uFF10\uFF11:\uFF12\uFF13", new Integer(4)},
+ {"GMT+\uFF10\uFF11:\uFF12\uFF13", 4},
- {"GMT-8", new Integer(5)},
- {"GMT-18", new Integer(6)},
- {"GMT-208", new Integer(6)},
- {"GMT-0304", new Integer(6)},
- {"GMT-42195", new Integer(5)},
- {"GMT-5:8", new Integer(7)},
- {"GMT-23:60", new Integer(8)},
- {"GMT-11:1", new Integer(8)},
- {"GMT-24:13", new Integer(5)},
- {"GMT-421:950", new Integer(5)},
- {"GMT-0a:0A", new Integer(5)},
- {"GMT- 13:42", new Integer(4)},
- {"GMT-13 :42", new Integer(6)},
- {"GMT-13: 42", new Integer(7)},
- {"GMT-+13:42", new Integer(4)},
- {"-8", new Integer(2)},
- {"-18", new Integer(3)},
- {"-208", new Integer(4)},
- {"-2360", new Integer(4)},
- {"-2413", new Integer(2)},
- {"-42195", new Integer(2)},
- {"-0AbC", new Integer(2)},
- {"- 1342", new Integer(1)},
- {"--1342", new Integer(1)},
- {"-802", new Integer(2)},
+ {"GMT-8", 5},
+ {"GMT-18", 6},
+ {"GMT-208", 6},
+ {"GMT-0304", 6},
+ {"GMT-42195", 5},
+ {"GMT-5:8", 7},
+ {"GMT-23:60", 8},
+ {"GMT-11:1", 8},
+ {"GMT-24:13", 5},
+ {"GMT-421:950", 5},
+ {"GMT-0a:0A", 5},
+ {"GMT- 13:42", 4},
+ {"GMT-13 :42", 6},
+ {"GMT-13: 42", 7},
+ {"GMT-+13:42", 4},
+ {"-8", 2},
+ {"-18", 3},
+ {"-208", 4},
+ {"-2360", 4},
+ {"-2413", 2},
+ {"-42195", 2},
+ {"-0AbC", 2},
+ {"- 1342", 1},
+ {"--1342", 1},
+ {"-802", 2},
/* Arabic-Indic digits */
- {"GMT-\u0660\u0661:\u0662\u0663", new Integer(4)},
+ {"GMT-\u0660\u0661:\u0662\u0663", 4},
/* Extended Arabic-Indic digits */
- {"GMT-\u06f0\u06f1:\u06f2\u06f3", new Integer(4)},
+ {"GMT-\u06f0\u06f1:\u06f2\u06f3", 4},
/* Devanagari digits */
- {"GMT-\u0966\u0967:\u0968\u0969", new Integer(4)},
+ {"GMT-\u0966\u0967:\u0968\u0969", 4},
/* Fullwidth digits */
- {"GMT-\uFF10\uFF11:\uFF12\uFF13", new Integer(4)},
+ {"GMT-\uFF10\uFF11:\uFF12\uFF13", 4},
};
try {
--- a/jdk/test/java/text/Format/DateFormat/Bug4736959.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/DateFormat/Bug4736959.java Fri Sep 16 13:15:02 2016 -0700
@@ -30,6 +30,7 @@
import java.text.*;
import java.util.*;
+@SuppressWarnings("deprecation")
public class Bug4736959 {
/**
* 4736959: JSpinner won't work for AM/PM field
--- a/jdk/test/java/text/Format/DateFormat/Bug4823811.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/DateFormat/Bug4823811.java Fri Sep 16 13:15:02 2016 -0700
@@ -685,8 +685,8 @@
testNumberFormatFormatting(nfEG, -456, "456-", "ar_EG");
System.out.println("*** DecimalFormat.parse test in ar_EG");
- testNumberFormatParsing(nfEG, "123-", new Long(-123), "ar_EG");
- testNumberFormatParsing(nfEG, "123--", new Long(-123), "ar_EG");
+ testNumberFormatParsing(nfEG, "123-", -123L, "ar_EG");
+ testNumberFormatParsing(nfEG, "123--",-123L, "ar_EG");
testNumberFormatParsingCheckException(nfEG, "-123", 0, "ar_EG");
System.out.println("*** DecimalFormat.format test in en_US");
@@ -694,8 +694,8 @@
testNumberFormatFormatting(nfUS, -456, "-456", "en_US");
System.out.println("*** DecimalFormat.parse test in en_US");
- testNumberFormatParsing(nfUS, "123-", new Long(123), "en_US");
- testNumberFormatParsing(nfUS, "-123", new Long(-123), "en_US");
+ testNumberFormatParsing(nfUS, "123-", 123L, "en_US");
+ testNumberFormatParsing(nfUS, "-123",-123L, "en_US");
testNumberFormatParsingCheckException(nfUS, "--123", 0, "en_US");
}
--- a/jdk/test/java/text/Format/DateFormat/Bug4845901.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/DateFormat/Bug4845901.java Fri Sep 16 13:15:02 2016 -0700
@@ -55,6 +55,7 @@
}
}
+ @SuppressWarnings("deprecation")
static void testParse(SimpleDateFormat sdf, String str, int expectedHour) {
try {
Date parsedDate = sdf.parse(str);
--- a/jdk/test/java/text/Format/DateFormat/Bug6609750.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/DateFormat/Bug6609750.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 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
@@ -37,6 +37,7 @@
Locale defaultLocale = Locale.getDefault();
Locale.setDefault(Locale.US);
+ @SuppressWarnings("deprecation")
Date[] dates = {
new Date(9-1900, Calendar.JUNE, 12),
new Date(99-1900, Calendar.JUNE, 12),
--- a/jdk/test/java/text/Format/DateFormat/Bug6683975.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/DateFormat/Bug6683975.java Fri Sep 16 13:15:02 2016 -0700
@@ -66,6 +66,7 @@
System.err.println("\tth_TH: " + str_th_TH);
}
+ @SuppressWarnings("deprecation")
Date date = new Date(2008-1900, Calendar.SEPTEMBER, 30, 8, 0, 0);
str_th = df_th.format(date);
if (!expected_th[style].equals(str_th)) {
--- a/jdk/test/java/text/Format/DateFormat/DateFormatRegression.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/DateFormat/DateFormatRegression.java Fri Sep 16 13:15:02 2016 -0700
@@ -41,7 +41,7 @@
}
public void Test4029195() {
-
+ @SuppressWarnings("deprecation")
Date today = new Date();
logln("today: " + today);
@@ -74,19 +74,20 @@
public void Test4052408() {
DateFormat fmt = DateFormat.getDateTimeInstance(DateFormat.SHORT,
DateFormat.SHORT, Locale.US);
+ @SuppressWarnings("deprecation")
Date date = new Date(97, Calendar.MAY, 3, 8, 55);
String str;
logln(str = fmt.format(date));
if (!str.equals("5/3/97 8:55 AM"))
errln("Fail: Test broken; Want 5/3/97 8:55 AM Got " + str);
- Hashtable expected = new Hashtable();
- expected.put(new Integer(DateFormat.MONTH_FIELD), "5");
- expected.put(new Integer(DateFormat.DATE_FIELD), "3");
- expected.put(new Integer(DateFormat.YEAR_FIELD), "97");
- expected.put(new Integer(DateFormat.HOUR1_FIELD), "8");
- expected.put(new Integer(DateFormat.MINUTE_FIELD), "55");
- expected.put(new Integer(DateFormat.AM_PM_FIELD), "AM");
+ Map<Integer,String> expected = new HashMap<>();
+ expected.put(DateFormat.MONTH_FIELD, "5");
+ expected.put(DateFormat.DATE_FIELD, "3");
+ expected.put(DateFormat.YEAR_FIELD, "97");
+ expected.put(DateFormat.HOUR1_FIELD, "8");
+ expected.put(DateFormat.MINUTE_FIELD, "55");
+ expected.put(DateFormat.AM_PM_FIELD, "AM");
StringBuffer buf = new StringBuffer();
String fieldNames[] = {
@@ -120,7 +121,7 @@
", \"" + str + "\", " +
pos.getBeginIndex() + ", " +
pos.getEndIndex());
- String exp = (String) expected.get(new Integer(i));
+ String exp = expected.get(i);
if ((exp == null && str.length() == 0) ||
str.equals(exp))
logln(" ok");
@@ -135,6 +136,7 @@
/**
* Verify the function of the [s|g]et2DigitYearStart() API.
*/
+ @SuppressWarnings("deprecation")
public void Test4056591() {
try {
SimpleDateFormat fmt = new SimpleDateFormat("yyMMdd", Locale.US);
@@ -255,6 +257,7 @@
if (!ok) errln("Fail: Lenient not working");
}
+ @SuppressWarnings("deprecation")
public void Test4065240() {
Date curDate;
DateFormat shortdate, fulldate;
@@ -297,6 +300,7 @@
Currently this bug breaks MessageFormat.toPattern
*/
+ @SuppressWarnings("deprecation")
public void Test4071441() {
DateFormat fmtA = DateFormat.getInstance();
DateFormat fmtB = DateFormat.getInstance();
@@ -488,6 +492,7 @@
public void Test4101483() {
SimpleDateFormat sdf = new SimpleDateFormat("z", Locale.US);
FieldPosition fp = new FieldPosition(DateFormat.TIMEZONE_FIELD);
+ @SuppressWarnings("deprecation")
Date d= new Date(9234567890L);
StringBuffer buf = new StringBuffer("");
logln(sdf.format(d, buf, fp).toString());
@@ -508,6 +513,7 @@
public void Test4103340() {
// choose a date that is the FIRST of some month
// and some arbitrary time
+ @SuppressWarnings("deprecation")
Date d=new Date(97, 3, 1, 1, 1, 1);
SimpleDateFormat df=new SimpleDateFormat("MMMM", Locale.US);
@@ -538,6 +544,7 @@
sdf.applyPattern(pattern);
logln("pattern: \"" + pattern + "\"");
+ @SuppressWarnings("deprecation")
Object[] DATA = {
"time 10:30", new ParsePosition(10), new Date(70, Calendar.JANUARY, 1, 10, 30),
"time 10:x", new ParsePosition(0), null,
@@ -698,6 +705,7 @@
String pattern = "'TO_DATE('''dd'-'MM'-'yyyy HH:mm:ss''' , ''DD-MM-YYYY HH:MI:SS'')'";
logln("pattern=" + pattern);
SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.US);
+ @SuppressWarnings("deprecation")
String result = format.format(new Date(1998-1900, Calendar.JUNE, 30, 13, 30, 0));
if (!result.equals("TO_DATE('30-06-1998 13:30:00' , 'DD-MM-YYYY HH:MI:SS')")) {
errln("Fail: result=" + result);
@@ -711,6 +719,7 @@
* 'z' at end of date format throws index exception in SimpleDateFormat
* CANNOT REPRODUCE THIS BUG ON 1.2FCS
*/
+ @SuppressWarnings("deprecation")
public void Test4151706() {
SimpleDateFormat fmt =
new SimpleDateFormat("EEEE, dd-MMM-yy HH:mm:ss z", Locale.US);
@@ -755,6 +764,7 @@
* Confirm that "EST"(GMT-5:00) and "CST"(GMT-6:00) are used in US
* as "EST" or "CST", not Australian "EST" and "CST".
*/
+ @SuppressWarnings("deprecation")
public void Test4406615() {
Locale savedLocale = Locale.getDefault();
TimeZone savedTimeZone = TimeZone.getDefault();
@@ -823,6 +833,7 @@
* greater than "99", are treated as literal years. So "1/2/3456"
* becomes 3456 AD. Likewise, "1/2/-3" becomes -3 AD == 2 BC.
*/
+ @SuppressWarnings("deprecation")
Object[] DATA = {
"02/29/00", new Date(2000-1900, Calendar.FEBRUARY, 29),
"01/23/01", new Date(2001-1900, Calendar.JANUARY, 23),
@@ -878,6 +889,7 @@
DateFormat fmt = new SimpleDateFormat(pattern,
DateFormatSymbols.getInstance(Locale.US));
fmt.getCalendar().setLenient(false);
+ @SuppressWarnings("deprecation")
Date d = new Date(2000-1900, Calendar.FEBRUARY, 29);
String s = fmt.format(d);
logln(d + " x " + pattern + " => " + s);
@@ -957,6 +969,7 @@
}
}
+ @SuppressWarnings("deprecation")
public void Test4253490() throws ParseException {
SimpleDateFormat fmt = new SimpleDateFormat("S", Locale.US);
@@ -1026,6 +1039,7 @@
public void Test4250359() {
DateFormat df = DateFormat.getTimeInstance(DateFormat.SHORT,
Locale.US);
+ @SuppressWarnings("deprecation")
Date d = new Date(1999-1900, Calendar.DECEMBER, 25,
1, 2, 3);
String s = df.format(d);
@@ -1052,6 +1066,7 @@
// pick up another time zone when L10N is done to that file.
TimeZone.setDefault(TimeZone.getTimeZone("PST"));
SimpleDateFormat fmt = new SimpleDateFormat("yy/MM/dd hh:ss zzz", Locale.JAPAN);
+ @SuppressWarnings("deprecation")
String result = fmt.format(new Date(1999, 0, 1));
logln("format()=>" + result);
if (!result.endsWith("PST")) {
--- a/jdk/test/java/text/Format/DateFormat/DateFormatRoundTripTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/DateFormat/DateFormatRoundTripTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -104,7 +104,7 @@
String pat = null;
Date date = null;
- Vector newArgs = new Vector();
+ List<String> newArgs = new ArrayList<>();
for (int i=0; i<args.length; ++i) {
if (args[i].equals("-locale")
&& (i+1) < args.length) {
@@ -131,13 +131,13 @@
seed = Long.parseLong(args[i+1]);
++i;
} else {
- newArgs.addElement(args[i]);
+ newArgs.add(args[i]);
}
}
if (newArgs.size() != args.length) {
args = new String[newArgs.size()];
- newArgs.copyInto(args);
+ newArgs.addAll(Arrays.asList(args));
}
new DateFormatRoundTripTest(random, seed, infinite, date, pat, loc).run(args);
@@ -193,6 +193,7 @@
* Return the Date of this test case; must be called with the default
* zone set to this TestCase's zone.
*/
+ @SuppressWarnings("deprecation")
Date getDate() {
if (_date == null) {
// Date constructor will work right iff we are in the target zone
--- a/jdk/test/java/text/Format/DateFormat/DateFormatSymbolsCloneTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/DateFormat/DateFormatSymbolsCloneTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -29,6 +29,7 @@
*/
import java.text.DateFormatSymbols;
+@SuppressWarnings("serial")
public class DateFormatSymbolsCloneTest extends DateFormatSymbols {
private int value;
--- a/jdk/test/java/text/Format/DateFormat/NonGregorianFormatTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/DateFormat/NonGregorianFormatTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -36,6 +36,7 @@
public class NonGregorianFormatTest {
static int errors;
+ @SuppressWarnings("deprecation")
static final Object[][] JAPANESE_EN = {
{ "GGGG yyyy MMMM d", "Showa 1 December 31", new Date(1926-1900, DECEMBER, 31) },
{ "GGGG yyyy MMMM d", "Showa 64 January 6", new Date(1989-1900, JANUARY, 6) },
@@ -58,6 +59,7 @@
{ "Gyy.MM.dd", "H01.01.01" },
};
+ @SuppressWarnings("deprecation")
static final Object[][] BUDDHIST_EN = {
{ "GGGG yyyy MMMM d", "B.E. 2469 December 31", new Date(1926-1900, DECEMBER, 31) },
{ "GGGG yyyy MMMM d", "B.E. 2532 January 6", new Date(1989-1900, JANUARY, 6) },
@@ -71,6 +73,7 @@
static final String FULL_DATE_FORMAT_JA = "GGGGyyyy'\u5e74'M'\u6708'd'\u65e5'";
+ @SuppressWarnings("deprecation")
static final Object[][] JAPANESE_JA = {
{ FULL_DATE_FORMAT_JA, "\u662d\u548c\u5143\u5e7412\u670831\u65e5", new Date(1926-1900, DECEMBER, 31) },
{ FULL_DATE_FORMAT_JA, "\u662d\u548c64\u5e741\u67086\u65e5", new Date(1989-1900, JANUARY, 6) },
@@ -93,6 +96,7 @@
{ "Gyy.MM.dd", "H01.01.01" },
};
+ @SuppressWarnings("deprecation")
static final Object[][] BUDDHIST_JA = {
{ FULL_DATE_FORMAT_JA, "\u4ecf\u66a62469\u5e7412\u670831\u65e5", new Date(1926-1900, DECEMBER, 31) },
{ FULL_DATE_FORMAT_JA, "\u4ecf\u66a62532\u5e741\u67086\u65e5", new Date(1989-1900, JANUARY, 6) },
@@ -137,6 +141,7 @@
locale == Locale.ENGLISH ? BUDDHIST_EN : BUDDHIST_JA);
}
+ @SuppressWarnings("deprecation")
private static void testRoundTrip(Locale calendarLocale) {
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL,
DateFormat.FULL,
--- a/jdk/test/java/text/Format/DateFormat/bug4358730.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/DateFormat/bug4358730.java Fri Sep 16 13:15:02 2016 -0700
@@ -60,6 +60,7 @@
SimpleDateFormat sdf = new SimpleDateFormat();
for (int i = 0; i < datasize; i++) {
+ @SuppressWarnings("deprecation")
Date d = new Date(year[i]-1900, 10, 15);
for (int j = 0; j < nPatterns; j++) {
sdf.applyPattern(patterns[j]);
--- a/jdk/test/java/text/Format/MessageFormat/Bug4185816Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/MessageFormat/Bug4185816Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -98,7 +98,7 @@
final InputStream is = HexDumpReader.getStreamFromHexDump(fileName + ".txt");
final ObjectInputStream in = new ObjectInputStream(is);
final MessageFormat form = (MessageFormat)in.readObject();
- final Object[] testArgs = {new Long(12373), "MyDisk"};
+ final Object[] testArgs = {12373L, "MyDisk"};
final String result = form.format(testArgs);
in.close();
} catch (Exception e) {
--- a/jdk/test/java/text/Format/MessageFormat/LargeMessageFormat.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/MessageFormat/LargeMessageFormat.java Fri Sep 16 13:15:02 2016 -0700
@@ -56,18 +56,19 @@
private static void testFormat() {
// construct large argument array
+ @SuppressWarnings("deprecation")
Object[] sample = {
- new Integer(0), // replace with running count below
+ 0, // replace with running count below
"hello",
new Date(89, 10, 9),
- new Integer(567890),
- new Double(1234.50)
+ 567890,
+ 1234.50
};
int samples = sample.length;
Object[] arguments = new Object[REPEATS * (samples + 1)];
for (int i = 0; i < REPEATS; i++) {
System.arraycopy(sample, 0, arguments, i * samples, samples);
- arguments[i * samples] = new Integer(i);
+ arguments[i * samples] = i;
}
// construct large template
--- a/jdk/test/java/text/Format/MessageFormat/MessageRegression.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/MessageFormat/MessageRegression.java Fri Sep 16 13:15:02 2016 -0700
@@ -136,7 +136,7 @@
try {
logln("Apply with pattern : " + pattern1);
messageFormatter.applyPattern(pattern1);
- Object[] params = {new Integer(7)};
+ Object[] params = {7};
String tempBuffer = messageFormatter.format(params);
if (!tempBuffer.equals("Impossible {1} has occurred -- status code is 7 and message is {2}."))
errln("Tests arguments < substitution failed. Formatted text=" +
@@ -455,7 +455,7 @@
errln("argument0: \"" + objs[0] + "\"");
mf.setLocale(Locale.US);
mf.applyPattern("{0,number,#.##}, {0,number,#.#}");
- Object[] oldobjs = {new Double(3.1415)};
+ Object[] oldobjs = {3.1415};
String result = mf.format( oldobjs );
logln("pattern: \"" + mf.toPattern() + "\"");
logln("text for parsing: \"" + result + "\"");
@@ -481,7 +481,7 @@
ChoiceFormat fileform = new ChoiceFormat(filelimits, filepart);
form1.setFormat(1, fileform);
form2.setFormat(0, fileform);
- Object[] testArgs = {new Long(12373), "MyDisk"};
+ Object[] testArgs = {12373L, "MyDisk"};
logln(form1.format(testArgs));
logln(form2.format(testArgs));
}
@@ -531,7 +531,7 @@
};
for (int i=0; i<3; i++) {
- String out = mf.format(new Object[]{new Integer(i)});
+ String out = mf.format(new Object[]{i});
if (SUFFIX[i] == null) {
if (!out.equals(PREFIX[i]))
errln("" + i + ": Got \"" + out + "\"; Want \"" + PREFIX[i] + "\"");
@@ -607,8 +607,7 @@
*/
public void Test4169959() {
// This works
- logln(MessageFormat.format( "This will {0}",
- new String[]{"work"} ) );
+ logln(MessageFormat.format( "This will {0}", "work"));
// This fails
logln(MessageFormat.format( "This will {0}",
--- a/jdk/test/java/text/Format/MessageFormat/MessageTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/MessageFormat/MessageTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997 2016, 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
@@ -52,7 +52,7 @@
public void TestMSGPatternTest() {
Object[] testArgs = {
- new Double (1), new Double(3456),
+ 1D, 3456D,
"Disk", new Date(10000000000L)};
String[] testCases = {
--- a/jdk/test/java/text/Format/NumberFormat/BigDecimalCompatibilityTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/BigDecimalCompatibilityTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -118,7 +118,7 @@
bd = bd.divide(new BigDecimal(multiplier));
}
catch (ArithmeticException e) {
- bd = bd.divide(new BigDecimal(multiplier), BigDecimal.ROUND_HALF_EVEN);
+ bd = bd.divide(new BigDecimal(multiplier), RoundingMode.HALF_EVEN);
}
check(num, bd, multiplier);
}
--- a/jdk/test/java/text/Format/NumberFormat/BigDecimalFormat.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/BigDecimalFormat.java Fri Sep 16 13:15:02 2016 -0700
@@ -793,7 +793,7 @@
formatted.setLength(0);
from = "123456789";
to = sep_zero.substring(0, 399) + ",123,456,789";
- nf.format(new Long(from), formatted, new FieldPosition(0));
+ nf.format(123456789L, formatted, new FieldPosition(0));
checkFormat(from, formatted, to, ((DecimalFormat)nf).getMultiplier());
/* ------------------------------------------------------------------ */
@@ -810,7 +810,7 @@
from = "123456789";
to = "-" + nonsep_zero.substring(0, 300) + "123456789." +
nonsep_zero.substring(0, 340);
- nf.format(new Long(from), formatted, new FieldPosition(0));
+ nf.format(123456789L, formatted, new FieldPosition(0));
checkFormat(from, formatted, to, ((DecimalFormat)nf).getMultiplier());
/* ------------------------------------------------------------------ */
@@ -827,7 +827,7 @@
from = Long.toString(Long.MAX_VALUE);
to = sep_zero.substring(0, 373) +
"19,807,040,619,342,712,359,383,728,129";
- nf.format(new Long(from), formatted, new FieldPosition(0));
+ nf.format(Long.MAX_VALUE, formatted, new FieldPosition(0));
checkFormat(from, formatted, to, ((DecimalFormat)nf).getMultiplier());
/* ------------------------------------------------------------------ */
@@ -844,7 +844,7 @@
from = Long.toString(Long.MAX_VALUE);
to = "-1.9807040628566084396238503936" +
nonsep_zero.substring(0, 312) + "E28";
- nf.format(new Long(from), formatted, new FieldPosition(0));
+ nf.format(Long.MAX_VALUE, formatted, new FieldPosition(0));
checkFormat(from, formatted, to, ((DecimalFormat)nf).getMultiplier());
/* ------------------------------------------------------------------ */
@@ -862,7 +862,7 @@
to = "-19807040619342712361531211776" +
nonsep_zero.substring(0, 280) + "." +
nonsep_zero.substring(0, 340) + "E-280";
- nf.format(new Long(from), formatted, new FieldPosition(0));
+ nf.format(Long.MIN_VALUE, formatted, new FieldPosition(0));
checkFormat(from, formatted, to, ((DecimalFormat)nf).getMultiplier());
/* ------------------------------------------------------------------ */
@@ -880,7 +880,7 @@
to = sep_zero.substring(0, 373) +
"19,807,040,628,566,084,398,385,987,584." +
nonsep_zero.substring(0, 340);
- nf.format(new Long(from), formatted, new FieldPosition(0));
+ nf.format(Long.MIN_VALUE, formatted, new FieldPosition(0));
checkFormat(from, formatted, to, ((DecimalFormat)nf).getMultiplier());
}
--- a/jdk/test/java/text/Format/NumberFormat/BigDecimalParse.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/BigDecimalParse.java Fri Sep 16 13:15:02 2016 -0700
@@ -199,15 +199,15 @@
// From: 1000.000
// To: Double.POSITIVE_INFINITY
- check("1000.000", new Double(Double.POSITIVE_INFINITY));
+ check("1000.000", Double.POSITIVE_INFINITY);
// From: -1000
// To: Double.NEGATIVE_INFINITY
- check("-1000", new Double(Double.NEGATIVE_INFINITY));
+ check("-1000", Double.NEGATIVE_INFINITY);
// From: -0.00
// To: Double.NaN
- check("-0.00", new Double(Double.NaN));
+ check("-0.00", Double.NaN);
}
/**
@@ -220,31 +220,31 @@
// From: 1000.000
// To: Double.POSITIVE_INFINITY
- check("1000.000", new Double(Double.POSITIVE_INFINITY));
+ check("1000.000", Double.POSITIVE_INFINITY);
// From: -1000.000
// To: Double.NEGATIVE_INFINITY
- check("-1000.000", new Double(Double.NEGATIVE_INFINITY));
+ check("-1000.000", Double.NEGATIVE_INFINITY);
// From: 0.0
// To: Double.NaN
- check("0.0", new Double(Double.NaN));
+ check("0.0", Double.NaN);
// From: -0.0 (Double)
// To: Double.NaN
- check("-0.0", new Double(Double.NaN));
+ check("-0.0", Double.NaN);
// From: Double.NaN
// To: Double.NaN
- check("\ufffd", new Double(Double.NaN));
+ check("\ufffd", Double.NaN);
// From: Double.POSITIVE_INFINITY
// To: Double.NaN
- check("\u221e", new Double(Double.POSITIVE_INFINITY));
+ check("\u221e", Double.POSITIVE_INFINITY);
// From: Double.NEGATIVE_INFINITY
// To: Double.NaN
- check("-\u221e", new Double(Double.NEGATIVE_INFINITY));
+ check("-\u221e", Double.NEGATIVE_INFINITY);
}
/**
@@ -257,15 +257,15 @@
// From: 1000
// To: Double.POSITIVE_INFINITY
- check("1000", new Double(Double.POSITIVE_INFINITY));
+ check("1000", Double.POSITIVE_INFINITY);
// From: -1000
// To: Double.NEGATIVE_INFINITY
- check("-1000", new Double(Double.NEGATIVE_INFINITY));
+ check("-1000", Double.NEGATIVE_INFINITY);
// From: -000 (Long)
// To: Double.NaN
- check("-000", new Double(Double.NaN));
+ check("-000", Double.NaN);
}
/**
@@ -350,20 +350,20 @@
{
new BigDecimal("0"), new BigDecimal("0.0"), new BigDecimal("5"),
new BigDecimal("5.0"), new BigDecimal("5.1"),
- new Double(Double.POSITIVE_INFINITY), new Double(Double.NaN),
+ Double.POSITIVE_INFINITY, Double.NaN,
new BigDecimal("0"), new BigDecimal("0.0"),
new BigDecimal("-5"), new BigDecimal("-5.0"),
new BigDecimal("-5.1"),
- new Double(Double.NEGATIVE_INFINITY), new Double(Double.NaN),
+ Double.NEGATIVE_INFINITY, Double.NaN,
},
{
new BigDecimal("0"), new BigDecimal("0.0"),
new BigDecimal("-5"), new BigDecimal("-5.0"),
new BigDecimal("-5.1"),
- new Double(Double.NEGATIVE_INFINITY), new Double(Double.NaN),
+ Double.NEGATIVE_INFINITY, Double.NaN,
new BigDecimal("0"), new BigDecimal("0.0"), new BigDecimal("5"),
new BigDecimal("5.0"), new BigDecimal("5.1"),
- new Double(Double.POSITIVE_INFINITY),
+ Double.POSITIVE_INFINITY,
},
};
--- a/jdk/test/java/text/Format/NumberFormat/Bug4208135.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/Bug4208135.java Fri Sep 16 13:15:02 2016 -0700
@@ -47,12 +47,12 @@
df.applyPattern("0.#E0");
df.setDecimalSeparatorAlwaysShown(true);
- checkFormat(new Double(0.0), "0.E0");
- checkFormat(new Double(10.0), "1.E1");
- checkFormat(new Double(1000.0), "1.E3");
- checkFormat(new Long(0), "0.E0");
- checkFormat(new Long(10), "1.E1");
- checkFormat(new Long(1000), "1.E3");
+ checkFormat(0.0, "0.E0");
+ checkFormat(10.0, "1.E1");
+ checkFormat(1000.0, "1.E3");
+ checkFormat(0L, "0.E0");
+ checkFormat(10L, "1.E1");
+ checkFormat(1000L, "1.E3");
checkFormat(new BigDecimal("0.0"), "0.E0");
checkFormat(new BigDecimal("10.0"), "1.E1");
checkFormat(new BigDecimal("1000.0"), "1.E3");
@@ -61,12 +61,12 @@
checkFormat(new BigInteger("1000"), "1.E3");
df.setDecimalSeparatorAlwaysShown(false);
- checkFormat(new Double(0.0), "0E0");
- checkFormat(new Double(10.0), "1E1");
- checkFormat(new Double(1000.0), "1E3");
- checkFormat(new Long(0), "0E0");
- checkFormat(new Long(10), "1E1");
- checkFormat(new Long(1000), "1E3");
+ checkFormat(0.0, "0E0");
+ checkFormat(10.0, "1E1");
+ checkFormat(1000.0, "1E3");
+ checkFormat(0L, "0E0");
+ checkFormat(10L, "1E1");
+ checkFormat(1000L, "1E3");
checkFormat(new BigDecimal("0.0"), "0E0");
checkFormat(new BigDecimal("10.0"), "1E1");
checkFormat(new BigDecimal("1000.0"), "1E3");
@@ -77,12 +77,12 @@
df.applyPattern("0.###");
df.setDecimalSeparatorAlwaysShown(true);
- checkFormat(new Double(0.0), "0.");
- checkFormat(new Double(10.0), "10.");
- checkFormat(new Double(1000.0), "1000.");
- checkFormat(new Long(0), "0.");
- checkFormat(new Long(10), "10.");
- checkFormat(new Long(1000), "1000.");
+ checkFormat(0.0, "0.");
+ checkFormat(10.0, "10.");
+ checkFormat(1000.0, "1000.");
+ checkFormat(0L, "0.");
+ checkFormat(10L, "10.");
+ checkFormat(1000L, "1000.");
checkFormat(new BigDecimal("0.0"), "0.");
checkFormat(new BigDecimal("10.0"), "10.");
checkFormat(new BigDecimal("1000.0"), "1000.");
@@ -91,12 +91,12 @@
checkFormat(new BigInteger("1000"), "1000.");
df.setDecimalSeparatorAlwaysShown(false);
- checkFormat(new Double(0.0), "0");
- checkFormat(new Double(10.0), "10");
- checkFormat(new Double(1000.0), "1000");
- checkFormat(new Long(0), "0");
- checkFormat(new Long(10), "10");
- checkFormat(new Long(1000), "1000");
+ checkFormat(0.0, "0");
+ checkFormat(10.0, "10");
+ checkFormat(1000.0, "1000");
+ checkFormat(0L, "0");
+ checkFormat(10L, "10");
+ checkFormat(1000L, "1000");
checkFormat(new BigDecimal("0.0"), "0");
checkFormat(new BigDecimal("10.0"), "10");
checkFormat(new BigDecimal("1000.0"), "1000");
--- a/jdk/test/java/text/Format/NumberFormat/Bug4833877.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/Bug4833877.java Fri Sep 16 13:15:02 2016 -0700
@@ -51,20 +51,20 @@
/*
* Test for double/Double
*/
- checkFormat(new Double(252.5252525252525), "1,010.10101010101");
- checkParse("-1,010.10101010101", new Double(-252.5252525252525));
+ checkFormat(252.5252525252525, "1,010.10101010101");
+ checkParse("-1,010.10101010101", -252.5252525252525);
- checkFormat(new Double(-2222.2222), "-8,888.8888");
- checkParse("8888.8888", new Double(2222.2222));
+ checkFormat(-2222.2222, "-8,888.8888");
+ checkParse("8888.8888", 2222.2222);
/*
* Test for long/Long
*/
- checkFormat(new Long(1000), "4,000");
- checkParse("-4,000", new Long(-1000));
+ checkFormat(1000L, "4,000");
+ checkParse("-4,000", -1000L);
- checkFormat(new Long(-250), "-1,000");
- checkParse("1000", new Long(250));
+ checkFormat(-250L, "-1,000");
+ checkParse("1000", 250L);
/* ---------------------------------------------------------------- */
@@ -104,20 +104,20 @@
/*
* Test for double/Double
*/
- checkFormat(new Double(252.5252525252525), "-1,010.10101010101");
- checkParse("-1,010.10101010101", new Double(252.5252525252525));
+ checkFormat(252.5252525252525, "-1,010.10101010101");
+ checkParse("-1,010.10101010101", 252.5252525252525);
- checkFormat(new Double(-2222.2222), "8,888.8888");
- checkParse("8888.8888", new Double(-2222.2222));
+ checkFormat(-2222.2222, "8,888.8888");
+ checkParse("8888.8888", -2222.2222);
/*
* Test for long/Long
*/
- checkFormat(new Long(1000), "-4,000");
- checkParse("-4,000", new Long(1000));
+ checkFormat(1000L, "-4,000");
+ checkParse("-4,000", 1000L);
- checkFormat(new Long(-250), "1,000");
- checkParse("1000", new Long(-250));
+ checkFormat(-250L, "1,000");
+ checkParse("1000", -250L);
/* ---------------------------------------------------------------- */
@@ -157,30 +157,30 @@
/*
* Test for double/Double
*/
- checkFormat(new Double(3333.3333333), "-9,999.9999999");
- checkParse("-10,000.00000000000", new Double(3333.3333333333335));// rounding error
+ checkFormat(3333.3333333, "-9,999.9999999");
+ checkParse("-10,000.00000000000", 3333.3333333333335);// rounding error
df.setParseIntegerOnly(true);
- checkFormat(new Double(-3333.3333333), "9,999.9999999");
- checkParse("10,000.00000000000", new Long(-3333));
+ checkFormat(-3333.3333333, "9,999.9999999");
+ checkParse("10,000.00000000000", -3333L);
df.setParseIntegerOnly(false);
- checkFormat(new Double(-3333.3333333), "9,999.9999999");
- checkParse("10,000.00000000000", new Double(-3333.3333333333335));// rounding error
+ checkFormat(-3333.3333333, "9,999.9999999");
+ checkParse("10,000.00000000000", -3333.3333333333335);// rounding error
/*
* Test for long/Long
*/
- checkFormat(new Long(3333), "-9,999");
+ checkFormat(3333L, "-9,999");
df.setParseIntegerOnly(true);
- checkParse("-10,000", new Long(3333));
+ checkParse("-10,000", 3333L);
df.setParseIntegerOnly(false);
- checkParse("-10000", new Double(3333.3333333333335));// rounding error
+ checkParse("-10000", 3333.3333333333335);// rounding error
- checkFormat(new Long(-3333), "9,999");
+ checkFormat(-3333L, "9,999");
df.setParseIntegerOnly(true);
- checkParse("10,000", new Long(-3333));
+ checkParse("10,000", -3333L);
df.setParseIntegerOnly(false);
- checkParse("10000", new Double(-3333.3333333333335));// rounding error
+ checkParse("10000", -3333.3333333333335);// rounding error
/* ---------------------------------------------------------------- */
@@ -225,20 +225,20 @@
/*
* Test for double/Double
*/
- checkFormat(new Double(252.5252525252525), "1.01010101010101E3");
- checkParse("-1.01010101010101E3", new Double(-2.525252525252525E2));
+ checkFormat(252.5252525252525, "1.01010101010101E3");
+ checkParse("-1.01010101010101E3", -2.525252525252525E2);
- checkFormat(new Double(-2222.2222), "-8.8888888E3");
- checkParse("8888.8888", new Double(2.2222222E3));
+ checkFormat(-2222.2222, "-8.8888888E3");
+ checkParse("8888.8888", 2.2222222E3);
/*
* Test for long/Long
*/
- checkFormat(new Long(1000), "4E3");
- checkParse("-4E3", new Long(-1000));
+ checkFormat(1000L, "4E3");
+ checkParse("-4E3", -1000L);
- checkFormat(new Long(-250), "-1E3");
- checkParse("1000", new Long(250));
+ checkFormat(-250L, "-1E3");
+ checkParse("1000", 250L);
/* ---------------------------------------------------------------- */
@@ -279,20 +279,20 @@
/*
* Test for double/Double
*/
- checkFormat(new Double(252.5252525252525), "-1.01010101010101E3");
- checkParse("-1.01010101010101E3", new Double(2.525252525252525E2));
+ checkFormat(252.5252525252525, "-1.01010101010101E3");
+ checkParse("-1.01010101010101E3", 2.525252525252525E2);
- checkFormat(new Double(-2222.2222), "8.8888888E3");
- checkParse("8888.8888", new Double(-2.2222222E3));
+ checkFormat(-2222.2222, "8.8888888E3");
+ checkParse("8888.8888", -2.2222222E3);
/*
* Test for long/Long
*/
- checkFormat(new Long(1000), "-4E3");
- checkParse("-4E3", new Long(1000));
+ checkFormat(1000L, "-4E3");
+ checkParse("-4E3", 1000L);
- checkFormat(new Long(-250), "1E3");
- checkParse("1000", new Long(-250));
+ checkFormat(-250L, "1E3");
+ checkParse("1000", -250L);
/* ---------------------------------------------------------------- */
@@ -333,30 +333,30 @@
/*
* Test for double/Double
*/
- checkFormat(new Double(3333.3333333), "-9.9999999999E3");
- checkParse("-1.00000000000000E3", new Double(3.33333333333333333E2));
+ checkFormat(3333.3333333, "-9.9999999999E3");
+ checkParse("-1.00000000000000E3", 3.33333333333333333E2);
df.setParseIntegerOnly(true);
- checkFormat(new Double(-3333.3333333), "9.9999999999E3");
- checkParse("10.00000000000000E3", new Long(-3));
+ checkFormat(-3333.3333333, "9.9999999999E3");
+ checkParse("10.00000000000000E3",-3L);
df.setParseIntegerOnly(false);
- checkFormat(new Double(-3333.3333333), "9.9999999999E3");
- checkParse("10.00000000000000E3", new Double(-3.33333333333333333E3));
+ checkFormat(-3333.3333333, "9.9999999999E3");
+ checkParse("10.00000000000000E3", -3.33333333333333333E3);
/*
* Test for long/Long
*/
- checkFormat(new Long(3333), "-9.999E3");
+ checkFormat(3333L, "-9.999E3");
df.setParseIntegerOnly(true);
- checkParse("-1.0E4", new Long(0));
+ checkParse("-1.0E4", 0L);
df.setParseIntegerOnly(false);
- checkParse("-1.0E4", new Double(3333.3333333333335));
+ checkParse("-1.0E4", 3333.3333333333335);
- checkFormat(new Long(-3333), "9.999E3");
+ checkFormat(-3333L, "9.999E3");
df.setParseIntegerOnly(true);
- checkParse("10.0E4", new Long(-3));
+ checkParse("10.0E4", -3L);
df.setParseIntegerOnly(false);
- checkParse("10.0E4", new Double(-33333.3333333333336));
+ checkParse("10.0E4", -33333.3333333333336);
/* ---------------------------------------------------------------- */
--- a/jdk/test/java/text/Format/NumberFormat/Bug4838107.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/Bug4838107.java Fri Sep 16 13:15:02 2016 -0700
@@ -71,47 +71,47 @@
dfs = df.getDecimalFormatSymbols();
/* Test with default pattern */
- test(new Double(1234), "1,234");
- test(new Double(0.1234), "0.123"); // rounded
- test(new Double(-1234), "-1,234");
- test(new Double(-0.1234), "-0.123"); // rounded
+ test(1234D, "1,234");
+ test(0.1234, "0.123"); // rounded
+ test(-1234D, "-1,234");
+ test(-0.1234, "-0.123"); // rounded
- test(new Double(Double.POSITIVE_INFINITY), "\u221e");
- test(new Double(Double.NEGATIVE_INFINITY), "-\u221e");
- test(new Double(Double.NaN), "\ufffd"); // without prefix and suffix
- test(new Double(0.0), "0");
- test(new Double(-0.0), "-0"); // with the minus sign
+ test(Double.POSITIVE_INFINITY, "\u221e");
+ test(Double.NEGATIVE_INFINITY, "-\u221e");
+ test(Double.NaN, "\ufffd"); // without prefix and suffix
+ test(0.0, "0");
+ test(-0.0, "-0"); // with the minus sign
/* Specify a pattern and the minus sign. */
prepareFormatter("<P>#.###E00<S>", 'm');
- test(new Double(1234), "<P>1.234E03<S>");
- test(new Double(0.1234), "<P>1.234Em01<S>");
- test(new Double(-1234), "m<P>1.234E03<S>");
- test(new Double(-0.1234), "m<P>1.234Em01<S>");
+ test(1234D, "<P>1.234E03<S>");
+ test(0.1234, "<P>1.234Em01<S>");
+ test(-1234D, "m<P>1.234E03<S>");
+ test(-0.1234, "m<P>1.234Em01<S>");
prepareFormatter("<P>#.###E00<S>;#.###E00", 'm');
- test(new Double(1234), "<P>1.234E03<S>");
- test(new Double(0.1234), "<P>1.234Em01<S>");
- test(new Double(-1234), "1.234E03");
- test(new Double(-0.1234), "1.234Em01");
+ test(1234D, "<P>1.234E03<S>");
+ test(0.1234, "<P>1.234Em01<S>");
+ test(-1234D, "1.234E03");
+ test(-0.1234, "1.234Em01");
prepareFormatter("#.###E00;<P>#.###E00<S>", 'm');
- test(new Double(1234), "1.234E03");
- test(new Double(0.1234), "1.234Em01");
- test(new Double(-1234), "<P>1.234E03<S>");
- test(new Double(-0.1234), "<P>1.234Em01<S>");
+ test(1234D, "1.234E03");
+ test(0.1234, "1.234Em01");
+ test(-1234D, "<P>1.234E03<S>");
+ test(-0.1234, "<P>1.234Em01<S>");
prepareFormatter("<P>#.###E00<S>;<p>-#.###E00<s>", 'm');
- test(new Double(1234), "<P>1.234E03<S>");
- test(new Double(0.1234), "<P>1.234Em01<S>");
- test(new Double(-1234), "<p>m1.234E03<s>");
- test(new Double(-0.1234), "<p>m1.234Em01<s>");
+ test(1234D, "<P>1.234E03<S>");
+ test(0.1234, "<P>1.234Em01<S>");
+ test(-1234D, "<p>m1.234E03<s>");
+ test(-0.1234, "<p>m1.234Em01<s>");
- test(new Double(Double.POSITIVE_INFINITY), "<P>\u221e<S>");
- test(new Double(Double.NEGATIVE_INFINITY), "<p>m\u221e<s>");
- test(new Double(Double.NaN), "\ufffd"); // without prefix and suffix
- test(new Double(0.0), "<P>0E00<S>");
- test(new Double(-0.0), "<p>m0E00<s>"); // with the minus sign
+ test(Double.POSITIVE_INFINITY, "<P>\u221e<S>");
+ test(Double.NEGATIVE_INFINITY, "<p>m\u221e<s>");
+ test(Double.NaN, "\ufffd"); // without prefix and suffix
+ test(0.0, "<P>0E00<S>");
+ test(-0.0, "<p>m0E00<s>"); // with the minus sign
}
static void test_BigDecimal() {
@@ -151,19 +151,19 @@
dfs = df.getDecimalFormatSymbols();
/* Test with default pattern */
- test(new Long(123456789), "123,456,789");
- test(new Long(-123456789), "-123,456,789");
+ test(123456789L, "123,456,789");
+ test(-123456789L, "-123,456,789");
- test(new Long(0), "0");
- test(new Long(-0), "0");
+ test(0L, "0");
+ test(-0L, "0");
/* Specify a pattern and the minus sign. */
prepareFormatter("<P>#,###<S>;<p>-#,###<s>", 'm');
- test(new Long(123456789), "<P>123,456,789<S>");
- test(new Long(-123456789), "<p>m123,456,789<s>");
+ test(123456789L, "<P>123,456,789<S>");
+ test(-123456789L, "<p>m123,456,789<s>");
- test(new Long(0), "<P>0<S>");
- test(new Long(-0), "<P>0<S>");
+ test(0L, "<P>0<S>");
+ test(-0L, "<P>0<S>");
}
static void test_BigInteger() {
--- a/jdk/test/java/text/Format/NumberFormat/Bug4944439.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/Bug4944439.java Fri Sep 16 13:15:02 2016 -0700
@@ -84,7 +84,7 @@
}
int index = s.indexOf('.');
- Long l = new Long(s.substring(0, index));
+ Long l = Long.valueOf(s.substring(0, index));
if (!l.equals(number)) {
err = true;
System.err.println("Failed: DecimalFormat.parse(" + s +
@@ -101,7 +101,7 @@
number.getClass().getName());
}
- Double d = new Double(s);
+ Double d = Double.valueOf(s);
if (!d.equals(number)) {
err = true;
System.err.println("Failed: DecimalFormat.parse(" + s +
--- a/jdk/test/java/text/Format/NumberFormat/Bug4990596.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/Bug4990596.java Fri Sep 16 13:15:02 2016 -0700
@@ -35,6 +35,7 @@
new DecimalFormat().format(new MutableInteger(0));
}
+ @SuppressWarnings("serial")
public static class MutableInteger extends Number {
public int value;
--- a/jdk/test/java/text/Format/NumberFormat/Bug6278616.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/Bug6278616.java Fri Sep 16 13:15:02 2016 -0700
@@ -47,7 +47,7 @@
NumberFormat nf = NumberFormat.getInstance();
for (int j = 0; j < ints.length; j++) {
- String s_i = nf.format(new Integer(ints[j]));
+ String s_i = nf.format(ints[j]);
String s_ai = nf.format(new AtomicInteger(ints[j]));
if (!s_i.equals(s_ai)) {
throw new RuntimeException("format(AtomicInteger " + s_ai +
@@ -57,7 +57,7 @@
}
for (int j = 0; j < longs.length; j++) {
- String s_l = nf.format(new Long(longs[j]));
+ String s_l = nf.format(longs[j]);
String s_al = nf.format(new AtomicLong(longs[j]));
if (!s_l.equals(s_al)) {
throw new RuntimeException("format(AtomicLong " + s_al +
--- a/jdk/test/java/text/Format/NumberFormat/NumberRegression.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/NumberRegression.java Fri Sep 16 13:15:02 2016 -0700
@@ -289,7 +289,7 @@
DecimalFormat df = new DecimalFormat();
Double d = (Double)df.parse("123.55456", pos=new ParsePosition(0));
if (!d.toString().equals("123.55456")) {
- errln("Result -> " + d.doubleValue());
+ errln("Result -> " + d);
}
Locale.setDefault(savedLocale);
}
@@ -395,11 +395,11 @@
Locale.setDefault(Locale.US);
DecimalFormat df = new DecimalFormat();
String str = "0.1234";
- Double d1 = new Double(str);
+ Double d1 = 0.1234;
Double d2 = (Double) df.parse(str, new ParsePosition(0));
logln(d1.toString());
if (d2.doubleValue() != d1.doubleValue())
- errln("Bug 4095713 test failed, new double value : " + d2.doubleValue());
+ errln("Bug 4095713 test failed, new double value : " + d2);
Locale.setDefault(savedLocale);
}
@@ -870,7 +870,7 @@
DecimalFormat fmt = new DecimalFormat("#,##0.00");
StringBuffer formatted = new StringBuffer();
FieldPosition field = new FieldPosition(0);
- Double num = new Double(1234.5);
+ Double num = 1234.5;
fmt.format(num, formatted, field);
if (field.getBeginIndex() != 0 && field.getEndIndex() != 5)
errln("Format 1234.5 failed. Begin index: " + field.getBeginIndex() + " End index: " + field.getEndIndex());
@@ -1416,7 +1416,7 @@
DecimalFormat fmt = new DecimalFormat("#",
DecimalFormatSymbols.getInstance(Locale.US));
for (int i=0; i<DATA.length; i+=3) {
- double in = Double.valueOf(DATA[i]).doubleValue();
+ double in = Double.valueOf(DATA[i]);
String pat = DATA[i+1];
String exp = DATA[i+2];
fmt.applyPattern(pat);
@@ -1622,7 +1622,7 @@
String str = Long.toString(DATA[i]);
for (int m = 1; m <= 100; m++) {
fmt.setMultiplier(m);
- long n = ((Number) fmt.parse(str)).longValue();
+ long n = fmt.parse(str).longValue();
if (n > 0 != DATA[i] > 0) {
errln("\"" + str + "\" parse(x " + fmt.getMultiplier() +
") => " + n);
@@ -1637,15 +1637,15 @@
*/
public void Test4217661() {
Object[] DATA = {
- new Double(0.001), "0",
- new Double(1.001), "1",
- new Double(0.006), "0.01",
- new Double(1.006), "1.01",
+ 0.001, "0",
+ 1.001, "1",
+ 0.006, "0.01",
+ 1.006, "1.01",
};
NumberFormat fmt = NumberFormat.getInstance(Locale.US);
fmt.setMaximumFractionDigits(2);
for (int i=0; i<DATA.length; i+=2) {
- String s = fmt.format(((Double) DATA[i]).doubleValue());
+ String s = fmt.format((Double) DATA[i]);
if (!s.equals(DATA[i+1])) {
errln("FAIL: Got " + s + ", exp " + DATA[i+1]);
}
@@ -1804,6 +1804,7 @@
}
}
+@SuppressWarnings("serial")
class myformat implements Serializable
{
DateFormat _dateFormat = DateFormat.getDateInstance();
@@ -1817,6 +1818,7 @@
}
}
+@SuppressWarnings("serial")
class MyNumberFormatTest extends NumberFormat {
public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos) {
return new StringBuffer("");
@@ -1825,6 +1827,6 @@
return new StringBuffer("");
}
public Number parse(String text, ParsePosition parsePosition) {
- return new Integer(0);
+ return 0;
}
}
--- a/jdk/test/java/text/Format/NumberFormat/NumberRoundTrip.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/NumberRoundTrip.java Fri Sep 16 13:15:02 2016 -0700
@@ -130,11 +130,11 @@
}
public void doTest(NumberFormat fmt, double value) {
- doTest(fmt, new Double(value));
+ doTest(fmt, Double.valueOf(value));
}
public void doTest(NumberFormat fmt, long value) {
- doTest(fmt, new Long(value));
+ doTest(fmt, Long.valueOf(value));
}
static double proportionalError(Number a, Number b) {
--- a/jdk/test/java/text/Format/NumberFormat/NumberTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/NumberTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -403,7 +403,7 @@
float[] parseExpected = { 0, 0, 12345, -12345 };
for (int i = 0; i < parseInput.length; i++) {
- float result = ((Number) format.parse(parseInput[i])).floatValue();
+ float result = format.parse(parseInput[i]).floatValue();
if (result != parseExpected[i]) {
errln("FAIL: Expected " + parseExpected[i] + ", got " + result);
}
--- a/jdk/test/java/text/Format/NumberFormat/SerializationLoadTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/SerializationLoadTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -62,6 +62,7 @@
}
}
+@SuppressWarnings("serial")
class CheckDecimalFormat implements Serializable
{
DecimalFormat _decFormat = (DecimalFormat)NumberFormat.getInstance();
@@ -73,6 +74,7 @@
}
}
+@SuppressWarnings("serial")
class CheckDecimalFormatSymbols implements Serializable
{
DecimalFormatSymbols _decFormatSymbols = new DecimalFormatSymbols();
--- a/jdk/test/java/text/Format/NumberFormat/SerializationSaveTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/NumberFormat/SerializationSaveTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -57,6 +57,7 @@
}
}
+@SuppressWarnings("serial")
class CheckDecimalFormat implements Serializable
{
DecimalFormat _decFormat = (DecimalFormat)NumberFormat.getInstance();
@@ -68,6 +69,7 @@
}
}
+@SuppressWarnings("serial")
class CheckDecimalFormatSymbols implements Serializable
{
DecimalFormatSymbols _decFormatSymbols = new DecimalFormatSymbols();
--- a/jdk/test/java/text/Format/common/FormatIteratorTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/common/FormatIteratorTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -37,6 +37,7 @@
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
+import java.text.AttributedCharacterIterator.Attribute;
/**
* FormatTester creates Formats, and tests the resulting FieldPositions
@@ -94,7 +95,6 @@
* Any lines starting with {@code '#'} are comment lines and ignored.
*/
public class FormatIteratorTest extends IntlTest {
- private static HashMap attrs;
private Format format;
private Object value;
private String text;
@@ -143,30 +143,31 @@
"dateFormat.props"));
}
+ @SuppressWarnings("unchecked")
private void _test(File file) {
try {
- attrs = new HashMap();
logln("testing: " + file);
PParser parser = new PParser();
- Hashtable contents = parser.parse(new BufferedReader(
+ Map<String,Object> contents = parser.parse(new BufferedReader(
new FileReader(file)));
- Vector test = (Vector)contents.get("tests");
+ List<Object> test = (List)contents.get("tests");
for (int counter = 0; counter < test.size(); counter++) {
logln("creating: " + (counter / 2));
AttributedCharacterIterator iterator =
- create((Hashtable)test.get(counter));
+ create((Map)test.get(counter));
logln("verifying: " + (counter / 2));
- verify(iterator, (Hashtable)test.get(++counter));
+ verify(iterator, (Map)test.get(++counter));
}
} catch (IOException ioe) {
errln("Error reading: " + ioe);
}
}
- public void verify(AttributedCharacterIterator iterator,Hashtable table) {
+ @SuppressWarnings("unchecked")
+ public void verify(AttributedCharacterIterator iterator,Map<String,Object> table) {
int length = Integer.parseInt((String)table.get("length"));
// Verify the text
@@ -185,10 +186,10 @@
for (int counter = 0; counter < length; counter++) {
iterator.setIndex(counter);
if (!verifyAttributes(iterator.getAttributes().keySet(),
- makeAttributes((Vector)table.get(Integer.
+ makeAttributes((List)table.get(Integer.
toString(counter))))) {
errln("Attributes don't match at " + counter + " expecting " +
- makeAttributes((Vector)table.get(Integer.toString
+ makeAttributes((List)table.get(Integer.toString
(counter))) + " got " +
iterator.getAttributes().keySet());
}
@@ -196,10 +197,10 @@
for (int counter = length - 1; counter >= 0; counter--) {
iterator.setIndex(counter);
if (!verifyAttributes(iterator.getAttributes().keySet(),
- makeAttributes((Vector)table.get(Integer.
+ makeAttributes((List)table.get(Integer.
toString(counter))))) {
errln("Attributes don't match at " + counter + " expecting " +
- makeAttributes((Vector)table.get(Integer.toString
+ makeAttributes((List)table.get(Integer.toString
(counter))) + " got " +
iterator.getAttributes().keySet());
}
@@ -207,31 +208,33 @@
verifyLimits(iterator, table);
text = escapeIfNecessary((String)table.get("text"));
- Vector fps = (Vector)table.get("fieldPositions");
+ List<Object> fps = (List)table.get("fieldPositions");
if (fps != null) {
for (int counter = 0; counter < fps.size(); counter++) {
- verifyFieldPosition(counter, (Hashtable)fps.get(counter));
+ verifyFieldPosition(counter,(Map)fps.get(counter));
}
}
}
+ @SuppressWarnings("unchecked")
private void verifyLimits(AttributedCharacterIterator iterator,
- Hashtable table) {
- Vector limits = (Vector)table.get("limits");
+ Map<String,Object> table) {
+ List<Object> limits = (List)table.get("limits");
if (limits != null) {
for (int counter = 0; counter < limits.size(); counter++) {
- verifyLimit(iterator, (Hashtable)limits.get(counter));
+ verifyLimit(iterator, (Map)limits.get(counter));
}
}
}
private void verifyLimit(AttributedCharacterIterator iterator,
- Hashtable table) {
+ Map<String,Object> table) {
int begin = Integer.parseInt((String)table.get("begin"));
int end = Integer.parseInt((String)table.get("end"));
- Set attrs = makeAttributes((Vector)table.get("attributes"));
+ @SuppressWarnings("unchecked")
+ Set<Attribute> attrs = makeAttributes((List)table.get("attributes"));
String begin2S = (String)table.get("begin2");
int begin2 = (begin2S != null) ? Integer.parseInt(begin2S) : begin;
String end2S = (String)table.get("end2");
@@ -262,9 +265,9 @@
}
}
- private boolean verifyAttributes(Set a, Set b) {
- boolean aEmpty = (a.size() == 0);
- boolean bEmpty = (b.size() == 0);
+ private boolean verifyAttributes(Set<Attribute> a, Set<Attribute> b) {
+ boolean aEmpty = a.isEmpty();
+ boolean bEmpty = b.isEmpty();
if (aEmpty && bEmpty) {
return true;
@@ -284,14 +287,14 @@
return buffer.toString();
}
- private void verifyFieldPosition(int index, Hashtable table) {
+ private void verifyFieldPosition(int index, Map<String,Object> table) {
Object o = table.get("field");
int begin = Integer.parseInt((String)table.get("begin"));
int end = Integer.parseInt((String)table.get("end"));
if (o != null) {
FieldPosition fp = new FieldPosition(((Integer)
- lookupField((String)o)).intValue());
+ lookupField((String)o)));
verifyFieldPosition(fp, begin, end, index);
}
@@ -322,11 +325,11 @@
}
}
- public AttributedCharacterIterator create(Hashtable table) {
+ public AttributedCharacterIterator create(Map<String,Object> table) {
format = (Format)createInstance((String)table.get("class"),
- ((Vector)table.get("args")).toArray());
+ ((List)table.get("args")).toArray());
value = createInstance((String)table.get("valueClass"),
- ((Vector)table.get("valueArgs")).toArray());
+ ((List)table.get("valueArgs")).toArray());
logln("Created format: " + format + " value " + value);
AttributedCharacterIterator aci = format.
@@ -343,11 +346,12 @@
private Object createInstance(String className, Object[] args) {
if (className.equals("java.lang.reflect.Array")) {
for (int counter = 0; counter < args.length; counter++) {
- if (args[counter] instanceof Vector) {
- Vector v = (Vector)args[counter];
+ if (args[counter] instanceof List) {
+ @SuppressWarnings("unchecked")
+ List<Object> v = (List<Object>)args[counter];
args[counter] = createInstance((String)v.get(0),
- ((Vector)v.get(1)).toArray());
+ ((List)v.get(1)).toArray());
}
}
return args;
@@ -361,9 +365,9 @@
} else if (className.equals("java.util.concurrent.atomic.AtomicLong")) {
return new AtomicLong(Long.valueOf((String)args[0]));
} else {
- Class klass = lookupClass(className);
- Constructor cons = klass.getConstructor(
- new Class[] { String.class });
+ Class<?> klass = lookupClass(className);
+ Constructor<?> cons = klass.getConstructor(
+ new Class<?>[] { String.class });
Object value = cons.newInstance(args);
return value;
@@ -374,20 +378,20 @@
}
}
- private Class lookupClass(String name) throws ClassNotFoundException {
+ private Class<?> lookupClass(String name) throws ClassNotFoundException {
try {
- Class klass = Class.forName(name);
+ Class<?> klass = Class.forName(name);
return klass;
} catch (ClassNotFoundException e1) {}
try {
- Class klass = Class.forName("java.lang." + name);
+ Class<?> klass = Class.forName("java.lang." + name);
return klass;
} catch (ClassNotFoundException e1) {}
- Class klass = Class.forName("java.text." + name);
+ Class<?> klass = Class.forName("java.text." + name);
return klass;
}
@@ -397,7 +401,7 @@
try {
int dotIndex = name.indexOf('.');
- Class klass = lookupClass(name.substring(0, dotIndex));
+ Class<?> klass = lookupClass(name.substring(0, dotIndex));
String fieldName = name.substring(dotIndex + 1);
Field[] fields = klass.getFields();
@@ -429,8 +433,8 @@
return string;
}
- public Set makeAttributes(Vector names) {
- HashSet set = new HashSet(Math.max(1, names.size()));
+ public Set<Attribute> makeAttributes(List<Object> names) {
+ Set<Attribute> set = new HashSet<>(Math.max(1, names.size()));
for (int counter = 0; counter < names.size(); counter++) {
set.add(makeAttribute((String)names.get(counter)));
--- a/jdk/test/java/text/Format/common/PParser.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/text/Format/common/PParser.java Fri Sep 16 13:15:02 2016 -0700
@@ -58,7 +58,7 @@
public PParser() {
}
- public Hashtable parse(Reader r) throws IOException {
+ public Map<String,Object> parse(Reader r) throws IOException {
this.reader = r;
bufferedToken = false;
lineNumber = 0;
@@ -91,23 +91,23 @@
}
protected Object parseArray() throws IOException {
- Vector array = new Vector();
- int token;
+ List<Object> array = new ArrayList<>();
+ int token;
while ((token = getToken()) != CLOSE_ARRAY) {
if (token == MORE) {
token = getToken();
}
if (token != CLOSE_ARRAY) {
- array.addElement(parseValue(token));
+ array.add(parseValue(token));
}
}
return array;
}
- protected Hashtable parsePair() throws IOException {
- Hashtable ht = new Hashtable(11);
- int token;
+ protected Map<String,Object> parsePair() throws IOException {
+ Map<String,Object> ht = new HashMap<>(11);
+ int token;
while ((token = getToken()) != CLOSE_PAIR) {
if (token != STRING) {
@@ -133,11 +133,12 @@
}
protected int getToken() throws IOException {
- int token = getToken(false, false);
+ int token = getToken(false, false);
return token;
}
+ @SuppressWarnings("fallthrough")
protected int getToken(boolean wantsWS, boolean inString)
throws IOException {
if (bufferedToken) {
@@ -225,31 +226,26 @@
throw new RuntimeException(errorString + " at line " + lineNumber + " column " + column);
}
+ @SuppressWarnings("unchecked")
public static void dump(Object o) {
if (o instanceof String) {
System.out.print(o);
- } else if(o instanceof Vector) {
- Enumeration e = ((Vector)o).elements();
-
+ } else if(o instanceof List) {
dump(" (");
- while (e.hasMoreElements()) {
- dump(e.nextElement());
+ ((List)o).forEach((l) -> {
+ dump(l);
dump(" -- ");
- }
+ });
dump(" )");
} else {
- Hashtable ht = (Hashtable)o;
- Enumeration e = ht.keys();
-
+ Map<String,Object> ht = (Map<String,Object>)o;
dump(" {");
- while (e.hasMoreElements()) {
- Object key = e.nextElement();
-
- dump(key);
+ ht.keySet().forEach(l -> {
+ dump(l);
dump(" = ");
- dump(ht.get(key));
+ dump(ht.get(l));
dump(";");
- }
+ });
dump(" }");
}
}
@@ -259,9 +255,9 @@
System.out.println("need filename");
} else {
try {
- FileReader fr = new FileReader(args[0]);
- PParser parser = new PParser();
- Hashtable ht = parser.parse(fr);
+ FileReader fr = new FileReader(args[0]);
+ PParser parser = new PParser();
+ Map<String,Object> ht = parser.parse(fr);
dump(ht);
System.out.println();
--- a/jdk/test/java/util/PriorityQueue/NoNulls.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/PriorityQueue/NoNulls.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/BlockingQueue/LoopHelpers.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/BlockingQueue/OfferDrainToLoops.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/ConcurrentHashMap/LoopHelpers.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/ConcurrentQueues/LoopHelpers.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/ConcurrentQueues/OfferRemoveLoops.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/DelayQueue/Stress.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/Exchanger/LoopHelpers.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/ExecutorCompletionService/LoopHelpers.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/FutureTask/LoopHelpers.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCorePoolSize.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/ScheduledThreadPoolExecutor/ZeroCoreThreads.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/ThreadPoolExecutor/ConfigChanges.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/ThreadPoolExecutor/ThreadRestarts.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/ThreadPoolExecutor/TimeOutShrink.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/atomic/AtomicReferenceTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/forkjoin/SubmissionTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/locks/Lock/LoopHelpers.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/locks/Lock/Mutex.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/locks/LockSupport/ParkLoops.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/locks/ReentrantLock/LoopHelpers.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/locks/ReentrantReadWriteLock/LoopHelpers.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/locks/StampedLock/ReadersUnlockAfterWriteUnlock.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/AtomicIntegerArray9Test.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/AtomicLongArray9Test.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/AtomicReferenceArray9Test.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/CompletableFutureTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/ConcurrentHashMap8Test.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/CopyOnWriteArrayListTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/CopyOnWriteArraySetTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/CountedCompleterTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/ExecutorCompletionService9Test.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/ExecutorCompletionServiceTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/ForkJoinPool8Test.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/ForkJoinTask8Test.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/ForkJoinTaskTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/JSR166TestCase.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/RecursiveActionTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/ScheduledExecutorSubclassTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/ScheduledExecutorTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/StampedLockTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/SubmissionPublisherTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/ThreadPoolExecutorSubclassTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/concurrent/tck/ThreadPoolExecutorTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/jar/JarFile/mrjar/MultiReleaseJarAPI.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/java/util/logging/Level/CustomLevel.java Fri Sep 16 13:15:02 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 Fri Sep 16 13:15:02 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/net/ssl/DTLS/CipherSuite.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/CipherSuite.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -30,6 +30,7 @@
* @key intermittent
* @summary Datagram Transport Layer Security (DTLS)
* @modules java.base/sun.security.util
+ * jdk.crypto.ec
* @build DTLSOverDatagram
* @run main/othervm CipherSuite TLS_RSA_WITH_AES_128_CBC_SHA
* @run main/othervm CipherSuite TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
--- a/jdk/test/javax/net/ssl/DTLS/DTLSBufferOverflowUnderflowTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSBufferOverflowUnderflowTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS buffer overflow and underflow status when dealing with
* application data.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.base/sun.security.util
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ktab
* @run main/othervm -Dtest.security.protocol=DTLS
* -Dtest.mode=norm DTLSBufferOverflowUnderflowTest
* @run main/othervm -Dtest.security.protocol=DTLS
--- a/jdk/test/javax/net/ssl/DTLS/DTLSDataExchangeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSDataExchangeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS application data exchange using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLS
* -Dtest.mode=norm DTLSDataExchangeTest
* @run main/othervm -Dtest.security.protocol=DTLS
--- a/jdk/test/javax/net/ssl/DTLS/DTLSEnginesClosureTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSEnginesClosureTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS engines closing using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLS
* -Dtest.mode=norm DTLSEnginesClosureTest
* @run main/othervm -Dtest.security.protocol=DTLS
--- a/jdk/test/javax/net/ssl/DTLS/DTLSHandshakeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSHandshakeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS engines handshake using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLS
* -Dtest.mode=norm DTLSHandshakeTest
* @run main/othervm -Dtest.security.protocol=DTLS
--- a/jdk/test/javax/net/ssl/DTLS/DTLSHandshakeWithReplicatedPacketsTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSHandshakeWithReplicatedPacketsTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS engines handshake using each of the supported
* cipher suites with replicated packets check.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLS
* -Dtest.mode=norm DTLSHandshakeWithReplicatedPacketsTest
* @run main/othervm -Dtest.security.protocol=DTLS
--- a/jdk/test/javax/net/ssl/DTLS/DTLSIncorrectAppDataTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSIncorrectAppDataTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS incorrect app data packages unwrapping.
* @key randomness
* @library /sun/security/krb5/auto /lib/testlibrary /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLS
* -Dtest.mode=norm DTLSIncorrectAppDataTest
* @run main/othervm -Dtest.security.protocol=DTLS
--- a/jdk/test/javax/net/ssl/DTLS/DTLSMFLNTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSMFLNTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,14 @@
* cipher suites with different maximum fragment length. Testing of
* MFLN extension.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLS
* -Dtest.mode=norm DTLSMFLNTest
* @run main/othervm -Dtest.security.protocol=DTLS
--- a/jdk/test/javax/net/ssl/DTLS/DTLSNotEnabledRC4Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSNotEnabledRC4Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +26,13 @@
* @bug 8043758
* @summary Testing DTLS engines do not enable RC4 ciphers by default.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLS DTLSNotEnabledRC4Test
*/
--- a/jdk/test/javax/net/ssl/DTLS/DTLSRehandshakeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSRehandshakeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS engines re-handshaking using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLS
* -Dtest.mode=norm DTLSRehandshakeTest
* @run main/othervm -Dtest.security.protocol=DTLS
--- a/jdk/test/javax/net/ssl/DTLS/DTLSRehandshakeWithCipherChangeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSRehandshakeWithCipherChangeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,13 @@
* is taken randomly from the supporetd ciphers list.
* @key randomness
* @library /sun/security/krb5/auto /lib/testlibrary /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLS
* DTLSRehandshakeWithCipherChangeTest
*/
--- a/jdk/test/javax/net/ssl/DTLS/DTLSRehandshakeWithDataExTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSRehandshakeWithDataExTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,14 @@
* cipher suites with application data exchange before and after
* re-handshake and closing of the engines.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLS
* -Dtest.mode=norm DTLSRehandshakeWithDataExTest
* @run main/othervm -Dtest.security.protocol=DTLS
--- a/jdk/test/javax/net/ssl/DTLS/DTLSSequenceNumberTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSSequenceNumberTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,14 @@
* data exchange.
* @key randomness
* @library /sun/security/krb5/auto /lib/testlibrary /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLS
* -Dtest.mode=norm DTLSSequenceNumberTest
* @run main/othervm -Dtest.security.protocol=DTLS
--- a/jdk/test/javax/net/ssl/DTLS/DTLSUnsupportedCiphersTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLS/DTLSUnsupportedCiphersTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,13 @@
* @summary Testing that try to enable unsupported ciphers
* causes IllegalArgumentException.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLS DTLSUnsupportedCiphersTest
*/
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10BufferOverflowUnderflowTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10BufferOverflowUnderflowTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS buffer overflow and underflow status when dealing with
* application data.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
* -Dtest.mode=norm DTLSv10BufferOverflowUnderflowTest
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10DataExchangeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10DataExchangeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS application data exchange using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
* -Dtest.mode=norm DTLSv10DataExchangeTest
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10EnginesClosureTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10EnginesClosureTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS engines closing using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
* -Dtest.mode=norm DTLSv10EnginesClosureTest
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10HandshakeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10HandshakeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS engines handshake using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
* -Dtest.mode=norm DTLSv10HandshakeTest
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10HandshakeWithReplicatedPacketsTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10HandshakeWithReplicatedPacketsTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS engines handshake using each of the supported
* cipher suites with replicated packets check.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon /javax/net/ssl/DTLS
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
* -Dtest.mode=norm DTLSv10HandshakeWithReplicatedPacketsTest
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10IncorrectAppDataTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10IncorrectAppDataTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS incorrect app data packages unwrapping.
* @key randomness
* @library /sun/security/krb5/auto /lib/testlibrary /javax/net/ssl/TLSCommon /javax/net/ssl/DTLS
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
* -Dtest.mode=norm DTLSIncorrectAppDataTest
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10MFLNTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10MFLNTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,14 @@
* cipher suites with different maximum fragment length. Testing of
* MFLN extension.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
* -Dtest.mode=norm DTLSv10MFLNTest
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10NotEnabledRC4Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10NotEnabledRC4Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +26,13 @@
* @bug 8043758
* @summary Testing DTLS engines do not enable RC4 ciphers by default.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0 DTLSv10NotEnabledRC4Test
*/
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10RehandshakeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10RehandshakeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing DTLS engines re-handshaking using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
* -Dtest.mode=norm DTLSv10RehandshakeTest
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10RehandshakeWithCipherChangeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10RehandshakeWithCipherChangeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,13 @@
* is taken randomly from the supporetd ciphers list.
* @key randomness
* @library /sun/security/krb5/auto /lib/testlibrary /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
* DTLSv10RehandshakeWithCipherChangeTest
*/
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10RehandshakeWithDataExTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10RehandshakeWithDataExTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,14 @@
* cipher suites with application data exchange before and after
* re-handshake and closing of the engines.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
* -Dtest.mode=norm DTLSv10RehandshakeWithDataExTest
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10SequenceNumberTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10SequenceNumberTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,14 @@
* data exchange.
* @key randomness
* @library /sun/security/krb5/auto /lib/testlibrary /javax/net/ssl/TLSCommon /javax/net/ssl/DTLS
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
* -Dtest.mode=norm DTLSv10SequenceNumberTest
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
--- a/jdk/test/javax/net/ssl/DTLSv10/DTLSv10UnsupportedCiphersTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/DTLSv10/DTLSv10UnsupportedCiphersTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,13 @@
* @summary Testing that try to enable unsupported ciphers
* causes IllegalArgumentException.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=DTLSv1.0
* DTLSv10UnsupportedCiphersTest
*/
--- a/jdk/test/javax/net/ssl/TLS/TLSClientPropertyTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLS/TLSClientPropertyTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 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
@@ -21,18 +21,19 @@
* questions.
*/
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-import java.util.Arrays;
-import java.util.List;
-import javax.net.ssl.SSLContext;
-
/*
* @test
* @bug 8049432 8069038
* @summary New tests for TLS property jdk.tls.client.protocols
* @summary javax/net/ssl/TLS/TLSClientPropertyTest.java needs to be
* updated for JDK-8061210
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.base/sun.security.util
* @run main/othervm TLSClientPropertyTest NoProperty
* @run main/othervm TLSClientPropertyTest SSLv3
* @run main/othervm TLSClientPropertyTest TLSv1
@@ -41,6 +42,12 @@
* @run main/othervm TLSClientPropertyTest WrongProperty
*/
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
+import java.util.List;
+import javax.net.ssl.SSLContext;
+
/**
* Sets the property jdk.tls.client.protocols to one of this protocols:
* SSLv3,TLSv1,TLSv1.1,TLSv1.2 and TLSV(invalid) or removes this
--- a/jdk/test/javax/net/ssl/TLS/TLSDataExchangeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLS/TLSDataExchangeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing TLS application data exchange using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=norm TLSDataExchangeTest
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=norm_sni TLSDataExchangeTest
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=krb TLSDataExchangeTest
--- a/jdk/test/javax/net/ssl/TLS/TLSEnginesClosureTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLS/TLSEnginesClosureTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing TLS engines closing using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=norm TLSEnginesClosureTest
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=norm_sni TLSEnginesClosureTest
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=krb TLSEnginesClosureTest
--- a/jdk/test/javax/net/ssl/TLS/TLSHandshakeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLS/TLSHandshakeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing TLS engines handshake using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=norm TLSHandshakeTest
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=norm_sni TLSHandshakeTest
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=krb TLSHandshakeTest
--- a/jdk/test/javax/net/ssl/TLS/TLSMFLNTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLS/TLSMFLNTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,14 @@
* cipher suites with different maximum fragment length. Testing of
* MFLN extension.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=norm TLSMFLNTest
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=norm_sni TLSMFLNTest
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=krb TLSMFLNTest
--- a/jdk/test/javax/net/ssl/TLS/TLSNotEnabledRC4Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLS/TLSNotEnabledRC4Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +26,13 @@
* @bug 8085979
* @summary Testing TLS engines do not enable RC4 ciphers by default.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLS TLSNotEnabledRC4Test
*/
--- a/jdk/test/javax/net/ssl/TLS/TLSRehandshakeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLS/TLSRehandshakeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing TLS engines re-handshaking using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=norm TLSRehandshakeTest
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=norm_sni TLSRehandshakeTest
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=krb TLSRehandshakeTest
--- a/jdk/test/javax/net/ssl/TLS/TLSRehandshakeWithCipherChangeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLS/TLSRehandshakeWithCipherChangeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,13 @@
* is taken randomly from the supporetd ciphers list.
* @key randomness
* @library /sun/security/krb5/auto /lib/testlibrary /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLS TLSRehandshakeWithCipherChangeTest
*/
--- a/jdk/test/javax/net/ssl/TLS/TLSRehandshakeWithDataExTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLS/TLSRehandshakeWithDataExTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,14 @@
* cipher suites with application data exchange before and after
* re-handshake and closing of the engines.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=norm TLSRehandshakeWithDataExTest
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=norm_sni TLSRehandshakeWithDataExTest
* @run main/othervm -Dtest.security.protocol=TLS -Dtest.mode=krb TLSRehandshakeWithDataExTest
--- a/jdk/test/javax/net/ssl/TLS/TLSUnsupportedCiphersTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLS/TLSUnsupportedCiphersTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,13 @@
* @summary Testing that try to enable unsupported ciphers
* causes IllegalArgumentException.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLS TLSUnsupportedCiphersTest
*/
--- a/jdk/test/javax/net/ssl/TLSv1/TLSDataExchangeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv1/TLSDataExchangeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing TLS application data exchange using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=norm TLSDataExchangeTest
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=norm_sni TLSDataExchangeTest
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=krb TLSDataExchangeTest
--- a/jdk/test/javax/net/ssl/TLSv1/TLSEnginesClosureTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv1/TLSEnginesClosureTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing TLS engines closing using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=norm TLSEnginesClosureTest
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=norm_sni TLSEnginesClosureTest
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=krb TLSEnginesClosureTest
--- a/jdk/test/javax/net/ssl/TLSv1/TLSHandshakeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv1/TLSHandshakeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing TLS engines handshake using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=norm TLSHandshakeTest
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=norm_sni TLSHandshakeTest
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=krb TLSHandshakeTest
--- a/jdk/test/javax/net/ssl/TLSv1/TLSMFLNTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv1/TLSMFLNTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,14 @@
* cipher suites with different maximum fragment length. Testing of
* MFLN extension.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=norm TLSMFLNTest
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=norm_sni TLSMFLNTest
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=krb TLSMFLNTest
--- a/jdk/test/javax/net/ssl/TLSv1/TLSNotEnabledRC4Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv1/TLSNotEnabledRC4Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +26,13 @@
* @bug 8085979
* @summary Testing TLS engines do not enable RC4 ciphers by default.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1 TLSNotEnabledRC4Test
*/
--- a/jdk/test/javax/net/ssl/TLSv1/TLSRehandshakeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv1/TLSRehandshakeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing TLS engines re-handshaking using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=norm TLSRehandshakeTest
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=norm_sni TLSRehandshakeTest
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=krb TLSRehandshakeTest
--- a/jdk/test/javax/net/ssl/TLSv1/TLSRehandshakeWithCipherChangeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv1/TLSRehandshakeWithCipherChangeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,13 @@
* is taken randomly from the supporetd ciphers list.
* @key randomness
* @library /sun/security/krb5/auto /lib/testlibrary /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1 TLSRehandshakeWithCipherChangeTest
*/
--- a/jdk/test/javax/net/ssl/TLSv1/TLSRehandshakeWithDataExTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv1/TLSRehandshakeWithDataExTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,14 @@
* cipher suites with application data exchange before and after
* re-handshake and closing of the engines.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=norm TLSRehandshakeWithDataExTest
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=norm_sni TLSRehandshakeWithDataExTest
* @run main/othervm -Dtest.security.protocol=TLSv1 -Dtest.mode=krb TLSRehandshakeWithDataExTest
--- a/jdk/test/javax/net/ssl/TLSv1/TLSUnsupportedCiphersTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv1/TLSUnsupportedCiphersTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,13 @@
* @summary Testing that try to enable unsupported ciphers
* causes IllegalArgumentException.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1 TLSUnsupportedCiphersTest
*/
--- a/jdk/test/javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/EmptyCertificateAuthorities.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -33,14 +33,33 @@
* @bug 4873188
* @summary Support TLS 1.1
* @run main/othervm EmptyCertificateAuthorities
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @author Xuelei Fan
*/
-import java.io.*;
-import java.net.*;
-import java.security.*;
-import java.security.cert.*;
-import javax.net.ssl.*;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.security.KeyStore;
+import java.security.Security;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import javax.net.ssl.KeyManager;
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLServerSocketFactory;
+import javax.net.ssl.SSLSocket;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.TrustManagerFactory;
+import javax.net.ssl.X509TrustManager;
public class EmptyCertificateAuthorities {
--- a/jdk/test/javax/net/ssl/TLSv11/ExportableBlockCipher.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/ExportableBlockCipher.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -33,12 +33,25 @@
* @bug 4873188
* @summary Support TLS 1.1
* @run main/othervm ExportableBlockCipher
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @author Xuelei Fan
*/
-import java.io.*;
-import java.net.*;
-import javax.net.ssl.*;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import javax.net.ssl.SSLException;
+import javax.net.ssl.SSLHandshakeException;
+import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLServerSocketFactory;
+import javax.net.ssl.SSLSocket;
+import javax.net.ssl.SSLSocketFactory;
public class ExportableBlockCipher {
--- a/jdk/test/javax/net/ssl/TLSv11/ExportableStreamCipher.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/ExportableStreamCipher.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -32,13 +32,26 @@
* @test
* @bug 4873188
* @summary Support TLS 1.1
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm ExportableStreamCipher
* @author Xuelei Fan
*/
-import java.io.*;
-import java.net.*;
-import javax.net.ssl.*;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import javax.net.ssl.SSLException;
+import javax.net.ssl.SSLHandshakeException;
+import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLServerSocketFactory;
+import javax.net.ssl.SSLSocket;
+import javax.net.ssl.SSLSocketFactory;
public class ExportableStreamCipher {
--- a/jdk/test/javax/net/ssl/TLSv11/GenericBlockCipher.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/GenericBlockCipher.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -27,6 +27,13 @@
* @test
* @bug 4873188
* @summary Support TLS 1.1
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm GenericBlockCipher
*
* SunJSSE does not support dynamic system properties, no way to re-use
@@ -35,9 +42,12 @@
* @author Xuelei Fan
*/
-import java.io.*;
-import java.net.*;
-import javax.net.ssl.*;
+import java.io.InputStream;
+import java.io.OutputStream;
+import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLServerSocketFactory;
+import javax.net.ssl.SSLSocket;
+import javax.net.ssl.SSLSocketFactory;
public class GenericBlockCipher {
--- a/jdk/test/javax/net/ssl/TLSv11/GenericStreamCipher.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/GenericStreamCipher.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -27,6 +27,13 @@
* @test
* @bug 4873188
* @summary Support TLS 1.1
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm GenericStreamCipher
*
* SunJSSE does not support dynamic system properties, no way to re-use
@@ -35,9 +42,13 @@
* @author Xuelei Fan
*/
-import java.io.*;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.security.Security;
-import javax.net.ssl.*;
+import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLServerSocketFactory;
+import javax.net.ssl.SSLSocket;
+import javax.net.ssl.SSLSocketFactory;
public class GenericStreamCipher {
--- a/jdk/test/javax/net/ssl/TLSv11/TLSDataExchangeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/TLSDataExchangeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing TLS application data exchange using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=norm TLSDataExchangeTest
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=norm_sni TLSDataExchangeTest
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=krb TLSDataExchangeTest
--- a/jdk/test/javax/net/ssl/TLSv11/TLSEnginesClosureTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/TLSEnginesClosureTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing TLS engines closing using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=norm TLSEnginesClosureTest
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=norm_sni TLSEnginesClosureTest
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=krb TLSEnginesClosureTest
--- a/jdk/test/javax/net/ssl/TLSv11/TLSHandshakeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/TLSHandshakeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing TLS engines handshake using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=norm TLSHandshakeTest
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=norm_sni TLSHandshakeTest
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=krb TLSHandshakeTest
--- a/jdk/test/javax/net/ssl/TLSv11/TLSMFLNTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/TLSMFLNTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,14 @@
* cipher suites with different maximum fragment length. Testing of
* MFLN extension.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=norm TLSMFLNTest
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=norm_sni TLSMFLNTest
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=krb TLSMFLNTest
--- a/jdk/test/javax/net/ssl/TLSv11/TLSNotEnabledRC4Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/TLSNotEnabledRC4Test.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +26,13 @@
* @bug 8085979
* @summary Testing TLS engines do not enable RC4 ciphers by default.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1.1 TLSNotEnabledRC4Test
*/
--- a/jdk/test/javax/net/ssl/TLSv11/TLSRehandshakeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/TLSRehandshakeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,14 @@
* @summary Testing TLS engines re-handshaking using each of the supported
* cipher suites.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=norm TLSRehandshakeTest
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=norm_sni TLSRehandshakeTest
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=krb TLSRehandshakeTest
--- a/jdk/test/javax/net/ssl/TLSv11/TLSRehandshakeWithCipherChangeTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/TLSRehandshakeWithCipherChangeTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,13 @@
* is taken randomly from the supporetd ciphers list.
* @key randomness
* @library /sun/security/krb5/auto /lib/testlibrary /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1.1 TLSRehandshakeWithCipherChangeTest
*/
--- a/jdk/test/javax/net/ssl/TLSv11/TLSRehandshakeWithDataExTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/TLSRehandshakeWithDataExTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,6 +28,14 @@
* cipher suites with application data exchange before and after
* re-handshake and closing of the engines.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * jdk.security.auth
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=norm TLSRehandshakeWithDataExTest
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=norm_sni TLSRehandshakeWithDataExTest
* @run main/othervm -Dtest.security.protocol=TLSv1.1 -Dtest.mode=krb TLSRehandshakeWithDataExTest
--- a/jdk/test/javax/net/ssl/TLSv11/TLSUnsupportedCiphersTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/TLSv11/TLSUnsupportedCiphersTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -27,6 +27,13 @@
* @summary Testing that try to enable unsupported ciphers
* causes IllegalArgumentException.
* @library /sun/security/krb5/auto /javax/net/ssl/TLSCommon
+ * @modules java.security.jgss
+ * java.security.jgss/sun.security.krb5
+ * java.security.jgss/sun.security.krb5.internal.crypto
+ * java.security.jgss/sun.security.krb5.internal.ccache
+ * java.security.jgss/sun.security.krb5.internal
+ * java.security.jgss/sun.security.krb5.internal.ktab
+ * java.base/sun.security.util
* @run main/othervm -Dtest.security.protocol=TLSv1.1 TLSUnsupportedCiphersTest
*/
--- a/jdk/test/javax/net/ssl/ciphersuites/DisabledAlgorithms.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/ciphersuites/DisabledAlgorithms.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -21,6 +21,15 @@
* questions.
*/
+/*
+ * @test
+ * @bug 8076221
+ * @summary Check if weak cipher suites are disabled
+ * @modules jdk.crypto.ec
+ * @run main/othervm DisabledAlgorithms default
+ * @run main/othervm DisabledAlgorithms empty
+ */
+
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
@@ -36,13 +45,6 @@
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
-/**
- * @test
- * @bug 8076221
- * @summary Check if weak cipher suites are disabled
- * @run main/othervm DisabledAlgorithms default
- * @run main/othervm DisabledAlgorithms empty
- */
public class DisabledAlgorithms {
private static final String pathToStores = "../etc";
--- a/jdk/test/javax/net/ssl/ciphersuites/ECCurvesconstraints.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/net/ssl/ciphersuites/ECCurvesconstraints.java Fri Sep 16 13:15:02 2016 -0700
@@ -32,24 +32,29 @@
* @test
* @bug 8148516
* @summary Improve the default strength of EC in JDK
+ * @modules jdk.crypyo.ec
* @run main/othervm ECCurvesconstraints PKIX
* @run main/othervm ECCurvesconstraints SunX509
*/
-import java.net.*;
-import java.util.*;
-import java.io.*;
-import javax.net.ssl.*;
-import java.security.Security;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.security.KeyStore;
import java.security.KeyFactory;
import java.security.cert.Certificate;
-import java.security.cert.X509Certificate;
import java.security.cert.CertificateFactory;
-import java.security.spec.*;
-import java.security.interfaces.*;
+import java.security.interfaces.ECPrivateKey;
+import java.security.spec.PKCS8EncodedKeySpec;
import java.util.Base64;
-
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLHandshakeException;
+import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLServerSocketFactory;
+import javax.net.ssl.SSLSocket;
+import javax.net.ssl.SSLSocketFactory;
+import javax.net.ssl.TrustManagerFactory;
public class ECCurvesconstraints {
--- a/jdk/test/javax/script/ExceptionTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/script/ExceptionTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/script/JavaScriptScopeTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/script/NullUndefinedVarTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/script/PluggableContextTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/script/Test1.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/script/Test2.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/script/Test3.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/script/Test4.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/script/Test5.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/script/Test6.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/script/Test7.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/javax/script/Test8.java Fri Sep 16 13:15:02 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 Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/lib/testlibrary/java/util/jar/CreateMultiReleaseTestJars.java Fri Sep 16 13:15:02 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 Fri Sep 16 13:15:02 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/othervm 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/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/ec/NSASuiteB/TestSHAwithECDSASignatureOids.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -31,6 +31,7 @@
* OID and algorithm transformation string should match.
* Both could be able to be used to generate the algorithm instance.
* @compile ../../TestSignatureOidHelper.java
+ * @modules jdk.crypto.ec
* @run main TestSHAwithECDSASignatureOids
*/
public class TestSHAwithECDSASignatureOids {
--- a/jdk/test/sun/security/krb5/IPv6.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/krb5/IPv6.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 2011, 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
@@ -25,11 +25,16 @@
* @test
* @bug 6877357 6885166
* @run main/othervm IPv6
+ * @modules jdk.security.auth
* @summary IPv6 address does not work
*/
import com.sun.security.auth.module.Krb5LoginModule;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.ByteArrayOutputStream;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
--- a/jdk/test/sun/security/krb5/auto/MaxRetries.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/krb5/auto/MaxRetries.java Fri Sep 16 13:15:02 2016 -0700
@@ -24,7 +24,6 @@
/*
* @test
* @bug 6844193
- * @key intermittent
* @compile -XDignore.symbol.file MaxRetries.java
* @run main/othervm/timeout=300 MaxRetries
* @summary support max_retries in krb5.conf
--- a/jdk/test/sun/security/krb5/auto/Unreachable.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/krb5/auto/Unreachable.java Fri Sep 16 13:15:02 2016 -0700
@@ -24,7 +24,6 @@
/*
* @test
* @bug 7162687 8015595
- * @key intermittent
* @summary enhance KDC server availability detection
* @compile -XDignore.symbol.file Unreachable.java
* @run main/othervm Unreachable
--- a/jdk/test/sun/security/pkcs11/Cipher/ReinitCipher.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Cipher/ReinitCipher.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4856966
* @summary
* @author Andreas Sterbenz
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm ReinitCipher
* @run main/othervm ReinitCipher sm
*/
--- a/jdk/test/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Cipher/TestPKCS5PaddingError.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6687725
* @summary Test internal PKCS5Padding impl with various error conditions.
* @author Valerie Peng
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestPKCS5PaddingError
* @run main/othervm TestPKCS5PaddingError sm
*/
--- a/jdk/test/sun/security/pkcs11/Cipher/TestRSACipher.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Cipher/TestRSACipher.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4898468 6994008
* @summary basic test for RSA cipher
* @author Andreas Sterbenz
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestRSACipher
* @run main/othervm TestRSACipher sm
*/
--- a/jdk/test/sun/security/pkcs11/Cipher/TestRSACipherWrap.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Cipher/TestRSACipherWrap.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6572331 6994008
* @summary basic test for RSA cipher key wrapping functionality
* @author Valerie Peng
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestRSACipherWrap
* @run main/othervm TestRSACipherWrap sm
*/
--- a/jdk/test/sun/security/pkcs11/Cipher/TestRawRSACipher.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Cipher/TestRawRSACipher.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6994008
* @summary basic test for RSA/ECB/NoPadding cipher
* @author Valerie Peng
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestRawRSACipher
* @run main/othervm TestRawRSACipher sm
*/
--- a/jdk/test/sun/security/pkcs11/Cipher/TestSymmCiphers.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Cipher/TestSymmCiphers.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4898461 6604496
* @summary basic test for symmetric ciphers with padding
* @author Valerie Peng
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestSymmCiphers
* @run main/othervm TestSymmCiphers sm
*/
--- a/jdk/test/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Cipher/TestSymmCiphersNoPad.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4898484 6604496 8001284
* @summary basic test for symmetric ciphers with no padding
* @author Valerie Peng
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestSymmCiphersNoPad
* @run main/othervm TestSymmCiphersNoPad sm
*/
--- a/jdk/test/sun/security/pkcs11/KeyAgreement/SupportedDHKeys.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/KeyAgreement/SupportedDHKeys.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,21 +21,23 @@
* questions.
*/
-/**
+/*
* @test
* @bug 8072452
* @summary Support DHE sizes up to 8192-bits and DSA sizes up to 3072-bits
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm SupportedDHKeys
* @run main/othervm SupportedDHKeys sm
*/
import java.math.BigInteger;
-
-import java.security.*;
-import javax.crypto.*;
-import javax.crypto.interfaces.*;
-import javax.crypto.spec.*;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.Provider;
+import javax.crypto.interfaces.DHPrivateKey;
+import javax.crypto.interfaces.DHPublicKey;
+import javax.crypto.spec.DHParameterSpec;
public class SupportedDHKeys extends PKCS11Test {
--- a/jdk/test/sun/security/pkcs11/KeyAgreement/TestDH.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/KeyAgreement/TestDH.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4921804 6324825
* @summary Verify that DH works properly
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestDH
* @run main/othervm TestDH sm
*/
--- a/jdk/test/sun/security/pkcs11/KeyAgreement/TestInterop.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/KeyAgreement/TestInterop.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,11 +21,12 @@
* questions.
*/
-/**
+/*
* @test
* @bug 7146728
* @summary Interop test for DH with secret that has a leading 0x00 byte
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestInterop
* @run main/othervm TestInterop sm
*/
--- a/jdk/test/sun/security/pkcs11/KeyAgreement/TestShort.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/KeyAgreement/TestShort.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4942494 7146728
* @summary KAT test for DH (normal and with secret that has leading a 0x00 byte)
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestShort
* @run main/othervm TestShort sm
*/
--- a/jdk/test/sun/security/pkcs11/KeyAgreement/UnsupportedDHKeys.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/KeyAgreement/UnsupportedDHKeys.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,21 +21,19 @@
* questions.
*/
-/**
+/*
* @test
* @bug 8072452
* @summary Support DHE sizes up to 8192-bits and DSA sizes up to 3072-bits
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm UnsupportedDHKeys
* @run main/othervm UnsupportedDHKeys sm
*/
-import java.math.BigInteger;
-
-import java.security.*;
-import javax.crypto.*;
-import javax.crypto.interfaces.*;
-import javax.crypto.spec.*;
+import java.security.InvalidParameterException;
+import java.security.KeyPairGenerator;
+import java.security.Provider;
public class UnsupportedDHKeys extends PKCS11Test {
--- a/jdk/test/sun/security/pkcs11/KeyGenerator/DESParity.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/KeyGenerator/DESParity.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4898479
* @summary Verify that the parity bits are set correctly
* @author Andreas Sterbenz
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm DESParity
* @run main/othervm DESParity sm
*/
--- a/jdk/test/sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/KeyGenerator/TestKeyGenerator.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4917233 6461727 6490213 6720456
* @summary test the KeyGenerator
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestKeyGenerator
* @run main/othervm TestKeyGenerator sm
*/
--- a/jdk/test/sun/security/pkcs11/KeyPairGenerator/TestDH2048.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/KeyPairGenerator/TestDH2048.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 7196382 8072452
* @summary Ensure that DH key pairs can be generated for 512 - 8192 bits
* @author Valerie Peng
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestDH2048
* @run main/othervm TestDH2048 sm
*/
--- a/jdk/test/sun/security/pkcs11/Mac/MacKAT.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Mac/MacKAT.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,6 +21,17 @@
* questions.
*/
+/*
+ * @test
+ * @bug 4846410 6313661 4963723
+ * @summary Basic known-answer-test for Hmac algorithms
+ * @author Andreas Sterbenz
+ * @library ..
+ * @modules jdk.crypto.pkcs11
+ * @run main/othervm MacKAT
+ * @run main/othervm MacKAT sm
+ */
+
import java.io.UnsupportedEncodingException;
import java.security.Provider;
import java.util.Arrays;
@@ -30,15 +41,6 @@
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
-/**
- * @test
- * @bug 4846410 6313661 4963723
- * @summary Basic known-answer-test for Hmac algorithms
- * @author Andreas Sterbenz
- * @library ..
- * @run main/othervm MacKAT
- * @run main/othervm MacKAT sm
- */
public class MacKAT extends PKCS11Test {
private final static byte[] ALONG, BLONG, BKEY, BKEY_20, DDDATA_50,
--- a/jdk/test/sun/security/pkcs11/Mac/MacSameTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Mac/MacSameTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,6 +21,18 @@
* questions.
*/
+/*
+ * @test
+ * @bug 8048603
+ * @summary Check if doFinal and update operation result in same Mac
+ * @author Yu-Ching Valerie Peng, Bill Situ, Alexander Fomin
+ * @library ..
+ * @modules jdk.crypto.pkcs11
+ * @run main/othervm MacSameTest
+ * @run main/othervm MacSameTest sm
+ * @key randomness
+ */
+
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
@@ -30,16 +42,6 @@
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
-/**
- * @test
- * @bug 8048603
- * @summary Check if doFinal and update operation result in same Mac
- * @author Yu-Ching Valerie Peng, Bill Situ, Alexander Fomin
- * @library ..
- * @run main/othervm MacSameTest
- * @run main/othervm MacSameTest sm
- * @key randomness
- */
public class MacSameTest extends PKCS11Test {
private static final int MESSAGE_SIZE = 25;
--- a/jdk/test/sun/security/pkcs11/Mac/ReinitMac.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Mac/ReinitMac.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4856966
* @summary
* @author Andreas Sterbenz
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm ReinitMac
* @run main/othervm ReinitMac sm
*/
--- a/jdk/test/sun/security/pkcs11/MessageDigest/ByteBuffers.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/MessageDigest/ByteBuffers.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4856966
* @summary Test the MessageDigest.update(ByteBuffer) method
* @author Andreas Sterbenz
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm ByteBuffers
* @run main/othervm ByteBuffers sm
*/
--- a/jdk/test/sun/security/pkcs11/MessageDigest/DigestKAT.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/MessageDigest/DigestKAT.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4856966
* @summary Basic known-answer-test for all our MessageDigest algorithms
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm DigestKAT
* @run main/othervm DigestKAT sm
*/
--- a/jdk/test/sun/security/pkcs11/MessageDigest/ReinitDigest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/MessageDigest/ReinitDigest.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4856966
* @summary
* @author Andreas Sterbenz
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm ReinitDigest
* @run main/othervm ReinitDigest sm
*/
--- a/jdk/test/sun/security/pkcs11/MessageDigest/TestCloning.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/MessageDigest/TestCloning.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6414899
* @summary Ensure the cloning functionality works.
* @author Valerie Peng
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestCloning
* @run main/othervm TestCloning sm
*/
--- a/jdk/test/sun/security/pkcs11/PKCS11Test.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/PKCS11Test.java Fri Sep 16 13:15:02 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;
--- a/jdk/test/sun/security/pkcs11/Provider/Absolute.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Provider/Absolute.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -20,13 +20,16 @@
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
-/**
+/*
* @test
* @bug 7003952 7191662
* @library ..
+ * @modules jdk.crypto.pkcs11
* @summary load DLLs and launch executables using fully qualified path
*/
-import java.security.*;
+
+import java.security.InvalidParameterException;
+import java.security.Provider;
public class Absolute {
--- a/jdk/test/sun/security/pkcs11/SampleTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/SampleTest.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 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
@@ -21,20 +21,16 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4000000
* @summary XXX todo
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
*/
-import java.io.*;
-import java.util.*;
-
-import java.security.*;
-
-import javax.crypto.*;
+import java.security.Provider;
public class SampleTest extends PKCS11Test {
--- a/jdk/test/sun/security/pkcs11/Secmod/AddPrivateKey.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Secmod/AddPrivateKey.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6414980
* @summary Test that the PKCS#11 KeyStore handles RSA, DSA, and EC keys
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm AddPrivateKey
* @run main/othervm AddPrivateKey sm policy
*/
--- a/jdk/test/sun/security/pkcs11/Secmod/AddTrustedCert.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Secmod/AddTrustedCert.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6298106
* @summary make sure we can add a trusted cert to the NSS KeyStore module
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm AddTrustedCert
* @run main/othervm AddTrustedCert sm policy
*/
--- a/jdk/test/sun/security/pkcs11/Secmod/Crypto.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Secmod/Crypto.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6329006
* @summary verify that NSS no-db mode works correctly
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm Crypto
* @run main/othervm Crypto sm policy
*/
--- a/jdk/test/sun/security/pkcs11/Secmod/GetPrivateKey.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Secmod/GetPrivateKey.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6273877 6322208 6275523
* @summary make sure we can access the NSS softtoken KeyStore
* and use a private key
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm GetPrivateKey
* @run main/othervm GetPrivateKey sm policy
*/
--- a/jdk/test/sun/security/pkcs11/Secmod/JksSetPrivateKey.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Secmod/JksSetPrivateKey.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6269847
* @summary store a NSS PKCS11 PrivateKeyEntry to JKS KeyStore throws confusing NPE
* @author Wang Weijun
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm JksSetPrivateKey
* @run main/othervm JksSetPrivateKey sm policy
*/
--- a/jdk/test/sun/security/pkcs11/Secmod/LoadKeystore.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Secmod/LoadKeystore.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,6 +21,16 @@
* questions.
*/
+/*
+ * @test
+ * @bug 8048622 8134232
+ * @summary Checks that PKCS#11 keystore can't be loaded with wrong password
+ * @library ../
+ * @modules jdk.crypto.pkcs11
+ * @run main/othervm LoadKeystore
+ * @run main/othervm LoadKeystore sm policy
+ */
+
import java.io.File;
import java.io.IOException;
import java.security.KeyStore;
@@ -30,14 +40,6 @@
import java.security.UnrecoverableKeyException;
import java.util.Collections;
-/*
- * @test
- * @bug 8048622 8134232
- * @summary Checks that PKCS#11 keystore can't be loaded with wrong password
- * @library ../
- * @run main/othervm LoadKeystore
- * @run main/othervm LoadKeystore sm policy
- */
public class LoadKeystore extends SecmodTest {
public static void main(String[] args) throws Exception {
--- a/jdk/test/sun/security/pkcs11/Secmod/TrustAnchors.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Secmod/TrustAnchors.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6298106 6275523 6420252 8059627
* @summary make sure we can access the NSS trust anchor module
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TrustAnchors
* @run main/othervm TrustAnchors sm policy
*/
--- a/jdk/test/sun/security/pkcs11/SecureRandom/Basic.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/SecureRandom/Basic.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6246411
* @summary basic test for PKCS#11 SecureRandom
* @author Andreas Sterbenz
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm Basic
* @run main/othervm Basic sm
*/
--- a/jdk/test/sun/security/pkcs11/SecureRandom/TestDeserialization.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/SecureRandom/TestDeserialization.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 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
@@ -21,15 +21,22 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6837847
* @summary Ensure a deserialized PKCS#11 SecureRandom is functional.
* @library ..
+ * @modules jdk.crypto.pkcs11
*/
-import java.security.*;
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.security.NoSuchAlgorithmException;
+import java.security.Provider;
+import java.security.SecureRandom;
+import java.security.Security;
public class TestDeserialization extends PKCS11Test {
--- a/jdk/test/sun/security/pkcs11/Serialize/SerializeProvider.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Serialize/SerializeProvider.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 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
@@ -21,18 +21,22 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4921802
* @summary Test that the SunPKCS11 provider can be serialized
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
*/
-import java.io.*;
-import java.util.*;
-
-import java.security.*;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.security.Provider;
+import java.security.Security;
public class SerializeProvider extends PKCS11Test {
--- a/jdk/test/sun/security/pkcs11/Signature/ByteBuffers.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Signature/ByteBuffers.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4856966
* @summary Test the Signature.update(ByteBuffer) method
* @author Andreas Sterbenz
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm ByteBuffers
* @run main/othervm ByteBuffers sm
*/
--- a/jdk/test/sun/security/pkcs11/Signature/ReinitSignature.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Signature/ReinitSignature.java Fri Sep 16 13:15:02 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
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4856966
* @summary test that reinitializing Signatures works correctly
* @author Andreas Sterbenz
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main ReinitSignature
* @run main ReinitSignature
* @run main ReinitSignature
@@ -330,9 +331,13 @@
* @run main ReinitSignature
*/
-import java.util.*;
-
-import java.security.*;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.PrivateKey;
+import java.security.Provider;
+import java.security.PublicKey;
+import java.security.Signature;
+import java.util.Random;
public class ReinitSignature extends PKCS11Test {
--- a/jdk/test/sun/security/pkcs11/Signature/TestDSA.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Signature/TestDSA.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4856966
* @summary basic test of SHA1withDSA and RawDSA signing/verifying
* @author Andreas Sterbenz
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestDSA
* @run main/othervm TestDSA sm
*/
--- a/jdk/test/sun/security/pkcs11/Signature/TestDSAKeyLength.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Signature/TestDSAKeyLength.java Fri Sep 16 13:15:02 2016 -0700
@@ -28,6 +28,7 @@
* with unsupported key sizes
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestDSAKeyLength
* @run main/othervm TestDSAKeyLength sm
*/
--- a/jdk/test/sun/security/pkcs11/Signature/TestRSAKeyLength.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/Signature/TestRSAKeyLength.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test %W% %E%
* @bug 6695485
* @summary Make sure initSign/initVerify() check RSA key lengths
* @author Yu-Ching Valerie Peng
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestRSAKeyLength
* @run main/othervm TestRSAKeyLength sm
*/
--- a/jdk/test/sun/security/pkcs11/ec/ReadCertificates.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/ec/ReadCertificates.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,7 +21,7 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6405536 6414980 8051972
* @summary Make sure that we can parse certificates using various named curves
@@ -29,6 +29,7 @@
* @author Andreas Sterbenz
* @library ..
* @library ../../../../java/security/testlibrary
+ * @modules jdk.crypto.pkcs11
* @run main/othervm ReadCertificates
* @run main/othervm ReadCertificates sm policy
*/
--- a/jdk/test/sun/security/pkcs11/ec/ReadPKCS12.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/ec/ReadPKCS12.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,7 +21,7 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6405536
* @summary Verify that we can parse ECPrivateKeys from PKCS#12 and use them
@@ -29,6 +29,7 @@
* @library ..
* @library ../../../../java/security/testlibrary
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm ReadPKCS12
* @run main/othervm ReadPKCS12 sm policy
*/
--- a/jdk/test/sun/security/pkcs11/ec/TestECDH.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/ec/TestECDH.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6405536
* @summary Basic known answer test for ECDH
* @author Andreas Sterbenz
* @library ..
* @library ../../../../java/security/testlibrary
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestECDH
* @run main/othervm TestECDH sm policy
*/
--- a/jdk/test/sun/security/pkcs11/ec/TestECDH2.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/ec/TestECDH2.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,7 +21,7 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6405536
* @summary basic test of ECDSA signatures for P-256 and P-384 from the
@@ -29,6 +29,7 @@
* @library ..
* @library ../../../../java/security/testlibrary
* @modules java.base/sun.security.util
+ * jdk.crypto.pkcs11
* @compile -XDignore.symbol.file TestECDH2.java
* @run main/othervm TestECDH2
* @run main/othervm TestECDH2 sm
--- a/jdk/test/sun/security/pkcs11/ec/TestECDSA.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/ec/TestECDSA.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,7 +21,7 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6405536 8042967
* @summary basic test of SHA1withECDSA and NONEwithECDSA signing/verifying
@@ -29,6 +29,7 @@
* @library ..
* @library ../../../../java/security/testlibrary
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestECDSA
* @run main/othervm TestECDSA sm policy
*/
--- a/jdk/test/sun/security/pkcs11/ec/TestECDSA2.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/ec/TestECDSA2.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,7 +21,7 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6405536
* @summary basic test of ECDSA signatures for P-256 and P-384 from the
@@ -29,6 +29,7 @@
* @library ..
* @library ../../../../java/security/testlibrary
* @modules java.base/sun.security.util
+ * jdk.crypto.pkcs11
* @compile -XDignore.symbol.file TestECDSA2.java
* @run main/othervm TestECDSA2
* @run main/othervm TestECDSA2 sm
--- a/jdk/test/sun/security/pkcs11/ec/TestECGenSpec.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/ec/TestECGenSpec.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6405536
* @summary Verify that we can use ECGenParameterSpec
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestECGenSpec
* @run main/othervm TestECGenSpec sm
*/
--- a/jdk/test/sun/security/pkcs11/ec/TestKeyFactory.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/ec/TestKeyFactory.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6405536
* @summary Test the P11ECKeyFactory
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestKeyFactory
* @run main/othervm TestKeyFactory sm
*/
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 Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ /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/sun/security/pkcs11/rsa/KeyWrap.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/rsa/KeyWrap.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6231216
* @summary Verify key wrapping (of extractable keys) works for RSA/PKCS1
* @author Andreas Sterbenz
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm KeyWrap
* @run main/othervm KeyWrap sm
*/
--- a/jdk/test/sun/security/pkcs11/rsa/TestCACerts.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/rsa/TestCACerts.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4856966
* @summary Test the new RSA provider can verify all the RSA certs in the cacerts file
* @author Andreas Sterbenz
* @library ..
* @library ../../../../java/security/testlibrary
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestCACerts
* @run main/othervm TestCACerts sm TestCACerts.policy
*/
--- a/jdk/test/sun/security/pkcs11/rsa/TestKeyFactory.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/rsa/TestKeyFactory.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,12 +21,13 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4856966
* @summary Test KeyFactory of the new RSA provider
* @author Andreas Sterbenz
* @library ..
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestKeyFactory
* @run main/othervm TestKeyFactory sm rsakeys.ks.policy
*/
--- a/jdk/test/sun/security/pkcs11/rsa/TestKeyPairGenerator.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/rsa/TestKeyPairGenerator.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,7 +21,7 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4856966
* @summary Verify that the RSA KeyPairGenerator works (use -Dseed=X to set PRNG seed)
@@ -29,6 +29,7 @@
* @library ..
* @library /lib/testlibrary
* @build jdk.testlibrary.*
+ * @modules jdk.crypto.pkcs11
* @run main/othervm -Djava.security.debug=sunpkcs11 TestKeyPairGenerator
* @run main/othervm -Djava.security.debug=sunpkcs11 TestKeyPairGenerator
* sm TestKeyPairGenerator.policy
--- a/jdk/test/sun/security/pkcs11/rsa/TestSignatures.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/rsa/TestSignatures.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 4856966
* @summary Test signing/verifying using all the signature algorithms
* @author Andreas Sterbenz
* @library ..
* @key randomness
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestSignatures
* @run main/othervm TestSignatures sm rsakeys.ks.policy
*/
--- a/jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java Fri Sep 16 13:15:02 2016 -0700
@@ -33,6 +33,7 @@
* @author Andreas Sterbenz
* @library ..
* @library ../../../../java/security/testlibrary
+ * @modules jdk.crypto.pkcs11
* @run main/othervm -Djdk.tls.namedGroups="secp256r1,sect193r1"
* ClientJSSEServerJSSE
* @run main/othervm -Djdk.tls.namedGroups="secp256r1,sect193r1"
--- a/jdk/test/sun/security/pkcs11/tls/TestKeyMaterial.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/tls/TestKeyMaterial.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6316539
* @summary Known-answer-test for TlsKeyMaterial generator
* @author Andreas Sterbenz
* @library ..
* @modules java.base/sun.security.internal.spec
+ * jdk.crypto.pkcs11
* @run main/othervm TestKeyMaterial
* @run main/othervm TestKeyMaterial sm policy
*/
--- a/jdk/test/sun/security/pkcs11/tls/TestLeadingZeroesP11.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/tls/TestLeadingZeroesP11.java Fri Sep 16 13:15:02 2016 -0700
@@ -27,6 +27,7 @@
* @summary Need to strip leading zeros in TlsPremasterSecret of DHKeyAgreement
* @library ..
* @author Pasi Eronen
+ * @modules jdk.crypto.pkcs11
* @run main/othervm TestLeadingZeroesP11
* @run main/othervm TestLeadingZeroesP11 sm
*/
--- a/jdk/test/sun/security/pkcs11/tls/TestMasterSecret.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/tls/TestMasterSecret.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,7 +21,7 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6316539
* @summary Known-answer-test for TlsMasterSecret generator
@@ -29,6 +29,7 @@
* @library ..
* @modules java.base/sun.security.internal.interfaces
* java.base/sun.security.internal.spec
+ * jdk.crypto.pkcs11
* @run main/othervm TestMasterSecret
* @run main/othervm TestMasterSecret sm TestMasterSecret.policy
*/
--- a/jdk/test/sun/security/pkcs11/tls/TestPRF.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/tls/TestPRF.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6316539 6345251
* @summary Basic known-answer-test for TlsPrf
* @author Andreas Sterbenz
* @library ..
* @modules java.base/sun.security.internal.spec
+ * jdk.crypto.pkcs11
* @run main/othervm TestPRF
* @run main/othervm TestPRF sm policy
*/
--- a/jdk/test/sun/security/pkcs11/tls/TestPremaster.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/pkcs11/tls/TestPremaster.java Fri Sep 16 13:15:02 2016 -0700
@@ -21,13 +21,14 @@
* questions.
*/
-/**
+/*
* @test
* @bug 6316539
* @summary Basic tests for TlsRsaPremasterSecret generator
* @author Andreas Sterbenz
* @library ..
* @modules java.base/sun.security.internal.spec
+ * jdk.crypto.pkcs11
* @run main/othervm TestPremaster
* @run main/othervm TestPremaster sm policy
*/
--- a/jdk/test/sun/security/ssl/SSLEngineImpl/SSLEngineBadBufferArrayAccess.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/ssl/SSLEngineImpl/SSLEngineBadBufferArrayAccess.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 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
@@ -83,6 +83,8 @@
import java.net.*;
import java.security.*;
import java.nio.*;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
public class SSLEngineBadBufferArrayAccess {
@@ -103,9 +105,6 @@
private static boolean debug = false;
private SSLContext sslc;
private SSLEngine serverEngine; // server-side SSLEngine
- private SSLSocket sslSocket; // client-side socket
- private ServerSocket serverSocket; // server-side Socket, generates the...
- private Socket socket; // server-side socket that will read
private final byte[] serverMsg = "Hi there Client, I'm a Server".getBytes();
private final byte[] clientMsg = "Hello Server, I'm a Client".getBytes();
@@ -137,6 +136,21 @@
+ "/" + trustStoreFile;
/*
+ * Is the server ready to serve?
+ */
+ private static final CountDownLatch serverCondition = new CountDownLatch(1);
+
+ /*
+ * Is the client ready to handshake?
+ */
+ private static final CountDownLatch clientCondition = new CountDownLatch(1);
+
+ /*
+ * What's the server port? Use any free port by default
+ */
+ private volatile int serverPort = 0;
+
+ /*
* Main entry point for this test.
*/
public static void main(String args[]) throws Exception {
@@ -171,8 +185,13 @@
char[] passphrase = "passphrase".toCharArray();
- ks.load(new FileInputStream(keyFilename), passphrase);
- ts.load(new FileInputStream(trustFilename), passphrase);
+ try (FileInputStream fis = new FileInputStream(keyFilename)) {
+ ks.load(fis, passphrase);
+ }
+
+ try (FileInputStream fis = new FileInputStream(trustFilename)) {
+ ts.load(fis, passphrase);
+ }
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, passphrase);
@@ -207,127 +226,177 @@
private void runTest(boolean direct) throws Exception {
boolean serverClose = direct;
- serverSocket = new ServerSocket(0);
- int port = serverSocket.getLocalPort();
- Thread thread = createClientThread(port, serverClose);
+ ServerSocket serverSocket = new ServerSocket(0);
+ serverPort = serverSocket.getLocalPort();
+
+ // Signal the client, the server is ready to accept connection.
+ serverCondition.countDown();
+
+ Thread clientThread = runClient(serverClose);
+
+ // Try to accept a connection in 30 seconds.
+ Socket socket;
+ try {
+ serverSocket.setSoTimeout(30000);
+ socket = (Socket) serverSocket.accept();
+ } catch (SocketTimeoutException ste) {
+ serverSocket.close();
+
+ // Ignore the test case if no connection within 30 seconds.
+ System.out.println(
+ "No incoming client connection in 30 seconds. " +
+ "Ignore in server side.");
+ return;
+ }
+
+ // handle the connection
+ try {
+ // Is it the expected client connection?
+ //
+ // Naughty test cases or third party routines may try to
+ // connection to this server port unintentionally. In
+ // order to mitigate the impact of unexpected client
+ // connections and avoid intermittent failure, it should
+ // be checked that the accepted connection is really linked
+ // to the expected client.
+ boolean clientIsReady =
+ clientCondition.await(30L, TimeUnit.SECONDS);
- socket = serverSocket.accept();
+ if (clientIsReady) {
+ // Run the application in server side.
+ runServerApplication(socket, direct, serverClose);
+ } else { // Otherwise, ignore
+ // We don't actually care about plain socket connections
+ // for TLS communication testing generally. Just ignore
+ // the test if the accepted connection is not linked to
+ // the expected client or the client connection timeout
+ // in 30 seconds.
+ System.out.println(
+ "The client is not the expected one or timeout. " +
+ "Ignore in server side.");
+ }
+ } catch (Exception e) {
+ System.out.println("Server died ...");
+ e.printStackTrace(System.out);
+ serverException = e;
+ } finally {
+ socket.close();
+ serverSocket.close();
+ }
+
+ clientThread.join();
+
+ if (clientException != null || serverException != null) {
+ throw new RuntimeException("Test failed");
+ }
+ }
+
+ /*
+ * Define the server side application of the test for the specified socket.
+ */
+ void runServerApplication(Socket socket, boolean direct,
+ boolean serverClose) throws Exception {
+
socket.setSoTimeout(500);
- serverSocket.close();
createSSLEngine();
createBuffers(direct);
- try {
- boolean closed = false;
+ boolean closed = false;
+
+ InputStream is = socket.getInputStream();
+ OutputStream os = socket.getOutputStream();
+
+ SSLEngineResult serverResult; // results from last operation
+
+ /*
+ * Examining the SSLEngineResults could be much more involved,
+ * and may alter the overall flow of the application.
+ *
+ * For example, if we received a BUFFER_OVERFLOW when trying
+ * to write to the output pipe, we could reallocate a larger
+ * pipe, but instead we wait for the peer to drain it.
+ */
+ byte[] inbound = new byte[8192];
+ byte[] outbound = new byte[8192];
- InputStream is = socket.getInputStream();
- OutputStream os = socket.getOutputStream();
+ while (!isEngineClosed(serverEngine)) {
+ int len = 0;
+
+ // Inbound data
+ log("================");
- SSLEngineResult serverResult; // results from last operation
+ // Read from the Client side.
+ try {
+ len = is.read(inbound);
+ if (len == -1) {
+ throw new Exception("Unexpected EOF");
+ }
+ cTOs.put(inbound, 0, len);
+ } catch (SocketTimeoutException ste) {
+ // swallow. Nothing yet, probably waiting on us.
+ System.out.println("Warning: " + ste);
+ }
+
+ cTOs.flip();
- /*
- * Examining the SSLEngineResults could be much more involved,
- * and may alter the overall flow of the application.
- *
- * For example, if we received a BUFFER_OVERFLOW when trying
- * to write to the output pipe, we could reallocate a larger
- * pipe, but instead we wait for the peer to drain it.
- */
- byte[] inbound = new byte[8192];
- byte[] outbound = new byte[8192];
+ serverResult = serverEngine.unwrap(cTOs, serverIn);
+ log("server unwrap: ", serverResult);
+ runDelegatedTasks(serverResult, serverEngine);
+ cTOs.compact();
+
+ // Outbound data
+ log("----");
+
+ serverResult = serverEngine.wrap(serverOut, sTOc);
+ log("server wrap: ", serverResult);
+ runDelegatedTasks(serverResult, serverEngine);
+
+ sTOc.flip();
+
+ if ((len = sTOc.remaining()) != 0) {
+ sTOc.get(outbound, 0, len);
+ os.write(outbound, 0, len);
+ // Give the other side a chance to process
+ }
+
+ sTOc.compact();
- while (!isEngineClosed(serverEngine)) {
- int len = 0;
-
- // Inbound data
- log("================");
+ if (!closed && (serverOut.remaining() == 0)) {
+ closed = true;
- // Read from the Client side.
- try {
- len = is.read(inbound);
- if (len == -1) {
- throw new Exception("Unexpected EOF");
- }
- cTOs.put(inbound, 0, len);
- } catch (SocketTimeoutException ste) {
- // swallow. Nothing yet, probably waiting on us.
+ /*
+ * We'll alternate initiatating the shutdown.
+ * When the server initiates, it will take one more
+ * loop, but tests the orderly shutdown.
+ */
+ if (serverClose) {
+ serverEngine.closeOutbound();
+ }
+ }
+
+ if (closed && isEngineClosed(serverEngine)) {
+ serverIn.flip();
+
+ /*
+ * A sanity check to ensure we got what was sent.
+ */
+ if (serverIn.remaining() != clientMsg.length) {
+ throw new Exception("Client: Data length error -" +
+ " IF THIS FAILS, PLEASE REPORT THIS TO THE" +
+ " SECURITY TEAM. WE HAVE BEEN UNABLE TO" +
+ " RELIABLY DUPLICATE.");
}
- cTOs.flip();
-
- serverResult = serverEngine.unwrap(cTOs, serverIn);
- log("server unwrap: ", serverResult);
- runDelegatedTasks(serverResult, serverEngine);
- cTOs.compact();
-
- // Outbound data
- log("----");
-
- serverResult = serverEngine.wrap(serverOut, sTOc);
- log("server wrap: ", serverResult);
- runDelegatedTasks(serverResult, serverEngine);
-
- sTOc.flip();
-
- if ((len = sTOc.remaining()) != 0) {
- sTOc.get(outbound, 0, len);
- os.write(outbound, 0, len);
- // Give the other side a chance to process
- }
-
- sTOc.compact();
-
- if (!closed && (serverOut.remaining() == 0)) {
- closed = true;
-
- /*
- * We'll alternate initiatating the shutdown.
- * When the server initiates, it will take one more
- * loop, but tests the orderly shutdown.
- */
- if (serverClose) {
- serverEngine.closeOutbound();
+ for (int i = 0; i < clientMsg.length; i++) {
+ if (clientMsg[i] != serverIn.get()) {
+ throw new Exception("Client: Data content error -" +
+ " IF THIS FAILS, PLEASE REPORT THIS TO THE" +
+ " SECURITY TEAM. WE HAVE BEEN UNABLE TO" +
+ " RELIABLY DUPLICATE.");
}
}
-
- if (closed && isEngineClosed(serverEngine)) {
- serverIn.flip();
-
- /*
- * A sanity check to ensure we got what was sent.
- */
- if (serverIn.remaining() != clientMsg.length) {
- throw new Exception("Client: Data length error -" +
- " IF THIS FAILS, PLEASE REPORT THIS TO THE" +
- " SECURITY TEAM. WE HAVE BEEN UNABLE TO" +
- " RELIABLY DUPLICATE.");
- }
-
- for (int i = 0; i < clientMsg.length; i++) {
- if (clientMsg[i] != serverIn.get()) {
- throw new Exception("Client: Data content error -" +
- " IF THIS FAILS, PLEASE REPORT THIS TO THE" +
- " SECURITY TEAM. WE HAVE BEEN UNABLE TO" +
- " RELIABLY DUPLICATE.");
- }
- }
- serverIn.compact();
- }
- }
- return;
- } catch (Exception e) {
- serverException = e;
- } finally {
- socket.close();
-
- // Wait for the client to join up with us.
- thread.join();
- if (serverException != null) {
- throw serverException;
- }
- if (clientException != null) {
- throw clientException;
+ serverIn.compact();
}
}
}
@@ -336,57 +405,114 @@
* Create a client thread which does simple SSLSocket operations.
* We'll write and read one data packet.
*/
- private Thread createClientThread(final int port,
- final boolean serverClose) throws Exception {
+ private Thread runClient(final boolean serverClose)
+ throws Exception {
Thread t = new Thread("ClientThread") {
@Override
public void run() {
try {
- Thread.sleep(1000); // Give server time to finish setup.
-
- sslSocket = (SSLSocket) sslc.getSocketFactory().
- createSocket("localhost", port);
- OutputStream os = sslSocket.getOutputStream();
- InputStream is = sslSocket.getInputStream();
-
- // write(byte[]) goes in one shot.
- os.write(clientMsg);
-
- byte[] inbound = new byte[2048];
- int pos = 0;
-
- int len;
-done:
- while ((len = is.read(inbound, pos, 2048 - pos)) != -1) {
- pos += len;
- // Let the client do the closing.
- if ((pos == serverMsg.length) && !serverClose) {
- sslSocket.close();
- break done;
- }
- }
-
- if (pos != serverMsg.length) {
- throw new Exception("Client: Data length error");
- }
-
- for (int i = 0; i < serverMsg.length; i++) {
- if (inbound[i] != serverMsg[i]) {
- throw new Exception("Client: Data content error");
- }
- }
+ doClientSide(serverClose);
} catch (Exception e) {
+ System.out.println("Client died ...");
+ e.printStackTrace(System.out);
clientException = e;
}
}
};
+
t.start();
return t;
}
/*
+ * Define the client side of the test.
+ */
+ void doClientSide(boolean serverClose) throws Exception {
+ // Wait for server to get started.
+ //
+ // The server side takes care of the issue if the server cannot
+ // get started in 90 seconds. The client side would just ignore
+ // the test case if the serer is not ready.
+ boolean serverIsReady =
+ serverCondition.await(90L, TimeUnit.SECONDS);
+ if (!serverIsReady) {
+ System.out.println(
+ "The server is not ready yet in 90 seconds. " +
+ "Ignore in client side.");
+ return;
+ }
+
+ SSLSocketFactory sslsf = sslc.getSocketFactory();
+ try (SSLSocket sslSocket = (SSLSocket)sslsf.createSocket()) {
+ try {
+ sslSocket.connect(
+ new InetSocketAddress("localhost", serverPort), 15000);
+ } catch (IOException ioe) {
+ // The server side may be impacted by naughty test cases or
+ // third party routines, and cannot accept connections.
+ //
+ // Just ignore the test if the connection cannot be
+ // established.
+ System.out.println(
+ "Cannot make a connection in 15 seconds. " +
+ "Ignore in client side.");
+ return;
+ }
+
+ // OK, here the client and server get connected.
+
+ // Signal the server, the client is ready to communicate.
+ clientCondition.countDown();
+
+ // There is still a chance in theory that the server thread may
+ // wait client-ready timeout and then quit. The chance should
+ // be really rare so we don't consider it until it becomes a
+ // real problem.
+
+ // Run the application in client side.
+ runClientApplication(sslSocket, serverClose);
+ }
+ }
+
+ /*
+ * Define the server side application of the test for the specified socket.
+ */
+ void runClientApplication(SSLSocket sslSocket, boolean serverClose)
+ throws Exception {
+
+ OutputStream os = sslSocket.getOutputStream();
+ InputStream is = sslSocket.getInputStream();
+
+ // write(byte[]) goes in one shot.
+ os.write(clientMsg);
+
+ byte[] inbound = new byte[2048];
+ int pos = 0;
+
+ int len;
+ while ((len = is.read(inbound, pos, 2048 - pos)) != -1) {
+ pos += len;
+ // Let the client do the closing.
+ if ((pos == serverMsg.length) && !serverClose) {
+ sslSocket.close();
+ break;
+ }
+ }
+
+ if (pos != serverMsg.length) {
+ throw new Exception("Client: Data length error");
+ }
+
+ for (int i = 0; i < serverMsg.length; i++) {
+ if (inbound[i] != serverMsg[i]) {
+ throw new Exception("Client: Data content error");
+ }
+ }
+ }
+
+ /*
* Using the SSLContext created during object creation,
* create/configure the SSLEngines we'll use for this test.
*/
--- a/jdk/test/sun/security/tools/keytool/DefaultSignatureAlgorithm.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/tools/keytool/DefaultSignatureAlgorithm.java Fri Sep 16 13:15:02 2016 -0700
@@ -26,6 +26,7 @@
* @bug 8138766
* @summary New default -sigalg for keytool
* @modules java.base/sun.security.tools.keytool
+ * @modules jdk.crypto.ec
* @run main/othervm DefaultSignatureAlgorithm RSA 1024 SHA256withRSA
* @run main/othervm DefaultSignatureAlgorithm RSA 3072 SHA256withRSA
* @run main/othervm DefaultSignatureAlgorithm RSA 3073 SHA384withRSA
--- a/jdk/test/sun/security/x509/URICertStore/ExtensionsWithLDAP.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/x509/URICertStore/ExtensionsWithLDAP.java Fri Sep 16 13:15:02 2016 -0700
@@ -23,6 +23,15 @@
* questions.
*/
+/*
+ * @test
+ * @bug 8134708
+ * @summary Check if LDAP resources from CRLDP and AIA extensions can be loaded
+ * @run main/othervm ExtensionsWithLDAP CRLDP ldap.host.for.crldp
+ * @modules jdk.security.auth
+ * @run main/othervm ExtensionsWithLDAP AIA ldap.host.for.aia
+ */
+
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
@@ -45,13 +54,6 @@
import java.util.Set;
import java.util.function.Consumer;
-/*
- * @test
- * @bug 8134708
- * @summary Check if LDAP resources from CRLDP and AIA extensions can be loaded
- * @run main/othervm ExtensionsWithLDAP CRLDP ldap.host.for.crldp
- * @run main/othervm ExtensionsWithLDAP AIA ldap.host.for.aia
- */
public class ExtensionsWithLDAP {
/*
--- a/jdk/test/sun/security/x509/X509CertImpl/V3Certificate.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/sun/security/x509/X509CertImpl/V3Certificate.java Fri Sep 16 13:15:02 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
@@ -21,6 +21,17 @@
* questions.
*/
+/*
+ * @test
+ * @bug 8049237
+ * @modules java.base/sun.security.x509
+ * java.base/sun.security.util
+ * jdk.crypto.ec
+ * @summary This test generates V3 certificate with all the supported
+ * extensions. Writes back the generated certificate in to a file and checks for
+ * equality with the original certificate.
+ */
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -28,7 +39,6 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
-import static java.lang.System.out;
import java.security.InvalidKeyException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
@@ -50,15 +60,8 @@
import sun.security.util.ObjectIdentifier;
import sun.security.x509.*;
-/**
- * @test
- * @bug 8049237
- * @modules java.base/sun.security.x509
- * java.base/sun.security.util
- * @summary This test generates V3 certificate with all the supported
- * extensions. Writes back the generated certificate in to a file and checks for
- * equality with the original certificate.
- */
+import static java.lang.System.out;
+
public class V3Certificate {
public static final String V3_FILE = "certV3";
--- a/jdk/test/tools/jlink/IntegrationTest.java Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/tools/jlink/IntegrationTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/jdk/test/tools/jlink/plugins/IncludeLocalesPluginTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/.hgtags Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/main/JavaCompiler.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/sjavac/options/Options.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/src/jdk.jshell/share/classes/jdk/jshell/ReplParser.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/src/jdk.jshell/share/classes/jdk/jshell/SourceCodeAnalysisImpl.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/src/jdk.jshell/share/classes/jdk/jshell/TaskFactory.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/jdk/jshell/CompletionSuggestionTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/jdk/jshell/RejectedFailedTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/ClassFileModifiers/ClassModifiers.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/ClassFileModifiers/MemberModifiers.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234a.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234b.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234c.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/Diagnostics/6722234/T6722234d.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/Diagnostics/6862608/T6862608a.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/Diagnostics/6862608/T6862608b.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/Diagnostics/7010608/Test.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/Diagnostics/8010387/T8010387.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/InterfaceMemberClassModifiers.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/T5003235/T5003235a.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/T5003235/T5003235b.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/T6214885.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/T8026963/TypeAnnotationsCrashWithErroneousTreeTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/annotations/neg/8022765/VerifyErroneousAnnotationsAttributed.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/annotations/typeAnnotations/newlocations/AfterMethodTypeParams.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/api/6731573/T6731573.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/api/taskListeners/EventsBalancedTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/completionDeps/DepsAndAnno.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/completionDeps/DepsAndDocLint.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/CheckResourceKeys.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/ApplicableMethodFound.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/ApplicableMethodFound1.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/DeferredMethodInst.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/LambdaStat.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/MrefStat.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/MrefStat1.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/NotApplicableMethodFound.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/PartialInstSig.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/VerboseResolveMulti.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/VerboseResolveMulti1.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/WhereCaptured.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/WhereCaptured1.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/WhereFreshTvar.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/WhereIntersection.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/WhereIntersection2.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/WhereTypeVar.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/diags/examples/WhereTypeVar2.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/CheckAttributedTree.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver01.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver02.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver03.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver04.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver05.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver06.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver07.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver08.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver09.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver10.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver11.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver12.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver13.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver14.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/failover/FailOver15.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/generics/inference/8158355/T8158355.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/lambda/MostSpecific09.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/lambda/MostSpecific09.out Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/lambda/TestLambdaToMethodStats.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/lambda/XDdumpLambdaToMethodStats.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/lambda/bridge/TestMetafactoryBridges.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/lambda/mostSpecific/StructuralMostSpecificTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/missingSuperRecovery/MissingSuperRecovery.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/modules/AddLimitMods.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/policy/test3/Test.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/positions/TreeEndPosTest.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/protectedAccess/ProtectedMemberAccess2.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/protectedAccess/ProtectedMemberAccess3.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/protectedAccess/ProtectedMemberAccess4.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/resolve/ResolveHarness.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/javac/unicode/UnicodeNewline.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/langtools/test/tools/sjavac/JavacOptionPrep.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/make/CompileJavaModules.gmk Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/nashorn/.hgtags Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptFunction.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java Fri Sep 16 13:15:02 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 Thu Sep 15 16:56:11 2016 -0400
+++ b/nashorn/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/SharedPropertyMap.java Fri Sep 16 13:15:02 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 Fri Sep 16 13:15:02 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");