diff --git a/.hgtags b/.hgtags
index a9515ecb57f..555f758c163 100644
--- a/.hgtags
+++ b/.hgtags
@@ -377,3 +377,4 @@ e613affb88d178dc7c589f1679db113d589bddb4 jdk-9+130
2e83d21d78cd9c1d52e6cd2599e9c8aa36ea1f52 jdk-9+132
e17429a7e843c4a4ed3651458d0f950970edcbcc jdk-9+133
a71210c0d9800eb6925b61ecd6198abd554f90ee jdk-9+134
+e384420383a5b79fa0012ebcb25d8f83cff7f777 jdk-9+135
diff --git a/.hgtags-top-repo b/.hgtags-top-repo
index 0c614608939..c9694066072 100644
--- a/.hgtags-top-repo
+++ b/.hgtags-top-repo
@@ -377,3 +377,4 @@ d94d54a3192fea79234c3ac55cd0b4052d45e954 jdk-9+130
a24702d4d5ab0015a5c553ed57f66fce7d85155e jdk-9+132
be1218f792a450dfb5d4b1f82616b9d95a6a732e jdk-9+133
065724348690eda41fc69112278d8da6dcde548c jdk-9+134
+82b94cb5f342319d2cda77f9fa59703ad7fde576 jdk-9+135
diff --git a/corba/.hgtags b/corba/.hgtags
index ee81ced5edd..3b09618de85 100644
--- a/corba/.hgtags
+++ b/corba/.hgtags
@@ -377,3 +377,4 @@ f7e1d5337c2e550fe553df7a3886bbed80292ecd jdk-9+131
1ab4b9399c4cba584f66c1c088188f2f565fbf9c jdk-9+132
2021bfedf1c478a4808a7711a6090682a12f4c0e jdk-9+133
1a497f5ca0cfd88115cc7daa8af8a62b8741caf2 jdk-9+134
+094d0db606db976045f594dba47d4593b715cc81 jdk-9+135
diff --git a/hotspot/.hgtags b/hotspot/.hgtags
index 4cc7243b9ce..a52c2a2a2da 100644
--- a/hotspot/.hgtags
+++ b/hotspot/.hgtags
@@ -537,3 +537,4 @@ e96b34b76d863ed1fa04e0eeb3f297ac17b490fd jdk-9+129
713951c08aa26813375175c2ab6cc99ff2a56903 jdk-9+132
a25e0fb6033245ab075136e744d362ce765464cd jdk-9+133
b8b694c6b4d2ab0939aed7adaf0eec1ac321a085 jdk-9+134
+3b1c4562953db47e36b237a500f368d5c9746d47 jdk-9+135
diff --git a/jaxp/.hgtags b/jaxp/.hgtags
index 25362b9eae8..19adf3a8769 100644
--- a/jaxp/.hgtags
+++ b/jaxp/.hgtags
@@ -377,3 +377,4 @@ e66cdc2de6b02443911d386fc9217b0d824d0686 jdk-9+130
907445d85e680ea410fe2c83c0ec64b5508e4f3e jdk-9+132
9490ba2e5e41685c858a0ca2a6ec87611eb011c6 jdk-9+133
1c6c21d87aa459d82425e1fddc9ce8647aebde34 jdk-9+134
+f695240370c77a25fed88225a392e7d530cb4d78 jdk-9+135
diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java
index 99911f99628..4ca60383ea3 100644
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/compiler/TransletOutput.java
@@ -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.StringType;
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 class TransletOutput extends Instruction {
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");
diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java
index 98db772821e..f47a3eb2305 100644
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/runtime/AbstractTranslet.java
@@ -111,6 +111,9 @@ public abstract class AbstractTranslet implements Translet {
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 @@ public abstract class AbstractTranslet implements Translet {
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 @@ public abstract class AbstractTranslet implements Translet {
try {
handler.endDocument();
handler.close();
+ if (output != null) {
+ output.close();
+ }
}
catch (Exception e) {
// what can you do?
diff --git a/jaxp/src/java.xml/share/classes/javax/xml/datatype/XMLGregorianCalendar.java b/jaxp/src/java.xml/share/classes/javax/xml/datatype/XMLGregorianCalendar.java
index bc98084c55b..82ea2e17329 100644
--- a/jaxp/src/java.xml/share/classes/javax/xml/datatype/XMLGregorianCalendar.java
+++ b/jaxp/src/java.xml/share/classes/javax/xml/datatype/XMLGregorianCalendar.java
@@ -1072,4 +1072,3 @@ public abstract class XMLGregorianCalendar
@Override
public abstract Object clone();
}
-
diff --git a/jaxp/src/java.xml/share/classes/module-info.java b/jaxp/src/java.xml/share/classes/module-info.java
index 40ca6421302..2e21ed692cf 100644
--- a/jaxp/src/java.xml/share/classes/module-info.java
+++ b/jaxp/src/java.xml/share/classes/module-info.java
@@ -92,4 +92,3 @@ module java.xml {
uses javax.xml.xpath.XPathFactory;
uses org.xml.sax.XMLReader;
}
-
diff --git a/jaxp/src/jdk.xml.dom/share/classes/module-info.java b/jaxp/src/jdk.xml.dom/share/classes/module-info.java
index a75c8f36b78..af8529c3f80 100644
--- a/jaxp/src/jdk.xml.dom/share/classes/module-info.java
+++ b/jaxp/src/jdk.xml.dom/share/classes/module-info.java
@@ -30,4 +30,3 @@ module jdk.xml.dom {
exports org.w3c.dom.stylesheets;
exports org.w3c.dom.xpath;
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/DurationTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/DurationTest.java
index 2a27b942859..057414557a0 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/DurationTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/DurationTest.java
@@ -587,4 +587,3 @@ public class DurationTest {
private final BigInteger one = BigInteger.ONE;
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/FactoryNewInstanceTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/FactoryNewInstanceTest.java
index 8f21a2b23a1..26aada36bcf 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/FactoryNewInstanceTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/FactoryNewInstanceTest.java
@@ -77,4 +77,3 @@ public class FactoryNewInstanceTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/XMLGregorianCalendarTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/XMLGregorianCalendarTest.java
index bd98ec9690d..2f0281013fa 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/XMLGregorianCalendarTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/datatype/ptests/XMLGregorianCalendarTest.java
@@ -358,4 +358,3 @@ public class XMLGregorianCalendarTest {
private final int undef = DatatypeConstants.FIELD_UNDEFINED;
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DBFNamespaceTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DBFNamespaceTest.java
index 9eec7901ffd..be2dcba2f4e 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DBFNamespaceTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DBFNamespaceTest.java
@@ -105,5 +105,3 @@ public class DBFNamespaceTest {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java
index 2419a23241e..bc5cc4c9fcc 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderFactoryTest.java
@@ -531,5 +531,3 @@ public class DocumentBuilderFactoryTest {
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderImpl01.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderImpl01.java
index e805094f887..65028a582fc 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderImpl01.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/DocumentBuilderImpl01.java
@@ -157,5 +157,3 @@ public class DocumentBuilderImpl01 implements EntityResolver {
return null;
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java
index 32c25b30c0b..43527cf721a 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/FactoryConfErrorTest.java
@@ -86,5 +86,3 @@ public class FactoryConfErrorTest {
DocumentBuilderFactory.newInstance();
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXFactoryNewInstanceTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXFactoryNewInstanceTest.java
index e4db5b4e3a2..aa8ba1337bb 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXFactoryNewInstanceTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXFactoryNewInstanceTest.java
@@ -78,5 +78,3 @@ public class SAXFactoryNewInstanceTest {
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java
index 6b8245a43cc..c294abe51fb 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserFactTest.java
@@ -229,5 +229,3 @@ public class SAXParserFactTest {
assertFalse(spf.getFeature(EXTERNAL_P_ENTITIES));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest.java
index adc1b657c23..ed702b24ec9 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest.java
@@ -502,5 +502,3 @@ public class SAXParserTest {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest02.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest02.java
index d7efae1b51a..1c7f410615f 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest02.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest02.java
@@ -269,5 +269,3 @@ public class SAXParserTest02 {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest03.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest03.java
index e16a070bc2a..94273e722ee 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest03.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/parsers/ptests/SAXParserTest03.java
@@ -116,5 +116,3 @@ public class SAXParserTest03 {
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLEventFactoryNewInstanceTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLEventFactoryNewInstanceTest.java
index 9d588c3dea0..b272cd10cac 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLEventFactoryNewInstanceTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLEventFactoryNewInstanceTest.java
@@ -82,4 +82,3 @@ public class XMLEventFactoryNewInstanceTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLInputFactoryNewInstanceTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLInputFactoryNewInstanceTest.java
index b983d76a7d8..9b77ac4b1af 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLInputFactoryNewInstanceTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/stream/ptests/XMLInputFactoryNewInstanceTest.java
@@ -82,4 +82,3 @@ public class XMLInputFactoryNewInstanceTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/Bug6384418Test.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/Bug6384418Test.java
index 8fce6a80440..e3e46791768 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/Bug6384418Test.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/Bug6384418Test.java
@@ -67,5 +67,3 @@ public class Bug6384418Test {
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/DOMResultTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/DOMResultTest.java
index b1a86f73e64..b1a65ec6e9e 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/DOMResultTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/DOMResultTest.java
@@ -118,5 +118,3 @@ public class DOMResultTest {
writeNodes(kids.item(i), bWriter);
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/ErrorListenerTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/ErrorListenerTest.java
index 7d01e52de9a..eb9de80edc4 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/ErrorListenerTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/ErrorListenerTest.java
@@ -104,5 +104,3 @@ public class ErrorListenerTest implements ErrorListener {
this.status = ListenerStatus.FATAL;
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXSourceTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXSourceTest.java
index 81f97cd909e..843b5571dbb 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXSourceTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXSourceTest.java
@@ -105,5 +105,3 @@ public class SAXSourceTest {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXTFactoryTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXTFactoryTest.java
index 4721e7c9a61..16f2ba1b0e5 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXTFactoryTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/SAXTFactoryTest.java
@@ -431,5 +431,3 @@ public class SAXTFactoryTest {
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/StreamResultTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/StreamResultTest.java
index 832c5383e29..cfa6d59a587 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/StreamResultTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/StreamResultTest.java
@@ -106,5 +106,3 @@ public class StreamResultTest {
});
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TfClearParamTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TfClearParamTest.java
index b30cd90e4fc..10867c9f0d2 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TfClearParamTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TfClearParamTest.java
@@ -239,5 +239,3 @@ public class TfClearParamTest {
assertNull(transformer.getParameter(LONG_PARAM_NAME));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformTest.java
index 038bb168407..b98272896cf 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformTest.java
@@ -384,5 +384,3 @@ public class TransformTest {
private Document xmlDoc;
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerExcpTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerExcpTest.java
index 58d60763db5..cf70fdee7b3 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerExcpTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerExcpTest.java
@@ -105,5 +105,3 @@ public class TransformerExcpTest {
assertNotNull(te.initCause(null));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java
index ae8a2bc6b8f..5f1fbb29500 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerFactoryTest.java
@@ -141,5 +141,3 @@ public class TransformerFactoryTest {
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest.java
index a8d7e4705a7..14d463e4dae 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest.java
@@ -207,5 +207,3 @@ class MyErrorListener implements ErrorListener {
System.out.println(" In fatal");
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest02.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest02.java
index 3a9a058abcb..57d47c2c72a 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest02.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest02.java
@@ -85,5 +85,3 @@ public class TransformerTest02 {
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest03.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest03.java
index d0330a783ec..3ea3b1b8639 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest03.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/TransformerTest03.java
@@ -94,5 +94,3 @@ public class TransformerTest03 {
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/URIResolverTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/URIResolverTest.java
index d595b485115..c7c7fc3ee13 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/URIResolverTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/URIResolverTest.java
@@ -262,5 +262,3 @@ public class URIResolverTest implements URIResolver {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/othervm/TFCErrorTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/othervm/TFCErrorTest.java
index f86d4b90fdc..e0471aeb160 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/othervm/TFCErrorTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/transform/ptests/othervm/TFCErrorTest.java
@@ -54,5 +54,3 @@ public class TFCErrorTest {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java
index f18588acbaa..c3a12612a05 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/SchemaFactoryTest.java
@@ -404,4 +404,3 @@ public class SchemaFactoryTest {
private Document xsdDoc2;
private byte[] xml;
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/TypeInfoProviderTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/TypeInfoProviderTest.java
index 782981a49be..bc2b818fba7 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/TypeInfoProviderTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/TypeInfoProviderTest.java
@@ -95,4 +95,3 @@ public class TypeInfoProviderTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorHandlerTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorHandlerTest.java
index b80a9f5047e..686abe494c3 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorHandlerTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorHandlerTest.java
@@ -148,4 +148,3 @@ public class ValidatorHandlerTest {
private Schema schema;
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorTest.java
index 17015bf9cc7..ec50dd50bb5 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/validation/ptests/ValidatorTest.java
@@ -209,4 +209,3 @@ public class ValidatorTest {
private Document xmlDoc;
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathExpressionTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathExpressionTest.java
index 585804cf995..4a7dca37be0 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathExpressionTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathExpressionTest.java
@@ -491,5 +491,3 @@ public class XPathExpressionTest {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java
index 517fecc020c..8a9c51aa284 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFactoryTest.java
@@ -218,5 +218,3 @@ public class XPathFactoryTest {
assertNotNull(XPathFactory.newInstance(DOM_OBJECT_MODEL));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFunctionResolverTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFunctionResolverTest.java
index 8f19976cdb9..6f5e80abb7a 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFunctionResolverTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathFunctionResolverTest.java
@@ -82,5 +82,3 @@ public class XPathFunctionResolverTest {
assertEquals(xpath.evaluate(null, "5"), "2");
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathTest.java b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathTest.java
index f3f4a0d0563..86808d6b035 100644
--- a/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/javax/xml/xpath/ptests/XPathTest.java
@@ -757,5 +757,3 @@ public class XPathTest {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/AttrTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/AttrTest.java
index e17afe6b80a..5c5405e63f0 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/AttrTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/AttrTest.java
@@ -151,4 +151,3 @@ public class AttrTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/CommentTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/CommentTest.java
index eda658bb960..8ded2ce6b51 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/CommentTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/CommentTest.java
@@ -48,4 +48,3 @@ public class CommentTest extends AbstractCharacterDataTest {
return document.createComment(text);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTest.java
index fe309a81aaa..aa4f6ee4759 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTest.java
@@ -175,4 +175,3 @@ public class DocumentTest {
doc.createElement("!nc$%^*(!");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTypeTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTypeTest.java
index 63d23966131..9ac72f5c337 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTypeTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DocumentTypeTest.java
@@ -92,4 +92,3 @@ public class DocumentTypeTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DomImplementationTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DomImplementationTest.java
index 9e8c0247144..ebfe9295ddd 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DomImplementationTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/DomImplementationTest.java
@@ -129,4 +129,3 @@ public class DomImplementationTest {
assertEquals(documentType.getName(), name);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/ElementTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/ElementTest.java
index 6726eb0ab8b..c67f32a840f 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/ElementTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/ElementTest.java
@@ -255,4 +255,3 @@ public class ElementTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/EntityChildTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/EntityChildTest.java
index ffac684287d..78473f793bc 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/EntityChildTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/EntityChildTest.java
@@ -61,4 +61,3 @@ public class EntityChildTest {
assertEquals(nl.getLength(), 3);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NamedNodeMapTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NamedNodeMapTest.java
index 405934b3c3d..b83bcf75f0d 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NamedNodeMapTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NamedNodeMapTest.java
@@ -121,4 +121,3 @@ public class NamedNodeMapTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeListTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeListTest.java
index 8d2d1556616..9d9cb491f2a 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeListTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeListTest.java
@@ -64,4 +64,3 @@ public class NodeListTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java
index 25c047bdfd5..bb4d6b3574a 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java
@@ -211,4 +211,3 @@ public class NodeTest {
transformer.transform(domSource, streamResult);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NotationTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NotationTest.java
index 0b698f37bc5..46bb3d25ca6 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NotationTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NotationTest.java
@@ -74,4 +74,3 @@ public class NotationTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/PITest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/PITest.java
index 3ddf96e86a0..3b942942132 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/PITest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/PITest.java
@@ -54,4 +54,3 @@ public class PITest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TextTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TextTest.java
index 223853ebd05..3131e8d3de1 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TextTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TextTest.java
@@ -74,4 +74,3 @@ public class TextTest extends AbstractCharacterDataTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TypeInfoTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TypeInfoTest.java
index c407ff58a64..ca3f174ce39 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TypeInfoTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/TypeInfoTest.java
@@ -140,4 +140,3 @@ public class TypeInfoTest {
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttrImplTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttrImplTest.java
index 2337dcec586..9c4910bc904 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttrImplTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttrImplTest.java
@@ -202,5 +202,3 @@ public class AttrImplTest {
attr.removeAttribute(1);
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesNSTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesNSTest.java
index f42dc9c50e2..f3115757e0f 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesNSTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesNSTest.java
@@ -74,5 +74,3 @@ public class AttributesNSTest {
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesTest.java
index e56e9458532..e6259be3a76 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/AttributesTest.java
@@ -76,5 +76,3 @@ public class AttributesTest {
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ContentHandlerTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ContentHandlerTest.java
index bbcb4b40a4c..5ca0b94924a 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ContentHandlerTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ContentHandlerTest.java
@@ -264,5 +264,3 @@ class MyContentHandler extends XMLFilterImpl implements AutoCloseable {
bWriter.close();
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/DefaultHandlerTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/DefaultHandlerTest.java
index f8cce65cd30..6418fa264bd 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/DefaultHandlerTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/DefaultHandlerTest.java
@@ -272,5 +272,3 @@ class MyDefaultHandler extends DefaultHandler {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/EHFatalTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/EHFatalTest.java
index 9d4621a4dbf..173a5ca659f 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/EHFatalTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/EHFatalTest.java
@@ -135,5 +135,3 @@ class MyErrorHandler extends XMLFilterImpl implements AutoCloseable {
bWriter.close();
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSSupportTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSSupportTest.java
index 148f46a3950..695a3ec806a 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSSupportTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSSupportTest.java
@@ -131,5 +131,3 @@ public class NSSupportTest {
assertNull(support.getURI(DC_PREFIX));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSTableTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSTableTest.java
index 615554f1d4e..7fd27ffbbf5 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSTableTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/NSTableTest.java
@@ -168,5 +168,3 @@ public class NSTableTest {
assertFalse(spf.getFeature(NAMESPACE_PREFIXES));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ParserAdapterTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ParserAdapterTest.java
index 4fb4de21bba..627134b5eaf 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ParserAdapterTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ParserAdapterTest.java
@@ -265,5 +265,3 @@ public class ParserAdapterTest {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ResolverTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ResolverTest.java
index 49796f21845..6822a88034c 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ResolverTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/ResolverTest.java
@@ -143,5 +143,3 @@ class MyEntityResolver extends XMLFilterImpl implements AutoCloseable {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/SAXParserNSTableTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/SAXParserNSTableTest.java
index 84d534ba4d4..71cad03dc9f 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/SAXParserNSTableTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/SAXParserNSTableTest.java
@@ -107,5 +107,3 @@ public class SAXParserNSTableTest {
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterCBTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterCBTest.java
index 9abea366b01..91dd02f8fb9 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterCBTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterCBTest.java
@@ -285,5 +285,3 @@ class MyXMLFilter extends XMLFilterImpl implements AutoCloseable {
bWriter.close();
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterTest.java
index df6bce21461..4483942699f 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLFilterTest.java
@@ -246,5 +246,3 @@ public class XMLFilterTest {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderAdapterTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderAdapterTest.java
index 9ea1a1a39bb..350074fbf2c 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderAdapterTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderAdapterTest.java
@@ -112,5 +112,3 @@ public class XMLReaderAdapterTest {
}
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderFactoryTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderFactoryTest.java
index 221244b96de..7ee49f39076 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderFactoryTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderFactoryTest.java
@@ -76,5 +76,3 @@ public class XMLReaderFactoryTest {
XMLReaderFactory.createXMLReader("org.apache.crimson.parser.ABCD");
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderNSTableTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderNSTableTest.java
index 9f91ddee5f2..518dbc0f8bb 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderNSTableTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderNSTableTest.java
@@ -131,5 +131,3 @@ public class XMLReaderNSTableTest {
assertTrue(compareWithGold(goldFile, outputFile));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderTest.java b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderTest.java
index 0ba1ae55e76..568548d919c 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/xml/sax/ptests/XMLReaderTest.java
@@ -671,5 +671,3 @@ class MyDeclHandler implements DeclHandler {
public void internalEntityDecl(String name, String value) {
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/astro/AstroTest.java b/jaxp/test/javax/xml/jaxp/functional/test/astro/AstroTest.java
index 8671a12242e..b605137f48f 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/AstroTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/AstroTest.java
@@ -145,4 +145,3 @@ public class AstroTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java b/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java
index 20179d5f46b..acfe988c13a 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java
@@ -182,4 +182,3 @@ public class DocumentLSTest {
return dbf.newDocumentBuilder();
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/astro/NamespaceContextTest.java b/jaxp/test/javax/xml/jaxp/functional/test/astro/NamespaceContextTest.java
index e9584a99579..70771bfeacf 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/NamespaceContextTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/NamespaceContextTest.java
@@ -89,4 +89,3 @@ public class NamespaceContextTest {
assertEquals(QName.valueOf(qname.toString()), qname);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/astro/SAX201Test.java b/jaxp/test/javax/xml/jaxp/functional/test/astro/SAX201Test.java
index d1bb70a3b8f..822140baccc 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/SAX201Test.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/SAX201Test.java
@@ -48,4 +48,3 @@ public class SAX201Test {
reader.setDTDHandler(null); // SAX 2.0.1 allows
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/astro/SchemaValidationTest.java b/jaxp/test/javax/xml/jaxp/functional/test/astro/SchemaValidationTest.java
index 6c557fb032b..6ba78e9d817 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/SchemaValidationTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/SchemaValidationTest.java
@@ -76,4 +76,3 @@ public class SchemaValidationTest {
return spf.newSAXParser();
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/astro/XPathAPITest.java b/jaxp/test/javax/xml/jaxp/functional/test/astro/XPathAPITest.java
index ba3aae0fa2b..69ada828241 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/XPathAPITest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/XPathAPITest.java
@@ -171,4 +171,3 @@ public class XPathAPITest {
return new InputSource(filenameToURL(ASTROCAT));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionController.java b/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionController.java
index 1238fb88967..5d3ea0317c5 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionController.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionController.java
@@ -366,5 +366,3 @@ public class AuctionController {
assertTrue(roletypeInfo.getTypeNamespace().equals(PORTAL_ACCOUNT_NS));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionItemRepository.java b/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionItemRepository.java
index 4ab09cf71c7..2bab94a41aa 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionItemRepository.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/AuctionItemRepository.java
@@ -371,5 +371,3 @@ public class AuctionItemRepository {
assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/UserController.java b/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/UserController.java
index 4ee18c423c4..5c4ac7c9bc6 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/UserController.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/auctionportal/UserController.java
@@ -304,5 +304,3 @@ public class UserController {
assertTrue(compareDocumentWithGold(goldFile, resultFile));
}
}
-
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4511326.java b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4511326.java
index 65e38a75e25..5c6c1b3e0be 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4511326.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4511326.java
@@ -64,4 +64,3 @@ public class Bug4511326 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4512806.java b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4512806.java
index cfc74fd26f2..1778a20a031 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4512806.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4512806.java
@@ -90,4 +90,3 @@ public class Bug4512806 {
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515047.java b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515047.java
index a833c117a8f..7af1eb4235c 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515047.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515047.java
@@ -62,4 +62,3 @@ public class Bug4515047 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515660.java b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515660.java
index bff0d401d25..15626ab1e71 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515660.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4515660.java
@@ -128,4 +128,3 @@ public class Bug4515660 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4693341.java b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4693341.java
index 8db96ac91a6..f76670bd22e 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4693341.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4693341.java
@@ -81,4 +81,3 @@ public class Bug4693341 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4848653.java b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4848653.java
index 4fa09ccc2dc..1ca0bcb77f3 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4848653.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4848653.java
@@ -81,4 +81,3 @@ public class Bug4848653 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4858685.java b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4858685.java
index 7bb8ea574ad..f5deceb04f1 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4858685.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/gaptest/Bug4858685.java
@@ -247,4 +247,3 @@ public class Bug4858685 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/test/module-info.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/test/module-info.java
index 9a1caa4e1f9..3cc31a4056f 100644
--- a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/test/module-info.java
+++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/test/module-info.java
@@ -24,4 +24,4 @@
module test {
requires java.xml;
exports test;
-}
\ No newline at end of file
+}
diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider1/module-info.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider1/module-info.java
index 5a5b1b01447..a4681d42a0a 100644
--- a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider1/module-info.java
+++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider1/module-info.java
@@ -31,4 +31,4 @@ module xmlprovider1 {
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
+}
diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider2/module-info.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider2/module-info.java
index c8bc623aa7a..511c25b019d 100644
--- a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider2/module-info.java
+++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/src/xmlprovider2/module-info.java
@@ -27,4 +27,4 @@ module xmlprovider2 {
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
+}
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/Bug6350682.java b/jaxp/test/javax/xml/jaxp/unittest/common/Bug6350682.java
index 210db35bfb2..aca1dcfe11a 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Bug6350682.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Bug6350682.java
@@ -75,4 +75,3 @@ public class Bug6350682 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/Bug6723276Test.java b/jaxp/test/javax/xml/jaxp/unittest/common/Bug6723276Test.java
index 8763290fe4e..f254c28ee49 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Bug6723276Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Bug6723276Test.java
@@ -68,4 +68,3 @@ public class Bug6723276Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/Bug6941169Test.java b/jaxp/test/javax/xml/jaxp/unittest/common/Bug6941169Test.java
index 8bf9ea43c93..b372470990c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Bug6941169Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Bug6941169Test.java
@@ -486,4 +486,3 @@ public class Bug6941169Test {
return document;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/Bug7143711Test.java b/jaxp/test/javax/xml/jaxp/unittest/common/Bug7143711Test.java
index 2414288b218..771d26a4677 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Bug7143711Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Bug7143711Test.java
@@ -114,4 +114,3 @@ public class Bug7143711Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/Sources.java b/jaxp/test/javax/xml/jaxp/unittest/common/Sources.java
index ec09062a626..ad5f815cbad 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/Sources.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/Sources.java
@@ -213,4 +213,3 @@ public class Sources {
return r;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/TestSAXDriver.java b/jaxp/test/javax/xml/jaxp/unittest/common/TestSAXDriver.java
index 1745e460a6d..033bbdefd6e 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/TestSAXDriver.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/TestSAXDriver.java
@@ -56,4 +56,3 @@ public class TestSAXDriver extends SAXParserImpl.JAXPSAXParser {
private static final String ENT_EXP_LIMIT_PROP = "http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit";
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/TransformationWarningsTest.java b/jaxp/test/javax/xml/jaxp/unittest/common/TransformationWarningsTest.java
index bffaa4afe5e..1dbe4188330 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/TransformationWarningsTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/TransformationWarningsTest.java
@@ -105,4 +105,3 @@ public class TransformationWarningsTest extends WarningsTestBase {
+ "";
private static final String xml = "";
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/ValidationWarningsTest.java b/jaxp/test/javax/xml/jaxp/unittest/common/ValidationWarningsTest.java
index c1f4989a770..1e09a762f61 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/ValidationWarningsTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/ValidationWarningsTest.java
@@ -85,4 +85,3 @@ public class ValidationWarningsTest extends WarningsTestBase {
private static final String xml = "Element";
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6320118.java b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6320118.java
index 5f92bd0a587..e9609155807 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6320118.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6320118.java
@@ -108,4 +108,3 @@ public class Bug6320118 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937951Test.java b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937951Test.java
index 1c86badd13c..36de6637e6d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937951Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937951Test.java
@@ -57,4 +57,3 @@ public class Bug6937951Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937964Test.java b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937964Test.java
index 9caf929ccf9..3e1129d2acc 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937964Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug6937964Test.java
@@ -270,4 +270,3 @@ public class Bug6937964Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug7042647Test.java b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug7042647Test.java
index f680336edc2..5e6e34b6af6 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug7042647Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/Bug7042647Test.java
@@ -60,4 +60,3 @@ public class Bug7042647Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/datatype/DatatypeFactoryTest.java b/jaxp/test/javax/xml/jaxp/unittest/datatype/DatatypeFactoryTest.java
index 6ca2985348e..4029e2b21ae 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/DatatypeFactoryTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/DatatypeFactoryTest.java
@@ -640,4 +640,3 @@ public class DatatypeFactoryTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/datatype/DurationTest.java b/jaxp/test/javax/xml/jaxp/unittest/datatype/DurationTest.java
index 76023529624..6b2204ef1e1 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/DurationTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/DurationTest.java
@@ -484,4 +484,3 @@ public class DurationTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/datatype/FactoryFindTest.java b/jaxp/test/javax/xml/jaxp/unittest/datatype/FactoryFindTest.java
index 915a63c71ee..2a1e2d6ea7f 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/FactoryFindTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/FactoryFindTest.java
@@ -76,4 +76,3 @@ public class FactoryFindTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/datatype/JDK8068839Test.java b/jaxp/test/javax/xml/jaxp/unittest/datatype/JDK8068839Test.java
index dd0720ded6e..03412b59edb 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/JDK8068839Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/JDK8068839Test.java
@@ -51,4 +51,3 @@ public class JDK8068839Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/datatype/XMLGregorianCalendarTest.java b/jaxp/test/javax/xml/jaxp/unittest/datatype/XMLGregorianCalendarTest.java
index 89c5fc63556..415d949c05d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/datatype/XMLGregorianCalendarTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/datatype/XMLGregorianCalendarTest.java
@@ -228,4 +228,3 @@ public class XMLGregorianCalendarTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915524.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915524.java
index 791146e6564..5ce2d195acd 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915524.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915524.java
@@ -81,4 +81,3 @@ public class Bug4915524 {
return docBuilder.parse(source);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915748.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915748.java
index e2186da9107..50a5ced37f4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915748.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4915748.java
@@ -74,4 +74,3 @@ public class Bug4915748 {
Assert.assertTrue(hadError[0]);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966082.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966082.java
index b24e9d5818b..30e1740f11c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966082.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966082.java
@@ -53,4 +53,3 @@ public class Bug4966082 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966138.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966138.java
index 43f1e1aa410..cdc96d140b9 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966138.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966138.java
@@ -69,4 +69,3 @@ public class Bug4966138 {
Assert.assertTrue(typeNs.length() != 0, "returned typeNamespace shouldn't be empty");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966142.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966142.java
index 5bd158e7723..ebd66a0a02b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966142.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966142.java
@@ -61,4 +61,3 @@ public class Bug4966142 {
Assert.assertFalse(type.isDerivedFrom("testNS", "Test", TypeInfo.DERIVATION_UNION));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966143.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966143.java
index 1cdbb466c14..4e42cb06b8c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966143.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug4966143.java
@@ -66,4 +66,3 @@ public class Bug4966143 {
Assert.assertTrue(type.isDerivedFrom("testNS", "Test", 0));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6339023.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6339023.java
index df2eaf3f955..d389516117e 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6339023.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6339023.java
@@ -139,4 +139,3 @@ public class Bug6339023 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6355326.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6355326.java
index d2656690847..f0b557a24a7 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6355326.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6355326.java
@@ -118,4 +118,3 @@ public class Bug6355326 {
return p;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6367542.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6367542.java
index b1ce0a16db9..21284ee3902 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6367542.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6367542.java
@@ -52,4 +52,3 @@ public class Bug6367542 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6520131.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6520131.java
index b1381c0b8aa..22940e07b14 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6520131.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6520131.java
@@ -83,4 +83,3 @@ public class Bug6520131 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6521260.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6521260.java
index 300bde2159a..e051748fe7a 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6521260.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6521260.java
@@ -77,4 +77,3 @@ public class Bug6521260 {
Assert.assertEquals(systemId, systemId2);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6582545Test.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6582545Test.java
index 9108af3d7f6..23c872e8553 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6582545Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6582545Test.java
@@ -123,4 +123,3 @@ public class Bug6582545Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6879614Test.java b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6879614Test.java
index ff5cf2cda6a..1e0f9da9f24 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6879614Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/Bug6879614Test.java
@@ -78,4 +78,3 @@ public class Bug6879614Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6333993Test.java b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6333993Test.java
index f407e2612e8..a706ae2bb31 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6333993Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6333993Test.java
@@ -88,4 +88,3 @@ public class CR6333993Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517707Test.java b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517707Test.java
index c8ee54a3acc..90102a0afd2 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517707Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517707Test.java
@@ -128,4 +128,3 @@ public class CR6517707Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517717Test.java b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517717Test.java
index 0b5d2e65b2f..0d73cd4fee7 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517717Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6517717Test.java
@@ -86,4 +86,3 @@ public class CR6517717Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6909336Test.java b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6909336Test.java
index 4b46cf9fb60..ea91169b203 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/CR6909336Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/CR6909336Test.java
@@ -72,4 +72,3 @@ public class CR6909336Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/DOMConfigurationTest.java b/jaxp/test/javax/xml/jaxp/unittest/dom/DOMConfigurationTest.java
index b4341558e8e..528736f11e8 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/DOMConfigurationTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/DOMConfigurationTest.java
@@ -1628,4 +1628,3 @@ public class DOMConfigurationTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/DOMXPathTest.java b/jaxp/test/javax/xml/jaxp/unittest/dom/DOMXPathTest.java
index 672c38e5fda..b43e694a575 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/DOMXPathTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/DOMXPathTest.java
@@ -54,4 +54,3 @@ public class DOMXPathTest {
Assert.assertEquals(domImpl.getFeature("+XPath", "3.0"), null);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/ElementTraversal.java b/jaxp/test/javax/xml/jaxp/unittest/dom/ElementTraversal.java
index ef87815d166..4319a0ad5a1 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ElementTraversal.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ElementTraversal.java
@@ -135,4 +135,3 @@ public class ElementTraversal {
return doc;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/JdkXmlDomTest.java b/jaxp/test/javax/xml/jaxp/unittest/dom/JdkXmlDomTest.java
index 19523434cf2..f07ac57c7b2 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/JdkXmlDomTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/JdkXmlDomTest.java
@@ -46,4 +46,3 @@ public class JdkXmlDomTest {
Assert.assertTrue(runWithAllPerm(() -> cls.getClassLoader()) != null);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/TCKEncodingTest.java b/jaxp/test/javax/xml/jaxp/unittest/dom/TCKEncodingTest.java
index 6dc3a24b68d..6f71906ee9d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/TCKEncodingTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/TCKEncodingTest.java
@@ -102,4 +102,3 @@ public class TCKEncodingTest {
System.out.println("OK");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug4973153.java b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug4973153.java
index 42d8d2457d0..b6bdd0f606c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug4973153.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug4973153.java
@@ -204,4 +204,3 @@ class DOMErrorHandlerImpl implements DOMErrorHandler {
return true;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6290947.java b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6290947.java
index f874107cf52..745c31c8d2b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6290947.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6290947.java
@@ -147,4 +147,3 @@ public class Bug6290947 {
return src;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6354955.java b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6354955.java
index f693e33765a..91507e97700 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6354955.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6354955.java
@@ -142,4 +142,3 @@ public class Bug6354955 {
return documentBuilder.newDocument();
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6376823.java b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6376823.java
index afd0458ab22..07541e8fee3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6376823.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6376823.java
@@ -121,4 +121,3 @@ public class Bug6376823 {
return src;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6710741Test.java b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6710741Test.java
index 73584b3f16d..3f4f1ffb0c4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6710741Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/Bug6710741Test.java
@@ -80,4 +80,3 @@ public class Bug6710741Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTCKTest.java b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTCKTest.java
index 3e4f8762b44..8c39f248400 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTCKTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTCKTest.java
@@ -584,4 +584,3 @@ public class LSParserTCKTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTest.java b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTest.java
index 1a3c5914942..18b50f2daed 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSParserTest.java
@@ -109,4 +109,3 @@ public class LSParserTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSSerializerTest.java b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSSerializerTest.java
index d30baa8945f..f1019369c4b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSSerializerTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSSerializerTest.java
@@ -319,4 +319,3 @@ public class LSSerializerTest {
Assert.assertEquals(XML11_DOCUMENT_OUTPUT, defaultSerialization, "Invalid serialization of XML 1.1 document: ");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4674384_MAX_OCCURS_Test.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4674384_MAX_OCCURS_Test.java
index c0e833e318d..1713fff6d62 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4674384_MAX_OCCURS_Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4674384_MAX_OCCURS_Test.java
@@ -70,4 +70,3 @@ public class Bug4674384_MAX_OCCURS_Test {
System.out.println("Success: File " + XML_FILE_NAME + " was parsed with a large value of maxOccurs.");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4934208.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4934208.java
index 65943390953..743f236302b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4934208.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4934208.java
@@ -74,4 +74,3 @@ public class Bug4934208 {
r.parse(is);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4967002.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4967002.java
index 308b5b11bf0..d0797a2f669 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4967002.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4967002.java
@@ -101,4 +101,3 @@ public class Bug4967002 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4985486.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4985486.java
index 7cc3313fad9..3fb179751e6 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4985486.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4985486.java
@@ -68,4 +68,3 @@ public class Bug4985486 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991020.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991020.java
index 189f5efebee..c0be7b47a04 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991020.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991020.java
@@ -56,4 +56,3 @@ public class Bug4991020 {
parser.parse(Bug4991020.class.getResource("Bug4991020.xml").toExternalForm(), new util.DraconianErrorHandler());
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991946.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991946.java
index a30cbd8fbc9..9213a59508d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991946.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug4991946.java
@@ -56,4 +56,3 @@ public class Bug4991946 {
parser.parse(Bug4991946.class.getResource("Bug4991946.xml").toExternalForm(), new util.DraconianErrorHandler());
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5010072.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5010072.java
index 786a2225731..04346c89fea 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5010072.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5010072.java
@@ -77,4 +77,3 @@ public class Bug5010072 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5025825.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5025825.java
index 86d766b282e..9f8cbcb4111 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5025825.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug5025825.java
@@ -89,4 +89,3 @@ public class Bug5025825 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6309988.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6309988.java
index 20e49c8a501..75fc8adfdd4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6309988.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6309988.java
@@ -370,4 +370,3 @@ public class Bug6309988 {
return System.getSecurityManager() != null;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java
index 5a93c1a515e..3bdff2a15ae 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java
@@ -83,4 +83,3 @@ public class Bug6341770 {
System.out.println("OK.");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6361283.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6361283.java
index 1e0e25a3bc0..5a76ae9992e 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6361283.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6361283.java
@@ -56,4 +56,3 @@ public class Bug6361283 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6506304Test.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6506304Test.java
index eab6d6dbdb8..98f2e96418d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6506304Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6506304Test.java
@@ -71,4 +71,3 @@ public class Bug6506304Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6518733.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6518733.java
index ab23e378732..37ee4cc57f4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6518733.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6518733.java
@@ -67,4 +67,3 @@ public class Bug6518733 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6564400.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6564400.java
index 1ae8c810fd9..e427478c427 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6564400.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6564400.java
@@ -180,4 +180,3 @@ public class Bug6564400 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786.java
index dd12ea5e254..87953ae836b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786.java
@@ -73,4 +73,3 @@ public class Bug6573786 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786ErrorHandler.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786ErrorHandler.java
index f4595896db7..b938eb6eb6f 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786ErrorHandler.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6573786ErrorHandler.java
@@ -45,4 +45,3 @@ public class Bug6573786ErrorHandler extends DefaultHandler {
System.out.println(e.getMessage());
} // warning ()
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6594813.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6594813.java
index 411bdf7c422..7e168d90cd4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6594813.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6594813.java
@@ -175,4 +175,3 @@ public class Bug6594813 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6608841.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6608841.java
index 67f596b284f..9c638368cc6 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6608841.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6608841.java
@@ -59,4 +59,3 @@ public class Bug6608841 {
public class MyHandler extends DefaultHandler {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6690015.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6690015.java
index 5d4359ae368..a866ee56a81 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6690015.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6690015.java
@@ -87,4 +87,3 @@ public class Bug6690015 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6760982.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6760982.java
index 9e6514aded4..a1cdcac7054 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6760982.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6760982.java
@@ -168,4 +168,3 @@ public class Bug6760982 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6849942Test.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6849942Test.java
index 4c9f3c0e11f..f2266d24e1c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6849942Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6849942Test.java
@@ -81,4 +81,3 @@ public class Bug6849942Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7157608Test.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7157608Test.java
index 26f3f8a595a..6fb819bf9ec 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7157608Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7157608Test.java
@@ -218,4 +218,3 @@ public class Bug7157608Test {
boolean validating = false;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7166896Test.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7166896Test.java
index ed727064128..ec25ae28d80 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7166896Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug7166896Test.java
@@ -80,4 +80,3 @@ public class Bug7166896Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147Test.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147Test.java
index efa75ed9838..4522fec1658 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147Test.java
@@ -93,4 +93,3 @@ public class Bug8003147Test {
}, new FilePermission(getSystemProperty("test.classes") + "/-", "read,write"));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147TestClass.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147TestClass.java
index f9da51202e1..3088a8d4f8c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147TestClass.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8003147TestClass.java
@@ -32,4 +32,3 @@ public class Bug8003147TestClass {
public void doSomething(double d, ArrayList list) {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8073385.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8073385.java
index eae5319f34d..aef8e65f838 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8073385.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug8073385.java
@@ -100,4 +100,3 @@ public class Bug8073385 {
assertTrue(exceptionText.contains("Unicode: " + hexString));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/FactoryFindTest.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/FactoryFindTest.java
index 2a4d7c17514..d45e6702fc0 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/FactoryFindTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/FactoryFindTest.java
@@ -75,4 +75,3 @@ public class FactoryFindTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/MyDefaultHandler.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/MyDefaultHandler.java
index 52874b90362..c690163eb86 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/MyDefaultHandler.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/MyDefaultHandler.java
@@ -45,4 +45,3 @@ public class MyDefaultHandler extends DefaultHandler {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/MyErrorHandler.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/MyErrorHandler.java
index fb01c19171a..695c932f603 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/MyErrorHandler.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/MyErrorHandler.java
@@ -53,4 +53,3 @@ public class MyErrorHandler extends DefaultHandler {
errorOccured = true;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/ParseEmptyStream.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/ParseEmptyStream.java
index 079f25304c9..c3159cf50cd 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/ParseEmptyStream.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/ParseEmptyStream.java
@@ -92,4 +92,3 @@ public class ParseEmptyStream {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/SupplementaryChars.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/SupplementaryChars.java
index 63e2371d75e..5b4e018e757 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/SupplementaryChars.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/SupplementaryChars.java
@@ -71,4 +71,3 @@ public class SupplementaryChars {
return parser;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/xinclude/Bug6794483Test.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/xinclude/Bug6794483Test.java
index a1c83eb9c00..8385d40c47f 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/xinclude/Bug6794483Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/xinclude/Bug6794483Test.java
@@ -107,4 +107,3 @@ public class Bug6794483Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/Attributes2ImplTest.java b/jaxp/test/javax/xml/jaxp/unittest/sax/Attributes2ImplTest.java
index a792405cce5..982bc8e595b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Attributes2ImplTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Attributes2ImplTest.java
@@ -153,4 +153,3 @@ public class Attributes2ImplTest {
Assert.assertTrue(impl1.getQName(2).equals(impl3.getQName(2)));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6889654Test.java b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6889654Test.java
index 651e804a89d..7eb7a59fe8f 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6889654Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6889654Test.java
@@ -87,4 +87,3 @@ public class Bug6889654Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6925410Test.java b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6925410Test.java
index 96303049be7..df006578c0c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6925410Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6925410Test.java
@@ -60,4 +60,3 @@ public class Bug6925410Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6949607Test.java b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6949607Test.java
index 7a6c8618110..1ba064fa56b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6949607Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6949607Test.java
@@ -81,4 +81,3 @@ public class Bug6949607Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6992561Test.java b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6992561Test.java
index 47f076553ff..7d05dd7f0a9 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6992561Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug6992561Test.java
@@ -86,4 +86,3 @@ public class Bug6992561Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug7057778Test.java b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug7057778Test.java
index 198ade37101..4bd69f09765 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug7057778Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug7057778Test.java
@@ -199,4 +199,3 @@ public class Bug7057778Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/DefaultHandler2Test.java b/jaxp/test/javax/xml/jaxp/unittest/sax/DefaultHandler2Test.java
index 7d3ff8c0e2e..a7bd3f59d0c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/DefaultHandler2Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/DefaultHandler2Test.java
@@ -251,4 +251,3 @@ public class DefaultHandler2Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/IssueTracker56Test.java b/jaxp/test/javax/xml/jaxp/unittest/sax/IssueTracker56Test.java
index 6c52f6d69bd..fbfef8f705b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/IssueTracker56Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/IssueTracker56Test.java
@@ -142,4 +142,3 @@ public class IssueTracker56Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/MyDefaultHandler2.java b/jaxp/test/javax/xml/jaxp/unittest/sax/MyDefaultHandler2.java
index b36ae9aa88a..44ac9fde73d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/MyDefaultHandler2.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/MyDefaultHandler2.java
@@ -198,4 +198,3 @@ public class MyDefaultHandler2 extends DefaultHandler2 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/NSSupportTest.java b/jaxp/test/javax/xml/jaxp/unittest/sax/NSSupportTest.java
index 4ade4a8d76a..32c4c5c05dc 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/NSSupportTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/NSSupportTest.java
@@ -232,4 +232,3 @@ public class NSSupportTest {
Assert.assertNull(nssupport.getURI(""));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/SAXExceptionExt.java b/jaxp/test/javax/xml/jaxp/unittest/sax/SAXExceptionExt.java
index a4c0e184458..9b9800d27fa 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/SAXExceptionExt.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/SAXExceptionExt.java
@@ -38,4 +38,3 @@ public class SAXExceptionExt extends SAXException {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/XMLReaderTest.java b/jaxp/test/javax/xml/jaxp/unittest/sax/XMLReaderTest.java
index 73c92da706a..cc234531a27 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/XMLReaderTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/XMLReaderTest.java
@@ -70,4 +70,3 @@ public class XMLReaderTest {
XMLReaderAdapter adapter = new XMLReaderAdapter();
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/AttributeLocalNameTest/AttributeLocalNameTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/AttributeLocalNameTest/AttributeLocalNameTest.java
index f9dbc0d4591..7aece9698f9 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/AttributeLocalNameTest/AttributeLocalNameTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/AttributeLocalNameTest/AttributeLocalNameTest.java
@@ -66,4 +66,3 @@ public class AttributeLocalNameTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6370703.java b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6370703.java
index 97cf8292b5e..ba8c7adee57 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6370703.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6370703.java
@@ -69,4 +69,3 @@ public class Bug6370703 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6378422.java b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6378422.java
index 8848cb4f76f..4fa70e2b73b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6378422.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6378422.java
@@ -51,4 +51,3 @@ public class Bug6378422 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6380870.java b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6380870.java
index 6ad9bfc092a..0c584d0fe35 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6380870.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6380870.java
@@ -58,4 +58,3 @@ public class Bug6380870 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6489502.java b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6489502.java
index 39cdcb0f9db..832f74de959 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6489502.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6489502.java
@@ -83,4 +83,3 @@ public class Bug6489502 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6509774.java b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6509774.java
index 54eeb8b60e4..5c6a4106104 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6509774.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6509774.java
@@ -174,4 +174,3 @@ public class Bug6509774 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6688002Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6688002Test.java
index dca27beec11..1c4ac758575 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6688002Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6688002Test.java
@@ -113,4 +113,3 @@ public class Bug6688002Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6976938Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6976938Test.java
index a3f09aa7334..f4a40ef28e8 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6976938Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6976938Test.java
@@ -100,4 +100,3 @@ public class Bug6976938Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/CoalesceTest/CoalesceTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/CoalesceTest/CoalesceTest.java
index 0b00c3c654c..09a12ca7476 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/CoalesceTest/CoalesceTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/CoalesceTest/CoalesceTest.java
@@ -110,4 +110,3 @@ public class CoalesceTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/EntitiesTest/EntityTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/EntitiesTest/EntityTest.java
index b7947fd2f44..24526e0dd9f 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EntitiesTest/EntityTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EntitiesTest/EntityTest.java
@@ -179,4 +179,3 @@ public class EntityTest {
return true;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/EventReaderDelegateTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/EventReaderDelegateTest.java
index 87246ebd13b..db93e02f55b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventReaderDelegateTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventReaderDelegateTest.java
@@ -231,4 +231,3 @@ public class EventReaderDelegateTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue41Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue41Test.java
index 56f97c54b48..13f25d5adc0 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue41Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue41Test.java
@@ -178,4 +178,3 @@ public class Issue41Test {
System.out.println(sw.toString());
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue48Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue48Test.java
index 4d3b144aca6..d4fa45bb789 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue48Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue48Test.java
@@ -115,4 +115,3 @@ public class Issue48Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue53Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue53Test.java
index 1e30efb2ca4..1490e28269c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue53Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue53Test.java
@@ -71,4 +71,3 @@ public class Issue53Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue58Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue58Test.java
index 8e00999acb4..6453fae9e06 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue58Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/EventsTest/Issue58Test.java
@@ -84,4 +84,3 @@ public class Issue58Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/FactoryFindTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/FactoryFindTest.java
index 8e908b0e37e..a0a538f2369 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/FactoryFindTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/FactoryFindTest.java
@@ -151,4 +151,3 @@ public class FactoryFindTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/IgnoreExternalDTDTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/IgnoreExternalDTDTest.java
index 44708b22e3e..4610aff758e 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/IgnoreExternalDTDTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/IgnoreExternalDTDTest.java
@@ -77,4 +77,3 @@ public class IgnoreExternalDTDTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/ProcessingInstructionTest/ProcessingInstructionTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/ProcessingInstructionTest/ProcessingInstructionTest.java
index 44a7dea91c3..43e785f81e4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/ProcessingInstructionTest/ProcessingInstructionTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/ProcessingInstructionTest/ProcessingInstructionTest.java
@@ -67,4 +67,3 @@ public class ProcessingInstructionTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/StreamReaderDelegateTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/StreamReaderDelegateTest.java
index 0568bca28bf..44c602e72d4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/StreamReaderDelegateTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/StreamReaderDelegateTest.java
@@ -383,4 +383,3 @@ public class StreamReaderDelegateTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventLocationTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventLocationTest.java
index 75bb79566f2..0472899ebb2 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventLocationTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventLocationTest.java
@@ -82,4 +82,3 @@ public class XMLEventLocationTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6489890.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6489890.java
index 5ac6f1a221a..d98aec1caf8 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6489890.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6489890.java
@@ -77,4 +77,3 @@ public class Bug6489890 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6555001.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6555001.java
index 79533441e96..ebb7cf87942 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6555001.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6555001.java
@@ -116,4 +116,3 @@ public class Bug6555001 {
}, new FilePermission("/tmp/this/does/not/exist/but/that/is/ok", "read"));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6586466Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6586466Test.java
index 86f2437fc85..437dd9e602a 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6586466Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6586466Test.java
@@ -66,4 +66,3 @@ public class Bug6586466Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6613059Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6613059Test.java
index 43e8a6165f1..23531b463ec 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6613059Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6613059Test.java
@@ -89,4 +89,3 @@ public class Bug6613059Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6668115Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6668115Test.java
index 07309465f99..f2b8ebe7e2f 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6668115Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6668115Test.java
@@ -100,4 +100,3 @@ public class Bug6668115Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6846133Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6846133Test.java
index a89b976b618..416c3e960bb 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6846133Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug6846133Test.java
@@ -83,4 +83,3 @@ public class Bug6846133Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug8153781.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug8153781.java
index 2ac01596c50..7c3b529afcf 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug8153781.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Bug8153781.java
@@ -94,4 +94,3 @@ public class Bug8153781 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Issue40Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Issue40Test.java
index 4c6e0c0ffb7..9ed53c57833 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Issue40Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventReaderTest/Issue40Test.java
@@ -100,4 +100,3 @@ public class Issue40Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/ReaderToWriterTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/ReaderToWriterTest.java
index d96eea1a1b4..3bd3ca25296 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/ReaderToWriterTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/ReaderToWriterTest.java
@@ -214,4 +214,3 @@ public class ReaderToWriterTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/XMLEventWriterTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/XMLEventWriterTest.java
index e04a349d92e..3dd7e25de3c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/XMLEventWriterTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/XMLEventWriterTest.java
@@ -156,4 +156,3 @@ public class XMLEventWriterTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6756677Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6756677Test.java
index 3ba9ca7776b..2e4b41dce2d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6756677Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6756677Test.java
@@ -113,4 +113,3 @@ public class Bug6756677Test {
Assert.assertTrue(xif instanceof XMLInputFactory, "xif should be an instance of XMLInputFactory");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6909759Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6909759Test.java
index d2e29713e2b..562b7a3d559 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6909759Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/Bug6909759Test.java
@@ -66,4 +66,3 @@ public class Bug6909759Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/IssueTracker38.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/IssueTracker38.java
index dea8f732b46..a70288a9346 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/IssueTracker38.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/IssueTracker38.java
@@ -92,4 +92,3 @@ public class IssueTracker38 {
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/MyInputFactory.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/MyInputFactory.java
index d9db7a08344..551d3f0f8d2 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/MyInputFactory.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLInputFactoryTest/MyInputFactory.java
@@ -158,4 +158,3 @@ public class MyInputFactory extends javax.xml.stream.XMLInputFactory {
throw new UnsupportedOperationException("Not supported yet.");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/Bug6846132Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/Bug6846132Test.java
index fa764c154a5..aabfa430581 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/Bug6846132Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/Bug6846132Test.java
@@ -89,4 +89,3 @@ public class Bug6846132Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/DuplicateNSDeclarationTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/DuplicateNSDeclarationTest.java
index 8fec5b107da..99c12487cf7 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/DuplicateNSDeclarationTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/DuplicateNSDeclarationTest.java
@@ -83,4 +83,3 @@ public class DuplicateNSDeclarationTest {
Assert.assertEquals(EXPECTED_OUTPUT, buffer.toString());
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/StreamResultTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/StreamResultTest.java
index e44a20c3138..47b089ae55f 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/StreamResultTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLOutputFactoryTest/StreamResultTest.java
@@ -162,4 +162,3 @@ public class StreamResultTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLResolverTest/XMLResolverTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLResolverTest/XMLResolverTest.java
index 12e7e9a74d9..628977e2656 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLResolverTest/XMLResolverTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLResolverTest/XMLResolverTest.java
@@ -96,4 +96,3 @@ public class XMLResolverTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamExceptionTest/ExceptionTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamExceptionTest/ExceptionTest.java
index 403c609db91..05f9aaecd0e 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamExceptionTest/ExceptionTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamExceptionTest/ExceptionTest.java
@@ -53,4 +53,3 @@ public class ExceptionTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481615.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481615.java
index 5ab83c987f8..87e70ab9cd9 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481615.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481615.java
@@ -68,4 +68,3 @@ public class Bug6481615 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481678.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481678.java
index ea79d530b11..daec8fb9cd2 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481678.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/Bug6481678.java
@@ -225,4 +225,3 @@ public class Bug6481678 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTest.java
index c573a8dfb6b..ad4c50dce75 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTest.java
@@ -145,4 +145,3 @@ public class HasNextTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTypeFilter.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTypeFilter.java
index 19748b3afdb..1fd6e20fe08 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTypeFilter.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamFilterTest/HasNextTypeFilter.java
@@ -47,4 +47,3 @@ public class HasNextTypeFilter implements EventFilter, StreamFilter {
return types[r.getEventType()];
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BOMTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BOMTest.java
index 3fa5bec18e7..93e934c7fe3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BOMTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BOMTest.java
@@ -67,4 +67,3 @@ public class BOMTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6388460.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6388460.java
index a981ba10c77..5c8096b45af 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6388460.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6388460.java
@@ -76,4 +76,3 @@ public class Bug6388460 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6472982Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6472982Test.java
index cd083359e1d..a4bec110fe9 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6472982Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6472982Test.java
@@ -79,4 +79,3 @@ public class Bug6472982Test {
return sbuffer.toString();
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6767322Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6767322Test.java
index 5a4c0be28a7..49f03ca4ba0 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6767322Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6767322Test.java
@@ -76,4 +76,3 @@ public class Bug6767322Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6847819Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6847819Test.java
index cfe1ade63ad..cdf353ecafe 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6847819Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Bug6847819Test.java
@@ -69,4 +69,3 @@ public class Bug6847819Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BugTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BugTest.java
index a2cf3c2ae9b..ca30f426d68 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BugTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/BugTest.java
@@ -51,4 +51,3 @@ public class BugTest {
Assert.assertEquals(XMLStreamConstants.START_DOCUMENT, r.getEventType());
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DefaultAttributeTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DefaultAttributeTest.java
index 10db94b8203..898bf3e3332 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DefaultAttributeTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DefaultAttributeTest.java
@@ -108,4 +108,3 @@ public class DefaultAttributeTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DoubleXmlnsTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DoubleXmlnsTest.java
index 493d6b31545..1b47db5f4b3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DoubleXmlnsTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/DoubleXmlnsTest.java
@@ -118,4 +118,3 @@ public class DoubleXmlnsTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IsValidatingTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IsValidatingTest.java
index 1f447928aa7..44c0c1fcd2c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IsValidatingTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IsValidatingTest.java
@@ -165,4 +165,3 @@ public class IsValidatingTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue44Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue44Test.java
index 9ef51e64d02..f4f8f5dbdc0 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue44Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue44Test.java
@@ -59,4 +59,3 @@ public class Issue44Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue47Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue47Test.java
index ad2d8dc0293..7d456463a4b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue47Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Issue47Test.java
@@ -89,4 +89,3 @@ public class Issue47Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker24.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker24.java
index b259576202c..1d7041d58b2 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker24.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker24.java
@@ -61,4 +61,3 @@ public class IssueTracker24 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker35.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker35.java
index d98e249c48e..2cc0a483ae6 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker35.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker35.java
@@ -59,4 +59,3 @@ public class IssueTracker35 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker70.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker70.java
index 33cc4b87574..c107c18110f 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker70.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/IssueTracker70.java
@@ -76,4 +76,3 @@ public class IssueTracker70 {
Assert.assertNotNull(value, "should have attribute value");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req5Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req5Test.java
index 3505fd59f50..0c753ac3be4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req5Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req5Test.java
@@ -91,4 +91,3 @@ public class Jsr173MR1Req5Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req8Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req8Test.java
index b6e703e93f8..49908781cd1 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req8Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/Jsr173MR1Req8Test.java
@@ -69,4 +69,3 @@ public class Jsr173MR1Req8Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/NamespaceTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/NamespaceTest.java
index 2ea93e90950..334011befc7 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/NamespaceTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/NamespaceTest.java
@@ -153,4 +153,3 @@ public class NamespaceTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/StreamReaderTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/StreamReaderTest.java
index cc01f89ebda..39a1c85bafb 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/StreamReaderTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/StreamReaderTest.java
@@ -62,4 +62,3 @@ public class StreamReaderTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/SupportDTDTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/SupportDTDTest.java
index ca51c6e1094..bfdfb76e06f 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/SupportDTDTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/SupportDTDTest.java
@@ -288,4 +288,3 @@ public class SupportDTDTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/VoiceXMLDTDTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/VoiceXMLDTDTest.java
index 216bf0d6536..a31b445880c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/VoiceXMLDTDTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/VoiceXMLDTDTest.java
@@ -58,4 +58,3 @@ public class VoiceXMLDTDTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/XML11Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/XML11Test.java
index f69166a2be8..95a88e5eb4b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/XML11Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamReaderTest/XML11Test.java
@@ -54,4 +54,3 @@ public class XML11Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/AttributeEscapeTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/AttributeEscapeTest.java
index 811f0bf1173..e7378e11170 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/AttributeEscapeTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/AttributeEscapeTest.java
@@ -103,4 +103,3 @@ public class AttributeEscapeTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6452107.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6452107.java
index 595c58d44a2..35472f0713d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6452107.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6452107.java
@@ -64,4 +64,3 @@ public class Bug6452107 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6600882Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6600882Test.java
index f8cb256404c..e17b04da265 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6600882Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6600882Test.java
@@ -59,4 +59,3 @@ public class Bug6600882Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6675332Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6675332Test.java
index 25cd9327513..0e4f0aa22f5 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6675332Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug6675332Test.java
@@ -164,4 +164,3 @@ public class Bug6675332Test extends BaseStAXUT {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug7037352Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug7037352Test.java
index a157d7c84a1..8729d9f2711 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug7037352Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/Bug7037352Test.java
@@ -65,4 +65,3 @@ public class Bug7037352Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DOMUtil.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DOMUtil.java
index 929cbda273f..f59ef011018 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DOMUtil.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DOMUtil.java
@@ -221,4 +221,3 @@ public class DOMUtil {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DomUtilTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DomUtilTest.java
index 466a51ce506..bef8db02e6e 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DomUtilTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/DomUtilTest.java
@@ -124,4 +124,3 @@ public class DomUtilTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EmptyElementTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EmptyElementTest.java
index be4cc62d4a3..d40bcae712c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EmptyElementTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EmptyElementTest.java
@@ -85,4 +85,3 @@ public class EmptyElementTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EncodingTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EncodingTest.java
index deff9cc9d1e..ced54992790 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EncodingTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/EncodingTest.java
@@ -110,4 +110,3 @@ public class EncodingTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NamespaceTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NamespaceTest.java
index 04ad1d7b12e..7e574bc879f 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NamespaceTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NamespaceTest.java
@@ -1434,4 +1434,3 @@ public class NamespaceTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NullUriDetectionTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NullUriDetectionTest.java
index e4d0bfc9c92..00f7a62dada 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NullUriDetectionTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/NullUriDetectionTest.java
@@ -54,4 +54,3 @@ public class NullUriDetectionTest {
w.writeCharacters("---");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SqeLinuxTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SqeLinuxTest.java
index a5d76495376..ea71a065817 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SqeLinuxTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SqeLinuxTest.java
@@ -88,4 +88,3 @@ public class SqeLinuxTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SurrogatesTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SurrogatesTest.java
index 4208cc9b24d..97953d3993a 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SurrogatesTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/SurrogatesTest.java
@@ -175,4 +175,3 @@ public class SurrogatesTest {
};
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/UnprefixedNameTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/UnprefixedNameTest.java
index 95bb8965ab7..68fab1bdb5b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/UnprefixedNameTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/UnprefixedNameTest.java
@@ -125,4 +125,3 @@ public class UnprefixedNameTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/WriterTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/WriterTest.java
index c7148edb187..7e681e343c4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/WriterTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/WriterTest.java
@@ -784,4 +784,3 @@ public class WriterTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/XMLStreamWriterTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/XMLStreamWriterTest.java
index 0d063043ba0..5b5893c8eb2 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/XMLStreamWriterTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/XMLStreamWriterTest.java
@@ -73,4 +73,3 @@ public class XMLStreamWriterTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4693341Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4693341Test.java
index 63869afc6ec..2b2a1e94506 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4693341Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4693341Test.java
@@ -94,4 +94,3 @@ public class Bug4693341Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4892774.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4892774.java
index ed348885b33..cb92eb762ed 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4892774.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4892774.java
@@ -377,4 +377,3 @@ public class Bug4892774 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug5073477.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug5073477.java
index 750f38c811c..eb8853da891 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug5073477.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug5073477.java
@@ -55,4 +55,3 @@ public class Bug5073477 {
r.setNextSibling(r.getNode().getFirstChild());
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6175602.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6175602.java
index 0cfcfa0e05e..dede016d4ff 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6175602.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6175602.java
@@ -54,4 +54,3 @@ public class Bug6175602 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6206491.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6206491.java
index 1947d7e7f93..2c60db3cc3d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6206491.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6206491.java
@@ -134,4 +134,3 @@ public class Bug6206491 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6216226Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6216226Test.java
index 291eb372eeb..7031585a864 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6216226Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6216226Test.java
@@ -69,4 +69,3 @@ public class Bug6216226Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6311448.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6311448.java
index adc49f1ed3d..9cfec4471f3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6311448.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6311448.java
@@ -85,4 +85,3 @@ public class Bug6311448 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6384805.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6384805.java
index 3e7bc97d12f..b32d1d83524 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6384805.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6384805.java
@@ -94,4 +94,3 @@ public class Bug6384805 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6465722.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6465722.java
index 881bd808038..ecf248b8523 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6465722.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6465722.java
@@ -72,4 +72,3 @@ public class Bug6465722 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6467808.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6467808.java
index 86f9436c9f6..61c6692b755 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6467808.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6467808.java
@@ -76,4 +76,3 @@ public class Bug6467808 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490380.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490380.java
index 7301108e272..255dd878c4e 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490380.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490380.java
@@ -61,4 +61,3 @@ public class Bug6490380 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490921.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490921.java
index 759467caffc..f9bea6978a1 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490921.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6490921.java
@@ -145,4 +145,3 @@ public class Bug6490921 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6513892.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6513892.java
index 26a51f339e5..acb81122327 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6513892.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6513892.java
@@ -77,4 +77,3 @@ public class Bug6513892 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6537167.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6537167.java
index b77ec5d5900..6c1938e4afd 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6537167.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6537167.java
@@ -85,4 +85,3 @@ public class Bug6537167 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6540545.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6540545.java
index 90cbfccd0f4..22182435206 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6540545.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6540545.java
@@ -64,4 +64,3 @@ public class Bug6540545 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6551616.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6551616.java
index 3bd1e7adbc9..27c6ddf008c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6551616.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6551616.java
@@ -68,4 +68,3 @@ public class Bug6551616 {
// if it doesn't blow up, it succeeded.
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6559595.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6559595.java
index 05a5e1c9e83..f1d4c3d8cfe 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6559595.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6559595.java
@@ -70,4 +70,3 @@ public class Bug6559595 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6565260.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6565260.java
index 6a56d55518b..df14bc37603 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6565260.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6565260.java
@@ -64,4 +64,3 @@ public class Bug6565260 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6940416.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6940416.java
index 628310c0d33..e00da88993c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6940416.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6940416.java
@@ -115,4 +115,3 @@ public class Bug6940416 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/BugDB12665704Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/BugDB12665704Test.java
index e41107089d5..ecd61f603ec 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/BugDB12665704Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/BugDB12665704Test.java
@@ -157,4 +157,3 @@ public class BugDB12665704Test {
return sb.toString();
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/CLITest.java b/jaxp/test/javax/xml/jaxp/unittest/transform/CLITest.java
index e72fc26d4f6..57f3009b682 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CLITest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CLITest.java
@@ -50,4 +50,3 @@ public class CLITest {
}, new PropertyPermission("*", "read,write"));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6401137Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6401137Test.java
index b7af4a5841f..b17df311824 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6401137Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6401137Test.java
@@ -94,4 +94,3 @@ public class CR6401137Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6551600Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6551600Test.java
index d08dddffca0..d168ecb2e48 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6551600Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6551600Test.java
@@ -94,4 +94,3 @@ public class CR6551600Test {
: new FilePermission("///tmp/test.xml", "read,write,delete"));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6577667Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6577667Test.java
index 3602f80b809..fec10a1be1b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6577667Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6577667Test.java
@@ -59,4 +59,3 @@ public class CR6577667Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6652519Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6652519Test.java
index 057238513d2..2bfe0631a71 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6652519Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6652519Test.java
@@ -79,4 +79,3 @@ public class CR6652519Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6689809Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6689809Test.java
index cdfcae7d550..5ad290060ac 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6689809Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6689809Test.java
@@ -64,4 +64,3 @@ public class CR6689809Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6905829Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6905829Test.java
index 33f9957bc85..78006b5c8f4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6905829Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6905829Test.java
@@ -65,4 +65,3 @@ public class CR6905829Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6935697Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6935697Test.java
index 3db8bc3af6e..db8d8721d2e 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6935697Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6935697Test.java
@@ -77,4 +77,3 @@ public class CR6935697Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6941869Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6941869Test.java
index 8fd89254737..13331ce4cc1 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6941869Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6941869Test.java
@@ -76,4 +76,3 @@ public class CR6941869Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6957215Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6957215Test.java
index 4e4e7ddb05c..24c3bfd4318 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6957215Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6957215Test.java
@@ -99,4 +99,3 @@ public class CR6957215Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/CR7098746Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/CR7098746Test.java
index c84a512e1ec..04ec9fd8ea3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR7098746Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR7098746Test.java
@@ -90,4 +90,3 @@ public class CR7098746Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/DOMResultTest.java b/jaxp/test/javax/xml/jaxp/unittest/transform/DOMResultTest.java
index bf46190ee35..cbfaf0f924a 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/DOMResultTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/DOMResultTest.java
@@ -215,4 +215,3 @@ public class DOMResultTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/DocumentExtFunc.java b/jaxp/test/javax/xml/jaxp/unittest/transform/DocumentExtFunc.java
index f9a93513112..81227c7d691 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/DocumentExtFunc.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/DocumentExtFunc.java
@@ -33,4 +33,3 @@ public class DocumentExtFunc {
return "["+node.getNodeName() + ":" + node.getTextContent()+"]";
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/FactoryFindTest.java b/jaxp/test/javax/xml/jaxp/unittest/transform/FactoryFindTest.java
index 56eff4001df..f1267ce4622 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/FactoryFindTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/FactoryFindTest.java
@@ -75,4 +75,3 @@ public class FactoryFindTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2204Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2204Test.java
index 52f41c46715..dbba31b46dc 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2204Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2204Test.java
@@ -67,4 +67,3 @@ public class Issue2204Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2290Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2290Test.java
index 10ba8615c44..8047d83fec1 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2290Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Issue2290Test.java
@@ -96,4 +96,3 @@ public class Issue2290Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/OpenJDK100017Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/OpenJDK100017Test.java
index 4fceeaacbc4..8aff9628bba 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/OpenJDK100017Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/OpenJDK100017Test.java
@@ -66,4 +66,3 @@ public class OpenJDK100017Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/SAX2DOMTest.java b/jaxp/test/javax/xml/jaxp/unittest/transform/SAX2DOMTest.java
index 1dc5cfbab7e..34e092101bc 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/SAX2DOMTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/SAX2DOMTest.java
@@ -198,4 +198,3 @@ public class SAX2DOMTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/SecureProcessingTest.java b/jaxp/test/javax/xml/jaxp/unittest/transform/SecureProcessingTest.java
index 27a03bf4e44..a6ecfdee907 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/SecureProcessingTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/SecureProcessingTest.java
@@ -135,4 +135,3 @@ public class SecureProcessingTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/SourceTest.java b/jaxp/test/javax/xml/jaxp/unittest/transform/SourceTest.java
index 76507bfca1f..dd92c26065a 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/SourceTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/SourceTest.java
@@ -148,4 +148,3 @@ public class SourceTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/StAXSourceTest.java b/jaxp/test/javax/xml/jaxp/unittest/transform/StAXSourceTest.java
index cfa20d1b47a..09df03442e5 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/StAXSourceTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/StAXSourceTest.java
@@ -129,4 +129,3 @@ public class StAXSourceTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/TemplatesTest.java b/jaxp/test/javax/xml/jaxp/unittest/transform/TemplatesTest.java
index e2a4fc2ca08..f0cd1441661 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/TemplatesTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/TemplatesTest.java
@@ -83,4 +83,3 @@ public class TemplatesTest {
+ " contains($validAffectsRelClasses, @Class)]/@OBID)\"/>"
+ "";
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerFactoryTest.java b/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerFactoryTest.java
index 2d6dfbf8aae..550da2bc8d2 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerFactoryTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerFactoryTest.java
@@ -153,4 +153,3 @@ public class TransformerFactoryTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerTest.java b/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerTest.java
index 199a4bac62a..59d195e3d8b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerTest.java
@@ -439,4 +439,3 @@ public class TransformerTest {
Assert.assertNull(document.getElementsByTagName("test6").item(0).getNamespaceURI(), "unexpected namespace for test6");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerUtilFactory.java b/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerUtilFactory.java
index dade0b6b56f..793dd7ad6ac 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerUtilFactory.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/TransformerUtilFactory.java
@@ -56,4 +56,3 @@ public class TransformerUtilFactory {
return null;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/VersionDefaultHandler.java b/jaxp/test/javax/xml/jaxp/unittest/transform/VersionDefaultHandler.java
index f79ecd6bdde..ff8fbfe189b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/VersionDefaultHandler.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/VersionDefaultHandler.java
@@ -62,4 +62,3 @@ public class VersionDefaultHandler extends DefaultHandler {
return encoding;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/VersionEventWriter.java b/jaxp/test/javax/xml/jaxp/unittest/transform/VersionEventWriter.java
index e7fe77b039f..51ff18c421d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/VersionEventWriter.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/VersionEventWriter.java
@@ -82,4 +82,3 @@ public class VersionEventWriter implements XMLEventWriter {
return encoding;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java b/jaxp/test/javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java
index 354accefa4a..87360daf486 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java
@@ -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 @@ import static jaxp.library.JAXPTestUtilities.getSystemProperty;
* @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 @@ public class XSLTFunctionsTest {
};
}
+ @DataProvider(name = "redirect")
+ public static Object[][] getData() {
+ return new Object[][] {
+ {documentTestXml, xslRedirect, "testoutput.xml", "testredirect.xml"},
+ };
+ }
+
static final String documentTestXml = "Doc";
static final String documentTestExternalDoc = "External Doc";
@@ -197,6 +238,23 @@ public class XSLTFunctionsTest {
static final String documentTesteExpectedResult = ""
+ "[Test:Doc][Test:External Doc]";
+ static String xslRedirect = " \n"
+ + " \n"
+ + " This goes to standard output\n"
+ + " \n"
+ + " This ends up in the file 'testoutput.xml'\n"
+ + " \n"
+ + " \n"
+ + " This ends up in the file 'testredirect.xml'\n"
+ + " \n"
+ + " \n"
+ + "";
+
public static final String ORACLE_JAXP_PROPERTY_PREFIX =
"http://www.oracle.com/xml/jaxp/properties/";
/**
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/sax/Bug6451633.java b/jaxp/test/javax/xml/jaxp/unittest/transform/sax/Bug6451633.java
index 662c20b13aa..77bc7b4a7e2 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/sax/Bug6451633.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/sax/Bug6451633.java
@@ -62,4 +62,3 @@ public class Bug6451633 {
Assert.assertEquals(0, ((Document) result.getNode()).getDocumentElement().getChildNodes().getLength());
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/util/DOMUtil.java b/jaxp/test/javax/xml/jaxp/unittest/transform/util/DOMUtil.java
index 832c10f062e..988da74f834 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/util/DOMUtil.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/DOMUtil.java
@@ -68,4 +68,3 @@ public class DOMUtil extends TransformerUtil {
Assert.assertTrue(version.equals(resultVersion), "Expected XML Version is 1.1, but actual version " + resultVersion);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/util/SAXUtil.java b/jaxp/test/javax/xml/jaxp/unittest/transform/util/SAXUtil.java
index 5bee6019cbb..9e257ebf9a6 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/util/SAXUtil.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/SAXUtil.java
@@ -70,4 +70,3 @@ public class SAXUtil extends TransformerUtil {
Assert.assertTrue(encoding.equals(resultEncoding), "Expected XML Version is " + encoding + " , but actual encoding " + resultEncoding);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/util/StAXUtil.java b/jaxp/test/javax/xml/jaxp/unittest/transform/util/StAXUtil.java
index 91423dae161..26374d76ab0 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/util/StAXUtil.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/StAXUtil.java
@@ -92,4 +92,3 @@ public class StAXUtil extends TransformerUtil {
((StreamUtil) TransformerUtilFactory.getUtil(TransformerUtilFactory.STREAM)).checkStream(new FileInputStream(TEMP_FILE), version);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/util/StreamUtil.java b/jaxp/test/javax/xml/jaxp/unittest/transform/util/StreamUtil.java
index 91a37a909cb..8a1630088b6 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/util/StreamUtil.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/StreamUtil.java
@@ -94,4 +94,3 @@ public class StreamUtil extends TransformerUtil {
Assert.assertTrue(dh.getEncoding().equals(encoding), "Expected version is " + encoding + " actual version " + dh.getEncoding());
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/util/BOMInputStream.java b/jaxp/test/javax/xml/jaxp/unittest/util/BOMInputStream.java
index d142b7ad331..2088452af58 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/util/BOMInputStream.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/util/BOMInputStream.java
@@ -78,4 +78,3 @@ public class BOMInputStream {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/util/BaseStAXUT.java b/jaxp/test/javax/xml/jaxp/unittest/util/BaseStAXUT.java
index c3211c50e5b..86a54335249 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/util/BaseStAXUT.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/util/BaseStAXUT.java
@@ -557,4 +557,3 @@ public class BaseStAXUT implements XMLStreamConstants {
System.err.println("Skipping " + clsName + "#" + method + ": entity expansion does not seem to be functioning properly" + msg + ".");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/AnyElementTest.java b/jaxp/test/javax/xml/jaxp/unittest/validation/AnyElementTest.java
index 8c615c5d3a0..c12a1515245 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/AnyElementTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/AnyElementTest.java
@@ -85,4 +85,3 @@ public class AnyElementTest {
private Validator validator;
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966232.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966232.java
index 3c0c6db7b46..05300cc6964 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966232.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966232.java
@@ -75,4 +75,3 @@ public class Bug4966232 {
Assert.assertNotNull(s);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966254.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966254.java
index 4eafe25cac9..46e9fd23034 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966254.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4966254.java
@@ -78,4 +78,3 @@ public class Bug4966254 {
return s;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969042.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969042.java
index 31770d19436..e7b22fec08b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969042.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969042.java
@@ -111,4 +111,3 @@ public class Bug4969042 {
Assert.assertTrue(invoked[1], "Method characters() was not invoked.");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969089.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969089.java
index 1f7e75f7f74..74a75f75433 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969089.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969089.java
@@ -76,4 +76,3 @@ public class Bug4969089 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969110.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969110.java
index 637aefd2e42..5c7bac6dbc9 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969110.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969110.java
@@ -79,4 +79,3 @@ public class Bug4969110 {
validatorHandler.setProperty(name, "123");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969689.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969689.java
index a3973ba4cd5..c0554c2478e 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969689.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969689.java
@@ -66,4 +66,3 @@ public class Bug4969689 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969692.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969692.java
index cafb7dc502e..d78fe660b5f 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969692.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969692.java
@@ -67,4 +67,3 @@ public class Bug4969692 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969693.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969693.java
index 8cfe3f8e748..fd203f3c734 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969693.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969693.java
@@ -67,4 +67,3 @@ public class Bug4969693 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969695.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969695.java
index dbc33468438..01d47b627e4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969695.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969695.java
@@ -65,4 +65,3 @@ public class Bug4969695 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969732.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969732.java
index b633c960e61..cfec3964c19 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969732.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4969732.java
@@ -112,4 +112,3 @@ public class Bug4969732 {
parse(xmlReader, XML);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970380.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970380.java
index 8046b8d4df8..4954f41948a 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970380.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970380.java
@@ -62,4 +62,3 @@ public class Bug4970380 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970383.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970383.java
index 354a3c1222a..28809222c12 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970383.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970383.java
@@ -53,4 +53,3 @@ public class Bug4970383 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970400.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970400.java
index d6de9217452..a8c761f23da 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970400.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970400.java
@@ -48,4 +48,3 @@ public class Bug4970400 {
validatorHandler.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970402.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970402.java
index c31fc8d440e..c75604b4b5e 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970402.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970402.java
@@ -123,4 +123,3 @@ public class Bug4970402 {
parse(xmlReader, XML);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970951.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970951.java
index 2c4dfe9aa63..91b2891fdbf 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970951.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4970951.java
@@ -126,4 +126,3 @@ public class Bug4970951 {
parse(xmlReader, XML);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971605.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971605.java
index 8ca323f0022..8654f283a04 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971605.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971605.java
@@ -66,4 +66,3 @@ public class Bug4971605 {
Assert.assertNotNull(schema, "Failed: newSchema returned null.");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971607.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971607.java
index 6ee9bcacbb4..385bef46b58 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971607.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4971607.java
@@ -56,4 +56,3 @@ public class Bug4971607 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4972882.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4972882.java
index 8c84351ffff..cf585a2df69 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4972882.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4972882.java
@@ -67,4 +67,3 @@ public class Bug4972882 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4986844.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4986844.java
index a4dfc4ca0a8..fb6dcdd4210 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4986844.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4986844.java
@@ -56,4 +56,3 @@ public class Bug4986844 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4987574.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4987574.java
index a5f0c528535..75a7ee51fa6 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4987574.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4987574.java
@@ -60,4 +60,3 @@ public class Bug4987574 {
schemaFactory.newSchema(tmpFile);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988267.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988267.java
index 51f735c5792..2da7618ed7c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988267.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988267.java
@@ -56,4 +56,3 @@ public class Bug4988267 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988268.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988268.java
index 85129933490..8de45e95ff3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988268.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988268.java
@@ -46,4 +46,3 @@ public class Bug4988268 {
schemaFactory.newSchema(Bug4988268.class.getResource("Bug4988268.xsd"));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988387.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988387.java
index c5c24343906..e9db60429ad 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988387.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4988387.java
@@ -53,4 +53,3 @@ public class Bug4988387 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4996446.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4996446.java
index e27b80a56e8..ba546220580 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4996446.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4996446.java
@@ -90,4 +90,3 @@ class ErrorHandler extends DefaultHandler {
errorCounter++;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4997818.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4997818.java
index d39c239211b..8c8d677c520 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4997818.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug4997818.java
@@ -81,4 +81,3 @@ public class Bug4997818 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5011500.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5011500.java
index f8444a597aa..b3a85cadc68 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5011500.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5011500.java
@@ -108,4 +108,3 @@ public class Bug5011500 {
validator.validate(xmlSource);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5072946.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5072946.java
index ff58fd76658..3d6b490f2c3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5072946.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug5072946.java
@@ -125,4 +125,3 @@ public class Bug5072946 {
Assert.assertSame(r.getNode(), n);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6378043.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6378043.java
index 344ff0f52e4..4bbc7560b19 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6378043.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6378043.java
@@ -53,4 +53,3 @@ public class Bug6378043 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6449797.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6449797.java
index 4ae313def37..8a96e05ae5f 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6449797.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6449797.java
@@ -46,4 +46,3 @@ public class Bug6449797 {
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(getClass().getResource("Bug6449797.xsd"));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6457662.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6457662.java
index 60181d68ae6..f6c54b14b64 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6457662.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6457662.java
@@ -86,4 +86,3 @@ public class Bug6457662 {
return rtn;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6467424Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6467424Test.java
index b5ebcb6dd31..5fa073eb2d5 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6467424Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6467424Test.java
@@ -205,4 +205,3 @@ public class Bug6467424Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6483188.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6483188.java
index ceebedf2212..b9b0812c8e7 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6483188.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6483188.java
@@ -88,4 +88,3 @@ public class Bug6483188 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6493687.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6493687.java
index ed790064c7f..71a1afee3f9 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6493687.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6493687.java
@@ -48,4 +48,3 @@ public class Bug6493687 {
System.out.println("Got here3");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6509668.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6509668.java
index 8e32d70ab19..f397677ce73 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6509668.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6509668.java
@@ -141,4 +141,3 @@ public class Bug6509668 {
parse(xmlReader, XML);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6526547.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6526547.java
index 0ee1219b3b0..47d8d624c21 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6526547.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6526547.java
@@ -82,4 +82,3 @@ public class Bug6526547 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6531160.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6531160.java
index 01b5e861672..54e1e05ea90 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6531160.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6531160.java
@@ -70,4 +70,3 @@ public class Bug6531160 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6695843Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6695843Test.java
index c0f85a31e0e..88d37eec67e 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6695843Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6695843Test.java
@@ -82,4 +82,3 @@ public class Bug6695843Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6773084Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6773084Test.java
index b50fa08e529..21479c6a6e3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6773084Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6773084Test.java
@@ -160,4 +160,3 @@ public class Bug6773084Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6859210.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6859210.java
index aafc2974ec1..c695aded8d7 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6859210.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6859210.java
@@ -100,4 +100,3 @@ public class Bug6859210 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6925531Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6925531Test.java
index cc36b1e541d..8059723d700 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6925531Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6925531Test.java
@@ -210,4 +210,3 @@ public class Bug6925531Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6946312Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6946312Test.java
index e5dda822b03..e134d8b6b5c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6946312Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6946312Test.java
@@ -128,4 +128,3 @@ public class Bug6946312Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6954738_Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6954738_Test.java
index 38eebc162bc..510298c865d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6954738_Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Bug6954738_Test.java
@@ -83,4 +83,3 @@ public class Bug6954738_Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/CR6708840Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/CR6708840Test.java
index 8221278929b..d3a0f1ef40c 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/CR6708840Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/CR6708840Test.java
@@ -140,4 +140,3 @@ public class CR6708840Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/CR6740048.java b/jaxp/test/javax/xml/jaxp/unittest/validation/CR6740048.java
index 31af92f26fc..bccef3d37b8 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/CR6740048.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/CR6740048.java
@@ -131,4 +131,3 @@ public class CR6740048 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/ErrorHandlerImpl.java b/jaxp/test/javax/xml/jaxp/unittest/validation/ErrorHandlerImpl.java
index 775fdd07c6a..95806ed3f21 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ErrorHandlerImpl.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ErrorHandlerImpl.java
@@ -45,4 +45,3 @@ public class ErrorHandlerImpl implements ErrorHandler {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/Issue682Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/Issue682Test.java
index 943f23d1b8c..459fa8c149a 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/Issue682Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/Issue682Test.java
@@ -78,4 +78,3 @@ public class Issue682Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/IssueTracker30.java b/jaxp/test/javax/xml/jaxp/unittest/validation/IssueTracker30.java
index 68ba8c10152..6f0fb1b5a25 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/IssueTracker30.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/IssueTracker30.java
@@ -132,4 +132,3 @@ public class IssueTracker30 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue43Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue43Test.java
index 4b506680016..b42f5272893 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue43Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue43Test.java
@@ -84,4 +84,3 @@ public class JaxpIssue43Test {
return list.toArray(new Source[list.size()]);
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue49.java b/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue49.java
index b53a10ee86e..7cf58257847 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue49.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/JaxpIssue49.java
@@ -94,4 +94,3 @@ public class JaxpIssue49 {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/LargeMaxOccursTest.java b/jaxp/test/javax/xml/jaxp/unittest/validation/LargeMaxOccursTest.java
index 6681ab76918..78ac556e80a 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/LargeMaxOccursTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/LargeMaxOccursTest.java
@@ -109,4 +109,3 @@ public class LargeMaxOccursTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursTest.java b/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursTest.java
index 33340dd6a29..457cf697228 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursTest.java
@@ -147,4 +147,3 @@ public class MultiOccursTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursUnboundedTest.java b/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursUnboundedTest.java
index 8330ac5de52..58062410c43 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursUnboundedTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/MultiOccursUnboundedTest.java
@@ -115,4 +115,3 @@ public class MultiOccursUnboundedTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursTest.java b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursTest.java
index bce2b0d2d42..8e3613739d3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursTest.java
@@ -147,4 +147,3 @@ public class OccursTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursUnboundedTest.java b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursUnboundedTest.java
index a986cc1f669..6e8213e0e8b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursUnboundedTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursUnboundedTest.java
@@ -115,4 +115,3 @@ public class OccursUnboundedTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardTest.java b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardTest.java
index 649dcd27d73..f29da26225d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardTest.java
@@ -147,4 +147,3 @@ public class OccursWildcardTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardUnbounded.java b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardUnbounded.java
index ee82f528855..002c9983716 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardUnbounded.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/OccursWildcardUnbounded.java
@@ -115,4 +115,3 @@ public class OccursWildcardUnbounded {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesId005Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesId005Test.java
index aa9540d911c..ac1450d05d3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesId005Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesId005Test.java
@@ -99,4 +99,3 @@ public class ParticlesId005Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesIg004Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesIg004Test.java
index f08dbad1e54..424d4f35c86 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesIg004Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesIg004Test.java
@@ -57,4 +57,3 @@ public class ParticlesIg004Test {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesQ013Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesQ013Test.java
index 05d727f536a..77da3675b83 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesQ013Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ParticlesQ013Test.java
@@ -98,4 +98,3 @@ public class ParticlesQ013Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/SchemaTest.java b/jaxp/test/javax/xml/jaxp/unittest/validation/SchemaTest.java
index ef2bf3741c4..e9cd6473d3b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/SchemaTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/SchemaTest.java
@@ -54,4 +54,3 @@ public class SchemaTest {
factory.newSchema(new File(getClass().getResource("Bug8149915.xsd").getFile()));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/TCKGroupA008Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/TCKGroupA008Test.java
index 79fecdcf9f5..0f5e9dc5de5 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/TCKGroupA008Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/TCKGroupA008Test.java
@@ -60,4 +60,3 @@ public class TCKGroupA008Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/ValidatorTest.java b/jaxp/test/javax/xml/jaxp/unittest/validation/ValidatorTest.java
index 720164f09cd..40ca0cc8d3a 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ValidatorTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ValidatorTest.java
@@ -208,4 +208,3 @@ public class ValidatorTest {
return xmlr;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/XMLDocBuilder.java b/jaxp/test/javax/xml/jaxp/unittest/validation/XMLDocBuilder.java
index bdd8107daba..de9b0d935e4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/XMLDocBuilder.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/XMLDocBuilder.java
@@ -141,4 +141,3 @@ public class XMLDocBuilder {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/XMLSchemaValidator.java b/jaxp/test/javax/xml/jaxp/unittest/validation/XMLSchemaValidator.java
index b09a6b77674..beb05e56afb 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/XMLSchemaValidator.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/XMLSchemaValidator.java
@@ -59,4 +59,3 @@ public class XMLSchemaValidator {
validator.validate(new DOMSource(node));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6943252Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6943252Test.java
index 286094eb69f..663c7d87fd3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6943252Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6943252Test.java
@@ -69,4 +69,3 @@ public class Bug6943252Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963124Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963124Test.java
index 969c66d27ce..f2ff60839d9 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963124Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963124Test.java
@@ -61,4 +61,3 @@ public class Bug6963124Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963468Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963468Test.java
index ea2f0894e37..e2e12b62067 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963468Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6963468Test.java
@@ -148,4 +148,3 @@ public class Bug6963468Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6964720Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6964720Test.java
index 0536cbe3514..96d68ff4874 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6964720Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6964720Test.java
@@ -58,4 +58,3 @@ public class Bug6964720Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6967214Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6967214Test.java
index 06e4ce81c92..9ff29807e61 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6967214Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6967214Test.java
@@ -70,4 +70,3 @@ public class Bug6967214Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6970890Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6970890Test.java
index 3e3afac5889..4e885d190e3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6970890Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6970890Test.java
@@ -72,4 +72,3 @@ public class Bug6970890Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6971190Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6971190Test.java
index ca733947c0e..b717ff184a3 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6971190Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6971190Test.java
@@ -102,4 +102,3 @@ public class Bug6971190Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6974551Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6974551Test.java
index f4d3581f00c..210ca81ff05 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6974551Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6974551Test.java
@@ -122,4 +122,3 @@ public class Bug6974551Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6975265Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6975265Test.java
index 12ed8261b60..55f9903e470 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6975265Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6975265Test.java
@@ -71,4 +71,3 @@ public class Bug6975265Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6977201Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6977201Test.java
index df77551338b..e41bf4aea92 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6977201Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6977201Test.java
@@ -71,4 +71,3 @@ public class Bug6977201Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6989956Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6989956Test.java
index d1be119584b..3fe2676fa62 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6989956Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug6989956Test.java
@@ -148,4 +148,3 @@ public class Bug6989956Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug7014246Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug7014246Test.java
index 025c972c288..1f398cc71fb 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug7014246Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/Bug7014246Test.java
@@ -59,4 +59,3 @@ public class Bug7014246Test {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/ParticleTest.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/ParticleTest.java
index 19a9eb77d68..50225cc7117 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/ParticleTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/ParticleTest.java
@@ -63,4 +63,3 @@ public class ParticleTest {
validator.validate(new StreamSource(ParticleTest.class.getResourceAsStream("upa01.xml")));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/RegexWord.java b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/RegexWord.java
index a46c7c720b2..3a127367be6 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/tck/RegexWord.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/tck/RegexWord.java
@@ -63,4 +63,3 @@ public class RegexWord {
validator.validate(new StreamSource(RegexWord.class.getResourceAsStream("reZ003vExc23082309.xml")));
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991857.java b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991857.java
index a8f65a22b48..7422497f030 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991857.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991857.java
@@ -92,4 +92,3 @@ public class Bug4991857 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991939.java b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991939.java
index d201f489461..58f7e1ce33a 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991939.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4991939.java
@@ -61,4 +61,3 @@ public class Bug4991939 {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992788.java b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992788.java
index 4da3e2de999..dd5ace27633 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992788.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992788.java
@@ -82,4 +82,3 @@ public class Bug4992788 {
return xpath;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992793.java b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992793.java
index 2e4a4128ff9..2aad726f9fd 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992793.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992793.java
@@ -83,4 +83,3 @@ public class Bug4992793 {
return xpath;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992805.java b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992805.java
index 97a9abfcca4..45449364017 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992805.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/Bug4992805.java
@@ -70,4 +70,3 @@ public class Bug4992805 {
return xpath;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/xpath/ClassLoaderTest.java b/jaxp/test/javax/xml/jaxp/unittest/xpath/ClassLoaderTest.java
index d5a52bda8a2..15411a0e25d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/ClassLoaderTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/ClassLoaderTest.java
@@ -54,4 +54,3 @@ public class ClassLoaderTest {
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/xpath/MyClassLoader.java b/jaxp/test/javax/xml/jaxp/unittest/xpath/MyClassLoader.java
index 39a0d72815c..d333e7053a6 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/MyClassLoader.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/MyClassLoader.java
@@ -47,4 +47,3 @@ public class MyClassLoader extends ClassLoader {
return isCalled;
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/xpath/SecureProcessingTest.java b/jaxp/test/javax/xml/jaxp/unittest/xpath/SecureProcessingTest.java
index a78c1e1439b..d0e100d6f0d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/SecureProcessingTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/SecureProcessingTest.java
@@ -196,4 +196,3 @@ public class SecureProcessingTest {
}
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathAnyTypeTest.java b/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathAnyTypeTest.java
index 6ba9ceb48bd..efe1fa2a61b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathAnyTypeTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathAnyTypeTest.java
@@ -200,4 +200,3 @@ public class XPathAnyTypeTest extends XPathTestBase {
verifyResult(result, "Customer");
}
}
-
diff --git a/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathExpAnyTypeTest.java b/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathExpAnyTypeTest.java
index f661fe9a035..1717f5d74d5 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathExpAnyTypeTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/xpath/XPathExpAnyTypeTest.java
@@ -187,4 +187,3 @@ public class XPathExpAnyTypeTest extends XPathTestBase {
}
}
-
diff --git a/jaxws/.hgtags b/jaxws/.hgtags
index 19675fb9b1a..0217f716612 100644
--- a/jaxws/.hgtags
+++ b/jaxws/.hgtags
@@ -380,3 +380,4 @@ fe4e11bd2423635dc0f5f5cb9a64eb2f2cce7f4c jdk-9+128
9fff2477a4cadf2a9618a76f1f4fe0f20bb5ff3b jdk-9+132
05e99eefda2b58d1ed176e411302d9d6b35dca16 jdk-9+133
ab1d78d395d4cb8be426ff181211da1a4085cf01 jdk-9+134
+22631824f55128a7ab6605493b3001a37af6a168 jdk-9+135
diff --git a/jdk/.hgtags b/jdk/.hgtags
index ff5e6944eca..d92b0709299 100644
--- a/jdk/.hgtags
+++ b/jdk/.hgtags
@@ -378,3 +378,4 @@ d5c70818cd8a82e76632c8c815bdb4f75f53aeaf jdk-9+132
3cdae27c90b5e41afe75eab904fda19fac076330 jdk-9+133
803adcd526d74ae0b64948d1f8260c2dbe514779 jdk-9+134
021369229cfd0b5feb76834b2ea498f47f43c0f3 jdk-9+135
+54c5931849a33a363e03fdffa141503f5cc4779d jdk-9+136
diff --git a/jdk/make/gendata/GendataBreakIterator.gmk b/jdk/make/gendata/GendataBreakIterator.gmk
index a68786a413b..2f7f5dff981 100644
--- a/jdk/make/gendata/GendataBreakIterator.gmk
+++ b/jdk/make/gendata/GendataBreakIterator.gmk
@@ -81,7 +81,7 @@ UNICODEDATA := $(JDK_TOPDIR)/make/data/unicodedata/UnicodeData.txt
# 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 \
diff --git a/jdk/make/mapfiles/libattach/mapfile-linux b/jdk/make/mapfiles/libattach/mapfile-linux
index b569ae5e637..1ffc29329a0 100644
--- a/jdk/make/mapfiles/libattach/mapfile-linux
+++ b/jdk/make/mapfiles/libattach/mapfile-linux
@@ -30,8 +30,6 @@ SUNWprivate_1.1 {
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;
diff --git a/jdk/src/java.base/aix/native/libnet/aix_close.c b/jdk/src/java.base/aix/native/libnet/aix_close.c
index 77b5daecf60..1588d485640 100644
--- a/jdk/src/java.base/aix/native/libnet/aix_close.c
+++ b/jdk/src/java.base/aix/native/libnet/aix_close.c
@@ -410,6 +410,10 @@ int NET_Read(int s, void* buf, size_t len) {
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 @@ int NET_Poll(struct pollfd *ufds, unsigned int nfds, int timeout) {
* 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 @@ int NET_Timeout(int s, long timeout) {
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;
diff --git a/jdk/src/java.base/linux/native/libnet/linux_close.c b/jdk/src/java.base/linux/native/libnet/linux_close.c
index 45ab7b4dc1b..2bf7cc72283 100644
--- a/jdk/src/java.base/linux/native/libnet/linux_close.c
+++ b/jdk/src/java.base/linux/native/libnet/linux_close.c
@@ -367,6 +367,10 @@ int NET_Read(int s, void* buf, size_t len) {
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 @@ int NET_Poll(struct pollfd *ufds, unsigned int nfds, int timeout) {
* 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 @@ int NET_Timeout(int s, long timeout) {
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;
diff --git a/jdk/src/java.base/macosx/native/libnet/bsd_close.c b/jdk/src/java.base/macosx/native/libnet/bsd_close.c
index 728ea8bf1d7..14739b12caf 100644
--- a/jdk/src/java.base/macosx/native/libnet/bsd_close.c
+++ b/jdk/src/java.base/macosx/native/libnet/bsd_close.c
@@ -371,6 +371,10 @@ int NET_Read(int s, void* buf, size_t len) {
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 @@ int NET_Poll(struct pollfd *ufds, unsigned int nfds, int timeout) {
* 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 @@ int NET_Timeout(int s, long timeout) {
*/
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) {
diff --git a/jdk/src/java.base/share/classes/java/lang/StringConcatHelper.java b/jdk/src/java.base/share/classes/java/lang/StringConcatHelper.java
index 1504e6ff37d..f3f16088f7a 100644
--- a/jdk/src/java.base/share/classes/java/lang/StringConcatHelper.java
+++ b/jdk/src/java.base/share/classes/java/lang/StringConcatHelper.java
@@ -334,11 +334,15 @@ final class StringConcatHelper {
/**
* 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);
}
diff --git a/jdk/src/java.base/share/classes/java/lang/invoke/LambdaFormEditor.java b/jdk/src/java.base/share/classes/java/lang/invoke/LambdaFormEditor.java
index cec4ff1ea54..ddd60ca082f 100644
--- a/jdk/src/java.base/share/classes/java/lang/invoke/LambdaFormEditor.java
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/LambdaFormEditor.java
@@ -83,7 +83,9 @@ class LambdaFormEditor {
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 @@ class LambdaFormEditor {
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 @@ class LambdaFormEditor {
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;
diff --git a/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandles.java b/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandles.java
index cec799ec1a3..86685b605de 100644
--- a/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandles.java
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandles.java
@@ -3943,6 +3943,33 @@ assertEquals("boojum", (String) catTrace.invokeExact("boo", "jum"));
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 @@ assertEquals("boojum", (String) catTrace.invokeExact("boo", "jum"));
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) {
diff --git a/jdk/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java b/jdk/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java
index ed56faae579..4b336f4c6b1 100644
--- a/jdk/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java
+++ b/jdk/src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java
@@ -563,9 +563,8 @@ public final class StringConcatFactory {
}
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 @@ public final class StringConcatFactory {
// 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 @@ public final class StringConcatFactory {
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 @@ public final class StringConcatFactory {
mh = MethodHandles.dropArguments(mh, 2, int.class, byte.class);
// 3. Compute "new-index", producing ("new-index", "new-coder", "old-index", "old-coder", )
- // 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", )
- // 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", )
break;
@@ -1606,41 +1597,11 @@ public final class StringConcatFactory {
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 @@ public final class StringConcatFactory {
};
private static final MethodHandle NEW_STRING;
- private static final MethodHandle CHECK_INDEX;
private static final MethodHandle NEW_ARRAY;
private static final ConcurrentMap, MethodHandle> PREPENDERS;
private static final ConcurrentMap, MethodHandle> LENGTH_MIXERS;
@@ -1699,9 +1659,8 @@ public final class StringConcatFactory {
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);
}
}
diff --git a/jdk/src/java.base/share/classes/java/util/ArrayDeque.java b/jdk/src/java.base/share/classes/java/util/ArrayDeque.java
index ca3c66b6249..5a9b8312e30 100644
--- a/jdk/src/java.base/share/classes/java/util/ArrayDeque.java
+++ b/jdk/src/java.base/share/classes/java/util/ArrayDeque.java
@@ -81,8 +81,8 @@ import java.util.function.Consumer;
* Java Collections Framework.
*
* @author Josh Bloch and Doug Lea
- * @since 1.6
* @param the type of elements held in this deque
+ * @since 1.6
*/
public class ArrayDeque extends AbstractCollection
implements Deque, Cloneable, Serializable
diff --git a/jdk/src/java.base/share/classes/java/util/PriorityQueue.java b/jdk/src/java.base/share/classes/java/util/PriorityQueue.java
index 440cbbe2c67..89bc2141e3d 100644
--- a/jdk/src/java.base/share/classes/java/util/PriorityQueue.java
+++ b/jdk/src/java.base/share/classes/java/util/PriorityQueue.java
@@ -749,11 +749,11 @@ public class PriorityQueue extends AbstractQueue
/**
* 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 {
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/CompletableFuture.java b/jdk/src/java.base/share/classes/java/util/concurrent/CompletableFuture.java
index ea2ab9c4d24..5708af2653c 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/CompletableFuture.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/CompletableFuture.java
@@ -136,9 +136,9 @@ import java.util.function.Supplier;
* }}
*
* @author Doug Lea
- * @since 1.8
* @param The result type returned by this future's {@code join}
* and {@code get} methods
+ * @since 1.8
*/
public class CompletableFuture implements Future, CompletionStage {
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/CountedCompleter.java b/jdk/src/java.base/share/classes/java/util/concurrent/CountedCompleter.java
index 1218c75de68..0c809df9cf6 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/CountedCompleter.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/CountedCompleter.java
@@ -120,102 +120,114 @@ import java.lang.invoke.VarHandle;
* 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.
*
- *
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
+ *
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.
*
*
{@code
- * class MyOperation { void apply(E e) { ... } }
- *
- * class ForEach extends CountedCompleter {
- *
- * public static void forEach(E[] array, MyOperation op) {
- * new ForEach(null, array, op, 0, array.length).invoke();
- * }
- *
- * final E[] array; final MyOperation op; final int lo, hi;
- * ForEach(CountedCompleter> p, E[] array, MyOperation op, int lo, int hi) {
- * super(p);
- * this.array = array; this.op = op; this.lo = lo; this.hi = hi;
- * }
- *
- * 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
+ * public static void forEach(E[] array, Consumer action) {
+ * class Task extends CountedCompleter {
+ * 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();
* }
- * else if (hi > lo)
- * op.apply(array[lo]);
- * tryComplete();
* }
+ * new Task(null, 0, array.length).invoke();
* }}
*
* 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".
*
*
{@code
- * class ForEach ... {
- * ...
- * 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();
- * }
- * }
- * }}
+ * 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();
+ * }
+ * }}
*
* 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}.
*
*
{@code
- * class ForEach ... {
- * ...
- * 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 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();
+ * }}
+ *
+ * When pending counts can be precomputed, they can be established in
+ * the constructor:
+ *
+ *
{@code
+ * public static void forEach(E[] array, Consumer action) {
+ * class Task extends CountedCompleter {
+ * 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 (h > l)
- * op.apply(array[l]);
- * propagateCompletion();
* }
+ * if (array.length > 0)
+ * new Task(null, 0, array.length).invoke();
* }}
*
- * 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.
*
*
Searching. A tree of CountedCompleters can search for a
* value or property in different parts of a data structure, and
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/CyclicBarrier.java b/jdk/src/java.base/share/classes/java/util/concurrent/CyclicBarrier.java
index 5e018f1c327..beae1cabb90 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/CyclicBarrier.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/CyclicBarrier.java
@@ -132,10 +132,10 @@ import java.util.concurrent.locks.ReentrantLock;
* happen-before 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 {
/**
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/Flow.java b/jdk/src/java.base/share/classes/java/util/concurrent/Flow.java
index fe137386d45..9b53a8a54f9 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/Flow.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/Flow.java
@@ -68,7 +68,7 @@ package java.util.concurrent;
* 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));
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java b/jdk/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java
index 4169ec323e5..e8f7ac614df 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/ForkJoinPool.java
@@ -130,7 +130,7 @@ import java.util.concurrent.locks.LockSupport;
*
*
*
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}:
*
*
{@code java.util.concurrent.ForkJoinPool.common.parallelism}
@@ -3241,7 +3241,7 @@ public class ForkJoinPool extends AbstractExecutorService {
* 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 @@ public class ForkJoinPool extends AbstractExecutorService {
"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 class ForkJoinPool extends AbstractExecutorService {
public ForkJoinWorkerThread run() {
return new ForkJoinWorkerThread.
InnocuousForkJoinWorkerThread(pool);
- }}, innocuousAcc);
+ }}, INNOCUOUS_ACC);
}
}
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/Semaphore.java b/jdk/src/java.base/share/classes/java/util/concurrent/Semaphore.java
index 1298a6ee30d..f73c7fe2d5a 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/Semaphore.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/Semaphore.java
@@ -72,8 +72,8 @@ import java.util.concurrent.locks.AbstractQueuedSynchronizer;
* 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 @@ import java.util.concurrent.locks.AbstractQueuedSynchronizer;
* 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;
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/SubmissionPublisher.java b/jdk/src/java.base/share/classes/java/util/concurrent/SubmissionPublisher.java
index b59887d415c..5d96cae3f82 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/SubmissionPublisher.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/SubmissionPublisher.java
@@ -554,8 +554,9 @@ public class SubmissionPublisher implements Flow.Publisher,
while (r != null) {
BufferedSubscription 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);
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java b/jdk/src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java
index d947a87cbd5..0016bfffe87 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/ThreadPoolExecutor.java
@@ -617,6 +617,9 @@ public class ThreadPoolExecutor extends AbstractExecutorService {
/** 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)
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/atomic/AtomicInteger.java b/jdk/src/java.base/share/classes/java/util/concurrent/atomic/AtomicInteger.java
index c7fa1c66e52..4e4c51eb53a 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/atomic/AtomicInteger.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/atomic/AtomicInteger.java
@@ -193,7 +193,7 @@ public class AtomicInteger extends Number implements java.io.Serializable {
/**
* Atomically increments the current value,
- * with memory effects as specified by {@link VarHandle#addAndGet}.
+ * with memory effects as specified by {@link VarHandle#getAndAdd}.
*
*
Equivalent to {@code addAndGet(1)}.
*
@@ -205,7 +205,7 @@ public class AtomicInteger extends Number implements java.io.Serializable {
/**
* Atomically decrements the current value,
- * with memory effects as specified by {@link VarHandle#addAndGet}.
+ * with memory effects as specified by {@link VarHandle#getAndAdd}.
*
*
Equivalent to {@code addAndGet(-1)}.
*
diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/locks/StampedLock.java b/jdk/src/java.base/share/classes/java/util/concurrent/locks/StampedLock.java
index 8b9d401ee10..18fac82b111 100644
--- a/jdk/src/java.base/share/classes/java/util/concurrent/locks/StampedLock.java
+++ b/jdk/src/java.base/share/classes/java/util/concurrent/locks/StampedLock.java
@@ -154,13 +154,13 @@ import jdk.internal.vm.annotation.ReservedStackAccess;
* 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);
* }
diff --git a/jdk/src/java.base/share/classes/java/util/jar/JarFile.java b/jdk/src/java.base/share/classes/java/util/jar/JarFile.java
index 2c4500d169b..6b3abf50d78 100644
--- a/jdk/src/java.base/share/classes/java/util/jar/JarFile.java
+++ b/jdk/src/java.base/share/classes/java/util/jar/JarFile.java
@@ -536,19 +536,6 @@ class JarFile extends ZipFile {
* @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:
- *
*/
public Stream stream() {
return StreamSupport.stream(Spliterators.spliterator(
@@ -571,7 +558,7 @@ class JarFile extends ZipFile {
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 @@ class JarFile extends ZipFile {
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 @@ class JarFile extends ZipFile {
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 @@ class JarFile extends ZipFile {
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 @@ class JarFile extends ZipFile {
* 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 @@ class JarFile extends ZipFile {
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 @@ class JarFile extends ZipFile {
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) {
diff --git a/jdk/src/java.base/share/classes/jdk/internal/util/jar/VersionedStream.java b/jdk/src/java.base/share/classes/jdk/internal/util/jar/VersionedStream.java
new file mode 100644
index 00000000000..3eb33a428c6
--- /dev/null
+++ b/jdk/src/java.base/share/classes/jdk/internal/util/jar/VersionedStream.java
@@ -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 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;
+ }
+}
diff --git a/jdk/src/java.base/share/classes/module-info.java b/jdk/src/java.base/share/classes/module-info.java
index ae5ebbbb070..f49111be646 100644
--- a/jdk/src/java.base/share/classes/module-info.java
+++ b/jdk/src/java.base/share/classes/module-info.java
@@ -143,7 +143,8 @@ module java.base {
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
diff --git a/jdk/src/java.base/share/classes/sun/net/www/protocol/jar/JarURLConnection.java b/jdk/src/java.base/share/classes/sun/net/www/protocol/jar/JarURLConnection.java
index daa56325e2f..fb12cf77626 100644
--- a/jdk/src/java.base/share/classes/sun/net/www/protocol/jar/JarURLConnection.java
+++ b/jdk/src/java.base/share/classes/sun/net/www/protocol/jar/JarURLConnection.java
@@ -125,7 +125,9 @@ public class JarURLConnection extends java.net.JarURLConnection {
* 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)) {
diff --git a/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSP.java b/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSP.java
index 2d917d0604e..ad805e60b41 100644
--- a/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSP.java
+++ b/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSP.java
@@ -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 @@ public final class OCSP {
("Exception while encoding OCSPRequest", e);
}
OCSPResponse ocspResponse = check(Collections.singletonList(certId),
- responderURI, issuerCert, null, null,
+ responderURI, new OCSPResponse.IssuerInfo(issuerCert), null, null,
Collections.emptyList());
return (RevocationStatus)ocspResponse.getSingleResponse(certId);
}
@@ -173,7 +173,8 @@ public final class OCSP {
("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 @@ public final class OCSP {
*
* @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 @@ public final class OCSP {
* @throws CertPathValidatorException if an exception occurs while
* encoding the OCSP Request or validating the OCSP Response
*/
- static OCSPResponse check(List certIds, URI responderURI,
- X509Certificate issuerCert,
+ static OCSPResponse check(List certIds, URI responderURI,
+ OCSPResponse.IssuerInfo issuerInfo,
X509Certificate responderCert, Date date,
List extensions)
throws IOException, CertPathValidatorException
@@ -214,7 +215,7 @@ public final class OCSP {
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(
diff --git a/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSPResponse.java b/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSPResponse.java
index 0ef14abc68a..a2b74d1bdeb 100644
--- a/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSPResponse.java
+++ b/jdk/src/java.base/share/classes/sun/security/provider/certpath/OCSPResponse.java
@@ -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.Date;
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 @@ public final class OCSPResponse {
}
}
- void verify(List certIds, X509Certificate issuerCert,
- X509Certificate responderCert, Date date, byte[] nonce)
+ void verify(List certIds, IssuerInfo issuerInfo,
+ X509Certificate responderCert, Date date, byte[] nonce)
throws CertPathValidatorException
{
switch (responseStatus) {
@@ -414,7 +415,9 @@ public final class OCSPResponse {
// 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 @@ public final class OCSPResponse {
// 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 @@ public final class OCSPResponse {
// 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 @@ public final class OCSPResponse {
// 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.emptySet());
@@ -540,7 +547,7 @@ public final class OCSPResponse {
// 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 @@ public final class OCSPResponse {
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();
+ }
+ }
}
diff --git a/jdk/src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java b/jdk/src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java
index 002a6c37776..e3de6a959e7 100644
--- a/jdk/src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java
+++ b/jdk/src/java.base/share/classes/sun/security/provider/certpath/RevocationChecker.java
@@ -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 @@ class RevocationChecker extends PKIXRevocationChecker {
private List certStores;
private Map ocspResponses;
private List ocspExtensions;
- private boolean legacy;
+ private final boolean legacy;
private LinkedList 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 @@ class RevocationChecker extends PKIXRevocationChecker {
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 @@ class RevocationChecker extends PKIXRevocationChecker {
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 @@ class RevocationChecker extends PKIXRevocationChecker {
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 @@ class RevocationChecker extends PKIXRevocationChecker {
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 @@ class RevocationChecker extends PKIXRevocationChecker {
}
response = OCSP.check(Collections.singletonList(certId),
- responderURI, issuerCert, responderCert,
- null, ocspExtensions);
+ responderURI, issuerInfo,
+ responderCert, null, ocspExtensions);
}
} catch (IOException e) {
throw new CertPathValidatorException(
diff --git a/jdk/src/java.base/share/classes/sun/util/locale/provider/BreakDictionary.java b/jdk/src/java.base/share/classes/sun/util/locale/provider/BreakDictionary.java
index ddb4bb53f2c..4be1363b58f 100644
--- a/jdk/src/java.base/share/classes/sun/util/locale/provider/BreakDictionary.java
+++ b/jdk/src/java.base/share/classes/sun/util/locale/provider/BreakDictionary.java
@@ -149,7 +149,10 @@ class BreakDictionary {
BufferedInputStream in;
try {
PrivilegedExceptionAction 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
diff --git a/jdk/src/java.base/share/classes/sun/util/locale/provider/RuleBasedBreakIterator.java b/jdk/src/java.base/share/classes/sun/util/locale/provider/RuleBasedBreakIterator.java
index 7c00ee052f1..ebf6ba1956e 100644
--- a/jdk/src/java.base/share/classes/sun/util/locale/provider/RuleBasedBreakIterator.java
+++ b/jdk/src/java.base/share/classes/sun/util/locale/provider/RuleBasedBreakIterator.java
@@ -444,7 +444,10 @@ class RuleBasedBreakIterator extends BreakIterator {
BufferedInputStream is;
try {
PrivilegedExceptionAction 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
diff --git a/jdk/src/java.base/share/native/libjli/java.h b/jdk/src/java.base/share/native/libjli/java.h
index 41a232714c8..b5056de84a9 100644
--- a/jdk/src/java.base/share/native/libjli/java.h
+++ b/jdk/src/java.base/share/native/libjli/java.h
@@ -112,6 +112,9 @@ GetXUsagePath(char *buf, jint bufsize);
jboolean
GetApplicationHome(char *buf, jint bufsize);
+jboolean
+GetApplicationHomeFromDll(char *buf, jint bufsize);
+
#define GetArch() GetArchPath(CURRENT_DATA_MODEL)
/*
diff --git a/jdk/src/java.base/solaris/native/libnet/solaris_close.c b/jdk/src/java.base/solaris/native/libnet/solaris_close.c
index 0cf7b5c96fc..091dc00d251 100644
--- a/jdk/src/java.base/solaris/native/libnet/solaris_close.c
+++ b/jdk/src/java.base/solaris/native/libnet/solaris_close.c
@@ -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 @@ int NET_Read(int s, void* buf, size_t len) {
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 @@ int NET_Poll(struct pollfd *ufds, unsigned int nfds, int timeout) {
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) {
diff --git a/jdk/src/java.base/unix/native/libjava/TimeZone_md.c b/jdk/src/java.base/unix/native/libjava/TimeZone_md.c
index 8b09a53be82..f0bb362afc5 100644
--- a/jdk/src/java.base/unix/native/libjava/TimeZone_md.c
+++ b/jdk/src/java.base/unix/native/libjava/TimeZone_md.c
@@ -128,13 +128,20 @@ findZoneinfoFile(char *buf, size_t size, const char *dir)
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;
diff --git a/jdk/src/java.base/unix/native/libjli/java_md_common.c b/jdk/src/java.base/unix/native/libjli/java_md_common.c
index 48c0d8b377e..3c3c4bda969 100644
--- a/jdk/src/java.base/unix/native/libjli/java_md_common.c
+++ b/jdk/src/java.base/unix/native/libjli/java_md_common.c
@@ -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 @@ GetApplicationHome(char *buf, jint bufsize)
} else {
return JNI_FALSE;
}
-
- 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;
- }
- 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_TRUE;
+ return TruncatePath(buf);
}
+
+/*
+ * 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);
+ }
+ }
+ return JNI_FALSE;
+}
+
/*
* Return true if the named program exists
*/
diff --git a/jdk/src/java.base/unix/native/libjli/java_md_solinux.c b/jdk/src/java.base/unix/native/libjli/java_md_solinux.c
index 38d8834a932..b9091aaead3 100644
--- a/jdk/src/java.base/unix/native/libjli/java_md_solinux.c
+++ b/jdk/src/java.base/unix/native/libjli/java_md_solinux.c
@@ -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 @@ static jboolean
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 @@ GetJREPath(char *path, jint pathsize, const char * arch, jboolean speculative)
}
}
+ 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;
diff --git a/jdk/src/java.base/unix/native/libnet/SocketInputStream.c b/jdk/src/java.base/unix/native/libnet/SocketInputStream.c
index 08d8508b154..380c03bfeaa 100644
--- a/jdk/src/java.base/unix/native/libnet/SocketInputStream.c
+++ b/jdk/src/java.base/unix/native/libnet/SocketInputStream.c
@@ -35,7 +35,6 @@
#include "java_net_SocketInputStream.h"
-
/************************************************************************
* SocketInputStream
*/
@@ -52,6 +51,40 @@ Java_java_net_SocketInputStream_init(JNIEnv *env, jclass cls) {
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 @@ Java_java_net_SocketInputStream_socketRead0(JNIEnv *env, jobject this,
} 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 @@ Java_java_net_SocketInputStream_socketRead0(JNIEnv *env, jobject this,
JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException",
"Operation interrupted");
break;
-
default:
JNU_ThrowByNameWithMessageAndLastError
(env, JNU_JAVANETPKG "SocketException", "Read failed");
diff --git a/jdk/src/java.base/unix/native/libnet/net_util_md.c b/jdk/src/java.base/unix/native/libnet/net_util_md.c
index c801a824bc3..66670f900cc 100644
--- a/jdk/src/java.base/unix/native/libnet/net_util_md.c
+++ b/jdk/src/java.base/unix/native/libnet/net_util_md.c
@@ -33,6 +33,7 @@
#include
#include
#include
+#include
#ifndef _ALLBSD_SOURCE
#include
@@ -1669,3 +1670,18 @@ NET_Wait(JNIEnv *env, jint fd, jint flags, jint timeout)
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);
+}
diff --git a/jdk/src/java.base/unix/native/libnet/net_util_md.h b/jdk/src/java.base/unix/native/libnet/net_util_md.h
index 3a8c9f4d48e..1f5b6f60eca 100644
--- a/jdk/src/java.base/unix/native/libnet/net_util_md.h
+++ b/jdk/src/java.base/unix/native/libnet/net_util_md.h
@@ -35,7 +35,11 @@
#include
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);
diff --git a/jdk/src/java.base/windows/native/libjli/java_md.c b/jdk/src/java.base/windows/native/libjli/java_md.c
index 3b031d59dcc..3d29357542b 100644
--- a/jdk/src/java.base/windows/native/libjli/java_md.c
+++ b/jdk/src/java.base/windows/native/libjli/java_md.c
@@ -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 @@ GetJREPath(char *path, jint pathsize)
JLI_ReportErrorMessage(JRE_ERROR8 JAVA_DLL);
return JNI_FALSE;
-
}
/*
@@ -423,11 +422,11 @@ TruncatePath(char *buf)
*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 @@ GetApplicationHome(char *buf, jint bufsize)
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;
}
/*
diff --git a/jdk/src/java.base/windows/native/libjli/java_md.h b/jdk/src/java.base/windows/native/libjli/java_md.h
index ec3131f6b61..a2392eba8fc 100644
--- a/jdk/src/java.base/windows/native/libjli/java_md.h
+++ b/jdk/src/java.base/windows/native/libjli/java_md.h
@@ -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 @@ extern jlong Counter2Micros(jlong counts);
int UnsetEnv(char *name);
-jboolean
-GetApplicationHomeFromDll(char *buf, jint bufsize);
-
#endif /* JAVA_MD_H */
diff --git a/jdk/src/java.instrument/share/classes/java/lang/instrument/package.html b/jdk/src/java.instrument/share/classes/java/lang/instrument/package.html
index 9b1b02ea06f..c1f6c852982 100644
--- a/jdk/src/java.instrument/share/classes/java/lang/instrument/package.html
+++ b/jdk/src/java.instrument/share/classes/java/lang/instrument/package.html
@@ -105,6 +105,10 @@ method is not invoked.
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 main 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
+appendToClassPathForInstrumentation method as specified in
+{@link Instrumentation#appendToSystemClassLoaderSearch appendToSystemClassLoaderSearch}.
The premain methods will be run under the same security and classloader
rules as the application main method.
There are no modeling restrictions on what the agent premain method may do.
@@ -140,7 +144,10 @@ supports the starting of agents after the VM has started the following applies:
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.
+ 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
+ appendToClassPathForInstrumentation method as specified in
+ {@link Instrumentation#appendToSystemClassLoaderSearch appendToSystemClassLoaderSearch}.
diff --git a/jdk/src/java.instrument/share/native/libinstrument/InvocationAdapter.c b/jdk/src/java.instrument/share/native/libinstrument/InvocationAdapter.c
index a74b2b725ba..625ea1ad13d 100644
--- a/jdk/src/java.instrument/share/native/libinstrument/InvocationAdapter.c
+++ b/jdk/src/java.instrument/share/native/libinstrument/InvocationAdapter.c
@@ -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 @@ DEF_Agent_OnLoad(JavaVM *vm, char *tail, void * reserved) {
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 @@ DEF_Agent_OnLoad(JavaVM *vm, char *tail, void * reserved) {
/*
* Clean-up
*/
- free(jarfile);
if (options != NULL) free(options);
freeAttributes(attributes);
free(premainClass);
@@ -459,7 +456,23 @@ eventHandlerVMInit( jvmtiEnv * jvmtienv,
/* 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 @@ appendClassPath( JPLISAgent* agent,
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;
}
diff --git a/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.c b/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.c
index 3017cca1f7a..12f2a451e49 100644
--- a/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.c
+++ b/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.c
@@ -272,6 +272,7 @@ initializeJPLISAgent( JPLISAgent * agent,
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
diff --git a/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.h b/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.h
index 6ecfde2d5c5..008b2fabc6a 100644
--- a/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.h
+++ b/jdk/src/java.instrument/share/native/libinstrument/JPLISAgent.h
@@ -107,6 +107,7 @@ struct _JPLISAgent {
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 */
};
/*
diff --git a/jdk/src/java.logging/share/classes/java/util/logging/Level.java b/jdk/src/java.logging/share/classes/java/util/logging/Level.java
index fa0da4c1306..f7f7a4380be 100644
--- a/jdk/src/java.logging/share/classes/java/util/logging/Level.java
+++ b/jdk/src/java.logging/share/classes/java/util/logging/Level.java
@@ -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 class Level implements java.io.Serializable {
*/
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.
*
@@ -267,7 +280,8 @@ public class Level implements java.io.Serializable {
// 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 @@ public class Level implements java.io.Serializable {
throw new NullPointerException();
}
- KnownLevel level;
+ Optional 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 @@ public class Level implements java.io.Serializable {
// 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 @@ public class Level implements java.io.Serializable {
// 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 = 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 @@ public class Level implements java.io.Serializable {
// Check that name is not null.
name.length();
- KnownLevel level;
+ Optional 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 @@ public class Level implements java.io.Serializable {
// 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 @@ public class Level implements java.io.Serializable {
// 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 @@ public class Level implements java.io.Serializable {
// 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 {
private static Map> nameToLevels = new HashMap<>();
private static Map> intToLevels = new HashMap<>();
- final Level levelObject; // instance of Level class or Level subclass
+ private static final ReferenceQueue 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> 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 mirrored() {
+ return Optional.of(mirroredLevel);
+ }
+
+ Optional 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 pa =
+ () -> customLevel.getClass().getClassLoader();
+ PrivilegedAction 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 @@ public class Level implements java.io.Serializable {
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 list = nameToLevels.get(name);
- if (list != null) {
- return list.get(0);
- }
- return null;
+ static synchronized Optional findByName(String name,
+ Function> 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 list = intToLevels.get(value);
- if (list != null) {
- return list.get(0);
- }
- return null;
+ static synchronized Optional findByValue(int value,
+ Function> 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 @@ public class Level implements java.io.Serializable {
// 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 levels : nameToLevels.values()) {
- for (KnownLevel l : levels) {
- String lname = l.levelObject.getLocalizedLevelName();
- if (name.equals(lname)) {
- return l;
- }
- }
- }
- return null;
+ static synchronized Optional findByLocalizedLevelName(String name,
+ Function> 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 matches(Level l) {
+ purge();
List 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();
}
}
diff --git a/jdk/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java b/jdk/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java
index 5cc81e9a2d0..edb0c0ba640 100644
--- a/jdk/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java
+++ b/jdk/src/jdk.attach/linux/classes/sun/tools/attach/VirtualMachineImpl.java
@@ -308,10 +308,6 @@ public class VirtualMachineImpl extends HotSpotVirtualMachine {
//-- 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;
diff --git a/jdk/src/jdk.attach/linux/native/libattach/VirtualMachineImpl.c b/jdk/src/jdk.attach/linux/native/libattach/VirtualMachineImpl.c
index 08ca4c481ea..85d355a1e6a 100644
--- a/jdk/src/jdk.attach/linux/native/libattach/VirtualMachineImpl.c
+++ b/jdk/src/jdk.attach/linux/native/libattach/VirtualMachineImpl.c
@@ -194,113 +194,6 @@ JNIEXPORT void JNICALL Java_sun_tools_attach_VirtualMachineImpl_connect
}
}
-/*
- * 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
diff --git a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/builder/DefaultImageBuilder.java b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/builder/DefaultImageBuilder.java
index 850147aff31..405ba61a57b 100644
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/builder/DefaultImageBuilder.java
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/builder/DefaultImageBuilder.java
@@ -55,6 +55,7 @@ import java.util.Objects;
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 @@ public final class DefaultImageBuilder implements ImageBuilder {
}
i++;
}
- props.setProperty("MODULES", builder.toString());
+ props.setProperty("MODULES", quote(builder.toString()));
}
@Override
@@ -188,7 +189,8 @@ public final class DefaultImageBuilder implements ImageBuilder {
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 @@ public final class DefaultImageBuilder implements ImageBuilder {
}
}
+ // 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 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 @@ public final class DefaultImageBuilder implements ImageBuilder {
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
diff --git a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java
index b6e29bfccdc..a0b93962a8d 100644
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/IncludeLocalesPlugin.java
@@ -264,8 +264,8 @@ public final class IncludeLocalesPlugin implements Plugin, ResourcePrevisitor {
// 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
diff --git a/jdk/src/jdk.localedata/share/classes/sun/text/resources/thai_dict b/jdk/src/jdk.localedata/share/classes/sun/text/resources/ext/thai_dict
similarity index 100%
rename from jdk/src/jdk.localedata/share/classes/sun/text/resources/thai_dict
rename to jdk/src/jdk.localedata/share/classes/sun/text/resources/ext/thai_dict
diff --git a/jdk/test/ProblemList.txt b/jdk/test/ProblemList.txt
index cd0b2844a46..f2e96cacf20 100644
--- a/jdk/test/ProblemList.txt
+++ b/jdk/test/ProblemList.txt
@@ -159,7 +159,6 @@ javax/management/remote/mandatory/notif/NotifReconnectDeadlockTest.java 8042215
# 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/keytool/ListKeychainStore.sh 8156889 macosx-a
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/pack200/CommandLineTests.java 7143279,8059906
tools/launcher/FXLauncherTest.java 8068049 linux-all,macosx-all
-tools/pack200/Pack200Props.java 8155857 generic-all
-
############################################################################
# jdk_jdi
diff --git a/jdk/test/java/lang/instrument/CustomSystemLoader/Agent.java b/jdk/test/java/lang/instrument/CustomSystemLoader/Agent.java
new file mode 100644
index 00000000000..0432c2d9587
--- /dev/null
+++ b/jdk/test/java/lang/instrument/CustomSystemLoader/Agent.java
@@ -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");
+ }
+}
diff --git a/jdk/test/java/lang/instrument/CustomSystemLoader/App.java b/jdk/test/java/lang/instrument/CustomSystemLoader/App.java
new file mode 100644
index 00000000000..a5eac03f14e
--- /dev/null
+++ b/jdk/test/java/lang/instrument/CustomSystemLoader/App.java
@@ -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");
+ }
+}
diff --git a/jdk/test/java/lang/instrument/CustomSystemLoader/CustomLoader.java b/jdk/test/java/lang/instrument/CustomSystemLoader/CustomLoader.java
new file mode 100644
index 00000000000..f90e244b4a1
--- /dev/null
+++ b/jdk/test/java/lang/instrument/CustomSystemLoader/CustomLoader.java
@@ -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;
+ }
+}
diff --git a/jdk/test/java/security/cert/CertPathValidator/trustAnchor/ValWithAnchorByName.java b/jdk/test/java/security/cert/CertPathValidator/trustAnchor/ValWithAnchorByName.java
new file mode 100644
index 00000000000..29abfb9f551
--- /dev/null
+++ b/jdk/test/java/security/cert/CertPathValidator/trustAnchor/ValWithAnchorByName.java
@@ -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 certList = new ArrayList() {{
+ 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 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 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);
+ }
+}
diff --git a/jdk/test/java/sql/testng/TEST.properties b/jdk/test/java/sql/testng/TEST.properties
index 295505b905a..66b1566374a 100644
--- a/jdk/test/java/sql/testng/TEST.properties
+++ b/jdk/test/java/sql/testng/TEST.properties
@@ -1,3 +1,4 @@
# JDBC unit tests uses TestNG
TestNG.dirs = .
+othervm.dirs = test/sql/othervm
diff --git a/jdk/test/java/sql/testng/test/sql/othervm/DriverManagerInitTests.java b/jdk/test/java/sql/testng/test/sql/othervm/DriverManagerInitTests.java
new file mode 100644
index 00000000000..d2570993533
--- /dev/null
+++ b/jdk/test/java/sql/testng/test/sql/othervm/DriverManagerInitTests.java
@@ -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 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();
+ }
+
+ }
+
+}
diff --git a/jdk/test/java/text/Format/DateFormat/Bug4322313.java b/jdk/test/java/text/Format/DateFormat/Bug4322313.java
index bea772e63e6..b6ddef99a1b 100644
--- a/jdk/test/java/text/Format/DateFormat/Bug4322313.java
+++ b/jdk/test/java/text/Format/DateFormat/Bug4322313.java
@@ -50,110 +50,110 @@ public class Bug4322313 extends IntlTest {
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 {
diff --git a/jdk/test/java/text/Format/DateFormat/Bug4736959.java b/jdk/test/java/text/Format/DateFormat/Bug4736959.java
index cdb9cad20b4..00fa8d0840a 100644
--- a/jdk/test/java/text/Format/DateFormat/Bug4736959.java
+++ b/jdk/test/java/text/Format/DateFormat/Bug4736959.java
@@ -30,6 +30,7 @@
import java.text.*;
import java.util.*;
+@SuppressWarnings("deprecation")
public class Bug4736959 {
/**
* 4736959: JSpinner won't work for AM/PM field
diff --git a/jdk/test/java/text/Format/DateFormat/Bug4823811.java b/jdk/test/java/text/Format/DateFormat/Bug4823811.java
index c2d35e9f64f..b1f6c9d5b9d 100644
--- a/jdk/test/java/text/Format/DateFormat/Bug4823811.java
+++ b/jdk/test/java/text/Format/DateFormat/Bug4823811.java
@@ -685,8 +685,8 @@ public class Bug4823811 {
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 @@ public class Bug4823811 {
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");
}
diff --git a/jdk/test/java/text/Format/DateFormat/Bug4845901.java b/jdk/test/java/text/Format/DateFormat/Bug4845901.java
index a88b47a761e..363a3518bf0 100644
--- a/jdk/test/java/text/Format/DateFormat/Bug4845901.java
+++ b/jdk/test/java/text/Format/DateFormat/Bug4845901.java
@@ -55,6 +55,7 @@ public class Bug4845901 {
}
}
+ @SuppressWarnings("deprecation")
static void testParse(SimpleDateFormat sdf, String str, int expectedHour) {
try {
Date parsedDate = sdf.parse(str);
diff --git a/jdk/test/java/text/Format/DateFormat/Bug6609750.java b/jdk/test/java/text/Format/DateFormat/Bug6609750.java
index ccd5d5e814b..5529bc6c812 100644
--- a/jdk/test/java/text/Format/DateFormat/Bug6609750.java
+++ b/jdk/test/java/text/Format/DateFormat/Bug6609750.java
@@ -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 @@ public class Bug6609750 {
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),
diff --git a/jdk/test/java/text/Format/DateFormat/Bug6683975.java b/jdk/test/java/text/Format/DateFormat/Bug6683975.java
index 1f401058e5a..0afdcd74c4a 100644
--- a/jdk/test/java/text/Format/DateFormat/Bug6683975.java
+++ b/jdk/test/java/text/Format/DateFormat/Bug6683975.java
@@ -66,6 +66,7 @@ public class Bug6683975 {
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)) {
diff --git a/jdk/test/java/text/Format/DateFormat/DateFormatRegression.java b/jdk/test/java/text/Format/DateFormat/DateFormatRegression.java
index 5c416b0dc53..d4230fb2cb7 100644
--- a/jdk/test/java/text/Format/DateFormat/DateFormatRegression.java
+++ b/jdk/test/java/text/Format/DateFormat/DateFormatRegression.java
@@ -41,7 +41,7 @@ public class DateFormatRegression extends IntlTest {
}
public void Test4029195() {
-
+ @SuppressWarnings("deprecation")
Date today = new Date();
logln("today: " + today);
@@ -74,19 +74,20 @@ public class DateFormatRegression extends IntlTest {
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 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 @@ public class DateFormatRegression extends IntlTest {
", \"" + 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 @@ public class DateFormatRegression extends IntlTest {
/**
* 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 @@ public class DateFormatRegression extends IntlTest {
if (!ok) errln("Fail: Lenient not working");
}
+ @SuppressWarnings("deprecation")
public void Test4065240() {
Date curDate;
DateFormat shortdate, fulldate;
@@ -297,6 +300,7 @@ public class DateFormatRegression extends IntlTest {
Currently this bug breaks MessageFormat.toPattern
*/
+ @SuppressWarnings("deprecation")
public void Test4071441() {
DateFormat fmtA = DateFormat.getInstance();
DateFormat fmtB = DateFormat.getInstance();
@@ -488,6 +492,7 @@ public class DateFormatRegression extends IntlTest {
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 class DateFormatRegression extends IntlTest {
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 @@ public class DateFormatRegression extends IntlTest {
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 @@ public class DateFormatRegression extends IntlTest {
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 @@ public class DateFormatRegression extends IntlTest {
* '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 @@ public class DateFormatRegression extends IntlTest {
* 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 @@ public class DateFormatRegression extends IntlTest {
* 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 @@ public class DateFormatRegression extends IntlTest {
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 @@ public class DateFormatRegression extends IntlTest {
}
}
+ @SuppressWarnings("deprecation")
public void Test4253490() throws ParseException {
SimpleDateFormat fmt = new SimpleDateFormat("S", Locale.US);
@@ -1026,6 +1039,7 @@ public class DateFormatRegression extends IntlTest {
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 @@ public class DateFormatRegression extends IntlTest {
// 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")) {
diff --git a/jdk/test/java/text/Format/DateFormat/DateFormatRoundTripTest.java b/jdk/test/java/text/Format/DateFormat/DateFormatRoundTripTest.java
index 73d023163f1..9bf3ac3835a 100644
--- a/jdk/test/java/text/Format/DateFormat/DateFormatRoundTripTest.java
+++ b/jdk/test/java/text/Format/DateFormat/DateFormatRoundTripTest.java
@@ -104,7 +104,7 @@ public class DateFormatRoundTripTest extends IntlTest {
String pat = null;
Date date = null;
- Vector newArgs = new Vector();
+ List newArgs = new ArrayList<>();
for (int i=0; i#.###E00", 'm');
- test(new Double(1234), "